XChain Platform v0.20.0
XChain Platform v0.20.0.
This thirteen-component train activates the time-keyed mirror barrier family on testnet.
Hub rows now carry per-chain admission heights, indexers bind live and replayed rows to
those heights, and the hub mirror schema moves to v7. The producer and consumer flag days
are staged so writers start publishing admission metadata before readers require it, with
the anchor-attestation completeness barrier arming at the consumer boundary. Mainnet
remains unarmed, and token-bridge ISSUE and policy inheritance remain behind their
sentinels for a later train. The signed artifact set and SHA256SUMS.asc are attached.
Activation
The barrier family is armed on testnet only. Mainnet stays at the sentinel:
| Rule | Mainnet | Testnet | Regtest |
|---|---|---|---|
Mirror admission producer (MIRROR_ADMISSION_ACTIVATION) |
unarmed, every coin | BTC 153222, LTC 4891504, DOGE 67911796 | controlled by the explicit venue setting |
Mirror admission consumer (MIRROR_ADMISSION_CONSUMER_ACTIVATION) |
unarmed, every coin | BTC 153266, LTC 4891766, DOGE 67912575 | controlled by the explicit venue setting |
Anchor-attestation barrier (ANCHOR_ATTEST_BARRIER_ACTIVATION) |
unarmed | BTC 153266 | controlled by the explicit venue setting |
Token-bridge ISSUE (TOKEN_BRIDGE_ACTIVATION) |
unarmed | unarmed | genesis |
Token policy inheritance (TOKEN_POLICY_INHERITANCE_ACTIVATION) |
unarmed | unarmed | genesis |
The tagged release manifest carries the v0.20.0 platform-train boundary. A node without
this rule set halts at that boundary instead of processing a block under older rules.
The time-keyed mirror barriers
Mirrored consensus rows now carry the block height at which each chain admits them. That
height replaces wall-clock arrival as the ordering fact above the flag day, so a
future-dated block cannot hold the indexer behind an unbounded time barrier. The hub emits
the fields on live messages and bootstrap pages, and the indexer enforces the same rule in
live processing and replay.
The producer height comes first on Bitcoin, Litecoin and Dogecoin. The later consumer
height makes the fields mandatory only after publishers have begun supplying them. The
anchor-attestation barrier arms at the Bitcoin consumer height and uses the same bounded
view of admitted rows. Mainnet remains unchanged.
Schema and registry
The hub mirror schema moves from 6 to 7. Seven mirror tables gain admission-height
columns, including the lifecycle and attestation data used by the barrier checks. Hub
bootstrap pages carry the same columns as the live stream, bootstrap traffic has its own
per-IP rate-limit bucket, and boot-marker scans stop at the catch-up horizon. Roll the hub
and apply the admission-height migration before rolling mirror readers.
Activation modules, registry rows, fingerprints and identity pins now use one consolidated
layout across the indexer, hub, sync, explorer, SDK and documentation. The carrier pin
tool can move a changed carrier and record its old and new path and hash in one operation.
Replay and bridge safety
The replay witness rejects empty corpora and runs the production block passes through the
indexer's database wrapper. Its equivalence comparison follows natural keys and reachable
state-tree roots, allowing the mirror barrier to be checked against the state that a live
indexer actually commits. Watermark reads also verify that a table exists before querying
it.
A BTC-sourced bridge transfer cannot be anchored below the block that mined its lock.
Explorer token and XBRIDGE reads adapt to older replica schemas, so a mixed-version read
tier can be rolled without losing those detail pages.
Also in this train
- The end-to-end suite covers the mirror and anchor barriers in live, replay, flag-day,
parity and second-chain cases, and adds regtest rails for token bridge and policy
inheritance while those production gates remain dark. - The node passes mirror activation and confirmation overrides to the services that need
them, supplies cross-chain indexer URLs for bridge proofs, accepts the current migration
CLI layout, resolves restored signing keys from their relocated configuration path, and
makes sibling coverage checks follow the repository roster. - Nightly Litecoin and Dogecoin jobs provision validator configuration, API access,
database headroom and a Bitcoin gas rail. - The SDK documents and types its API server exports, and vendors the barrier registry
rows in the consolidated layout. - Decoder migration commands reject unknown arguments, regtest tracker sync no longer
trustsverificationprogressas a verdict, and reachability metadata in the encoder and
regtest miner no longer advertises nonexistent dynamic edges. - VM mutation tiers use repository-relative paths, and the VM entry point drops an unused
module load.
Verifying this release
gpg --verify SHA256SUMS.asc SHA256SUMS
shasum -a 256 -c SHA256SUMSThe signing key is published at xchain-documentation/operations/release-signing.md and in
tools/release/ in each component repository that ships release tooling. Any other key is not
an official release.
Installing this exact set
xchain-node install v0.20.0 <service> <coin> <network>What is in this train
| Component | Version |
|---|---|
| xchain-node | 0.20.0 |
| xchain-hub | 0.20.0 |
| xchain-indexer | 0.20.0 |
| xchain-sync | 0.20.0 |
| xchain-explorer | 0.20.0 |
| xchain-decoder | 0.20.0 |
| xchain-encoder | 0.20.0 |
| xchain-utxo-tracker | 0.20.0 |
| xchain-sdk | 0.20.0 |
| xchain-e2e-test | 0.20.0 |
| xchain-vm | 0.20.0 |
| xchain-contracts | 0.17.0 (unchanged) |
| xchain-regtest-miner | 0.20.0 |
| xchain-documentation | 0.20.0 |