# Gravity Testnet Sepolia (L2) Node Setup

{% hint style="warning" %}
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
  {% endhint %}

### Guide

#### Prerequisites

1. A local directory for storing node data
2. An Ethereum Sepolia RPC endpoint with unlimited rate limit for eth\_getLogs
3. An Ethereum Sepolia beacon chain RPC endpoint
4. Connection to a Celestia lightnode or public testnet RPC endpoint

#### Node & DAS Server Setup

1. **Setup the Celestia DAS Server**

   * Repository: [https://github.com/celestiaorg/nitro-das-celestia/](https://github.com/celestiaorg/nitro-das-celestia/tree/main)
   * Configuration for testnet:

   ```bash
   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_TESTNET_ENDPOINT>\
       --celestia.namespace-id=<TESTNET_NAMESPACE_ID> 
   ```
2. **Connect to a Celestia testnet RPC endpoint**
   * Use [testnet RPC endpoints](https://docs.celestia.org/how-to-guides/mocha-testnet#production-rpc-endpoints)

#### Download Snapshot (Recommended)

Syncing a node from scratch can be extremely time-consuming and resource-intensive. We strongly recommend downloading our latest snapshot:

1. [Download Gravity L2 Sepolia Testnet Node Snapshot](https://storage.googleapis.com/conduit-networks-snapshots/gravity/testnet/latest.tar)

#### Running the node

Save the following script as `run-gravity-testnet-node.sh`, make it executable with `chmod +x run-gravity-node.sh`, and update the TODO variables:

```bash
#!/bin/bash

# Define dependent variables
LOCAL_DIR="TODO"                      # Replace with your local directory path
ETH_SEPOLIA_RPC="TODO"                 # Replace with your Ethereum Sepolia testnet RPC endpoint
ETH_SEPOLIA_BEACON_RPC="TODO"          # Replace with your Ethereum Sepolia beacon 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_SEPOLIA_RPC" \
    --chain.id=13505 \
    --chain.name=conduit-orbit-deployer \
    --http.api=net,web3,eth \
    --http.corsdomain="*" \
    --http.addr=0.0.0.0 \
    --http.vhosts="*" \
    --persistent.db-engine="pebble" \
    --chain.info-json='[
        {
            "chain-id": 13505,
            "parent-chain-id": 11155111,
            "chain-name": "conduit-orbit-deployer",
            "chain-config": {
                "chainId": 13505,
                "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": "0x218a4534C699CE35dc929ff4ca845C05Af9A57a2",
                    "GenesisBlockNum": 0
                }
            },
            "rollup": {
                "bridge": "0x946CF7F3238537e51B017369E523425A18996C23",
                "inbox": "0xe50eBd835F5f17fdEC0A547c37343F080B664357",
                "sequencer-inbox": "0x3eb7334755Fb41dC01400B15C8cC0C64B36E5969",
                "rollup": "0xDE145C4Ef9699D130848167d512dD1D09f173066",
                "validator-utils": "0xb33Dca7b17c72CFC311D68C543cd4178E0d7ce55",
                "validator-wallet-creator": "0x75500812ADC9E51b721BEa31Df322EEc66967DDF",
                "deployed-at": 5979967
            }
        }
    ]' \
    --node.data-availability.enable \
    --node.data-availability.rest-aggregator.enable \
    --node.data-availability.rest-aggregator.urls=https://das-gravity-testnet-sepolia-34ow2embsc.t.conduit.xyz \
    --node.celestia-cfg.enable=true \
    --node.celestia-cfg.url="$CELESTIA_DAS_URL" \
    --execution.forwarding-target=https://rpc-sepolia.gravity.xyz \
    --node.feed.input.url=wss://relay-gravity-testnet-sepolia-34ow2embsc.t.conduit.xyz \
    --parent-chain.blob-client.beacon-url="$ETH_SEPOLIA_BEACON_RPC"
```

### References

For more information, please check out the following guides:

1. <https://docs.arbitrum.io/node-running/how-tos/running-an-orbit-node>
2. <https://docs.conduit.xyz/guides/run-a-node/arbitrum-node>
3. <https://docs.celestia.org/how-to-guides/arbitrum-full-node>
