xrpld 3.3.0 及更早版本安装全指南:源码构建、APT 与 YUM 包管理器实战
【免费下载链接】rippledDecentralized cryptocurrency blockchain daemon implementing the XRP Ledger protocol in C++项目地址: https://gitcode.com/GitHub_Trending/ri/rippled
本指南以 xrpld 3.3.0 及更早版本(发布于 repos.ripple.com)为对象,完整介绍从源码编译安装、在 Debian/Ubuntu 系使用 APT、在 CentOS/RHEL 系使用 YUM 三种安装路径的详细步骤与验证方法。读者阅读后将掌握 xrpld 二进制与 libxrpl 库的安装位置、GPG 密钥校验、APT/YUM 软件源配置、systemd 服务启停、以及安装后配置文件与数据目录的落盘布局,可直接照做完成一台可运行的 XRP Ledger 节点部署。
[!IMPORTANT] 本文指令适用于xrpld 3.3.0 及更早版本(发布在 repos.ripple.com 的软件包)。更新版本的安装请参考 docs/install.md;从源码构建的完整流程见 BUILD.md。
xrpld 是 XRP Ledger 协议的开源参考实现(本仓库即其 C++ 源码),参与 XRP Ledger 对等网络、处理交易并维护账本数据库。安装方式的选择取决于发行版与部署目的:APT 常见于 Ubuntu、Debian 等 Debian 系发行版,YUM 常见于 CentOS、RHEL 等 Red Hat 系发行版,而从源码构建在所有平台上都可用,也是部署自定义构建版本(custom builds)唯一受支持的途径。
从源码安装(所有平台通用)
在完成源码编译后,可以使用 CMake 的--install模式把 xrpld 与 libxrpl 安装到系统中:
cmake --install . --prefix /opt/local其中.指向已配置并构建完成的 CMake 构建目录,--prefix指定安装前缀。默认的 CMAKE_INSTALL_PREFIX 在 Linux 与 macOS 上通常是/usr/local,在 Windows 上是C:/Program Files/xrpld。
从仓库的构建脚本看,xrpld 与 validator-keys 两个二进制来自同一个 CMake 构建目录,需要以-Dxrpld=ON -Dvalidator_keys=ON配置(见 package/build_pkg.py)。若你只是要安装现成的发行版软件包,可以跳过本节,直接使用下面的 APT 或 YUM 流程。
使用 APT 包管理器安装(Debian / Ubuntu 系)
以下步骤适用于 Ubuntu 20.04、22.04、18.04 以及 Debian 10、11 等使用 APT 的发行版。整个过程包含:更新仓库 → 安装工具 → 导入并校验 Ripple 的 GPG 签名密钥 → 添加 XRPL 软件源 → 安装并验证服务。
1. 更新仓库索引并安装必需工具:
sudo apt update -y sudo apt install -y apt-transport-https ca-certificates wget gnupgapt-transport-https使 APT 支持 HTTPS 源,ca-certificates提供证书信任链,wget用于下载密钥,gnupg用于校验密钥指纹。
2. 添加 Ripple 的包签名 GPG 密钥到受信任密钥列表:
sudo mkdir /usr/local/share/keyrings/ wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | gpg --dearmor > ripple-key.gpg sudo mv ripple-key.gpg /usr/local/share/keyringsgpg --dearmor把下载的 ASCII 装甲(armored)公钥转换成 APT 需要的二进制 keyring 格式,存放在/usr/local/share/keyrings/下。
3. 校验新添加密钥的指纹:
gpg /usr/local/share/keyrings/ripple-key.gpg输出应包含类似下面的 Ripple 条目(请注意密钥的过期时间,本文写作时该主密钥有效期为 2019-02-14 至 2026-02-17):
gpg: WARNING: no command supplied. Trying to guess what you mean ... pub rsa3072 2019-02-14 [SC] [expires: 2026-02-17] C0010EC205B35A3310DC90DE395F97FFCCAFD9A2 uid TechOps Team at Ripple <techops+rippled@ripple.com> sub rsa3072 2019-02-14 [E] [expires: 2026-02-17]务必确认指纹一致(上例中指纹位于第三行,以C001开头)。指纹不匹配说明密钥来源可疑,应中止安装。
4. 为你的操作系统版本添加对应的 XRPL 软件源:
echo "deb [signed-by=/usr/local/share/keyrings/ripple-key.gpg] https://repos.ripple.com/repos/rippled-deb focal stable" | \ sudo tee -a /etc/apt/sources.list.d/ripple.listsigned-by=指定 APT 校验该源时使用的密钥文件,stable为发布渠道。上例适用于Ubuntu 20.04 Focal Fossa;其他操作系统请把focal替换为下表对应代号:
| 发行版 | 代号 | 替换值 |
|---|---|---|
| Ubuntu 22.04 Jammy Jellyfish | jammy | jammy |
| Ubuntu 20.04 Focal Fossa | focal | focal |
| Ubuntu 18.04 Bionic Beaver | bionic | bionic |
| Debian 11 Bullseye | bullseye | bullseye |
| Debian 10 Buster | buster | buster |
如果需要访问 xrpld 的开发版或预发布版本,可把stable替换为以下渠道之一:
unstable— 预发布构建(对应仓库release分支)nightly— 实验性/开发构建(对应仓库develop分支)
[!WARNING] unstable 和 nightly 构建随时可能损坏,不要在生产服务器上使用。
5. 拉取 XRPL 仓库并安装软件包:
sudo apt -y update sudo apt -y install xrpldapt -y update会读取刚才写入的/etc/apt/sources.list.d/ripple.list并下载包索引,随后apt install xrpld安装守护进程。从 package/debian/control 可以看出,xrpld软件包是 XRP Ledger 协议的参考实现,包含参与 P2P 网络、处理交易、维护账本数据库的守护进程,同时附带validator-keys工具(用于验证者密钥管理)。
6. 检查 xrpld 服务状态:
systemctl status xrpld.service安装后xrpld服务应自动启动;如果没有启动,可以手动启动:
sudo systemctl start xrpld.service7.(可选)允许 xrpld 绑定特权端口:
如需在 80 或 443 端口提供 API 请求(同时需要修改配置文件中的端口设置),执行:
sudo setcap 'cap_net_bind_service=+ep' /opt/xrpld/bin/xrpldAPT 安装后:服务单元与数据落盘布局
安装包背后的 systemd 单元与目录布局可以在仓库 package/shared/xrpld.service、package/shared/xrpld.sysusers、package/shared/xrpld.tmpfiles 中找到,它们直接说明了安装后系统的行为:
- 服务以专用系统用户
xrpld运行(由 sysusers 配置创建,主目录为/var/lib/xrpld,shell 为/sbin/nologin),启动命令为ExecStart=/usr/bin/xrpld --net --silent --conf /etc/xrpld/xrpld.cfg,即从/etc/xrpld/xrpld.cfg读取配置; - tmpfiles 配置创建
0750 xrpld:xrpld的数据目录/var/lib/xrpld与日志目录/var/log/xrpld;StateDirectory=xrpld、LogsDirectory=xrpld会在每次启动时重建这些目录,即使目录被误删也不影响服务启动; - 服务做了加固:
ProtectSystem=full、ProtectHome=true、PrivateTmp=true、NoNewPrivileges=true,并设置了LimitNOFILE=65536提高文件描述符上限、TimeoutStopSec=5min放宽停止超时(便于账本正常落盘); - 服务异常退出时
Restart=on-failure且RestartSec=5s自动重启,5 分钟内最多重启 5 次(StartLimitIntervalSec=5min/StartLimitBurst=5)。
安装包同时会把示例配置cfg/xrpld-example.cfg安装为/etc/xrpld/xrpld.cfg、把cfg/validators-example.txt安装为/etc/xrpld/validators.txt(见 package/build_pkg.py 的STAGED_FROM_SRC映射)。示例配置中的关键路径与上述目录布局完全对应(见 cfg/xrpld-example.cfg):
[node_db] type=NuDB path=/var/lib/xrpld/db/nudb nudb_block_size=4096 online_delete=512 advisory_delete=0 [database_path] /var/lib/xrpld/db [debug_logfile] /var/log/xrpld/debug.log其中[node_db]是 xrpld 的主要持久化数据存储(交易元数据、账户状态、账本头),type=NuDB推荐用于配备快速 SSD 的非验证者节点,验证者或使用慢速/机械硬盘的节点应改用 RocksDB;online_delete=512表示在保留至少 512 个账本的前提下删除旧账本,advisory_delete=0让删除进程自动运行。日志方面,[debug_logfile]指定调试日志位置(必须是绝对路径),[rpc_startup]可在启动时自动执行 RPC 命令(示例中将日志级别降为warning以节省磁盘),可选的[perf]段则支持按秒间隔输出 JSON 格式性能日志,例如perf_log=/var/log/xrpld/perf.log。
使用 YUM 包管理器安装(CentOS / RHEL 系)
以下步骤适用于 CentOS、RHEL 等使用 YUM 的发行版。核心是选择正确的 RPM 软件源、安装软件包,并通过 systemd 配置开机自启。
1. 安装 Ripple 的 RPM 软件源。根据你想要的发布稳定性选择对应仓库:stable对应最新生产版本(master分支)、unstable对应预发布构建(release分支)、nightly对应实验性/开发构建(develop分支)。
稳定版(Stable):
cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo [ripple-stable] name=XRP Ledger Packages enabled=1 gpgcheck=0 repo_gpgcheck=1 baseurl=https://repos.ripple.com/repos/rippled-rpm/stable/ gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key REPOFILE预发布版(Unstable):
cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo [ripple-unstable] name=XRP Ledger Packages enabled=1 gpgcheck=0 repo_gpgcheck=1 baseurl=https://repos.ripple.com/repos/rippled-rpm/unstable/ gpgkey=https://repos.ripple.com/repos/rippled-rpm/unstable/repodata/repomd.xml.key REPOFILE夜间构建(Nightly):
cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo [ripple-nightly] name=XRP Ledger Packages enabled=1 gpgcheck=0 repo_gpgcheck=1 baseurl=https://repos.ripple.com/repos/rippled-rpm/nightly/ gpgkey=https://repos.ripple.com/repos/rippled-rpm/nightly/repodata/repomd.xml.key REPOFILE注意这里与 APT 配置的差异:包本身的校验由gpgcheck=0关闭,但repo_gpgcheck=1会启用对仓库元数据(repomd.xml)的 GPG 签名校验,密钥指向对应渠道的repodata/repomd.xml.key。
2. 拉取最新仓库更新:
sudo yum -y update3. 安装 xrpld 软件包:
sudo yum install -y xrpld4. 配置服务开机自启:
sudo systemctl enable xrpld.service5. 启动服务:
sudo systemctl start xrpld.serviceYUM 安装后:RPM 包布局与版本约束
RPM 打包脚本 package/rpm/xrpld.spec 揭示了安装后系统内会出现的文件:
/usr/bin/xrpld与/usr/bin/validator-keys两个二进制;同时为兼容旧的 FHS 布局,会创建符号链接/usr/local/bin/rippled(指向/usr/bin/xrpld,注释标明这是为 rippled 全面弃用前的遗留兼容);- 配置文件
/etc/xrpld/xrpld.cfg与/etc/xrpld/validators.txt,均标记为%config(noreplace)——升级包时不会覆盖管理员已修改的配置; - systemd 单元、sysusers、tmpfiles 配置以及
50-xrpld.preset(安装即预设启用xrpld.service); - 日志轮转配置
/etc/logrotate.d/xrpld,对应源文件 package/shared/xrpld.logrotate:每天轮转/var/log/xrpld/*.log、最小 200M 才轮转、保留 7 份并 gzip 压缩,轮转后仅当服务仍在运行(systemctl is-active --quiet xrpld)时才调用xrpld --conf /etc/xrpld/xrpld.cfg logrotate通知守护进程,避免对已停止节点误发信号产生错误。
另外,package/rpm/xrpld.spec 只支持x86_64与aarch64架构,且对版本号有严格约束:打包脚本 package/build_pkg.py 会把预发布版本号中的-规范化为~(如3.2.0-b1→3.2.0~b1),因为 RPM 的 Version 字段不允许-字符,Debian 则把它当作修订号分隔符。因此若你要基于本仓库自行打包,预发布版本应使用bN或rcN单 token 形式(如3.2.0-b1、3.2.0-rc2)。
安装后的通用检查清单
无论通过哪种方式安装,都可以用以下命令确认节点状态:
# 查看服务运行状态与最近日志 systemctl status xrpld.service # 查看守护进程版本(构建产物的版本字段由 BuildInfo 提供) xrpld --version # 校验配置文件(使用安装的示例配置) xrpld --conf /etc/xrpld/xrpld.cfg --validate # 确认数据目录与日志目录已创建 ls -ld /var/lib/xrpld /var/log/xrpld需要接入 XRP 测试网络时,可在/etc/xrpld/xrpld.cfg中把示例的[ips]段替换为测试网入口(如r.altnet.rippletest.net 51235);生产环境则保持默认的[validators_file] validators.txt(相对路径,相对于配置文件所在目录),由validators.txt提供受信任验证者密钥或验证者列表发布者(详见 cfg/xrpld-example.cfg 中的[validators_file]说明)。
总结
本指南覆盖了 xrpld 3.3.0 及更早版本的三种安装路径:cmake --install源码安装、APT(Debian/Ubuntu 系)与 YUM(CentOS/RHEL 系)包管理器安装。APT 与 YUM 两条路径都强调了对发布渠道(stable / unstable / nightly)的显式选择与密钥校验;安装后由 systemd 单元、sysusers、tmpfiles、logrotate 共同构成完整的服务生命周期管理。若你运行的是更新版本(2026-08-19 之后发布的软件包),请改用 docs/install.md 中的新仓库(packages.xrplf.org)流程,其发布渠道更名为 stable / rc / beta / develop,密钥指纹也完全不同。
【免费下载链接】rippledDecentralized cryptocurrency blockchain daemon implementing the XRP Ledger protocol in C++项目地址: https://gitcode.com/GitHub_Trending/ri/rippled
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考