Intended to make bitcoin command line features more discoverable and allow installing new multiprocess binaries in libexec/ instead of bin/ so they don’t cause confusion.
Idea and implementation of this were discussed in #30983.
Initial implementation of this feature is deliberately minimal so the UX can evolve in response to feedback and there are not too many details to debate and discuss in a single PR. But many improvements are possible or planned:
- Manpage!
- Showing wrapper command lines in help output (comment). This could be done conditionally as suggested in the comment or be unconditional.
- Showing nicer error messages that detect if an executable isn’t installed and suggest how to fix (comment)
- Integrating help so
bitcoin help subcommand
invokesbitcoin subcommand -h
- Adding support for
bitcoin-util
subcommands. Ideal interface would probably be more likebitcoin grind
notbitcoin util grind
but this has been punted for now. Supporting subcommands directly would require some ArgsManager modifications - Adding a dedicated python functional test for the wrapper. Right now there is some CI coverage by setting the
BITCOIN_CMD
variable, but this doesn’t cover things like the help output and version output, and support for different directory layouts. - Better
--multiprocess
(-m
) /--monolithic
(-M
) default selection. Right now, default is monolithic but it probably makes sense to chose more intelligently depending on whether -ipc options are enabled and what binaries are available. - Maybe parsing
bitcoin.conf
and supporting options to control wrapper behavior like custom locations or preferences or aliases. - Better command command line usability. Allow combining short options like (
-ah
). Allow fuzzy matching of subcommands or suggestions if you misspell. (suggested by stickies in review club)
This PR is part of the process separation project. There is a review club meeting for it planned in https://bitcoincore.reviews/31375