火星链 火星链
Ctrl+D收藏火星链
首页 > 火必APP > 正文

BER:一文读懂「跨链网关的模块化进程」插件机制演化

作者:

时间:1900/1/1 0:00:00

——背景——

当前,区块链跨链平台的接入方式在架构设计上存在着较大差异,如何将应用链快速、便捷地接入跨链系统是一个亟待解决的问题。趣链BitXHub跨链服务平台采用中继链+网关的跨链方案,其中,跨链网关担任着区块链间收集和传播交易的角色。采用插件机制的设计将网关与应用链交互的模块与跨链网关核心功能模块进行解耦,从而实现不同种类应用链高效地接入跨链系统。在Pier运行时,通过动态加载插件的方式完成不同应用链的灵活适配。为了更好的提升Pier与应用链的交互能力,具体应用链插件需要根据不同区块链的特性实现具体的接口,交互接口需要满足以下几个功能:

1)监听应用链上的跨链事件并传给核心模块进行处理;

2)执行来自于网关发出的跨链请求;

DCG请求法院驳回Gemini对该公司及其创始人的欺诈诉讼:金色财经报道,Digital Currency Group提出一项动议,寻求驳回加密货币交易所Gemini对该公司及其创始人Barry Silbert的诉讼,并将 7 月份的诉讼描述为“Winklevoss 长达一年的基于Twitter的人格污蔑的延续”。

Gemini于7月7日提起诉讼,指控Silbert是针对Genesis债权人的欺诈行为背后的“策划者”,声称Silbert直接参与了误导债权人了解Genesis的财务状况,导致其破产。

在周四向美国纽约南区提交的动议中,DCG表示这些说法毫无根据,并补充说 Gemini 及 Cameron Winklevoss 和 Tyler Winklevoss正在进行“诉讼形式的公关活动”。该动议指出,DCG和Silbert没有参与Genesis的运营,也没有“任何实质性参与Gemini Earn计划”。[2023/8/11 16:18:51]

3)能够主动查询应用链上已收到和已执行的跨链请求状态。

Kyber Network将于明日00:00部署升级后的Elastic合约,提醒用户尽快移除流动资金并领取挖矿奖励:4月18日消息,DEX 聚合器 Kyber Network 将于4 月19日00:00开始暂停挖矿和挖矿奖励,同时部署升级的KyberSwap Elastic智能合约。KyberSwap 用户获得的所有原有奖励不受影响。部署新的智能合约后,挖矿将重新启动。Kyber Network提醒用户在UTC时间4月18日16:00(北京时间4月19日00:00)之前移除流动资金并领取挖矿奖励,届时未移除的任何流动性将在紧急取款下进行,流动性将返回到LP的原始钱包,但无人认领的挖矿奖励将被没收。[2023/4/18 14:11:21]

在插件实现方案的设计中,我们先后采用了两种不同的插件机制,下面就来介绍一下我们使用原生插件时碰到的问题以及新插件方案的优势。

美联储副主席布拉德:我想今年利率将上调至3.5%:6月24日消息,美联储副主席布拉德表示,我想今年利率将上调至3.5%。我们需要提前加息,在短期内控制住通货膨胀。通货膨胀扰乱了经济中的价格信号。支持美联储加息以控制通货膨胀。(金十)[2022/6/24 1:30:00]

——原生插件——

go语言从1.13版本开始支持编译为插件,使用方式如下

gobuild--buildmode=plugin-oappchain.so*.gogo项目在编译时可以通过--buildmode指定为插件模式,这种方式将输出为动态链接文件。该文件并非可直接运行的二进制文件,而是提供给其他二进制运行时的动态调用。

在主二进制文件中的使用方式如下:

今日恐慌与贪婪指数为12,恐慌程度上升:6月11日消息,今日恐慌与贪婪指数为12(昨日为13),恐慌程度较昨日上升,等级仍为极度恐慌。

注:恐慌指数阈值为0-100,包含指标:波动性(25%)+市场交易量(25%)+社交媒体热度(15%)+市场调查(15%)+比特币在整个市场中的比例(10%)+谷歌热词分析(10%)。[2022/6/11 4:18:28]

总结来说原生插件具有以下特点:

优点:

1)?使用体验和原生代码一致,类似于代码模块的二进制化;

2)?效率较高,插件直接在主程序进程空间中运行。

