Goals of this issue
- Track all ongoing work on assumeutxo until mainnet params are included in a release
- Categorize the work into critical/optional for mainnet readiness
- Conceptual discussion on assumeutxo topics that may or may not be critical for mainnet readiness
The initial categorizations here are suggestions and changes should be discussed here in the issue. Obviously let me know if I missed anything.
Critical Issues/PRs
- #28553 - The mainnet params themselves
- #29519 - Stop syncing non-snapshot chain from peers that are already connected
- #30598 - Resolving #30514
- #30320 - Deny loading if snapshot is not in best header chain
- #29996 - Bugfix and additional test coverage
- #29720 - RPC fixes for missing values, addressing #29328
- #29612 (which fixes #25675) - Improves size of dump, critical because it is not backwards compatible
- #29726 - Fix -reindex behavior
- #29370 - Get rid of faked nTx and nChainTx values (closing issues discussed in #29261)
- #30267 - Prevent issues from loading dump for invalid block
Optional Issues/PRs
(Attempted a rough ordering by importance)
- #28616 (which fixes #28598) - Show background chain funds as not fully confirmed in GUI
- #30455 - Additional wallet tests
- #30214 - First part of #28608
- #29993 - Improve usability
- #28608 (draft) - State and locking cleanup
- #29553 -
dumptxoutset
with height param - #30636
- #30497
- #30403 - Additional test coverage and cleanup
- #30388 - Optimization for testing performance
- (obsolete) #28670 - Improved error handling for
loadtxoutset
- #29478 - Additional test coverage for
loadtxoutset
- #29617 - Additional test coverage
- #29973 - Additional test coverage
- #29428 - Additional test coverage
Critical conceptual discussion
- #30288
- Agreement on a rule of thumb which height we choose once there is consensus for mainnet readiness, i.e. how to choose the height for #28553 once we are close to an upcoming release. I think the earlier we discuss this the better, so that this doesn’t get in the way later.
Optional conceptual discussion
These were taken from #28553 and the original assumeutxo PR.
- Distribution of snapshots - This recently came up here and here. There are multiple levels to this topic but I believe that this is not critical either way. If it were critical then, at the most basic level, we would probably provide an “official” torrent/download link for the dump with the release. It would be great if one or more contributors could do that (@Sjors did this in #28516 for example) and are willing to maintain this for a reasonable amount of time but it is not critical IMO because anyone can use
dumptxoutset
to recreate the dump and then share it any way they like. So there is no need to provide this service from within the project. I think anyone who plans to distribute the dump to other users (think of downstream projects like BTCPayServer, Raspiblitz, Umbrel, Greenlight etc.) should validate the dump like this at least once anyway. And there may even be options for distribution possible for downstream projects that we can not even think of right now but if we don’t make the feature available they can also not be explored. - Usage of MuHash #27669 - While it would be nice to have this I don’t think it is blocking because this can still be introduced later without invalidating existing dumps.
- Make params configurable/not hardcoded params - I think it would be good to stay on the safe side for now and make the feature available to the public as originally planned. If the feature sees wide adoption and requests for more flexibility come in that would be the right point to explore this further.
- Should old hashes be removed from source code at some point? - Obviously not relevant for the first mainnet params
- How frequently should we update testnet/signet params and is there any way to deal with the possibility that these chains may get nuked at some point?