v2.3.8
Group-Solo: round resets across a daylight-saving change
- Weekly and monthly round resets computed the next reset by adding 24 hours per day. On a 25-hour day (the autumn clock change) that stays on the same date, so the computation never finished and stalled the payout process with it. Dates now advance by calendar day; daily resets on that day no longer land in the past, and custom resets no longer fire an hour early.
Job Declaration Protocol
- A declared coinbase is checked before it reaches the validation engine: only a single-input segwit coinbase with a scriptSig of at most 100 bytes is passed on, anything else is refused with
invalid-coinbase-tx. - A declaration whose node still lacks transactions after
ProvideMissingTransactions.Successis refused withmissing-txsinstead of being accepted without a full node check. - Each declaration starts with fresh validation-engine state, so a tip change between two declarations is no longer reported as
stale-chain-tip. - Up to three declarations may wait for their missing transactions at once, each answered under its own
request_id. - A declaration that arrives before the pool knows a chain tip is refused with
stale-chain-tip, so every accepted declaration is bound to a tip. - A
ProvideMissingTransactions.Successwith the wrong number of transactions is answeredmissing-txs. - Two token allocations right after connecting are both answered; the sustained rate stays one per second.
Stratum
- SV1, SV2, HTTP and TLS are told apart on their opening bytes instead of the first byte. An SV2 connection opens with a pseudo-random key whose first byte matched another protocol's rule for 7 of 256 values, so about one SV2 connection attempt in 37 went to the wrong server.
- A connection whose peer stops acknowledging data is dropped after 150 s instead of after the kernel's retransmission limit.
Fixes
- The difficulty scoreboard showed no 30-day (or 7-day) entries for up to two hours (or 30 minutes) after a new period began: the
diff-scoresresponse was cached past the hour boundary. It now expires at the next full hour.
Upgrade notes
- No new migrations and no config changes.
- A JDP
SetupConnectionwith an unsupported version range is now answeredprotocol-version-mismatch(previouslyunsupported-version), the same code the mining port uses.