本页面为开发者提供了设置、配置和运行本地 fuel-core 节点指南。它涵盖了初始安装、基本 CLI 用法以及开发和测试环境所需的基本配置选项。
有关整体系统架构和服务交互的信息,请参阅架构概览。有关特定服务配置和部署策略的详细信息,请参阅部署和操作。
fuel-core 需要多个系统依赖项和构建工具。具体要求因平台而异
| 平台 | 要求 |
|---|---|
| macOS | 通过 Homebrew 安装 cmake |
| Debian/Ubuntu | cmake, pkg-config, build-essential, git, clang, libclang-dev |
| Arch Linux | cmake, gcc, pkgconf, git, clang |
fuel-core 需要支持 WebAssembly 目标的 Rust 工具链
代码库使用最新的稳定版 Rust 工具链进行编译,并使用 nightly 工具链支持 rustfmt 格式化功能。
来源:README.md29-59 CONTRIBUTING.md17-43
fuel-core 二进制文件通过 Fuel 枚举提供了几个顶级命令
fuel-core 命令结构
主要入口点是 run 命令,它使用指定的配置初始化 FuelService 实例。
来源:bin/fuel-core/src/cli.rs52-61 bin/fuel-core/src/cli/run.rs124-322
对于开发和调试,请使用 xtask 构建系统
此命令执行编译和 GraphQL 架构生成,并将其输出到 crates/client/assets/schema.sdl。
为了获得 CPU 特定优化带来的最佳性能
生成的二进制文件位于 ./target/release/fuel-core。
fuel-core 支持用于不同功能的各种特性标志
| 功能 | 描述 | 默认 |
|---|---|---|
rocksdb | RocksDB 存储后端 | ✓ |
p2p | 点对点网络 | - |
relayer | 跨链消息中继 | - |
shared-sequencer | 共享 sequencer 集成 | - |
来源:README.md96-99 CONTRIBUTING.md47-83 crates/fuel-core/Cargo.toml14-55
运行本地开发节点最简单的方法
这将启动一个具有以下特性的节点:
127.0.0.1:4000 上提供 GraphQL API本地节点启动顺序
启动过程包括配置解析、数据库初始化以及通过 FuelService 协调器进行服务编排。
来源:bin/fuel-core/src/cli/run.rs803-829 crates/fuel-core/src/service/sub_services.rs114-526
--db-type 参数控制存储后端
区块生成通过 --poa-instant 及相关共识参数进行控制
| 模式 | 配置 | 用例 |
|---|---|---|
| 即时 | --poa-instant=true (默认) | 开发/测试 |
| 已禁用 | --poa-instant=false | 仅同步节点 |
| 手动 | --debug + 共识密钥 | 调试/测试 |
GraphQL 服务配置包括性能和安全参数
来源:bin/fuel-core/src/cli/run.rs125-322 bin/fuel-core/src/cli/run/graphql.rs7-104
CLI 参数可以通过环境变量指定。主要变量包括:
| 可变 | CLI 等效项 | 描述 |
|---|---|---|
DB_PATH | --db-path | 数据库存储位置 |
CONSENSUS_KEY_SECRET | --consensus-key | 区块签名密钥 |
RUST_LOG | - | 日志配置 |
HUMAN_LOGGING | - | 人类可读日志格式 |
当 env 特性启用时,环境变量可以从 .env 文件中加载。
来源:bin/fuel-core/src/cli.rs63-90 bin/fuel-core/Cargo.toml22
fuel-core 服务架构
FuelService 作为主要协调器,管理一组处理区块链功能不同方面的 SubServices。每个服务通过明确定义的适配器接口进行通信。
来源:crates/fuel-core/src/service/sub_services.rs90-109 crates/fuel-core/src/service/adapters.rs1-95
默认配置使用带有预定义链配置的本地测试网设置
要连接到 Ignition 等生产网络,请指定相应的快照
网络特定的配置包括链 ID、共识参数和创世状态。
来源:README.md62-87 bin/fuel-core/src/cli.rs152-170
常见问题和解决方案
Column families not opened: column-11, column-10...
解决方案:清除本地数据库:rm -rf ~/.fuel/db
Too many open files
解决方案:增加文件描述符限制:ulimit -n 10240
Address already in use (os error 48)
解决方案:使用 --port 更改端口或停止冲突进程