美文网首页区块链
tendermint源码阅读(九)

tendermint源码阅读(九)

作者: 印随2018 | 来源:发表于2018-11-09 16:28 被阅读42次

    关注点:validator

    一个Tendermint 节点要想要变成validator的话,有两个途径

    1. 在genesis.json中内置
    2. 创建create_validator交易

    这里的关键逻辑就是把validator和delegator创建关联关系,validator获得的奖励就会发送到delegator的账户中。这个过程类似于以太坊中设置basecoin账户。

    如果是想移动validator节点,只需要移动priv_validator.json文件即可,原来的节点需要删除priv_validator.json,然后重新启动就可以了。


    下面是加载priv_validator.json的逻辑

    github.com/tendermint/tendermint/privval/priv_validator.go

    // LoadOrGenFilePV loads a FilePV from the given filePath
    // or else generates a new one and saves it to the filePath.
    func LoadOrGenFilePV(filePath string) *FilePV {
        var pv *FilePV
        if cmn.FileExists(filePath) {
            pv = LoadFilePV(filePath)
        } else {
            pv = GenFilePV(filePath)
            pv.Save()
        }
        return pv
    }
    

    上面可以看出,如果配置文件不存在的话,就自动创建一个。这就说明配置文件priv_validator.json我们可以随时删除,tendermint就会重新生成一个新的配置文件。

    注意: 在移动priv-validator.json的时候,务必删除文件里名称为last_*的所有字段,因为这几个字段保存了和链相关的状态信息。

    相关文章

      网友评论

        本文标题:tendermint源码阅读(九)

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