http://www.7klian.com

跨链Cosmos跨链间是如何彼此通信详解

type IBCPacketPostTx struct {



为了将在链A中产生的事件通知链B,需要一其中继器。中继器认真将跨链动静从链A的出口转发到链B的出口。在这种环境下,中继器在链A的出口中查询packageTx,并得到packageTx的Merkle证明。该信息被打包到IBC Package PostTx事务中并发送到链B,链B查询关于packageTx位置的区块头信息。它还将区块头信息打包到IBCUpdate Chain Tx中,并将其发送到链B。留意中继器付出了IBC Package PostTx和IBCUpdate Chain Tx的生意业务本钱。




从上面的协议我们可以看到,这些协议包实际上是一个事务。Tendermint有一个plugin模块,以利便我们扩展。 我们可以在plugin中实现接口,并利用IBC plugin执行跨链生意业务。
此刻,需要将A中的资产转移到B。首先用户可以将跨链生意业务包Tx发送到A。A执行packageTx,销毁或锁定相关资产,然后将packageTx写入出口。出口可视为安排所有外部通知的跨链生意业务的邮箱。

跨链生意业务执行后,此软件包包括Merkle证明,然后由中继器将其发送到另一个链。


Cosmos中的跨链由IBC协议实现。 Cosmos生态系统中界说了以下IBC协议软件包:IBCRegisterChainTx,,IBCUpdateChainTx,IBCPacketCreateTx,IBCPacketPostTx。

在跨链的开头利用以下代码注册和发送创世纪区块。验证者会将其交给另一方。此代码只能执行一次,多次执行将陈诉错误。




按照差异的基本技能,跨链的彼此浸染可以分为同构的跨链和异类的跨链。对付同构链,安详机制,共鸣算法,网络拓扑和块生成验证逻辑是一致的,它们之间的跨链交相互对简朴。

Packet

用于将当前链上的最新区块信息,区块高度和区块头信息传输到另一个链。



Commit tm.Commit
Proof *merkle.IAVLProof // Merkle证明

}


FromChainHeight uint64
type IBCUpdateChainTx struct {



郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。