可靠性對比
區塊鏈的可靠性主要考察區塊鏈網路、共用帳本、賬戶體系三個方面。
(一)區塊鏈網路:商業區塊鏈A、商業區塊鏈B、Fabric均網路可靠
區塊鏈網路主要測試三個指標:記賬節點高可用、服務節點之間高可用、區塊鏈網路的網路抖動是否影響系統服務等級。第一、二個指標的測試方法是通過指令碼進行評測,設區塊鏈中包含n個記賬節點或服務節點,通過指令碼依次停掉1~n個記賬節點或服務節點,檢查區塊鏈網路是否依然能夠正確執行交易、達成共識並記賬或通過服務節點對外提供服務;第三個指標的測試方法是通過工具進行類比評測,在規定的服務等級和網路規模下,通過類比一定量的網路節點加入或退出,獲得其所容忍得比例值。具體測試結果如下表。
測試結果表明,商業區塊鏈A、商業區塊鏈B、Fabric均支援記賬節點和服務節點的高可用,且網路抖動不影響系統服務等級,三個區塊鏈系統均網路可靠。
(二)共用帳本:商業區塊鏈A、商業區塊鏈B、Fabric均賬本可靠
共用帳本主要測試三個指標:賬本高可用、賬本支援failover同步、賬本備份恢複。第一、二個指標的評測方法是通過指令碼進行評測,第三個指標的評測方法是根據白皮書與相關文檔進行專家判斷,具體來說,第一個指標的測試方法是假設區塊鏈中包含n個記賬節點,每個記賬節點均有一份共用賬本,通過指令碼依次停掉1~n個記賬節點,檢查區塊鏈網路是否依然能夠正確執行交易、達成共識並記賬,恢複被停掉的節點,檢查是否自動同步為最新賬本;第二個指標的測試方法是通過指令碼停掉區塊鏈網路中的某一個記賬節點,經過10個區塊的產生時間後通過指令碼重新開啟該節點,恢複被停掉的節點,檢查是否自動同步為最新賬本並恢複記賬能力;第三個指標的測試方法是判斷是否有備份和恢複的工具,若有,使用該工具進行備份匯出操作,經過一段時間後,使用工具進行備份恢複匯入操作,檢查賬本是否回到備份時的狀態,並正常運行。具體測試結果如下表。
測試結果表明,商業區塊鏈A、商業區塊鏈B、Fabric均支援賬本高可用、賬本支援failover同步、賬本備份恢複,三個區塊鏈系統賬本可靠。
(三)賬戶體系:商業區塊鏈A、商業區塊鏈B、Fabric均賬戶可靠
賬戶體系主要測試一個指標:不同節點下的賬戶資訊高可用。測試方法是利用指令碼使某一賬戶所在節點失效,使用指令碼對失效節點的賬戶進行類比轉賬等交易行為,檢查交易是否成功;若成功,則不同節點的賬戶資訊高可用。具體測試結果如下表。
測試結果表明,商業區塊鏈A、商業區塊鏈B、Fabric均支援不同節點下的賬戶資訊高可用,三個區塊鏈系統賬戶可靠。
綜合來看,區塊鏈網路、共用帳本、賬戶體系三個方面,商業區塊鏈A、商業區塊鏈B、Fabric均可靠。 易用性對比
區塊鏈的易用性主要考察區塊鏈網路、智能合約、交易、賬戶體系、共用帳本五個方面。
(一)區塊鏈網路:商業區塊鏈A網路操作最簡單,Fabric次之,商業區塊鏈B不支援刪除網路節點
區塊鏈網路主要測試兩個指標:網路搭建的複雜程度、增刪節點的複雜程度。測試方法是根據白皮書與相關文檔收集搭建多節點區塊鏈網路或增刪節點的具體步驟,類比搭建多節點區塊鏈網路或增刪節點,計算搭建所需時間及搭建步驟複雜程度或增刪步驟複雜程度。具體測試結果如下表。
測試結果表明,網路搭建的複雜程度方面,商業區塊鏈A最快,10分鐘以內,Fabric次之,4小時以內,商業區塊鏈B最慢,8小時以內。增刪節點的複雜程度方面,商業區塊鏈A和Fabric均支援增刪節點且不需要停機,商業區塊鏈B不支援刪除節點。
(二)智能合約:商業區塊鏈A和Fabric智能合約操作簡單,商業區塊鏈B智能合約操作需通過中心節點
智能合約主要測試三個指標:智能合約支援的語言、註冊智能合約複雜程度、部署智能合約複雜程度。第一個指標的測試方法是根據白皮書與相關文檔收集智能合約支援的開發語言;第二、三個指標的測試方法是通過在某一個節點下進行智能合約註冊或部署行為,記錄所需流程,流程需要2步以上視為複雜。具體測試結果如下表。
測試結果表明,三個區塊鏈系統的智能合約分別支援不同的語言,智能合約註冊和部署方面,商業區塊鏈A和Fabric採用去中心化方式,商業區塊鏈B採用中心節點方式,三個系統的過程均簡單。
(三)交易:商業區塊鏈A和Fabric交易操作簡單,商業區塊鏈B交易查詢僅支援介面進行
交易主要測試兩個指標:交易查詢複雜度、交易發起複雜度。測試方法是通過在某一個節點下進行交易的查詢或發起行為,記錄所需流程,流程需要2步以上視為複雜。具體測試結果如下表。
測試結果表明,交易查詢方面,商業區塊鏈A和Fabric支援介面、SDK進行查詢,商業區塊鏈B支援介面進行查詢。
(四)賬戶體系:商業區塊鏈A賬戶操作簡單且健全,Fabric次之,商業區塊鏈B僅支援註冊操作
賬戶體系主要測試三個指標:註冊複雜度、銷毀複雜度、授權複雜度。第一、二個指標的測試方法是通過在某一個節點下進行註冊或銷毀行為,記錄所需流程,流程需要2步以上視為複雜;第三個指標的測試方法是類比將B賬戶授權給A賬戶,記錄授權所需流程,流程需要2步以上視為複雜。具體測試結果如下表。
測試結果表明,商業區塊鏈A賬戶體系易用性功能豐富,Fabric次之,商業區塊鏈B僅支援註冊。
(五)共用帳本:商業區塊鏈A、商業區塊鏈B、Fabric均支援賬本檢索
共用賬本主要測試兩個指標:共用賬本的檢索條件限定、建立索引。兩個指標的測試方法都是根據白皮書與相關文檔判斷,具體來說,第一個指標的測試方法是判斷是否支援檢索,若支援,類比賬本檢索,使用指令碼工具計算平均檢索時間。第二個指標的測試方法是判斷是否支援建立索引,若支援,類比對共用賬本進行索引建立。具體測試結果如下表。
測試結果表明,三個區塊鏈系統均支援通過id、關鍵字、時間區間、條件選擇、溯源進行賬本檢索,但均不支援建立索引。
綜合來看,區塊鏈網路、賬戶體系方面,商業區塊鏈A最易用且功能健全,智能合約和交易方面,商業區塊鏈A和Fabric操作最簡單,共用帳本方面,三個區塊鏈系統均支援賬本檢索。 可擴充性對比
區塊鏈的可擴充性主要考察網路節點、共識演算法、外圍開發、雲平台整合四個方面。
(一)網路節點:商業區塊鏈A和Fabric網路節點可擴充性高,商業區塊鏈B不支援網路節點動態刪除
網路節點主要測試三個指標:網路節點動態增加、網路節點動態刪除、網路節點數量限制。三個指標的測試方法都是通過白皮書與相關文檔進行專家判斷,具體來說,第一、二個指標的測試方法是使用系統提供的命令嘗試在網路中動態增加或刪除一個節點,檢查節點增加或刪除後網路狀態是否正常;第三個指標的測試方法是判斷是網路節點是否有限制,若有限制,限制是多少,即為區塊鏈網路規模,通過類比不斷動態增加網路節點數,檢查網路規模到達節點數限制前,是否正常,若無限制,通過類比不間斷動態增加網路節點數,檢查網路是否異常。具體測試結果如下表。
測試結果表明,商業區塊鏈A和Fabric網路節點可擴充性功能完備,可擴充性高,商業區塊鏈B不支援網路節點動態刪除。
(二)共識演算法:商業區塊鏈A和Fabric共識演算法可擴充性高,商業區塊鏈B不支援可插拔自訂共識演算法
共識演算法主要測試六個指標:可插拔自訂共識演算法、若採用PoW,挖礦難度能否自訂。、若採用PoW,需要多少個區塊的確認才能保證一筆交易不會被撤銷。、共識演算法根據網路規模調整、共識演算法根據參與方數量調整、共識演算法根據交易輸送量需求調整。六個指標的測試方法都是通過白皮書與相關檔案進行專家判斷,具體來說,第一個指標的測試方法是通過區塊鏈的預留介面載入自訂的共識演算法,檢查網路中節點達成共識的情況;第二個指標的測試方法是通過區塊鏈提供的介面進行自訂挖礦難度,檢驗不同挖礦難度下,交易達成共識所需時間是否不同;第三個指標的測試方法是判斷是否採用PoW,若採用,需要等N個區塊後才能真正確認交易,計算N個區塊後該筆交易被丟棄的機率;後三個指標的測試方法是檢查共識演算法是否能夠自訂配置,配置項中是否有根據網路規模、參與方數量或交易輸送量進行調整的參數。具體測試結果如下表。
測試結果表明,商業區塊鏈A和Fabric支援可插拔自訂共識演算法,共識演算法可擴充性高,商業區塊鏈B不支援可插拔自訂共識演算法。
(三)外圍開發:商業區塊鏈A外圍開發支援豐富,Fabric次之,商業區塊鏈B僅支援SDK、API
外圍開發主要測試三個指標:可插拔Plugin、ETL、 SDK和API,第一個指標的測試方法是可根據已有的Plugin進行安裝與卸載來驗證Plugin的可用性;第二、三個指標的測試方法是根據提供的ETL介面、SDK、API進行開發驗證。具體測試結果見下表。
測試結果表明,商業區塊鏈A支援可插拔Plugin、ETL、 SDK和API開發,可擴充性好,Fabric不支援ETL開發,商業區塊鏈B只支援SDK和API開發。
(四)雲平台整合:商業區塊鏈A和Fabric雲平台整合支援範圍大,商業區塊鏈B雲平台整合缺失
雲平台整合主要測試三個指標:與雲平台整合、與哪些雲平台整合、提供相應的整合介面,第一個指標的測試方法是使用雲平台進行整合驗證;第二個指標的測試方法是分別進行不同種類的雲平台驗證;第三個指標的測試方法是使用相應的整合介面進行驗證。具體測試結果如下表。
測試結果表明,商業區塊鏈A和Fabric支援與眾多主流雲平台整合,且提供相應的整合介面,商業區塊鏈B不支援與雲平台整合。
綜合來看,網路節點、共識演算法、雲平台整合方面,商業區塊鏈A和Fabric可擴充性高,外圍開發方面,商業區塊鏈A廣泛支援。