以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > BNB > Info

「跨鏈網關的模塊化進程」插件機制演化-ODAILY_RPC:應用鏈

Author:

Time:1900/1/1 0:00:00

——背景——

當前,區塊鏈跨鏈平臺的接入方式在架構設計上存在著較大差異,如何將應用鏈快速、便捷地接入跨鏈系統是一個亟待解決的問題。趣鏈BitXHub跨鏈服務平臺采用中繼鏈+網關的跨鏈方案,其中,跨鏈網關擔任著區塊鏈間收集和傳播交易的角色。采用插件機制的設計將網關與應用鏈交互的模塊與跨鏈網關核心功能模塊進行解耦,從而實現不同種類應用鏈高效地接入跨鏈系統。在Pier運行時,通過動態加載插件的方式完成不同應用鏈的靈活適配。為了更好的提升Pier與應用鏈的交互能力,具體應用鏈插件需要根據不同區塊鏈的特性實現具體的接口,交互接口需要滿足以下幾個功能:

1)監聽應用鏈上的跨鏈事件并傳給核心模塊進行處理;

2)執行來自于網關發出的跨鏈請求;

OpenAI創始人:OpenAI“計劃遵守”歐盟的監管規定:金色財經報道,OpenAI創始人Sam Altman:OpenAI“計劃遵守”歐盟的監管規定。公司將“慎重考慮”開設新辦事處。[2023/5/26 9:44:53]

3)能夠主動查詢應用鏈上已收到和已執行的跨鏈請求狀態。

在插件實現方案的設計中,我們先后采用了兩種不同的插件機制,下面就來介紹一下我們使用原生插件時碰到的問題以及新插件方案的優勢。

——原生插件——

go語言從1.13版本開始支持編譯為插件,使用方式如下

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

CoinFLEX聯創:愿意以OPNX相關權益換取Bitcoin.com以及BlockChain.com創始人還款并達成和解:4月5日消息,CoinFLEX 聯創 Mark Lamb 在社交媒體上發文表示,希望與 Bitcoin.com 創始人 Roger Ver 以及 BlockChain.com 創始人兼首席執行官 Peter Smith 達成和解,以 OPNX 相關權益換取二者早日歸還欠款。

Mark Lamb 表示,若 Bitcoin.com 創始人 Roger Ver 能如約向 CoinFLEX 支付應付的 8400 萬美元款項(借款為 4700 萬美元,最終赤字為 8400 萬美元),Mark 愿意為 Roger 免去 2 年 OPNX 平臺交易手續費。若 BlockChain.com 創始人 Peter Smith 能歸還其欠 CoinFLEX 的 300 萬枚 FLEX,Mark 愿意給予 Peter 獲得 OPNX 股權的機會。[2023/4/5 13:46:41]

go項目在編譯時可以通過--buildmode指定為插件模式,這種方式將輸出為動態鏈接文件。該文件并非可直接運行的二進制文件,而是提供給其他二進制運行時的動態調用。

DOGE短線突破0.1美元:金色財經報道,OKX行情顯示,DOGE短線拉升突破0.1 美元,現報0.0974美元 ,24小時漲幅為22.64%。此前消息,Twitter將網頁Logo改成狗狗表情頭像。[2023/4/4 13:43:09]

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

總結來說原生插件具有以下特點:

優點:

1)使用體驗和原生代碼一致,類似于代碼模塊的二進制化;

2)效率較高,插件直接在主程序進程空間中運行。

數據:處于虧損狀態的BTC地址數量達8個月低點:1月21日消息,Glassnode數據顯示,處于虧損狀態的BTC地址數量(7日MA)為14,248,189.321,達到8個月低點。[2023/1/22 11:25:31]

缺點:

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團隊

Tags:RPC應用鏈PLUPLUGRPC價格PluraCoinplugchain幣機制

BNB
詳解Kusama第二輪插槽拍賣的機遇與策略,哪些團隊值得重點關注?-ODAILY_AMA:SAM

Polkadot生態研究院出品,必屬精品 背景 距離上一次Kusama插槽拍賣結束已經過去了一個月整,而出人意料的是在上一輪Kusama插槽拍賣中超過10%的KSM直接被鎖定.

1900/1/1 0:00:00
Polkadot全網提名人數量達上限,將升級調整Staking參數 | 波卡周報-ODAILY_DOT:APOLLO價格

加入PolkaWorld社區,共建Web3.0! Kusama Karura社區已通過鏈上治理啟動Kusama網絡首個去中心化跨鏈穩定幣kUSD,并支持KSM抵押借出kUSD.

1900/1/1 0:00:00
深度剖析如何基于IPFS,打造云計算平臺-ODAILY_EVER:web3域名交易

世界的發展離不開新技術的更新迭代,Web3.0帶來的變化把互聯網帶入了一個全新的發展水平,計算機科學家和互聯網專家認為,這些變化將使互聯網變得更加智能,我們的生活也將變得更加容易.

1900/1/1 0:00:00
烤仔創作者聯盟│以太坊EIP-1559 vs 比特幣“聰”時代,誰是終極王者?-ODAILY_NEX:digifinexapp騙局

最近,隨著以太坊EIP-1559的升級完成,以太坊的價格迎來了突破,從1700美金附近連續上漲并突破3100美金,漲幅超過80%。以太坊的上漲也帶動了整個加密貨幣市場的回暖.

1900/1/1 0:00:00
超話社區115期|OHDAT:元宇宙首個3D可動的機甲萌寵系列收藏-ODAILY_WEB3:NFT

OHDAT是NFT賽道的新玩家,專注于NFT+潮玩收藏領域,團隊核心成員來自國內頭部潮玩品牌52TOYS.

1900/1/1 0:00:00
加密三劍客—馬斯克、木頭姐、杰克的觀點總結 綠色能源挖礦是否屬實?-ODAILY_加密貨幣:馬斯克

「The?World」是一項以比特幣為重點的線上峰會,目標是消除主流媒體、商業領袖對比特幣敘述的污名化,向他們解釋采用加密貨幣的原因以及機構如何能夠和應該接受它,并解決網絡中的問題.

1900/1/1 0:00:00
ads