缺点:

1)原生插件中的依赖库与主程序必须保持完全一致,否则启动的时候会报错,而且不论这个依赖是直接引用还是间接引用,都会出现这个问题。

——转战RPC插件——

原生插件中严厉的版本限制,使得在升级插件和或网关主程序功能时,可能因为无意升级了主程序某些依赖,插件也必须作出相同的适配升级。这种方式不利于插件的完全解耦,因此我们转向了另外一个使用RPC方式的GO插件项目。

在GO原生支持的插件机制出现之前,hashicorp的go-plugin就已经存在,不过GO原生插件出来之后,他们也并没有放弃对该项目的支持,因为总的来说原生插件并不是很完善,在某些场景下还是go-plugin更方便。

go-plugin插件的使用方式如下:

简单来说,go-plugin项目实现的插件方式采用了C/S模式,主程序作为RPCClient,具体插件作为RPCServer,Server和Client通信也是基于的interface接口规范来通信。

具体使用流程如下:

1)抽象需要插件化的interface,这里直接复用原生插件中使用的接口定义即可;

2)针对Client端和Server端,都实现上述接口。Server端的实现是具体的插件处理逻辑部分的代码;Client端的实现只需封装一下gRPC处理的结果和异常信息,之后便可以做到主程序在使用插件时对于gRPC的弱感知化。

Server实现部分:

Client实现部分:

▲额外需要注意的是:

插件中需要调用plugin.Serve来授权主程序使用自己的RPC服务。这里需要注意的是,主程序和插件通信前需要进行握手,主要包括确认该插件的版本信息。主程序使用plugin.Client对象启动插件,该插件是运行在另一个进程中的,所以插件崩溃并不会影响到主程序。client与server在使用中实际上是通过进程间Socket来完成通信,这虽然牺牲了一定的性能却换来了原生插件的单进程方案所不具备的依赖解耦?多语言支持等灵活应用。——结语——

go-plugin提供两种通信方式的选择,一种是GRPC,一种是GO语言标准库中自带的net/rpc。GRPC插件的好处是可以采用不同的语言来实现,并且Googleprotobuf也是支持多语言的。网关插件本质上已成为连接应用链并实现对网关提供RPC服务的桥梁,开发者在跨语言编写插件时的阻碍会大大降低,在面对不同应用链特性时也能做到更加可靠与简洁的逻辑呈现。

作者简介

王荻矣?趣链科技数据网格实验室BitXHub团队

标签:RPC应用链BERPLUGRPC价格Bomber CoinPLUG币

火必APP热门资讯
加密货币:功败垂成,加密税收修正案未能在参议院获得一致通过

美国参议院周一否决了加密货币行业支持的一项税收修正案,该修正案旨在免除基础设施法案中对非托管加密货币参与者的加密税报告要求.

1900/1/1 0:00:00
MER:科普 | 基于哈希的密码学:通往量子安全的数学路径(下)

八、一次性签名方案一次性签名方案是由三种算法组成的:一种用于生成一次性密钥对,一种用于计算一次性签名,还有一种用于签名验证。一个OTS方案的实例有一个特定的密钥对,其中P是公钥,S是私钥.

1900/1/1 0:00:00
加密货币:加密云储CEO汪伟:分布式存储与中心化存储应该是互补的丨2021世界区块链大会

巴比特讯,7月25日,“2021世界区块链大会·杭州”在杭州未来科技城学术交流中心举行。本次大会由杭州时戳信息科技有限公司主办.

1900/1/1 0:00:00
COI:CoinShares公布2021年中期财务业绩,综合收入总额达5870万英镑

据PRNewswire8月5日消息,数字资产投资平台CoinShares发布2021年中期财务业绩。期间CoinShares综合收入总额为5870万英镑.

1900/1/1 0:00:00
比特币:纽约加油站及零售连锁店Circle K将安装比特币ATM机

据Nypost8月7日消息,纽约加油站及零售连锁店CircleK宣布将安装比特币自动取款机,方便用户快速方便地购买加密货币.

1900/1/1 0:00:00
AXI:一文回顾链游打金公会YGG的崛起

Tokenterminal数据显示,AxieInfinity月收入已超过1.14亿美元。要知道,对于传统游戏行业来讲,10亿美元的年收入也并不多见.

1900/1/1 0:00:00