Cosmos开发更新

4 个月前 · 原创文章

                                                     Gaia 1.0,Cosmos SDK 0.36和IBC Spec 1.0

你好Cosmonauts,开发团队自上次网络升级以来一直在努力工作,未来几个月还会有一些令人兴奋的事情发生。这篇文章是对这项工作的最新消息以及对IBC的推动。它还包括目前处于RC(候选发布版)阶段的Gaia 1.0版本的主要功能概述。随着7月22日testnet成功升级,该版本有望作为cosmoshub-3部署在主网上。让我们回顾一下下面的一些变化:

LTS保证

此版本的Cosmos SDK是Tendermint和Interchain Foundation将首次提供长期服务(LTS)保证。这意味着在实践中,Tendermint公司和Interchain基金会将保证六个月我们将向0.36.x线路后端移植安全关键更新。此外,我们承诺不破坏此版本系列上的REST和CLI API。SDK开发团队还将从0.36.x系列发布应用程序更新到下一个LTS版本的指南。

开发过程变更

LTS保证并非真空。在过去的几个月中,有许多内部流程已经成熟,以实现这一承诺:

  • Gaia存储库 - Gaia,集线器应用程序已被拆分为自己的存储库。这很重要,因为它将Gaia的发布与SDK的发布分离,并使这两种产品能够独立发展。这将允许我们开始发布Cosmos SDK的常规版本,其中包含针对依赖它的链的错误修复。这种变化也应该有很长的路要走,以缓解新用户的困惑。它还有助于他们区分Gaia和Cosmos SDK。
  • 可重复的构建 - 这保证了Gaia套件始终可以从源构建,提供可独立验证的可执行文件,并允许任何人保护自己免受目标攻击。
  • 分支策略 - 以前我们所有的项目都有一个单独的`master`和`develop`分支。我们已经使用`master`分支切换到分支策略,然后为每个版本分离长期分支,这将使我们能够更轻松地支持先前版本。

治理建议

自上次硬分叉以来,已经有4个治理建议。这些更改已合并到Gaia进行此网络升级。简要总结如下:

  1. 社区基金提案 - 已批准社区基金,以使治理能够从社区池中筹集资金。完整的提案可以在这里找到。
  2. 只有通过Vetoed提案烧伤治理存款 - 以前,提交和拒绝的治理提案会为提交这些提案的人提供存款。该提案发生了变化,因此被拒绝的提案的存款除非被否决,否则不会被烧毁。
  3. Security Hard Fork - 此治理建议用于升级到0.34.6版本。该版本是针对一个严重的安全问题,我们的安全主管Jessy Irwin在本文中详细介绍了这个问题
  4. 增加最大验证器集大小 - 最近通过的该提议将验证器的数量从100增加到125.这将减少验证器包含在投票集中所需的ATOM抵押品数量。在撰写本文时,这大约相当于约170,000美元的抵押品,该抵押品与验证人保证在投票组中。

主要特点

作为Gaia的0.36.0版本的一部分,有许多错误修复,功能,重构和其他更改。您可以阅读CHANGELOG.md中的完整详细信息,但此处概述了此版本中提供的主要功能:

参数更改建议

Cosmos SDK现在支持创建和投票修改链接参数的治理建议,而无需停止或分叉网络。不仅如此,而且治理模块已经过重构,现在任何模块都可以注册并设置自己的提案流程。这样的过程也被纳入分配模块,以允许社区资金的支出。我们将在不久的将来发布一篇关于此功能的更全面的文章。

模块重构

从构思开始,Cosmos SDK被定义为用于构建基于区块链的应用程序的模块化框架,但它并不总是像模块一样。因为我们在同一个存储库中开发SDK和Gaia,所以有时会以牺牲模块性为代价来发布功能。随着时间的推移,交叉链接依赖关系的紧密增长,使得使用SDK进行开发变得更加困难。

这个问题是我们在发布后迅速确定的问题,是开发人员的主要痛点,也是我们可以解决的问题。我们完成了一些初步工作,以解耦内部模块之间的交叉链接依赖关系。完成后,会创建一个golang界面,明确定义实现Cosmos SDK模块时需要的内容。您可以在此处找到此界面。

供应模块

供应模块允许链条被动地跟踪硬币的总供应量。每次铸造硬币时(例如:作为通货膨胀机制的一部分)或燃烧(例如:由于削减或如果治理建议被否决),总供应量就会更新。

