Tendermint v0.35 版本引入内存池优先性设置、点对点网络改造及更多变更
本文由 Cosmos China 中文技术社区翻译,原文作者为 Callum Waters。
原文链接:
https://medium.com/tendermint/tendermint-v0-35-introduces-prioritized-mempool-a-makeover-to-the-peer-to-peer-network-more-61eea6ec572d
变更日志:https://github.com/tendermint/tendermint/blob/v0.35.0/CHANGELOG.md升级说明:https://github.com/tendermint/tendermint/blob/v0.35.0/UPGRADING.md
支持内存池优先性设置
支持内存池优先性设置
随着网络事务负荷的增加,通过支持系统经济性的方式有效减轻负荷的需求也在增加。为待处理事务添加优先级对解决这个问题大有助益,并且一段时间以来一直是 Tendermint 团队的目标。这项选择性加入功能允许应用程序向 CheckTx 的响应中添加一个 priority 和一个 sender 标识。随后根据该优先级在区块中提出事务处理请求。
新的 P2P 框架
新的 P2P 框架
Tendermint v0.35 对自 Tendermint 成立以来一直存在的传统 p2p 堆栈进行了改造,以便实现更清晰、解耦的抽象、更完善的对等生命周期管理、对等地址处理,以及可插拔传输。v0.35 版本改造后的 p2p 堆栈能够向后兼容 v0.34 版本,从而允许新、旧两代 p2p 堆栈并行使用。这些变更为 v0.36 和 v0.37 版本性能与可靠性的进一步提升打开了大门。
P2P 堆栈路线图详细信息:
https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-061-p2p-refactor-scope.md
改进状态同步(StateSync)功能
改进状态同步(StateSync)功能
Tendermint v0.34 版本首次实现了状态同步功能。状态同步是一项允许节点迅速同步到接近区块头高度的服务。基于运行此项服务的实时网络的持续反馈,Tendermint 团队也在不断调整和改进这一功能,例如引入了基于 p2p 的验证作为 RPC 端点的替代选项,添加了一项为潜在证据验证抓取数据的服务和用于调整吞吐量的新配置参数,并进行了一些其他的微小修复。
Go API 接口的内化与稳定性
Go API 接口的内化与稳定性
Tendermint 团队正致力于进一步提升 Tendermint 的稳定性和可靠性,进而实现将其打造为区块链行业标准的更大抱负。提供其他产品和服务可以依赖的稳定 API 接口,免除沉重的维护负担是实现这一重大抱负的重要一环。为此,开发团队正在仔细研究当前的 API 界面,以简化和更好地记录 Tendermint 的使用流程。
Tendermint v0.35 版本内化了一些反应器,存储和其他一些细枝末节,最终导出了一个干净的、最小的节点界面。Tendermint 团队对版本编号语义进行了长期讨论,同时也在不断努力理解用户如何使用 Tendermint,并思考怎样最好地适应多样的使用习惯,上述变更便是这些努力的一部分。
其他精彩改进
其他精彩改进
除了上文中介绍的变更外,Tendermint 团队还进行了许多微小的改进和修复,这些成果并未在此类文章中重点介绍,但其中有些值得一提:
现在可以通过 EventSink 接口进行自定义事务索引。这一功能还伴随 PostgreSQL 的实现,并包括增加 BeginBlock 和 EndBlock 事件。 Tendermint 团队引入了一种仅运行对等发现服务的轻量级「seed」节点类型。 数据库现在使用保留顺序的 varint 键编码来实现更快的范围扫描。这一功能附带了一个用于更新现有的 Tendermint 数据库的迁移脚本。 在启动期间增强节点可见性,并加强跟踪。这一功能包括在 status RPC 端点中释放新的块同步和状态同步事件以及更多同步信息。
未来展望
未来展望
2021 年 11 月 6 日,Tendermint v0.35 新版本公告正式发布,但是 Tendermint 工程团队依然在朝着 1.0 里程碑不断前进。如果您有兴趣查看并提供有关 v1.0 版本设想的反馈,请抽出茶歇时间来浏览 Tendermint 仓库中的路线图:https://github.com/tendermint/tendermint/blob/master/docs/roadmap/roadmap.md。
以上是目前关于本次更新的所有信息!Tendermint 团队会及时更新一些即将到来的更加令人兴奋的动态。和往常一样,如果您有任何问题需要帮助,或想要加入未来的对话,欢迎在 GitHub 的 Tendermint 仓库中开启 issue:https://github.com/tendermint/tendermint/issues/new/choose;或加入 Tendermint Discord 频道:https://discord.com/invite/vcExX9T。