• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

dashman - linux masternode mangement made mootastic

moocowmoo

Bovine Bit-flipper
Foundation Member
https://github.com/moocowmoo/dashman

*now with voting goodness! (beta)




dashman
DASH wallet/daemon management utilities - version 0.1.9
  • This script installs, updates, and manages single-user dash daemons and wallets
  • It is currently only compatible with 32/64 bit linux.
  • Multi-user (system directory) installs are not yet supported
Install/Usage

To download dashman do:
Code:
sudo apt-get install git
git clone https://github.com/moocowmoo/dashman.git
cd dashman

To update your existing version 12 32/64bit linux dash wallet to the latest dashd, do:
Code:
./dashman update

To perform a new install of dash, do:
Code:
./dashman install

To overwrite an existing dash install, do:
Code:
./dashman reinstall

To update dashman to the latest version, do:
Code:
./dashman sync

To restart (or start) dashd, do:
Code:
./dashman restart

To get the current status of dashd, do:
Code:
./dashman status

To cast votes using your masternode(s), do:
Code:
./dashman vote

Commands

sync
"dashman sync" updates dashman to the latest version from github

install
"dashman install" downloads and initializes a fresh dash install into ~/.dash unless already present

reinstall
"dashman reinstall" downloads and overwrites existing dash executables, even if already present

update
where it all began, "dashman update" searches for your dashd/dash-cli executibles in the current directory, ~/.dash, and $PATH. It will prompt to install in the first directory found containing both dashd and dash-cli. Multiple wallet directories are not supported. The script assumes the host runs a single instance of dashd.

restart
"dashman restart [now]" restarts (or starts) dashd. Searches for dash-cli/dashd the current directory, ~/.dash, and $PATH. It will prompt to restart if not given the optional 'now' argument.

status
"dashman status" interrogates the locally running dashd and displays its status

vote (beta)
"dashman vote" automates voting and randomizes vote timestamps to help disassociate ownership
Requires:
  • dash-cli in $PATH
  • masternode.conf in $HOME/.dash
  • python 2
Dependencies
  • nc (netcat)
  • wget
  • perl
  • python
  • dashd, dash-cli - version 12 or greater to update
Screencaps

install


update


reinstall


restart


status


vote




Contact
Email me at [email protected] or submit a pull request.
 
Last edited by a moderator:
Not that you need to contribute any more then this awesome tool, but I was thinking last night how useful this would be for test. It's quite a pain (for me at least) to be updating test masternodes daily or multiple times a day. I'm not running any now as I'm waiting for Even to ask for testers, but will likely in the future. Perhaps you've already thought along the same lines... Anyway, thanks again for this and all the updates.
 
yes italx It's on the mental roadmap.

next few updates are going to be:

  • ipv6 support
  • system lib (/usr/bin /usr/local/bin) support
  • notification when protocol is updated (to resend masternode starts)
  • testnet support (which will probably require arbitrary directory location support first)

If anybody has any other ideas, please let me know!
 
beautiful project! Thanks a lot for your commitment. I hope I'll once have the chance to make an useful pull request :smile:
 
beautiful project! Thanks a lot for your commitment. I hope I'll once have the chance to make an useful pull request :smile:

Thanks and you're welcome! It's a fun project that scratches a bunch of my personal developer itches.

Thanks for the docker image too!
I forked it to try and update it to use version .55 but didn't have immediate success (I'm a docker noob) and haven't swung back around to try again.
 
I forked it to try and update it to use version .55 but didn't have immediate success (I'm a docker noob) and haven't swung back around to try again.

Yeah, .53 and .55 is kind of unstable in docker. We stopped working on the project some weeks ago and copied-pasted some scripts together. But now, we will definitely use your script package!
 
Yeah, .53 and .55 is kind of unstable in docker.

That's unfortunate to hear. I was hoping to use docker for a lot of upcoming testing projects.
Any ideas why?

We stopped working on the project some weeks ago and copied-pasted some scripts together. But now, we will definitely use your script package!

Sweet!
I've been thinking about adding some unattended modes, so let me know if you run into a blocker before building your own patch.
Also been considering some machine-readable (probably json) output modes too...
 
dashman version 0.1.10 released!

  • added ipv6 support - use icanhazip for ipv4/6 polling
  • added last masternode payment display
  • added dashd uptime calculation
  • added support for hot-node (Internet server) dash.conf voting
  • added initial host metrics: uptime/load average

  • switch to using curl. much faster
  • refactor wgets -- add 4 second timeout to pulls
  • check for dependencies before embarking
  • consolidated output

