Skip to content

v0.15.0

Choose a tag to compare

@jdogresorg jdogresorg released this 07 Sep 15:05
· 273 commits to master since this release
v0.15.0
c6bf083

XChain Platform v0.15.0.

A full train: all thirteen components move to 0.15.0, the first time since v0.12.0 that the whole set has moved together. The train carries two new consensus mechanisms, both live on Bitcoin testnet from the moment a node updates: ATTEST responses delivered over a hub mirror instead of as their own Bitcoin transactions, and ROLLCALL, a new validator liveness action published on Dogecoin. src/release-manifest.json pins all thirteen components at v0.15.0. xchain-documentation is tagged v0.15.0 with the train.

Activation

Both mechanisms are ARMED ON BITCOIN TESTNET: the response mirror at block 151324 and ROLLCALL at block 151200, both of which the chain has already passed, so each is live from the moment a node updates. Both are armed on regtest from genesis. Mainnet is unratified for both and its behaviour is byte for byte unchanged. Because these change state derived from existing bytes on testnet, a node on v0.15.0 and one still on v0.14.0 will judge a mirrored response differently once one lands, so update every hub and indexer together.

Hubs and the indexers that follow them exchange a wider mirror schema on this train, the new attestation_responses table, so update a hub and its indexers together; an indexer that has not been updated will not understand what a v0.15.0 hub mirrors to it.

Verifying this release

gpg --verify SHA256SUMS.asc SHA256SUMS
shasum -a 256 -c SHA256SUMS

The 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.15.0 <service> <coin> <network>

What is in this train

Component Version
xchain-node 0.15.0
xchain-hub 0.15.0
xchain-indexer 0.15.0
xchain-explorer 0.15.0
xchain-decoder 0.15.0
xchain-encoder 0.15.0
xchain-sync 0.15.0
xchain-utxo-tracker 0.15.0
xchain-vm 0.15.0
xchain-sdk 0.15.0
xchain-contracts 0.15.0
xchain-e2e-test 0.15.0
xchain-regtest-miner 0.15.0
  • An ATTEST response used to be a Bitcoin transaction each responding validator paid for. On this train a response is written to a hub mirror table, gossiped to every hub, verified before it is stored, and applied by the indexer at the block its signed effective time predicts, with a per-block cap. Each hour the finalized responses are still published as one signed ATTEST batch on Dogecoin, and the indexer reassembles chunked batches per author.
  • ROLLCALL lets the network measure validator liveness on chain: validators answer a per-epoch roll call on Dogecoin, and a validator absent from enough consecutive rolled epochs is deactivated, with no governance action and no penalty. Its stake refunds after the ordinary cooldown and it may re-enter.
  • A reorg no longer aborts on the roll-call tables, and a mirror hold that outlasts its ceiling now forces a resync and is reported on the indexer's health endpoint.
  • A hub rate-limit reply now holds the push queue instead of burning attempts, and a price window that closed while the hub was down is published on restart.
  • SWEEP and CALLBACK are priced on the unified fee schedule.
  • The SDK completes the XCALL surface, adds contract-state waiting helpers, hardens its MuSig2 session guards, and ships its MCP tool surface as a second package on the same version.
  • The explorer adds a collectibles gallery, a rich list and a governance overview, and resizes its serving limits to a measured wallet profile.
  • The rollback path in the sync layer restores contract stake correctly and scopes an orphaned archive chunk to its own publisher.
  • The VM moves to a prebuilt isolated-vm, so installing it no longer needs a compiler.
  • The node CLI stops a chain daemon gracefully on update, forces a bootstrap republish after a reindex, and no longer mints a fresh hub API key on a repeated validator init.

Full per-component detail is in each repository's CHANGELOG at its tag.