- #18593 Complete impl. of msg_merkleblock and wait_for_merkleblock (theStack)
- #18609 Remove REJECT message code (hebasto)
- #18584 Check that the version message does not leak the local address (MarcoFalke)
- #18597 Extend wallet_dump test to cover comments (MarcoFalke)
- #18596 Try once more when RPC connection fails on Windows (MarcoFalke)
- #18451 shift coverage from getunconfirmedbalance to getbalances (jonatack)
- #18631 appveyor: Disable functional tests for now (MarcoFalke)
- #18628 Add various low-level p2p tests (MarcoFalke)
- #18615 Avoid accessing free'd memory in validation_chainstatemanager_tests (MarcoFalke)
- #18571 fuzz: Disable debug log file (MarcoFalke)
- #18653 add coverage for bitcoin-cli -rpcwait (jonatack)
- #18660 Verify findCommonAncestor always initializes outputs (ryanofsky)
- #17669 Have coins simulation test also use CCoinsViewDB (jamesob)
- #18662 Replace gArgs with local argsman in bench (MarcoFalke)
- #18641 Create cached blocks not in the future (MarcoFalke)
- #18682 fuzz: http_request workaround for libevent < 2.1.1 (theStack)
- #18692 Bump timeout in wallet_import_rescan (MarcoFalke)
- #18695 Replace boost::mutex with std::mutex (hebasto)
- #18633 Properly raise FailedToStartError when rpc shutdown before warmup finished (MarcoFalke)
- #18675 Don't initialize PrecomputedTransactionData in txvalidationcache tests (jnewbery)
- #18691 Add wait_for_cookie_credentials() to framework for rpcwait tests (jonatack)
- #18672 Add further BIP37 size limit checks to p2p_filter.py (theStack)
- #18721 Fix linter issue (hebasto)
- #18384 More specific feature_segwit test error messages and fixing incorrect comments (gzhao408)
- #18575 bench: Remove requirement that all benches use same testing setup (MarcoFalke)
- #18690 Check object hashes in wait_for_getdata (robot-visions)
- #18712 display command line options passed to send_cli() in debug log (jonatack)
- #18745 Check submitblock return values (MarcoFalke)
- #18756 Use wait_for_getdata() in p2p_compactblocks.py (theStack)
- #18724 Add coverage for -rpcwallet cli option (jonatack)
- #18754 bench: Add caddrman benchmarks (vasild)
- #18585 Use zero-argument super() shortcut (Python 3.0+) (theStack)
- #18688 fuzz: Run in parallel (MarcoFalke)
- #18770 Remove raw-tx byte juggling in mempool_reorg (MarcoFalke)
- #18805 Add missing sync_all to wallet_importdescriptors.py (achow101)
- #18759 bench: Start nodes with -nodebuglogfile (MarcoFalke)
- #18774 Added test for upgradewallet RPC (brakmic)
- #18485 Add mempool_updatefromblock.py (hebasto)
- #18727 Add CreateWalletFromFile test (ryanofsky)
- #18726 Check misbehavior more independently in p2p_filter.py (robot-visions)
- #18825 Fix message for ECC_InitSanityCheck test (fanquake)
- #18576 Use unittest for test_framework unit testing (gzhao408)
- #18828 Strip down previous releases boilerplate (MarcoFalke)
- #18617 Add factor option to adjust test timeouts (brakmic)
- #18855 feature_backwards_compatibility.py test downgrade after upgrade (achow101)
- #18864 Add v0.16.3 backwards compatibility test, bump v0.19.0.1 to v0.19.1 (Sjors)
- #18917 fuzz: Fix vector size problem in system fuzzer (brakmic)
- #18901 fuzz: use std::optional for sep_pos_opt variable (brakmic)
- #18888 Remove RPCOverloadWrapper boilerplate (MarcoFalke)
- #18952 Avoid os-dependent path (fametrano)
- #18938 Fill fuzzing coverage gaps for functions in consensus/validation.h, primitives/block.h and util/translation.h (practicalswift)
- #18986 Add capability to disable RPC timeout in functional tests (rajarshimaitra)
- #18530 Add test for -blocksonly and -whitelistforcerelay param interaction (glowang)
- #19014 Replace TEST_PREVIOUS_RELEASES env var with test_framework option (MarcoFalke)
- #19052 Don't limit fuzzing inputs to 1 MB for afl-fuzz (now: ∞ ∀ fuzzers) (practicalswift)
- #19060 Remove global wait_until from p2p_getdata (MarcoFalke)
- #18926 Pass ArgsManager into getarg_tests (glowang)
- #19110 Explain that a bug should be filed when the tests fail (MarcoFalke)
- #18965 Implement base58_decode (10xcryptodev)
- #16564 Always define the raii_event_tests test suite (candrews)
- #19122 Add missing sync_blocks to wallet_hd (MarcoFalke)
- #18875 fuzz: Stop nodes in process_message* fuzzers (MarcoFalke)
- #18974 Check that invalid witness destinations can not be imported (MarcoFalke)
- #18210 Type hints in Python tests (kiminuo)
- #19159 Make valgrind.supp work on aarch64 (MarcoFalke)
- #19082 Moved the CScriptNum asserts into the unit test in script.py (gillichu)
- #19172 Do not swallow flake8 exit code (hebasto)
- #19188 Avoid overwriting the NodeContext member of the testing setup [-Wshadow-field] (MarcoFalke)
- #18890 disconnect_nodes should warn if nodes were already disconnected (robot-visions)
- #19227 change blacklist to blocklist (TrentZ)
- #19230 Move base58 to own module to break circular dependency (sipa)
- #19083 msg_mempool, fRelay, and other bloomfilter tests (gzhao408)
- #16756 Connection eviction logic tests (mzumsande)
- #19177 Fix and clean p2p_invalid_messages functional tests (troygiorshev)
- #19264 Don't import asyncio to test magic bytes (jnewbery)
- #19178 Make mininode_lock non-reentrant (jnewbery)
- #19153 Mempool compatibility test (S3RK)
- #18434 Add a test-security target and run it in CI (fanquake)
- #19252 Wait for disconnect in disconnect_p2ps + bloomfilter test followups (gzhao408)
- #19298 Add missing sync_blocks (MarcoFalke)
- #19304 Check that message sends successfully when header is split across two buffers (troygiorshev)
- #19208 move sync_blocks and sync_mempool functions to test_framework.py (ycshao)
- #19198 Check that peers with forcerelay permission are not asked to feefilter (MarcoFalke)
- #19351 add two edge case tests for CSubNet (vasild)
- #19272 net, test: invalid p2p messages and test framework improvements (jonatack)
- #19348 Bump linter versions (duncandean)
- #19366 Provide main(…) function in fuzzer. Allow building uninstrumented harnesses with --enable-fuzz (practicalswift)
- #19412 move TEST_RUNNER_EXTRA into native tsan setup (fanquake)
- #19368 Improve functional tests compatibility with BSD/macOS (S3RK)
- #19028 Set -logthreadnames in unit tests (MarcoFalke)
- #18649 Add std::locale::global to list of locale dependent functions (practicalswift)
- #19140 Avoid fuzzer-specific nullptr dereference in libevent when handling PROXY requests (practicalswift)
- #19214 Auto-detect SHA256 implementation in benchmarks (sipa)
- #19353 Fix mistakenly swapped "previous" and "current" lock orders (hebasto)
- #19533 Remove unnecessary cs_mains in denialofservice_tests (jnewbery)
- #19423 add functional test for txrelay during and after IBD (gzhao408)
- #16878 Fix non-deterministic coverage of test DoS_mapOrphans (davereikher)
- #19548 fuzz: add missing overrides to signature_checker (jonatack)
- #19562 Fix fuzzer compilation on macOS (freenancial)
- #19370 Static asserts for consistency of fee defaults (domob1812)
- #19599 clean message_count and last_message (troygiorshev)
- #19597 test decodepsbt fee calculation (count input value only once per UTXO) (theStack)
- #18011 Replace current benchmarking framework with nanobench (martinus)
- #19489 Fail wait_until early if connection is lost (MarcoFalke)
- #19340 Preserve the LockData initial state if "potential deadlock detected" exception thrown (hebasto)
- #19632 Catch decimal.InvalidOperation from TestNodeCLI#send_cli (Empact)
- #19098 Remove duplicate NodeContext hacks (ryanofsky)
- #19649 Restore test case for p2p transaction blinding (instagibbs)
- #19657 Wait until is_connected in add_p2p_connection (MarcoFalke)
- #19631 Wait for 'cmpctblock' in p2p_compactblocks when it is expected (Empact)
- #19674 use throwaway _ variable for unused loop counters (theStack)
- #19709 Fix 'make cov' with clang (hebasto)
- #19564 p2p_feefilter improvements (logging, refactoring, speedup) (theStack)
- #19756 add sync_all to fix race condition in wallet groups test (kallewoof)
- #19727 Removing unused classes from p2p_leak.py (dhruv)
- #19722 Add test for getblockheader verboseness (torhte)
- #19659 Add a seed corpus generation option to the fuzzing test_runner (darosior)
- #19775 Activate segwit in TestChain100Setup (MarcoFalke)
- #19760 Remove confusing mininode terminology (jnewbery)
- #19752 Update wait_until usage in tests not to use the one from utils (slmtpz)
- #19839 Set appveyor VM version to previous Visual Studio 2019 release (sipsorcery)
- #19830 Add tsan supp for leveldb::DBImpl::DeleteObsoleteFiles (MarcoFalke)
- #19710 bench: Prevent thread oversubscription and decreases the variance of result values (hebasto)
- #19842 Update the vcpkg checkout commit ID in appveyor config (sipsorcery)
- #19507 Expand functional zmq transaction tests (instagibbs)
- #19816 Rename wait until helper to wait_until_helper (MarcoFalke)
- #19859 Fixes failing functional test by changing version (n-thumann)
- #19887 Fix flaky wallet_basic test (fjahr)
- #19897 Change FILE_CHAR_BLOCKLIST to FILE_CHARS_DISALLOWED (verretor)
- #19800 Mockwallet (MarcoFalke)
- #19922 Run rpc_txoutproof.py even with wallet disabled (MarcoFalke)
- #19936 batch rpc with params (instagibbs)
- #19971 create default wallet in extended tests (Sjors)
- #19781 add parameterized constructor for msg_sendcmpct() (theStack)
- #19963 Clarify blocksonly whitelistforcerelay test (t-bast)
- #20022 Use explicit p2p objects where available (guggero)
- #20028 Check that invalid peer traffic is accounted for (MarcoFalke)
- #20004 Add signet witness commitment section parse tests (MarcoFalke)
- #20034 Get rid of default wallet hacks (ryanofsky)
- #20069 Mention commit id in scripted diff error (laanwj)
- #19947 Cover change_type option of "walletcreatefundedpsbt" RPC (guggero)
- #20126 p2p_leak_tx.py improvements (use MiniWallet, add p2p_lock acquires) (theStack)
- #20129 Don't export in6addr_loopback (vasild)
- #20131 Remove unused nVersion=1 in p2p tests (MarcoFalke)
- #20161 Minor Taproot follow-ups (sipa)
- #19401 Use GBT to get block versions correct (luke-jr)
- #20159 mining_getblocktemplate_longpoll.py improvements (use MiniWallet, add logging) (theStack)
- #20039 Convert amounts from float to decimal (prayank23)
- #20112 Speed up wallet_resendwallettransactions with mockscheduler RPC (MarcoFalke)
- #20247 fuzz: Check for addrv1 compatibility before using addrv1 serializer. Fuzz addrv2 serialization (practicalswift)
- #20167 Add test for -blockversion (MarcoFalke)
- #19877 Clarify rpc_net & p2p_disconnect_ban functional tests (amitiuttarwar)
- #20258 Remove getnettotals/getpeerinfo consistency test (jnewbery)
- #20242 fuzz: Properly initialize PrecomputedTransactionData (MarcoFalke)
- #20262 Skip --descriptor tests if sqlite is not compiled (achow101)
- #18788 Update more tests to work with descriptor wallets (achow101)
- #20289 fuzz: Check for addrv1 compatibility before using addrv1 serializer/deserializer on CService (practicalswift)
- #20290 fuzz: Fix DecodeHexTx fuzzing harness issue (practicalswift)
- #20245 Run script_assets_test even if built --with-libs=no (MarcoFalke)
- #20300 fuzz: Add missing ECC_Start to descriptor_parse test (S3RK)
- #20283 Only try witness deser when checking for witness deser failure (MarcoFalke)
- #20303 fuzz: Assert expected DecodeHexTx behaviour when using legacy decoding (practicalswift)
- #20316 Fix wallet_multiwallet test issue on Windows (MarcoFalke)
- #20326 Fix ecdsa_verify in test framework (stepansnigirev)
- #20328 cirrus: Skip tasks on the gui repo main branch (MarcoFalke)
- #20355 fuzz: Check for addrv1 compatibility before using addrv1 serializer/deserializer on CSubNet (practicalswift)
- #20332 Mock IBD in net_processing fuzzers (MarcoFalke)
- #20218 Suppress epoll_ctl data race (MarcoFalke)
- #20375 fuzz: Improve coverage for CPartialMerkleTree fuzzing harness (practicalswift)
- #19669 contrib: Fixup valgrind suppressions file (MarcoFalke)
- #18879 valgrind: remove outdated suppressions (fanquake)
- #19226 Add BerkeleyDatabase tsan suppression (MarcoFalke)
- #20379 Remove no longer needed UBSan suppression (float divide-by-zero in validation.cpp) (practicalswift)
- #18190, #18736, #18744, #18775, #18783, #18867, #18994, #19065,
#19067, #19143, #19222, #19247, #19286, #19296, #19379, #19934,
#20188, #20395 Add fuzzing harnessses (practicalswift) - #18638 Use mockable time for ping/pong, add tests (MarcoFalke)
- #19951 CNetAddr scoped ipv6 test coverage, rename scopeId to m_scope_id (jonatack)
- #20027 Use mockable time everywhere in net_processing (sipa)
- #19105 Add Muhash3072 implementation in Python (fjahr)
- #18704, #18752, #18753, #18765, #18839, #18866, #18873, #19022,
#19023, #19429, #19552, #19778, #20176, #20179, #20214, #20292,
#20299, #20322 Fix intermittent test issues (MarcoFalke) - #20390 CI/Cirrus: Skip merge_base step for non-PRs (luke-jr)
- #18634 ci: Add fuzzbuzz integration configuration file (practicalswift)
- #18591 Add C++17 build to Travis (sipa)
- #18581, #18667, #18798, #19495, #19519, #19538 CI improvements (hebasto)
- #18683, #18705, #18735, #18778, #18799, #18829, #18912, #18929,
#19008, #19041, #19164, #19201, #19267, #19276, #19321, #19371,
#19427, #19730, #19746, #19881, #20294, #20339, #20368 CI improvements (MarcoFalke) - #20489, #20506 MSVC CI improvements (sipsorcery)
Miscellaneous
- #18713 scripts: Add macho stack canary check to security-check.py (fanquake)
- #18629 scripts: Add pe .reloc section check to security-check.py (fanquake)
- #18437 util: Detect posix_fallocate() instead of assuming (vasild)
- #18413 script: Prevent ub when computing abs value for num opcode serialize (pierreN)
- #18443 lockedpool: avoid sensitive data in core files (FreeBSD) (vasild)
- #18885 contrib: Move optimize-pngs.py script to the maintainer repo (MarcoFalke)
- #18317 Serialization improvements step 6 (all except wallet/gui) (sipa)
- #16127 More thread safety annotation coverage (ajtowns)
- #19228 Update libsecp256k1 subtree (sipa)
- #19277 util: Add assert identity function (MarcoFalke)
- #19491 util: Make assert work with any value (MarcoFalke)
- #19205 script: previous_release.sh rewritten in python (bliotti)
- #15935 Add
/settings.json persistent settings storage (ryanofsky) - #19439 script: Linter to check commit message formatting (Ghorbanian)
- #19654 lint: Improve commit message linter in travis (fjahr)
- #15382 util: Add runcommandparsejson (Sjors)
- #19614 util: Use have_fdatasync to determine fdatasync() use (fanquake)
- #19813 util, ci: Hard code previous release tarball checksums (hebasto)
- #19841 Implement Keccak and SHA3_256 (sipa)
- #19643 Add -netinfo peer connections dashboard (jonatack)
- #15367 feature: Added ability for users to add a startup command (benthecarman)
- #19984 log: Remove static log message "Initializing chainstate Chainstate [ibd] @ height -1 (null)" (practicalswift)
- #20092 util: Do not use gargs global in argsmanager member functions (hebasto)
- #20168 contrib: Fix gen_key_io_test_vectors.py imports (MarcoFalke)
- #19624 Warn on unknown rw_settings (MarcoFalke)
- #20257 Update secp256k1 subtree to latest master (sipa)
- #20346 script: Modify security-check.py to use "==" instead of "is" for literal comparison (tylerchambers)
- #18881 Prevent UB in DeleteLock() function (hebasto)
- #19180, #19189, #19190, #19220, #19399 Replace RecursiveMutex with Mutex (hebasto)
- #19347 Make cs_inventory nonrecursive (jnewbery)
- #19773 Avoid recursive lock in IsTrusted (promag)
- #18790 Improve thread naming (hebasto)
- #20140 Restore compatibility with old CSubNet serialization (sipa)
- #17775 DecodeHexTx: Try case where txn has inputs first (instagibbs)
Documentation
- #18502 Update docs for getbalance (default minconf should be 0) (uzyn)
- #18632 Fix macos comments in release-notes (MarcoFalke)
- #18645 Update thread information in developer docs (jnewbery)
- #18709 Note why we can't use thread_local with glibc back compat (fanquake)
- #18410 Improve commenting for coins.cpp|h (jnewbery)
- #18157 fixing init.md documentation to not require rpcpassword (jkcd)
- #18739 Document how to fuzz Bitcoin Core using Honggfuzz (practicalswift)
- #18779 Better explain GNU ld's dislike of ld64's options (fanquake)
- #18663 Mention build docs in README.md (saahilshangle)
- #18810 Update rest info on block size and json (chrisabrams)
- #18939 Add c++17-enable flag to fuzzing instructions (mzumsande)
- #18957 Add a link from ZMQ doc to ZMQ example in contrib/ (meeDamian)
- #19058 Drop protobuf stuff (hebasto)
- #19061 Add link to Visual Studio build readme (maitrebitcoin)
- #19072 Expand section on Getting Started (MarcoFalke)
- #18968 noban precludes maxuploadtarget disconnects (MarcoFalke)
- #19005 Add documentation for 'checklevel' argument in 'verifychain' RPC… (kcalvinalvin)
- #19192 Extract net permissions doc (MarcoFalke)
- #19071 Separate repository for the gui (MarcoFalke)
- #19018 fixing description of the field sequence in walletcreatefundedpsbt RPC method (limpbrains)
- #19367 Span pitfalls (sipa)
- #19408 Windows WSL build recommendation to temporarily disable Win32 PE support (sipsorcery)
- #19407 explain why passing -mlinker-version is required when cross-compiling (fanquake)
- #19452 afl fuzzing comment about afl-gcc and afl-g++ (Crypt-iQ)
- #19258 improve subtree check instructions (Sjors)
- #19474 Use precise permission flags where possible (MarcoFalke)
- #19494 CONTRIBUTING.md improvements (jonatack)
- #19268 Add non-thread-safe note to FeeFilterRounder::round() (hebasto)
- #19547 Update macOS cross compilation dependencies for Focal (hebasto)
- #19617 Clang 8 or later is required with FORCE_USE_SYSTEM_CLANG (fanquake)
- #19639 Remove Reference Links #19582 (RobertHosking)
- #19605 Set CC_FOR_BUILD when building on OpenBSD (fanquake)
- #19765 Fix getmempoolancestors RPC result doc (MarcoFalke)
- #19786 Remove label from good first issue template (MarcoFalke)
- #19646 Updated outdated help command for getblocktemplate (jakeleventhal)
- #18817 Document differences in bitcoind and bitcoin-qt locale handling (practicalswift)
- #19870 update PyZMQ install instructions, fix zmq_sub.py file permissions (jonatack)
- #19903 Update build-openbsd.md with GUI support (grubles)
- #19241 help: Generate checkpoint height from chainparams (luke-jr)
- #18949 Add CODEOWNERS file to automatically nominate PR reviewers (adamjonas)
- #20014 Mention signet in -help output (hebasto)
- #20015 Added default signet config for linearize script (gr0kchain)
- #19958 Better document features of feelers (naumenkogs)
- #19871 Clarify scope of eviction protection of outbound block-relay peers (ariard)
- #20076 Update and improve files.md (hebasto)
- #20107 Collect release-notes snippets (MarcoFalke)
- #20109 Release notes and followups from 19339 (glozow)
- #20090 Tiny followups to new getpeerinfo connection type field (amitiuttarwar)
- #20152 Update wallet files in files.md (hebasto)
- #19124 Document ALLOW_HOST_PACKAGES dependency option (skmcontrib)
- #20271 Document that wallet salvage is experimental (MarcoFalke)
- #20281 Correct getblockstats documentation for (sw)total_weight (shesek)
- #20279 release process updates/fixups (jonatack)
- #20238 Missing comments for signet parameters (decryp2kanon)
- #20756 Add missing field (permissions) to the getpeerinfo help (amitiuttarwar)
- #20668 warn that incoming conns are unlikely when not using default ports (adamjonas)
- #19961 tor.md updates (jonatack)
- #19050 Add warning for rest interface limitation (fjahr)
- #19390 doc/REST-interface: Remove stale info (luke-jr)
- #19344 docs: update testgen usage example (Bushstar)
Credits
Thanks to everyone who directly contributed to this release:
- 10xcryptodev
- Aaron Clauson
- Aaron Hook
- Adam Jonas
- Adam Soltys
- Adam Stein
- Akio Nakamura
- Alex Willmer
- Amir Ghorbanian
- Amiti Uttarwar
- Andrew Chow
- Andrew Toth
- Anthony Fieroni
- Anthony Towns
- Antoine Poinsot
- Antoine Riard
- Ben Carman
- Ben Woosley
- Benoit Verret
- Brian Liotti
- Bushstar
- Calvin Kim
- Carl Dong
- Chris Abrams
- Chris L
- Christopher Coverdale
- codeShark149
- Cory Fields
- Craig Andrews
- Damian Mee
- Daniel Kraft
- Danny Lee
- David Reikher
- DesWurstes
- Dhruv Mehta
- Duncan Dean
- Elichai Turkel
- Elliott Jin
- Emil Engler
- Ethan Heilman
- eugene
- Fabian Jahr
- fanquake
- Ferdinando M. Ametrano
- freenancial
- furszy
- Gillian Chu
- Gleb Naumenko
- Glenn Willen
- Gloria Zhao
- glowang
- gr0kchain
- Gregory Sanders
- grubles
- gzhao408
- Harris
- Hennadii Stepanov
- Hugo Nguyen
- Igor Cota
- Ivan Metlushko
- Ivan Vershigora
- Jake Leventhal
- James O'Beirne
- Jeremy Rubin
- jgmorgan
- Jim Posen
- “jkcd”
- jmorgan
- John Newbery
- Johnson Lau
- Jon Atack
- Jonas Schnelli
- Jonathan Schoeller
- João Barbosa
- Justin Moon
- kanon
- Karl-Johan Alm
- Kiminuo
- Kristaps Kaupe
- lontivero
- Luke Dashjr
- Marcin Jachymiak
- MarcoFalke
- Martin Ankerl
- Martin Zumsande
- maskoficarus
- Matt Corallo
- Matthew Zipkin
- MeshCollider
- Miguel Herranz
- MIZUTA Takeshi
- mruddy
- Nadav Ivgi
- Neha Narula
- Nicolas Thumann
- Niklas Gögge
- Nima Yazdanmehr
- nsa
- nthumann
- Oliver Gugger
- pad
- pasta
- Peter Bushnell
- pierrenn
- Pieter Wuille
- practicalswift
- Prayank
- Raúl Martínez (RME)
- RandyMcMillan
- Rene Pickhardt
- Riccardo Masutti
- Robert
- Rod Vagg
- Roy Shao
- Russell Yanofsky
- Saahil Shangle
- sachinkm77
- saibato
- Samuel Dobson
- sanket1729
- Sebastian Falbesoner
- Seleme Topuz
- Sishir Giri
- Sjors Provoost
- skmcontrib
- Stepan Snigirev
- Stephan Oeste
- Suhas Daftuar
- t-bast
- Tom Harding
- Torhte Butler
- TrentZ
- Troy Giorshev
- tryphe
- Tyler Chambers
- U-Zyn Chua
- Vasil Dimov
- wiz
- Wladimir J. van der Laan
As well as to everyone that helped with translations on
Transifex.