Skip to content

Bitcoin multiprocess questions & concerns #170

Open
@ryanofsky

Description

@ryanofsky

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:

  1. 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.

  2. 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?

  3. 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.

  4. 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.

  5. Are there any additional tests that need to be developed? In addition to one for bitcoin-core/libmultiprocess#169.

  6. Doc additions: --ipcbind=N not covered in design spec or elsewhere.

  7. Was expecting a MULTIPROCESS project label be created long ago for this feature?

  8. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions