fabric && cita 调研对比
fabric && cita 调研
总结
若计划完全依赖上游的基础功能而不做任何改造,建议选择 fabric;否则,应选择 cita,针对自身业务场景进行持续优化。
一、功能
1、可扩展性
微服务架构使 cita 在性能扩展、组件替换与开发语言选择等方面更加灵活。
2、是否支持账户模型
fabric 无明确的账户模型支持;cita 继承 ethereum 账户模型。
3、是否需要发币
双方均无需发币。
4、智能合约:类型
双方均支持原生合约类型;cita 额外支持 EVM 轻量型合约,而且由于其继承自 parity,而目前 parity 已对 WASM 有良好的支持,未来技术升级或移植的成本会更低。
5、智能合约:开发语言
双方均支持多种合约语言;fabric 支持 java、go、node.js 等,cita 支持 solidity、go、rust 等。
6、跨链支持
fabric 不支持,cita 有简易的支持。
二、性能
1、TPS
fabric 经各方测试的 TPS 上限为 1K 左右,cita 具备水平扩展性,官宣性能案例有两个:2.6K+(4台4核8G云主机)与 15K+(4台32核64G云主机)。
2、出块时间
均可自行定制,fabric 默认 2s,cita 默认 3s。
3、区块容量
均可自行定制,cita 在启动时超级管理员通过系统保留的智能合约设置,若合约不存在,则设置默认值 1G,另有极限值 MAX_UINT64。
4、区块类型:静态 OR 动态
均为动态。
5、单笔交易容量
均可自行定制,cita 取决于账户配额,初始配额由超级管理员设置,后续由在链上自动增减——发交易消耗配额,参与共识获得配额。
6、性能优化空间
rust 核心宗旨即是安全与效率,而区块链领域需要频繁涉及到密码学相关的高强度计算,故 cita 潜力更大。
三、安全
1、隐私保护策略
双方提供类似的隐私保护手段,如:PKI、TLS、私有分区、链上审计与治理等。
2、是否支持只读节点
cita 支持详细的基于账户的权限控制,fabric 仅提供有限的间接支持。
3、共识算法:多样性
双方均有多种备选算法。
4、共识算法:运行时变更
双方均不支持运行时热拔插。
5、共识算法:及时终止性
均有支持。
6、抗功击能力
cita 有 rust 加持,具备更高安全保障;rust 的先天性优势,对照 parity 与 geth 的发展历程,可有明显的感知(不考虑上层 solidity 合约逻辑漏洞)。
四、其它
1、项目影响力与团队实力
faric 由 linux 基金会主持,多家知名跨国公司参与;cita 面向国内,主要由招行背书,其团队核心有 ethereum 开发背景。
2、代码质量
faric 更强的团队成员组成,具备更高的主观预期;cita 使用的 rust 在运行效率、安全性、稳健性等方面具备先天性优势,有效弥补了其在团队实力方面的不足。
3、项目生命周期
双方均已历经三年以上的开发时间,版本都已迭代至 1.0 版本以上并处于活跃开发状态。
4、社区活跃度
cita 主要由'秘猿'维护,且开源时间较晚,社区生态不及 fabric。
5、实际应用案例
双方均有在金融行业的稳定运行数年的实际应用案例,可认为都已适用于生产环境。
6、二次开发与长期维护可行性
cita 的微服务架构更易改造,且由于 rust 严苛的编译规则,可以在很大程度上保障后续自有代码的质量;更长远的视角,cita 更有利于平滑的自有知识产权彻底重构。
7、多语言开发可行性
rust 自带高效的 FFI,使其容易与其它语言相互调用,如:python、C/C++、golang 等,理论上具备使用 C 库能力的语言均能轻易的与 rust 配合。
8、闭源风险
fabric 由 linux 基金会主持,相对于 cita 由单一的商业公司推动,闭源风险更低。