菜单

快速入门

相关源文件

本页面为开发者提供了设置、配置和运行本地 fuel-core 节点指南。它涵盖了初始安装、基本 CLI 用法以及开发和测试环境所需的基本配置选项。

有关整体系统架构和服务交互的信息,请参阅架构概览。有关特定服务配置和部署策略的详细信息,请参阅部署和操作

系统要求

fuel-core 需要多个系统依赖项和构建工具。具体要求因平台而异

平台要求
macOS通过 Homebrew 安装 cmake
Debian/Ubuntucmake, pkg-config, build-essential, git, clang, libclang-dev
Arch Linuxcmake, gcc, pkgconf, git, clang

Rust 工具链设置

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 支持用于不同功能的各种特性标志

功能描述默认
rocksdbRocksDB 存储后端
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 API 配置

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

文件描述符限制 (macOS)

Too many open files

解决方案:增加文件描述符限制:ulimit -n 10240

地址已被占用

Address already in use (os error 48)

解决方案:使用 --port 更改端口或停止冲突进程

来源:README.md184-206 docs/developers/debugging.md66-75