-
Notifications
You must be signed in to change notification settings - Fork 97
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
[0.5] btc: update btcd to fix critical block parsing failure #1897
[0.5] btc: update btcd to fix critical block parsing failure #1897
Conversation
on
with update:
So we definitely need this update on |
Interactive trades succeeding with:
The simnet-trade-tests passing:
|
github.com/btcsuite/btcd/btcec/v2 v2.2.0 | ||
github.com/btcsuite/btcd/btcutil v1.1.1 | ||
github.com/btcsuite/btcd/btcutil/psbt v1.1.3 | ||
github.com/btcsuite/btcd v0.23.2 |
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.
btcd review diff, 67 commits forward: btcsuite/btcd@bf64c8b...v0.23.2
combined diff: https://github.com/btcsuite/btcd/compare/bf64c8bdbbbf..v0.23.2
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 | ||
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f | ||
github.com/btcsuite/btcwallet v0.14.1-0.20220322205928-94c51d7bdbf9 | ||
github.com/btcsuite/btcwallet/wallet/txauthor v1.2.3 | ||
github.com/btcsuite/btcwallet v0.16.1 |
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.
btcwallet review diff, 49 commits forward: btcsuite/btcwallet@94c51d7...v0.16.1
combined diff: https://github.com/btcsuite/btcwallet/compare/94c51d7bdbf9..v0.16.1
This updates the btcd require to v0.23.2, which includes a critical fix to the wire package's block parsing code that resolves a failure to deserialize a block with a script witness item larger than 11000. There are now blocks on mainnet and testnet that cannot be deserialized with v0.23.1, meaning this is a critical fix for takers who need to find the maker's redeem transaction and pull the block containing the spending transaction. For SPV, only the matching block is pulled. For a full node RPC wallet, the blocks are pulled in sequence and each transaction is checked directly. As such, the issue affects both types of wallet clients. See mainnet block 0000000000000000000400a35a007e223a7fb8a622dc7b5aa5eaace6824291fb containing and enormous 998-of-999 tapscript multisig in txn 7393096d97bfee8660f4100ffd61874d62f9a65de9fb6acf740c4c386990ef73. See also testnet block 0000000000000032fcf519b61aad2b966348e3f2d27687b26277933cc9881965 containing taproot transaction 44692bc2da73192cd0b89bc7a43c0ce43578f6b3567bc945e46e6952e8ec5ca5. This also updates the btcwallet require from 0.15.1 to 0.16.1. This also adds a new test with the above mainnet block and transaction as test vectors.
c7b57fa
to
305a348
Compare
#1896 but for
release-v0.5
Unfortunately, the revision of btcd we were requiring for 0.5 seems to have the affected taproot processing code (i.e. tries to process witnesses v1). EDIT: It looks like all past revisions of btcd/wire are affected.
This PR creates a bigger dep update than the one in #1896 so I've gone through both interactive and simnet trade tests.