fabric && cita 调研对比

fabric && cita 调研

总结
若计划彻底依赖上游的基础功能而不作任何改造,建议选择 fabric;不然,应选择 cita,针对自身业务场景进行持续优化。java

1、功能

一、可扩展性
微服务架构使 cita 在性能扩展、组件替换与开发语言选择等方面更加灵活。node

  • [ ] - fabric
  • [x] - cita

二、是否支持帐户模型
fabric 无明确的帐户模型支持;cita 继承 ethereum 帐户模型。python

  • [ ] - fabric
  • [x] - cita

三、是否须要发币
双方均无需发币。linux

  • [x] - fabric
  • [x] - cita

四、智能合约:类型
双方均支持原生合约类型;cita 额外支持 EVM 轻量型合约,并且因为其继承自 parity,而目前 parity 已对 WASM 有良好的支持,将来技术升级或移植的成本会更低。golang

  • [x] - fabric
  • [x] - cita

五、智能合约:开发语言
双方均支持多种合约语言;fabric 支持 java、go、node.js 等,cita 支持 solidity、go、rust 等。算法

  • [x] - fabric
  • [x] - cita

六、跨链支持
fabric 不支持,cita 有简易的支持。安全

  • [ ] - fabric
  • [x] - cita

2、性能

一、TPS
fabric 经各方测试的 TPS 上限为 1K 左右,cita 具有水平扩展性,官宣性能案例有两个:2.6K+(4台4核8G云主机)与 15K+(4台32核64G云主机)。性能优化

  • [ ] - fabric
  • [x] - cita

二、出块时间
都可自行定制,fabric 默认 2s,cita 默认 3s。架构

  • [x] - fabric
  • [x] - cita

三、区块容量
都可自行定制,cita 在启动时超级管理员经过系统保留的智能合约设置,若合约不存在,则设置默认值 1G,另有极限值 MAX_UINT64。微服务

  • [x] - fabric
  • [x] - cita

四、区块类型:静态 OR 动态
均为动态。

  • [x] - fabric
  • [x] - cita

五、单笔交易容量
都可自行定制,cita 取决于帐户配额,初始配额由超级管理员设置,后续由在链上自动增减——发交易消耗配额,参与共识得到配额。

  • [x] - fabric
  • [x] - cita

六、性能优化空间
rust 核心宗旨便是安全与效率,而区块链领域须要频繁涉及到密码学相关的高强度计算,故 cita 潜力更大。

  • [ ] - fabric
  • [x] - cita

3、安全

一、隐私保护策略
双方提供相似的隐私保护手段,如:PKI、TLS、私有分区、链上审计与治理等。

  • [x] - fabric
  • [x] - cita

二、是否支持只读节点
cita 支持详细的基于帐户的权限控制,fabric 仅提供有限的间接支持。

  • [ ] - fabric
  • [x] - cita

三、共识算法:多样性
双方均有多种备选算法。

  • [x] - fabric
  • [x] - cita

四、共识算法:运行时变动
双方均不支持运行时热拔插。

  • [x] - fabric
  • [x] - cita

五、共识算法:及时终止性
均有支持。

  • [x] - fabric
  • [x] - cita

六、抗功击能力
cita 有 rust 加持,具有更高安全保障;rust 的先天性优点,对照 parity 与 geth 的发展历程,可有明显的感知(不考虑上层 solidity 合约逻辑漏洞)。

  • [ ] - fabric
  • [x] - cita

4、其它

一、项目影响力与团队实力
faric 由 linux 基金会主持,多家知名跨国公司参与;cita 面向国内,主要由招行背书,其团队核心有 ethereum 开发背景。

  • [x] - fabric
  • [ ] - cita

二、代码质量
faric 更强的团队成员组成,具有更高的主观预期;cita 使用的 rust 在运行效率、安全性、稳健性等方面具有先天性优点,有效弥补了其在团队实力方面的不足。

  • [x] - fabric
  • [x] - cita

三、项目生命周期
双方均已历经三年以上的开发时间,版本都已迭代至 1.0 版本以上并处于活跃开发状态。

  • [x] - fabric
  • [x] - cita

四、社区活跃度
cita 主要由'秘猿'维护,且开源时间较晚,社区生态不及 fabric。

  • [x] - fabric
  • [ ] - cita

五、实际应用案例
双方均有在金融行业的稳定运行数年的实际应用案例,可认为都已适用于生产环境。

  • [x] - fabric
  • [x] - cita

六、二次开发与长期维护可行性
cita 的微服务架构更易改造,且因为 rust 严苛的编译规则,能够在很大程度上保障后续自有代码的质量;更长远的视角,cita 更有利于平滑的自有知识产权完全重构。

  • [ ] - fabric
  • [x] - cita

七、多语言开发可行性
rust 自带高效的 FFI,使其容易与其它语言相互调用,如:python、C/C++、golang 等,理论上具有使用 C 库能力的语言均能轻易的与 rust 配合。

  • [ ] - fabric
  • [x] - cita

八、闭源风险
fabric 由 linux 基金会主持,相对于 cita 由单一的商业公司推进,闭源风险更低。

  • [x] - fabric
  • [ ] - cita
相关文章
相关标签/搜索