fabric && cita 调研

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

一、功能

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

  • [ ] - fabric
  • [x] - cita

2、是否支持账户模型
fabric 无明确的账户模型支持;cita 继承 ethereum 账户模型。

  • [ ] - fabric
  • [x] - cita

3、是否需要发币
双方均无需发币。

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

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

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

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

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

6、跨链支持
fabric 不支持,cita 有简易的支持。

  • [ ] - fabric
  • [x] - cita

二、性能

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

  • [ ] - fabric
  • [x] - cita

2、出块时间
均可自行定制,fabric 默认 2s,cita 默认 3s。

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

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

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

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

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

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

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

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

  • [ ] - fabric
  • [x] - cita

三、安全

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

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

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

  • [ ] - fabric
  • [x] - cita

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

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

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

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

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

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

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

  • [ ] - fabric
  • [x] - cita

四、其它

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

  • [x] - fabric
  • [ ] - cita

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

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

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

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

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

  • [x] - fabric
  • [ ] - cita

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

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

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

  • [ ] - fabric
  • [x] - cita

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

  • [ ] - fabric
  • [x] - cita

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

  • [x] - fabric
  • [ ] - cita

fabric && cita 调研对比的更多相关文章

  1. linux自动化运维工具Ansible saltstack Puppet、Chef、Fabric之间的对比

    发现分布式是一个发展的趋势,无论是大型网站的负载均衡架构还是大数据框架部署,以及云存储计算系统搭建都离不开多台服务器的连续部署和环境搭建. 当我们的基础架构是分散式或者基于云的,并且我们经常需要处理在 ...

  2. im ui框架调研,对比

    1, https://github.com/jpush/aurora-imui 极光的 支持 Android/iOS/RN 提供了消息列表.输入视图 功能不多, 2,https://github.co ...

  3. android音视频点/直播模块开发

      音视频 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 随着音视频领域的火热,在很多领域(教育,游戏,娱乐,体育,跑步,餐饮,音乐等)尝试做音视频直播/点播功能,那么作为开发一个小白, ...

  4. 主流数据库连接池性能比较 hikari druid c3p0 dbcp jdbc

    背景 对现有的数据库连接池做调研对比,综合性能,可靠性,稳定性,扩展性等因素选出推荐出最优的数据库连接池 . NOTE: 本文所有测试均是MySQL库 测试结论 1:性能方面 hikariCP> ...

  5. 数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)

    https://blog.csdn.net/qq_31125793/article/details/51241943 背景 对现有的数据库连接池做调研对比,综合性能,可靠性,稳定性,扩展性等因素选出推 ...

  6. Android音视频点/直播模块开发实践总结-zz

    随着音视频领域的火热,在很多领域(教育,游戏,娱乐,体育,跑步,餐饮,音乐等)尝试做音视频直播/点播功能.那么作为开发一个小白,如何快速学习音视频基础知识,了解音视频编解码的传输协议,编解码方式,以及 ...

  7. Cannot load JDBC driver class 'com.mysql.jdbc.Driver '

    最近在学JAVA, SSM, 照着网上的例子系统启动后总是报这个错(IDE :IEDA): HTTP Status 500 - Request processing failed; nested ex ...

  8. pyCharm专业版破解方案【附:四种破解】

    前言: 一般适合我们的工具才是好的工具,通过调研对比发现pycharm还不错,其它工具就不一一列举了 pyCharm社区版可以永久免费,但是它不支持HTML, JS, and SQL等,为了方便以后使 ...

  9. Clickhouse实时数仓建设

    1.概述 Clickhouse是一个开源的列式存储数据库,其主要场景用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告.今天,笔者就为大家介绍如何使用Clickhouse来构建实 ...

随机推荐

  1. [Bzoj1009][HNOI2008]GT考试(动态规划)

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1009 显而易见的动态规划加矩阵快速幂,不过转移方程不怎么好想,dp[i][j]表示长度为 ...

  2. [BZOJ 2653] middle(可持久化线段树+二分答案)

    [BZOJ 2653] middle(可持久化线段树+二分答案) 题面 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整. 给你一个长度为n的序 ...

  3. flex布局解说和属性

    1. flex-direction 规定当前DIV下面的子元素是横向布局还是纵向布局 row 默认值,横向布局相当于float:left column 纵向,相当于DIV默认的垂直方向 2.justi ...

  4. go 协程(Goroutine)

    Go 协程是什么? Go 协程是与其他函数或方法一起并发运行的函数或方法.Go 协程可以看作是轻量级线程.与线程相比,创建一个 Go 协程的成本很小.因此在 Go 应用中,常常会看到有数以千计的 Go ...

  5. windows安装 阿里云的Fun工具

    由于项目使用到了 函数计算,特此了解到了需要安装 阿里云的Fun工具 Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算.API 网关.日志服务等资源.它通过一个 ...

  6. 【Leetcode周赛】从contest-121开始。(一般是10个contest写一篇文章)

    Contest 121 (题号981-984)(2019年1月27日) 链接:https://leetcode.com/contest/weekly-contest-121 总结:2019年2月22日 ...

  7. Vue实现active点击切换样式

    1.html <div class="filter-nav" v-for="(item,index) in filterData.navTab" :key ...

  8. [BZOJ5466][NOIP2018]保卫王国 倍增

    题面 首先可以写一个暴力dp的式子,非常经典的树形dp \(dp[i][0]\)表示\(i\)这个点没有驻军,\(dp[i][1]\)就是有驻军,\(j\)是\(i\)的孩子.那么显然: \[ \be ...

  9. Ubuntu分区小知识与分区方案

    Most PC operating systems still work with an ancient disk partition scheme that historically makes d ...

  10. VueJS基础框架代码介绍

    参考文档 https://vuejs.bootcss.com/v2/api/ https://router.vuejs.org/zh-cn/essentials/getting-started.htm ...