The format of mempool.dat has been changed in #18038
It would be nice to have an automated functional test which checks that the mempool.dat created by an earlier version can still be read by a newer version.
This is a compatibility test similar to ./test/functional/wallet_upgradewallet.py
, which can serve as a template or skeleton for the new test.
I suggest that the test does at least the following:
- Have two nodes (old version and current master)
- Have the old node create some transactions which end up in the mempool
- Start the new node with the mempool.dat of the old node and check that the mempool is properly deserialized
- Have the new node create some mempool transactions that end up in the unbroadcast set, stop the new node
- move the mempool.dat to the old node again and check that the mempool.dat can be deserialized properly (obviously without the unbroadcast set)
Useful skills:
Basic understanding of the Bitcoin Core mempool, and the functional test framwork.
Want to work on this issue?
The purpose of the good first issue
label is to highlight which issues are suitable for a new contributor without a deep understanding of the codebase.
You do not need to request permission to start working on this. You are encouraged to comment on the issue if you are planning to work on it. This will help other contributors monitor which issues are actively being addressed and is also an effective way to request assistance if and when you need it.
For guidance on contributing, please read CONTRIBUTING.md before opening your pull request.