——背景——
當前,區塊鏈跨鏈平臺的接入方式在架構設計上存在著較大差異,如何將應用鏈快速、便捷地接入跨鏈系統是一個亟待解決的問題。趣鏈BitXHub跨鏈服務平臺采用中繼鏈+網關的跨鏈方案,其中,跨鏈網關擔任著區塊鏈間收集和傳播交易的角色。采用插件機制的設計將網關與應用鏈交互的模塊與跨鏈網關核心功能模塊進行解耦,從而實現不同種類應用鏈高效地接入跨鏈系統。在Pier運行時,通過動態加載插件的方式完成不同應用鏈的靈活適配。為了更好的提升Pier與應用鏈的交互能力,具體應用鏈插件需要根據不同區塊鏈的特性實現具體的接口,交互接口需要滿足以下幾個功能:
1)監聽應用鏈上的跨鏈事件并傳給核心模塊進行處理;
2)執行來自于網關發出的跨鏈請求;
Bitfinex將于5月30日下架11個交易對:5月26日,據官方消息,Bitfinex將下架11個交易對以鞏固和改善流動性,優化用戶交易體驗。
以下11個交易對將于2023年5月30日上午10:00(UTC)停止交易:
以下代幣與Tether USD的交易對:Boba Network (BOBA/USDt), Spookyswap (BOO/USDt), Dora Factory (DORA/USDt), Terra Luna Classic (LUNA/USDt), Polkacity (POLC/USDt) and Onyxcoin (XCN/USDt)
以下代幣與Bitcoin的交易對:Bitcoin Gold (BTG/BTC), Internet Computer (ICP/BTC), Kyber Network Crystal (KNC/BTC) and Zilliqa (ZIL/BTC)
以下代幣與Ether的交易對:Cosmos (ATOM/ETH)
客戶在2023年5月30日之前取消以上交易對的任何未完成訂單,屆時系統將自動取消所有未完成訂單。[2023/5/26 9:43:40]
3)能夠主動查詢應用鏈上已收到和已執行的跨鏈請求狀態。
硅谷銀行金融集團CEO在暴雷之前套現公司股票:3月11日消息,在硅谷銀行披露大規模虧損不到兩周前,首席執行官Greg Becker根據一項交易計劃賣出了360萬美元公司股票。監管備案文件顯示,2月27日,Becker賣出了12,451股母公司硅谷銀行金融集團的股票,為一年多來首次。他在1月26日提交了出售股票的相關計劃。Becker本人和硅谷銀行金融集團都沒有立即回復有關Becker出售股票以及他在提交相關計劃時是否清楚公司當時計劃籌資的問題。[2023/3/11 12:57:14]
在插件實現方案的設計中,我們先后采用了兩種不同的插件機制,下面就來介紹一下我們使用原生插件時碰到的問題以及新插件方案的優勢。
——原生插件——
美國財政部就拜登的加密命令公開征求公眾意見:金色財經報道,美國公眾現在可以對拜登總統提出的為加密貨幣行業制定新規則的命令發表意見。3 月,總統下令幾家美國機構開始研究一個全面的系統來監督數字資產,財政部現在正在邀請公眾就他們認為應該是什么樣子提出意見。根據周二的公告,信件必須在8月8日之前收到。
財政部負責國內金融的副部 Nellie Liang 在一份聲明中稱,在我們從事這項重要工作時,財政部正在通過征求公眾意見來尋求從美國人民和市場參與者的專業知識中受益。財政部長耶倫必須在9月向白宮提交一份報告,以回應總統的命令,概述美國加密貨幣增長的影響以及她建議采取的措施。(Coindesk)[2022/7/13 2:10:25]
go語言從1.13版本開始支持編譯為插件,使用方式如下
Skolem完成2000萬美元A輪融資,Galaxy Digital領投:6月8日消息,數據和交易執行服務提供商Skolem完成2000萬美元A輪融資,Galaxy Digital領投,Point72 Ventures、Jump Crypto、Fenwick、West、Morpheus Ventures和Dragonfly Capital參投,所籌資金將用于招聘和提高公司的技術能力,以進一步實現幫助機構訪問DeFi。
注:Skolem旨在為希望進入DeFi市場的機構投資者提供一個安全可靠的入口。(The Block)[2022/6/9 4:11:45]
gobuild--buildmode=plugin-oappchain.so*.go
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團隊
Estuary是什么? Estuary是一種將大量公開許可的數據發送到Filecoin網絡的方式,以便為公共利益檢索數據.
1900/1/1 0:00:00吳說作者|談叔 本期編輯|ColinWu1關于CBDC,美聯儲已經有兩位官員表示積極7月14日,在國會聽證會上,當美聯儲主席鮑威爾被問及“如果由美聯儲推出央行數字貨幣CBDC.
1900/1/1 0:00:007月、8月,加密社區迎來了「GameFi之夏」。在比特幣、主流幣、DeFi都進入調整的五六月份,GameFi龍頭AxieInfinity憑一己之力帶領整個GameFi版塊上漲.
1900/1/1 0:00:007月20日下午16:30左右,Kusama網絡的第五個平行鏈插槽拍賣結束!Bifrost以鎖定136,817個KSM成功贏得Kusama的第五個插槽!并將在2個小時之后.
1900/1/1 0:00:00在長時間負面情緒和持續陰跌之后,比特幣近期走出了一波反彈行情,觸碰震蕩箱體上軌和下壓線阻力位之后出現了回落.
1900/1/1 0:00:00上一集為大家介紹了十幾個項目,都是屬于DeFi協議的范疇,由于上一集還沒介紹完整,今天繼續接著介紹DeFi獨角獸.
1900/1/1 0:00:00