Skip to content

Validator Guide

satyakwok edited this page Apr 28, 2026 · 2 revisions

Validator Guide

How to run a Sentrix node — from source build to validator participation.

Authoritative validator documentation: docs.sentrixchain.com/operations/VALIDATOR_GUIDE and VALIDATOR_ONBOARDING. This wiki is a quick-reference summary.

Mainnet validator set

Currently 4 Foundation-operated validators (Foundation, Treasury, Core, Beacon). Open external onboarding is on the roadmap — criteria, cadence, and timing will be published when the operator-readiness framework is finalized. No specific quarter committed.

If you want to run a testnet validator today, that's open — see below.

Build from source

Requirements:

  • Rust 1.95+
  • LLVM (for mdbx bindgen)
  • build-essential, cmake, protoc, pkg-config
  • Linux, ≥ 4 GB RAM, ≥ 60 GB NVMe/SSD
  • Stable network — public IP for libp2p peering
git clone https://github.com/sentrix-labs/sentrix.git
cd sentrix

cargo build --workspace --release
cargo test --workspace

Binary: target/release/sentrix.

Generate a validator wallet

sentrix wallet generate
# Outputs address + private key. Save the key in a secure location — never commit.

Encrypted keystore (recommended)

Don't pass private keys on the command line. Use Argon2id-encrypted keystore:

sentrix wallet encrypt \
  --private-key 0x<key> \
  --output /opt/sentrix/wallets/mykey.keystore

The keystore is decrypted at node startup with a password (provided via env var or interactive prompt). Compromise of the keystore file alone does not expose the validator key.

Initialize a node

sentrix init --admin-address 0x<your_validator_address>

This creates chain.db/ and wallets/ under the working directory.

Start the node

sentrix start \
  --validator-keystore /opt/sentrix/wallets/mykey.keystore \
  --peers <peer1>:<port>,<peer2>:<port>,...

For testnet, peer addresses + bootstrap config are listed in docs.sentrixchain.com/operations/NETWORKS.

Health checks

# Node alive + height advancing
curl -s http://localhost:8545/chain/info | jq

# Active validator set
curl -s http://localhost:8545/validators

# Liveness — should return 200
curl -sf http://localhost:8545/health

Self-stake

Once registered as a validator (StakingOp::RegisterValidator or AddSelfStake post-fork), your wallet bonds SRX as self-stake. The active validator set is selected by top-N by total stake (self + delegated).

Validators earn:

  • Block rewards (V4 distribution, pro-rata to stake)
  • Tx fees (50% of MIN_TX_FEE per tx in your block)

Both flow through PROTOCOL_TREASURY and are claimed via StakingOp::ClaimRewards. Full details: docs.sentrixchain.com/operations/CLAIM_REWARDS.

Slashing

Two slashable conditions (post JAIL_CONSENSUS_HEIGHT activation):

  • Double-signing: signing two blocks at the same height
  • Liveness violation: missing too many blocks in the liveness window

Slashing burns a portion of self-stake and jails the validator (skipped from active set until Unjail opcode is called after cooldown).

Recovery if jailed:

  1. Wait cooldown
  2. StakingOp::AddSelfStake to clear shortfall (if slashed below minimum)
  3. StakingOp::Unjail

Operational notes

  • Halt-all + simul-start for binary upgrades on mainnet — never rolling restart (causes BFT livelock from cascade-jailing). Operators run mainnet binary deploys via the hot-fix tooling that enforces this pattern.
  • chain.db rsync from canonical is the recovery path for state-fork incidents (rare; happened once on 2026-04-28 during a deploy).

Full operator runbooks: docs.sentrixchain.com/operations.

Open external validator onboarding (roadmap)

When external onboarding opens, technical requirements (minimum self-stake, hardware spec, uptime SLA, networking tier) will be published in docs.sentrixchain.com/operations/VALIDATOR_ONBOARDING. Until then, run a testnet validator to demonstrate operational readiness.

Clone this wiki locally