Cosmos拆解

Cosmos多链拆解

区块链的发展:btc,eth,cosmos(多链)

Tendermint共识机制

tendermint分为core和abci两个组件

Tendermint Core

共识算法为优化后的POS

需要使用客户端以保证安全性和一致性

tendermint core作为共识引擎,网络层使用Gossip协议,共识层使用BFT+POS共识算法

验证者获得2/3的投票即添加新的区块

节点上限100个以保证性能

ABCI接口

  • CheckTx:验证交易
  • DeliverTx:提交并更新状态
  • BeginBlock和EndBlock:查询状态

Cosmos SDK

SDK内分成多个部分,开发者可以组合不同模块来构建DApp,也可以自行开发模块

支持WebAssembly

支持对象能力模型,将模块的运行逻辑保存在Keeper中。

IBC协议

类似TCP/IP协议

建立握手连接:

  1. A链发起跨链到B链的OpenInit请求,等待Relayer接收到该请求。
  2. Relayer收到OpenInit的请求之后,构造OpenTry的请求发送到B链上。
  3. B链收到OpenTry请求之后,同意并确认之后生成OpenACK数据包,并由Relayer按照同样的方式发送给A链。
  4. A链通过OpenACK数据包判断此次握手是否成功,成功则发送OpenConfirm并把包含信息的数据包返回B链,成功传输信息;否则握手失败。

Cosmos vs. Polkadot

  • 跨链协议:IBC和Parachain
  • 共识机制:Tendermint和GRANDPA(ghost协议)
  • 资产管理:账户模型和链上资产模型

polkadot的中继链是平行链的唯一安全提供者,带来了一定的中心化。

疑惑

  1. gossip协议是什么?
  2. ABCI接口没看明白?
  3. Multistore机制是什么意思?
  4. 用SDK开发出的应用的运行逻辑?
  5. cosmos和polkadot的资产管理分别是什么意思?