软硬核:彻底读懂 Cosmos 如何一键发链与万链互联

2020-03-04 11:48 0 行情
链闻ChainNews链闻ChainNews

  Cosmos 主网上线会是区块链世界的一件大事,关于其意义,可以参考著名区块链投资机构 1confirmation 创始人 Nick Tomaino 撰写的文章:「Cosmos 的前世今生、未来前景和投资价值」。

  今天推送的这篇文章,用作者的原话则是:

  从 Cosmos 最小的细胞结构讲起,直到讲清楚它是如何以这一结构为基础实现庞大的宇宙图景。而「cosmos」这个单词的本意正好是「宇宙」的意思。

  Enjoy reading~

撰文:李画撰文:李画

  致谢:IRISnet 创始人 & Cosmos 中国 Harriet Cao

  跨链是区块链正确的发展方向吗?万链互连是区块链未来的落地图景吗?不知道。人们都在观望。

  不过,最少有两个标本可供观察:Cosmos 与 PolkaDot。

  Cosmos 在 3 月 14 日的早 7:00 启动主网,它是以伯克利的 Tendermint 团队为核心团队开发的跨链项目,要实现两件事情:第一件,是让公链开发变得简单;第二件,是让所有的链能够连接起来。

  它是如何完成这两件事情的?以这两件事情的实现为基础,Cosmos 希望构建出怎样的区块链世界?它的跨链生态目前的进展如何?本文将逐一解答这些问题。

  Cosmos的工作原理

  让我们通过分析和拆解公链的结构,来清楚地理解 Cosmos 是如何把复杂的公链开发变成一件容易完成的事情。

  一条公链从底层至上层可以粗略地被分为三个部分 如下图所示:

  网络层:底层的数据结构和通信协议的设计。

  共识层:共识机制的设计。

  应用层:具体业务逻辑的设计。

一部分公链的设计目的是为了对公链这种基础设施本身做出改进,比如以太坊、Nervos、Conflux 等等,它们是需要在网络层、共识层、应用层上都进行思考和建设的。  一部分公链的设计目的是为了对公链这种基础设施本身做出改进,比如以太坊、Nervos、Conflux 等等,它们是需要在网络层、共识层、应用层上都进行思考和建设的。

  但其他绝大多数的公链是为了解决具体的应用需求而存在的,它们是要解决自己的业务问题,而不是解决公链的问题。也就是说,它们实际上不用关心网络层和共识层,只需要设计为自身业务逻辑服务的应用层即可。

  基于这一思路,Cosmos 把网络层和共识层设计好并封装起来,提供给公链开发者使用,在这种情况下开发者就只用考虑应用层。

  被封装起来的网络层和共识层叫「tendermint core」,应用层调用 tendermint core 的接口叫「ABCI Application Blockchain Interface」。通过 ABCI 接口,应用层与共识层、网络层组成一个可以协同工作的完整的公链系统。整个系统,可以用下图展示:

到这一步,Cosmos 把开发一条公链的工作减少为设计一个应用层的工作。但 Cosmos 并没有就此打住,它继续「切分」应用层。  到这一步,Cosmos 把开发一条公链的工作减少为设计一个应用层的工作。但 Cosmos 并没有就此打住,它继续「切分」应用层。

  应用层需要实现一系列的功能来完成最终的业务逻辑,不过这些功能中有很多是可以通用的,比如账户管理的功能,Cosmos 把这些功能分解出来,再以模块化的方式加以实现。

  这样一来,开发者在进行应用层开发时,只需要实现自身业务逻辑中特殊的功能,其他的功能都可以直接调用 Cosmos 的功能模块。

  如下图所示,Accounts、Governance、Staking、Slashing 等均是功能模块,能够以「插拔」的方式被组合到一起使用。

Cosmos 把自己提供的这一模块化开发工具叫做「Cosmos SDK」,它覆盖了应用层需要实现的大部分的功能,到这一步,Cosmos 把设计一个应用层的工作减少为实现少数具体的功能模块的工作。  Cosmos 把自己提供的这一模块化开发工具叫做「Cosmos SDK」,它覆盖了应用层需要实现的大部分的功能,到这一步,Cosmos 把设计一个应用层的工作减少为实现少数具体的功能模块的工作。

  最终,如下图所示,通过对公链的分层设计以及对应用层的分模块设计,开发者能够以 tendermint 共识引擎和 Cosmos SDK 开发工具为基础,快速地完成公链的开发。他们不再需要设计整条公链,而只需要实现核心的业务功能。

本站登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。