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 #2085
- Fix some typos by @vuittont60 in #2098
- support
testmempoolaccept
for bothbitcoind
andbtcd
by @yyforyongyu in #2053 - rpcclient: make sure batch requests are GCed by @yyforyongyu in #2105
- refactor: add
make help
to display the usage for project Makefile by @Halimao in #2107 - blockchain: set the lastflushtime when setting the lastflushhash by @kcalvinalvin in #2089
- Added 'include_unsafe' option to FundRawTransaction by @nikicat in #2119
- netsync: don't update mempool/fee estimator unless we're synced up by @kcalvinalvin in #2108
- feat: Expose newFutureError for developer friendliness by @devlzcode in #2112
- Add
gettxspendingprevout
forbtcd
and fix version check by @yyforyongyu in #2125 - addrmgr: fix intermittent addrmanager_internal_test bug by @kcalvinalvin in #2131
- blockchain: don't rely on BlockHeightByHash for prune height calculations by @kcalvinalvin in #2122
- fix ioutil deprecated function by @theedtron in #2133
- blockchain: fix inconsistent utxocache and database on reorg by @kcalvinalvin in #2123
- blockchain: fix a bug where a duplicate entry is possible in the mapslice by @kcalvinalvin in #2134
- blockchain: always relock chainLock for subscription callbacks by @kcalvinalvin in #2128
- rpcclient: add detailed error types by @yyforyongyu in #2138
- Add check for maximum signature length in ecdsa.ParseDERSignature by @SulaimanAminuBarkindo in #2135
- build: bump version to v0.24.2-beta.rc1 by @Roasbeef in #2136
- wire: add method TxID to MsgTx by @ffranr in #2055
- fix typos by @mattn in #2100
- chore: remove trailing continue by @zhiqiangxu in #2091
- Convert
witnessToHex
into a methodToHexStrings
onTxWitness
by @ffranr in #1991 - chore: fix some comments by @xiaoxiangxianzi in #2146
- btcclient+btcjson: defaultMaxFeeRate to BTC/kvB by @YusukeShimizu in #2142
- chore: fix typos by @xiaoxianBoy in #2150
- Add new serialized pubkey type by @ffranr in #2156
- blockchain: Add IsAncestor method to blockNode by @kcalvinalvin in #2153
- fix some comment by @zhiqiangxu in #2080
- chore: fix function names in comment by @goodfirm in #2163
- Update developer_resources.md by @youngxhui in #2158
- docs: fix config documentation for
AgentWhitelist
by @youngjoon-lee in #2140 - release: add darwin-arm64 to target binaries by @kcalvinalvin in #2173
- chaincfg: update dnsseeds by @kcalvinalvin in #2174
- chore: fix some typos in comments by @oftenoccur in #2164
- chore: fix some function names by @MarkDaveny in #2180
- Update standardness rules congruent to Bitcoin Core by @ProofOfKeags in #2178
- blockchain, main: add and fix logs by @kcalvinalvin in #2182
- blockchain, fullblocktests, workmath, testhelper: add InvalidateBlock() method to BlockChain by @kcalvinalvin in #2155
- Added DecodeNoLimitGeneric to bech32.go by @MarcoEzekiel in #2186
- refactor: set strconv.ParseFloat bitsize to 64 by @lilasxie in #2062
- rpcclient/zmq: typo by @yosuzzy in #2184
- chore: fix some comments by @VitalikButerinEth in #2191
- Fix struct names by @coderwander in #2169
- blockchain: Add ReconsiderBlock() by @Crypt-iQ in #2196
- main, rpcclient, integration: add rpccalls for invalidate and reconsiderblock by @Crypt-iQ in #2197
- build: bump version to v0.24.2-beta by @Roasbeef in #2201
- rpcclient: update error str to match both versions by @yyforyongyu in #2205
New Contributors
- @Thabokani made their first contribution in #2085
- @vuittont60 made their first contribution in #2098
- @Halimao made their first contribution in #2107
- @nikicat made their first contribution in #2119
- @devlzcode made their first contribution in #2112
- @theedtron made their first contribution in #2133
- @SulaimanAminuBarkindo made their first contribution in #2135
- @mattn made their first contribution in #2100
- @zhiqiangxu made their first contribution in #2091
- @xiaoxiangxianzi made their first contribution in #2146
- @YusukeShimizu made their first contribution in #2142
- @xiaoxianBoy made their first contribution in #2150
- @goodfirm made their first contribution in #2163
- @youngxhui made their first contribution in #2158
- @youngjoon-lee made their first contribution in #2140
- @oftenoccur made their first contribution in #2164
- @MarkDaveny made their first contribution in #2180
- @ProofOfKeags made their first contribution in #2178
- @MarcoEzekiel made their first contribution in #2186
- @lilasxie made their first contribution in #2062
- @yosuzzy made their first contribution in #2184
- @VitalikButerinEth made their first contribution in #2191
- @coderwander made their first contribution in #2169
Full Changelog: v0.24.0...v0.24.2