CometBFT:提升Cosmos区块链共识新高度

Posted by LB on Wed, Jul 12, 2023

SSI

CometBFT,这是一个适用于链间及其他领域的状态机复制引擎! CometBFT 是 Tendermint Core 的分叉和继承者,并将作为支持 Interchain Stack 的官方复制引擎。 CometBFT 的长期愿景是成为可靠、安全、大规模、特定应用区块链复制引擎的首选。

Interchain 基金会、Informal Systems、Cosmos SDK 团队以及 Cosmos 生态系统中的众多其他团队一直在共同努力。这篇文章解决了围绕此次发布的一些最重要的问题。请放心,我们一直在努力让升级或采用 CometBFT 尽可能顺利。我们将介绍背景详细信息、CometBFT 愿景和目标、这项工作背后的团队以及技术影响方面的后续步骤。

Why Now?

我们决定以这个新名称开发旗舰 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 达成复杂的协议,就不可能完全减轻悬在跨链堆栈最关键部分的开发人员头上的风险。

正如我们之前在 Twitter 上提到的,根据本次讨论,AiB 单方面决定存档 Tendermint Core 存储库。因此,在 AiB 的鼓励下,继续发展轨迹的前进方向是分叉 Tendermint Core 存储库。 CometBFT 将建立在 Tendermint Core 奠定的基础上,重新开发重点关注用户、质量和集成。

根据这些技术和管理问题,最重要的变化是项目的长期愿景、目标和管理。这将我们带入讨论的下一部分。

What’s Next?

作为 Cosmos 和跨链生态系统的忠实管理者,Interchain 基金会是公共产品资金和资产的可靠托管机构。自成立以来,ICF 一直是“Cosmos”商标的所有者,并为了更广泛社区的最佳利益而保护其使用。同样,ICF 已将“CometBFT”名称注册为商标,并成立了 CometBFT GitHub 组织,并打算长期管理两者,以实现不断增长的跨链的最佳利益。 CometBFT 将保持开源并获得 Apache2.0 许可。我们邀请所有感兴趣的各方为该软件的成长和发展做出贡献,并宣传其开源价值观。

如前所述,CometBFT 的长期目标是成为跨链复制引擎的首选。 CosmosSDK 团队、IBC 团队、CometBFT 维护者以及组成跨链的众多工程团队,无论是在应用程序级别还是公共产品级别,都拥有共同的愿景,即使 CometBFT 成为团队可以试验新功能、构建新功能的地方。并进行优化迭代,确保为用户提供高度的灵活性,同时保持堆栈的完整性和稳健性。如果您是 Interchain Stack 的贡献者,运营验证器或节点,与其他生态系统集成,或者作为新用户找到 Cosmos 的方法,我们将非常感谢您的帮助,让这一切成为现实。请参阅下面的“参考资料”了解如何与我们联系。

CometBFT 的目标是什么?

如上所述,这标志着链间的新阶段。它的共识引擎正在发展成为专门针对 IBC 原生世界的构建块。我们寻求继续与 Cosmos SDK 团队和当前用户密切合作,同时促进在 ABCI 和 IBC 之上构建的不断增长的应用程序开发人员生态系统的采用。 CometBFT 的根本长期目标是在支持跨链的发展中发挥关键作用。

更具体得说,CometBFT的目标是:

  1. 强烈以用户为中心,制定明确的产品策略,将用户的需求放在首位。这是确保 CometBFT 的相关性和实用性的战略选择。
  2. 提高质量保证和正确性保证,旨在使用基于模型的测试等先进技术严格指定和测试我们的实施。我们正在利用我们在规范和正式方法方面的专业知识来加强现有的质量保证,这已经通过大规模测试工作得到了补充。
  3. 模块化,专注于抽象的正确边界,允许系统在必要时进行拆分,从而允许在依赖它的项目中进行零碎集成。我们希望让 CometBFT 越来越多地用作库,并通过提供新接口来支持不断增长的用例,从而最大限度地减少分叉和碎片。
  4. 通过逐步更新系统架构以充当健全的变革平台,以及在整个链间堆栈中实现更顺畅的项目协调,在不牺牲质量的情况下更快地推出功能

实现这四个目标的一个基本策略是跨链堆栈的紧密集成;这将成为 CometBFT 和 Tendermint Core 的其他分支之间的主要区别点。通过构建 Tendermint Core 提供的强大基础,ABCI 2.0 将成为上述方法的第一次迭代。我们将在第二季度初跟进详细的 2023 年路线图计划。

CometBFT 背后是谁?

推出 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 和具有数十年综合经验的软件工程师以及具有 10 年以上 Cosmos 经验的项目、产品和技术负责人组成。

接下来的步骤是什么?

启动 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 的分叉:我们建议尽快过渡到 CometBFT,例如,通过重新调整或挑选对 CometBFT 分叉的相关更改。我们很乐意在此过程中提供协助。此外,我们欢迎您提供有关您的具体要求的反馈和信息,以消除您维护分叉的需要(请参阅下面的“社区”参考)。

Common Questions

CometBFT底层的共识算法是什么?

CometBFT 底层的共识算法目前基于 Tendermint 共识(即是其实现)。

CometBFT 会放弃 Tendermint 共识算法吗?

最初版本中没有。我们的目标是将 CometBFT 构建为一个可组合的共识库,其中默认的共识算法可以轻松地替换为其他算法,但不限于核心维护者实现的算法。

我们还计划与对共识算法或其他地方(参见 LINEPeggyJVSeiNetworkCelestia Org 的分支)进行更改或优化的团队合作,将其他用户需要的修改上游到主开发线中。

Tendermint Core 是否会有多个竞争分叉为跨链提供动力?

一切都是开源的,所以是有可能的。然而,规范的构建块将构建在 CometBFT 之上。 Cosmos 链是使用 Cosmos SDK 构建的,它将构建在 CometBFT 之上。 Cosmos SDK 开发将照常继续。

在 IBC 层面,图书馆将继续支持 Tendermint 轻客户端; CometBFT 包含 Tendermint 共识算法的实现,因此 Tendermint 轻客户端将像往常一样继续使用 CometBFT。

任何团队都可以分叉 CometBFT 并替换其应用程序中的复制引擎。但如果您需要重大更改,我们建议您与我们联系(请参阅上面的“如何寻求支持?”)。我们将考虑您的需求并相应地调整我们的技术路线图,尽可能避免不必要或不安全的分叉。这会导致任何链分叉吗?

这会导致任何链分叉吗?

坚决的“不”。基于 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”。诸如“gaiadendermint”之类的子命令可能会在适当的时候被重命名,具体取决于维护二进制文件的团队。这也将在变更日志中清楚地标记。

tendermint-rs会发生什么?

我们很快就会将该项目重命名为 cometbft-rs 并继续开发。

tm-db 或 tm-load-test 会发生什么情况?

我们将 tm-db 分叉并重命名为 cometbft-db,并将继续开发。没有 API 被破坏,并且用法是相同的,除了它是一个不同的 Go 模块:github.com/cometbft/cometbft-db。我们将把 tm-load-test 移动并重命名为 cmt-load-test,并继续开发。

注意:上述一些名称可能仍在不断变化。

附言。宇宙的喜悦之情溢于言表,CometBFT 的发射恰逢彗星 C/2022 E3 (ZTF) 距离我们的星球最近。这颗彗星的亮度今天将达到峰值,为观测者提供难忘的视觉体验。