區(qū)塊鏈聯(lián)盟鏈應(yīng)用群組架構(gòu)FISCO BCOS 2.0介紹
FISCO BCOS 2.0 新增了很多特性,統(tǒng)稱為“一體兩翼多引擎”,借以表述技術(shù)進(jìn)步產(chǎn)生燃動力,助推聯(lián)盟鏈應(yīng)用落地。
我們認(rèn)為,F(xiàn)ISCO BCOS 2.0并不是FISCO BCOS 1.0的簡單升級,它在擴展性、易用性、隱私隔離等方面開辟了不少新思路。比如,一體指代的群組架構(gòu),使得企業(yè)間建立多方協(xié)作的商業(yè)關(guān)系像拉群聊天一樣靈活輕松,有助于企業(yè)快速地豐富業(yè)務(wù)場景和擴大業(yè)務(wù)規(guī)模,而系統(tǒng)的運維復(fù)雜度和管理成本也線性下降。
FISCO BCOS 2.0的新特性
一體兩翼多引擎全貌:
群組架構(gòu)
群組架構(gòu)是FISCO BCOS 2.0眾多新特性中的主線,創(chuàng)造靈感來源于人人都熟悉的群聊模式——群的建立非常靈活,幾個人就可以快速拉個主題群進(jìn)行交流。同一個人可以參與到自己感興趣的多個群里,并行地收發(fā)信息。現(xiàn)有的群也可以繼續(xù)增加成員。
· 采用群組架構(gòu)的網(wǎng)絡(luò)中,根據(jù)業(yè)務(wù)場景的不同,可存在多個不同的賬本,區(qū)塊鏈節(jié)點可以根據(jù)業(yè)務(wù)關(guān)系選擇群組加入,參與到對應(yīng)賬本的數(shù)據(jù)共享和共識過程中。該架構(gòu)的特點是:
· 各群組獨立執(zhí)行共識流程,由群組內(nèi)參與者決定如何進(jìn)行共識,一個群組內(nèi)的共識不受其他群組影響,各群組擁有獨立的賬本,維護(hù)自己的交易事務(wù)和數(shù)據(jù),使得各群組之間解除耦合獨立運作,可以達(dá)成更好的隱私隔離;
機構(gòu)的節(jié)點只需部署一次,通過群組設(shè)置即可參與到不同的多方協(xié)作業(yè)務(wù)中,或?qū)⒁粋€業(yè)務(wù)按用戶、時間等維度分到各群組,群組架構(gòu)可快速地平行擴展,在擴大了業(yè)務(wù)規(guī)模同時,極大簡化了運維復(fù)雜度,降低管理成本。
支持分布式存儲
FISCO BCOS 2.0新增了對分布式數(shù)據(jù)存儲的支持,節(jié)點可將數(shù)據(jù)存儲在遠(yuǎn)端分布式系統(tǒng)中,克服了本地化數(shù)據(jù)存儲的諸多限制。該方案有以下優(yōu)點:
· 支持多種存儲引擎,選用高可用的分布式存儲系統(tǒng),可以支持?jǐn)?shù)據(jù)簡便快速地擴容;
· 將計算和數(shù)據(jù)隔離,節(jié)點故障不會導(dǎo)致數(shù)據(jù)異常;
· 數(shù)據(jù)在遠(yuǎn)端存儲,數(shù)據(jù)可以在更安全的隔離區(qū)存儲,這在很多場景中非常有意義;
· 分布式存儲不僅支持Key-Value形式,還支持SQL方式,使得業(yè)務(wù)開發(fā)更為簡便;
· 世界狀態(tài)的存儲從原來的MPT存儲結(jié)構(gòu)轉(zhuǎn)為分布式存儲,避免了世界狀態(tài)急劇膨脹導(dǎo)致性能下降的問題;
· 優(yōu)化了數(shù)據(jù)存儲的結(jié)構(gòu),更節(jié)約存儲空間。
并行計算模型
過去將交易打包成一個區(qū)塊,在一個區(qū)塊中交易順序串行執(zhí)行的做法,在FISCO BCOS 2.0中,會通過一套并行交易處理模型實現(xiàn)自定義交易互斥變量。 區(qū)塊執(zhí)行過程中,系統(tǒng)將會根據(jù)交易互斥變量自動構(gòu)建交易依賴關(guān)系圖——DAG,基于DAG并行執(zhí)行交易,最好情況下性能可提升數(shù)倍(取決于CPU核數(shù))。
預(yù)編譯合約
FISCO BCOS 2.0提供預(yù)編譯合約框架,支持采用C++編寫合約,其優(yōu)勢是合約調(diào)用響應(yīng)更快,運行速度更高,消耗資源更少,更易于并行計算,極大提升整個系統(tǒng)的效率。FISCO BCOS內(nèi)置了多個系統(tǒng)級的合約,提供準(zhǔn)入控制、權(quán)限管理、系統(tǒng)配置、CRUD式的數(shù)據(jù)存取等功能,這些功能天然集成在底層平臺里,無需手動部署。
FISCO BCOS提供標(biāo)準(zhǔn)化接口和示例,幫助用戶進(jìn)行二次開發(fā),便于用戶編寫高性能的業(yè)務(wù)合約,并方便地部署到FISCO BCOS里運行。預(yù)編譯合約框架兼容EVM引擎,形成了“雙引擎”架構(gòu),熟悉EVM引擎的用戶可以選擇將Solidity合約和預(yù)編譯合約結(jié)合,在滿足業(yè)務(wù)邏輯的同時獲得巨大的效率提升。
CRUD合約
FISCO BCOS 2.0新增符合CRUD接口的合約接口規(guī)范,簡化了將主流的面向SQL設(shè)計的商業(yè)應(yīng)用遷移到區(qū)塊鏈上的成本。其好處顯而易見:
· 與傳統(tǒng)業(yè)務(wù)開發(fā)模式類似,降低了合約開發(fā)學(xué)習(xí)成本;
· 合約只需關(guān)心核心邏輯,存儲與計算分離,方便合約升級;
· CRUD底層邏輯基于預(yù)編譯合約實現(xiàn),數(shù)據(jù)存儲采用分布式存儲,效率更高。
控制臺
FISCO BCOS 2.0新增控制臺,作為FISCO BCOS 2.0的交互式客戶端工具。
控制臺安裝簡單便捷,簡單配置后即可和鏈節(jié)點進(jìn)行通信,擁有豐富的命令和良好的交互體驗,用戶可以通過控制臺查詢區(qū)塊鏈狀態(tài)、讀取和修改配置、管理區(qū)塊鏈節(jié)點、部署并調(diào)用合約??刂婆_給用戶管理、開發(fā)、運維區(qū)塊鏈帶來了巨大的便利,降低了操作繁瑣性和使用門檻。
虛擬機
FISCO BCOS 2.0引入了最新的以太坊虛擬機版本,支持Solidity 0.5版本。同時,引入了EVMC擴展框架,支持?jǐn)U展不同虛擬機引擎。底層內(nèi)部集成支持interpreter虛擬機,未來可擴展支持WASM/JIT等虛擬機。
其他特性
除上述所列之外,F(xiàn)ISCO BCOS 2.0持續(xù)在網(wǎng)絡(luò)傳輸模型、計算存儲流程等方面進(jìn)行優(yōu)化,對性能提升提供巨大幫助。在架構(gòu)方面,從存儲、網(wǎng)絡(luò)、計算三個角度,圍繞高可用性和高易用性進(jìn)行持續(xù)升級,并基于模塊化、分層、可插拔等設(shè)計原則,持續(xù)對核心模塊進(jìn)行重塑升級,保證系統(tǒng)健壯性。