Fuel Network | Node Setup Guide

crptcpchk
4 min readApr 17, 2024

--

Fuel is an operating system purpose built for Ethereum Rollups. Fuel allows rollups to solve for PSI (parallelization, state minimized execution, interoperability) without making any sacrifices.

Fuel delivers unmatched processing capacity through its ability to execute transactions in parallel by using strict state access lists in the form of a UTXO model. With the FuelVM, Fuel full nodes identify the accounts a transaction touches, mapping out dependencies before execution. This enables Fuel to use far more threads and cores of your CPU that are typically idle in single-threaded blockchains.

Fuel uses its own domain-specific language (DSL) called Sway. Sway is based on Rust and includes syntax to leverage a blockchain VM without needlessly verbose boilerplate.

Site | Docs | YouTube | X | Discord | Telegram

Before interact with any project, please, DYOR about the project:
1) DYOR guide
2) DYOR practices

Server Requirements

Official documentation says:

Minimum: 2CPU, 4RAM, 30GB SSD
Suitable servers:
- Hetzner — CX21
- Cityhost — KVM-75

Recommended: 8CPU, 12RAM, 100GB SSD
Suitable servers:
- Hetzner — CX41-CPX41
- Cityhost — KVM250-KVM400

Prerequsite

1) Update packages

sudo apt-get update && apt-get upgrade -y

2) Install wget and curl:

sudo apt install wget curl

3) Install rustup:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs/ | sh

If You have previously installed rustup, You can update it to the latest version:

rustup update

When You’ll see the
Proceed with standard installation (default — just press enter) message, You can press Enter, as it says.

4) Run this command:

. "$HOME/.cargo/env"

5) Check rustup version:

rustup --version

6) Install the Fuel toolchain.
You can use the fuelup-init script provided by the team. This will install forc, forc-client, forc-fmt, forc-lsp, forc-wallet as well as fuel-core in ~/.fuelup/bin folder.

curl https://install.fuel.network/ | sh

If already installed, You can fetch the latest toolchain containing the forc and fuel-core binaries:

fuelup toolchain install latest

7) To use fuelup, run:

source /root/.bashrc

Installation

1) Generate a new P2P key pairing:

fuel-core-keygen new --key-type peering

Make sure you save this somewhere safe before doing any further action, so you don’t need to generate a new key pair in the future.

Should look like this:

Example by the Fuel team. Do not use it.

2) Create fuel folder:

mkdir fuel

3) Move to fuel folder:

cd fuel

4) Download official file with specific configuration to run a local node with persistence:

wget https://raw.githubusercontent.com/FuelLabs/fuel-core/v0.22.0/deployment/scripts/chainspec/beta_chainspec.json

5) Register on Alchemy to get Your custom SepoliaETH RPC API keys.

6) While been on Alchemy click on “Create new app” button.

7) Choose:
Chain: Ethereum
Network: Ethereum Sepolia
Name: <Whatever_You_Want>
Discription: <Optional>

and click “Create app”.

8) In an opened window click on “API key” button.

9) Save the HTTPS link.

10) Create service file, so Your node will work on a background.

Change:
<NODE_NAME> to any name of Your node,
<P2P_SECRET> to the secret key created in the first step, <SepoliaETH_RPC_ENDPOINT> to the link You’ve copied in the previous step.

echo "[Unit]
Description=Fuel Node Beta-5
After=network.target

[Service]
User=root
Type=simple
ExecStart=/root/.fuelup/toolchains/latest-x86_64-unknown-linux-gnu/bin/fuel-core run \
--service-name <NODE_NAME> \
--keypair <P2P_SECRET> \
--relayer <SepoliaETH_RPC_ENDPOINT> \
--ip 0.0.0.0 --port 4000 --peering-port 30333 \
--db-path ~/.fuel_beta5 \
--chain $HOME/fuel/beta_chainspec.json \
--utxo-validation --poa-instant false --enable-p2p \
--min-gas-price 1 --max-block-size 18874368 --max-transmit-size 18874368 \
--reserved-nodes /dns4/p2p-beta-5.fuel.network/tcp/30333/p2p/16Uiu2HAmSMqLSibvGCvg8EFLrpnmrXw1GZ2ADX3U2c9ttQSvFtZX,/dns4/p2p-beta-5.fuel.network/tcp/30334/p2p/16Uiu2HAmVUHZ3Yimoh4fBbFqAb3AC4QR1cyo8bUF4qyi8eiUjpVP \
--sync-header-batch-size 100 \
--enable-relayer \
--relayer-v2-listening-contracts 0x557c5cE22F877d975C2cB13D0a961a182d740fD5 \
--relayer-da-deploy-height 4867877 \
--relayer-log-page-size 2000
Restart=on-failure
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target" > /etc/systemd/system/fueld.service

11) Reload daemon:

systemctl daemon-reload

12) Enable fueld.service file:

systemctl enable fueld

13) Start fueld.service file:

systemctl start fueld

14) Check fueld.service status:

systemctl status fueld.service

If everything went ok, should look like this:

Useful Commands

1) Full description details of each flag in service file:

fuel-core run --help

2) Check logs:

journalctl -u fueld -f -o cat

Fine working node logs look like this:

Delete Node

1) Stop fueld.service file:

systemctl stop fueld

2) Remove fueld.service file:

rm /etc/systemd/system/fueld.service

3) Delete folders (while been in root folder):

rm -rf fuel 
rm -rf .fuelup
rm -rf .forc
rm -rf .fuel_beta5

Links

Follow for more guides on nodes, drops and other useful stuff.

psi.crypto Discord: https://discord.gg/9kvtEQwtqJ

X: https://twitter.com/the01100011

Telegram: https://t.me/psicrypto

Farcaster: @crptcpchk

--

--

crptcpchk

HackenDAO Budget & ex-Supreme Councils | @RawBox Squad || psi.crypto node runne