——背景——
當前,區塊鏈跨鏈平臺的接入方式在架構設計上存在著較大差異,如何將應用鏈快速、便捷地接入跨鏈系統是一個亟待解決的問題。趣鏈BitXHub跨鏈服務平臺采用中繼鏈+網關的跨鏈方案,其中,跨鏈網關擔任著區塊鏈間收集和傳播交易的角色。采用插件機制的設計將網關與應用鏈交互的模塊與跨鏈網關核心功能模塊進行解耦,從而實現不同種類應用鏈高效地接入跨鏈系統。在Pier運行時,通過動態加載插件的方式完成不同應用鏈的靈活適配。為了更好的提升Pier與應用鏈的交互能力,具體應用鏈插件需要根據不同區塊鏈的特性實現具體的接口,交互接口需要滿足以下幾個功能:
1)監聽應用鏈上的跨鏈事件并傳給核心模塊進行處理;
2)執行來自于網關發出的跨鏈請求;
Arbitrum網絡總鎖倉量達24.4億美元,創歷史新高:金色財經報道,據DefiLlama數據顯示,Arbitrum網絡總鎖倉量達24.4億美元,創歷史新高。其中,GMX占比24.41%。[2023/5/7 14:47:59]
3)能夠主動查詢應用鏈上已收到和已執行的跨鏈請求狀態。
在插件實現方案的設計中,我們先后采用了兩種不同的插件機制,下面就來介紹一下我們使用原生插件時碰到的問題以及新插件方案的優勢。
——原生插件——
go語言從1.13版本開始支持編譯為插件,使用方式如下
gobuild--buildmode=plugin-oappchain.so*.go
報告:2022年勒索軟件攻擊者獲利減少40%,至4.568億美元:1月20日消息,區塊鏈情報公司Chainalysis在1月19日發布的《2023年加密犯罪報告》報告中表示,2022年勒索軟件攻擊者獲利暴跌40%,至4.568億美元,同時指出這些數字并不一定意味著攻擊次數比前一年有所下降。
Chainalysis表示,公司被迫加強網絡安全措施,而受害者越來越不愿意向攻擊者支付贖金。在去年同系列報告發布時,2021年勒索軟件攻擊獲利高達6.02億美元,后來又新增了更多的加密貨幣錢包地址,使這一數字升至7.66億美元。
此外,勒索軟件攻擊者在重新分配資金時,有48.3%利用中心化加密貨幣交易所,高于2021年的占比39.3%,而包括遭到OFAC制裁的Tornado Cash在內的混幣協議在2022年被攻擊者利用的占比從11.6%增加到15.0%。(Cointelegraph)[2023/1/20 11:23:09]
go項目在編譯時可以通過--buildmode指定為插件模式,這種方式將輸出為動態鏈接文件。該文件并非可直接運行的二進制文件,而是提供給其他二進制運行時的動態調用。
比特幣礦企Marathon成為BTC持有量第二大上市公司:11月9日消息,在11月8日舉行的第三季度財報電話會議上,比特幣礦企Marathon Digital首席執行官Fred Thiel宣布該公司持有的BTC數量已經達到11,300枚,價值約合2.05億美元,躋身成為BTC持有量第二大的上市公司,僅次于MicroStrategy,超過了加密貨幣交易所Coinbase和Jack Dorsey旗下支付公司Block Inc.。(Cointelegraph)[2022/11/9 12:37:26]
在主二進制文件中的使用方式如下:
Dapper Labs、NFL和NFL PA正式開放NFL傳奇時刻數字收藏品平臺:金色財經消息,DapperLabs、全國橄欖球聯盟(NFL)和NFL PA(NFL球員協會)宣布NFL傳奇時刻數字收藏品平臺NFL ALL DAY正式向所有用戶開放,將于北京時間8月19日2:00推出首批Pack,包括球星Derrick Henry等傳奇時刻,以及Trevor Lawrence等的比賽。另外,運動員Patrick MahomesII將在2022年NFL賽季擔任NFL ALL DAY的代言人。NFL ALL DAY在去年12月份開放封閉測試版。[2022/8/18 12:34:11]
總結來說原生插件具有以下特點:
優點:
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團隊
披薩節的由來 比特幣披薩日起源于一位程序員用10000個比特幣購買2個披薩餅。LaszloHanyec作為一名早期的比特幣礦工,他的電腦每天都能夠挖出數以千計的比特幣,于是他萌生了一個念頭,“在.
1900/1/1 0:00:00今天市場走出了比較悲觀的行情,市場情緒也不可避免的躁動了起來。最大的影響還國內挖礦項目的繼續關停。合肥在線今日發布文章《我省全面清理關停虛擬貨幣挖礦項目》.
1900/1/1 0:00:00DeFi從交易、借貸等領域一路爆發,革新傳統金融的形式漸漸出圈,成為區塊鏈上最主要的應用,但一直被看好的DeFi衍生品市場卻一直沒有獨占鰲頭的時刻,關注度極高,市場反應卻一直不見起勢.
1900/1/1 0:00:00Solidity作為最早提出的智能合約語言,它的出現為區塊鏈的應用場景打開了新的大門。 ——緣起—— 智能合約這個術語最早于1994年由跨領域法律學者尼克·薩博?次提出.
1900/1/1 0:00:00Polkadot生態研究院出品,必屬精品波卡一周觀察,是我們針對波卡整個生態在上一周所發生的事情的一個梳理,同時也會以白話的形式分享一些我們對這些事件的觀察.
1900/1/1 0:00:00BTC行情分析 BTC重新進入了長期主義者多頭的囤積階段,又是考驗信仰的時候了,我們根據過去三個月比特幣交所的總儲備量數據來看: 我們先梳理一個簡單的邏輯.
1900/1/1 0:00:00