比特股开发区块链研习社

比特股中见证人节点的备份 - backup your witne

2018-03-12  本文已影响134人  will_king

区别于BTC和ETH的POW共识机制,比特股采用DPOS共识,更加节省能源并且效率更高。但同时也意味着见证人节点(witness_node)非常重要,作为witness节点可以参与全网的手续费分成,所以如果你有一个见证人节点,做好备份是相当重要的,否则一旦宕机就会失去见证人资格,那损失可不小。

比特股中见证人节点备份的逻辑:

你的活跃节点,使用config.ini中配置的私钥对区块进行签名。

你的备份节点,必须使用一个不同的私钥进行签名,可以通过钱包的suggest_brain_key命令生成

使用一个脚本进行自动化监控和切换 (如: https://github.com/roelandp/Bitshares-Witness-Monitor)。

一旦你的活跃节点不再产生区块,missing blocks 参数将会增加,然后,自动化监控脚本将调用update_witness方法将见证人替换成备份节点。

伪代码:

var witness = "your_account_name";

var check_rate = 45;

var start_missed = -1;

var current_missed = 0;

var threshold_witness_flip = 5; //错过5个区块,则切换到备用节点

while(true) {

    check_witness();

    sleep(check_rate);

}

function check_witness() {

    status = bitshares.get_witness(account_name); //调用wallet api的get_witness方法

    total_missed = status['total_missed'];

   if(start_missed == -1) {

        start_missed = total_missed;

    }

    if(total_missed > current_missed) {

        notify(); //如果有新的丢失区块,发送通知

        current_missed =total_missed

        if(total_missed - start_missed >= threshold_witness_flip) {

            bitshares.wallet.unlock(walletpwd); //解锁钱包

            bitshares.update_witness(witness,url=witness_url,key=backup_signing_key); //调用update_witness切换到备用节点

        }

    }

}

上一篇下一篇

猜你喜欢

热点阅读