https://developers.eos.io/manuals/eos/v2.0/nodeos/replays/index
最近各种原因,感觉进度有些慢,所以会稍微改变下策略,以提升学习进度。
之前几乎是每句话都会看多遍,且按句翻译,这对于某些不是特别核心的知识点不是有必要的,有些内容在需要时再去查找就好了,知道有这个东东就行。因此,后续会根据个人对重要性的判断,会进行内容的取舍,以加快进度。
1, 重放
所谓重放就是,一个干净的nodeos去重新“执行”一遍当前区块链上的所有交易,以达到某种数据状态的动作。
用于一个干净的nodeos快速跟上当前区块链的数据状态。
有两种方式实现重放:
1)通过blocks.log文件:blocks.log文件包含所有不可逆的块,该方式会重建所有交易历史,不会为网络增加不必要的负载。
2)通过snapshot文件:snapshot是通过正在运行的nodeos节点创建的,该方式没有所有历史信息,只有某个点的chain state信息。
2,日志
日志的配置在logging.json中,在nodeos目录中没有找到该配置。官方文档说是在nodeos/config下,可能是我的没有配置,默认没有。
日志有两种打印方式:
1)console:直接输出到屏幕上
2) GELF:graylog extended log format.将日志发送到graylog
3,升级指导
https://developers.eos.io/manuals/eos/v2.0/nodeos/upgrade-guides/1.8-upgrade-guide
翻译:https://blog.csdn.net/EOS42/article/details/90717404
这章相对重要。主要是对1.7及之前版本升级到1.8版本的情况作指导。
3.1 测试网络
任何升级都应该先在测试网络部署且验证后才能部署到正式网络上。
支持初始协议集升级的nodeos版本是v1.8.1。
不理解PREACTIVATE_FEATURE,NO_DUPLICATE_DEFERRED_ID之类的协议特性是干啥的,希望牛人指导。
3.2 升级过程
这些步骤应该在一个额外的节点上执行,它们可以在一段较长时间内离线:
1)确保当前节点运行在最近稳定的release版本(1.7)上,然后关闭nodeos
2)备份并删除data目录中的文件夹:blocks/reversible,state
3)用新的release版本替换旧的nodeos版本
4)启动新的 1.8.x 版本的 nodeos, 将其从创世文件开始进行完全的重播(replay), 与网络同步。节点应接收区块,LIB 应当往前进。运行着 v1.8.x 与 v1.7.x 的节点在激活首个协议升级特征之前可以在相同网络中同时存在。
3.3 BP需要注意的
BP需要在一个专门的机器上进行重放,然后可以快速切换到生产环境。
一旦所有BP激活了PREACTIVATE_FEATURE,所有运行1.7的节点无法继续同步区块,lib不会在前进。因此,协调升级的日期是非常重要的。
升级过PREACTIVATE_FEATURE之后,再升级其他feature将会非常简单,可以在任何时间升级。
网友评论