首页 > 世链号 > 【飞猫交易所是真的赚钱吗】Cosmos 代码审查:Cosmos SDK 才是杀手锏
币圈大叔  

【飞猫交易所是真的赚钱吗】Cosmos 代码审查:Cosmos SDK 才是杀手锏

摘要:让我们从查看声明开始这篇 Cosmos 代码回顾。就这一个,因为这是个大问题。“Cosmos 解决了今天最难的区块链问题。”

摘要:Cosmos 怎样解决今天最难的区块链问题。

让我们从查看声明开始这篇 Cosmos 代码回顾。就这一个,因为这是个大问题。“Cosmos 解决了今天最难的区块链问题。”

可伸缩性——Tendermint BFT 解决了这个问题
可用性——Cosmos SDK 解决了这个问题
互操作性——IBC 协议解决了这个问题

只有三件东西,但这里有很多东西要打开。Cosmos 是一个由不同事物混合而成的大包,所以有时候要知道我们在说什么有点棘手。我们有以下内容 ;

Cosmos—基础

拜占庭共识 Tendermint— pBFT 共识引擎

Cosmos SDK—允许您构建 dapps 的软件包 / 集合 (但不是在以太坊智能合约的意义上,而是在每个 dapp 的区块链意义上)

IBC—通信协议

Amino——数据传输的一种特定协议 (本质上是原生 buff——这个声明被过分简化了,但现在还不是那么重要)

Gaia-第一个 Cosmos“Hub”,是由运行在 tendermint 上的 Cosmos SDK 构建的

因此,任何人都可以使用运行在 Tendermint 上的 Cosmos
SDK(软件开发工具包) 构建一个 dapp(区块链),通过使用 Cosmos,它可以兼容 IBC,因此可以进行互操作。

因此,可伸缩性通过两个领域来解决,第一个领域是 Tendermint
pBFT,第二个领域是每个 dapp 都有自己的共识系统 (Tendermint)。因此,如果你构建一个 Cosmos
dapp,你不是在 Gaia 上构建它,而是在构建一个全新的区块链,但是因为它兼容 IBC,所以它可以与其他使用 Cosmos
SDK 构建的区块链进行交互 (因此是可互操作的)

可用性,是因为 Cosmos SDK,它封装了所有棘手的部分,共识,通信,p2p,所有这些都由 Cosmos SDK 来处理。

因此,以上内容涵盖了可伸缩性、可用性和互操作性。

上面的代码在令牌方面有一些有趣的含义,因为除了 Gaia(有点像 Cosmos
SDK 的演示示例) 之外,实际上与 Atom 没有任何关系。您不需要它来构建自己的 Cosmos 区块链,也不需要它来实现 IBC 或互操作性。你只需要 stake 它就行了,因为 Gaia 不支持在它上面建造。

撇开这个不谈,让我们看看 Gain,然后从那里深入研究。

只有 20 个提交 ? 这通常是一个很大的警告信号。但这里是 100% 没问题,因为这只是 Cosmos SDK 的实现,真正的工作是 Cosmos
SDK 和 Tendermint。我们稍后会讲到。Gaia 本身是一个相当小的、直接的代码库,这是因为它只是 Cosmos SDK 的“演示”。Cosmos
SDK 和 Tendermint 是真正的重量级举重选手。
但让我们看看它是如何工作的。

Golang 项目,所以我们从 /cmd/ 开始

命令行界面,用于创建帐户,发送转账,检查余额。这包括了 RPC / HTTP 端点,因此我们将研究它,但首先,我们需要 gaiad -daemon,它运行节点 / 软件。

所有通常包括候选人,cobra/viper 的命令行。这里的 Tendermint 很有趣,cosmo -sdk 很有意义。

帐户、验证器和共识节点的 Bech32 前缀。常用命令的候选人。

app.go

这很好地概述了从 Cosmos
SDK 中导入什么是必需的,baseapp 是核心框架,codec 处理所有组件间的通信,用于基本账户和转账的认证和银行。分配,mint(块奖励),slashing(坏行为),staking(dPoS) 都包括在内。这就是你所需要的。

只设置和初始化组件,这个文件将主要有设置样板文件。

