tendermint源码阅读(九)

关注点: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_*的所有字段,因为这几个字段保存了和链相关的状态信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 9,326评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,329评论 19 139
  • 今天是2018年的除夕,小伙伴们的新年愿望是什么呢?是希望未来的生活更美好?还是事业能步步高升?还是希望财运滚滚....
    L姐的故事阅读 2,944评论 0 0
  • 黑鱼,有暖胃、补虚、泽肤、祛风、杀虫、补五脏等功能,可用作迁延性肝炎、慢性肝炎的辅助治疗。肝炎患者用鲜带鱼蒸熟后取...
    渔美香21阅读 1,573评论 0 0
  • iOS应用,一般审核成功之后在几个小时内便会在应用商店显示更新。但是有时候因为某果的缓存机制,导致了应用审核成功之...
    coenen阅读 1,807评论 0 2