跨链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插