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规定了发送跨链交易的一些必要字段,如下图:

// 数据包定义了一种通过IBC跨不同链传输数据的类型
type Packet struct{  Data []byte // 跨链交易数据Sequence uint64 // number对应于发送和接收的顺序,必须按序发送和接收 SourcePort string  // 标识来源链上的端口 SourceChannel string  // 标识来源链上的通道 DestinationPort string // 标识目的链上的端口DestinationChannel string // 标识目的链上的通道 TimeoutHeight uint64 // 标记数据包超时的区块高度TimeoutTimestamp uint64 // 数据包超时的区块时间戳
}

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) 消息结构相关推荐

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

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

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

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

  3. 跨链Cosmos(10) IBC接口

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

  4. 跨链Cosmos(3)IBC协议

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

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

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

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

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

  7. 跨链Cosmos(12) Cosmos插件

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

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

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

  9. 跨链Cosmos(7)普通交易流程

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

最新文章

  1. 域密码自助重置系统----绑定私人邮箱信息自助重置(一)
  2. 使用VIA声卡 运行生化危机5无声音的解决方案 无需卸载旧驱动
  3. 十一课堂|通过小游戏学习Ethereum DApps编程(4)
  4. python_模块学习
  5. touch: cannot touch /usr/local/tomcat/logs/catalina.out: Permission denied解决方法
  6. II play with GG
  7. usg6620 查看端口流量_WhatRoute for Mac(互联网流量诊断查询工具)
  8. mysql查询以文件形式导出_mysql以文件形式导入导出整个数据库
  9. java spr_Java中的42行代码中的URL缩短器服务(Java(?!)Spring Boot + Redis
  10. [No0000B0]ReSharper操作指南1/16-入门与简介
  11. iOS开发之--NSPredicate
  12. Android——简单模拟银行转账
  13. 恢复更新--vue源码系列1之如何看源码
  14. 编程实现英语句子按单词倒叙-C语言
  15. 阿里巴巴容器技术 Pouch 解析
  16. 编译原理:什么是编译程序?
  17. 手持车辆管理的神器插件,移动端车牌识别技术
  18. python应用程序无法正常启动0xc000007b_应用程序无法正常启动0xc000007b怎么解决
  19. 用计算机弹的数字,在计算器上弹两只老虎是用那几个数字
  20. 易语言运行 (c:内部.exe, 假, ),易语言没法运行exe程序,怎么办?

热门文章

  1. 【Scratch】青少年蓝桥杯_每日一题_3.07_画金字塔
  2. 前端JS——滑动滑块验证登录(源码及效果)
  3. matlab复数方程组,【求解】matlab求解非齐次方程组,但是系数矩阵是复数,求帮忙...
  4. mysql varchar(max)_等价于MySQL中的varchar(max)?
  5. Python之pandas:将dataframe数据写入到xls表格的多个sheet内(防止写入数据循环覆盖sheet表)
  6. Python编程语言学习:判断变量是否为NONE或False的几种常见写法(if not用法教程)
  7. AI:2020年6月22日北京智源大会演讲分享之10:40-11:30 Zoubin教授《Probabilistic Machine Learning and AI》
  8. 成功解决tensorflow\contrib\learn\python\learn\datasets\mnist.py: maybe_download (from tensorflow.contri
  9. Python之pyspark:pyspark的简介、安装、使用方法之详细攻略
  10. 临时配置网络(ip,网关,dns)+永久配置