美文网首页比特股开发区块链研习社
比特股中见证人节点的备份 - backup your witne

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

作者: will_king | 来源:发表于2018-03-12 18:49 被阅读134次

    区别于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切换到备用节点

            }

        }

    }

    相关文章

      网友评论

      • 29b1d63ed180:你好。我想请问下在公网中,见证人是账户还是节点呢?

      本文标题:比特股中见证人节点的备份 - backup your witne

      本文链接:https://www.haomeiwen.com/subject/ctlofftx.html