• 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

Thanks bugeater, glad you like it.

When I first released dashman I saw over 300 clones from github. I haven't looked recently, but I'd guess it's around that many masternodes using it.

In a few months, I'm going to release version 0.2, which will do remote management too, but I'm busy on other projects right now.
 
So I tried using Dashman over Tor, and it is not a happy combination.

At least one of the external sites that ./dashman status links to (looks like chainz.cryptoid.info) evokes a Cloudfare middle-man captcha input request when the site detects a known Tor exit node connecting to it with javascript disabled (curl does not use js, I assume?).

Maybe you could change the output for an unreachable site's data to simply fail and list in red text (unable to connect) instead of the current block height or whatever information it was supposed to display for it? Right now, connected through Tor, dashman status fails when it encounters that Cloudfare captcha page for chainz.cryptoid.info. If i keep trying new exit nodes, eventually I can find one that is not blacklisted by chainz and dashman status works.

Code:
sudo ./dashman status
dashman version 0.1.16 (1-gb306080) - Fri Feb 12 02:03:18 UTC 2016
gathering info, please wait.../home/user/dashman/lib/dashman_functions.sh: line 750: <!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->
<head>
<title>Attention Required! | CloudFlare</title>
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" />
<link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/cf.errors.css" type="text/css" media="screen,projection" />
<!--[if lt IE 9]><link rel="stylesheet" id='cf_styles-ie-css' href="/cdn-cgi/styles/cf.errors.ie.css" type="text/css" media="screen,projection" /><![endif]-->
<style type="text/css">body{margin:0;padding:0}</style>
<!--[if lte IE 9]><script type="text/javascript" src="/cdn-cgi/scripts/jquery.min.js"></script><![endif]-->
<!--[if gte IE 10]><!--><script type="text/javascript" src="/cdn-cgi/scripts/zepto.min.js"></script><!--<![endif]-->
<script type="text/javascript" src="/cdn-cgi/scripts/cf.common.js"></script>


</head>
<body>
  <div id="cf-wrapper">
    <div class="cf-alert cf-alert-error cf-cookie-error" id="cookie-alert" data-translate="enable_cookies">Please enable cookies.</div>
    <div id="cf-error-details" class="cf-error-details-wrapper">
      <div class="cf-wrapper cf-header cf-error-overview">
        <h1 data-translate="challenge_headline">One more step</h1>
        <h2 class="cf-subheadline"><span data-translate="complete_sec_check">Please complete the security check to access</span> chainz.cryptoid.info</h2>
      </div><!-- /.header -->

      <div class="cf-section cf-highlight cf-captcha-container">
        <div class="cf-wrapper">
          <div class="cf-columns two">
            <div class="cf-column">
              <div class="cf-highlight-inverse cf-form-stacked">
                <form class="challenge-form" id="challenge-form" action="/cdn-cgi/l/chk_captcha" method="get">
  <script type="text/javascript" src="/cdn-cgi/scripts/cf.challenge.js" data-type="normal"  data-ray="2734b7d456dc35d8" async data-sitekey="6LfOYgoTAAAAAInWDVTLSc8Yibqp-c9DaLimzNGM" data-stoken="v2KH0siLxYitSGEGO-YPWBKKP90shkRAE2fdXbr6sjBwdPdFQL8LqPThD4t6Bl8RlsTlDwZChgY0DLmeKL7aGgv_x6ee1hxhSpVhCHQp3HU"></script>
  <div class="g-recaptcha"></div>
  <noscript id="cf-captcha-bookmark" class="cf-captcha-info">
    <div><div style="width: 302px">
      <div>
        <iframe src="https://www.google.com/recaptcha/api/fallback?k=6LfOYgoTAAAAAInWDVTLSc8Yibqp-c9DaLimzNGM&stoken=v2KH0siLxYitSGEGO-YPWBKKP90shkRAE2fdXbr6sjBwdPdFQL8LqPThD4t6Bl8RlsTlDwZChgY0DLmeKL7aGgv_x6ee1hxhSpVhCHQp3HU" frameborder="0" scrolling="no" style="width: 302px; height:422px; border-style: none;"></iframe>
      </div>
      <div style="width: 300px; border-style: none; bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px; background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px;">
        <textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 40px; border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: none;"></textarea>
        <input type="submit" value="Submit"></input>
      </div>
    </div></div>
  </noscript>
