——背景——
當前,區塊鏈跨鏈平臺的接入方式在架構設計上存在著較大差異,如何將應用鏈快速、便捷地接入跨鏈系統是一個亟待解決的問題。趣鏈BitXHub跨鏈服務平臺采用中繼鏈+網關的跨鏈方案,其中,跨鏈網關擔任著區塊鏈間收集和傳播交易的角色。采用插件機制的設計將網關與應用鏈交互的模塊與跨鏈網關核心功能模塊進行解耦,從而實現不同種類應用鏈高效地接入跨鏈系統。在Pier運行時,通過動態加載插件的方式完成不同應用鏈的靈活適配。為了更好的提升Pier與應用鏈的交互能力,具體應用鏈插件需要根據不同區塊鏈的特性實現具體的接口,交互接口需要滿足以下幾個功能:
1)監聽應用鏈上的跨鏈事件并傳給核心模塊進行處理;
多鏈DeFi平臺Rubic近期已集成Cosmos:金色財經報道,多鏈DeFi平臺Rubic發推稱,近期已完成與Cosmos的集成。[2023/5/1 14:36:11]
2)執行來自于網關發出的跨鏈請求;
3)能夠主動查詢應用鏈上已收到和已執行的跨鏈請求狀態。
在插件實現方案的設計中,我們先后采用了兩種不同的插件機制,下面就來介紹一下我們使用原生插件時碰到的問題以及新插件方案的優勢。
——原生插件——
go語言從1.13版本開始支持編譯為插件,使用方式如下
gobuild--buildmode=plugin-oappchain.so*.gogo項目在編譯時可以通過--buildmode指定為插件模式,這種方式將輸出為動態鏈接文件。該文件并非可直接運行的二進制文件,而是提供給其他二進制運行時的動態調用。
黑貓Mimic創始人:屏蔽中文評論并非出于歧視而是要擴展歐美市場:12月12日消息,近日,黑貓Mimic NFT系列創始人SHHAN在MIMIC SHHANS官方推特使用中文回應了一系列質疑,包括歧視中文社區、私吞版稅、管理過于中心化、不愿為Mimic DAO提供資金等。
SHHAN提到,自己并非歧視中國人或中文社區,在評論區屏蔽部分中文評論是出于開拓歐美市場的需求,讓Mimic更國際化,但評論區主要被中文評論占據。此外,SHHAN表示Mimic運營根據地仍然是Discord,微信群是社區自發成立,部分人指責“創始人對社區毫無貢獻”是不夠客觀的。[2022/12/12 21:39:02]
在主二進制文件中的使用方式如下:
數據:幣安銷毀近1億枚USDC:金色財經報道,Whale Alert數據顯示,99,999,997 枚USDC (價值約100,108,896 美元) 在Binance上銷毀。[2022/11/12 12:53:40]
總結來說原生插件具有以下特點:
優點:
1)?使用體驗和原生代碼一致,類似于代碼模塊的二進制化;
2)?效率較高,插件直接在主程序進程空間中運行。
缺點:
1)原生插件中的依賴庫與主程序必須保持完全一致,否則啟動的時候會報錯,而且不論這個依賴是直接引用還是間接引用,都會出現這個問題。
——轉戰RPC插件——
Wonderland將以購買2500萬美元Sifu Vision代幣方式對其進行投資:金色財經消息,DeFi協議Wonderland以89%的支持率通過治理投票,將以購買2500萬美元Sifu Vision代幣方式對其進行投資。
據介紹,Sifu Vision是由Wonderland前財務經理Sifu創立的加密項目。(The Block)[2022/7/2 1:45:37]
原生插件中嚴厲的版本限制,使得在升級插件和或網關主程序功能時,可能因為無意升級了主程序某些依賴,插件也必須作出相同的適配升級。這種方式不利于插件的完全解耦,因此我們轉向了另外一個使用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團隊
關于亞馬遜可能涉足比特幣和Crypto支付的傳言越來越盛行。根據亞馬遜在其網站的招牌啟示顯示,這位電子商務巨頭正在尋求成為一家Crypto和區塊鏈產品的龍頭企業.
1900/1/1 0:00:00前天在文章中我寫到了股市,引起了一些讀者的爭議,不少讀者對此發表了不同的看法。我寫股市的初衷除了看到近期各種監管措施的綜合出臺讓我覺得國家明顯希望將社會資金引入股市之外,還有近期發生在身邊的兩個.
1900/1/1 0:00:00巴比特訊,7月24日,“2021世界區塊鏈大會·杭州”在杭州未來科技城學術交流中心開幕。本次大會由杭州時戳信息科技有限公司主辦,杭州未來科技城管委會等機構支持.
1900/1/1 0:00:00分布式數字身份作為數字世界的入口、網絡3.0的基石,對政策、標準、技術、應用場景等各方面探索都至關重要.
1900/1/1 0:00:007月24-25日,由杭州時戳信息科技有限公司主辦,杭州未來科技城管委會等機構支持的2021世界區塊鏈大會·杭州在杭州未來科技城舉辦.
1900/1/1 0:00:00撰文:AnthonySassano&Nader 編輯:南風 自以太坊EIP-1559提案于2019年4月首次被提出以來,以太坊社區對其進行了大量宣傳.
1900/1/1 0:00:00