跨链Cosmos(10) IBC接口

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨链Cosmos(10) IBC接口相关的知识,希望对你有一定的参考价值。

1. 子模块

1.1 IBCRegisterChainTx 注册

在跨链开始用来注册,并发送创世区块,Validator 给对方,这个只能执行一次,多次执行会报错。

type IBCRegisterChainTx struct {
  BlockchainGenesis
}
type BlockchainGenesis struct {
  ChainID string
  Genesis string
}

1.2 IBCUpdateChainTx 推送链消息

向另外一个链推送当前链上区块最新信息,区块高度,区块头信息。

type IBCUpdateChainTx struct {
  Header tm.Header
  Commit tm.Commit
// TODO: NextValidators
}

1.3 IBCPacketCreateTx 创建跨链交易

当链收到这个交易包时会执行跨链交易,并将在egress中放入相关信息。

type IBCPacketCreateTx struct {
  Packet
}
type Packet struct {
  SrcChainID string
  DstChainID string
  Sequence   uint64
  Type       string // redundant now that Type() is a method on Payload ?
  Payload    Payload
}

1.4 IBCPacketPostTx 发送链证明

这个包中包含跨链交易执行后的Merkle proof,由relayer发送给另外一个链。

type IBCPacketPostTx struct {
  FromChainID  string // The immediate source of the packet, not always Packet.SrcChainID
  FromChainHeight uint64 // The block height in which Packet was committed, to check Proof
  Packet
  Proof *merkle.IAVLProof // Merkle证明
}

以上是关于跨链Cosmos(10) IBC接口的主要内容,如果未能解决你的问题,请参考以下文章

跨链Cosmos之“跨链交互协议IBC”前言

跨链Cosmos(12) Cosmos插件

Cosmos IBC

跨链Cosmos同构跨链交易流程

跨链跨链双雄Cosmos“系统框架”

跨链Cosmos异构跨链交易流程