火星链 火星链
Ctrl+D收藏火星链
首页 > 币安币 > 正文

应用链:「跨链网关的模块化进程」插件机制演化-ODAILY

作者:

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

——背景——

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

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

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

PROOF推出Web3创作者加速计划“Outliers”:3月25日消息,NFT项目Moonbirds母公司PROOF在社交媒体宣布推出Web3创作者加速计划“Outliers”,旨在支持“尝试突破技术障碍并通过其艺术作品进行创新”的创作者,据悉首批入围2023春季队列的创作者共有15个,包括Terrell Jones、Alien Queen、Patrick Amadon等。[2023/3/25 13:25:50]

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

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

——原生插件——

英国新首相:相比Crypto Punks,我更喜欢BAYC:10月25日消息,英国新任首相里希·苏纳克(Rishi Sunak)曾在几个月前的一场选举中接受记者提问时表示,相比Crypto Punks,他更喜欢BAYC。相比选择一两种加密货币,他在投资时更偏好于多种Token的投资组合。

此前报道,英国新任首相里希·苏纳克(Rishi Sunak)曾于今年4月提议将英国打造成加密友好型技术中心。此前披露的消息还显示,去年年底,苏纳克访问加州,会见了红杉和a16z的代表,并与包括Bitwise、Celo、Solana和Iqoniq在内的公司共同参与了圆桌会议。[2022/10/25 16:37:58]

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

荷兰合作银行:美联储在2024年前不会改变鹰派立场:9月17日消息,荷兰合作银行表示已经进一步上调了对美联储联邦基金利率的预测,预计美联储下周将加息75个基点,但加息100个基点的风险仍然存在。该行表示,预计在明年,联邦基金利率目标区间的上限将达到5%,而不是此前长期预测的4.50%。作出该预测的原因是该行认为工资-物价的螺旋上升已经开始,这将使通胀持续高企。此外,鉴于美联储显然将抗击通胀的任务置于实现充分就业之上,这将推动美联储提高目前的利率预期,且其在2024年之前不会改变鹰派的货币政策立场。(金十)[2022/9/17 7:02:25]

gobuild--buildmode=plugin-oappchain.so*.go

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

风险投资家Tim Draper:看好比特币,因其具有对冲通胀特性:5月21日消息,风险投资家Tim Draper在接受采访时表示,在加密货币和传统市场正在经历的下行走势中,比特币的重要性与它的通胀对冲特性有关。他称:“我仍然看好比特币,因为它是对冲通胀的好工具,而且随着投机者离开,比特币走势将与科技股背离。我相信,只要利率持续上升,科技股就会继续下跌。”Draper将比特币视为一种对冲通胀的资产,并认为这种特性只有在长期内才能得到升值。此外他还称,比特币提供了一个防范糟糕治理和过多监管的避风港。(CNBC)[2022/5/21 3:32:44]

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

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

优点:

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应用链PLUPLUGRPC价格PlusOneCoinplugchain币总量

币安币热门资讯
SSV:【Deribit期权市场播报】0911——超远看涨-ODAILY

播报数据由Greeks.liveDataLab格致数据实验室和Deribit官网提供。市场交割平稳,主流币价格重心在向下移动,各项数据都表明市场向下压力比较大.

1900/1/1 0:00:00
REV:体验新的速度与激情,NFT赛车等你来领 | 「链游馆-REVV Motorsport展品」开幕-ODAILY

“不一样生态城”---「第一届线上NFT加密狂欢节」已经上线。这一次,Odaily星球日报联合一线互联网公司以及行业头部NFT明星项目在线上打造了一座“NFT生态城”。带你进入神奇的加密世界.

1900/1/1 0:00:00
USDT:脸谱NFT来袭:?Tspace助力中华文化传承-ODAILY

NFT火了,火得一塌糊涂!从区块链圈到传统圈,都无一例外地参与到了这场盛宴之中。毫无疑问,NFT时代到来了!但如果时间的指针拨回到2017年,你可能怎么也想不到NFT行业是多么的“惨不忍睹”!彼.

1900/1/1 0:00:00
EVER:深度剖析如何基于IPFS,打造云计算平台-ODAILY

世界的发展离不开新技术的更新迭代,Web3.0带来的变化把互联网带入了一个全新的发展水平,计算机科学家和互联网专家认为,这些变化将使互联网变得更加智能,我们的生活也将变得更加容易.

1900/1/1 0:00:00
TOKE:跨链简史:从资产桥到互操作-ODAILY

跨链一开始的目标在于让资产能从一条链转移到另一条链,又可以安全的返回,后来扩展到解决两个或多个不同链上资产及状态的互相传递、转移、交换的问题.

1900/1/1 0:00:00
COI:Cointelegraph中文HUB | 即将到来的元宇宙将如何改变整个世界-ODAILY

8月24日,Cointelegraph中文举办线上访谈对话栏目HUB,本期主题为《即将到来的元宇宙将如何改变整个世界》.

1900/1/1 0:00:00