跨链Cosmos(7)普通交易流程
1. 普通交易
Cosmos的普通交易和以太坊類似,也是一個帳戶模型,有著From,To和Amount關鍵字段。
1.1 Msg結(jié)構(gòu)
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}1.2 交易流程
接下來介紹一筆普通交易的流程,例如Alice轉(zhuǎn)給Bob 100atom代幣。
step1. Tendermint收到該筆交易,調(diào)用BaseApp的CheckTx校驗該筆交易的有效性;
step2. Tendermint出塊,調(diào)用BaseApp的BeginBlock,檢查區(qū)塊的高度、Gas消耗情況和節(jié)點投票情況;
step3. Tendermint調(diào)用BaseApp的DeliverTx,執(zhí)行區(qū)塊中的交易;
step4. 減少Alice 100atom,增加Bob 100atom,存儲Alice和Bob的賬本。
step5. 區(qū)塊內(nèi)交易全部執(zhí)行完成后,Tendermint調(diào)用BaseApp的EndBlock收尾,包含執(zhí)行完成后的事件和相關的驗證者集合等等;
step6. Tendermint調(diào)用BaseApp的Commit,IavlStore構(gòu)建Merkle Tree;
step7. 通過返回的MerkleTree Root生成區(qū)塊哈希,進行一下輪出塊。
總結(jié)
以上是生活随笔為你收集整理的跨链Cosmos(7)普通交易流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 跨链Cosmos(6)ABCI 原理
- 下一篇: 跨链Cosmos(10) IBC接口