Skip to content

v2.3.1

Choose a tag to compare

@warioishere warioishere released this 12 Aug 22:13
· 221 commits to main since this release

Job Declaration Protocol

Base-protocol clients are served. A job-declaring client that does not
speak the payout extension now gets custom jobs under §6.4.3: the coinbase is
held to the pool's designated output, the job to its own token's miner address
and to the pool's chain tip.

A custom job is bound to what authorised it. The token and the pool's tip
both have to match, and a job on a channel the pool has served no extended job
yet is refused retryably — nothing else could pin its block-candidate
threshold, and handing that to the client turns every ordinary share into a
"block found".

A payout distribution is published only once the mode is known. It used to
fall back to a guess, which meant whoever declared before their miner connected
got a plan built for the wrong mode. Each published entry now carries the
accounting it was built for, so a plan cannot be mined on a stream it does not
belong to.

A session already being served re-asks its mode. A group join takes effect
mid-connection without a reconnect, and the client is handed a new plan instead
of being left on the one built for the mode it no longer has.

Notifications

ntfy inbound topics are split across several URLs. A single subscription
URL stopped working past roughly a dozen addresses, which silently killed the
user→pool direction. Outgoing push was never affected.

Development

The bitcoin-core regtest suite is one driver per concept rather than one per
payout mode, and runs on macOS.

Upgrading

No schema migration and no configuration change in this release.