# Stone Keyboard. Fuel Node 

By [Stone Keyboard](https://paragraph.com/@stone-keyboard) · 2024-07-11

---

#### Introduction

**What is a Fuel Node?** A Fuel node on the blockchain, or “client”, is software that downloads and maintains a copy of the blockchain. It verifies the authenticity of each block and transaction, ensuring that its copy is always up-to-date and synchronized with the network.

**Consensus Mechanism** The Fuel Network uses Proof of Authority (PoA) in its beta testnets.

*   **Validators:** Selected entities responsible for creating blocks and validating transactions based on their reputation.
    
*   **Advantages of PoA:** Fast transaction times and energy efficiency.
    

Node Installation
-----------------

### Preparing the Environment

**Upgrade Packages**

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

**Install wget and curl**

**Install rustup**

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

![](https://storage.googleapis.com/papyrus_images/a65618e5f542ec76c0e46d84cef62f6111951c42e16a937c001fa938e6d1c9d3.webp)

### Installing Fuel Toolchain

**Install Fuel Toolchain**

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

![](https://storage.googleapis.com/papyrus_images/ca29b56ebf58a2f8e2ce1dac6f35fb833f25874d566ee3456ad3c58992a08dd2.webp)

**Update Environment**

    source /home/(user)/.bashrc
    

![](https://storage.googleapis.com/papyrus_images/fdd7b39566863a3bae1c0717df8c90e5bb517aa8b8946c85c17bc46cdadab5be.webp)

**Check Fuel Version**

    fuelup --version
    

![](https://storage.googleapis.com/papyrus_images/bff3591260c75950ed4fa3680702cb08d1203ec02fbede2009a0f63a5de9ce25.webp)

**Verify Installation**

Ensure you have the latest toolchain:

    fuelup show
    

![](https://storage.googleapis.com/papyrus_images/775a77c2d60572d993f6a685e9efa748e5311fb33dc0290dadfbbecfeb55c17f.webp)

#### Obtaining a Sepolia API Key (Ethereum Testnet)

**Register on Alchemy**

Get your personalized Sepolia ETH RPC API keys:

[https://www.alchemy.com/](https://www.alchemy.com/)

**Test the API**

Send the first request to test the API:

    curl https://eth-mainnet.g.alchemy.com/v2/AvlIDj-8eJlcz2NfOK1iMbR5iK1MnAtO \
    -X POST -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","method":"alchemy_getAssetTransfers","params":[{"fromBlock":"0x0","category":["external","erc20","erc721"],"fromAddress":"0x646d3C0367f91c6sCcf7532A91Ef425BEcdfB34E"}],"id":0}'
    

![](https://storage.googleapis.com/papyrus_images/1c00a48cb0bacb39b3688f11010275ce546ed4556e9af03834dd2e35cdc40173.webp)

### Generating a New P2P Key

**Run Keygen**

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

![](https://storage.googleapis.com/papyrus_images/810741309292b1829d9587f721b6a45765b9aeeb30ace8862823fa1b470e36e1.webp)

### Chain Configuration

**Create Configuration Folder**

    git clone https://github.com/FuelLabs/chain-configuration chain-configuration
    mkdir .fuel-sepolia-testnet 
    cp -r chain-configuration/ignition/* ~/.fuel-sepolia-testnet/
    

### Node Initialization and Start

**Start the Node**

    fuel-core run \
    --service-name=<your_node>-sepolia-testnet-node \
    --keypair <P2P key> \
    --relayer https://eth-sepolia.g.alchemy.com/v2/<ETH RPC API> \
    --ip=0.0.0.0 --port=4000 --peering-port=30333 \
    --db-path ~/.fuel-sepolia-testnet \
    --snapshot ~/.fuel-sepolia-testnet \
    --utxo-validation --poa-instant false --enable-p2p \
    --reserved-nodes /dns4/p2p-testnet.fuel.network/tcp/30333/p2p/16Uiu2HAmDxoChB7AheKNvCVpD4PHJwuDGn8rifMBEHmEynGHvHrf \
    --sync-header-batch-size 100 \
    --enable-relayer \
    --relayer-v2-listening-contracts=0x01855B78C1f8868DE70e84507ec735983bf262dA \
    --relayer-da-deploy-height=5827607 \
    --relayer-log-page-size=500 \
    --sync-block-stream-buffer-size 30
    

![](https://storage.googleapis.com/papyrus_images/90020b602f3c666f31287cf50d436f6a369277e7d433ffce733102918631c6f3.webp)

### Creating a Service with SystemD

SystemD facilitates automatic and reliable management of the Fuel node, improving operational stability and efficiency.

### Automation and Supervision

**Create the Service**

    sudo tee /etc/systemd/system/fueld.service > /dev/null << EOF
    [Unit]
    Description=Fuel Node Beta-5
    After=network.target
    
    [Service]
    User=$USER
    Type=simple
    ExecStart=$(which fuel-core run) \
    --service-name stonekeyboard-sepolia-testnet \
    --keypair <P2P key> \
    --relayer https://eth-sepolia.g.alchemy.com/v2/<ETH RPC API> \
    --ip=0.0.0.0 --port=5000 --peering-port=40444 \
    --db-path $HOME/.fuel-sepolia-testnet \
    --snapshot $HOME/.fuel-sepolia-testnet \
    --utxo-validation --poa-instant false --enable-p2p \
    --reserved-nodes /dns4/p2p-testnet.fuel.network/tcp/30333/p2p/16Uiu2HAmDxoChB7AheKNvCVpD4PHJwuDGn8rifMBEHmEynGHvHrf \
    --sync-header-batch-size 100 \
    --enable-relayer \
    --relayer-v2-listening-contracts=0x01855B78C1f8868DE70e84507ec735983bf262dA \
    --relayer-da-deploy-height=5827607 \
    --relayer-log-page-size=500 \
    --sync-block-stream-buffer-size 30
    
    Restart=on-failure
    LimitNOFILE=65535
    
    [Install]
    WantedBy=multi-user.target 
    EOF
    

**Reload and Start the Service**

    sudo systemctl daemon-reload
    sudo systemctl enable fueld
    sudo systemctl start fueld
    sudo systemctl status fueld.service
    

![](https://storage.googleapis.com/papyrus_images/715b074df826c0622f7e4e3ee82d3d8bdaadcc424c1dc5ea26063fc9a880a64e.webp)

**View Logs**

    sudo journalctl -u fueld -f -o cat
    

![](https://storage.googleapis.com/papyrus_images/133b1a22a528866447d71fbd1b11da2d1e3c035e330ac61e053d4dd8382b05cf.webp)

### Connect Your Node to the Fuel Wallet

Log in to your Fuel wallet account and click on the top part where it indicates the network, then click on "+Add new network" and type in the address of your node:

`http://ip_node:4000/v1/graphql`

Click on "+Add" to complete the setup.

---

*Originally published on [Stone Keyboard](https://paragraph.com/@stone-keyboard/stone-keyboard-fuel-node)*
