Gelato
  • Introduction
    • Gelato, The Web3 Cloud Platform
  • Rollup As A Service
    • Introduction
    • Rollup Stacks
      • Arbitrum Orbit
        • Run a Full Orbit Node
      • OP Stack
        • Run OP Node
    • Deploy your Rollup
    • Customization
      • Data Availability
        • Celestia
        • Avail
        • Eigen DA
      • Custom Gas Token
      • Marketplace
        • Gelato Services
        • Data Indexers
        • Block Explorers
        • Oracles
        • Bridges
        • Account Abstraction
        • On & Off-ramp
        • Community
        • Identity & KYC
        • Others
      • Verifier Node Package
    • Public Testnet
  • RPC Nodes
    • Introduction
    • Compute Units
    • Using RPC Nodes
    • Supported Networks
    • Pricing and Plans
    • FAQ
  • Web3 Services
    • Web3 Functions
      • Understanding Web3 Functions
        • Trigger Types
        • Typescript Function
        • Solidity Function
        • Automated Transactions
      • Security Considerations
      • Template & Use Cases
      • Quick Start
        • Writing Typescript Functions
          • Event Trigger
          • Private Typescript Functions
          • Callbacks
        • Test, Deploy & Run Typescript functions
        • Writing Solidity Functions
        • Test, Deploy & Run Solidity Functions
        • Initiate an Automated Transaction
      • Create a Web3 Function Task
        • Using the UI
        • Using the Safe App
        • Using a Smart Contract
        • Using the Automate SDK
      • Analytics & Monitoring
      • Supported Networks
      • Subscription & Payments
      • Legacy Automate Migration Guide
    • Relay
      • What is Relaying?
      • Security Considerations
        • ERC-2771 Delegatecall Vulnerability
      • Templates
      • Quick Start
        • Sponsored Calls
        • Non-Sponsored Calls
      • ERC-2771 (recommended)
        • SponsoredCallERC2771
        • CallWithSyncFeeERC2771
          • Relay Context Contracts ERC2771
      • Non-ERC-2771
        • SponsoredCall
        • CallWithSyncFee
          • Relay Context Contracts
      • Relay API
      • Gelato's Fee Oracle
      • Tracking your Relay Request
      • Supported Networks
      • Subscriptions and Payments
        • 1Balance & Relay
        • SyncFee Payment Tokens
        • Relay Pricing
      • ERC2771 Migration Guide
    • VRF
      • Understanding VRF
      • How does Gelato VRF Work?
      • Security Considerations
      • Template
      • Quick Start
      • Create a VRF Task
        • Create a Fallback VRF
        • Migrating from Chainlink VRF
      • Supported Networks
      • Pricing & Rate Limits
    • Oracles
      • Understanding Gelato Oracles
      • Quick Start
      • Data Providers
        • Stork
        • Choas Labs
      • Migrating from Chainlink Oracles
      • Available Price Feeds
      • Supported Networks
      • Pricing & Rate Limits
    • Account Abstraction
      • Understanding ERC4337
      • Introduction to Gelato Bundler
      • Templates & Examples
      • Quick Start
      • Sponsored UserOps
        • Using 1Balance
        • Using Zerodev Paymaster
      • Non-Sponsored UserOps
        • Pay with Native
        • Pay with ERC20
      • Supported Networks
      • Bundler API Endpoints
        • eth_sendUserOperation
        • eth_estimateUserOperationGas
        • eth_getUserOperationByHash
        • eth_getUserOperationReceipt
        • eth_supportedEntryPoints
        • eth_maxPriorityFeePerGas
        • eth_chainId
    • 1Balance
      • 1Balance Alerts
      • Subscription Plans
      • Subscription Notifications
      • USDC Addresses
    • AI Agents
    • Teams
  • GELATO DAO
    • DAO & Token (GEL)
    • GEL Token Contracts
    • Governance Process
  • Social Media
Powered by GitBook
On this page
  • Prerequisites
  • Minimum Hardware Requirements
  • Shutting Down the Node
  1. Rollup As A Service
  2. Rollup Stacks
  3. Arbitrum Orbit

Run a Full Orbit Node

PreviousArbitrum OrbitNextOP Stack

Last updated 1 month ago

This guide provides step-by-step instructions for running a Arbitrum Orbit node on your local machine. You can also use this as a basis for running nodes of arbitrary orbit rollups on Gelato.

Prerequisites

  • Before you begin, ensure you have the latest Docker image as mentioned in the Arbitrum Docs:

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:{VERSION} \
  --parent-chain.connection.url={PARENT_CHAIN_RPC} \
  --parent-chain.blob-client.beacon-url={PARENT_BEACON_RPC} \
  --parent-chain.node-url={PARENT_CHAIN_NODE_URL} \
  --chain.id={CHAIN_ID} \
  --chain.name="{CHAIN_NAME}" \
  --chain.info-json='[{CHAIN_INFO_FROM_DASHBOARD}]' \
  --execution.forwarding-target={CHAIN_RPC} \
  --execution.rpc.tx-allow-unprotected=false \
  --execution.rpc.gas-cap=50000000 \
  --execution.rpc.tx-fee-cap=1 \
  --execution.sequencer.enable=false \
  --execution.tracing.enable \
  --node.sequencer=false \
  --node.staker.enable=false \
  --node.batch-poster.enable=false \
  --node.feed.input.url={FEED_URL} \
  --node.data-availability.enable \
  --node.data-availability.sequencer-inbox-address={SEQUENCER_INBOX_ADDRESS} \
  --node.data-availability.parent-chain-node-url={PARENT_CHAIN_RPC} \
  --node.data-availability.rest-aggregator.enable \
  --node.data-availability.rest-aggregator.urls={DAS_AGGREGATOR_URL} \
  --node.dangerous.disable-blob-reader=true \
  --http.addr=0.0.0.0 \
  --http.port=8547 \
  --http.vhosts="*" \
  --http.corsdomain="*" \
  --http.api=net,web3,eth,debug,arbtrace,arb \
  --ws.addr=0.0.0.0 \
  --ws.port=8548 \
  --ws.origins="*" \
  --ws.api=eth,net,web3,arb,txpool,debug \
  --rpc.max-batch-response-size=200000000 \
  --metrics \
  --metrics-server.addr=0.0.0.0 \
  --metrics-server.port=6070 \
  --log-type=json \
  --log-level=info

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)

Get the chain-info.json from the dashboard by heading over to and then downloading the "Genesis File" from the "Details" tab.

https://raas.gelato.network/chains
LogoRun Full Nodearbitrum