百度超级链XuperUnion可插拔共识(Ubuntu18.04)

一、使用pow共识创建链

  • 将node1、node2和node3节点data/config/xuper.json文件中内容替换如下:
{
    "version" : "1",
    "predistribution": [
        {}
    ],
    "maxblocksize" : "128",
    "award" : "1000000",
    "decimals" : "8",
    "award_decay": {
        "height_gap": 31536000,
        "ratio": 0.5
    },
    "genesis_consensus": {
        "name": "pow",
        "config": {
                "defaultTarget": "19",     
                "adjustHeightGap": "10",  
                "expectedPeriod": "15",   
                "maxTarget": "22"
        }
    }
}
  • node1、node2和node3节点分别创建链并启动节点:
./xchain-cli createChain
nohup ./xchain &

二、发起提案

  • 准备一个tdpos共识的配置文件proposal.json:
{
    "module": "proposal",
    "method": "Propose",
    "args" : {
        "min_vote_percent": 51,     # 最小投票比例
	    "stop_vote_height": 300     # 停止投票高度
    },
    "trigger": {
        "height": 310,              # 触发高度
        "module": "consensus",
        "method": "update_consensus",
        "args" : {
            "name": "tdpos",
            "config": {
                "proposer_num":"3",
                "period":"3000",
                "term_gap":"60000",
                "alternate_interval": "3000",
                "term_interval": "6000",
                "block_num":"10",
                "vote_unit_price":"1",
                "init_proposer": {
                    "1": ["Wv4sF8AkHq6PkpTA7nDme3qVdoux9eRML", 
                          "ZXBL5EpW2rjDa2fGUa1gegGysdtLYKkZn", 
                          "RdTJvH4k6CFkJqoUL2wWYz51pmDT8dQZ4"]
                }
            }
        }
    }
}
  • 发起一笔提案交易
    在提案节点下,执行给自己转账的操作,并在 --desc 参数里传入提案proposal.json
./xchain-cli transfer --to `cat data/keys/address` --desc ./proposal.json --amount 100

在这里插入图片描述

  • 查询交易:
./xchain-cli tx query 0575c7ebc2376d82a108f8249bdb2622e2b6d9b7828fc3408ff0cb149e887e24

blockid不为空,说明交易已经上链:
百度超级链XuperUnion可插拔共识(Ubuntu18.04)_第1张图片

三、投票

  • 可以对已经发起的提案进行投票:
    --amount后面是要投票的金额 。
    --frozen后面是要冻结的高度,冻结高度要大于停止投票高度,否则是无效投票。
./xchain-cli vote --amount 84000000 --frozen 350 0575c7ebc2376d82a108f8249bdb2622e2b6d9b7828fc3408ff0cb149e887e24

在这里插入图片描述

  • 再次投票,当账户内未被冻结的金额不够时会投票失败:
    在这里插入图片描述
  • 查看节点被冻结的资产总量:./xchain-cli account balance -Z
    在这里插入图片描述
  • 查看全链的资产总量:./xchain-cli status | grep -i utxoTotal
    在这里插入图片描述
  • 当提案还未触发时,查询tdpos的信息查询不到:./xchain-cli tdpos status
    在这里插入图片描述
  • 等到生效高度到达,提案触发后,就可以查询到tdpos的信息,说明共识已经切换:
    百度超级链XuperUnion可插拔共识(Ubuntu18.04)_第2张图片

你可能感兴趣的:(区块链)