From 12d12a77bd8f781ca2a36af013a64a3f2ebe02b6 Mon Sep 17 00:00:00 2001 From: J-Dog Date: Fri, 18 Sep 2026 21:42:14 -0700 Subject: [PATCH] docs(releases): mirror the v0.20.0 train Adds the v0.20.0 section to the release mirror, newest first, linking its own tag on the node Release page. Component versions come from the tagged release manifest and the activation heights from the canon protocol constants at the v0.20.0 tag. --- operations/releases.md | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/operations/releases.md b/operations/releases.md index 3d7b79e..dad4536 100644 --- a/operations/releases.md +++ b/operations/releases.md @@ -9,6 +9,58 @@ Each train tag is GPG-signed with the platform release key. See [Release Signing](./release-signing.md) to verify a download, and [Release Process](./release-process.md) for how a train is cut. +## v0.20.0 + +Released 2026-09-18. [Release notes and artifacts](https://github.com/XChain-Platform/xchain-node/releases/tag/v0.20.0) + +A thirteen-component train: every code component except `xchain-contracts` moves to 0.20.0, +`xchain-documentation` included. It activates the time-keyed mirror barrier family on testnet. +Mirrored consensus rows now carry the block height at which each chain admits them, and that +height replaces wall-clock arrival as the ordering fact above the flag day, so a future-dated +block cannot hold an indexer behind an unbounded time barrier. The hub emits the fields on live +messages and bootstrap pages, the indexer enforces the same rule in live processing and in +replay, and the hub mirror schema moves from 6 to 7. Because the barriers change what a node +derives from a block, the manifest is classified major and carries a `trainActivation` block +arming the 0.20.0 rule set on testnet at Bitcoin height 153116. + +| 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 | + +**Every testnet node must run v0.20.0 before Bitcoin testnet height 153116**, the train +boundary: a node without this rule set halts at that boundary instead of processing a block +under the older rules, and below it the new binary runs the old rules, which is the +rolling-upgrade window. The barrier family arms per chain on testnet in two stages. The mirror +admission producer (`MIRROR_ADMISSION_ACTIVATION`) arms at BTC 153222, LTC 4891504 and DOGE +67911796; the consumer (`MIRROR_ADMISSION_CONSUMER_ACTIVATION`) arms later at BTC 153266, LTC +4891766 and DOGE 67912575, so writers publish admission metadata before readers require it. The +anchor-attestation completeness barrier (`ANCHOR_ATTEST_BARRIER_ACTIVATION`) arms at the Bitcoin +consumer height, 153266, and uses the same bounded view of admitted rows. Mainnet stays unarmed +on every row, as do token-bridge ISSUE and policy inheritance on every network. + +Roll the hub first and apply the admission-height migration before rolling mirror readers: seven +mirror tables gain admission-height columns, including the lifecycle and attestation data the +barrier checks read, and hub bootstrap pages carry the same columns as the live stream. +Bootstrap traffic gains its own per-IP rate-limit bucket and boot-marker scans stop at the +catch-up horizon. Activation modules, registry rows, fingerprints and identity pins move to one +consolidated layout across the indexer, hub, sync, explorer, SDK and documentation. The replay +witness rejects empty corpora, runs production block passes through the indexer's database +wrapper, and compares equivalence by natural keys and reachable state-tree roots, so the mirror +barrier can be checked against the state a live indexer actually commits. A BTC-sourced bridge +transfer can no longer be anchored below the block that mined its lock. + ## v0.19.1 Released 2026-09-16. [Release notes and artifacts](https://github.com/XChain-Platform/xchain-node/releases/tag/v0.19.1)