Skip to content

bitcoind: extract libexec/bitcoin-node and bin/bitcoin-cli alongside bitcoind#572

Merged
tcharding merged 1 commit into
rust-bitcoin:masterfrom
xyephy:2026-04-29-extract-multiprocess-binaries
May 4, 2026
Merged

bitcoind: extract libexec/bitcoin-node and bin/bitcoin-cli alongside bitcoind#572
tcharding merged 1 commit into
rust-bitcoin:masterfrom
xyephy:2026-04-29-extract-multiprocess-binaries

Conversation

@xyephy
Copy link
Copy Markdown
Contributor

@xyephy xyephy commented Apr 30, 2026

The build script previously extracted only bin/bitcoind from the downloaded tarball and discarded the rest. Downstream crates that need bin/bitcoin-cli or since v30 -the multiprocess libexec/bitcoin-node had to maintain their own download + unpack logic, defeating the point of corepc's auto-download. sv2-apps is one such crate: it carries a manual download + extract + macOS codesigning block specifically to get at libexec/bitcoin-node for -ipcbind=unix.

This PR extends the extraction filter to pull bin/bitcoind, bin/bitcoin-cli, and (when feature 30_0+ is enabled) libexec/bitcoin-node from the .tar.gz. The cache-completeness check and the macOS arm64 ad-hoc signing pass are updated to match.

Closes #566

Tested

  • cargo build --features "30_2 download" from a clean cache: all three binaries on disk, all codesign -v pass, bitcoin-node -regtest -ipcbind=unix creates regtest/node.sock.
  • cargo build --features "23_2 download": extracts bitcoind + bitcoin-cli only (no libexec/bitcoin-node in pre-v30 tarballs); rebuild cache-hits, no re-download loop.
  • Tarball layout verified identical across bitcoin-30.2-x86_64-linux-gnu.tar.gz and bitcoin-30.2-arm64-apple-darwin.tar.gz.

@xyephy xyephy changed the title bitcoind: extract libexec/bitcoin-node and bin/bitcoin-cli alongside bitcoind bitcoind: extract libexec/bitcoin-node and bin/bitcoin-cli alongside bitcoind Apr 30, 2026
@tcharding
Copy link
Copy Markdown
Member

Coolio, looks good. Can you run the formatter please mate?

@xyephy xyephy force-pushed the 2026-04-29-extract-multiprocess-binaries branch from d943b7a to 62f9f2b Compare May 1, 2026 07:39
@xyephy
Copy link
Copy Markdown
Contributor Author

xyephy commented May 1, 2026

Coolio, looks good. Can you run the formatter please mate?

I've done that.

@xyzconstant
Copy link
Copy Markdown

xyzconstant commented May 1, 2026

Concept ACK, thanks for working on this!

or since v30 -the multiprocess libexec/bitcoin-node had to maintain their own download + unpack logic, defeating the point of corepc's auto-download.

Can relate. I'm working on peer-observer/peer-observer#379 which adds an IPC extractor to interact with a bitcoin-node process over an IPC socket, we had to introduce a whole CI setup for integration tests against a bitcoin-node binary.

I think this PR can help devs working on multiprocess to avoid taking workarounds for testing bitcoin-node.

Copy link
Copy Markdown
Member

@tcharding tcharding left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 62f9f2b

@tcharding tcharding merged commit 1fd697f into rust-bitcoin:master May 4, 2026
39 checks passed
@tcharding tcharding mentioned this pull request May 4, 2026
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.

node: extract multiprocess binaries (libexec/bitcoin-node, bin/bitcoin-cli) alongside bitcoind

3 participants