Run a Node

How to Run a re.al Node

This guide provides step-by-step instructions for running a re.al node on your local machine.

Prerequisites

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

offchainlabs/nitro-node:v2.3.4-b4cc111

Minimum Hardware Requirements

ComponentMinimum 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 ~/tangbile-chain

Step 2: Run the node

docker run --rm -it  -v ~/tangible-chain:/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=https://eth.llamarpc.com \
   --parent-chain.blob-client.beacon-url=<your-beacon-mainnet-url> \
  --chain.id=111188 \
  --chain.name="real" \
  --http.api=net,web3,eth \
  --http.addr=0.0.0.0 \
  --execution.forwarding-target=https://real.drpc.org \
  --node.data-availability.enable \
  --node.data-availability.rest-aggregator.enable \
  --node.data-availability.rest-aggregator.urls=<your-dac-rest-url> \
  --node.feed.input.url=wss://real.drpc.org \
  --chain.info-json="[{\"chain-id\":111188,\"parent-chain-id\":1,\"parent-chain-is-arbitrum\":false,\"chain-name\":\"real\",\"chain-config\":{\"homesteadBlock\":0,\"daoForkBlock\":null,\"daoForkSupport\":true,\"eip150Block\":0,\"eip150Hash\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"eip155Block\":0,\"eip158Block\":0,\"byzantiumBlock\":0,\"constantinopleBlock\":0,\"petersburgBlock\":0,\"istanbulBlock\":0,\"muirGlacierBlock\":0,\"berlinBlock\":0,\"londonBlock\":0,\"clique\":{\"period\":0,\"epoch\":0},\"arbitrum\":{\"EnableArbOS\":true,\"AllowDebugPrecompiles\":false,\"DataAvailabilityCommittee\":true,\"InitialArbOSVersion\":11,\"GenesisBlockNum\":0,\"MaxCodeSize\":24576,\"MaxInitCodeSize\":49152,\"InitialChainOwner\":\"0xbB0385FebfD25E01527617938129A34bD497331e\"},\"chainId\":111188},\"rollup\":{\"bridge\":\"0x39D2EEcC8B55f46aE64789E2494dE777cDDeED03\",\"inbox\":\"0xf538671ddd60eE54BdD6FBb0E309c491A7A2df11\",\"sequencer-inbox\":\"0x51C4a227D59E49E26Ea07D8e4E9Af163da4c87A0\",\"rollup\":\"0xc4F7B37bE2bBbcF07373F28c61b1A259dfe49d2a\",\"validator-utils\":\"0x2b0E04Dc90e3fA58165CB41E2834B44A56E766aF\",\"validator-wallet-creator\":\"0x9CAd81628aB7D8e239F1A5B497313341578c5F71\",\"deployed-at\":19446518}}]"

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/real/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/real/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