BitXHub 跨链插件(Fabric)源码解读

前言

趣链科技的BitXHub跨链平台是业界较为完善的跨链开源解决方案,主要通过中继链、网关和插件机制对跨链流程中的功能、安全性和灵活性等进行了优化。本文对BitXHub的meshplus/pier-client-fabric插件源码作深入解读,学习其优秀的功能设计与代码结构。

跨链交易流程
在这里插入图片描述

典型的跨链调用流程
(各应用链申请/注册跨链功能、权限验证及中继链处理等细节此处省略。)

本文所描述的跨链流程中,插件是作为一个独立的服务运行在应用链上的,所以更准确来说应该叫应用链适配器,而趣链BitXHub跨链平台的这一部分是作为一个插件,由网关启动的,但两者逻辑角色和核心功能较一致(下文统称为插件)。

所有需要进行跨链交易/接收跨链请求的应用链需要安装插件(适配器)并部署提供的跨链合约和业务合约。具体交易流程如下:

用户通过客户端/ SDK 调用涉及跨链交易的业务合约时,应用链将调用跨链合约并抛出跨链事件;

应用链插件将轮询/订阅跨链合约抛出的跨链事件并发送至跨链网关;

跨链网关将从监听到的跨链事件中提取相应方法和参数转换为目标应用链可识别的交易形式(BitXHub自主构建了统一的跨链通用传输协议IBTP)并提交到中继链,作一些处理后再发送到目标应用链的跨链网关;

目标链的跨链网关提取跨链交易请求信息中的合约方法和参数部分,调用插件提供的构建交易接口(一般通过各应用链架构对应的SDK实现)调用相应业务合约;

接收到插件接口提交的调用合约请求后,业务合约执行跨链交易并返回交易状态;

插件接收交易执行状态结果,并结合自己对于超时控制、接口调用问题等错误处理,返回执行状态结果;

跨链网关接收到插件返回的执行结果后,选择相应回调函数并传递给中继链,如成功则回调函数为commit提交,失败则为rollback回滚;

中继链将回调函数信息传递给交易发起方跨链网关;

交易发起方跨链网关通过插件提供的相应接口调用相应回调函数;

插件接收到跨链网关请求后,调用跨链合约中的回调方法(一般通过个应用链架构对应的SDK实现);

跨链合约调用业务合约,执行回调方法相应交易(如状态锁定等)。

插件机制

▲ 接口设计

插件主要负责与应用之间的交互,并以主动监听/被动接口调用的方式参与跨链交易过程。其主要提供以下接口:

1)调用链码

插件接收跨链网关发送的交易参数,封装为已适配应用链接受的参数格式并调用链码,如执行rollback、commit等相应回调方法。

2)查询跨链交易

应用链将跨链交易调用信息存在payload字段中,如合约、用户等,插件对这些信息进行解析

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值