Skip to content

v0.9.1

Choose a tag to compare

@plebhash plebhash released this 05 Nov 15:23
7c84bf0

General release information

This is a PATCH release on top of v0.9.0. It is cut from the v0.9.0 tag with #977 cherry-picked, not from main, so it stays on stratum-core 0.7.0 from crates.io.

Highlights of this release:

  • JDS no longer refuses a declaration with missing-txs because a transaction left its node's mempool between validation rounds (#975). A transaction can be replaced, evicted or confirmed while the client is answering ProvideMissingTransactions, and JDS used to answer DeclareMiningJob.Error(missing-txs) for transactions the client was never asked for, which made JDC fall back from a Pool/JDS pair that did nothing wrong. JDS now asks for the newly missing transactions in one more round, keeping what the client already supplied, for up to 5 rounds per declaration. A client that withholds a requested transaction is still refused.
  • A declaration left waiting on the client across a chain tip change is refused with stale-chain-tip, and its token and validator state are released, the next time JDS validates anything from that client at the new tip.
  • JDS logs each extra round at info and each missing-txs refusal at warn, with the client and the transactions involved.

Who should upgrade: anyone running JDS, standalone or embedded in Pool, in particular on Bitcoin Core 32. JDC and tProxy have no code changes: jd_client_sv2 and translator_sv2 stay at 0.7.0, and their v0.9.1 binaries and Docker images are rebuilds of the v0.9.0 code.

Crates published with this release: jd_server_sv2 0.7.1, pool_sv2 0.8.1 (it embeds JDS and now requires the fixed version), integration_tests_sv2 0.7.1.

What's Changed

  • fix(jd-server): ask again for transactions the node lost between rounds by @plebhash in #977

Full Changelog: v0.9.0...v0.9.1