XChain Platform v0.12.1
XChain Platform v0.12.1.
A patch train. src/release-manifest.json pins xchain-indexer at v0.12.1 and the other eleven components at the v0.12.0 tags they already carry, unchanged. A component's version is the platform version at which it last changed, so a gap means unchanged that release.
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 every train repo. Any other key is not an official release.
Installing this exact set
xchain-node install v0.12.1 <service> <coin> <network>What is in this train
- A reward whose anchor was attested before a version restart is judged on the anchor bytes as written. Proof admission had dropped the legacy wire versions, so such a reward could never be proven: it read as an eternal unknown and the chain halted, correctly refusing to commit on absent evidence but with no way forward, because nothing re-admits those bytes once the fleet is uniform. Admission now carries the legacy versions and binds each to the reward family it was renumbered from.
- This is also the replay fix. The previous build cannot replay a chain carrying such a reward from genesis, because it halts at the first one before reaching the tip.
- Forgeries on legacy bytes stay excluded: at or above the anchor activation height a legacy byte parses deterministically invalid, and every node drops it as evidence identically.
This ships ungated. The previous build does not derive different state here, it derives none: the halt rolls back the whole block transaction, so a node on the older code cannot commit a conflicting verdict, only stop.
Full detail is in xchain-indexer's CHANGELOG at its v0.12.1 tag.