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

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

Author:

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

——背景——

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

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

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

Mike Novogratz:SBF長期存在欺詐行為,應該入獄:12月2日消息,Galaxy Digital創始人Mike Novogratz在DealBook峰會上抨擊前FTX首席執行官Sam Bankman-Fried(SBF),表示SBF此前在采訪中的言論均為妄想,Mike Novogratz抨擊Sam Bankman-Fried和他的同伙長期存在欺詐行為,并建議將他們關進監獄。

此前報道,加密貨幣金融服務公司Galaxy Digital 的首席執行官Michael Novogratz稱,他認為他們無法收回與FTX相關的7700萬美元風險敞口。[2022/12/2 21:17:46]

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

美國參議員候選人:比特幣的供應限制使其可與美元競爭:金色財經報道,美國新罕布什爾州參議員候選人布魯斯芬頓擴大了對BTC的支持,同時反對任何政府參與監管該資產。

芬頓指出,政府不應參與大眾的貨幣選擇,因為他在 8 月 25 日的新罕布什爾州初選辯論中將美元等同于融化的冰塊。 根據芬頓的說法,當前的貨幣體系已經崩潰,理由是美聯儲印鈔的政策。他表示,比特幣的供應限制使其可與美元競爭。(finbold)[2022/8/26 12:50:52]

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

——原生插件——

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

OFAC制裁后Tornado Cash轉出ETH價值突破5000萬美元:金色財經報道,據 Dune Analytics 數據顯示,自 8 月 8 日美國財政部海外資產控制辦公室(The Office of Foreign Assets Control of the US Department of the Treasury)將部分與 Tornado Cash 協議或與之相關以太坊地址進行交互的地址放入 SDN List (美國特別制定國民名單)后,已有價值55,448,992美元的 ETH 從 Tornado Cash 轉出,目前這些 ETH 被轉入到了 701個獨立接收者和 68 個獨立 ENS 地址。[2022/8/10 12:16:08]

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

Web3初創公司Stan完成250萬美元種子輪融資,General Catalyst領投:5月25日消息,Web3初創公司Stan宣布完成了一筆250萬美元的種子輪融資,General Catalyst領投,Better Capital和來自Coinbase Ventures、OpenSea、Kaleyra的天使投資人等參投。

據悉,風投公司General Catalyst過去一直在支持DeFi、Layer1基礎設施、開發者工具和支付領域的項目,曾投資過美元StablecoinUSDC背后的Circle Internet Financial。本次投資Stan,是其在印度Web3和加密領域的第一筆投資。(印度《金融時報》)[2022/5/25 3:39:58]

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

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

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

優點:

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

Tags:RPC應用鏈ENTPLURPC價格Element.BlackVirtacoinplus

以太坊
波卡生態一周觀察丨波卡生態突然熱鬧了起來,背后發生了什么?-ODAILY_AMA

Polkadot生態研究院出品,必屬精品波卡一周觀察,是我們針對波卡整個生態在上一周所發生的事情的一個梳理,同時也會以白話的形式分享一些我們對這些事件的觀察.

1900/1/1 0:00:00
USDT:瘋狂的優雅 | 烤仔觀察-ODAILY_USD

盡管埃隆·馬斯克“朝秦暮楚”的態度引發了加密市場過山車般的動蕩,但世界上市值最大的穩定通證Tether仍在繼續增長.

1900/1/1 0:00:00
Memestake通縮模型閃電貸攻擊分析-ODAILY_MEME

事件背景 北京時間7月20日,有消息稱Sanshu項目方旗下的Memestake項目遭受閃電貸攻擊,損失高達10余萬美金。知道創宇區塊鏈安全實驗室對此事件展開復盤分析.

1900/1/1 0:00:00
Raydius社區進展第二期:產品進度和社區活動-ODAILY_RAY

介紹:Raydius迎來了第二次社區更新。在此行業的全球嚴厲管制手段下,我們不但不會停止前進的腳步,并且還會一如既往的深入研究,盡最大的努力將Raydius建設成最好的項目之一.

1900/1/1 0:00:00
ETH 2.0 抽絲剝繭-ODAILY_ETH

以太坊2.0是對以太坊網絡的升級,它提高了網絡的速度、效率和可擴展性,同時保持了安全性和去中心化。升級對以太坊非常重要,而這將包括三個主要階段:階段0—在信標鏈上部署和抵押.

1900/1/1 0:00:00
一文讀懂區塊鏈技術如何改變非洲貿易(上)-ODAILY_區塊鏈

鏈集市·讓區塊鏈落地更簡單《區塊鏈行業觀察》專欄·第34篇作者丨RafiaRaji 圖片丨來源于網絡 區塊鏈最簡單的形式是一種去中心化的數據庫架構.

1900/1/1 0:00:00
ads