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