百度超级链XChainXuperBridge 智能合约接口

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了百度超级链XChainXuperBridge 智能合约接口相关的知识,希望对你有一定的参考价值。

1. 内核设计

应用程序可以用各种语言实现,比如go,c。类比到合约上就是各种合约的功能,如KV访问,QueryBlock, QueryTx等,这些请求都会通过跟xchain通信的方式来执行
在这里插入图片描述

2. 提供统一的合约接口

2.1 合约与xchain进程的双向通信
在这里插入图片描述

xchain进程需要调用合约虚拟机来执行具体的合约代码,合约虚拟机也需要跟xchain进程通信来进行具体的系统调用,如KV获取等,这是一个双向通信的过程。

2.2 在不同虚拟机里面有不同的实现,

2.2.1 native合约

由于合约是跑在docker容器里面的独立进程,因此牵扯到跨进程通信,这里选用了unix socket作为跨进程通信的传输层.

  • xchain在启动合约进程的时候把syscall的socket地址以及合约进程的socket地址传递给合约进程
  • 合约进程一方面监听在unix socket上等待xchain调用自己运行合约代码
  • 另合约进程通过xchain的unix socket创建一个指向xchain syscall服务的grpc客户端来进行系统调用。
    在这里插入图片描述

2.2.2 WASM合约

在WASM虚拟机里面,WASM虚拟机是以library的方式链接到xchain二进制里面,所以虚拟机和xchain在一个进程空间,通信是在xchain和WASM虚拟机之间进行的,这里牵扯到xchain的数据跟虚拟机里面数据的交换,在实现上是通过WASM自己的模块机制实现的

xchain实现了一个虚拟的WASM模块,合约代码执行到外部模块调用的时候就转到对应的xchain函数调用,由于xchain和合约代码的地址空间不一样,还是牵扯到序列化和反序列化的动作。
在这里插入图片描述

以上是关于百度超级链XChainXuperBridge 智能合约接口的主要内容,如果未能解决你的问题,请参考以下文章

百度超级链XChain系统架构

百度超级链XChain(12)平行链与群组

百度超级链XChain平台特点

区块链BaaS云服务(20)百度超级链BaaS

“十四五”数字经济发展规划发布,百度超级链持续深耕产业区块链

百度超级链开放网络治理监督藏品火爆售罄!