-
Notifications
You must be signed in to change notification settings - Fork 38.7k
Description
There's a number of RPC calls currently that don't need to know anything about the blockchain or the users wallet, and also don't need p2p network access:
createmultisigsignmessagewithprivkeyverifymessagevalidateaddresscombinepsbtconverttopsbtdecodepsbtdecodescriptfinalizepsbt
Arguably also:
decoderawtransaction(butcreaterawtransactionneeds the node)
There's also a few being proposed:
deriveaddressAdd deriveaddresses RPC util method #14667encodescriptRPC method 'encodescript' #14476
We could call the new thing bitcoin-util. The deprecation notice for bitcoin-cli method would simply be Use "bitcoin-util method" instead.
A bigger issue is that some application may depend on calling bitcoind via RPC, perhaps on a different machine. A few things we could do:
- take a very long time to deprecate
- add a parameter to
bitcoindthat adds all utility functions via RPC, like e.g.bitcoin-cli util-deriveaddress - let
bitcoin-utilrun its own RPC server on a different port
However (2 & 3): maintaining RPC wrappers around utility functions is some overhead, and extra complexity.
Ideally bitcoin-util comes with a library that's easy to include in ruby gems, npm modules, etc.
One additional benefit of a separate utility is that you can switch between testnet and mainnet without restarting the node.