日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

跨链Cosmos(9)异构跨链交易流程

發布時間:2025/3/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 跨链Cosmos(9)异构跨链交易流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當應用鏈雙方在Hub注冊后,彼此發現就可以通過路由進行跨鏈交易。

1.1 IBC跨鏈流程

ChainA和ChainB都是基于CosmosSDK搭建的應用鏈,Relayer作為一個鏈下中繼負責輪詢和路由IBC的數據包:
ChainA -> relayer -> hub -> relayer -> ChainB

1.2 ChainA的Alice轉給ChainB的Bob 100atom

step1. ChainA的Tendermint收到該筆交易,調用BaseApp的BeginBlock,檢查區塊的高度、Gas消耗情況和節點投票情況;

step2. 執行區塊中的交易,減少Alice 100atom,增加托管賬戶Escrow 100atom,存儲Alice和Escrow的賬本(如果不是原生代幣,則銷毀Alice 100代幣)。

step3. 構建跨鏈交易MsgPackage數據包,根據DestinationChannel和DestinationPort定位Outgoing隊列,將MsgPackage存入該隊列;

step4. 區塊內交易全部執行完成后,Tendermint調用BaseApp的EndBlock收尾,包含執行完成后的事件等等, 再調用BaseApp的Commit,調用IavlStore持久化等操作;

step5. IavlStore通過當前所有的Iavl Tree Root構建Merkle Tree;

step6. ChainA的Tendermint通過Tree root生成區塊哈希;

step7. ChainA的Tendermint準備進行下一輪出塊;

step8. 中繼器Relayer輪詢ChainA的Out隊列,發現Outgoing隊列存在MsgPackag;

step9. 中繼器Relayer解析MsgPackage數據包來源和目的;如果發現ChainB的區塊高度大于超時高度,移除ChainA的MsgPackage,向ChainA的inComming隊列發送MsgTimeout數據包;

step10. 中繼器Relayer向ChainB的Incomming隊列發送包含MsgPackage數據包,ChainB隨后解析MsgPackage,驗證MsgPackage的有效性;

step11. 托管賬戶Escrow mint 100atom,然后向Bob發送100 atom;

step12. ChainB構建MsgAcknowledgement數據包,中繼器Relayer輪詢ChainB的Incomming隊列,將其放入ChainB的Outgoing隊列;

step13. ChainA收到ChainB的MsgAcknowledgement或者MsgTimeout數據包,如果MsgAcknowledgement包含執行失敗的狀態或者存在MsgTimeout數據包,則根據數據包內的信息進行向托管賬戶贖回對應的金額。

總結

以上是生活随笔為你收集整理的跨链Cosmos(9)异构跨链交易流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。