I open this issue to have a space for discussions and a status of current work going on.
There are plans to mostly rewrite the current wallet implementation and – speaking long term – completely decouple the wallet from bitcoin-core and move it to a separate repository. This might lower down the amount of pull requests and issues, etc. in the bitcoin-core repository.
Planed transition/features:
- Decouple wallet from bitcoin core, remove wallets
#ifdef ENABLE_WALLET
and implement a startup command to run bitcoin core with a/the new wallet or the legacy wallet (-addmodule=wallet
or-addmodule=legacywallet
, or-addmodule=wallet,internalminer
) #5752, #5758, #5744 - Keep the legacywallet as untouched as possible
- Add a new BDB free wallet with a internal append only data format (logdb) (this could also be the starting point of a new wallet module). Support a migration tool. #5686
- Remove accounting system (new wallet only) or transform it into labels #3816
- Add support for Bip32/HDWallets
- Add SPV mode
- Add multiwallet support
Status
- Currently the legacywallet decoupling is the main focus. See #5752, #5758, #5744, #5745
- The planed internal append only file format has been proven to work in #5686
- HTTP/RPC Server: #5677 (which is related somehow)
Related Discussions
#3882 Split off wallet to seperate repository #3440 Post-0.9 modularization
If someone is interested in contributing, it would mainly help to review and test the PRs listed above. Of course delivering implementation would also be great, just make sure to speak up in a comment and make others aware of what your are working on.
As usual, the bottleneck will be testing and reviewing. Especially the unspectacular changes which not directly lead to a feature like bip32 or spv at first sight.
Conceptional ideas are also very much welcomed.