Originally posted by @jimhashhq in #31756
Like the multiprocess (MP) project; am in favor of the option to build extra binaries for an MP bitcoin. Personally, would like either of the following:
- a more complete MP implementation (with wallet process RPC listener, etc.), or
- renaming of release package to something like “IPC node” only, for transparency, with a delayed libmultiprocess subtree merge #31741, hinging on the completion of MP wallet usages.
Questions follow:
-
Don’t understand how adding gui to node release could happen without a the MP wallet process too? Thought there were two release paths either “IPC node” or “MP node, gui, & wallet,” doesn’t gui depend on wallet. Apologies.
-
What % complete is multiprocess? Release without earlier prs -#19460 -#19461 (
--ipcconnectfor wallet and gui) is incomplete, especially as 19460 only connects and doesn’t do anything. Maybe too much “interface rationalization” needed to ever complete 19460? -
IPC node release would benefit mining usages; are MP proponents committed to completing the rest of MP feature? Personally favor a more fully functional release, including wallet RPC listener. Until wallet MP usages are complete, suggest leaving libmultiprocess as separate project. Solutions to “cmake w/external-library” concerns provided might help to guide “cmake challenged” devs, integrators, & testers more easily through external build process.
-
Is there a plan to follow-through on related “interface rationalization?” What stands out is current degenerate behavior of node spawning a wallet with node acting as a go-between for gui <-> wallet interactions.
-
Are there any additional tests that need to be developed? In addition to one for bitcoin-core/libmultiprocess#169.
-
Doc additions:
--ipcbind=Nnot covered in design spec or elsewhere. -
Was expecting a MULTIPROCESS project label be created long ago for this feature?
-
Are there any unforeseen synchronization challenges adding KJ cooperative multitasking coroutines (for Cap’N Proto promise feature) to a mature Boost threaded project like bitcoin?
Outside the scope of this:
- Seems like some
--disablewallettests disappeared (or were superseded) over the years which I have not looked into, apologies. [comment on #19641](https://github.com/bitcoin/bitcoin/pull/19461#issuecomment-2756056144) - Would some sort of user guide benefit operators interested in MP deployment, preventing operator errors?
IIUI, seems like the current proposed release packaging centers around a node with an IPC listener tailored to suit mining integrations. This doesn’t address interface rationalizations to allow for true/complete MP deployment, with a working wallet process, servicing RPC requests without relying on the node to act as a go-between.