WarmUpChain Testnet

Verify

Don't trust us. Check.

An observer node follows WarmUp Chain independently on your own machine and checks every block hash. If the operator ever rewrites history, your node stops matching the public data and keeps both versions as evidence.

What an observer is

An observer is read-only: it doesn't produce blocks, vote, or relay transactions. It has no effect on the chain, and it's fine for it to go offline. It keeps answering one question: has this chain's history been changed?

ValidatorObserver
RoleVotes in QBFT and produces blocksSyncs every block, checks and publishes the data
Effect on the chainToo many offline and the chain stopsNone on block production
Trust neededYou must trust the operatorNone
How to joinOn-chain vote by existing validatorsDownload the kit
NetworkFixed public IP, online 24/7Outbound connections only; catches up after reconnecting
Recommended2–4 cores / 8 GB / 100 GB NVMe2 cores / 4 GB / 50 GB SSD
KeysA block-signing key that must be guardedOnly a network identity key; leaking it carries no financial risk
Who runs itLong-term partnersAnyone

What it detects

The watch dashboard records every block the node has and runs these checks continuously. Critical incidents turn the dashboard red, and records are append-only.

CheckHowOn failure
Rewrite detectionRe-reads the latest 1,000 blocks every minute plus a rotating sweep over all history; if a hash changes, both headers are keptCritical rewritten
ContinuityBlock N's parent hash must equal the recorded hash of block N−1Critical chain_break
Reference comparisonCompares every block with each reference RPC at the same height, and notices if a reference changes its answer laterCritical mismatch
HealthNode unreachable, head not advancing, too far behind, no peers, reference unreachable. A stall says whether it's this observer's own sync or the chain itself that stoppedWarning resolves itself

All three critical checks and the main warnings have been triggered in drills. You can export the block hash list for any range and compare it with other observers offline: diff <(sort mine.csv) <(sort theirs.csv).

Live dashboard

An observer set up the same way on a separate server, with its dashboard public and read-only:

WarmUp Observer

Green "All consistent", yellow for warnings, red "Anomalies detected". Browse the block ledger and incidents, and export evidence.

http://192.227.167.144:18080

Run an observer

The kit is about to be open-sourced. Until then, contact the WarmUp team to get the observer kit and join the network. After the release there will be public entry nodes: download it and run it, with nobody's approval needed.

What you need

  • 2 CPU cores, 4 GB RAM; an SSD with 50 GB+ for full mode or 20 GB+ for recent
  • Outbound connections only; no public IP
  • Docker 24+ with docker compose

Two sync modes

full (default)recent
Starts atGenesisA checkpoint you choose
First syncSlower, grows with the chain; re-executes every block locallyFast; still downloads every block header
VerificationStrongestStrongest after the checkpoint; before it, hash-chain continuity only

In recent mode, take the checkpoint from a source you trust: another independent observer, or your own earlier full sync.

Start

shell
cp .env.example .env
# set BOOTNODES, choose SYNC_MODE=full or recent
mkdir -p data watch-data control
docker compose up -d
# open http://127.0.0.1:8080 for the watch dashboard

The node's JSON-RPC listens on localhost only and exposes read-only APIs. Images are pinned by digest; the dashboard runs on a read-only filesystem with zero npm dependencies.

Other ways to verify

What it can't do

  • Detect, not prevent: an observer can sound a public alarm about tampering but can't stop the validator producing blocks. Making history impossible for any one party to rewrite needs validators spread across different operators, which is on the roadmap before mainnet.
  • An entry node can withhold, not forge: a node relaying blocks to you can't forge them (QBFT seals are re-verified); at most it can stop relaying, which shows as lag behind the references.
  • Clock-drift monitoring is in progress: comparing when new blocks arrive with their timestamps, alerting above 5 s of drift.