可靠性對比
區塊鍊的可靠性主要考察區塊鍊網絡、共享帳本、賬戶體系三個方面。
(一)區塊鍊網絡:商業區塊鍊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廣泛支援。
原文釋出時間為:2018年01月04日
本文作者:區塊鍊大學營
本文來源:
CSDN區塊鍊大學營,如需轉載請聯系原作者。