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(7)普通交易流程相关推荐

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

    当应用链双方在Hub注册后,彼此发现就可以通过路由进行跨链交易. 1.1 IBC跨链流程 ChainA和ChainB都是基于CosmosSDK搭建的应用链,Relayer作为一个链下中继负责轮询和路由 ...

  2. 跨链Cosmos(8)同构跨链交易流程

    1. 哈希锁定 A链上的Alice发送100个ATOM代币给B链上的Bob step1. Tracking A链上的IBC模块会不断的同步B链上的区块头信息,B链上的IBC同理.通过这种方式,双方能够 ...

  3. 跨链Cosmos(11) 消息结构

    1. 普通交易Msg Cosmos的普通交易和以太坊类似,也是一个帐户模型,有着From,To和Amount关键字段. type MsgSend struct { FromAddress github ...

  4. 跨链Cosmos(3)IBC协议

    1. (Inter-Blockchain Communication Protocol)IBC定义 IBC协议用于Hub与Zone之间消息传递. 通过数据包交换在多个不同的区块链网络之间转移数据和状态 ...

  5. 跨链Cosmos(3)IBC协议二

    1. IBC协议中设计了两个消息: IBCBlockCommitTx 发送方所在区块链的最新的区块信息. IBCPacketTx 跨链交易本身的信息,及其在发送方链中被打包的区块信息. 两个链建立连接 ...

  6. 跨链Cosmos(2) Cosmos系统框架

    1. Cosmos 系统 = Tendermint Core + Cosmos SDK Cosmos是tendermint团队推出的一个支持跨链交互的异构网络, 一个分布式的独立并行区块链公链. 1. ...

  7. 跨链Cosmos(1) 网络拓扑

    1. 拓扑结构 Hub: 用于处理跨链交互的中继链 Zone: 平行链 Cosmos Hub中心 代币可以安全快速地从一个Zone传递到另一个Zone,两者之间无需体现汇兑流动性. Zone内部所有代 ...

  8. 跨链Cosmos(12) Cosmos插件

    Tendermint 有一个插件模块,我们可以实现 plugin 中接口,在 ibc 插件中执行跨链交易. 1. plugin 接口的定义 //与 abci 接口很类似 type Plugin int ...

  9. 跨链Cosmos(10) IBC接口

    1. 子模块 1.1 IBCRegisterChainTx 注册 在跨链开始用来注册,并发送创世区块,Validator 给对方,这个只能执行一次,多次执行会报错. type IBCRegisterC ...

最新文章

  1. mxnet 衰减学习率
  2. IOS8 PUSH解决方法
  3. 《工具癖》Mac与Windows获取文件绝对路径的快捷键
  4. centos7安装MySQL 5.7
  5. Ubuntu 18.04 语言学相关软件的安装
  6. vc830l 说明书_有了解vc830l万用表使用方法的吗?
  7. Codeforces Gym 100015A Another Rock-Paper-Scissors Problem 找规律
  8. rpx 和 rem 详解
  9. java接口推送_推送API
  10. 腾讯企业邮箱满了,如何清空邮箱?
  11. 实验6 Sniffer网络安全检测
  12. 自定义 C++ 和 CUDA 扩展
  13. Imperva是什么
  14. fscanf php,php fscanf 函数_PHP教程
  15. 为什么win10提示没有管理权限
  16. 对酒当歌,孤寂之歌!
  17. 关于Mobile Web App你所应该知道的
  18. 赵小楼:《天道》《遥远的救世主》深度解析(18)细说丁元英中止私募基金的必然性
  19. java计算机毕业设计家电仓储管理系统源码+mysql数据库+系统+lw文档+部署
  20. Java实现按中文名称排序

热门文章

  1. c-nominated = ((rcheck-use_candidate) || c-nominated);
  2. Android --- Android Studio 内无法直接运行 main 方法
  3. Java 基础之 Random类和Math.random()方法
  4. axure9 邮件点击效果_EDM邮件营销,你不得不知道的8个指标?
  5. matlab中句点,matlab入门学习(一)
  6. java 服务器发布_我如何在java中发布到服务器?
  7. 推进大数据中心新能源应用 广东省六部门联合印发培育新能源战略性新兴产业集群行动计划(2021—2025年)...
  8. 数据中心夏季如何防雷
  9. asp调用php函数,asp函数split()对应php函数explode()
  10. Python编程语言学习:sklearn.manifold的TSNE函数的简介、使用方法、代码实现之详细攻略