8 · Network & Nodes
XChain is a public good, and running it is public. A single node produces blocks in about a minute (Go 1.23+, git, bash; GOTOOLCHAIN=go1.25.7 fetches the right toolchain):
git clone https://github.com/xchain/xchain.git
cd xchain
GOTOOLCHAIN=go1.25.7 go build -o build/xchaind ./cmd/xchaind
bash devnet/run-single-node.sh
# from another terminal:
curl -s http://localhost:26657/status | grep latest_block_height # it climbs
The full acceptance gauntlet — bash devnet/mvc-all.sh — brings up a 3-chain devnet with a real relayer and runs MVC-1..4 from a clean state. XChain holds itself to three gates:
| Gate | What it runs |
|---|---|
| 1 | GOTOOLCHAIN=go1.25.7 go test ./... (CI) |
| 2 | Real devnet end-to-end — bash devnet/mvc-all.sh |
| 3 | Explorer — typecheck + tests + docker build (CI) |
The acceptance criteria themselves (MVC): MVC-1 anchors a "like" into the Data Layer and verifies inclusion cross-chain via ICA; MVC-2 enforces UAC security-class + the total-supply invariant; MVC-3 proves XMP anti-replay + pessimistic containment under a simulated faulty chain; MVC-4 aggregates 3 chains → 1 Cell → Root and settles on A0.
Rule number one: verify before you claim done — paste the output, don't assert "looks correct." It is the standard We ask of every contributor, and the standard this whitepaper holds itself to.