How to Run a Node

This guide provides a step-by-step walkthrough for running a Plume Mainnet or Testnet node with Celestia data availability using Docker Compose.

Hardware Requirements

Please visit the Minimum hardware configuration for checking the hardware requirements for running a orbit chain node.

Prerequisites

Run a Celestia DA Server

To integrate Celestia DA with a Plume node, follow the steps below to deploy the DAS server and DA Provider in Docker.

Create your celestia-da-server.yaml file with the below config to run the Celestia DAS server and DA Provider.

Docker Compose Snippet

celestia-da-server.yaml
services:
  celestia-server:
    image: ghcr.io/celestiaorg/nitro-das-celestia:v0.5.4
    container_name: celestia-server
    entrypoint:
      - /bin/celestia-server
      - --das.enable
      - --fallback-enabled
      - --celestia.namespace-id
      - "00000d048007a33abfeb" # Namespace ID for Plume Mainnet
      - --rpc-addr
      - "0.0.0.0"
      - --rpc-port
      - "26657"
      - --das.rpc.url
      - "http://daprovider:9880"
      - --celestia.rpc
      - "CELESTIA_ENDPOINT"
      - --log-level
      - "DEBUG"
    ports:
      - "1317:1317"
      - "9090:9090"
      - "26657:26657" # Celestia RPC Port
      - "1095:1095"
      - "8080:8080"
    depends_on:
      - daprovider
      
  daprovider:
    image: ghcr.io/celestiaorg/nitro:v3.6.8
    entrypoint: /usr/local/bin/daprovider
    ports:
      - "127.0.0.1:9880:9880"
    command:
      - --das-server.addr
      - "0.0.0.0"
      - --das-server.port
      - "9880"
      - --das-server.data-availability.enable
      - --das-server.data-availability.rest-aggregator.enable
      - --das-server.data-availability.rest-aggregator.urls
      - "https://das-plume-mainnet-1.t.conduit.xyz"
      - --das-server.data-availability.parent-chain-node-url
      - "ETH_RPC_URL"
      - --das-server.data-availability.sequencer-inbox-address
      - "0x85eC1b9138a8b9659A51e2b51bb0861901040b59" # <- get address from nitro node config

Start Celestia DA Server

docker-compose -f celestia-da-server.yaml up -d

Check logs

docker logs celestia-da-server

Run a Plume Nitro Node

Before running Plume Nitro Node, please check if the Celestia DA server is running with the correct Namespace ID.

Create your plume-mainnet.yaml file with the below config to run the Plume Mainnet node.

Docker Compose Snippet

plume-mainnet.yaml
services:
  plume-mainnet:
    image: ghcr.io/celestiaorg/nitro:v3.6.8
    container_name: plume-mainnet
    restart: unless-stopped
    ports:
      - "8547:8547"
      - "6070:6070"
    command:
      - --chain.id=98866
      - --chain.name=conduit-orbit-deployer
      - --http.addr=0.0.0.0
      - --http.corsdomain=*
      - --http.vhosts=*
      - --ws.expose-all
      - --ws.rpcprefix=/
      - --ws.port=8547
      - --ws.addr=0.0.0.0
      - --ws.origins=*
      - --http.api=net,web3,eth,txpool,debug,admin,arb,arbdebug,arbtrace
      - --ws.api=net,web3,eth,txpool,debug
      - --chain.info-json=[{"chain-id":98866,"parent-chain-id":1,"chain-name":"conduit-orbit-deployer","chain-config":{"chainId":98866,"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":32,"InitialChainOwner":"0x5Ec32984332eaB190cA431545664320259D755d8","GenesisBlockNum":0}},"rollup":{"bridge":"0x35381f63091926750F43b2A7401B083263aDEF83","inbox":"0x943fc691242291B74B105e8D19bd9E5DC2fcBa1D","sequencer-inbox":"0x85eC1b9138a8b9659A51e2b51bb0861901040b59","rollup":"0x35c60Cc77b0A8bf6F938B11bd3E9D319a876c2aC","validator-utils":"0x84eA2523b271029FFAeB58fc6E6F1435a280db44","validator-wallet-creator":"0x0A5eC2286bB15893d5b8f320aAbc823B2186BA09","deployed-at":21887008}}]
      - --node.da-provider.enable=true
      - --node.da-provider.rpc.url=http://celestia-server:26657
      - --node.da-provider.with-writer=true
      - --node.data-availability.enable=false
      - --node.data-availability.rest-aggregator.enable=true
      - --node.data-availability.rest-aggregator.urls=https://das-plume-mainnet-1.t.conduit.xyz
      - --execution.forwarding-target=https://rpc.plume.org
      - --execution.caching.archive
      - --parent-chain.connection.url=<ETH_RPC_URL>
      - --parent-chain.blob-client.beacon-url=<ETH_BEACON_RPC_URL>
      - --node.staker.enable=false
      - --node.feed.input.url=wss://relay-plume-mainnet-1.t.conduit.xyz
      - --node.sequencer=false
      - --execution.rpc.tx-fee-cap=100
      - --execution.rpc.gas-cap=500000000
      - --metrics
      - --metrics-server.addr=0.0.0.0
      - --metrics-server.port=6070
      - --metrics-server.update-interval=5s

Start Plume Mainnet Node

docker-compose -f plume-mainnet.yaml up -d

Check logs

docker logs plume-mainnet

Node Snapshot

To speed up syncing your node, you can use the latest Plume mainnet snapshot instead of syncing from genesis. Download and extract the snapshot from the link below before starting your node:

👉 Latest Snapshot

This provides a fast, reliable starting point and ensures your node is aligned with the current Plume mainnet state.

Troubleshooting

  • Running on MacOS/Linux

If you are running this setup on an Apple Silicon (M1/M2) Mac, add platform: linux/amd64 to both Celestia Server and Plume Nitro Node service definitions in your YAML files to ensure compatibility.

Last updated