这是复制 / 粘贴的东西,只需要设置键值存储,然后你需要设置所有的保存器 (保存器管理所有的工作-我们稍后会讲到)

AddRoute for proposal (http/rpc),允许社区设置和表决提案。

这很有趣,setorderbeginblocker,我们造币,然后分配,然后 salshing,相对于 setorderendblocker,我们管理,然后 staking。因此,我们首
先生成块铸币,然后分发它,然后通过委托奖励 (在块之后) 削减跟随。我得再深入研究一下为什么是这个顺序。

同样,主要是来自 Cosmos SDK 的样板文件。

就是这样。

网络是设置脚本。文档是文档,其余的是测试系统。这就是运行您自己的 Gaia (Atom staking system—这就是它的全部内容) 所需的所有“代码”。

这是一个很好的迹象,它向您展示了 Cosmos SDK 和 Tendermint 是多么强大。

公平地说,如果这是另一个区块链而不是 Gaia(也就是 Cosmos),我不会有什么印象,因为他们什么都没做,但是既然 Gaia 是 Cosmos,是 Cosmos
SDK,是 Tendermint,我们可以继续。

Cosmos
SDK,真正的秘密武器。5k 提交,86 个分支,112 个版本,92 个贡献者,这个东西非常活跃。出色的公关和问题管理,出色的抽象和封装。我们已经在 Gaia 实现中看到了很多 ;

baseapp——核心客户端——与服务器编解码器交互的客户端——管理所有的通讯服务器——运行服务器端存储——处理所有的存储 x——这是所有核心模块的所在

在 x/ 我们有 auth,银行,分销,ibc、 gov、mint、
staking。在不到 100 行代码中实现您自己的可互操作的高可伸缩性 dPoS 区块链所需的一切。

收取手续费,开始 /
结束块是你做大部分工作的地方,你希望在得到一个块之前和之后发生什么。这是您通常放置大部分工作逻辑的地方 (gaia 并不真正需要它)。对等过滤器,状态检查器,版本管理。这是非常棒的生产级代码。

不用多说,令人印象深刻的是 tendermint、abci 和 cosmos sdk 之间的交互方式。它的设计和构思都很好。

我们不打算深入讨论太多,客户端,密钥,rpc, tx 生成。区块链样板文件,即使它是非常棒的区块链样板文件。

编解码器是一个 amino 包装器。Amino 也是固体。但是 /x/ 才是真正的工作所在,所以让我们来看看 bank / mint / / staking。

我们从 keeper 开始。

Keeper 定义了我们能做什么 ;

Setcoins
、SubtractCoins、AddCoins、InputOutputCoins、DelegateCoins、UndelegateCoins

这里需要注意的是,keepers 是功能包装器。当你把它全部归零,在区块链中困难的部分是分布式系统部分,共识。这是由 Tendermint 处理的,共识基本上是一个“保存”屏障。通常,您只需简单地说 10+10=20,因此让我们将 20 保存在存储 (数据库) 中。在这种情况下,您需要协商一致,但是它已经被处理好了,您不需要担心它,因此您只需输入 10+10=20 并存储。所以所有的 Keepers 都只是简单的基本功能。

所以对于像 AddCoins 这样的东西,它只需要一个地址,一个硬币类型,然后加上金额。

就是这么简单。

顺便说一句,这是副作用免费代码,不是你经常看到的东西,伟大的设计原则。

Cosmos Code Review 总结 :

Gaia 是没有意义的,它只是一个 Cosmos SDK 的演示,但是 Cosmos SDK 很好。我想我也会用它来做一些链。

感谢 Tendermint 团队的高级软件顾问 Alessio Treglia,他补充说 :“Gaia 只有在最近从 @cosmossdkrepo 的原始位置提取后才提交了 20 次。”

作者:Ander Croje Andre 是一位拥有 20 年开发经验的软件架构师。在 5 个月内修完 3 年的计算机科学课程后,他被要求继续当讲师。在深入研究移动安全和密码学之前,他进入电信行业,开发大数据、高交易基础设施。过去 5 年,他一直致力于打造定制的金融科技解决方案,并利用区块链技术为非洲无银行部门提供降低成本的金融产品。

来源:共享财经 Neo

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:msy2134。