Skip to content

EDPoS操作指南

BigBang-Core edited this page Mar 13, 2020 · 1 revision

1. 根据POW操作指南完成关于POW挖矿的所有设置

说明:
1) 由于DPOS出块需要在区块高度到达一定程度之后才开始,在这之前是由POW出块,所以POW出块是DPOS出块的前序
2) 可执行程序下载地址(请选择最新版下载):
https://github.com/bigbangcore/BigBang/releases
3) windows操作系统中,在当前目录下执行程序,“./bigbang”命令换成“bigbang”,下同

2. 运行可执行程序,生成两组备用密钥

说明:
1) 用于DPOS出块模板创建和相应钱包的使用
2) 使用命令./bigbang makekeypair生成两组公私钥对,使用命令“.bigbang getpubkeyaddress $pubkey”,通过公钥获得相应的公钥地址

密钥组一(花钱的,用于花费):
{
    "privkey" : "e7382046309d5a623bd87a75b666b088f53b8f86fa87a27d1aaafb5b174ca9f1",
    "pubkey" : "8e0594f219d5ffa30cc938fa9c26c76e0bfa3655fe91b67ee1b1891bee5dbb7f",
    "pubkeyaddress" : "1fyxnvvgvh6ry2znpj7z5adqt1dqce9mwz8wcj353zzahkwmm0p74y0t4"
}

密钥组二(赚钱的,用于挖矿):
{
    "privkey" : "57bdb88a874facd3c1e5dada6b6ce4d7d271a101236523b9f0fd314576c96b4d",
    "pubkey" : "928aa9ac6e67b094024ca2a59a228eb6fd45a26bc3ee02d53b7689903f6a7941"
}

3. 手动修改POW中使用到的那个配置文件

在前面的POW操作指南中有过对配置文件bigbang.conf的描述,我们将其修改如下:

# 设置使用测试网络
testnet
# 启动P2P监听(IPV4)
listen4   

# 启动统计功能  
statdata
# 填写DNSEED地址,如果没有DNSEED,需要填写addnode参数  
dnseed=15.188.165.143

# gateway默认不提供,则只能同步数据而不能对外提供服务
# gateway=
# 添加P2P节点地址,如果采用DNSEED方式,可以不用填写该参数
# addnode=

# POW挖矿参数:奖励花费地址(花钱的--公钥地址--钱包地址)
cryptonightaddress=15wzfexznydjrsr0qwfma2ppjqs3y1krkpbdvhkme81y7wemytcaf8k28
# POW挖矿参数:POW挖矿打包签名的私钥(赚钱的--私钥)
cryptonightkey=2f0d0cad44197616195558935407f9febc6028938022ce4dfc912e759c7b45f0

# DPOS挖矿参数:奖励花费地址(花钱的--公钥地址--钱包地址)
mpvssaddress=1fyxnvvgvh6ry2znpj7z5adqt1dqce9mwz8wcj353zzahkwmm0p74y0t4
# DPOS挖矿参数:DPOS挖矿打包签名的私钥(赚钱的--私钥)
mpvsskey=57bdb88a874facd3c1e5dada6b6ce4d7d271a101236523b9f0fd314576c96b4d

注意: 如果在同一台主机上配置多个DPOS节点,需要每个节点的配置中port和rpcport参数不同

4. 完成配置后,重新启动程序,数据开始自动同步

5. 添加DPOS挖矿模板地址

./bigbang addnewtemplate delegate '{"delegate": "928aa9ac6e67b094024ca2a59a228eb6fd45a26bc3ee02d53b7689903f6a7941", "owner": "1fyxnvvgvh6ry2znpj7z5adqt1dqce9mwz8wcj353zzahkwmm0p74y0t4"}'
-20m0bk8tjwt73gtjb4jv8r6sa04fe22r3ns2era8zbnn20qfv8sz38vg6----挖矿模板地址

6. 投票

说明:用户向DPOS挖矿模板地址转入TOKEN即为投票,转入的源地址{$from}需要是DPOS挖矿模板地址中的owner参数对应的值  
命令:sendfrom <DPOS挖矿模板地址中的owner参数>  <DPOS挖矿模板地址>  <投票TOKEN>
示例:sendfrom 1fyxnvvgvh6ry2znpj7z5adqt1dqce9mwz8wcj353zzahkwmm0p74y0t4 20m0bk8tjwt73gtjb4jv8r6sa04fe22r3ns2era8zbnn20qfv8sz38vg6 1000

注意:

1) 节点需要配置DPOS挖矿参数,即mpvssaddress和mpvsskey,为了安全起见,这两参数应对应不同的私钥  
2) 需要向DPOS挖矿参数对应的DPOS模板地址转入TOKEN,TOKEN转出方必须是mpvssaddress参数的值,接收方为DPOS挖矿模板地址  
3) 传入的令牌数决定了地址的权重。模板地址拥有的令牌数与令牌总数的比率是权重。如果权重较大,则地址生成块的概率较高。如果权重很小,地址生成块的概率就比较低  
4) 总TOKEN数量为链总共发行的TOKEN数,随块高增涨而增加,可根据TOKEN发布规则计算出某块高的总TOKEN数量  
5) 第一阶段为POW出块,经过一定高度(公测过程中时长为7天,即过了7天(10080高度),实际正式上线后时常为3个月)之后,就可以出DPOS块(根据权重决定是否出DPOS块)  

7. Q&A

1) POW出块到多少高度,DPOS可以开始出块?这是基于什么原理设置的?    
答:在初始阶段,区块是以POW模式生成的。在此之后,如果DPOS矿工获得选票,DPOS将有机会生成区块。然而,是否生成DPOS区块取决于POW、投票和整个网络的随机数。在第一阶段,高度被硬编码到程序中。当当前高度低于此高度时,将生成POW块,当当前高度超过该高度时,是POW出块还是DPOS出块则由投票和随机数决定。

2) DPOS节点需要获得多少票才能获得出块权?   
答:DPOS节点最低需要获得总TOKEN数的2%才有机会参与DPOS出块节点竞争,最后根据投票情况选择排名前23位的节点参与随机数选择。至于需要获得多少票才能获得出块权,这需要根据全网的投票情况来定,节点获得的票数越多,则获得出块权的机会越高。

3) DPOS出块权限与权重的关系是怎样的?  
答:DPOS节点的权重,是由节点获得的TOKEN数量与总TOKEN数作为参数计算得来的,节点获得的投票越多,权重就越高,获得出块权的机会就越高。

4) 为什么添加挖矿模板时需要两组密钥?  
答:添加挖矿模板时需要添加两个参数,一个是挖矿用的私钥,用于BLOCK出块签名使用,另一个是TOKEN的花费地址,拥有该地址的私钥,才可以花费挖矿模板地址下所拥有的TOKEN。为了安全起见,这两组密钥不能相同。挖矿私钥是需要在挖矿节点保存的,有可能被泄露,所以这个私钥是不安全的。而另一个参数为花费地址,不需要给出私钥,只要私钥保存好,该模板地址中的TOKEN就是安全的,所以在我们的Bigbang系统中,使用两组密钥对可以提高安全性。

Clone this wiki locally