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
WETHFor 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:
--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=DefensiveStep 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=DefensiveNote 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 succeededshows that the node is validating chain blocks successfullyThe log line
found correct assertionshows that the node is finding assertions on the parent chain successfully
Last updated
