Simply put, a masternode is a server with a full copy of the Dash blockchain, which guarantees a certain minimum level of performance and functionality to perform certain tasks related to block validation, as well as PrivateSend and InstantSend, as the privacy and instant transaction features in Dash are called. The masternodes are paid for this service, using a concept known as Proof of Service. This is in addition to the Proof of Work done by miners to secure the blockchain. Masternodes are also allowed to vote on governance and funding proposals, with each masternode receiving one vote (yes/no/abstain) on each proposal submitted to the system.
Masternodes are paid by the network for the PrivateSend, InstantSend and governance services they provide. 45% of the block reward is paid out to the masternodes, 45% to miners and 10% to the budget. In practice, half of the reward from a normal block goes to the miner and half to the masternode. Then, every 16,616 blocks (approximately 30.29 days), a superblock is created that contains the entire 10% payout to the budget proposal winners. Masternodes are selected for payment in each block (approximately every 2.6 minutes) from a deterministic masternode list, and moved to the back of the list after payment. As more masternodes are created, the duration between payments increases. If the collateral behind a masternode is spent, or if a masternode stops providing services to the network for more than one hour, it is removed from the list until normal service resumes. In this way, masternodes are given incentive to provide efficient and reliable services to the network.
达世币拥有很多具有完整达世币区块链的服务器，并且这些服务器还能为达世币网络服务，这一点非常重要。得益于区块奖励机制，达世币不存在主节点数量不足的风险，并且研发人员还能以此为依托推行新的去中心化功能。这正是达世币的真正优势所在 - 达世币区块链以奖励机制确保主节点 24x7 为网络服务，同时达世币还能有效地实现扩容并以更高效的方式部署各项服务。更多的主节点就意味着更强大、更安全的达世币网络。
As of November 2018, the Dash network has over 5000 masternodes located in over 45 countries and hosted on over 140 ISPs. The block reward is approximately 3.34 Dash, so the selected masternode receives 1.67 Dash per payment or approximately 6 Dash per month. The block reward decreases by 7.14% approximately once per year, so the annual earnings for a masternode owner is approximately 7% of the collateral, and will decrease over time as calculated here. See this tool to calculate real-time payment rates, and this site for various real-time statistics on the masternode network.
DIP003 Masternode Changes¶
Dash 0.13.0 实现了 DIP003，引入了关于一个 Dash 主节点如何建立和操作的多处变化。文档列表如下：
- DIP003 确定性主节点列表
- DIP003 Masternode Changes (you are here)
- Dash 0.13 Upgrade Procedure for Masternodes (legacy documentation)
- Full masternode setup guide
- Information for users of hosted masternodes
- Information for operators of hosted masternodes
Important concepts and changes:
- It is possible to upgrade an existing masternode in-place without starting a new server and without moving your 1000 DASH collateral.
- A masternode was previously “started” using the
masternode start-aliascommand based on a
masternode.conffile. Under DIP003, this file is no longer used, and masternodes are “registered” instead of “started”. Masternodes begin offering services when a ProRegTx special transaction containing a particular key is written to the blockchain.
- As before in
masternode.conf, the ProRegTx references the transaction id (txid) and index holding the collateral. The IP address and port of the masternode are also defined in this transaction.
- The ProRegTx contains 2 Dash addresses (also called public keys) and
one BLS public key, which represent 3 different roles in the
masternode and define update and voting rights. The keys are:
ownerKeyAddr: This is a Dash address (public key) controlled by the masternode owner. It is different from the address used for the collateral. Because the owner uses the private key associated with this address to issue ProUpRegTx transactions, it must be unique for each masternode.
operatorPubKey: This is the BLS public key of the masternode operator. Only the operator is allowed to issue ProUpServTx transactions. Because the operator key is used during live masternode operation to sign masternode-related P2P messages, quorum-related messages and governance trigger votes, the BLS key must be unique for each masternode.
votingKeyAddr: This is a Dash address (public key) used for proposal voting. Votes signed with the corresponding private key are valid while the masternode is in the registered set.
- Masternode payments were previously sent to the address holding the collateral. Under DIP003, the owner should specify a different address to receive payments in the ProRegTx. The owner may optionally specify a non-zero percentage as payment to a separate masternode operator, if applicable.
- The masternode configuration can later be updated using ProUpServTx, ProUpRegTx and ProUpRevTx transactions. See Updating Masternode Information in DIP003 and Updating Masternode Information in this documentation for more details.
- All functions related to DIP003 will only take effect once Spork 15 is
enabled on the network. Until then, it is necessary to set up the
masternode following the old process
and then work through the upgrade procedure.
In this state, the masternode will continue to function in
compatibility mode, and all DIP003 related functions, such as payments
to a separate address or percentage payments to operators, will not
yet have any effect. The
votingKeyAddrmust also be identical until Spork 15 is enabled.
The process of setting up or upgrading a masternode is as follows:
- Set up your server and operating system
- Install the Dash software and synchronize the blockchain
- Generate a BLS key pair and enter the private key on the masternode
- Prepare a ProRegTx transaction
- Sign the ProRegTx transaction
- Submit the signed ProRegTx transaction
Step 1 can be omitted if you have an existing server. Steps 2 and 3 require direct access to the masternode. Steps 3 and 4 require access to a Dash Wallet (or DMT). Step 5 requires access to the wallet actually holding the collateral. Step 6 requires a Dash balance to pay the transaction fee.
主节点 vs. 挖矿¶
Masternode payments in Dash version 0.13.0 are entirely deterministic and based on a simple list sort algorithm. For documentation of version 0.12.0 payment logic, see the legacy masternode payment documentation. Dash version 0.13.0 implements DIP003 and defines two sets of masternodes.
- The full set, which contains all registered masternodes that have not spent their collateral funding transactions.
- The valid set, a subset of the full set which contains all masternodes which are not marked as Proof of Service (PoSe) banned.
Each masternode in the set of valid masternodes, identified by its registration transaction ID, is associated with the block at which it was last paid. If it has never received payment or was banned for failing to meet the PoSe requirements, then the block at which it was first registered or at which service was restored is used instead. The list is sorted in ascending order by this block height and ProRegTx hash (as a tie breaker in case two masternodes were registered in the same block), and the first entry is selected for payment.
Proof of Service¶
Proof of Service (PoSe) is a scoring system used to determine if a masternode is providing network services in good faith. A number of metrics are involved in the calculation, so it is not possible to game the system by causing masternodes to be PoSe banned for failing to respond to ping requests by e.g. a DDoS attack just prior to payment. Each failure to provide service results in an increase in the PoSe score relative to the maximum score, which is equal to the number of registered masternodes. If the score reaches the number of registered masternodes, a PoSe ban is enacted and the masternode must be repaired to ensure it provides reliable service and registered in the list again using a ProUpServTx. The current scoring rules as of Dash 0.14 are:
- Failure to participate in DKG= 66% punishment
- Each subsequent block reduces PoSe score by 1
In past versions of Dash, quorums of 10 masternodes were formed spontaneously to lock InstantSend transactions. As of Dash 0.14, quorums are deterministically formed, contain more masternodes and remain alive for a longer period of time. While they remain responsible for InstantSend transactions, the locking mechanism has changed to automatically attempt locks on most network transactions according to the requirements described here. Masternodes are now also responsible for more network consensus functions, such as ChainLocks. Masternode quorums are formed through a process of distributed key generation. Failure to participate in DKG will eventually result in a PoSe ban as described above.
- A server or VPS running Linux: Most recent guides use Ubuntu 18.04 LTS. We recommend VPS services such as Vultr and DigitalOcean, although any decent provider will do. Generally an instance with low to average specifications will do, although performance requirements will increase according to this roadmap.
In addition to the 1000 Dash held in collateral, masternodes also have minimum hardware requirements. For Dash versions 0.14 and higher, these requirements are as follows:
|CPU||1x 1 GHz||1x 2 GHz|
|RAM||2 GB + 2 GB swap||4 GB + 2 GB swap|
|Disk||40 GB||60 GB|
|Network||400 GB/mth||1 TB/mth|
The exact hardware requirements for Dash Evolution masternodes have yet to be determined, although some pointers can be taken from the roadmap and this blog post. It should be possible to run Dash masternodes on normal VPS servers until the block size reaches approximately 20 MB, after which custom hardware such as GPUs and eventually ASICs may be required.