1. 合约跨链调用原理

由合约发起跨链调用。业务合约通过调用WeCross提供的桥接合约注册跨链调用请求,跨链路由会定时轮询桥接合约获取跨链请求并完成对目标链的调用,之后再进行回调并保存回调结果。

eg. solidity 合约

/*
* 注册跨链调用请求 *
* @param _path 目标链合约的路径
*  @param _method 调用方法名
*  @param _args 调用参数列表
*  @param _callbackPath 回调的合约路径
*  @param _callbackMethod 回调方法名
*  @return 跨链请求的唯一ID
**/function interchainInvoke( string memory _path, string memory _method, string[] memory _args, string memory _callbackPath, string memory _callbackMethod)  public returns(string memory)

2. 合约分类

针对各种链提供内置功能合约,帮助WeCross 实现链级别的管理,如合约调用、事务控制以及跨链交互等。

  • 在首次启动跨链路由时,用户可根据提示一步一步完成所有系统合约的部署。

2.1 代理合约(WeCrossProxy)

WeCross接入一条新区块链时首先需要在该链部署代理合约,代理合约是WeCross调用业务链其它合约的统一入口。

  • 通过constantCall和sendTransaction两个接口实现对目标合约的读写操作。
  • 代理合约目前还负责WeCross事务状态的管理和资源的访问控制。
  • 跨链路由通过调度各个链代理合约的startXA-Transaction、commitXATransactionrollbackXATransac-tion接口完成事务控制。
  • 在合约跨链调用场景中,代理合约还负责跨链交易的去重,以契合跨链路由的多活部署架构。

2.2 桥接合约(WeCrossHub)

桥接合约主要负责合约跨链调用。

step1. 业务合约调用桥接合约的接口注册跨链调用请求(目标链资源路径、方法名、参数列表、回调资源路径、回调方法名);
step2. 跨链路由通过轮询桥接合约获得跨链调用请求,然后完成对目标链的调用以及回调;
steo3. 跨链路由将该次的跨链调用结果保存到桥接合约中,供业务合约查询。

微众WeCross 跨链平台(12)合约总结相关推荐

  1. 微众WeCross 跨链平台(6)UBI通用区块链接口

    1. 系统框架 跨链平台的接口设计包含两个层面,面向上层业务提供的服务接口,以及面向各类异构区块链平台的交互接口. 在跨链场景中有跨链资产流通.资源原子兑换.信息获取.数据跨链更新以及关联交易等众多需 ...

  2. 微众WeCross 跨链平台(8)TTM可信事务机制

    1. 两个problem 区块链网络需要相互获取对方链上的数据,由于它们并没有参与对方区块链的共识流程 保证跨链交易中各自链上交易执行的事务性 2. TTM可信事务机制 (Trust Transact ...

  3. 微众WeCross 跨链平台(5)“UBI通用区块链接口”设计

    1. UBI通用区块链接口(Universal Blockchain Interface) 基于一套通用的区块链数据协议,抽象提炼主流区块链共通的核心数据结构与资源定义,使多种区块链平台可以用统一的数 ...

  4. 微众WeCross 跨链平台(4)异构链互联协议HIP

    1. HIP协议( Heterogeneous Interchain Protocol) 通用的网络交互协议及统一的交互模式 1.1 统一资源寻址协议 用户提供资源地址和相关参数即可实现资源定位和访问 ...

  5. 微众WeCross 跨链平台(13)开发示例

    1. 举例 以资产转移场景为例,跨链的实现逻辑如下:(以Solidity合约逻辑举例,跨Fabric的chaincode实现方式同理) // 从 from 向 to 转移 amount 的资产 con ...

  6. 微众WeCross 跨链平台(11)系统总结

    1. 系统架构 2. 模块及其功能 3 跨链账户服务 跨链账户服务是一个独立进程,帮助用户管理不同链的链账户,实现了跨链身份的统一. step1. 用户注册一个跨链账户 step2. 用户给该跨链账户 ...

  7. 微众WeCross 跨链平台(9)MIG多边跨域治理

    1. MIG多 边 跨 域 治 理(Multilateral Inter-Domain Governance): 一套可扩展.去中心的跨链治理架构,让多个区块链业务能够根据其特定需求共同搭建一条治理链 ...

  8. 微众WeCross 跨链平台(2)网络拓扑

    1. 网络角色 跨链分区(Zone) 指运行着同一类业务的区块链集合.系统支持对这个区块链集合本身和内部的区块链资源进行命名和寻址. 跨链路由(Router) 用于桥接业务系统与区块链的服务进程.多个 ...

  9. 微众WeCross 跨链平台(1)平台介绍

    1. 4S 原则 Synergetic:跨链业务高效协同 一次适配,随处可用"原则,提炼跨链交互必需的"核心接口子集",设计通用数据结构和网络协议, Secure:跨链操 ...

最新文章

  1. JZOJ 5909. 【NOIP2018模拟10.16】跑商(paoshang)
  2. 栈顶指针到底指向哪_被称为“程序员试金石”的指针真的没有那么难!不信的话你来看看
  3. thinkphp mysql desc table_数据库表结构_ThinkPHP 数据库表结构处理类(简单实用)-云栖社区-阿里云...
  4. MySQL关联eclipse_MySQL JDBC 连接数据库基本操作
  5. S3C2440对Nand Flash操作和电路原理(基于K9F2G08U0A)
  6. DelphiMVC连接池配置
  7. Linux内核多线程实现方法 —— kthread_create函数【转】
  8. 汇编in和out介绍
  9. 使用深度学习技术进行水印去除
  10. linux cups用户名密码,Linux下使用CUPS提供打印服务
  11. sql update
  12. Android手机步数怎么统计的,手机中运动步数是如何计算的?(15个回答)
  13. DOS时代往事的回忆
  14. python爬虫与java爬虫的区别_java爬虫(一)主流爬虫框架的基本介绍
  15. ROS机器人操作系统学习笔记(三)ROS通信架构
  16. Auto-Tuning with Reinforcement Learning for Permissioned Blockchain Systems
  17. 使用GI Agent(XAG)实现GoldenGate的高可用性(二)
  18. 初中数学老师计算机培训反思,初中数学老师教学反思
  19. 常用函数的拉氏变换表
  20. Java将分钟数转为小时并且精确到几小时几分钟

热门文章

  1. Python 海龟画图(turtle)常用的颜色单词
  2. Android --- android中Invalidate和postInvalidate的区别
  3. vue后端框架mysql_springboot + vue 前后端结合·数据库查询
  4. 公共基础知识计算机,公共基础知识计算机基础知识试题
  5. 计算机基础及ms office应用,全国计算机等级考试一级计算机基础及MS Office应用模拟练习系统...
  6. 三刷进博 | 跨界直播,组团参展,施耐德电气有备而来!
  7. 无人值守数据中心这一次真的能“大势所趋”吗?
  8. 防范数据中心火灾的7个方式
  9. 『数据中心』供配电与空调设计基础知识
  10. 成功解决ValueError: If using all scalar values, you must pass an index