Go 開源說第十期:BitXHub——區(qū)塊鏈跨鏈協(xié)作平臺
點擊藍(lán)字
關(guān)注我們
本文由“GO開源說”第十期 《BitXHub——區(qū)塊鏈跨鏈協(xié)作平臺》直播內(nèi)容修改整理而成,視頻內(nèi)容較長,本文內(nèi)容有所刪減和重構(gòu)。
當(dāng)前的區(qū)塊鏈應(yīng)用和底層技術(shù)平臺呈現(xiàn)出百花齊放的狀態(tài),但主流區(qū)塊鏈應(yīng)用中的每條鏈大多仍是一個獨立的、垂直的封閉體系。在業(yè)務(wù)形式日益復(fù)雜的商業(yè)應(yīng)用場景下,鏈與鏈之間缺乏統(tǒng)一的互聯(lián)互通機(jī)制,這極大限制了區(qū)塊鏈上數(shù)字資產(chǎn)價值的流動性,跨鏈需求由此而來。
BitXHub平臺由中繼鏈、應(yīng)用鏈以及跨鏈網(wǎng)關(guān)三種角色組成,并鏈原生集成W3C標(biāo)準(zhǔn)的DID,依據(jù)場景導(dǎo)向可靈活組織部署架構(gòu),具有通用跨鏈傳輸協(xié)議、異構(gòu)交易驗證引擎、多層級路由三大核心功能特性,保證跨鏈交易過程的安全性、靈活性與可靠性。BitXHub于2020年3月份開源核心代碼組件,希望與廣大開發(fā)者攜手共建萬鏈互聯(lián)生態(tài)。
項目開源地址:GitHub: https://github.com/meshplus/bitxhub
BitXHub系統(tǒng)架構(gòu)
BitXHub的技術(shù)架構(gòu)如下圖,自下而上分為物理層、基礎(chǔ)層、跨鏈服務(wù)層、接口層四個部分。
第一層是物理層,中繼鏈的設(shè)計為了滿足不同場景下用戶物理環(huán)境需求,支持在普通物理機(jī)、云主機(jī)或者嵌入式設(shè)備上穩(wěn)定運(yùn)行,兼顧多場景適用性。
第二層是基礎(chǔ)層,這一層包含了聯(lián)盟鏈本身需要具備的模塊,比如網(wǎng)絡(luò)模塊、存儲模塊、共識模塊、虛擬機(jī)、隱私安全模塊。
第三層是跨鏈相關(guān)的服務(wù)層,包括應(yīng)用鏈管理模塊、執(zhí)行模塊、事務(wù)管理模塊、驗證引擎模塊和隱私保護(hù)模塊,各模塊互相協(xié)作完成中繼跨鏈流程。
第四層是接口層,中繼鏈對外提供gRPC和Restful兩種接口服務(wù),支持不同場景下用戶的使用。

接下來為大家分享 BitXHub核心模塊的工作原理,主要包括:跨鏈交易并行執(zhí)行設(shè)計方案、如何使用GO插件機(jī)制適配多種共識算法以及BitXHub中的多模塊化實踐。
跨鏈交易并行處理
背景
首先區(qū)分這些交易中普通交易和跨鏈交易。
跨鏈交易分組

交易執(zhí)行

在上述兩個步驟中,能夠得到多個分組,但是對于這些分組,并不能簡單的全部并行執(zhí)行。能夠進(jìn)行并行處理的部分是跨鏈交易的部分,普通交易還是無法并行執(zhí)行。當(dāng)交易列表中存在普通交易時,必須恢復(fù)到串行執(zhí)行,碰到跨鏈交易的分組,可以按照發(fā)起鏈分成的細(xì)分組來并行處理。
共識算法插件模塊

多模塊選擇加載



串行執(zhí)行器和并行執(zhí)行器都在init方法中調(diào)用agency中的register方法進(jìn)行各自類型和構(gòu)造方法的注冊。當(dāng)BitXHub啟動時,所有包的init方法會先于main方法運(yùn)行,這樣兩個執(zhí)行器的類型和構(gòu)造方法就被注冊進(jìn)agency模塊了,當(dāng)main函數(shù)運(yùn)行時,BitXHub根據(jù)配置文件得到需要加載的執(zhí)行器類型,并從agency模塊中得到對應(yīng)的構(gòu)造函數(shù),就可以構(gòu)造出對應(yīng)的執(zhí)行器進(jìn)行使用了。

更多區(qū)塊鏈干貨面對面交流,添加小助手18458407117加入技術(shù)交流群~
— 往期回顧 —
Go 開源說第七期:Harbor助你玩轉(zhuǎn)云原生

Go 開源說第五期:MOSN Go語言網(wǎng)絡(luò)代理軟件

Go 開源說第四期(下):go-zero緩存管理最佳實踐


?? 各位Gopher們,注意啦!
別忘了還有 Gopher China2021 大會
還沒報名的童鞋們趕快抓住最后的機(jī)會!!!

