Description
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
(--ipcconnect
for 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=N
not 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
--disablewallet
tests disappeared (or were superseded) over the years which I have not looked into, apologies. comment on #19641 - 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.