Guide to Setting Up an ETH Synchronized Node (Geth v1.13.14)

ยท

Server Configuration Requirements


Step 1: Download and Install Geth

  1. Download Geth Package
    Official downloads available at:
    ๐Ÿ‘‰ Geth Ethereum Downloads
  2. Extract and Install

    cd /data/eth
    wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.13.14-2bd6bd01.tar.gz
    tar -xf geth-linux-amd64-1.13.14-2bd6bd01.tar.gz
    mv geth-linux-amd64-1.13.14-2bd6bd01 bin
    mkdir chaindata

Step 2: Set Up Prysm Beacon Node

Prerequisites

Install Prysm

  1. Create Directories and Download Prysm

    mkdir -p /data/consensus/prysm
    cd /data/consensus/prysm
    curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh --output prysm.sh
    chmod +x prysm.sh
  2. Generate JWT Secret

    ./prysm.sh beacon-chain generate-auth-secret

    Outputs JWT key at /data/consensus/prysm/jwt.hex.

  3. Start Prysm

    screen -S prysm
    ./prysm.sh beacon-chain --accept-terms-of-use --execution-endpoint=http://localhost:8551 \
    --jwt-secret=/data/consensus/prysm/jwt.hex --checkpoint-sync-url=https://beaconstate.info \
    --genesis-beacon-api-url=https://beaconstate.info --datadir /data/execution

    Press Ctrl+A D to detach the session.


Step 3: Deploy Geth Execution Client

  1. Start Geth

    screen -S geth
    ./geth --cache 10240 --http --http.api web3,eth,net,personal,txpool,engine,admin \
    --http.addr 0.0.0.0 --http.port 3545 --datadir /data/eth/chaindata \
    --allow-insecure-unlock --rpc.allow-unprotected-txs --authrpc.addr 0.0.0.0 \
    --authrpc.port 8551 --authrpc.vhosts localhost --maxpeers=300 \
    --authrpc.jwtsecret /data/consensus/prysm/jwt.hex

    Press Ctrl+A D to detach.


Step 4: Verify Synchronization

  1. Attach Geth Console

    geth attach /data/eth/chaindata/geth.ipc
  2. Check Sync Status

    eth.blockNumber  // Returns latest block
    eth.syncing      // Returns 'false' if synced
  3. RPC Check

    curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://localhost:3545

    Convert hexadecimal result (e.g., 0x126f9ca) to decimal using a hex converter.


Optional: Configure as a Service

  1. Create Service File

    vim /usr/lib/systemd/system/geth.service

    Paste:

    [Unit]
    Description=Go Ethereum Client - Geth
    After=network.target
    
    [Service]
    User=root
    ExecStart=/data/eth/bin/geth --snapshot=true --http --http.addr 0.0.0.0 --http.port 9545 \
    --datadir /data/eth/chaindata --http.api "personal,eth,net,web3,txpool,debug" \
    --authrpc.jwtsecret /data/consensus/prysm/jwt.hex
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
  2. Enable and Start

    systemctl enable geth
    systemctl start geth

FAQ

Q: How long does initial sync take?
A: Depending on hardware, expect 24-48 hours for a full sync.

Q: Why use Prysm with Geth?
A: Prysm handles consensus (PoS), while Geth manages execution (smart contracts).

Q: How to monitor node health?
A: Use geth attach or check logs via journalctl -u geth.


๐Ÿ‘‰ Explore Ethereum Node Tools for advanced configurations.