Skip to content

Running a validator node locally

Guilherme Dantas edited this page Jun 13, 2025 · 21 revisions

βœ… Prerequisites

  • A Unix-based system (like Linux, macOS, or WSL)
  • A wallet with enough Ether to fund your validator wallet
  • An Ethereum JSON-RPC provider (either self-hosted or third-party)

Important

We advise validators not to use Alchemy's free-tier account because of their block-range limit on eth_getLogs calls. Instead, we suggest either Infura's free-tier account or subscribing to Alchemy's pay-as-you-go model, both of which have been proven more reliable. Other third-party providers are also available.

πŸ“‚ 1. Set up the Project Directory

mkdir -p ./cartesi-honeypot/machine ./cartesi-honeypot/state
cd cartesi-honeypot

πŸ“¦ 2. Download and Install the Cartesi PRT Node Executable

Download the Cartesi PRT Node for your OS from the Cartesi Dave v1.0.0 release page.

Extract files (Linux artifact example):

tar -xvf cartesi-rollups-prt-node-Linux-gnu-x86_64.tar.gz

⚠️ Ensure the extracted binary cartesi-rollups-prt-node is executable:

chmod +x ./cartesi-rollups-prt-node

πŸ“¦ 3. Download the Honeypot Snapshot

Download Honeypot snapshot for the Sepolia deployment from the Honeypot v2.0.0 release page and store it into the /machine folder.

Extract files:

tar -xvf honeypot-snapshot-sepolia.tar.gz

πŸ”‘ 4. Set Up Environment Variables (Optional)

Export your secrets in your shell:

export RPC_URL=<YOUR_RPC_URL>
export PRIVATE_KEY=<PRIVATE_KEY_ACCOUNT_THAT_WILL_SUBMIT_CLAIMS>

πŸš€ 5. Run the Validator Node

Now run the node with the following command:

./cartesi-rollups-prt-node \
  --web3-rpc-url $RPC_URL \
  --web3-chain-id 11155111 \
  --app-address 0xccEbaA7E541BcaA99dE39ca248f0aa6CD33f9e3E \
  --machine-path ./machine \
  --state-dir ./state \
  pk --web3-private-key $PRIVATE_KEY

⚠️ Free Alchemy plans may hit a 500 block range limit, causing the node to fail syncing. Prefer Infura (free) for limited use (~2h/day), or upgrade to a paid plan of Alchemy or Infura.

πŸ“‹ 6. Expected Logs

If the node runs well, you should see output like:

[2025-06-12T14:18:34Z INFO  cartesi_rollups_prt_node] Hello from PRT Rollup Node!
[2025-06-12T14:18:48Z INFO  cartesi_rollups_prt_node] Running with config:
    App Address: 0xccEbaA7E541BcaA99dE39ca248f0aa6CD33f9e3E
    Consensus Address: 0x76015b34F5b0BB4A2643895d8Eac383B90724974
    Input Box Address: 0xc70074BDD26d8cF983Ca6A5b89b8db52D5850051
    Initial Hash: 0xdbe72e1624cfed0e83469f1f5104709ecfc0d4ff6edaa7745d5912b2e184b278
    Genesis Block Number: 8439339
    Machine path: ./machine
    Signer address: <redacted>
    Chain Id: sepolia (11155111)
    Ethereum gateway: <redacted>
    State directory: <redacted>
    Sleep duration: 30 seconds
    Long block range error codes: [-32005, -32600, -32602, -32616]
[2025-06-12T14:18:51Z INFO  rollups_machine_runner] loaded machine at epoch 6 with input count 0
[2025-06-12T14:18:51Z INFO  cartesi_prt_core::strategy::player] Enter tournament at address: 0xD6479994A8cfda8D442F4022d0685143745AcCd9
[2025-06-12T14:18:53Z INFO  cartesi_prt_core::strategy::player] clock paused, 2620 blocks left
[2025-06-12T14:18:53Z INFO  cartesi_prt_core::strategy::player] no match found for commitment: 0xf9ae2b2c74c0cf64bf41705990287b73cea24b097d6fe0d1d6600acaf6878219
[2025-06-12T14:19:24Z INFO  cartesi_prt_core::strategy::player] Enter tournament at address: 0xD6479994A8cfda8D442F4022d0685143745AcCd9
[2025-06-12T14:19:25Z INFO  cartesi_prt_core::strategy::player] clock paused, 2620 blocks left
[2025-06-12T14:19:25Z INFO  cartesi_prt_core::strategy::player] no match found for commitment: 0xf9ae2b2c74c0cf64bf41705990287b73cea24b097d6fe0d1d6600acaf6878219
[2025-06-12T14:19:57Z INFO  cartesi_prt_core::strategy::player] Enter tournament at address: 0xD6479994A8cfda8D442F4022d0685143745AcCd9
[2025-06-12T14:19:58Z INFO  cartesi_prt_core::strategy::player] clock paused, 2620 blocks left
[2025-06-12T14:19:58Z INFO  cartesi_prt_core::strategy::player] no match found for commitment: 0xf9ae2b2c74c0cf64bf41705990287b73cea24b097d6fe0d1d6600acaf6878219

Clone this wiki locally