CometBFT 是 Tendermint Core 的一个分支和继任者,是为互链及其他领域设计的状态机复制引擎,将作为驱动 Interchain Stack 的官方复制引擎。文章介绍了此次更名的原因,包括技术和管理方面的考虑,以及 CometBFT 的未来目标和发展方向。
今天我们宣布推出 CometBFT,这是一个用于互链及其他场景的状态机复制引擎!CometBFT 是 Tendermint Core 的一个分支和继任者,并将作为驱动 Interchain Stack 的官方复制引擎。 CometBFT 的长期愿景是成为可靠、安全、大规模、特定于应用程序的区块链的首选复制引擎。今天就用 CometBFT 提交你的区块吧!
Interchain Foundation、Informal Systems、Cosmos SDK 团队以及 Cosmos 生态系统中的众多其他团队一直在共同努力,为本次发布做准备。这篇文章探讨了围绕本次发布的一些最重要的问题。请放心,我们一直在努力使升级或采用 CometBFT 尽可能顺利。我们将介绍背景细节、CometBFT 的愿景和目标、这项工作背后的团队,以及技术影响方面的后续步骤。
我们决定在这个新名称下开发旗舰 Cosmos 共识引擎,以标志着席卷整个生态系统的多项重要变化。
在技术方面,互链在过去几年中发生了重大演变。我们生活在一个 IBC 原生、多链的世界中。ABCI 2.0 是 Interchain Stack 中缺失的关键部分,设计或质量保证方面(如模块化、集成或严格测试)也是如此。此外,放弃 Tendermint Core 的 v0.35 和 v0.36 版本暴露了开发方式上的技术限制;有关更多详细信息,请参见此处。
2022 年,维护 Interchain Stack 的组织启动了一项战略方法来缓解上述技术限制。这种方法包括在 Informal Systems 构建并专门组建一个完整的 Tendermint Core 团队。此外,在准备发布时,我们开始优先考虑质量以及与 Interchain Stack 其余部分的集成(即 Cosmos SDK、IBC 和更广泛的互链构建块)。
在管理方面,我们不拥有 tendermint GitHub 组织,也不拥有 “Tendermint” 的商标权。All in Bits (AiB) 是所有者。Tendermint Core 软件的开发在过去三年中一直在 All in Bits 之外进行。但是,AiB 对商标的所有权带来了持续的商标诉讼风险。如果没有与 AiB 达成复杂的协议,就不可能完全消除悬在 Interchain Stack 最关键部分开发人员头上的这种风险。
正如我们之前在 Twitter 上提到的,以及根据此讨论,AiB 单方面决定存档 Tendermint Core 存储库。因此,继续发展轨迹的前进方向(正如 AiB 所鼓励的那样)是 fork Tendermint Core 存储库。CometBFT 将建立在 Tendermint Core 奠定的基础上,并以用户、质量和集成为重点进行新的开发。
与这些技术和管理问题相一致,最重要的变化在于项目的长期愿景、目标和管理。这将我们带到本次讨论的下一部分。
作为 Cosmos 和互链生态系统的坚定管理者,Interchain Foundation 是公共产品资金和资产的可靠载体。自成立以来,ICF 一直是 “Cosmos” 商标的所有者,并以更广泛的社区的最佳利益来保护其使用。同样,ICF 已将 “CometBFT” 名称注册为商标,并建立了 CometBFT GitHub 组织,并打算为了不断发展的互链的最佳利益,长期管理这两者。CometBFT 将保持开源并获得 Apache2.0 许可。我们邀请所有感兴趣的各方为该软件的增长和开发做出贡献,并促进其开源价值。
如前所述,CometBFT 的长期任务是成为互链的首选复制引擎。CosmosSDK 团队、IBC 团队、CometBFT 维护者以及构成互链的众多工程团队(包括应用程序级别和公共产品)都拥有共同的愿景,即让 CometBFT 成为团队可以试验新功能、构建和迭代优化,并确保用户高度灵活性的场所,同时保持堆栈的完整性和稳健性。如果你是 Interchain Stack 的贡献者、运营验证器或节点、与其他生态系统集成,或者作为新用户在 Cosmos 中找到自己的方向,那么你的帮助将非常受欢迎,以实现这一目标。有关如何与我们联系,请参见下面的“参考资料”。
正如上面和先前所述,这标志着互链的新阶段。它的共识引擎正在发展成为专门为 IBC 原生世界构建的构建块。我们寻求继续与 Cosmos SDK 团队和当前用户密切合作,同时促进不断增长的在 ABCI 和 IBC 之上构建的应用程序开发人员的采用。CometBFT 的根本长期目标是在支持互链的增长中发挥关键作用。
更具体地说,CometBFT 的目标是:
实现这四个目标的一个重要策略是 Interchain Stack 的紧密集成;这将是 CometBFT 与 Tendermint Core 的其他 fork 之间的主要区别。通过在 Tendermint Core 提供的强大基础上构建,ABCI 2.0 将是上述方法的第一次迭代。我们将在第二季度初跟进详细的 2023 年路线图计划。
启动 CometBFT 是一项多组织决策。CometBFT 由 Informal Systems 与大量 Cosmos 利益相关者合作管理。此次发布涉及整个互链的多个团队的工作,包括 Cosmos SDK、IBC、Osmosis、Cosmos Hub,以及与 Agoric、Axelar、Oasis、Penumbra、Celestia、Anoma、Skip、Umee、Confio、Nomic、Numia、Sei、Evmos、Sommelier、Andromeda、Cronos 等的协调。
Informal 的 CometBFT 团队由一些最有才华和热情的 Cosmos 贡献者组成。我们将在 Twitter 上跟进,介绍核心团队成员以及来自其他互链团队的贡献成员。目前,足以说明核心团队包括研究工程师、经验丰富的 DevOps 和拥有数十年综合经验的软件工程师,以及在 Cosmos 领域拥有 10 多年综合经验的项目、产品和技术负责人。
启动 CometBFT 是一项正在进行的重大努力。以下是一些需要了解的重要事项。
如果你的工作依赖于 CometBFT,那么请考虑加入社区电话会议,该会议每两周的星期四举行一次:https://groups.google.com/g/cometbft-community/。除了 GitHub 存储库之外,社区电话会议是讨论 CometBFT 开发的重要论坛。它是开发人员收集你的的反馈、回答问题的地方,也是你作为用户与其他用户交流有价值的知识的地方。
如果你的应用程序是建立在 Cosmos SDK 之上:Cosmos SDK 团队将发布 0.45、0.46 和 0.47 系列的新 SDK 版本。根据 Interchain Stack 贡献者和项目之间的协议,这些版本将使用 CometBFT v0.34 而不是 Tendermint Core 0.34。升级到此 SDK 版本不需要协调升级,因为它是一个小版本更改。Cosmos SDK 变更日志 将记录你你的应用程序的相关更改。
如果你直接构建在 Tendermint Core 之上:作为维护者,我们建议你从 Tendermint Core v0.34 切换到 CometBFT v0.34。一旦我们发布第一个版本,我们将提供升级说明。请密切关注此处的 Github 存储库。
如果你正在维护 Tendermint Core 的 fork:我们建议尽快过渡到 CometBFT,例如,通过将你的相关更改重新定位或选择到 CometBFT 的 fork 中。我们很乐意在此过程中提供帮助。此外,我们将欢迎你你的反馈和你你的特定要求的相关信息,以消除你你维护 fork 的需要(请参阅下面的“社区”参考)。
在这里,你将找到与 Comet 相关的官方链接和说明:
CometBFT 底层的共识算法是什么?
CometBFT 底层的共识算法目前基于(即是 Tendermint Consensus 的实现)。
CometBFT 会放弃 Tendermint 共识算法吗?
在初始版本中不会。我们的目标是将 CometBFT 构建为一个可组合的共识库,其中默认共识算法可以轻松地与其他算法交换,但不仅限于核心维护者实现的算法。
我们还计划与对共识算法或其他地方进行更改或优化的团队合作(请参阅 LINE、PeggyJV、SeiNetwork 或 Celestia Org)的 fork),以将其他用户需要的修改向上游合并到主开发线中。
是否会有多个相互竞争的 Tendermint Core fork 为互链提供支持?
一切都是开源的,所以可能会有。但是,规范的构建块将构建在 CometBFT 之上。Cosmos 链是使用 Cosmos SDK (@cosmossdk) 构建的,它将构建在 CometBFT 之上。Cosmos SDK 的开发将照常继续。
在 IBC 级别,库将继续支持 Tendermint 轻客户端;CometBFT 包含 Tendermint 共识算法的实现,因此 Tendermint 轻客户端将照常继续与 CometBFT 配合使用。
任何团队都可以 fork CometBFT 并替换其应用程序中的复制引擎。但是,如果你需要进行重大更改,我们建议你你与我们联系(请参阅上面的“如何获得支持?”)。我们将考虑你你的需求并相应地调整我们的技术路线图,以尽可能避免不必要的或不安全的 fork。
这会导致任何链发生 fork 吗?
坚决说“不”。 基于 Tendermint Core v0.34 的系统可以升级到 CometBFT v0.34。CometBFT v0.34 系列将与 Tendermint Core v0.34 保持兼容。
如果我在基于 Tendermint Core 的网络上进行验证,那么我的运营是否有任何担忧?
我们将在发布变更日志中仔细地标记重大更改,并且重大更改将尽可能少。Tendermint Core 的二进制名称将更改,但是大多数应用程序都有一个特定于应用程序的二进制文件(例如 `osmosisd`、 `gaiad` ),其中编译了 Tendermint Core(由 CometBFT 替换)。除非你运行单独的 Tendermint Core 二进制文件,否则这不会影响你的运营。一个相关的更改是 `TMHOME` 环境变量将重命名为 `CMTHOME` 。诸如 `gaiad tendermint` 之类的子命令可能会在适当的时候重命名,具体取决于维护二进制文件的团队。这也会在变更日志中清楚地标记出来。
tendermint-rs 会发生什么
( https://github.com/informalsystems/tendermint-rs/ )?
我们将很快将此项目重命名为 cometbft-rs 并继续开发。
tm-db 或 tm-load-test 会发生什么情况?
我们 fork 并将 tm-db 重命名为 cometbft-db,并将继续开发。没有其他 API 中断,并且用法相同,只是它是一个不同的 Go 模块:`github.com/cometbft/cometbft-db`。
我们将移动并将 tm-load-test 重命名为 cmt-load-test ,并将继续开发。注意:上述某些名称可能仍在变化中。
PS. 令人欣喜的是,CometBFT 的发布恰逢 Comet C/2022 E3 (ZTF) 最接近我们星球。这颗彗星的亮度预计将在今天达到顶峰,并将为那些观测它的人提供难忘的视觉体验。
关于作者:
Adi Seredinschi 是 Informal 专注于分布式系统的研究工程师。他喜欢理解和构建分布式系统,使它们更快、更具弹性。尽管他知道时间是一种幻觉,但他的人生目标是构建持久的事物——分布式系统,而不仅仅是分布式系统。
- 原文链接: medium.com/the-interchai...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!