總結
若計劃徹底依賴上游的基礎功能而不作任何改造,建議選擇 fabric;不然,應選擇 cita,針對自身業務場景進行持續優化。java
一、可擴展性
微服務架構使 cita 在性能擴展、組件替換與開發語言選擇等方面更加靈活。
node
二、是否支持帳戶模型
fabric 無明確的帳戶模型支持;cita 繼承 ethereum 帳戶模型。
python
三、是否須要發幣
雙方均無需發幣。
linux
四、智能合約:類型
雙方均支持原生合約類型;cita 額外支持 EVM 輕量型合約,並且因爲其繼承自 parity,而目前 parity 已對 WASM 有良好的支持,將來技術升級或移植的成本會更低。
golang
五、智能合約:開發語言
雙方均支持多種合約語言;fabric 支持 java、go、node.js 等,cita 支持 solidity、go、rust 等。
算法
六、跨鏈支持
fabric 不支持,cita 有簡易的支持。
安全
一、TPS
fabric 經各方測試的 TPS 上限爲 1K 左右,cita 具有水平擴展性,官宣性能案例有兩個:2.6K+(4臺4核8G雲主機)與 15K+(4臺32核64G雲主機)。
性能優化
二、出塊時間
都可自行定製,fabric 默認 2s,cita 默認 3s。
架構
三、區塊容量
都可自行定製,cita 在啓動時超級管理員經過系統保留的智能合約設置,若合約不存在,則設置默認值 1G,另有極限值 MAX_UINT64。
微服務
四、區塊類型:靜態 OR 動態
均爲動態。
五、單筆交易容量
都可自行定製,cita 取決於帳戶配額,初始配額由超級管理員設置,後續由在鏈上自動增減——發交易消耗配額,參與共識得到配額。
六、性能優化空間
rust 核心宗旨便是安全與效率,而區塊鏈領域須要頻繁涉及到密碼學相關的高強度計算,故 cita 潛力更大。
一、隱私保護策略
雙方提供相似的隱私保護手段,如:PKI、TLS、私有分區、鏈上審計與治理等。
二、是否支持只讀節點
cita 支持詳細的基於帳戶的權限控制,fabric 僅提供有限的間接支持。
三、共識算法:多樣性
雙方均有多種備選算法。
四、共識算法:運行時變動
雙方均不支持運行時熱拔插。
五、共識算法:及時終止性
均有支持。
六、抗功擊能力
cita 有 rust 加持,具有更高安全保障;rust 的先天性優點,對照 parity 與 geth 的發展歷程,可有明顯的感知(不考慮上層 solidity 合約邏輯漏洞)。
一、項目影響力與團隊實力
faric 由 linux 基金會主持,多家知名跨國公司參與;cita 面向國內,主要由招行背書,其團隊核心有 ethereum 開發背景。
二、代碼質量
faric 更強的團隊成員組成,具有更高的主觀預期;cita 使用的 rust 在運行效率、安全性、穩健性等方面具有先天性優點,有效彌補了其在團隊實力方面的不足。
三、項目生命週期
雙方均已歷經三年以上的開發時間,版本都已迭代至 1.0 版本以上並處於活躍開發狀態。
四、社區活躍度
cita 主要由'祕猿'維護,且開源時間較晚,社區生態不及 fabric。
五、實際應用案例
雙方均有在金融行業的穩定運行數年的實際應用案例,可認爲都已適用於生產環境。
六、二次開發與長期維護可行性
cita 的微服務架構更易改造,且因爲 rust 嚴苛的編譯規則,能夠在很大程度上保障後續自有代碼的質量;更長遠的視角,cita 更有利於平滑的自有知識產權完全重構。
七、多語言開發可行性
rust 自帶高效的 FFI,使其容易與其它語言相互調用,如:python、C/C++、golang 等,理論上具有使用 C 庫能力的語言均能輕易的與 rust 配合。
八、閉源風險
fabric 由 linux 基金會主持,相對於 cita 由單一的商業公司推進,閉源風險更低。