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
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" # Sequencer Inbox address for Plume MainnetReplace
CELESTIA_ENDPOINTwith your Celestia RPC URL, we recommend you to use Quicknode for getting an Celestia Endpoint.Replace
ETH_RPC_URLwith your Ethereum RPC URL.
Start Celestia DA Server
docker-compose -f celestia-da-server.yaml up -dCheck logs
docker logs celestia-da-serverRun 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
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=5sReplace ETH_RPC_URL and ETH_BEACON_RPC_URL with your RPC URLs.
ETH_RPC_URL = execution layer client like Geth, Erigon, Nethermind, or Reth
ETH_BEACON_RPC_URL = consensus layer client like Lighthouse, Prysm, Nimbus, or Teku
Start Plume Mainnet Node
docker-compose -f plume-mainnet.yaml up -dCheck logs
docker logs plume-mainnetNode 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:
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/amd64to both Celestia Server and Plume Nitro Node service definitions in your YAML files to ensure compatibility.
Last updated