</form>

              </div>
            </div>

            <div class="cf-column">
              <div class="cf-screenshot-container">
            
                <span class="cf-no-screenshot"></span>
            
              </div>
            </div>
          </div><!-- /.columns -->
        </div>
      </div><!-- /.captcha-container -->

      <div class="cf-section cf-wrapper">
        <div class="cf-columns two">
          <div class="cf-column">
            <h2 data-translate="why_captcha_headline">Why do I have to complete a CAPTCHA?</h2>

            <p data-translate="why_captcha_detail">Completing the CAPTCHA proves you are a human and gives you temporary access to the web property.</p>
          </div>

          <div class="cf-column">
            <h2 data-translate="resolve_captcha_headline">What can I do to prevent this in the future?</h2>

            <p data-translate="resolve_captcha_antivirus">If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware.</p>

            <p data-translate="resolve_captcha_network">If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices.</p>
          </div>
        </div>
      </div><!-- /.section -->

      <div class="cf-error-footer cf-wrapper">
  <p>
    <span class="cf-footer-item">CloudFlare Ray ID: <strong>2734b7d456dc35d8</strong></span>
    <span class="cf-footer-separator">&bull;</span>
    <span class="cf-footer-item"><span data-translate="your_ip">Your IP</span>: 176.61.147.146</span>
    <span class="cf-footer-separator">&bull;</span>
    <span class="cf-footer-item"><span data-translate="performance_security_by">Performance &amp; security by</span> <a data-orig-proto="https" data-orig-ref="www.cloudflare.com/5xx-error-landing?utm_source=error_footer" id="brand_link" target="_blank">CloudFlare</a></span>
  
  </p>
</div><!-- /.error-footer -->


    </div><!-- /#cf-error-details -->
  </div><!-- /#cf-wrapper -->

  <script type="text/javascript">
  window._cf_translation = {};


</script>

