aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-12-17Merge bitcoin/bitcoin#31469: [28.x] 28.1rc2 backportsv28.1rc2Ava Chow
5576618152aff0358aeb1c5189422882b419de2d doc: update release notes for 28.1rc2 (Ava Chow) 01fe07a2cea07b6e72a33a5d230ec16118b9a26b examples: Generate example bitcoin.conf (Ava Chow) 7ddfcf32da7a0bfb40bc3b4f5d28ac078fd1c5d7 doc: Generate manpages (Ava Chow) e0b27b234cb31f53ddd51a923d8f5d0a30f92375 build: Bump to 28.1rc2 (Ava Chow) bdc6b3e531a107c52d73f72ddf788114381e241c Add release note for #31223 (Martin Zumsande) a0585b6087ac2f3e54efa50795cba83caeac5ab0 test: add functional test for -port behavior (Martin Zumsande) bbde830b97000b8bbfbaefc54504f659a34f651c net, init: derive default onion port if a user specified a -port (Martin Zumsande) 227642d5afeb9918269192500d1a41bcb64b51c5 test: fix MIN macro-redefinition (0xb10c) b8112cf4226265a5b43e2b556ce9fa97caf3c28a util: use explicit cast in MultiIntBitSet::Fill() (Vasil Dimov) 2835158be0410fe82a56752d9ffe60e2a77dc0cd fuzz: add cstdlib to FuzzedDataProvider (fanquake) Pull request description: Backports: * #31223 * #31448 * #31431 * #31419 ACKs for top commit: hodlinator: re-ACK 5576618152aff0358aeb1c5189422882b419de2d Tree-SHA512: f99f3c5960f18f6894832c5f9a827f97fd3c6e086670341760ce1b77c304d53136492371c59148f3b4bbcfe2d5428c835fe632c61b229b40f1f6f6cf2b72cdca
2024-12-13doc: update release notes for 28.1rc2Ava Chow
2024-12-13examples: Generate example bitcoin.confAva Chow
2024-12-13doc: Generate manpagesAva Chow
2024-12-13build: Bump to 28.1rc2Ava Chow
2024-12-13Add release note for #31223Martin Zumsande
Co-authored-by: Vasil Dimov <vd@FreeBSD.org> Github-Pull: bitcoin/bitcoin#31223 Rebased-From: 1dd3af8fbc350c6f1efa8ae6449e67e1b42ccff4
2024-12-13test: add functional test for -port behaviorMartin Zumsande
Github-Pull: bitcoin/bitcoin#31223 Rebased-From: 997757dd2b4d7b20b17299fbd21970b2efb8bbc8
2024-12-13net, init: derive default onion port if a user specified a -portMartin Zumsande
After port collisions are no longer tolerated but lead to a startup failure in v28.0, local setups of multiple nodes, each with a different -port value would not be possible anymore due to collision of the onion default port - even if the nodes were using tor or not interested in receiving onion inbound connections. Fix this by deriving the onion listening port to be -port + 1. (idea by vasild / laanwj) Co-authored-by: Vasil Dimov <vd@FreeBSD.org> Github-Pull: bitcoin/bitcoin#31223 Rebased-From: 0e2b12b92a28a2949e75bf50f31563f52e647d6e
2024-12-11test: fix MIN macro-redefinition0xb10c
Renames the `MIN` macro to `_TRACEPOINT_TEST_MIN`. From #31418: ``` stderr: /virtual/main.c:70:9: warning: 'MIN' macro redefined [-Wmacro-redefined] 70 | #define MIN(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a < _b ? _a : _b; }) | ^ include/linux/minmax.h:329:9: note: previous definition is here 329 | #define MIN(a,b) __cmp(min,a,b) | ^ 1 warning generated. ``` fixes: https://github.com/bitcoin/bitcoin/issues/31418 Github-Pull: bitcoin/bitcoin#31419 Rebased-From: 00c1dbd26ddb816e5541c5724397015a92a3d06b
2024-12-11util: use explicit cast in MultiIntBitSet::Fill()Vasil Dimov
The current code does not have a bug, but is implicitly casting -1 to 65535 and the sanitizer has no way to know whether we intend that or not. ``` FUZZ=bitset src/test/fuzz/fuzz /tmp/fuz error: implicit conversion from type 'int' of value -1 (32-bit, signed) to type 'value_type' (aka 'unsigned short') changed the value to 65535 (16-bit, unsigned) Base64: Qv7bX/8= ``` Github-Pull: bitcoin/bitcoin#31431 Rebased-From: edb41e4814ccc2c06a5694b2d2632dbbd22bc0cf
2024-12-11fuzz: add cstdlib to FuzzedDataProviderfanquake
Same as https://github.com/llvm/llvm-project/pull/113951. Avoids compile failures under clang-20 & `D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES`: ```bash In file included from /bitcoin/src/test/fuzz/addition_overflow.cpp:5: /bitcoin/src/test/fuzz/FuzzedDataProvider.h:209:5: error: use of undeclared identifier 'abort' 209 | abort(); | ^ /bitcoin/src/test/fuzz/FuzzedDataProvider.h:250:5: error: use of undeclared identifier 'abort' 250 | abort(); ``` Github-Pull: bitcoin/bitcoin#31448 Rebased-From: bb7e686341e437b2e7aae887827710918c00ae0f
2024-12-04Merge bitcoin/bitcoin#31104: [28.x] Backports & 28.1rc1v28.1rc1merge-script
8fef83a0a03f884e0c5399b318eb55064b84b718 doc: update manual pages for 28.1rc1 (fanquake) df7764621e2d41e2dd35e10f68f0059c0e09bf18 build: bump version to 28.1rc1 (fanquake) 9add853b652ac37214011909e7777772ec6256fa doc: update release notes for 28.1rc1 (fanquake) 1025090fbe215286239ff6dd5dbedd3291f0b196 build: disable compiling fuzz/utxo_snapshot.cpp with MSVC (fanquake) 446f5d20d6c8da951c97e5a5e52c92b0fab4728d refactor: Drop deprecated space in operator""_mst (MarcoFalke) 9976162a0e0847502c075ae8524b6e5cfefba0ed addrman: change nid_type from int to int64_t (Martin Zumsande) 1d0411dc8fea96eb4d65ffef98d71f6cc4e12af5 addrman, refactor: introduce user-defined type for internal nId (Martin Zumsande) 7fec6382221b49b7ffd5121ee0442b4f2a5169ef depends: For mingw cross compile use -gcc-posix to prevent library conflict (laanwj) f998ac628685c6459d5de3bd7469f9046901fc47 key: clear out secret data in `DecodeExtKey` (Sebastian Falbesoner) 0773560abf991fbc60c415e1556d86c4d5505f1b ci: add LLVM_SYMBOLIZER_PATH to Valgrind fuzz job (fanquake) b9173342084b1340a639e7a20e2b4a0f5852304a test: add missing sync to feature_fee_estimation.py (Martin Zumsande) f072721181c727f37cf1253e0a629f865eae7178 doc: add testnet4 section header for config file (Marnix) 6643fd2145f8ef211e719dd401b8ac966c5dc9ea doc: Archive 28.0 release notes (Ava Chow) Pull request description: Backports: * #30568 * #31007 * #31013 * #31016 * #31035 * #31166 Contains: * A commit to do the same as #31307. ACKs for top commit: willcl-ark: ACK 8fef83a0a03f884e0c5399b318eb55064b84b718 Tree-SHA512: 58f0c6cb9e5b7ac17ad20141acdc5423dbe8e79cc3a2cf1c4e503d289b75940632c9838c64e3ac733b1a55e65723fc1071ccdd9a860a710256cc88e29f42ccdb
2024-12-02doc: update manual pages for 28.1rc1fanquake
2024-12-02build: bump version to 28.1rc1fanquake
2024-12-02doc: update release notes for 28.1rc1fanquake
2024-12-02build: disable compiling fuzz/utxo_snapshot.cpp with MSVCfanquake
This is a backport of #31307 / b2d536100282bd901d3e0be7f7f4a6966e0ef817 for 28.x.
2024-12-02refactor: Drop deprecated space in operator""_mstMarcoFalke
Github-Pull: #31267 Rebased-From: faf21625652fd0d4bbf9b86fd9ebedb5857505ea
2024-12-02addrman: change nid_type from int to int64_tMartin Zumsande
With nId being incremented for each addr received, an attacker could cause an overflow in the past. (https://bitcoincore.org/en/2024/07/31/disclose-addrman-int-overflow/) Even though that attack was made infeasible by rate-limiting (PR #22387), to be on the safe side change the type to an int64_t. Github-Pull: #30568 Rebased-From: 51f7668d31e2624e41c7ce77fe33162802808f3f
2024-11-04addrman, refactor: introduce user-defined type for internal nIdMartin Zumsande
This makes it easier to track which spots refer to an nId (as opposed to, for example, bucket index etc. which also use int) Co-authored-by: Pieter Wuille <pieter@wuille.net> Github-Pull: #30568 Rebased-From: 051ba3290e30e210bfc50dea974063053313ad3e
2024-10-31depends: For mingw cross compile use -gcc-posix to prevent library conflictlaanwj
CMake parses some paths from the spec of the C compiler, assuming it will be the linker, resulting in the link to end up with `-L/usr/lib/gcc/x86_64-w64-mingw32/12-win32` on debian bookworm if both -win32 and -posix variants are installed, and -win32 is the default alternative. This results in the wrong C++ library being linked, missing std::threads::hardware_concurrency and other threading functions. To fix this, use the -posix variant of gcc as well when available. This fixes a regression compared to autotools, where this scenario worked. Github-Pull: #31013 Rebased-From: ae56b3230b287eef5a5657d3089abebffde51484
2024-10-31key: clear out secret data in `DecodeExtKey`Sebastian Falbesoner
Same as in `DecodeSecret`, we should also clear out the secret data from the vector resulting from the Base58Check parsing for xprv keys. Note that the if condition is needed in order to avoid UB, see #14242 (commit d855e4cac8303ad4e34ac31cfa7634286589ce99). Github-Pull: #31166 Rebased-From: 559a8dd9c0aafcecf00f9ccd9aabe5720bcebe8c
2024-10-22ci: add LLVM_SYMBOLIZER_PATH to Valgrind fuzz jobfanquake
Otherwise: ```bash NEW_FUNC[1/23]: ==4710==WARNING: invalid path to external symbolizer! ==4710==WARNING: Failed to use and restart external symbolizer! 0xb72010 (/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/test/fuzz/fuzz+0xa6a010) (BuildId: 2087ad415cb752eea259ed750f3b78a7fcb0b43b) NEW_FUNC[2/23]: 0xb72240 (/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/test/fuzz/fuzz+0xa6a240) (BuildId: 2087ad415cb752eea259ed750f3b78a7fcb0b43b) ``` Github-Pull: #30961 Rebased-From: c1832584bfd1b352095bc41a13ff17564e456d43
2024-10-22test: add missing sync to feature_fee_estimation.pyMartin Zumsande
Fixes a race between node 1 catching up with the chain and mining a new block in the sanity_check_rbf_estimates subtest. Github-Pull: #31016 Rebased-From: a1576edab356053c4c736691e4950b58e9a14f76
2024-10-22doc: add testnet4 section header for config fileMarnix
Github-Pull: #31007 Rebased-From: 61cdb1c9d83778b95f4f9596f34617b7a191d0a5
2024-10-16doc: Archive 28.0 release notesAva Chow
Github-Pull: #31035 Rebased-From: f019fcec4126aa2618734016711063d3b44260fc
2024-10-05Merge bitcoin/bitcoin#31034: [28.x] doc: Sync 28.0 release notes with websiteAva Chow
89d34cffedcb6ec752fa2ca355ad32e1e413b2f0 doc: Sync 28.0 release notes with website (Ava Chow) Pull request description: Since there were some changes to the release notes after the tagging, update the in branch release notes to match those that ended up on the website. ACKs for top commit: tdb3: ACK 89d34cffedcb6ec752fa2ca355ad32e1e413b2f0 Tree-SHA512: 1feeafb0f604d36c1817e8bf38cbaef5d41f958dd823c99a19a1a9f7f1f1d38f917872c84b536dd784d7a672904ed2399369693f200a2837cd5707a686d3e634
2024-10-04doc: Sync 28.0 release notes with websiteAva Chow
2024-10-01Merge bitcoin/bitcoin#30959: [28.x] backports and finalizev28.0Ava Chow
5de225f5c145368f70cb5f870933bcf9df6b92c8 doc: 28.0 Release Notes (Ava Chow) 98745e03ffc9f69f901b827e19e4d8d645a27112 doc: generate manpages (Ava Chow) 5feef9ce7ebf608e45aa9682512599494c0d46d8 build: Bump to 28.0 (Ava Chow) 7fcd7b85c64ffbcd67d8ff1add46d258b26b2029 validation: Disable CheckForkWarningConditions for background chainstate (Martin Zumsande) e24a25d882ba8c8dacc1eede6b9373fe7601f85b test: Use shell builtins in run_command test case (Ava Chow) Pull request description: * #30952 * #30962 * Finalize 28.0 (or rc3 if additional backports are needed) ACKs for top commit: sipa: utACK 5de225f5c145368f70cb5f870933bcf9df6b92c8 Tree-SHA512: b42948a04d4250f2c9ef3331a39a4c3d7de9ceb9f4f294dd283599d08f3e2b7147297ef9ec1c4276e291a015fc2daa5a72c1f1c33fb517e8ea5c740c4459bf32
2024-09-30doc: 28.0 Release NotesAva Chow
2024-09-25doc: generate manpagesAva Chow
2024-09-25build: Bump to 28.0Ava Chow
2024-09-25validation: Disable CheckForkWarningConditions for background chainstateMartin Zumsande
The comparison of m_best_invalid with the tip of the respective chainstate makes no sense for the background chainstate, and can lead to incorrect error messages. Github-Pull: bitcoin/bitcoin#30962 Rebased-From: c0a0c72b4d68a4f0c53c2c4b95f4d6e399f8e4ee
2024-09-24test: Use shell builtins in run_command test caseAva Chow
Github-Pull: bitcoin/bitcoin#30952 Rebased-From: 7bd3ee62f6d6f59ca599e85f81776d282dee1539
2024-09-17Merge bitcoin/bitcoin#30827: [28.x] Further backports and rc2v28.0rc2merge-script
06a7df70df30879e0b691d1a252636f703b8cdfb doc: Generate manpages (Ava Chow) 5315886bf5bb430ced1b23ebfcd0b8865b523675 build: Bump to 28.0rc2 (Ava Chow) ff95cb31da6ab6af70125b2c0b78aa976780c61e streams: remove AutoFile::Get() entirely (Pieter Wuille) 8229e981167f61e2d4c2e8b7761cba68374ea92f streams: cache file position within AutoFile (Pieter Wuille) 1b853fdb0a40064a5c75b2dae96dfe1d590de6e1 qt: Translations update (Hennadii Stepanov) 674dded8756ddf9b731f3149c66dd044090e4c8e gui: fix crash when closing wallet (furszy) d39262e5d41e92d22e020d283ddb6e4e406647b2 test: Wait for local services to update in feature_assumeutxo (Fabian Jahr) b329ed739b7311b3b47cae1ef8d576a90e0a36a1 test: add coverage for assumeUTXO honest peers disconnection (furszy) c6b5db1d591f0984cd0e6918970a9e4fc32595d3 assumeUTXO: fix peers disconnection during sync (furszy) 598415bcc1d1f8d516159a1501dda24e8d7c2ea9 test: Work around boost compilation error (MarcoFalke) Pull request description: * #30834 * #30807 * #30880 * https://github.com/bitcoin-core/gui/pull/835 * #30899 * #30884 ACKs for top commit: stickies-v: ACK 06a7df70df30879e0b691d1a252636f703b8cdfb hebasto: ACK 06a7df70df30879e0b691d1a252636f703b8cdfb, I've backported the listed PRs locally. The only merge conflict I faced was in https://github.com/bitcoin/bitcoin/pull/30807. It was trivial to resolve. Tree-SHA512: 779d734b50fdce379a20865ba30c969def028963ba51da0f497ddf1b5375e1f6166365295f226c1a07bab8be0c1aa0a6a3296fc6acd9fcf17bcc4874aac980a6
2024-09-16doc: Generate manpagesAva Chow
2024-09-16build: Bump to 28.0rc2Ava Chow
2024-09-16streams: remove AutoFile::Get() entirelyPieter Wuille
Co-Authored-By: David Gumberg <davidzgumberg@gmail.com> Github-Pull: bitcoin/bitcoin#30884 Rebased-From: a240e150e837b5a95ed19765a2e8b7c5b6013f35
2024-09-16streams: cache file position within AutoFilePieter Wuille
Github-Pull: bitcoin/bitcoin#30884 Rebased-From: e624a9bef16b6335fd119c10698352b59bf2930a
2024-09-16qt: Translations updateHennadii Stepanov
The recent translations from Transifex.com 28.x fetched with the bitcoin-maintainer-tools/update-translations.py tool. Github-Pull: bitcoin/bitcoin#30899 Rebased-From: ae0529576147a1a5bee992574e2cefc8a1fa37d0
2024-09-13gui: fix crash when closing walletfurszy
The crash occurs because 'WalletController::removeAndDeleteWallet' is called twice for the same wallet model: first in the GUI's button connected function 'WalletController::closeWallet', and then again when the backend emits the 'WalletModel::unload' signal. This causes the issue because 'removeAndDeleteWallet' inlines an erase(std::remove()). So, if 'std::remove' returns an iterator to the end (indicating the element wasn't found because it was already erased), the subsequent call to 'erase' leads to an undefined behavior. Github-Pull: bitcoin-core/gui#835 Rebased-From: a965f2bc07a3588f8c2b8d6a542961562e3f5d0e
2024-09-12test: Wait for local services to update in feature_assumeutxoFabian Jahr
Github-Pull: bitcoin/bitcoin#30880 Rebased-From: 19f4a7c95a99162122068d4badffeea240967a65
2024-09-11test: add coverage for assumeUTXO honest peers disconnectionfurszy
Exercising and verifying the following points: 1. An IBD node can sync headers from an AssumeUTXO node at any time. 2. IBD nodes do not request historical blocks from AssumeUTXO nodes while they are syncing the background-chain. 3. The assumeUTXO node dynamically adjusts the network services it offers according to its state. 4. IBD nodes can fully sync from AssumeUTXO nodes after they finish the background-chain sync. Github-Pull: bitcoin/bitcoin#30807 Rebased-From: 992f83bb6f4b29b44f4eaace1d1a2c0001d43cac
2024-09-11assumeUTXO: fix peers disconnection during syncfurszy
Because AssumeUTXO nodes prioritize tip synchronization, they relay their local address through the network before completing the background chain sync. This, combined with the advertising of full-node service (NODE_NETWORK), can result in an honest peer in IBD connecting to the AssumeUTXO node (while syncing) and requesting an historical block the node does not have. This behavior leads to an abrupt disconnection due to perceived unresponsiveness (lack of response) from the AssumeUTXO node. This lack of response occurs because nodes ignore getdata requests when they do not have the block data available (further discussion can be found in PR 30385). Fix this by refraining from signaling full-node service support while the background chain is being synced. During this period, the node will only signal 'NODE_NETWORK_LIMITED' support. Then, full-node ('NODE_NETWORK') support will be re-enabled once the background chain sync is completed. Github-Pull: bitcoin/bitcoin#30807 Rebased-From: 6d5812e5c852c233bd7ead2ceef051f8567619ed
2024-09-06test: Work around boost compilation errorMarcoFalke
Github-Pull: bitcoin/bitcoin#30834 Rebased-From: fa9d7d5d205ada8915cbbc29599ab8e7bf1fffe0
2024-09-05Merge bitcoin/bitcoin#30762: [28.x] rc backportsAva Chow
b2a137929a20baed161988e24de592b1f59c0096 depends: build libevent with -D_GNU_SOURCE (fanquake) 199bb09d88e28d951c5068eb65643390dbedd066 test: fixing failing system_tests/run_command under some Locales (Jadi) 342baabaffc385dc44a44f6d8cf32728a25a0356 test: Avoid intermittent timeout in p2p_headers_sync_with_minchainwork.py (MarcoFalke) 5577d5a3c0904a4805e7b768cb60144daa2a0854 test: fix `TestShell` initialization (late follow-up for #30463) (Sebastian Falbesoner) Pull request description: Backports: * https://github.com/bitcoin/bitcoin/pull/30714 * https://github.com/bitcoin/bitcoin/pull/30743 * https://github.com/bitcoin/bitcoin/pull/30761 * https://github.com/bitcoin/bitcoin/pull/30788 ACKs for top commit: willcl-ark: ACK b2a137929a20baed161988e24de592b1f59c0096 achow101: ACK b2a137929a20baed161988e24de592b1f59c0096 stickies-v: ACK b2a137929a20baed161988e24de592b1f59c0096 Tree-SHA512: bf08ac0c613395def974a1b287345d4a64edc066c14f8c9f0184478b0e33e48333760eeb6e96b6b5fbafbb21b40d01875e3f526213a2734e226b2e111d71f3a3
2024-09-05depends: build libevent with -D_GNU_SOURCEfanquake
Currently, builds of libevent in depends, using CMake, fail on some systems, like Alpine, with the following: ```bash /bitcoin/depends/work/build/aarch64-unknown-linux-musl/libevent/2.1.12-stable-1516ed47ea8/evmap.c: In function 'evmap_signal_add_': /bitcoin/depends/work/build/aarch64-unknown-linux-musl/libevent/2.1.12-stable-1516ed47ea8/evmap.c:456:31: error: 'NSIG' undeclared (first use in this function) 456 | if (sig < 0 || sig >= NSIG) ``` From what I can tell the `_GNU_SOURCE` "detection" in libevents CMake build system, never? really worked, and it's not clear what a nice fix is. For now, always use `_GNU_SOURCE` when building libevent in depends. Github-Pull: #30743 Rebased-From: 556775408797d8e27154c3edaf139820b0979cce
2024-09-05test: fixing failing system_tests/run_command under some LocalesJadi
the run_command test under system_tests fails if the locale is anything other than English ones because results such as "No such file or directory" will be different under Non-English locales. On the old version, a `ls nonexistingfile` was used to generate the error output which is not ideal. In the current version we are using a Python one-liner to generate a non 0 zero return value and "err" on stderr and check the expected value against this. fixes #30608 Github-Pull: #30788 Rebased-From: ae48a22a3df086fb59843b7b814619ed5df7557b
2024-09-03test: Avoid intermittent timeout in p2p_headers_sync_with_minchainwork.pyMarcoFalke
Github-Pull: #30761 Rebased-From: fa247e6e8c7fddf9e3461c3e2e6f5fade0fe64cf
2024-08-30test: fix `TestShell` initialization (late follow-up for #30463)Sebastian Falbesoner
Github-Pull: #30714 Rebased-From: bd7ce05f9d9d21903163a2bd9dd2df3ed3990c3e
2024-08-27Merge bitcoin/bitcoin#30726: [28.x] Bump to 28.0rc1v28.0rc1Ava Chow
bd45bc611b8b245d0a6bc8e0f5a224b0642f06d0 doc: Point release notes to wiki draft (Ava Chow) 27b63004851c1c2bb14387fc537052a27265145f examples: Generate example bitcoin.conf (Ava Chow) 08887d3297175ca1eed800319b958d5d8247b885 doc: Generate manpages (Ava Chow) 6974e30bdd2b32197f543050c21f8fc2cca5a0b9 build: Bump to 28.0rc1 (Ava Chow) Pull request description: * Bump version to 28.0rc1 * Generated manpages * Generated example bitcoin.conf * Point release notes to wiki ACKs for top commit: hebasto: ACK bd45bc611b8b245d0a6bc8e0f5a224b0642f06d0. Tree-SHA512: c3cd28b003ead64631b8c2d1bdbf7403d4d9f53ee5ccdc448d89ca25941678f6d1d8966c2f9a92fa021c815b3e36a84056342caa4eaacdab371f0d581e4e58dc