Stellar-Core 源码编译与安装指南
前言
Stellar-Core 是 Stellar 区块链网络的核心软件,负责维护区块链账本、处理交易和执行共识协议。本文将详细介绍如何从源码编译安装 Stellar-Core,帮助开发者和节点运营者搭建自己的 Stellar 节点。
版本选择建议
在部署 Stellar-Core 时,版本选择至关重要:
- 稳定版本优先:始终建议使用最新的稳定版本,这些版本经过充分测试并部署在生产环境中
- 及时升级:新版本发布后应在30天内完成升级,因为可能包含重要的安全修复
- 版本淘汰机制:运行超过90天的旧版本节点会被网络中的新节点自动屏蔽
Stellar 的代码分支结构如下:
- master:开发分支,要求所有单元测试通过
- testnet:测试网部署版本,要求通过验收测试
- prod:生产环境当前版本,要求在测试网和预发布环境中未发现严重问题
开发环境准备
容器化开发
Stellar 提供了预配置的 Docker 开发环境,特别适合使用 VSCode 的开发者。该环境包含了所有必要的工具和依赖项,可以快速开始开发工作。
运行时依赖
Stellar-Core 的运行时依赖较少,主要需要:
- 如果启用了 PostgreSQL 支持,需要本地 PostgreSQL 服务器
- 64位操作系统环境
编译依赖详解
基础编译工具链
- C++17 兼容的编译器:
- Clang ≥ 12.0
- GCC ≥ 10.0
- 构建工具:pkg-config、bison、flex
- 数据库支持:libpq-dev(可禁用)
- 其他工具:libunwind-dev、sed、perl
- 代码格式化:clang-format-12
Rust 工具链
Stellar-Core 的部分组件使用 Rust 编写,需要:
- Rust ≥ 1.74
- Cargo ≥ 1.74
推荐使用 rustup 安装 Rust 工具链,项目中也提供了 install-rust.sh
脚本来简化安装过程。
各平台安装指南
Ubuntu 20.04
# 安装基础工具链
sudo apt-get install clang-12 git build-essential pkg-config autoconf \
automake libtool bison flex libpq-dev libunwind-dev parallel sed perl
# 可选:添加测试工具链仓库
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
# 安装格式化工具
sudo apt-get install clang-format-12
Ubuntu 24.04+ 及新版 Linux
新版系统可能需要更高版本的编译器:
# 使用 clang-18
sudo apt-get install clang-18 libc++-18-dev libc++abi-18-dev
# 或使用 gcc-13
sudo apt-get install gcc-13 g++-13 cpp-13
macOS 环境
# 通过 Homebrew 安装依赖
brew install libsodium libtool autoconf automake pkg-config \
libpq openssl parallel ccache bison gnu-sed perl coreutils
# 配置环境变量
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(brew --prefix)/opt/libpq/lib/pkgconfig"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(brew --prefix)/opt/openssl@3/lib/pkgconfig"
export PATH="$(brew --prefix bison)/bin:$PATH"
# 安装特定版本的 clang-format
curl -OL https://github.com/llvm/llvm-project/releases/download/llvmorg-12.0.0/clang+llvm-12.0.0-x86_64-apple-darwin.tar.xz
tar -xf clang+llvm-12.0.0-x86_64-apple-darwin.tar.xz
sudo cp -R clang+llvm-12.0.0-x86_64-apple-darwin/bin/clang-format /usr/local/bin
ARM 架构设备(如树莓派)
在 ARM 设备上编译需要注意链接器问题:
export CC=clang-12
export CXX=clang++-12
export CFLAGS="-O3 -g1 -fno-omit-frame-pointer --rtlib=compiler-rt"
export CXXFLAGS="$CFLAGS -stdlib=libc++"
编译安装步骤
-
获取源码:
git clone https://github.com/stellar/stellar-core.git cd stellar-core git submodule init git submodule update
-
生成配置脚本:
./autogen.sh
-
配置编译选项:
./configure # 或指定编译器 CXX=clang-12 ./configure
-
编译:
make -j4 # 根据CPU核心数调整并行编译数
-
测试:
make check
-
安装:
make install
高级编译选项
使用 libc++ 替代 libstdc++
在某些系统上,可以使用 LLVM 的 libc++ 替代 GNU 的 libstdc++:
export CC=clang-12
export CXX=clang++-12
export CFLAGS="-O3 -g1 -fno-omit-frame-pointer"
export CXXFLAGS="$CFLAGS -stdlib=libc++"
需要先安装 libc++ 开发包:
sudo apt-get install libc++-12-dev libc++abi-12-dev
启用性能追踪
配置时添加 --enable-tracy
选项可以集成 Tracy 性能分析系统:
./configure --enable-tracy
如需编译 Tracy 图形界面工具,还需要安装额外依赖:
# Ubuntu
sudo apt-get install libcapstone-dev libfreetype6-dev libglfw3-dev libgtk2.0-dev
# macOS
brew install capstone freetype2 glfw
结语
通过本文的指导,您应该能够成功编译并安装 Stellar-Core。根据您的具体使用场景(开发、测试网节点或生产环境节点),可以选择合适的版本和配置选项。对于生产环境,请务必关注版本更新和安全公告,及时升级以确保节点安全和网络兼容性。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考