跨链Cosmos(11) 消息结构
生活随笔
收集整理的这篇文章主要介绍了
跨链Cosmos(11) 消息结构
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1. 普通交易Msg
Cosmos的普通交易和以太坊类似,也是一个帐户模型,有着From,To和Amount关键字段。
type MsgSend struct { FromAddress github_com_cosmos_cosmos_sdk_types.AccAddress ToAddress github_com_cosmos_cosmos_sdk_types.AccAddress Amount github_com_cosmos_cosmos_sdk_types.Coins}2. 跨链交易
2.1 MsgPacket
定义了IBC协议的跨链交易数据包,包含跨链交易、目的链的超时高度和时间戳
/ IBC 数据包
type MsgPacket struct{ Packet Proof commitmentexported.Proof ProofHeight uint64 Signer sdk.AccAddress}2.2 跨链数据包
完成上述的一系列握手之后,应用层便可以在Channel上发送自己的数据了。Cosmos规定了发送跨链交易的一些必要字段,如下图:
TimeoutHeight和TimeoutTimestamp是Cosmos提供的一种超时机制。如果某个区块高度或者某个时间这笔跨链交易还没有完成的话,用户能够指定将这笔交易回退(比如是跨链转账的话,可以防止资金长时间冻结)。
2.3 MsgAcknowledgement
定义IBC协议的响应数据包,包含跨链交易执行成功或者失败的状态。
来源链通过MsgAcknowledgement数据包,可以判断跨链交易是否执行成功,如果执行失败来源链做出相对的回滚。
// IBC响应数据包 type MsgAcknowledgement struct {Packet Acknowledgement []byte Proof commitmentexported.Proof ProofHeight uint64 Signer sdk.AccAddress}2.4 MsgTimeout
定义IBC协议的超时数据包,包含下一个接收包的序列号。
来源链通过MsgTimeout数据包,可以判断一个跨链交易的数据包是否超时,如果超时来源链做出相对的回滚。
// IBC超时数据包 type MsgTimeout struct { Packet NextSequenceRecv uint64 Proof commitmentexported.Proof ProofHeight uint64 Signer sdk.AccAddress}2.5 跨链存在性证明
struct { Proof commitmentexported.Proof //Merkle Proof ProofHeight uint64 //区块高度 Signer sdk.AccAddress //发送者的地址,跨链双方维护对方的轻节点,提供类似SPV证明的机制 }总结
以上是生活随笔为你收集整理的跨链Cosmos(11) 消息结构的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 跨链Cosmos(9)异构跨链交易流程
- 下一篇: 跨链Cosmos(12) Cosmos插