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协议
建立握手连接:
- A链发起跨链到B链的OpenInit请求,等待Relayer接收到该请求。
- Relayer收到OpenInit的请求之后,构造OpenTry的请求发送到B链上。
- B链收到OpenTry请求之后,同意并确认之后生成OpenACK数据包,并由Relayer按照同样的方式发送给A链。
- A链通过OpenACK数据包判断此次握手是否成功,成功则发送OpenConfirm并把包含信息的数据包返回B链,成功传输信息;否则握手失败。
Cosmos vs. Polkadot
- 跨链协议:IBC和Parachain
- 共识机制:Tendermint和GRANDPA(ghost协议)
- 资产管理:账户模型和链上资产模型
polkadot的中继链是平行链的唯一安全提供者,带来了一定的中心化。
疑惑
- gossip协议是什么?
- ABCI接口没看明白?
- Multistore机制是什么意思?
- 用SDK开发出的应用的运行逻辑?
- cosmos和polkadot的资产管理分别是什么意思?