New Dash Developer Documentation site

thephez

Member
Dash Core Team
Jan 23, 2016
113
49
78
We are pleased to announce the Dash-Docs developer documentation website (https://dash-docs.github.io) that has been in development for several months. Based on a fork of bitcoin.org, the site focuses specifically on providing access to technical information related to the Dash project/protocol.

In addition to information that overlaps with Bitcoin, the site was expanded with information on all Dash specific features (InstantSend, PrivateSend, Masternodes, and Governance).

Coverage includes:
** As with bitcoin.org, this documentation has not been extensively reviewed by Dash experts and likely contains errors. The Issue and Edit links on subheading can be used to help improve the content.
 

Stealth923

Well-known Member
Foundation Member
Mar 9, 2014
345
374
233
This is freaking a freaking HUGE repository of info for Dash and what has been needed for a very long time. Very well written and professionally presented.

Amazing work @strophy and team.
 
  • Like
Reactions: daf

ThisMustBeTrue

New Member
May 8, 2017
7
0
1
34
I found a small mistake at https://dashpay.atlassian.net/wiki/spaces/DOC/pages/134414366/Emission+rate

Dash Coin Emission
While Dash is based on Bitcoin, it significantly modifies the coin emission rate to offer a smoother reduction in coin emission over time. While Bitcoin reduces the coin emission rate by 50% every 4 years, Dash reduces the emission by one-fourteenth (approx. 7.14%) every 210240 blocks (approx. 383.25 days). It can be seen that reducing the block reward by a smaller amount each year offers a smoother transition to a fee-based economy than Bitcoin.
It should say (approximately 365 days) instead of (approx. 383.25 days)

210240 blocks * 2.5 min/block / 60 min/hr / 24 hr/day = 365 days.
 

ThisMustBeTrue

New Member
May 8, 2017
7
0
1
34
I found a small mistake at https://dashpay.atlassian.net/wiki/spaces/DOC/pages/134414366/Emission+rate

Dash Coin Emission
While Dash is based on Bitcoin, it significantly modifies the coin emission rate to offer a smoother reduction in coin emission over time. While Bitcoin reduces the coin emission rate by 50% every 4 years, Dash reduces the emission by one-fourteenth (approx. 7.14%) every 210240 blocks (approx. 383.25 days). It can be seen that reducing the block reward by a smaller amount each year offers a smoother transition to a fee-based economy than Bitcoin.
It should say (approximately 365 days) instead of (approx. 383.25 days)

210240 blocks * 2.5 min/block / 60 min/hr / 24 hr/day = 365 days.
Block reward allocation
Unlike Bitcoin, which allocates 100% of the block reward to miners, Dash splits the block reward between the miner, a deterministically selected masternode, and the decentralized budget system. Dash features superblocks, which appear every 16616 blocks (approx. 30.29 days) and release 10% of the cumulative budget over that budget cycle period to the winning proposals in the budget system. To pay for superblocks, the block reward for normal blocks over the period is reduced by 10%. Normal block payments are split equally between miners and masternodes according to the payment logic, resulting in an coin reward allocation over a budget cycle as follows:​

This is wrong too. Should be (approx. 28.847 days) if the number of blocks is accurate.
 

ThisMustBeTrue

New Member
May 8, 2017
7
0
1
34
Block reward allocation
Unlike Bitcoin, which allocates 100% of the block reward to miners, Dash splits the block reward between the miner, a deterministically selected masternode, and the decentralized budget system. Dash features superblocks, which appear every 16616 blocks (approx. 30.29 days) and release 10% of the cumulative budget over that budget cycle period to the winning proposals in the budget system. To pay for superblocks, the block reward for normal blocks over the period is reduced by 10%. Normal block payments are split equally between miners and masternodes according to the payment logic, resulting in an coin reward allocation over a budget cycle as follows:​

This is wrong too. Should be (approx. 28.847 days) if the number of blocks is accurate.
So apparently the actual average time per block is 2.625 minutes instead of 2.5 minutes. I didn't know this. If that is true than I am wrong and the documentation is right.
 

moocowmoo

Bovine Bit-flipper
Foundation Member
Jun 15, 2014
483
603
263
masternode.me
Dash Address
XmoocowYfrPKUR6p6M5aJZdVntQe71irCX
So apparently the actual average time per block is 2.625 minutes instead of 2.5 minutes. I didn't know this. If that is true than I am wrong and the documentation is right.
Yes, you're not going crazy, dash blocks are 2.625 minutes apart!

Thank you for taking the time to check the math! I appreciate you taking the
time to look at the details! @strophy notified me of an error in one of my
documents that had been there for over a year because nobody had checked for
themselves.

I've casually tried a few times to get to the bottom of the 5% overage and have
found some candidate off-by-one iterator ranges but never found one that
exactly fit. It's probably a combination of factors.

@UdjinM6 commented on one such gremlin when he refactored a relevant section:
https://github.com/dashpay/dash/blob/master/src/pow.cpp#L114

I just added an annual breakdown to https://stats.masternode.me/network-report/latest/json
You can see mn_per shows the issue's been there since day one.
 

demo

Well-known Member
Apr 23, 2016
3,114
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
We are pleased to announce the Dash-Docs developer documentation website (https://dash-docs.github.io) that has been in development for several months. Based on a fork of bitcoin.org, the site focuses specifically on providing access to technical information related to the Dash project/protocol.

In addition to information that overlaps with Bitcoin, the site was expanded with information on all Dash specific features (InstantSend, PrivateSend, Masternodes, and Governance).

Coverage includes:
** As with bitcoin.org, this documentation has not been extensively reviewed by Dash experts and likely contains errors. The Issue and Edit links on subheading can be used to help improve the content.
Hello,

Please help with the usage , I have to run just -sporkkey <privkey>

What is a syntaxis

Do I need to convert privkey to wif ?

Thank you
Why I cant find an answer to his question in the docs?
 

thephez

Member
Dash Core Team
Jan 23, 2016
113
49
78
Why I cant find an answer to his question in the docs?
If you wanted to use your own key, that would require modifying the Dash Core source. At that point, you would have effectively forked it and not be in consensus with the Dash network. If you didn't also modify it to prevent relaying the spork message, you would be immediately banned from the Dash network by nodes running with default ban score parameter (see the last entry in the Misbehaving Nodes table or this part of the Spork message processing logic). This is because the spork message signature verification would fail due to you using a key other than the one hard-coded into Core.
As I understand it at this point, configuring Dash to accept a user-provided key for signing spork messages on either mainnet or testnet would render that client incompatible with the network.

If someone wanted to do some research or something on the side (not connected to the Dash network), they could just modify the default values for the sporks (in sporks.h). Either way they are going to have to change source code.
 

ThisMustBeTrue

New Member
May 8, 2017
7
0
1
34
Yes, you're not going crazy, dash blocks are 2.625 minutes apart!

Thank you for taking the time to check the math! I appreciate you taking the
time to look at the details! @strophy notified me of an error in one of my
documents that had been there for over a year because nobody had checked for
themselves.

I've casually tried a few times to get to the bottom of the 5% overage and have
found some candidate off-by-one iterator ranges but never found one that
exactly fit. It's probably a combination of factors.

@UdjinM6 commented on one such gremlin when he refactored a relevant section:
https://github.com/dashpay/dash/blob/master/src/pow.cpp#L114

I just added an annual breakdown to https://stats.masternode.me/network-report/latest/json
You can see mn_per shows the issue's been there since day one.
I just saw this. https://bitinfocharts.com/comparison/dash-confirmationtime.html#log

It shows that the blocktime was 2.5 minutes per block until 5/15/2014 and before it jumped to its current time. Something changed then. What was it?
 

thephez

Member
Dash Core Team
Jan 23, 2016
113
49
78
My guess is that it was due to this - "Masternode Payments, DGW3 and Magic Numbers Fix. Hard fork on May 14th!"