devdocs.educhain.xyz
  • Getting Started
  • EDUChain
    • What is EDUChain?
    • Arbitrum Orbit Overview
    • How to Run a Full Node for an Orbit Chain
    • Block Explorer
  • Start Building
    • Quick Start
    • Faucet
    • Asset Bridging
    • Smart Contracts
      • Write a Contract
      • Deploy Using Hardhat
      • Verify Contracts
    • Open Campus ID Connect SDK
    • Open Campus Achievements
      • Introduction
      • Getting Started
      • Integration Guide
      • API Specifications
      • Appendix
  • Services
    • Automation & Off-chain Data
      • Gelato Web3 Functions
    • Bridges
      • Layer Zero
    • Indexers
      • Goldsky
    • Oracles
      • DIA
    • Relay
      • Gelato Relay
    • Wallets
      • Privy
      • Web3Auth
  • Support Resources
    • Community Forum
    • Developer Support
  • FAQ
    • FAQ
Powered by GitBook
On this page
  • Prerequisites
  • Minimum Hardware Configuration
  • Required Parameters
  • 1. Parent Chain Parameters
  • 2. Child Chain Parameters
  • 4. Important Ports
  • 5. Putting it all together
  • Further Reading
Export as PDF
  1. EDUChain

How to Run a Full Node for an Orbit Chain

PreviousArbitrum Orbit OverviewNextBlock Explorer

This section provides step-by-step instructions for running an Orbit node on your local machine.

Prerequisites

  • Latest Docker Image: offchainlabs/nitro-node:v3.2.1-d81324d (You can find the latest image )

Minimum Hardware Configuration

  • RAM: 8-16 GB

  • CPU: 2-4 core CPU (e.g., AWS t3.xLarge)

  • Storage: Depends on the Orbit chain and its traffic over time

Required Parameters

1. Parent Chain Parameters

The --parent-chain.connection.url argument requires a standard RPC endpoint for an EVM node, whether self-hosted or obtained from a node service provider:

--parent-chain.connection.url=<Parent chain RPC URL>

2. Child Chain Parameters

In the Arbitrum Orbit context, the child chain is an L2 or an L3 Orbit chain. The required parameters are chain.info-json and chain.name.

chain.info-json A JSON string that contains required information about the Orbit chain.

--chain.info-json=<Orbit Chain's chain info>

chain.name A mandatory flag that needs to match the chain name used in --chain.info-json:

```sh
--chain.name=<Orbit Chain's name>
```

3. AnyTrust Chains For AnyTrust chains, add the following flags to the command or configuration:

--node.data-availability.enable
--node.data-availability.rest-aggregator.urls=<A list of DAS REST endpoints>

Or

--node.data-availability.rest-aggregator.online-url-list=<A URL that returns a list of the DAS REST endpoints>

4. Important Ports

Protocol
Port

RPC/http

8547

RPC/websocket

8548

Sequencer Feed

9642

For the RPC/websocket protocol, use the following flags:

--ws.port=8548
--ws.addr=0.0.0.0
--ws.origins=\*

5. Putting it all together

When running a Docker image, an external volume should be mounted to persist the database across restarts. The mount point inside the Docker image should be /home/user/.arbitrum.

Example:

docker run --rm -it -v /some/local/dir/arbitrum:/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=<Parent chain RPC URL> --chain.id=<OrbitChainId> --chain.name=<My Arbitrum Orbit Chain> --http.api=net,web3,eth --http.corsdomain=* --http.addr=0.0.0.0 --http.vhosts=* --chain.info-json=<Orbit Chain's chain info>

Ensure that /some/local/dir/arbitrum already exists; otherwise, the directory might be created with root as the owner, and the Docker container won't be able to write to it.

When using the flag --chain.info-json=<Orbit Chain's chain info>, replace <Orbit Chain's chain info> with the specific chain info JSON string of the Orbit chain for which you wish to run the node.

Example:

    --chain.info-json="[{\"chain-id\":94692861356,\"parent-chain-id\":421614,\"chain-name\":\"My Arbitrum L3 Chain\",\"chain-config\":{\"chainId\":94692861356,\"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\":false,\"InitialArbOSVersion\":10,\"InitialChainOwner\":\"0xAde4000C87923244f0e95b41f0e45aa3C02f1Bb2\",\"GenesisBlockNum\":0}},\"rollup\":{\"bridge\":\"0xde835286442c6446E36992c036EFe261AcD87F6d\",\"inbox\":\"0x0592d3861Ea929B5d108d915c36f64EE69418049\",\"sequencer-inbox\":\"0xf9d77199288f00440Ed0f494Adc0005f362c17b1\",\"rollup\":\"0xF5A42aDA664E7c2dFE9DDa4459B927261BF90E09\",\"validator-utils\":\"0xB11EB62DD2B352886A4530A9106fE427844D515f\",\"validator-wallet-creator\":\"0xEb9885B6c0e117D339F47585cC06a2765AaE2E0b\",\"deployed-at\":1764099}}]"

Further Reading

For more detailed instructions and additional configuration options, please refer to the Arbitrum documentation .

here
here