Run a Full Orbit Node

This guide provides step-by-step instructions for running a Arbitrum Blueberry Orbit node on your local machine. You can also use this as a basis for running nodes of different chains.

Prerequisites

Before you begin, ensure you have the latest Docker image:

offchainlabs/nitro-node:v2.3.4-b4cc111

Minimum Hardware Requirements

Component
Minimum Requirement

CPU

2-4 core CPU (For AWS: t3 xLarge)

RAM

8-16 GB

Disk

Depends on traffic volume

Step 1: Create a directory for the chain

mkdir -p ~/orbit-node

Step 2: Run the node

docker run --rm -it  -v ~/orbit-node:/home/user/.arbitrum \
  -p 0.0.0.0:8547:8547 \
  -p 0.0.0.0:8548:8548 \
  offchainlabs/nitro-node:v2.3.4-b4cc111 \
  --parent-chain.connection.url=<your-parent-chain-url> \
   --parent-chain.blob-client.beacon-url=<your-beacon-mainnet-url> \
  --chain.id=<your-chain-id>\
  --chain.name=<your-chain-name> \
  --http.api=net,web3,eth \
  --http.addr=0.0.0.0 \
  --execution.forwarding-target=<your-rollup-rpc-url> \
  --node.data-availability.enable \
  --node.data-availability.rest-aggregator.enable \
  --node.data-availability.rest-aggregator.urls=<your-dac-rest-url> \
  --node.feed.input.url=<your-feed-input-url> \
  --chain.info-json=<your-base-config.json>

Step 3: Check the logs

INFO [07-02|06:00:56.125] created jwt file                         filename=/home/user/.arbitrum/jwtsecret
INFO [07-02|06:00:56.125] Running Arbitrum nitro node              revision=v2.3.4-b4cc111 vcs.time=2024-05-02T11:51:35-05:00
INFO [07-02|06:00:57.263] connected to l1 chain                    l1url=https://eth.llamarpc.com l1chainid=1
WARN [07-02|06:00:57.969] Getting file info                        error="stat : no such file or directory"
WARN [07-02|06:00:57.973] Getting file info                        error="stat /workspace/target/machines: no such file or directory"
WARN [07-02|06:00:57.974] Getting file info                        error="stat /home/user/machines: no such file or directory"
INFO [07-02|06:00:57.976] Using leveldb as the backing database
INFO [07-02|06:00:57.977] Allocated cache and file handles         database=/home/user/.arbitrum/real/nitro/l2chaindata cache=16.00MiB handles=16 readonly=true
INFO [07-02|06:00:57.977] Using leveldb as the backing database
INFO [07-02|06:00:57.977] Allocated cache and file handles         database=/home/user/.arbitrum/chainName/nitro/l2chaindata cache=2.00GiB handles=512
INFO [07-02|06:00:57.998] Using LevelDB as the backing database
INFO [07-02|06:00:58.019] Opened ancient database                  database=/home/user/.arbitrum/chainName/nitro/l2chaindata/ancient/chain readonly=false
INFO [07-02|06:00:58.019] Initializing                             ancients=0 genesisBlockNr=0
...

Step 4: Check the node status

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

Shutting Down the Node

To ensure the current state is saved properly, allow a graceful shutdown:

docker stop --time=300 $(docker ps -aq)

Last updated