原文链接: https://medium.com/cypher-core/a-technical-introduction-to-cosmos-sdk-f3a08c85a2b5 原文作者:Jay | Cypher Core 架构设计概述 Cosmos SDK是一个类似于npm的框架,可让开发人员在Tendermint之上轻松构建复杂、安全且与应用无关的状态机。使用Cosmos SDK构建的应用实质上是基于BPoS(绑定权益证明)的多资产、可互操作的公链。 下图显示通过ABCI(或具体来讲是DeliverTx),用Cosmos SDK构建的应用从Tendermint重播时,是如何处理交易的: Cosmos SDK: https://github.com/cosmos/cosmos-sdk npm:https://www.npmjs.com/ Tendermint:https://tendermint.com/ 应用解读 Cosmos SDK应用通常包含以下主要组件: 应用解读 一、全节点客户端 全节点客户端是由Cosmos网络中的参与者构建和运行的二进制应用(或守护程序),用于实例化其自己的状态机并连接到其他全节点。全节点完整验证区块链的交易和区块。 节点客户端 二、核心应用 Cosmos SDK应用的核心主要包括类型定义和构造函数。 类型定义 在app.go中定义的自定义应用的类型定义仅是包含以下内容的结构:
baseapp: https://cosmos.network/docs/intro/sdk-design.html#baseapp
多重存储: https://cosmos.network/docs/intro/sdk-design.html#multistore
keeper: https://cosmos.network/docs/spec/auth/04_keepers.html#keepers
go-amino: https://github.com/tendermint/go-amino
应用类型定义示例: https://github.com/cosmos/gaia/blob/master/app/app.go#L73-L107 构造函数 顾名思义,构造函数会创建一个应用实例,并在其中声明应用的类型定义。具体来说,构造函数在被调用时执行以下操作:
应用构造器示例: https://github.com/cosmos/gaia/blob/master/app/app.go#L110-L222 三、模块 Cosmos SDK中已经内置了一致性应用所需的许多关键模块,因此开发人员可以通过将自定义模块与现有模块集成来轻松构建复杂的状态机。目前,SDK支持以下模块: 模块-第一部分 模块-第二部分 在本节的其余部分中,我们将简要探讨模块的两个最基本的部分——接口和消息类型。 接口 根据定义,Cosmos SDK模块实现两个接口:AppModuleBasic和AppModule。AppModule通常包含模块的模块间依赖方法,而非依赖方法(例如,编解码器)则进入AppModuleBasic。 模块接口示例: https://github.com/cosmos/cosmos-sdk/blob/master/x/bank/module.go 消息类型 实现消息接口的每个模块都需要定义自己的自定义消息类型。此类消息类型也应视为“要包括在交易中的消息”。在收到通过DeliverTx从Tendermint中继的交易区块之后,应用需要执行4个步骤的过程,然后提交状态更改:
四、应用介面 每个Cosmos SDK应用都实现一个命令行界面(CLI),该命令行界面用于与全节点客户端进行交互。现成的CLI支持以下通用命令: CLI CLI示例: https://github.com/cosmos/sdk-tutorials/blob/master/nameservice/cmd/nscli/main.go 五、依赖关系和Makefile Cosmos SDK使开发人员可以自由选择喜欢的项管理器和项目构建方法。Go 模块通常用于前者,Makefile用于后者。 备注 无论您是否刚接触区块链,一开始学习新的代码库都可能有些艰巨。这是我的尝试,目的是使希望在Cosmos SDK上构建的开发人员对框架有所了解,并希望有助于减轻他们的代码上手期。如果您准备动手构建自己的应用专有链,请查看此处的教程:https://github.com/cosmos/sdk-tutorials 最后但并非最不重要的一点,谢谢您的阅读! 资源 [1] GitHub. (2019).cosmos/cosmos-sdk. [online] Available at:https://github.com/cosmos/cosmos-sdk/tree/master/docs[Accessed 11 Nov. 2019]. —- 编译者/作者:COSMOS 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
Cosmos SDK技术介绍
2019-12-18 COSMOS 来源:区块链网络
LOADING...
相关阅读:
- 普利拓斯贷款应用程序新闻特写2020-08-03
- 恒讯云受邀参加2020第三届深圳国际分布式存储行业大会2020-08-03
- DeFi成为区块链行业热点火币大学线上特训营系统讲解行业机遇2020-08-03
- 我们翻了100份招聘报告发现了区块链新兴人才月入10万的秘密2020-08-03
- 随着Crypto.com的互换计划上线,MCO上涨36%2020-08-03