This release includes important bug fixes related to subtle interactions related to re-orgs and the UTXO set cache. These fixed are considered security critical.
This release also includes implementations of invalidateblock and reconsiderblock which can be useful in helping nodes that were afflicted by the aforementioned bugs to recover without needing to resync the entire chain.
WIth this release, btcd now also implements the testmempoolaccept RPC which can be useful to check a transaction candidate for validity from a policy and conflict perspective before broadcasting. Along the way, we've added some additional policy checks that exist in other Bitcoin full node implementations.
This release also contains fixes to some parsing issues discovered via fuzz testing.
Finally, as mentioned above release includes important security fixes, with full details to be disclosed in 90 days.
What's Changed
- Fix some typos by @Thabokani in https://github.com/btcsuite/btcd/pull/2085
- Fix some typos by @vuittont60 in https://github.com/btcsuite/btcd/pull/2098
- support
testmempoolacceptfor bothbitcoindandbtcdby @yyforyongyu in https://github.com/btcsuite/btcd/pull/2053 - rpcclient: make sure batch requests are GCed by @yyforyongyu in https://github.com/btcsuite/btcd/pull/2105
- refactor: add
make helpto display the usage for project Makefile by @Halimao in https://github.com/btcsuite/btcd/pull/2107 - blockchain: set the lastflushtime when setting the lastflushhash by @kcalvinalvin in https://github.com/btcsuite/btcd/pull/2089
- Added 'include_unsafe' option to FundRawTransaction by @nikicat in https://github.com/btcsuite/btcd/pull/2119
- netsync: don't update mempool/fee estimator unless we're synced up by @kcalvinalvin in https://github.com/btcsuite/btcd/pull/2108
- feat: Expose newFutureError for developer friendliness by @devlzcode in https://github.com/btcsuite/btcd/pull/2112
- Add
gettxspendingprevoutforbtcdand fix version check by @yyforyongyu in https://github.com/btcsuite/btcd/pull/2125 - addrmgr: fix intermittent addrmanager_internal_test bug by @kcalvinalvin in https://github.com/btcsuite/btcd/pull/2131
- blockchain: don't rely on BlockHeightByHash for prune height calculations by @kcalvinalvin in https://github.com/btcsuite/btcd/pull/2122
- fix ioutil deprecated function by @theedtron in https://github.com/btcsuite/btcd/pull/2133
- blockchain: fix inconsistent utxocache and database on reorg by @kcalvinalvin in https://github.com/btcsuite/btcd/pull/2123
- blockchain: fix a bug where a duplicate entry is possible in the mapslice by @kcalvinalvin in https://github.com/btcsuite/btcd/pull/2134
- blockchain: always relock chainLock for subscription callbacks by @kcalvinalvin in https://github.com/btcsuite/btcd/pull/2128
- rpcclient: add detailed error types by @yyforyongyu in https://github.com/btcsuite/btcd/pull/2138
- Add check for maximum signature length in ecdsa.ParseDERSignature by @SulaimanAminuBarkindo in https://github.com/btcsuite/btcd/pull/2135
- build: bump version to v0.24.2-beta.rc1 by @Roasbeef in https://github.com/btcsuite/btcd/pull/2136
- wire: add method TxID to MsgTx by @ffranr in https://github.com/btcsuite/btcd/pull/2055
- fix typos by @mattn in https://github.com/btcsuite/btcd/pull/2100
- chore: remove trailing continue by @zhiqiangxu in https://github.com/btcsuite/btcd/pull/2091
- Convert
witnessToHexinto a methodToHexStringsonTxWitnessby @ffranr in https://github.com/btcsuite/btcd/pull/1991 - chore: fix some comments by @xiaoxiangxianzi in https://github.com/btcsuite/btcd/pull/2146
- btcclient+btcjson: defaultMaxFeeRate to BTC/kvB by @YusukeShimizu in https://github.com/btcsuite/btcd/pull/2142
- chore: fix typos by @xiaoxianBoy in https://github.com/btcsuite/btcd/pull/2150
- Add new serialized pubkey type by @ffranr in https://github.com/btcsuite/btcd/pull/2156
- blockchain: Add IsAncestor method to blockNode by @kcalvinalvin in https://github.com/btcsuite/btcd/pull/2153
- fix some comment by @zhiqiangxu in https://github.com/btcsuite/btcd/pull/2080
- chore: fix function names in comment by @goodfirm in https://github.com/btcsuite/btcd/pull/2163
- Update developer_resources.md by @youngxhui in https://github.com/btcsuite/btcd/pull/2158
- docs: fix config documentation for
AgentWhitelistby @youngjoon-lee in https://github.com/btcsuite/btcd/pull/2140 - release: add darwin-arm64 to target binaries by @kcalvinalvin in https://github.com/btcsuite/btcd/pull/2173
- chaincfg: update dnsseeds by @kcalvinalvin in https://github.com/btcsuite/btcd/pull/2174
- chore: fix some typos in comments by @oftenoccur in https://github.com/btcsuite/btcd/pull/2164
- chore: fix some function names by @MarkDaveny in https://github.com/btcsuite/btcd/pull/2180
- Update standardness rules congruent to Bitcoin Core by @ProofOfKeags in https://github.com/btcsuite/btcd/pull/2178
- blockchain, main: add and fix logs by @kcalvinalvin in https://github.com/btcsuite/btcd/pull/2182
- blockchain, fullblocktests, workmath, testhelper: add InvalidateBlock() method to BlockChain by @kcalvinalvin in https://github.com/btcsuite/btcd/pull/2155
- Added DecodeNoLimitGeneric to bech32.go by @MarcoEzekiel in https://github.com/btcsuite/btcd/pull/2186
- refactor: set strconv.ParseFloat bitsize to 64 by @lilasxie in https://github.com/btcsuite/btcd/pull/2062
- rpcclient/zmq: typo by @yosuzzy in https://github.com/btcsuite/btcd/pull/2184
- chore: fix some comments by @VitalikButerinEth in https://github.com/btcsuite/btcd/pull/2191
- Fix struct names by @coderwander in https://github.com/btcsuite/btcd/pull/2169
- blockchain: Add ReconsiderBlock() by @Crypt-iQ in https://github.com/btcsuite/btcd/pull/2196
- main, rpcclient, integration: add rpccalls for invalidate and reconsiderblock by @Crypt-iQ in https://github.com/btcsuite/btcd/pull/2197
- build: bump version to v0.24.2-beta by @Roasbeef in https://github.com/btcsuite/btcd/pull/2201
- rpcclient: update error str to match both versions by @yyforyongyu in https://github.com/btcsuite/btcd/pull/2205
New Contributors
- @Thabokani made their first contribution in https://github.com/btcsuite/btcd/pull/2085
- @vuittont60 made their first contribution in https://github.com/btcsuite/btcd/pull/2098
- @Halimao made their first contribution in https://github.com/btcsuite/btcd/pull/2107
- @nikicat made their first contribution in https://github.com/btcsuite/btcd/pull/2119
- @devlzcode made their first contribution in https://github.com/btcsuite/btcd/pull/2112
- @theedtron made their first contribution in https://github.com/btcsuite/btcd/pull/2133
- @SulaimanAminuBarkindo made their first contribution in https://github.com/btcsuite/btcd/pull/2135
- @mattn made their first contribution in https://github.com/btcsuite/btcd/pull/2100
- @zhiqiangxu made their first contribution in https://github.com/btcsuite/btcd/pull/2091
- @xiaoxiangxianzi made their first contribution in https://github.com/btcsuite/btcd/pull/2146
- @YusukeShimizu made their first contribution in https://github.com/btcsuite/btcd/pull/2142
- @xiaoxianBoy made their first contribution in https://github.com/btcsuite/btcd/pull/2150
- @goodfirm made their first contribution in https://github.com/btcsuite/btcd/pull/2163
- @youngxhui made their first contribution in https://github.com/btcsuite/btcd/pull/2158
- @youngjoon-lee made their first contribution in https://github.com/btcsuite/btcd/pull/2140
- @oftenoccur made their first contribution in https://github.com/btcsuite/btcd/pull/2164
- @MarkDaveny made their first contribution in https://github.com/btcsuite/btcd/pull/2180
- @ProofOfKeags made their first contribution in https://github.com/btcsuite/btcd/pull/2178
- @MarcoEzekiel made their first contribution in https://github.com/btcsuite/btcd/pull/2186
- @lilasxie made their first contribution in https://github.com/btcsuite/btcd/pull/2062
- @yosuzzy made their first contribution in https://github.com/btcsuite/btcd/pull/2184
- @VitalikButerinEth made their first contribution in https://github.com/btcsuite/btcd/pull/2191
- @coderwander made their first contribution in https://github.com/btcsuite/btcd/pull/2169
Full Changelog: https://github.com/btcsuite/btcd/compare/v0.24.0...v0.24.2