</body>
</html> - 2: syntax error: operand expected (error token is "<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->
<head>
<title>Attention Required! | CloudFlare</title>
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" />
<link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/cf.errors.css" type="text/css" media="screen,projection" />
<!--[if lt IE 9]><link rel="stylesheet" id='cf_styles-ie-css' href="/cdn-cgi/styles/cf.errors.ie.css" type="text/css" media="screen,projection" /><![endif]-->
<style type="text/css">body{margin:0;padding:0}</style>
<!--[if lte IE 9]><script type="text/javascript" src="/cdn-cgi/scripts/jquery.min.js"></script><![endif]-->
<!--[if gte IE 10]><!--><script type="text/javascript" src="/cdn-cgi/scripts/zepto.min.js"></script><!--<![endif]-->
<script type="text/javascript" src="/cdn-cgi/scripts/cf.common.js"></script>


</head>
<body>
  <div id="cf-wrapper">
    <div class="cf-alert cf-alert-error cf-cookie-error" id="cookie-alert" data-translate="enable_cookies">Please enable cookies.</div>
    <div id="cf-error-details" class="cf-error-details-wrapper">
      <div class="cf-wrapper cf-header cf-error-overview">
        <h1 data-translate="challenge_headline">One more step</h1>
        <h2 class="cf-subheadline"><span data-translate="complete_sec_check">Please complete the security check to access</span> chainz.cryptoid.info</h2>

...
  </p>
</div><!-- /.error-footer -->


  </div><!-- /#cf-error-details -->
  </div><!-- /#cf-wrapper -->

  <script type="text/javascript">
  window._cf_translation = {};
 
 
</script>

</body>
</html> - 2")
Exiting.
 
i'm using dash currently in my home directory (home -> user -> .dash) and have dashman installed on root.
I noticed that it can not find dash from there, is there any way to make this work or do i have to move the .dash folder to root or something ?
(i kinda like where it is now as it easy to approach with Windows through WinSCP)
 
Last edited by a moderator:
i'm using dash currently in my home directory (home -> user -> .dash) and have dashman installed on root.
I noticed that it can not find dash from there, is there any way to make this work or do i have to move the .dash folder to root or something ?
(i kinda like where it is now as it easy to approach with Windows through WinSCP)

I'm surprised it's not finding it. Where do you have dash-cli?
this routine looks in three places for it: https://github.com/moocowmoo/dashman/blob/master/lib/dashman_functions.sh#L141-L212

Also, if you are running dashman as a different user than dashd you'll run into trouble because the HOME environ will be different.

The easiest fix is to just update your PATH environ to point to the directory containing dash-cli like:
Code:
export PATH=/path/to/dash-cli/directory:$PATH
and add that to the end of your ~/.bash_aliases or ~/.bashrc

you'll know it's working by being able to type 'dash-cli' from any directory and it'll work.
 
I'm surprised it's not finding it. Where do you have dash-cli?
this routine looks in three places for it: https://github.com/moocowmoo/dashman/blob/master/lib/dashman_functions.sh#L141-L212

Also, if you are running dashman as a different user than dashd you'll run into trouble because the HOME environ will be different.

The easiest fix is to just update your PATH environ to point to the directory containing dash-cli like:
Code:
export PATH=/path/to/dash-cli/directory:$PATH
and add that to the end of your ~/.bash_aliases or ~/.bashrc

you'll know it's working by being able to type 'dash-cli' from any directory and it'll work.

I'm using
I'm surprised it's not finding it. Where do you have dash-cli?
this routine looks in three places for it: https://github.com/moocowmoo/dashman/blob/master/lib/dashman_functions.sh#L141-L212

Also, if you are running dashman as a different user than dashd you'll run into trouble because the HOME environ will be different.

The easiest fix is to just update your PATH environ to point to the directory containing dash-cli like:
Code:
export PATH=/path/to/dash-cli/directory:$PATH
and add that to the end of your ~/.bash_aliases or ~/.bashrc

you'll know it's working by being able to type 'dash-cli' from any directory and it'll work.

got it to work .. thanks.
Looks great.
 
Hello moocowmoo,

I like your dashman script, just successfully updated one of my masternodes with it.

I set up another server, also with dashman, and for some reason it does not seem to start dashd at all. I can't find out why. Do you have any idea?

user@vultr:~/dashman$ ./dashman status
dashman version 0.1.18 (12-g7487703) - Mon Jun 13 08:56:40 UTC 2016
gathering info, please wait... DONE!

hostname : vultr.guest
host uptime/load average : 0 days, 0.00 0.01 0.02
dashd bind ip address : 45.X.X.X
dashd version : 0.12.0.58
dashd up-to-date : YES
dashd running : NO
dashd uptime : 0 days, 0 hours, 0 mins, 0 secs
dashd responding (rpc) : NO
dashd listening (ip) : NO
dashd connecting (peers) : NO
dashd port open : NO
dashd connection count : 0
dashd blocks synced : NO
last block (local dashd) : 0
(chainz) : 485823
(dash.org) : 485823
(dashwhale) : 485822
(masternode.me) : 485822 - no forks detected
dashd current difficulty :
masternode count : 0
Exiting.


There are no errors in the debug.log.

./dashman restart will get stuck here:

dashman version 0.1.18 (12-g7487703) - Mon Jun 13 09:22:11 UTC 2016

restart dashd? [y/N] y
--> Deleting cache files, debug.log...DONE!
--> Starting dashd...DONE!
--> Waiting for dashd to respond..........................


./dashman restart now get stuck as well.
 
I set up another server, also with dashman, and for some reason it does not seem to start dashd at all. I can't find out why. Do you have any idea?

Not offhand. I'd be willing to take a look and see if you like. PM me.

Or, since it's a new install with no funds or anything, just delete everything
Code:
rm -rf ~/.dash
and try installing again.
 
moocowmoo, yes it was more time efficient to just delete the instance and start over on a new one, next time it worked as usual. I run 4 nodes with dashman now and the updating feature worked really well, it was quick and easy! Thanks so much for this script, I will donate something!!
 
moocowmoo, yes it was more time efficient to just delete the instance and start over on a new one, next time it worked as usual. I run 4 nodes with dashman now and the updating feature worked really well, it was quick and easy! Thanks so much for this script, I will donate something!!

Glad to hear it! Makes me feel good to make peoples lives a little easier.
 
Getting a litle off-topic... What kind of resources are needed to run a masternode? Would it be practical to run 10 on a single computer?
 
Getting a litle off-topic... What kind of resources are needed to run a masternode? Would it be practical to run 10 on a single computer?

Today, a masternode needs about 256M RAM and about 2G disk (not accounting for log file) 10G is safer.
A medium speed cpu is fine, anything less than a minimum-level VPS isn't recommended.

As Evolution progresses, instances will be required to have more resources.

Multiple instances per host are possible, but not recommended.
It's bad for the network having too many points of failure and you'd still need one ip address for each instance.
Additionally, dashman only supports single-host installations.
 
Hi,

I just tried 'vote', but got the following error:
KeyError: 'masternodeaddr'

I'm using dash.conf for configuration. There's a dummy masternode.conf as well containing comments only. Removing masternode.cong changes the error to "cannot find masternode.conf".

Do I need to specify masternodeaddr? It's the address of the current node.
Maybe I got this all backwards. Do I have to vote through my hot wallet? I'm trying this on my cold wallet masternode.
 
I'm using dash.conf for configuration.

You need to add:
Code:
masternodeaddr=ip.address.of.masternode:9999

to vote with dash.conf. But I recommend you upgrade to using masternode.conf.

Do I have to vote through my hot wallet? I'm trying this on my cold wallet masternode.

No. Any sync'd dashd (dash-cli) will do. It doesn't need any funds. It just needs the masternode information in dash.conf or masternode.conf.
 
Last edited:
Thanks! That worked!


Also, man you are quick with updates. Noticed dashman trew an error as the Dash download page changed. Not many minutes before you fixed it. Thumbs up!
 
Back
Top