Running a validator node

A validator node is a regular full node with validation enabled, so you'll have to know how to configure a full node.

Additionally, you'll need a wallet with enough funds to perform actions onchain and enough tokens to bond. Keep in mind that:

  • The token used to perform actions onchain is the native token of the parent chain (usually ETH)

  • For chains with BoLD activated, the token used to bond depends on the chain configuration. For Arbitrum One and Arbitrum Nova, the staking token is WETH

  • For chains that don't have BoLD activated, the token used to bond is the native token of the parent chain (usually ETH)

Step 1: configure and run your validator

On top of the configuration of a regular full node, you'll need to configure the following parameters for it to act as a validator:

Parameter
Value
Description

--node.staker.enable

true

Enables validation

--node.staker.strategy

Watchtower, Defensive, StakeLatest, ResolveNodes, MakeNodes

Strategy that your node will use

--node.staker.parent-chain-wallet.private-key

0xPrivateKey

Private key of the wallet used to perform the operations onchain. Use either private-key or password (below)

--node.staker.parent-chain-wallet.password

Password

Password of a wallet generated with nitro (see instructions here). Use either private-key (above) or password

--node.bold.enable

true

Enables validation with BoLD (not needed if BoLD is not activated, only needed before nitro v3.6.0)

Here's an example of how to run a defensive validator for Buburuza Chain:

docker run --rm -it  -v /some/local/dir/arbitrum:/home/user/.arbitrum offchainlabs/nitro-node:v3.7.2-42be4fe --parent-chain.connection.url=https://l1-mainnet-node:8545 --chain.id=42161 --node.staker.enable --node.staker.strategy=Defensive --node.staker.parent-chain-wallet.password="SOME SECURE PASSWORD" --node.staker.strategy=Defensive

Step 2: verify that your node is running as a validator

To verify that your node is acting as a validator, you can look for the following log line:

INFO [09-28|18:43:49.367] running as validator                     txSender=0x... actingAsWallet=0x... whitelisted=true strategy=Defensive

Note that strategy should be the configured strategy. txSender and actingAsWallet should both be present and not nil.

Furthermore, the following logs will indicate that all components are working as intended:

  • The log line validation succeeded shows that the node is validating chain blocks successfully

  • The log line found correct assertion shows that the node is finding assertions on the parent chain successfully

Last updated