Super World Computer
  • About Super World Computer
  • Core Concepts
    • Soul Gas Token
    • Inbox Contract
    • L2 Blob
    • web3://
    • L1 Header Hash History
  • Guides
    • App Developers
      • Receive tokens
      • Bridge tokens
      • EthStorage Usage Guide
    • Node Operators
      • Run an Ethereum node
      • Run a Super World Computer node
      • Run op-challenger
  • Network Reference
    • Contract addresses
    • RPC configurations
  • Fork Diff
    • op-node forkdiff
    • op-geth forkdiff
  • Others
    • Join our Discord
    • Whitepaper
Powered by GitBook
On this page
  • Hardware requirements
  • Software dependencies
  • Sync modes
  • Beta Testnet
  • Steps
  • Devnet
  • Steps
  1. Guides
  2. Node Operators

Run a Super World Computer node

PreviousRun an Ethereum nodeNextRun op-challenger

Last updated 2 months ago

This guide will help you get SWC node up and running.

Hardware requirements

Hardware requirements for SWC testnet nodes can vary depending on the type of node you plan to run. Archive nodes generally require significantly more resources than full nodes. Below are suggested minimum hardware requirements for each type of node.

  • 8GB RAM

  • 60 GB SSD (full node) or 200 GB SSD (archive node)

  • Reasonably modern CPU

Software dependencies

Dependency
Version
Version Check Command

^2

git --version

^1.21

go version

^3

make --version

^1.34

just --version

Sync modes

For full nodes, the following configurations are available ():

op-node(CL)

op-geth(EL)

Full nodes EL snap sync

--syncmode=execution-layer (not default)

--syncmode=snap (default)

Full nodes EL full sync

--syncmode=execution-layer (not default)

--syncmode=full (not default)

Full nodes CL sync

--syncmode=consensus-layer (default)

--syncmode=full (not default)

For archive nodes, please add --gcmode=archive to op-geth.

Beta Testnet

Steps

  • 1.1 Build op-geth

    git clone -b beta_testnet https://github.com/QuarkChain/op-geth.git
    pushd op-geth && make geth && popd
  • 1.2 Build op-node

    git clone -b beta_testnet https://github.com/QuarkChain/optimism.git
    pushd optimism && make op-node && popd
  1. Setup op-geth:

        # assume optimism and op-geth repo are located at ./optimism and ./op-geth
    
        cd op-geth
        # prepare beta_testnet_genesis.json
        curl -LO https://raw.githubusercontent.com/QuarkChain/pm/main/L2/assets/beta_testnet_genesis.json
        ./build/bin/geth init --datadir=datadir --state.scheme hash beta_testnet_genesis.json
    
        openssl rand -hex 32 > jwt.txt
    
        # We don't specify `--rollup.sequencerhttp` since it's for testing blob archiver only.
        # The rpc port is the default one: 8545.
        ./build/bin/geth   --datadir ./datadir   --http   --http.corsdomain="*"   --http.vhosts="*"   --http.addr=0.0.0.0   --http.api=web3,debug,eth,txpool,net,engine   --ws   --ws.addr=0.0.0.0   --ws.port=8546   --ws.origins="*"   --ws.api=debug,eth,txpool,net,engine  --networkid=3335   --authrpc.vhosts="*"   --authrpc.addr=0.0.0.0   --authrpc.port=8551   --authrpc.jwtsecret=./jwt.txt   --rollup.disabletxpoolgossip=true
  2. Setup op-node:

    ⚠️ The op-node admin RPC should not be exposed publicly. If left exposed, it could accidentally expose admin controls to the public internet.

    Sync mode is set to --syncmode=execution-layer to enable snap sync.

        # assume optimism and op-geth repo are located at ./optimism and ./op-geth
        # copy jwt.txt from the op-geth directory above to optimism/op-node
        cp op-geth/jwt.txt optimism/op-node 
        cd optimism/op-node
    
        export L1_RPC_KIND=basic
        export L1_RPC_URL=http://88.99.30.186:8545
        export L1_BEACON_URL=http://88.99.30.186:3500
        # prepare beta_testnet_rollup.json
        curl -LO https://raw.githubusercontent.com/QuarkChain/pm/main/L2/assets/beta_testnet_rollup.json
    
        mkdir safedb
        # Ensure to replace --p2p.static with the sequencer's address.
        # Note: p2p is enabled for unsafe block.
        ./bin/op-node   --l2=http://localhost:8551   --l2.jwt-secret=./jwt.txt   --verifier.l1-confs=4   --rollup.config=./beta_testnet_rollup.json  --rpc.port=8547   --p2p.static=/ip4/5.9.87.214/tcp/9003/p2p/16Uiu2HAm2w9ZsnP58zzGpPXGuCH8j6w9ecwA3uwXhkXxJniJEbUX --p2p.listen.ip=0.0.0.0 --p2p.listen.tcp=9003 --p2p.listen.udp=9003  --p2p.no-discovery --p2p.sync.onlyreqtostatic --rpc.enable-admin   --l1=$L1_RPC_URL   --l1.rpckind=$L1_RPC_KIND --l1.beacon=$L1_BEACON_URL --l1.beacon-archiver=http://65.108.236.27:9645 --safedb.path=safedb --syncmode=execution-layer

