Gravity Alpha Mainnet (L2) Node Setup
Instructions about how to run a Gravity Alpha Mainnet node.
We'd like to inform you that ArbOS32 will be activated on Gravity chain in the new year, and we are migrating from AnyTrust to Celestia for data availability.
Prior to April 18th, 2025, please do the following:
Upgrade to Node version nitro-node >= v3.3.2 (Celestia fork)
Configure your node to support both data availability sources
Guide
Prerequisites
A local directory for storing node data
An Ethereum mainnet RPC endpoint with unlimited rate limit for eth_getLogs
An Ethereum beacon chain RPC endpoint
Connection to a Celestia lightnode or public RPC endpoint
DAS Server Setup
Setup the Celestia DAS Server
Configuration for mainnet:
docker run -d --rm --name celestia-das-server \ -p 9876:9876 \ --entrypoint /bin/celestia-server \ ghcr.io/celestiaorg/nitro-das-celestia:v0.4.1 \ --enable-rpc --rpc-addr=0.0.0.0 --rpc-port=9876 \ --celestia.rpc=<YOUR_CELESTIA_ENDPOINT>\ --celestia.namespace-id=0000047d50b18e30e965
Connect to a Celestia RPC endpoint
Or setup your own Celestia lightnode
Download Snapshot (Recommended)
Syncing a node from scratch can be extremely time-consuming and resource-intensive. We strongly recommend downloading our latest snapshot:
Extract the snapshot to your local directory before running the node.
In our experiment, syncing from scratch without using snapshots will take 12-15 days for Gravity Alpha Mainnet. The experiment was done in March 2025, when the block height of Gravity Alpha Mainnet is around 51,413,000.
Running the Node
Save the following script as run-gravity-node.sh
, make it executable with chmod +x run-gravity-node.sh
, and update the TODO variables:
#!/bin/bash
# Define dependent variables
LOCAL_DIR="TODO" # Replace with your local directory path
ETH_MAINNET_RPC="TODO" # Replace with your Ethereum mainnet RPC endpoint
ETH_BEACON_RPC="TODO" # Replace with your Ethereum beacon chain RPC endpoint
CELESTIA_DAS_URL="TODO" # Replace with your Celestia DAS server URL (e.g., http://localhost:9876)
# Run the Docker container
docker run --rm -it \
--add-host=host.docker.internal:host-gateway \
-v "$LOCAL_DIR:/home/user/.arbitrum" \
-p 0.0.0.0:8547:8547 \
-p 0.0.0.0:8548:8548 \
ghcr.io/celestiaorg/nitro:v3.3.2 \ \
--parent-chain.connection.url="$ETH_MAINNET_RPC" \
--chain.id=1625 \
--chain.name=conduit-orbit-deployer \
--http.api=net,web3,eth \
--http.corsdomain="*" \
--http.addr=0.0.0.0 \
--http.vhosts="*" \
--chain.info-json='[
{
"chain-id": 1625,
"parent-chain-id": 1,
"chain-name": "conduit-orbit-deployer",
"chain-config": {
"chainId": 1625,
"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,
"InitialChainOwner": "0xd65776c5F9fA552cB5C9556B3e86bF6c376b233b",
"GenesisBlockNum": 0
}
},
"rollup": {
"bridge": "0x7983403dDA368AA7d67145a9b81c5c517F364c42",
"inbox": "0x7AD2a94BefF3294a31894cFb5ba4206957a53c19",
"sequencer-inbox": "0x8D99372612e8cFE7163B1a453831Bc40eAeb3cF3",
"rollup": "0xf993AF239770932A0EDaB88B6A5ba3708Bd58239",
"validator-utils": "0x2b0E04Dc90e3fA58165CB41E2834B44A56E766aF",
"validator-wallet-creator": "0x9CAd81628aB7D8e239F1A5B497313341578c5F71",
"deployed-at": 19898364
}
}
]' \
--node.data-availability.enable \
--node.data-availability.rest-aggregator.enable \
--node.data-availability.rest-aggregator.urls=https://das-gravity-mainnet-0.t.conduit.xyz \
--node.celestia-cfg.enable=true \
--node.celestia-cfg.url="$CELESTIA_DAS_URL" \
--execution.forwarding-target=https://rpc.gravity.xyz \
--node.feed.input.url=wss://relay-gravity-mainnet-0.t.conduit.xyz \
--parent-chain.blob-client.beacon-url="$ETH_BEACON_RPC"
Additional Information
The chain info is obtained from Conduit:
curl https://api.conduit.xyz/file/v1/arbitrum/chaininfo/gravity-mainnet-0
Relay endpoint is provided by Conduit as
wss://relay-gravity-mainnet-0.t.conduit.xyz
Gravity Alpha Mainnet uses Anytrust DA, with aggregator URL:
https://das-gravity-mainnet-0.t.conduit.xyz
Celestia namespace for Gravity mainnet:
0000047d50b18e30e965
References
For more information, please check out the following guides:
Last updated
Was this helpful?