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

Extreme Dash block rewards

Steve Sokolowski

New member
On the second day of the past two months, we've noticed a short period of extreme Dash block rewards, which cost us about $10,000 in losses. The problem is so significant that I'm going to have to spend the day today writing a new failsafe to disconnect Dash miners when this issue occurs.

Here is the data we recorded:

Code:
originally_created, sell_price, difficulty, block_reward, buy_price, transaction_fees, orphan_rate
"2019-04-02 02:01:00.806696-04"    "0.0251210000000000"    "56909659.8476522"    "6178.04002672"    "0.0253722100000000"    "0.00083018"    "0.00876095"
"2019-04-02 02:00:58.096204-04"    "0.0251210000000000"    "56909659.8476522"    "6178.04002672"    "0.0253722100000000"    "0.00083018"    "0.00876095"
"2019-04-02 02:00:58.093935-04"    "0.0251210000000000"    "56909659.8476522"    "6178.04002672"    "0.0253722100000000"    "0.00083018"    "0.00876095"
"2019-04-02 02:00:57.436737-04"    "0.0251210000000000"    "56909659.8476522"    "6178.04002672"    "0.0253722100000000"    "0.00083018"    "0.00876095"
"2019-04-02 02:00:57.432117-04"    "0.0251210000000000"    "56909659.8476522"    "6178.04002672"    "0.0253722100000000"    "0.00083018"    "0.00876095"
"2019-04-02 02:00:13.455654-04"    "0.0251210000000000"    "56909659.8476522"    "6178.04002672"    "0.0253722100000000"    "0.00083018"    "0.00876095"
"2019-03-02 17:54:59.113001-05"    "0.0214730000000000"    "87919859.2583976"    "6171.64619072"    "0.0215151700000000"    "0.00098229"    "0.01201923"
"2019-03-02 17:50:21.684732-05"    "0.0214710000000000"    "87919859.2583976"    "6171.64619072"    "0.0216857100000000"    "0.00098229"    "0.01201923"
"2019-03-02 17:50:21.680761-05"    "0.0214710000000000"    "87919859.2583976"    "6171.64619072"    "0.0216857100000000"    "0.00098229"    "0.01201923"
"2019-03-02 17:50:21.673708-05"    "0.0214710000000000"    "87919859.2583976"    "6171.64619072"    "0.0216857100000000"    "0.00098229"    "0.01201923"
"2019-03-02 17:50:20.450875-05"    "0.0214710000000000"    "87919859.2583976"    "6171.64619072"    "0.0216857100000000"    "0.00098229"    "0.01201923"
"2019-03-02 17:50:20.439915-05"    "0.0214710000000000"    "87919859.2583976"    "6171.64619072"    "0.0216857100000000"    "0.00098229"    "0.01201923"
"2019-03-02 17:50:19.782113-05"    "0.0214710000000000"    "87919859.2583976"    "6171.64619072"    "0.0216857100000000"    "0.00098229"    "0.01201923"
"2019-03-02 17:50:19.779452-05"    "0.0214710000000000"    "87919859.2583976"    "6171.64619072"    "0.0216857100000000"    "0.00098229"    "0.01201923"
"2019-03-02 17:49:35.973273-05"    "0.0214710000000000"    "87919859.2583976"    "6171.64619072"    "0.0216857100000000"    "0.00098229"    "0.01201923"
"2019-03-02 17:45:50.92341-05"    "0.0214880000000000"    "87919859.2583976"    "6171.64619072"    "0.0214950000000000"    "0.00098229"    "0.01201923"

These times are always Eastern. Most of the time, the block_reward of Dash is much lower, and then there are these periods where the reward jumps to these ridiculous numbers. Is it possible that there is a Dash client bug, or am I simply seeing an error in our dash.conf file that is causing the daemon to spit out such high values?
 
These blocks with 6k+ DASH supply are so called superblocks - blocks in which proposals are paid.

EDIT:

When next block to be mined is a superblock `getblocktemplate` should have `superblock` array filled with items you must include in coinbase tx outputs, just like you must include `masternode` items normally.
 
Hi Steve,

To add to what UdjinM6 said, the superblocks occur about once a month at block height % 16616. You can know when to expect them by checking "getgovernanceinfo".

Code:
/app/dash-cli -conf=/app/dash.conf getgovernanceinfo
{
  "governanceminquorum": 10,
  "masternodewatchdogmaxseconds": 3600,
  "sentinelpingmaxseconds": 3600,
  "proposalfee": 5.00000000,
  "superblockcycle": 16616,
  "lastsuperblock": 1046808,
  "nextsuperblock": 1063424
}
 
These blocks with 6k+ DASH supply are so called superblocks - blocks in which proposals are paid.

EDIT:

When next block to be mined is a superblock `getblocktemplate` should have `superblock` array filled with items you must include in coinbase tx outputs, just like you must include `masternode` items normally.

The huge value caused us to devote all hashrate to Dash and find this block, but it was rejected by the network, probably for the reason you stated.

1. How much of that reward goes to the miner? Is all that money allocated to thousands of addresses and the miner just gets the normal reward?
2. How can I get the Dash client to send this type of block template in regtest mode, so that we can add support for these blocks?
 
The huge value caused us to devote all hashrate to Dash and find this block, but it was rejected by the network, probably for the reason you stated.

1. How much of that reward goes to the miner? Is all that money allocated to thousands of addresses and the miner just gets the normal reward?
2. How can I get the Dash client to send this type of block template in regtest mode, so that we can add support for these blocks?

1. Most of the money go to proposals of course. You can calculate miner reward as "coinbasevalue - sum(superblock[amount]) - sum(masternode[amount])". See https://github.com/unomp/node-merged-pool/blob/master/lib/transactions.js#L134-L197 as an example.
2. It's probably going to be hard to emulate this in regtest cause you need masternodes to vote on proposals for this kind of block to be produced. You can use testnet instead - superblocks are generated every 24 blocks there.
 
Thanks for your help! I decided that, because regtest is so difficult, I would just surround this code by a try/catch block. If the parsing isn't right, Dash will be in error and the superblock won't be mined by us, but either way no more money will be lost.

The Dash community is always helpful. One of the reasons you have so many pools mining Dash is because people are available to answer simple questions like these. The importance of documentation should never be underestimated.
 
Back
Top