-
Notifications
You must be signed in to change notification settings - Fork 37.7k
wallet: Remove -zapwallettxes #19671
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This seems reasonable if |
It looks like that's not even a reachable code path as |
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
Concept ACK Removing all transactions from the wallet a sledge-hammer option. If there is any need for this it should be the wallet maintenance tool. But if its use is fully replaced by If we do this, please keep the option as hidden option and exit with an error explaining to use |
b94c431
to
a03f330
Compare
To forcibly remove a particular transaction, people can use |
Concept ACK |
1 similar comment
Concept ACK |
Let's move forward with this and not draw out the discussion too much. I think we can just remove this. I received no strong disagreements on my twitter/mastodon posts. We can always add it back (to the wallet tool, as does #19700) if we receive reports of people missing it. |
a03f330
to
6738e34
Compare
Concept ACK Removing likely broken likely unused options make perfect sense :) Also: +6 −182 gives a warm fuzzy feeling. |
Code review ACK 6738e34 |
ACK 6738e34 -- patch looks correct Restarted Travis to get rid of timeout |
Looks good, but there's still Can you also add a release note after you've dropped them? |
-zapwallettxes is made a hidden option to inform users that it is removed and they should be using abandontransaction to do the stuck transaction thing.
Done and done. |
6738e34
to
3340dba
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK 3340dba
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 3340dba - remaining manpage references will get cleaned up pre-release.
3340dba Remove -zapwallettxes (Andrew Chow) Pull request description: It's not clear what use there is to keeping `-zapwallettxes` given that it's intended usage has been superseded by `abandontransaction`. So this removes it outright. Alternative to bitcoin#19700 ACKs for top commit: meshcollider: utACK 3340dba fanquake: ACK 3340dba - remaining manpage references will get cleaned up pre-release. Tree-SHA512: 3e58e1ef6f4f94894d012b93e88baba3fb9c2ad75b8349403f9ce95b80b50b0b4f443cb623cf76c355930db109f491b3442be3aa02972e841450ce52cf545fc8
I don't see any problem in removing this. But the release note asserts that this functionality was added for the purpose of replacing transactions that didn't have RBF. Rather, the functionality was added to help rescue wallets that had been messed up by malleability attack: #3659 (comment) It's my (non-researched) belief that the malleability motivation is no longer a reason to keep the functionality, because although wallets with non-segwit coins are still malleability-vulnerable, I believe other changes mean that conflicted transactions can just be abandoned. If there is another rash of malleability attacks, users will have to be advised to use abandon on the unsuccessful mutants rather than be advised to zap as was the case when these attacks were an issue, along with spendzeroconfchange=false (or a narrower version that only avoids vulnerable inputs, if one is ever implemented). |
Thanks for pointing that out, I've updated the release notes draft. |
Summary: -zapwallettxes is made a hidden option to inform users that it is removed and they should be using abandontransaction to do the stuck transaction thing. This is a backport of [[bitcoin/bitcoin#19671 | core#19671]] Test Plan: `ninja all check-all` Reviewers: #bitcoin_abc, Fabien Reviewed By: #bitcoin_abc, Fabien Subscribers: Fabien Differential Revision: https://reviews.bitcoinabc.org/D10160
refs: [bitcoin#19290](bitcoin/bitcoin#19290) - Move BDB specific things into bdb.{cpp/h} refs: [bitcoin#19292](bitcoin/bitcoin#19292) - refactor Read, Write, Erase, and Exists into non-template functions refs: [bitcoin#19308](bitcoin/bitcoin#19308) - BerkeleyBatch Handle cursor internally refs: [bitcoin#19324](bitcoin/bitcoin#19324) - Move BerkeleyBatch static functions to BerkeleyDatabase refs: [bitcoin#19320](bitcoin/bitcoin#19320) - Replace CDataStream& with CDataStream&& where appropriate refs: [bitcoin#19325](bitcoin/bitcoin#19325) - Refactor BerkeleyDatabase to introduce DatabaseBatch abstract class refs: [bitcoin#19334](bitcoin/bitcoin#19334) - Introduce WalletDatabase abstract class refs: [bitcoin#19102](bitcoin/bitcoin#19102) - Introduce and use DummyDatabase instead of dummy BerkeleyDatabase refs: [bitcoin#19085](bitcoin/bitcoin#19085) - clean-up PeriodicFlush() refs: [bitcoin#18923](bitcoin/bitcoin#18923) - Never schedule MaybeCompactWalletDB when -flushwallet is off refs: [bitcoin#19335](bitcoin/bitcoin#19335) - Cleanup and separate BerkeleyDatabase and BerkeleyBatch drop salvage wallet from UI remove BDB version from Information Tab refs: [bitcoin#19671](bitcoin/bitcoin#19671) - Remove -zapwallettxes refs: [bitcoin#19261](bitcoin/bitcoin#19261) - Drop ::HasWallets()
It's not clear what use there is to keeping
-zapwallettxes
given that it's intended usage has been superseded byabandontransaction
. So this removes it outright.Alternative to #19700