跨链Cosmos普通交易流程

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨链Cosmos普通交易流程相关的知识,希望对你有一定的参考价值。

1. 普通交易

Cosmos的普通交易和以太坊类似,也是一个帐户模型,有着From,To和Amount关键字段。

1.1 Msg结构

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转给Bob 100atom代币。
在这里插入图片描述

step1. Tendermint收到该笔交易,调用BaseApp的CheckTx校验该笔交易的有效性;
step2. Tendermint出块,调用BaseApp的BeginBlock,检查区块的高度、Gas消耗情况和节点投票情况;
step3. Tendermint调用BaseApp的DeliverTx,执行区块中的交易;
step4. 减少Alice 100atom,增加Bob 100atom,存储Alice和Bob的账本。
step5. 区块内交易全部执行完成后,Tendermint调用BaseApp的EndBlock收尾,包含执行完成后的事件和相关的验证者集合等等;
step6. Tendermint调用BaseApp的Commit,IavlStore构建Merkle Tree;
step7. 通过返回的MerkleTree Root生成区块哈希,进行一下轮出块。

以上是关于跨链Cosmos普通交易流程的主要内容,如果未能解决你的问题,请参考以下文章

跨链Cosmos同构跨链交易流程

跨链Cosmos(11) 消息结构

跨链Cosmos Cosmos系统框架

跨链Cosmos之“跨链交互协议IBC”

跨链Cosmos(12) Cosmos插件

跨链Cosmos之“跨链交互协议IBC”前言