Skip to main content
Node setup already covers the firewall, a dedicated user, and SSH hardening (mainnet, testnet). This page adds the practices from the Lumera validator operations manual that go further: a sentry layer in front of the validator, protection for the consensus key, more host hardening, and metrics alerts. They apply to mainnet and testnet alike. On mainnet, treat them as the baseline.

Sentry node architecture

A sentry layer keeps the validator off the public internet. The validator talks only to a few full nodes you run, the sentries, and the sentries talk to the rest of the network. A DDoS attack then hits a replaceable full node instead of costing you missed blocks. Each sentry is an ordinary full node, set up like the validator (same lumerad, genesis, and sync), on its own server. Run at least two. If every sentry is down, the validator has no peers. Find each node’s ID on that node.
On each sentry, set these in ~/.lumera/config/config.toml.
On the validator, set these in ~/.lumera/config/config.toml.
private_peer_ids keeps the sentries from gossiping the validator’s address. With pex = false, the validator dials only the peers listed. Then let only the sentries reach the validator’s P2P port, and restart.

Protect the consensus key

The validator signs blocks with ~/.lumera/config/priv_validator_key.json. The node’s P2P identity is ~/.lumera/config/node_key.json.
  • Back up both files offline, encrypted. Never keep the only copy on the server.
  • Never run the same priv_validator_key.json on two machines at once. Two signers double-sign, and double signing is slashed and tombstoned permanently.
  • When you restore or move a validator, stop the old node and make sure it can’t start again before you start the new one. See migrating to a new server.
  • Protect the operator key’s keyring with a strong passphrase.
The operations manual recommends keeping the consensus key in a hardware security module: a YubiHSM 2, or a Ledger Nano S or X with the Tendermint app. Follow the device’s own documentation to generate the key and connect it to the node.

Host hardening beyond node setup

Install security updates automatically.
Ban addresses that keep failing SSH logins.
Lock the root password. Root SSH is already off after node setup.
Before locking root, confirm from a second terminal that your own user can still log in and run sudo -v.

Metrics and alerts

The operations pages list what to alert on (mainnet, testnet). This is a minimal Prometheus setup to start from. Turn on the node’s metrics: set prometheus = true in the [instrumentation] section of ~/.lumera/config/config.toml and restart. Metrics are then served on localhost:26660/metrics. Add host metrics with node_exporter. Check the node_exporter releases for the current version.
Keep ports 26660 and 9100 closed to the internet. Scrape them from Prometheus on the same host or over a private network.
Scrape both in Prometheus.
Two alert rules to start with.
Metric names start with the namespace set in the [instrumentation] section, cometbft by default. List what your node exports with curl -s localhost:26660/metrics | grep missed and adjust the rule to match.

Next steps

Mainnet operations

Upgrades, monitoring, troubleshooting, and migration on mainnet.

Testnet operations

The same procedures on testnet.