The Web3 社区产品课程之 Cosmos 生态产品体系详解
一.什么是 Cosmos
Cosmos SDK是一个用于构建多资产公共权益证明(PoS)的开源工具包区块链,例如 Cosmos Hub,以及许可的权威证明 (PoA) 区块链。使用 Cosmos SDK 构建的区块链通常被称为特定于应用程序的区块链。
Cosmos SDK 的目标是让开发人员能够轻松地从头开始创建自定义区块链,并可以与其他区块链进行本地互操作。我们进一步推进了这种模块化方法,允许开发人员即插即用不同的共识引擎,这些引擎可以是CometBFT或Rollkit。
基于 SDK 的区块链可以选择使用预定义模块或构建自己的模块。这意味着开发人员可以构建适合其特定用例的区块链,而不必担心从头开始构建区块链的底层细节。预定义模块包括质押、治理和代币发行等。
我们可以把 SDK 想象成乐高套件。您可以选择按照说明建造基本房屋,也可以选择修改房屋并添加更多楼层、更多门、更多窗户。选择权在您手中。
1.如何基于 cosmos-sdk 开发特定应用
区块链世界的一个开发范式是以太坊等虚拟机区块链,其开发通常围绕在现有区块链之上构建一套智能合约来构建去中心化应用程序。虽然智能合约对于某些用例(如一次性应用程序,例如 ICO)非常有用,但它们通常不适合构建复杂的去中心化平台。更一般地说,智能合约在灵活性、主权和性能方面可能受到限制。
专用应用区块链提供了一种与虚拟机区块链截然不同的开发模式。专用应用区块链是专为运行单个应用场景而定制的区块链:开发人员可以自由地做出应用程序最佳运行所需的设计决策。它们还可以提供更好的主权、安全性和性能。
专用区块链意味着用户不是在以太坊上构建自己的去中心化应用,而是从头开始构建自己的区块链。这意味着构建一个全节点客户端、一个轻客户端以及与节点交互所需的所有接口(CLI、REST 等)。下面是基于 Cosmos 生态构建自己特定区块链的示意图
为什么需要特定区块链,也就是 AppChain
- 专用应用区块链只运行单个应用,因此该应用不会与其他应用争夺计算和存储。这与当今大多数非分片虚拟机区块链相反,在非分片虚拟机区块链中,所有智能合约都会争夺计算和存储。
- 即使虚拟机区块链提供基于应用程序的分片和高效的共识算法,性能仍然会受到虚拟机本身的限制。真正的吞吐量瓶颈是状态机,而要求交易由虚拟机解释会大大增加处理交易的计算复杂性。
- 智能合约开发的应用程序中心化程度一般都挺高的
为什么基于 Cosmos 构建特定应用场景的区块链
- 在 Cosmos 区块链中,状态机通常通过名为ABCI 的接口连接到底层共识引擎。此接口可以用任何编程语言包装,这意味着开发人员可以用自己选择的编程语言构建状态机。
- 开发人员可以在多个框架中进行选择来构建他们的状态机。目前使用最广泛的是 Cosmos SDK,但还有其他框架(例如Lotion、Weave等)。通常,选择将基于他们想要使用的编程语言(Cosmos SDK 和 Weave 使用 Golang,Lotion 使用 Javascript 等)。
- ABCI 还允许开发人员更换其特定应用区块链的共识引擎。目前,只有 CometBFT 已准备好投入生产,但未来预计会出现其他共识引擎。
- 即使他们满足于一个框架和共识引擎,如果它们的原始形式不能完全满足他们的要求,开发人员仍然可以自由地对其进行调整。
- 开发人员可以自由探索各种权衡(例如,验证器数量与交易吞吐量、异步安全性与可用性......)和设计选择(用于存储的 DB 或 IAVL 树、UTXO 或帐户模型......)。
- 开发人员可以实现代码的自动执行。在 Cosmos SDK 中,可以在每个区块的开始和结束时自动触发逻辑。他们还可以自由选择应用程序中使用的加密库,而不像虚拟机区块链那样受到底层环境提供的内容的限制。
应用程序和 CometBFT 通信
2.基于 cosmos 业务流程
- x/auth:用于管理账户和签名。
- x/bank:用于启用代币和代币转移。
- x/staking+ x/slashing:用于构建权益证明区块链。