Devnet

Steps

  • 1.1 Build op-geth

    git clone -b devnet https://github.com/ethstorage/op-geth.git
    pushd op-geth && make geth && popd
  • 1.2 Build op-node

    git clone -b devnet https://github.com/ethstorage/optimism.git
    pushd optimism && make op-node && popd
  1. Setup op-geth:

        # assume optimism and op-geth repo are located at ./optimism and ./op-geth
    
        cd op-geth
        # prepare devnet_genesis.json
        curl -LO https://raw.githubusercontent.com/ethstorage/pm/main/L2/assets/devnet_genesis.json
    
        build/bin/geth init --datadir=datadir devnet_genesis.json
    
        openssl rand -hex 32 > jwt.txt
    
        # We don't specify `--rollup.sequencerhttp` since it's for testing blob archiver only.
        # The rpc port is the default one: 8545.
        ./build/bin/geth   --datadir ./datadir   --http   --http.corsdomain="*"   --http.vhosts="*"   --http.addr=0.0.0.0   --http.api=web3,debug,eth,txpool,net,engine   --ws   --ws.addr=0.0.0.0   --ws.port=8546   --ws.origins="*"   --ws.api=debug,eth,txpool,net,engine  --networkid=42069   --authrpc.vhosts="*"   --authrpc.addr=0.0.0.0   --authrpc.port=8551   --authrpc.jwtsecret=./jwt.txt   --rollup.disabletxpoolgossip=true
  2. Setup op-node:

        # assume optimism and op-geth repo are located at ./optimism and ./op-geth
        # copy jwt.txt from the op-geth directory above to optimism/op-node
        cp op-geth/jwt.txt optimism/op-node
        cd optimism/op-node
    
        # prepare devnet_rollup.json
        curl -LO https://raw.githubusercontent.com/ethstorage/pm/main/L2/assets/devnet_rollup.json
        export L1_RPC_KIND=basic
        export L1_RPC_URL=http://88.99.30.186:8545
        export L1_BEACON_URL=http://88.99.30.186:3500
    
        # Ensure to replace --p2p.static with the sequencer's address.
        # Note: p2p is enabled for unsafe block.
         ./bin/op-node   --l2=http://localhost:8551   --l2.jwt-secret=./jwt.txt   --verifier.l1-confs=4   --rollup.config=./devnet_rollup.json  --rpc.port=8547   --p2p.static=/ip4/65.109.20.29/tcp/9003/p2p/16Uiu2HAmP3KorAMS1DC5SdDEcNGwhMFKuoyvZzBSWXdqysZgrxQ7 --p2p.listen.ip=0.0.0.0 --p2p.listen.tcp=9003 --p2p.listen.udp=9003  --p2p.no-discovery --p2p.sync.onlyreqtostatic --rpc.enable-admin   --l1=$L1_RPC_URL   --l1.rpckind=$L1_RPC_KIND --l1.beacon=$L1_BEACON_URL --l1.beacon-archiver=http://65.108.236.27:9645 --syncmode=execution-layer

Follow the following steps to build a node. The steps are basically the same as in , the only difference is that here we use the beta_testnet branch of both and instead.

The default settings are for full nodes with snap sync. For configurations related to full sync or archive nodes, please refer to the section.

Follow the following steps to build a node. The steps are basically the same as in , the only difference is that here we use the devnet branch of both and instead.

The default settings are for full nodes with snap sync. For configurations related to full sync or archive nodes, please refer to the section.

explanation
Optimism's documentation
our optimism fork
our op-geth fork
Sync modes
Optimism's documentation
our optimism fork
our op-geth fork
Sync modes
git
go
make
just