Hysen Labs
Open-source project
FuelLabs/fuel-core avatar
FuelLabs

fuel-core

Rust full node implementation of the Fuel v2 protocol.

56,909 stars2,860 forksRustNOASSERTION
01
DEEP OPEN-SOURCE ANALYSIS

Fuel Core: a Rust node for the Fuel v2 networks

Fuel Ignition, Testnet, and Devnet all run version 0.48.1, and this repository holds the Rust full node software that joins those networks.

02
DEEP OPEN-SOURCE ANALYSIS

What the node is

GitHub's description positions this as the Rust full node implementation of the Fuel v2 protocol. Right at the top of the file sits a table of the networks currently in use. Fuel Ignition, Testnet, and Devnet all list version 0.48.1. The node is the software that joins those networks, written in Rust by FuelLabs.

03
DEEP OPEN-SOURCE ANALYSIS

Building from source

Compiling runs cargo build plus whatever custom build steps exist, including regenerating a GraphQL schema for the client. A ci checks.sh script can execute the whole set of CI checks, tests included. The contributing guide covers coding standards and the review process for anyone planning to submit changes.

04
DEEP OPEN-SOURCE ANALYSIS

Running a node

Launching the service is a single command: fuel-core run. The help option lists the available flags. For development, the db type option can be set to in memory so the state does not persist between runs. Node operator documentation is linked for running an Ignition mainnet node and for spinning up a local network from source.

05
DEEP OPEN-SOURCE ANALYSIS

Pre compiled binaries and docs

People who plan to use pre compiled binaries are pointed straight to the section on running an Ignition node. The README draws a line between joining the Ignition network with your own node and running a local network from source. Build and run instructions stay brief, and the heavier detail is pushed out to the Fuel documentation.

06
DEEP OPEN-SOURCE ANALYSIS

What sits behind the service

A few implementation details show up further down. The client talks to the node through a GraphQL service endpoint, and the transaction executor produces blocks instantly with changes persisted to RocksDB by default. Troubleshooting notes cover the RUST LOG environment variable, a GitHub token requirement for some operations, and a macOS file descriptor limit that can trigger too many open files errors.

08
DEEP OPEN-SOURCE ANALYSIS

Official sources

09
Community notes

Community notes