AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Low 25 Bitcoin

ipc mining: pass missing context to BlockTemplate methods (incompatible schema change)

Public commit record

What the developer wrote

Authored by Sjors Provoost

93/100 · Strong
ipc mining: pass missing context to BlockTemplate methods (incompatible schema change)

Adding a context parameter ensures that these methods are run in
their own thread and don't block other calls. They were missing
for:

- createNewBlock()
- checkBlock()

The missing parameters were first pointed out by plebhash in
https://github.com/bitcoin/bitcoin/issues/33575#issuecomment-3383290115 and
adding them should prevent possible performance problems and lockups,
especially with #34184 which can make the createNewBlock method block for a
long time before returning. It would be straightforward to make this change in
a backward compatible way
(https://github.com/bitcoin/bitcoin/pull/34184#discussion_r2770232149) but nice
to not need to go through the trouble.

Warning: This is an intermediate, review-only commit. Binaries built from it
should not be distributed or used to connect to other clients or servers. It
makes incompatible changes to the `mining.capnp` schema without updating the
`Init.makeMining` version, causing binaries to advertise support for a schema
they do not actually implement. Mixed versions may therefore exchange garbage
requests/responses instead of producing clear errors. The final commit in this
series bumps the mining interface number to ensure mismatches are detected.

git-bisect-skip: yes

Co-authored-by: Ryan Ofsky <ryan@ofsky.org>
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
The short version

What changed, and why it matters

This is a Bitcoin Core internal-only commit that changes the inter-process communication (IPC) schema used between the main node and external mining components. It adds a missing 'context' parameter to two mining methods so they run in their own thread and don't block other calls. The commit itself explicitly warns it is an intermediate, review-only change that should not be distributed, because it makes incompatible schema changes without bumping the version number, which could cause mismatched binaries to exchange garbage data instead of clean errors. The actual security risk is low and self-contained: it is a known, temporary incompatibility during development, not a vulnerability in shipped code.

Recommended action

Do not build, distribute, or run binaries from this isolated commit in production or on any network. Treat it as a review-only intermediate change. Ensure the final commit in the series that bumps the mining interface version is included before any release or deployment. Reviewers should verify that the version bump in Init.makeMining is present in the subsequent commit and that functional tests cover both old and new interface behavior if backward compatibility is desired.

Security signals we found

01

Incompatible IPC schema change without version bump

02

Explicit developer warning against distributing or connecting binaries built from this commit

03

Risk of garbage request/response exchange between mismatched versions rather than clean errors

04

Intended fix for performance/lockup issues in mining IPC methods

05

Marked git-bisect-skip indicating unstable intermediate state

Risk score

Why this scored 25/100

Our methodology →
Potential impact 4/30
Exploitability 3/25
Stealth signal 3/15
Affected reach 4/15
Confidence 7/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.