微众WeCross 跨链平台(12)合约总结

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微众WeCross 跨链平台(12)合约总结相关的知识,希望对你有一定的参考价值。

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)合约总结的主要内容,如果未能解决你的问题,请参考以下文章

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

微众WeCross 跨链平台“UBI通用区块链接口”设计

微众WeCross 跨链平台(10)使用场景

微众WeCross 跨链平台网络拓扑

微众WeCross 跨链平台平台介绍

微众WeCross 跨链平台跨链路由