微众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通用区块链接口”设计的主要内容,如果未能解决你的问题,请参考以下文章

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

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

微众WeCross 跨链平台网络拓扑

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

微众WeCross 跨链平台平台介绍

微众WeCross 跨链平台(13)开发示例