接口作为跨链交互的基础,是跨链平台的重要组成部分。目前,各种区块链平台提供了丰富的接口。这些接口是否应该在跨链平台中重新实现?为了实现一个通用的跨链平台,如何确定界面设计基调?为了满足复杂多变的跨链需求,需要哪些接口?wecross的接口实现是什么?这篇文章将带你到**。
有许多块链接。是“我想要一切”
随着区块链技术的发展,区块链被广泛应用于各行各业。为了支持越来越多样化的应用场景和复杂的业务需求,区块链接口也在不断发展和完善。目前,主流区块链平台往往提供数十种接口。丰富的接口极大地促进了开发。然而,对于跨链,是否所有的区块链接口都需要使用是个问题。
以FISCO bcos的getpbftview为例,该接口用于获取节点所在指定组中**的pbft视图。它是pbft一致性算法的一个独特接口。然而,对于采用其他共识算法的异构区块链平台,这种接口显然不够通用。
因此,虽然区块环节众多,但如何选择合适的界面来设计跨链平台还需要结合实际情况。
明确核心需求,跨链可“我只”
跨链平台是连接异构链的桥梁。为了屏蔽区块链的差异,降低跨链访问的复杂性,平台与不同区块链之间的交互需要一个通用统一的接口。因此,跨链所需的区块链接口必须是不同区块链的通用接口。
通过梳理主流区块链平台的服务接口,大致可以分为以下三类:
·合同类:这种接口用于实现智能合约部署和智能合约调用功能。它们是支持区块链业务的主要接口,经常被访问。契约调用可以细分为查询类的读取接口(无事务)和更新类的写入接口(事务发送)。通常所说的“上行链路”就是通过这个写接口完成的。
·事件类:主要用于构建区块链事件响应机制,实现区块链与业务层的触发联动功能。区块链通过回调或日志实现事件推送,然后业务层基于监听接口完成事件捕获,以备后续逻辑。
·状态类:主要用于区块链系统的管理,如获取区块头、查询区块高度、查看交易等,这种界面多方位的运维系统可以通过与区块链的配合,实现对整个区块链系统的实时监控和异常情况的报警节点日志。
对于跨链平台,为了操作跨链资源,必须提供契约接口;为了监控跨链请求,还必须提供事件类接口;为了完成跨链交易验证,必须获取每个链的块头。因此,状态类接口也是必需的。
虽然每个类别都有很多接口,但是每个块链的共同接**叉点是交叉链接口基础。因此,跨链的功能需求相对确定,涉及的接口数量也可以收敛。
抽象和简洁,链上的六个接口就足够了
既然已经确定了跨链接口的基调,那么跨链需要哪些接口?首先需要明确的是,跨链平台的接口设计包括两个层次:上层业务的服务接口和各种异构区块链平台的交互接口。
熟悉的HTTP协议将所有网络访问操作抽象为两种方法:get(获取数据)和post(提交数据)。在跨链场景中,需要跨链资产流转、资源原子交换、信息获取、数据跨链更新、关联方交易等。它们的本质是获取或更新链上的数据。
因此,在服务接口方面,我们借鉴互联网的成功经验,对跨链行为进行抽象和浓缩,发现只需包括以下三个方面:
初始化:跨链资源初始化接口,如部署智能合约;
读取界面:获取链上信息,面向只读场景;
写入接口:更新链上数据,面向跨链交易场景。
跨链访问不仅要获取和发送数据,还要承担跨链可信验证和跨链事务保障的任务,这依赖于块头同步、跨链事务验证和跨链事件监控。通过对交互过程的抽象和提炼,跨链需要以下三个交互接口:
获取块高:查询当前块高,完成块头同步;
获取区块:查询区块头等信息,完成跨链交易校验;
注册事件:用于监听跨链事件。
通过六个界面实现上下交互,打开业务层与区块链之间的信息链接。同时,针对跨链应用屏蔽了不同区块链平台之间接口接入协议的差异,通过统一的数据协议和调用格式完成与多个区块链的交互。
我们来设计下一个着陆点
wecross接口的实现就是基于上述思想。Wecross包括两个核心组件:路由器和存根。交叉链路适配器通过插件集成到交叉链路由中。
跨链路由提供的三个主要服务接口是call、sendtransaction和CustomCommand。Call和sendtransaction用于协定调用,CustomCommand用于其他自定义命令,例如协定部署。它还保留了平台扩展的可能性,以适应不断变化的跨链需求。
跨链适配器定义了六个核心区块链操作接口,包括call、sendtransaction、CustomCommand、getblocknumber、getblock和registerevent。
前三个对应于服务接口,getblocknumber和getblock分别用于块头同步和跨链事务验证,registerevent用于侦听跨链事件。
在为不同区块链开发跨链适配器时,只需实现上述六个接口,即可完成基于插件的异构区块链接入。
跨链路由管理不同区块链的跨链适配器。当接收到来自业务层的呼叫请求时,根据请求包中的call target字段确定请求的最终目的地,然后选择相应的跨链适配器完成请求转发,**完成跨链调用。
基于上述接口,wecross实现了基于HTLC的跨链资产原子交换和基于2pc的跨链交易支持,完成了多种数字存单场景的跨链功能验证。
交叉链技术还处于探索阶段。考虑到业务的实用性,应简化接口协议设计,“小而美”优于“大而全”
随着区块链平台的发展和跨链需求的不断演进,跨链接口也将与时俱进,不断改进和完善,并不断向前推进。目前,跨链6接口可以处理!今后,我们跨社区将与您一起战斗!
文章标题:带你了解交叉链,六个核心接口就足够了
文章链接:https://www.btchangqing.cn/99201.html
更新时间:2020年09月07日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。