微众WeCross 跨链平台“UBI通用区块链接口”设计
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微众WeCross 跨链平台“UBI通用区块链接口”设计相关的知识,希望对你有一定的参考价值。
1. UBI通用区块链接口(Universal Blockchain Interface)
基于一套通用的区块链数据协议,抽象提炼主流区块链共通的核心数据结构与资源定义,使多种区块链平台可以用统一的数据协议交互。
- 对交易、智能合约与资产等数据进行抽象包装,设计统一的资源范式,
- 对主流区块链的关键数据结构进行提炼,设计普适跨链场景的抽象区块数据结构
- 为异构区块链的交互建立数据协议一致的基础
1.1 统一资源范式
UBI 提出统一资源接口范式,使得用户在调用区块链智能合约只需传入通用的参数,并处理统一定义的返回值。
包括数据、调用和事件三类固定的接口。
1.2 统一资源接口public interface Resource
public interface Resource {
// 获取数据
public String getData(String key);
// 设置数据
public void setData(String key, String value);
// 调用智能合约接口
public Receipt call(Transaction transaction);
// 向智能合约发送交易
public Receipt sendTransaction(Transaction transaction);
// 注册事件回调
public void registerEventHandler(EventCallback callback);
}
1.3 接口分类
-
合约类
用于实现智能合约部署、智能合约调用等功能,它们是支撑区块链业务的主力接口,被频繁访问。其中合约调用又可以细分为查询类(不发交易)的读接口和更新类(发交易)的写接口,常说的“上链”就是通过这个写接口完成。 -
事件类
用于构建区块链事件响应机制,实现区块链与业务层的触发式联动功能。
区块链通过回调或者Log的方式实现事件推送,然后业务层基于监听接口完成事件捕获以进行后续逻辑。 -
状态类
主要用于区块链系统管理,例如获取区块头、查询区块高度、查看交易等。这类接口多面向运维系统,通过配合区块链节点日志,能够实现整个区块链系统的实时监控,并对异常情况进行告警。
1.4 抽象区块链包
含业界主流区块链共同的数据字段,用于验证区块链结构的正确性、查询区块链当前状态和验证区块链数据等。多个区块链之间,通过相互同步和获取抽象链的方式,来确认其它区块链的状态,验证预期交互数据的正确性抽象区块的数据字段可以分为两类
- 区块信息字段
包括区块高度、区块哈希值和上一块哈希,这些字段用于验证区块链的正确性; - 信息验证字段
包括交易默克尔根、回执默克尔根和状态默克尔根,分别用于验证该区块相关的交易、回执和状态数据的存在性和正确性,以证明某个交易是否属于当前区块、某个回执是否属于当前区块等。
以上是关于微众WeCross 跨链平台“UBI通用区块链接口”设计的主要内容,如果未能解决你的问题,请参考以下文章