This changes the depends
system to build libmultiprocess by default. As a result Guix builds now add bitcoin-node
and bitcoin-gui
to the release binaries. See #30983 for a discussion of variations on this approach.
Combined with #30955 and #31003 this makes it feasible to implement a Stratum v2 Template Provider (or something similar) as an external tool that communicates with the node via IPC.
A complete implementation can be seen in https://github.com/Sjors/bitcoin/pull/48. That implementation builds on top of the Bitcoin Core codebase, but a Template Provider could also be built in Rust from the ground up. Or as a standalone c++ application that uses a library we (might, one day) expose.
Multiprocess is skipped for the Windows build for now, see https://github.com/chaincodelabs/libmultiprocess/issues/53.
IIUC the regular bitcoind
, bitcoin-qt
, etc binaries are not affected by this change.
It may be useful to also merge #30437 and document its usage.
bitcoin-gui
could be omitted, but that doesn’t seem worth complicating the build system.
Builds on #30940.
A previous version of this PR changed the Guix build rather than the depends.