了解达世币主节点#

主节点曾是达世币的专属,但它现在已经像一项技术一样在各个区块链上流行起来了。本章节将为用户介绍主节点的原则、机制和它为达世币网络提供的服务。

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 InstantSend and CoinJoin, as the and instant transaction and privacy 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.

任何个人都可以运行达世币主节点。主节点的目标是提高去中心化程度,从而避免某个人或某一群体掌控大量的主节点。不过,为了防范不必要的主节点或莽撞的持有人,达世币网络要求个人存入1000个达世币用以证明资格,能够持有一个主节点。这笔资金不必绑定在主节点上,但是必须存在达世币网络上并向整个网络公开。一旦持有人将资金提现或支出,主节点将停止运行而关联的区块奖励也将停止支付。

Masternodes are paid by the network for the InstantSend, CoinJoin and governance services they provide. 10% of the block reward goes to the budget with the remaining 90% split between miners and masternodes per this block reward reallocation table. 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 主节点如何建立和操作的多处变化。文档列表如下:

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-alias command based on a masternode.conf file. 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:

    1. 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.

    2. 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.

    3. 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 ownerKeyAddr and votingKeyAddr must also be identical until Spork 15 is enabled.

The process of setting up or upgrading a masternode is as follows:

  1. Set up your server and operating system

  2. Install the Dash software and synchronize the blockchain

  3. Generate a BLS key pair and enter the private key on the masternode

  4. Prepare a ProRegTx transaction

  5. Sign the ProRegTx transaction

  6. 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. 挖矿#

和比特币及其它加密数字货币一样,达世币以包含所有交易的分布式帐本为基础,这些帐本也称区块链。达世币和比特币区块链由于共识机制的存在得到了保障,这种共识机制被称作工作量证明(PoW)。矿工通过专用的设备来解决难题,在难题解决后,他们有权向区块链添加新的区块。如果运行软件的其他用户认为难题已经得到了恰当的解决,那么新的区块将会被添加到区块链上,而矿工也将得到区块奖励。

Dash works a little differently from Bitcoin, however, because it has a two-tier network. The second tier is powered by masternodes (Full Nodes), which enable financial privacy (CoinJoin), instant transactions (InstantSend), and the decentralized governance and budget system. Because this second tier is so important, masternodes are also rewarded when miners discover new blocks. The breakdown is as follows: 90% of the block reward is split between the miner and a masternode per the distribution found here, while 10% is reserved for the budget system (created by superblocks every month).

主节点系统也称服务量证明(PoSe),因为主节点的实质正是为网络提供关键的服务。事实上,整个达世币网络都由主节点监督,它们有权驳回由矿工创建的不合格的区块。如果矿工尝试占有全部的区块奖励或运行旧版的达世币软件,那么主节点网络就会孤立该区块,使它无法添加到区块链上。

简而言之,矿工组成了网络的第一层级,为用户提供资金的发送和接收服务并防止双花支付的发生。主节点则构成了网络的第二层级,为达世币与众不同的性能提供支持。主节点不参与挖矿活动,因此挖矿的设备并不能充当主节点。要想持有主节点,用户必须持有1000达世币作为”保证金”。这笔保证金始终由持有人全权掌控,并且可以被持有人自由支配。换言之,保证金不会以任何方式予以锁定。不过,一旦保证金被转移或支付,对应的主节点将会下线并停止接收区块链奖励。

有关支付的逻辑#

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.

  1. The full set, which contains all registered masternodes that have not spent their collateral funding transactions.

  2. 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.

主节点的相关要求#

  • 用户必须存入1000个达世币作为保证金才能有资格运营主节点。用户可以借助Poloniex、Bittrex、Kraken、LiveCoin和Shapeshift等交易平台获取达世币。

  • A server or VPS running Linux: Most recent guides use Ubuntu 20.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.

  • 专用IP地址通常随服务器/虚拟专用服务器一起提供。

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

网络

400 GB/mth

1 TB/mth

达世币的带宽使用约为每个月300-500 GB,并且这一数字还将随着网络的发展而增长。

Dash Evolution#

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.