do dashman sync to pull in the latest version!

If you have both ipv6 and ipv4 configured, you will be prompted to select between the two when doing a fresh 'dash install'.

n3Q8Yzt.png
 
thanks!

you can always pull in the latest stuff manually by doing 'dashman sync'

https://github.com/moocowmoo/dashman/compare/v0.1.10...master

todays commits include:
Code:
* 40b07dc bugfix - voting - fail gracefully when dash-cli not in path
* 618d066 added balance display
* 4db404f support multiple sync exec arguments
* 8d7b444 moving scripts to bin directory
* 024d36c bugfix - use initial api pull values for last payment
* 4104235 style - unify all gathering messages
* 9c0dad1 bugfix - proper ipv6 formatting for hot-node voting
 
Last edited by a moderator:
I think this is it for now... enjoy!

dashman version 0.1.11 released


protip: you can always run the latest version by prepending 'sync' to your command like 'dashman sync status'

Moo,

I switched to a new VPS provider and now I get "dashd port open : NO". However, everything else is green and I can ping my server with yougetsignal port check tool. 9999 comes back just fine "open". Any idea what I am missing?

Thanks!!
PT
 
Moo,

I switched to a new VPS provider and now I get "dashd port open : NO". However, everything else is green and I can ping my server with yougetsignal port check tool. 9999 comes back just fine "open". Any idea what I am missing?

Thanks!!
PT

some network configurations (NAT) prevent connecting to the public ip from a host behind masquerading/translation.

try "telnet ip.address.of.masternode 9999" from the masternode itself and see if it connects.

If it doesn't, you'll have to get more info about your vps instance and network, but there's probably nothing to be done that doesn't require some advanced networking configuration.
If it does, I'll have to troubleshoot your particular config to see why netcat doesn't do what telnet does.

I may build an external polling api in the future, but, so far, most network configurations can connect back to themselves.
 
Last edited by a moderator:
some network configurations (NAT) prevent connecting to the public ip from a host behind masquerading/translation.

try "telnet ip.address.of.masternode 9999" from the masternode itself and see if it connects.

If it doesn't, you'll have to get more info about your vps instance and network, but there's probably nothing to be done that doesn't require some advanced networking configuration.
If it does, I'll have to troubleshoot your particular config to see why netcat doesn't do what telnet does.

I may build an external polling api in the future, but most network configurations can connect back to themselves.

Maybe I didn't say it right... On Dashman I have green YES with ninja, whale... etc. Also, I can see it from the external side. In other words... I think everything is ok (I hope). Ninja's site shows it as Open Port all green, too. And, I am in the masternode list.
But the Dashman reports it with red NO for "port open". I just thought it was weird and wondered what you are doing to check the port. FYI - I am using ufw to close the rest of the ports.

Also typing "telnet" in bash returns "command not found" on my server. Maybe I missed a dependency?

Thanks!!!!!!!!!!!!!
 
I understand you.

Your masternode can't connect to it's ip is why dashman shows a red "NO"

telnet isn't a dashman dependency, it's just another tool to try out.

sudo apt-get install telnet to install telnet to try. look for 'connected'

here's me trying it out on one of my nodes.

Code:
ubuntu@node-01:~$ telnet 162.243.76.23 9999
Trying 162.243.76.23...
Connected to 162.243.76.23.
Escape character is '^]'.
^]

telnet> close
Connection closed.
ubuntu@node-01:~$
 
I understand you.

Your masternode can't connect to it's ip is why dashman shows a red "NO"

telnet isn't a dashman dependency, it's just another tool to try out.

sudo apt-get install telnet to install telnet to try. look for 'connected'

here's me trying it out on one of my nodes.

Code:
ubuntu@node-01:~$ telnet 162.243.76.23 9999
Trying 162.243.76.23...
Connected to 162.243.76.23.
Escape character is '^]'.
^]

This is what I got... looks ok from what I can tell.

telnet> close
Connection closed.
ubuntu@node-01:~$
It showed this:
dash@node1:~$ telnet 162.111.16.160 9999
Trying 162.111.16.160...
Connected to 162.111.16.160.
Escape character is '^]'.
^]
telnet> close
Connection closed.

(Still RED and NO for dashd port open.) Any other ideas?
 
Problem's definitely within dashman.

Grant me access to debug in place? I'll share a screen session with you if you like and you can watch me fix the issue.

Use zerobin.net to send credentials to me -- set 'burn after reading' so only I get them, then message me the link.
 
Back
Top