Skip to content

Release v0.16.0 - xchain-encoder - #11

Merged
jdogresorg merged 4 commits into
masterfrom
release/v0.16.0
Sep 8, 2026
Merged

jdogresorg merged 4 commits into
masterfrom
release/v0.16.0

Conversation

@jdogresorg

Copy link
Copy Markdown
Contributor

XChain Platform v0.16.0 release train: this repository's frozen release/v0.16.0 branch, carrying every develop commit since its last tag plus the version bump, CHANGELOG block and README refresh.

A minor train. Two consensus rails arm on Bitcoin testnet by height, both ahead of the chain at cut time: zero-confirmation ATTEST service from block 151800 and ROLLCALL v1 consensus gates from block 152208. Mainnet is unratified and byte for byte unchanged. Testnet indexers roll before hubs, the whole fleet inside one roll-call epoch.

Merge order per the release runbook (section 6, 5b): hub, then decoder/sync/encoder/utxo-tracker, then indexer, then explorer, e2e-test and sdk, node last with the pinned manifest. Merge commit, never squash: the train tag is cut on the merge commit.

Published files may not name internal tooling paths. Each comment keeps what it
was explaining and drops the path: the validator compose sentence, the log
shipper's note about the watch collector's parser, the perf job's note about the
platform job-reachability config, and the indexer's cost-report, precision-spec
and cost-weighting citations.

Text only. No behaviour changes.
chore: cite the platform tree by name, not by internal path
…t refuses

The app-wide limiter answered 429 in silence, so an operator could not see
a limit biting without a client reporting it. src/rateLimitLog.js gives it
a handler that sends the same JSON-RPC error body the message option sent
(the library still sets Retry-After and the RateLimit headers first) and
logs one line at the first refusal of a window and again at the first
refusal after a full window has elapsed, carrying the count since: the
count, the ceiling and the environment knob to raise. No timers, so a
burst can never become a log outage. The ceiling is resolved once and
shared by the limiter and its handler, so the logged number cannot drift
from the enforced one.

Driven on a throwaway regtest twin at 3 per minute: 200 200 429 429 429
429 with RateLimit-Policy 3;w=60, the body byte-identical, one line in the
container log.

Rate-limits spec, M2 row 18.
@jdogresorg
jdogresorg merged commit c621917 into master Sep 8, 2026
7 checks passed
@jdogresorg
jdogresorg deleted the release/v0.16.0 branch October 1, 2026 02:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant