Apache ResilientDB 1.13.0 介绍与选型指南
Apache ResilientDB 1.13.0 选型指南:BFT 高吞吐许可链的五层架构、PBFT 共识、KV 与合约接口、快速上手、TLP 治理沿革及与 etcd、FoundationDB、CockroachDB 的量化对比
Apache ResilientDB 1.13.0 介绍与选型指南
一、信息基准
- 查询日期:2026-10-18(本文全部版本与数据均以该日期实查为准)
- 版本依据:官方最新稳定版为 1.13.0:
- Apache 发行目录
downloads.apache.org/resilientdb/当前仅有 1.13.0 目录(目录时间 2026-10-12),发行物为apache-resilientdb-1.13.0-src.tar.gz(附 asc 签名与 sha512); - GitHub 仓库最新 release 为 "Apache ResilientDB 1.13.0"(2026-10-13)。
- Apache 发行目录
- 治理状态:项目于 2023-10-21 进入 Apache 孵化器,2026-09-16 正式毕业成为 Apache 顶级项目(TLP)——以上时间点来自官方仓库 README 的历史沿革章节;官网页脚为标准 TLP 署名(无孵化免责声明),并使用 TLP 标识。
- 说明:GitHub 仓库名目前仍保留
apache/incubator-resilientdb历史名称(2026-10-18 实查),阅读官方资料时请注意这一命名。
官方来源清单:
| 来源 | 地址 | 用途 |
|---|---|---|
| 项目官网 | https://resilientdb.apache.org/ | 定位、特性、下载入口 |
| Apache 发行目录 | https://downloads.apache.org/resilientdb/ | 源码发行物、签名与校验 |
| GitHub 仓库 | https://github.com/apache/incubator-resilientdb | 源码、README、release |
| 社区邮件列表 | dev@resilientdb.apache.org | 社区沟通(官网页脚) |
二、软件概述
2.1 项目定位
本次介绍的版本号为 Apache ResilientDB 1.13.0(发行物时间 2026-10-12/13)。官网定位是 "Global-Scale Sustainable Blockchain Fabric":一套以规模为中心(scale-centric)设计的高吞吐分布式账本/许可链系统,把隐私、完整性、透明与问责直接纳入计算模型。官方 README 的定义是 "High Throughput Yielding Permissioned Blockchain Fabric"——面向许可环境、高吞吐、支持拜占庭容错的区块链底层骨架。
2.2 项目沿革(官方 README 历史章节)
- 2018 年由 UC Davis 的 ExpoLab 实验室(Mohammad Sadoghi 团队)创建,2019 年底开源;
- 2021-09-30 发布 v3.0;2022 年整体重写并重构,形成新一代内核 NexRes(NexRes v1.0.0 于 2022-09-30 发布);
- 2023-10-21 进入 Apache 孵化器;2026-09-16 毕业为顶级项目;
- 主要实现语言为 C++(README 语言徽标),官方平台基线为 Ubuntu 20.04 及以上,源码许可 Apache-2.0。
2.3 与"共识引擎"的关系
ResilientDB 的内核 NexRes 是一个可插拔的 BFT 共识引擎:核心以高度优化的 PBFT(Castro & Liskov, 1998)实现为主,同时支持部署多种共识协议(详见 3.3),在此之上提供 KV、智能合约、UTXO 等多种接口,因此官方与学界也常将其作为"可编程共识引擎/复制状态机平台"使用。
三、核心架构与核心概念
3.1 五层架构(官方 README 文档目录口径)
| 层 | 内容 |
|---|---|
| SDK 层 | Python SDK、ResVault 钱包 |
| 接口层 | Key-Value、Solidity 智能合约、UTXO 模型、RDBC(ResilientDB Database Connectivity)API |
| 平台层 | 共识管理器:排序(ordering)、恢复(recovery)、网络(network)、链管理(chain management) |
| 执行层 | 事务管理器(运行时执行) |
| 链层 | 链状态与存储管理器,基于 LevelDB 实现持久化 |
3.2 PBFT 共识与部署形态
- 通过高度优化的 PBFT 协议对客户端事务排序并在副本间达成共识;
- 采用主备(primary-backup)架构:标识为 0 的副本担任主节点,由主节点发起对客户端事务的共识;
- 部署要求 3f+1 个副本以容忍 f 个任意(含恶意)行为副本,f>0;
- 官方本地部署形态为 4 个副本 + 1 个客户端代理(client proxy):代理聚合客户端请求并批量转发给主节点,副本经 PBFT 对批次排序执行后经主节点返回(README "Build and Deploy" 章节)。
3.3 可插拔共识协议族
除 PBFT 外,官方 README 列出可部署的协议族:GeoBFT(已随 nexres-v1.1.0 发布)、PoE、RCC、RingBFT、PoC、SpotLess、HotStuff、DAG 等,其中部分标注为计划发布。
3.4 系统设计要点
- 多线程架构与深流水线,排序与执行分离,允许消息乱序处理(官网与 README 强调的 scale-centric 设计);
- 网络策略层(networkstrate)将共识与网络实现解耦;
- 代码结构上,
platform/consensus承载共识协议,executor承载 KV/合约/UTXO 三类执行器,service与interface分别提供服务实现与客户端接口(README 项目结构章节)。
四、功能特性
4.1 多种数据接口
- Key-Value 存储服务(官方快速上手的默认形态);
- Solidity 智能合约执行(executor/contract,配套 rescontract 与合约工具链);
- UTXO 模型(executor/utxo)。
4.2 API 与 SDK 生态
- GraphQL 与 REST 两类 API 服务(ecosystem/graphql),面向 Web 后端与数据服务集成;
- Python SDK 与 resdb-orm(Python ORM)、Rust SDK、ResVault SDK、ResShare SDK。
4.3 钱包与可视化
- ResVault:浏览器扩展钱包,管理密钥、认证并审批来自 Web 应用的交易;
- ResLens 监控栈(UI 与后端中间件),支持 Grafana 绘制监控数据;
- 官网特性区还列出图形化部署维护界面与安全认证能力。
4.4 部署与运维工具
- ecosystem/deployment 提供 Ansible 剧本与 Orbit 桌面部署器;
- 官方提供 INSTALL.sh 依赖安装脚本与证书/密钥生成脚本;
- 仓库内置 benchmark 工具(pbft、poe 等协议基准)与持续集成工作流(bazel-build CI)。
五、快速上手(引自官方 README,本地未做构建实测)
以下步骤来自官方仓库 README 的 "Build and Deploy ResilientDB" 章节(来源:https://github.com/apache/incubator-resilientdb/blob/master/README.md ),目标是在本机部署 4 副本 + 1 客户端代理、提供 KV 服务:
# 1) 安装依赖(非 root 用户参见 INSTALL/README.md)
./INSTALL.sh
# 2) 生成证书与公私钥
./service/tools/kv/server_tools/generate_keys_and_certs.sh
# 3) 启动 KV 服务(启动 4 个副本与 1 个客户端,每个副本实例化一个 KV 存储)
./service/tools/kv/server_tools/start_kv_service.sh
# 4) 构建交互式工具
bazel build service/tools/kv/api_tools/kv_service_tools
源码获取:发行目录下载 apache-resilientdb-1.13.0-src.tar.gz,或克隆 GitHub 仓库(构建细节以仓库内 BUILDING/INSTALL 文档为准)。
六、适用场景与限制
6.1 适用场景
- 需要拜占庭容错的高吞吐许可链/账本:多方协作中存在不完全互信节点,但仍要求强一致与高TPS;
- 数字资产登记、凭证与存证类业务:可组合 KV、Solidity 合约、UTXO 接口与 ResVault 钱包、GraphQL/REST API 形成端到端应用路径;
- 共识协议研究与教学:官方发表大量相关论文(官网 Publications 区块,覆盖 PODC、ICDE、VLDB、EDBT 等),且引擎可插拔多种 BFT 协议。
6.2 限制
- BFT 部署下限为 3f+1 副本(f=1 时至少 4 个),相比 CFT 系统(3 副本)资源与通信开销更高;其信任模型与 etcd 类 CFT 系统不同,二者不能简单互换;
- 官方平台基线为 Ubuntu 20.04+,构建依赖 Bazel,从源码起步的门槛高于提供二进制发行的系统;
- 发行目录当前仅提供源码发行物(无官方二进制包);
- 生态工具链(钱包、ORM、监控、部署器)较新,且官方文档以英文为主,部分能力围绕学术研究场景设计;
- GitHub 仓库名仍带 incubator 前缀,外部脚本与引用需注意命名迁移。
七、同类选型对比
对比对象:etcd(CFT 共识 KV,Raft)、FoundationDB(分布式事务 KV)、CockroachDB(分布式 SQL)。四者的关键差异在容错模型(BFT 与 CFT)与数据模型(KV/账本与 SQL)。数据来源:各项目 GitHub 仓库页(stars 与许可证,2026-10-18 实查)、各仓库 releases.atom(最近发版,2026-10-18 实查)、各项目官方发行目录。
| 维度 | Apache ResilientDB 1.13.0 | etcd v3.7.2 | FoundationDB 8.0.0 | CockroachDB v26.2.8 |
|---|---|---|---|---|
| 开源许可 | Apache-2.0 | Apache-2.0 | Apache-2.0 | CockroachDB Software License(自定义许可) |
| GitHub stars 与最近发版 | 170 stars;1.13.0(2026-10-13) | 52,389 stars;v3.7.2(2026-09-22) | 16,783 stars;Release 8.0.0(2026-10-02) | 32,574 stars;v26.2.8(2026-10-10) |
| 版本节奏 | 孵化期发行 1.11.0/1.12.0,TLP 后发行 1.13.0(发行目录实查) | 持续活跃,3.5/3.6/3.7 多线维护 | 大版本周期演进(7.x → 8.0) | 高频小版本滚动(v26.2.x) |
| 兼容矩阵与容错模型 | C++/Bazel,Ubuntu 20.04+;BFT(3f+1);接口为 KV/Solidity 合约/UTXO + GraphQL/REST | Go 实现,独立服务,gRPC 接口与 JSON 网关;CFT(多数派 Raft) | C++ 实现,多语言绑定;CFT;严格可串行化事务 KV | Go 实现,PostgreSQL 方言分布式 SQL;CFT |
选型建议一句话:需要拜占庭容错、高吞吐账本/可编程共识引擎语义时选 ResilientDB;只解决崩溃容错的配置共享与协调选 etcd;要多模型强事务 KV 选 FoundationDB;需要分布式 SQL 选 CockroachDB(注意其自定义许可条款)。
八、参考链接
- 项目官网:https://resilientdb.apache.org/
- Apache 发行目录(1.13.0):https://downloads.apache.org/resilientdb/
- GitHub 仓库与 README:https://github.com/apache/incubator-resilientdb
- 快速上手章节:https://github.com/apache/incubator-resilientdb/blob/master/README.md
- 社区与邮件列表:https://resilientdb.apache.org/community
- PBFT 原始论文(Castro & Liskov, 1998):https://css.csail.mit.edu/6.824/2014/papers/castro-practicalbft.pdf