——背景——
當前,區塊鏈跨鏈平臺的接入方式在架構設計上存在著較大差異,如何將應用鏈快速、便捷地接入跨鏈系統是一個亟待解決的問題。趣鏈BitXHub跨鏈服務平臺采用中繼鏈+網關的跨鏈方案,其中,跨鏈網關擔任著區塊鏈間收集和傳播交易的角色。采用插件機制的設計將網關與應用鏈交互的模塊與跨鏈網關核心功能模塊進行解耦,從而實現不同種類應用鏈高效地接入跨鏈系統。在Pier運行時,通過動態加載插件的方式完成不同應用鏈的靈活適配。為了更好的提升Pier與應用鏈的交互能力,具體應用鏈插件需要根據不同區塊鏈的特性實現具體的接口,交互接口需要滿足以下幾個功能:
1)監聽應用鏈上的跨鏈事件并傳給核心模塊進行處理;
2)執行來自于網關發出的跨鏈請求;
David Rubenstein:比特幣將繼續存在,對沒有在100美元時買入感到遺憾:金色財經報道,億萬富翁、私募股權巨頭Carlyle Group聯合創始人David Rubenstein在彭博社采訪中表示, 比特幣 (BTC) 將繼續存在,這要歸功于貝萊德 (BlackRock) 申請比特幣 ETF 現貨的機構興趣的增長,以及全球對政府無法控制的貨幣形式的普遍需求。 他說:“世界各地的很多人都希望能夠以政府無法知道他們擁有什么的貨幣進行交易,并且他們希望能夠正確或錯誤地轉移這種貨幣,所以我認為比特幣不會離開,會繼續發展”。
Rubenstein承認,他對沒有在比特幣100美元時買入感到遺憾。他表示,鑒于貝萊德等傳統金融巨頭最近的興趣,曾經嘲笑加密貨幣和整個行業的人們可能會被迫重新審視。Rubenstein此前曾透露,他個人投資于促進加密貨幣交易的公司,盡管他沒有直接擁有任何加密貨幣。[2023/8/9 21:33:08]
3)能夠主動查詢應用鏈上已收到和已執行的跨鏈請求狀態。
數據:比特幣NFT協議Ordinals銘文鑄造總量突破2000萬枚:金色財經報道,據DuneAnalytics最新數據顯示,比特幣NFT協議Ordinals銘文鑄造總量已突破2000萬枚,本文撰寫時達到20040774枚,截至目前的交易費用總額為1864BTC(約合5454萬美元)。歷史數據顯示Ordinals銘文鑄造總量于5月30日突破1000萬枚,該指標在近2個月時間內翻了一番。[2023/7/29 16:05:50]
在插件實現方案的設計中,我們先后采用了兩種不同的插件機制,下面就來介紹一下我們使用原生插件時碰到的問題以及新插件方案的優勢。
——原生插件——
go語言從1.13版本開始支持編譯為插件,使用方式如下
Meta:明年將把20%的支出用于元宇宙項目上:金色財經報道,盡管受到外界越來越多的質疑,Meta Platforms Inc.仍表示明年將繼續把公司20%的支出用于“元宇宙”項目“Reality Labs”上。當地時間周一(12月19日),Meta首席技術官兼Reality Labs負責人Andrew Bosworth在公司官方博客上發文表示,未來Meta將延續今年三季度的支出方向——80%的投資將用于支持核心業務“應用程序家族”,而另外20%仍將用于Reality Labs。(財聯社)[2022/12/20 21:55:29]
gobuild--buildmode=plugin-oappchain.so*.go
go項目在編譯時可以通過--buildmode指定為插件模式,這種方式將輸出為動態鏈接文件。該文件并非可直接運行的二進制文件,而是提供給其他二進制運行時的動態調用。
趙長鵬:幣安從未做空FTT,與SBF電話溝通后便停止出售行動:11月14日消息,趙長鵬發推表示,Binance從未做空FTT。與SBF電話溝通后便停止了出售行動,目前仍有一部分FTT持倉,并稱這是“非常昂貴的電話”。
此前,11月6日,CZ發推表示,將清算賬戶上所有剩余的FTT。[2022/11/14 13:01:24]
在主二進制文件中的使用方式如下:
總結來說原生插件具有以下特點:
優點:
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團隊
Kusama 本周二7月6日下午16:35左右,Kusama網絡的第三個平行鏈插槽拍賣結束!隨后進行了1個小時的隨機結束期,在17:27左右Astar的先行網Shiden以鎖定138.
1900/1/1 0:00:00收錄于話題 #每日期權播報 播報數據由Greeks.live格致數據實驗室和Deribit官網提供。大宗交易作為市場預警信號,目前看來確實是有效的。注意這里說的是預警信號,而不是交易信號.
1900/1/1 0:00:00最近加密市場走勢低迷,多空分歧嚴重,市場參與者都在思考一個問題——“BTC是不是進入類似2018年的熊市了?”本文將通過市場指標和鏈上指標來客觀分析當前所處的市場階段.
1900/1/1 0:00:00收錄于話題 #每日期權播報 播報數據由Greeks.live格致數據實驗室DataLab和Deribit官網提供.
1900/1/1 0:00:00周一市場傳出亞馬遜謠言,傳言將接受BTC支付,市場應聲大漲;周二立馬出來澄清“我沒有、我不知道、我不是”的三連否認.
1900/1/1 0:00:00災疫頻發,區塊鏈可以解決哪些問題?最近,河南遭到暴雨侵襲,強降雨一度讓鄭州等城市的運轉陷入停滯.
1900/1/1 0:00:00