它还引入了一种新类型的帐户ModuleAccount,它可以被模块用作托管来分配令牌并跟踪流入和流出模块的硬币。模块帐户可以被授予一组权限,以执行与供应相关的某些操作,例如铸币或烧钱币。在跑马圈地门将显示在行动这一模式的良好使用。

高度查询

现在,REST和CLI客户端支持高度查询,即在任意块高度查询网络状态的能力。可以针对任何完整节点调用高度查询,但是,如果完整节点启用了修剪,则如果节点已修剪该高度,则查询可能会失败。因此,建议仅针对归档节点(非修剪完整节点)调用高度查询。

事件重构

SDK现在支持更丰富的事件功能集,以前称为标记。以前,Tendermint ABCI仅允许以非常有限的方式从事务和ABCI方法(例如BeginBlock和Endblock)返回标记。例如,不支持重复键。当需要查询汇总数据点(例如奖励分配和削减事件)时,这会带来许多挑战。

随着新事件的重构有两大优势。首先,这为开发人员的人体工程学带来了巨大的改进。应用程序开发人员不必担心从其消息,BeginBlocker或EndBlock处理程序返回事件。相反,开发人员可能只是通过SDK发出事件,特别是EventManager。这样可以实现更清晰的界面抽象和改进的工作流程。其次,SDK现在使用这个新的EventManager来发出诸如削减和奖励分配之类的聚合事件。这允许客户端和其他上游应用程序查询和订阅更多聚合数据点。以下是分发模块中EventManager使用示例。

每个模块都会发出自己的一组独特事件。发出的确切事件可以在每个模块的相应规范目录中找到,例如分发事件

偿还技术债务

如果你看看CHANGELOG,上面讨论的项目还有很多。有一些功能,如为REST服务器添加可配置的超时,以及像CLIContextBank Module那样的重构。这项工作回过头来修复已知问题,并将推动更快,更不容易出错的开发。

潜在的升级时间表

自从我们首次从cosmoshub-1升级到cosmoshub-2以来,作为一个社区,我们已经就集线器升级程序进行了大量讨论,但尚未就如何批准集线器的升级达成共识。该建议草案从虚构网络乡亲大致包含我们上一次使用的方法的书面解释。以此为指导,下面是将Cosmos Hub升级到Gaia 1.0软件的潜在时间表。请注意,这取决于社群投票并同意部署这些更改。

  • Testnet升级:7月23日成功完成
  • 第一次治理投票:7月25日
  • 2周的测试网稳定性:8月7日
  • 第一次治理投票通过:8月9日
  • 第二次治理投票:8月9日
  • 在第二次治理投票时设置的时间/高度的网络升级

即将推出的功能

  • IBC支持 - ICS流程已经全面展开了几个月,并且刚刚提供了1.0版本的规范,并且正在积极开发工作实施。Tendermint和SDK都有一些变化,特别是在支持所需的lite客户端实现方面。该版本将增加其他链通过IBC连接到集线器的能力。
  • Gaia没有停机状态机升级 - 来自Regen Networks团队的 Aaron 一直致力于实现链上升级。我们将与他们合作将这些更改合并到Cosmos SDK和集线器中。可重现的构建和模块重构工作是实现此功能的关键。
  • 子项 - 此功能将允许创建具有给定链的权限子集的“子项”。Sunny Aggarwal以最初的规范开始了对话。这项工作由来自Regen团队的B-Harvest和Aaron Craelius选择,他们一直致力于完整的规范和实施
  • 氨基Protobuf兼容性 - 努力使氨(我们的编码格式)完全protobuf兼容正在结束。完成后,我们将为SDK和Tendermint中编码的每种类型提供规范的.proto文件。在处理lite客户端证明和事务时,这将允许从客户端角度更容易的交互。
  • 收入报告 - 通过升级的事件系统和高度查询的添加,基于链上数据为验证者创建详细的收入报告现在变得微不足道。我们将在标准工具中包含一个用于验证器的版本,以简化报告。
  • 新模块 - 目前正在对许多模块进行工作。最激动人心的例子是在HackAtom Berlin期间启动的WASM模块,由该团队完成,由ICF资助这项工作。同时在工作中还有一个uniswap样式交换模块,一个NFT模块和一个EVM模块,两者都在积极开发中。
  • 您可以在下一个SDK Milestone - v0.37.0中跟踪这些功能和其他功能的开发。

感谢Cosmos SDK开发团队和推动代码推动此版本发布的所有外部贡献者。

ATOM

新代币经济的基础,最强大的连接区块链生态系统