Apache ResilientDB 1.13.0 介绍与选型指南

Apache ResilientDB 1.13.0 选型指南:BFT 高吞吐许可链的五层架构、PBFT 共识、KV 与合约接口、快速上手、TLP 治理沿革及与 etcd、FoundationDB、CockroachDB 的量化对比

Apache ResilientDBApache ResilientDBKV2026/10/18

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)。
  • 治理状态:项目于 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.0etcd v3.7.2FoundationDB 8.0.0CockroachDB v26.2.8
开源许可Apache-2.0Apache-2.0Apache-2.0CockroachDB 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/RESTGo 实现,独立服务,gRPC 接口与 JSON 网关;CFT(多数派 Raft)C++ 实现,多语言绑定;CFT;严格可串行化事务 KVGo 实现,PostgreSQL 方言分布式 SQL;CFT

选型建议一句话:需要拜占庭容错、高吞吐账本/可编程共识引擎语义时选 ResilientDB;只解决崩溃容错的配置共享与协调选 etcd;要多模型强事务 KV 选 FoundationDB;需要分布式 SQL 选 CockroachDB(注意其自定义许可条款)。

八、参考链接