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:
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
HackenDAO: https://discord.gg/hacken
RawBox: https://twitter.com/rawbox_tech