addressbook records with no associated label could be
treated as change. And we don't want that for external
addresses.
Github-Pull: #28038
Rebased-From: a277f8357ad8b0eb26f33fc36f919d868c06847b
b8ad3220a9068f10c2b3b14b40f211372aeece31 Unconditionally return when compact block status == READ_STATUS_FAILED (Greg Sanders)
cdd3de08e301ec309c179796bedfa2be29042128 Add tests for parallel compact block downloads (Greg Sanders)
e66a5cbb56db3dffc119e110472ab1176ea3fe99 Support up to 3 parallel compact block txn fetchings (Greg Sanders)
d1a93f5d41f7385af28cee3863976fd75f27415b Only request full blocks from the peer we thought had the block in-flight (Greg Sanders)
38e3af9fad1eb8ef7d6a9d812ded412668b650e3 Convert mapBlocksInFlight to a multimap (Greg Sanders)
a45159b8e2a198219d7c46baeb647ff5d18436bf Remove nBlocksInFlight (Greg Sanders)
722361e129342078376b6d30b9d80de17ca7ddfb alias BlockDownloadMap for mapBlocksInFlight (Greg Sanders)
Pull request description:
Backports:
* https://github.com/bitcoin/bitcoin/pull/27626
* https://github.com/bitcoin/bitcoin/pull/27743
ACKs for top commit:
instagibbs:
utACK b8ad3220a9
ajtowns:
ACK b8ad3220a9068f10c2b3b14b40f211372aeece31 ; confirmed patches are clean cherry-picks from master, and already tested patches prior to 25.0 release
Tree-SHA512: 438901496a5ed927662e62f936e3d1e7ffb727cb235869854983e8e29a68e144eb3bff307d9fc3ae785fb276b67a216b1cce397689252ca49c5d761efc1380ac
A single outbound slot is required, so if the first two slots
are taken by inbound in-flights, the node will reject additional
unless they are coming from outbound.
This means in the case where a fast sybil peer is attempting to
stall out a node, a single high bandwidth outbound peer can
mitigate the attack.
Github-Pull: #27626
Rebased-From: 03423f8bd12b95a06a4a9d8377e781625dd38aae
This is a change in behavior so that if for some reason we request a block from a peer, we don't allow an unsolicited CMPCT_BLOCK announcement for that same block to cause a request for a full block from the uninvited peer (as some type of request is already outstanding from the original peer)
Github-Pull: #27626
Rebased-From: 13f9b20b4cb2f3f26e81184a77e9cf1f626d4f57
This should avoid a race where the kill is not done when spinning up the
new container. podman stop waits 10 seconds by default.
Github-Pull: #27844
Rebased-From: faaa62754e84417baa917f20db379db78146687d
9dc58484928693a42e4163d8eaef3f8b47f1d3d8 build: disable boost multi index safe mode (willcl-ark)
Pull request description:
Backports https://github.com/bitcoin/bitcoin/pull/27724 to `25.x`.
ACKs for top commit:
stickies-v:
ACK 9dc584849
Tree-SHA512: 5f156424bbd86caac6ace933b807cd62a21067bcfa7f572d6efeff2622ba0b15401038a3b06fe00d84cf62b5d9b8a9e101650d145683a21fa890c18a9c2bd4b6
Disable boost multi index safe mode by default when configuring with
--enable-debug.
This option can cause transactions to take a long time to be accepted
into the mempool under certain conditions; iterator destruction takes
O(n) time vs O(1) as they are stored in a singly linked list. See
27586 for more information.
Re-enable it on the CI builds which previously had it enabled.
Re-enable it on the msan fuzz target so that we have fuzz tasks testing
with it enabeld and disabled in this repo.
Github-Pull: #27724
Rebased-From: 59c89447499bd9d6202269879555b8bc37373aa2
6ee3881551f2cd411c4e4d8b0ccedf0f0416d8c2 doc: update release notes for 25.0 (fanquake)
51195ea570a84b4eec37936465c0d880aa663ab9 doc: update manual pages for 25.0 (fanquake)
8f7db443e9c475225de234b7ab7b649f1305a844 build: bump version to v25.0 final (fanquake)
Pull request description:
Final changes for v25.0.
PR for bitcoincore.org is here: https://github.com/bitcoin-core/bitcoincore.org/pull/970.
ACKs for top commit:
dergoegge:
ACK 6ee3881551f2cd411c4e4d8b0ccedf0f0416d8c2
Tree-SHA512: 7325e7d2747fbbeaa7efa9ceebfef56121d6866441fc4f3f9e95e67ab8ad7d4e518db4f545c214f1b677eaea84f28c1ea4f790aaf993a20904c76c3592406fd6
If transactions are being added to the mempool at a rate faster than 7tx/s
(INVENTORY_BROADCAST_PER_SECOND) then peers' inventory_to_send queue can
become relatively large. If this happens, increase the number of txids
we include in an INV message (normally capped at 35) by 5 for each 1000
txids in the queue.
This will tend to clear a temporary excess out reasonably quickly; an
excess of 4000 invs to send will be cleared down to 1000 in about 30
minutes, while an excess of 20000 invs would be cleared down to 1000 in
about 60 minutes.
Github-Pull: #27610
Rebased-From: 5b3406094f2679dfb3763de4414257268565b943
We use CompareDepthAndScore to choose an order of txs to inv. Rather
than sorting txs that have been evicted from the mempool at the end
of the list, sort them at the beginning so they are removed from
the queue immediately.
Github-Pull: #27610
Rebased-From: 228e9201efb5574b1b96bb924de1d2e8dd1317f3
20c076d0567da56637e69a26a8cc4e7d99124ebd qt: 25.0rc2 translations update (Hennadii Stepanov)
Pull request description:
This PR follows our [Release Process](https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md#before-every-release-candidate) and pulls the recent translations from the [Transifex.com](https://www.transifex.com/bitcoin/bitcoin) using the [`bitcoin-maintainer-tools/update-translations.py`](https://github.com/bitcoin-core/bitcoin-maintainer-tools/blob/main/update-translations.py) tool.
Unfortunately, it wasn't done before `v25.0rc1` tagging. Therefore, it is expected to be merged just before the `v25.0rc2` tag (I commit to keep this PR updated on a daily basis).
All developers with non-English native languages are welcome to skim through their language translation files and look for any malicious content, such as "official technical support for a stuck transaction", etc.
ACKs for top commit:
jarolrod:
ACK 20c076d0567da56637e69a26a8cc4e7d99124ebd
Tree-SHA512: a96856b059ec8e2d05eb03f7b2d6505e8fe384e7139e0ad7781b38e4f90b37ec8cb89d822a10467a45e5397d5fe82bb68d5675b6ad9749df71e8c219a28f901a
cf5850688d431e663e01a595b8547ff0d2902b69 doc: generate example bitcoin.conf for v25.0rc1 (fanquake)
51af8957c54753c7a6987b0f16dff4850490f743 doc: generate manual pages for v25.0rc1 (fanquake)
46accc76172943aba23d0c0c76a088d64cd2f5f0 doc: point release-notes.md to the dev wiki (fanquake)
7a807eb7355f354edad10595d2f11cfe6a6bc47d doc: update version number in bips.md to v25.0 (fanquake)
0ff26b8c0fda206b501947d056455ee8dc581fbf build: bump version to v25.0rc1 (fanquake)
Pull request description:
Bump the version number.
Generate the man pages.
Generate example bitcoin.conf.
Point release-notes.md to the wiki: https://github.com/bitcoin-core/bitcoin-devwiki/wiki/25.0-Release-Notes-Draft.
Bump the version number in bips.md.
ACKs for top commit:
achow101:
ACK cf5850688d431e663e01a595b8547ff0d2902b69
Tree-SHA512: 0f8065b33aff8d39f5ab969eea22c0161ebc984cff90f0f9496706af3b1199f4c8ec06e67d7db68cf103550f0d1f5c0f1aba493acf27f65f341f7865b152b293
9c24826e7b58722d7b0ddb8f18f985ba6f17b106 doc: Remove 25.0 release note fragments (Andrew Chow)
088a93dce8e0f406e2c09d1df181fb8aa31532a4 build: Bump to 25.99 (Andrew Chow)
Pull request description:
Pre-25.x branch off version bump and release note fragments removal.
The 25.0 draft release notes are in the dev wiki: https://github.com/bitcoin-core/bitcoin-devwiki/wiki/25.0-Release-Notes-Draft
ACKs for top commit:
fanquake:
ACK 9c24826e7b58722d7b0ddb8f18f985ba6f17b106
Tree-SHA512: f7c7b04aa904e946bc672b5b07082a819b9d76ebccda0838bc27d0e6179cfb88b8f110500d5ea815f711580916bcfa0275774ec50a7298a4c66e645647111125
31b1798d2c3fa3c479eb2d1896240e0b7fad600b p2p: update hardcoded mainnet seeds for 25.x (Jon Atack)
04dd1d3926cdc6bb9d836686cc9060320911d27a contrib: make-seeds updates for 25.x (Jon Atack)
f5c87886286473177a67a576d8eac0b32e7f5b97 p2p: update manual tor/i2p/cjdns mainnet seeds for 25.x (Jon Atack)
Pull request description:
Update the hardcoded P2P network seeds for 25.x after updating the manual seeds and the generation script as necessary. Previous update was #25911.
The manual seeds are selected for reachability, uptime and service bit 1 and/or curated trusted peers. We need more Tor and CJDNS seeds and some of the current Tor and I2P seeds are no longer reachable.
Can be tested by following the steps in `contrib/seeds/README.md` and verifying the manual seeds by checking their presence and services in getnodeaddresses and/or connecting to them and checking their services with getpeerinfo and behavior with -netinfo.
Tool output:
```
$ python3 makeseeds.py -a asmap-filled.dat -s seeds_main.txt > nodes_main.txt
Loading asmap database "asmap-filled.dat"…Done.
Loading and parsing DNS seeds…Done.
IPv4 IPv6 Onion Pass
3972 1118 0 Initial
3972 1118 0 Skip entries with invalid address
3972 1118 0 After removing duplicates
3946 1112 0 Enforce minimal number of blocks
3946 1112 0 Require service bit 1
2791 798 0 Require minimum uptime
2757 788 0 Require a known and recent user agent
2757 788 0 Filter out hosts with multiple bitcoin ports
512 289 0 Look up ASNs and limit results per ASN and per net```
ACKs for top commit:
achow101:
ACK 31b1798d2c3fa3c479eb2d1896240e0b7fad600b
mzumsande:
reACK 31b1798d2c3fa3c479eb2d1896240e0b7fad600b
Tree-SHA512: 40cdd0ac74e3d26975ab688ee4af09bedcf15f6e02311757b27c91aafdc4da16cca2be90fee767207bb4ccd542ad19197e4d5e00011185018239de35da19c174
a2bef805c11a4ab391f4ea635bfde7dd2ec9ce81 kernel: update m_assumed_* chain params for 25.x (fanquake)
4128e01dbaa630396b0e7576ee8a1987267f77b9 kernel: update chainTxData for 25.x (fanquake)
00b2b114b442835c863e7772348cb1d1881ba0f2 kernel: update nMinimumChainWork & defaultAssumeValid for 25.x (fanquake)
07fcc0a82cfd08c991f61c2340630f0c4659a3a0 doc: update references to kernel/chainparams.cpp (fanquake)
Pull request description:
Update chainparams pre `25.x` branch off.
Co-Author in the commits as a PR (#27223) had previously been opened too-early to do the same.
Note: Remember that some variance is expected in the `m_assumed_*` sizes.
ACKs for top commit:
achow101:
ACK a2bef805c11a4ab391f4ea635bfde7dd2ec9ce81
josibake:
ACK a2bef805c1
gruve-p:
ACK a2bef805c1
dergoegge:
ACK a2bef805c11a4ab391f4ea635bfde7dd2ec9ce81 on the new mainnet params
Tree-SHA512: 0b19c2ef15c6b15863d6a560a1053ee223057c7bfb617ffd3400b1734cee8f75bc6fd7f04d8f8e3f5af6220659a1987951a1b36945d6fe17d06972004fd62610
3cc989da5c750e740705131bed05bbf93bfdf169 Fix checking bad dns seeds without casting (Yusuf Sahin HAMZA)
Pull request description:
- Since seed lines comes with `str` type, comparing `good` column directly with **0** (`int` type) in the if statement was not working at all. This is fixed by casting `int` type to the values in the `good` column of seeds text file.
- Lines that starts with comment in the seeds text file are now ignored.
- If statement for checking bad seeds are moved to the top of the `parseline` function as if a seed is bad; there is no point of going forward from there.
Since this bug-fix eliminates bad seeds over **550k** in the first place, in my case; particular job for parsing all seeds speed is up by **600%** and whole script's speed is up by **%30**.
Note that **stats** in the terminal are not going to include bad seeds after this fix, which would be the same if this bug were never there before.
ACKs for top commit:
achow101:
ACK 3cc989da5c750e740705131bed05bbf93bfdf169
jonatack:
ACK 3cc989da5c750e740705131bed05bbf93bfdf169
Tree-SHA512: 13c82681de4d72de07293f0b7f09721ad8514a2ad99b0584d1c94fa5f2818821df2000944f9514d6a222a5dccc82856d16c8c05aa36d905cfa7d4610c629fd38
4de9c2a65f6770405f167c7392cd8371111bc4e8 ci: build libc++ with assertions in MSAN jobs (fanquake)
23b8b2026a8078f41b1afd84214c06b5e2cc95e8 ci: build libc++ in DEBUG mode in MSAN jobs (fanquake)
Pull request description:
Followup to #27447.
See https://releases.llvm.org/16.0.0/projects/libcxx/docs/DesignDocs/DebugMode.html:
> Libc++ provides a debug mode that enables special debugging checks meant to detect incorrect usage of the standard library. These checks are disabled by default, but they can be enabled by vendors when building the library by using LIBCXX_ENABLE_DEBUG_MODE.
ACKs for top commit:
MarcoFalke:
lgtm ACK 4de9c2a65f6770405f167c7392cd8371111bc4e8
Tree-SHA512: 788c7f031ccf7a6ac96a87758e57f604cf4d9db0144f0ecc4931823111d2396e64ab260825d74f06b2770d0ac3e4e2c21c46f4def046cf3e1a44d705921ab6d2