Skip to content

Operating a node

Day-to-day operation of a KriptoNyx validator, and the failure modes that matter.

Jailing and recovery

Miss too many blocks and you are jailed: you stop signing and stop earning. After fixing the cause:

bash
kriptonyxd tx slashing unjail --from validator \
  --chain-id kriptonyx_3009-1 --home "$KNYX_HOME"

Unjailing before the cause is fixed simply gets you jailed again. Confirm the node is synced and signing first — see step 9.

Double-signing

Never run two nodes with the same priv_validator_key.json

Both will sign the same height with the same key. That is double-signing — the one fault that is slashed hard and permanently jails the validator.

If you rebuild a node, destroy the old key first. Do not keep a "backup node" running with a copy of the key.

This is the single most expensive mistake a validator can make, and it is usually made by someone trying to be careful about availability.

Unbonding takes 21 days

Stake withdrawn is illiquid for the full period, and you remain slashable during it for faults committed earlier. Plan exits ahead.

Backups

FileWhat it is
config/priv_validator_key.jsonYour consensus identity. Losing it ends the validator; leaking it enables double-signing
config/node_key.jsonYour P2P identity
Wallet mnemonicAccess to the staked funds

Keep the validator key offline except on the signing machine.

A backup you restore carelessly becomes a double-sign

Restoring priv_validator_key.json onto a second machine while the first is still running is exactly the fault above. Restore only after confirming the original node is permanently stopped.

Upgrades

bash
# replace the binary, then
sudo systemctl restart kriptonyx
journalctl -u kriptonyx -f

Watch the logs across the first blocks after restart. A node that restarts into a consensus failure will not recover on its own.

Monitoring

At minimum, alert on:

SignalCheck
Node livenesssystemctl is-active kriptonyx
Sync statecatching_up from /status — should stay false
Height advancinglatest_block_height must increase
SigningThe five-block check from step 9
Voting powerNon-zero, and unchanged
DiskChain data grows continuously
bash
curl -s localhost:26657/status | jq '{
  height: .result.sync_info.latest_block_height,
  catching_up: .result.sync_info.catching_up,
  power: .result.validator_info.voting_power
}'

A node can be running, synced and still not signing. Check signing specifically — the other three signals will all look healthy while you are being jailed.

Common problems

SymptomLikely cause
Synced, voting_power: "0"Not bonded — insufficient stake, or jailed
No peersexternal_address wrong, or 26656 not reachable
Height not advancingLost peers, or the node is stuck — check logs
Restart loopConsensus failure or corrupt data; the logs name the height
Slow syncI/O bound. An SSD is not optional

KriptoNyx testnet — chain ID 3009 (kriptonyx_3009-1)