forked from bitcoin/bitcoin
-
Notifications
You must be signed in to change notification settings - Fork 7
update bitcoin to 0.18.1 #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
pinhopro
wants to merge
10,000
commits into
blinktrade:master
Choose a base branch
from
bitcoin:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
509ffea ci: return to using dash in CentOS job (fanquake) Pull request description: `dash` is available again: https://bugzilla.redhat.com/show_bug.cgi?id=2335416. ACKs for top commit: maflcko: lgtm ACK 509ffea davidgumberg: ACK 509ffea janb84: crACK 509ffea Tree-SHA512: c57194b6158f6453cadb2487be232af5e37aa2234852f04a76fc80909fbfa48c7f8dd30e7be41be67dedb7ec4886930e165fdbaf746d358bb94c6ccc49d6bde6
493ba0f threading: reduce the scope of lock in getblocktemplate (kevkevinpal) Pull request description: This change was motivated by #32592 (comment) It does exactly what is said in the comment. Reducing the scope of the lock by a bit before it is needed ACKs for top commit: stickies-v: re-ACK 493ba0f maflcko: lgtm ACK 493ba0f Tree-SHA512: aa3a21ef3da6be6c0af78aa2dda61ee21c3f6d4d9c897413dba9e7d7d2a91e9e069bbc6b6684b45aadaa28d8603dd310f2c2d2e58c31bb4d864204e468fefaf1
daa40a3 doc fixups for 33106 (glozow) c568511 test fixup for incremental feerate (glozow) 636fa21 test fixups (glozow) 9169a50 [rpc] expose blockmintxfee via getmininginfo (glozow) Pull request description: Followups from #33106: - #33106 (comment) - #33106 (comment) - #33106 (comment) - #33106 (comment) - #33106 (comment) - #33106 (comment) - #33106 (comment) - #33106 (comment) - #33106 (comment) - #33106 (comment) - #33106 (comment) ACKs for top commit: ajtowns: ACK daa40a3 ; cursory review, seems reasonable davidgumberg: ACK daa40a3 instagibbs: ACK daa40a3 Tree-SHA512: d6f0ae5d00dadfbaf0998ac332c8536c997628de4f2b9947eb57712f05d3afa19a823c9cc007435be320640cd13a4c500db20c9606988cdd371934496dec009d
4cf0ae4 ci: use LLVM 21 (fanquake) Pull request description: Use LLVM 21 in the *san & fuzz CIs. ACKs for top commit: maflcko: lgtm ACK 4cf0ae4 janb84: ACK 4cf0ae4 l0rinc: utACK 4cf0ae4 Tree-SHA512: bc91982060fd0cdf0fb3b2cc895a53ca374bd76f4d75c493087e23309d3f5ea870a12d9c29ac3309b338d9508dd3f0045ae524965d2875ec9174da04e13436a0
b7b249d Revert "[refactor] rewrite vTxHashes as a vector of CTransactionRef" (Anthony Towns) b9300d8 Revert "refactor: Simplify `extra_txn` to be a vec of CTransactionRef instead of a vec of pair<Wtxid, CTransactionRef>" (Anthony Towns) df5a50e bench/blockencodings: add compact block reconstruction benchmark (Anthony Towns) Pull request description: Reconstructing compact blocks is on the hot path for block relay, so revert changes from #28391 and #29752 that made it slower. Also add a benchmark to validate reconstruction performance, and a comment giving some background as to the approach. ACKs for top commit: achow101: ACK b7b249d polespinasa: lgtm code review and tested ACK b7b249d cedwies: code-review ACK b7b249d davidgumberg: crACK b7b249d instagibbs: ACK b7b249d Tree-SHA512: dc266e7ac08281a5899fb1d8d0ad43eb4085f8ec42606833832800a568f4a43e3931f942d4dc53cf680af620b7e893e80c9fe9220f83894b4609184b1b3b3b42
The assumption was removed in commit 3eab8b7.
Add "Restore" and "Save" caching actions. These actions reduce boilerplate in the main ci.yml configuration file. These actions are implemented so that caches will be saved on `push` only. When a pull request is opened it will cache hit on the caches from the lastest push, or in the case of depends will hit on any matching depends hash, falling back to partial matches. Depends caches are hashed using `$(git ls-tree HEAD depends "ci/test/$FILE_ENV" | sha256sum | cut -d' ' -f1)` and this hash is passed in as an input to the actions. This means we direct cache hit in cases where depends would not be re-built, otherwise falling back to a partial match. Previous releases cache is hashed similarly to depends, but using the test/get_previous_releases.py file. The cirruslabs cache action will fallback transparently to GitHub's cache in the case that the job is not being run on a Cirrus Runner, making these compatible with running on forks (on free GH hardware).
If set, Cirrus runners will be used on pushes to, and pull requests against, this repository. Forks can set this if they have their own cirrus runners.
Another action to reduce boilerplate in the main ci.yml file. This action will set up a docker builder compatible with caching build layers to a container registry using the `gha` build driver. It will then configure the docker build cache args.
Using buildx is required to properly load the correct driver, for use with registry caching. Neither build, nor BUILDKIT=1 currently do this properly. Use of `docker buildx build` is compatible with podman.
Reverts: e87429a This was added in PR #31545 with the intention that self-hosted runners might use it to save build cache. As we are not using hosted runners with a registry build cache, the bulk of this commit can be reverted, simply using the value of $DOCKER_BUILD_CACHE_ARG in the script. link: #31545
This sets the build dir at build time so that Apple SDK gets installed in the correct/expected location for the runtime to find it. Co-authored-by: Max Edwards <[email protected]>
Whilst the action cirruslabs/actions/cache will automatically set this host, the docker `gha` build cache backend will not be aware of it. Set the value here, which will later be used in the docker build args to enable docker build cache on the cirrus cache.
To remove multiple occurances of the respository name, against which we compare `${{ github.repository }}` to check if we should use Cirrus Runners, introduce a helper job which can check a single environment variable and output this as an input to subsequent jobs. Forks can maintain a trivial patch of their repo name against the `REPO_USE_CIRRUS_RUNNERS` variable in ci.yml if they have Cirrus Runners of their own, which will then enable cache actions and docker build cache to use Cirrus Cache. It's not possible to use `${{ env.USE_CIRRUS_RUNNERS }}` in the `runs-on:` directive as the context is not supported by GitHub. If it was, this job would no longer be necessary.
Co-authored-by: Max Edwards <[email protected]>
Co-authored-by: Max Edwards <[email protected]>
Co-authored-by: Max Edwards <[email protected]>
When using hosted runners in combination with cached docker images, there is the possibility that the host runner image is updated, rendering the linux-headers package (stored in the cached docker image) incompatible. Fix this by doing a re-install of the headers package in 03_test_script.sh. If the underlying runner kernel has not changed thie has no effect, but prevents the job from failing if it has.
Co-authored-by: Max Edwards <[email protected]>
Co-authored-by: Max Edwards <[email protected]>
Co-authored-by: Max Edwards <[email protected]>
Co-authored-by: Max Edwards <[email protected]>
Co-authored-by: Max Edwards <[email protected]>
Co-authored-by: Max Edwards <[email protected]>
Co-authored-by: Max Edwards <[email protected]>
Not enforcing TRUC topology on reorg was the intended behavior, but the appropriate bypass argument was not checked. This mistake means we could potentially invalidate a long chain of perfectly incentive-compatible transactions that were made historically, including subsequent non-TRUC transactions, all of which may have been very high feerate. Lastly, it wastes CPU cycles doing topology checks since this behavior cannot actually enforce the topology in general for the reorg setting.
d4f47f9 ci: use latest versions of lint deps (fanquake) Pull request description: Some of the versions used here are > 2 years old. i.e `mypy`. Use the latest avilable versions, except for LIEF, which is generally changed with Guix. Side note. I can't remember the last time one of these tools (mypy, ruff, vulture) actually caught an issue in the lint job. ACKs for top commit: maflcko: lgtm ACK d4f47f9 janb84: lgtm ACK d4f47f9 hebasto: ACK d4f47f9, I have reviewed the code and it looks OK. Tree-SHA512: 8b312535c9fea8e76d58f517ada6d6ea7a119c5e03c8cb84a41b5b6ca80dfaaff65a81478bdc1a5acf734cfb0bc66a8b3ba5400db8973c43ca913b07568abfe4
Currently nodes schedule their invs to all inbound peers at the same time. It is trivial to make use this timing pattern for fingerprinting identities on different networks. Using a separate timers for each network will make the fingerprinting harder.
fc86133 wallet, log: reduce unconditional logging during load (furszy) Pull request description: Currently the unconditional log during init with a default wallet happens three times: ``` 2025-09-03T19:57:16Z init message: Verifying wallet(s)… 2025-09-03T19:57:16Z Using SQLite Version 3.45.1 2025-09-03T19:57:16Z Using wallet XXX/.bitcoin/regtest 2025-09-03T19:57:16Z Using SQLite Version 3.45.1 2025-09-03T19:57:16Z Using wallet XXX/.bitcoin/regtest (...) 2025-09-03T19:57:16Z Using SQLite Version 3.45.1 2025-09-03T19:57:16Z Using wallet XXX/.bitcoin/regtest 2025-09-03T19:57:16Z init message: Loading wallet… ``` For non-default wallets it's logged two times. That seems a bit too much, so just log the SQLite version just one, and remove the log for the full path of the wallet, since it's already clear from other logs which wallet is being loaded. ACKs for top commit: achow101: ACK fc86133 furszy: utACK fc86133 stickies-v: ACK fc86133 Tree-SHA512: ca45c8ede985e6feab0cb93d718a6d633691276ca6e5f13f6471759f11dee98b312e1c802a7fb42c7fa859b6edc44a8c54b9e2ca389655cf028aebf2dabe51f6
With a low but not negligible probability in the order of 10^-6 the exponential timer NextInvToInBounds can lead to an interval >60s, making the test fail. Also uses mocktime to speed up the test and fixes a non-matching on_inv override. Co-authored-by: Vasil Dimov <[email protected]>
Before, we'd send a MSG_TX with a wtxid in it, which would always result in a notfound answer
By using mocktime, we will always hit both the notfound branch and the tx sent branch. The previous version didn't achieve that due to timing issues. Co-authored-by: Martin Zumsande <[email protected]>
fabc261 test: Use extra_port() helper in feature_bind_extra.py (MarcoFalke) Pull request description: This is a refactor for self-validating and self-documenting code. Currently, the test assumes that extra ports are available and just increments them without checking. However, this may not be the case when the test is modified to use more ports. In this case, the tests may fail intermittently and the failure is hard to debug. Fix this confusion, by calling `p2p_port` each time. This ensures the required `assert n <= MAX_NODES` is checked each time. Closes #33250 ACKs for top commit: achow101: ACK fabc261 janb84: crACK fabc261 w0xlt: ACK fabc261 Tree-SHA512: 1eff00be7f43104ae8a66e79fbf64075ec22bb20f392ac1e4c8a7dd694d4f1760aa44ea54ab7b1f2b947ab018851ab3c10d3c717714c0bee4d8d24617594c2bb
…guration options 451ba9a datacarrier: Undeprecate configuration option (Anthony Towns) Pull request description: Removes the deprecation for the `datacarrier` and `datacarriersize` options by reverting commit 0b4048c from #32406 **Many current Bitcoin Core users want to continue using this option** This statement is based on public postings from many Bitcoin Core users and not a formal survey. AJ Towns’ observation from [#32406](0b4048c#r2084024874) that “_for now there seem to be a bunch of users who like the option_” has only become more apparent in the months since. **The deprecation intent is unclear to users** This echo’s Ava Chow’s comment from #32714 that “_IMO we should not have removal warnings if there is no current plan to actually remove them._” In months since that comment, partially due to increased feedback from Bitcoin Core users wanting to keep this option, there is even less likelihood of a near term plan to remove these options. That leaves Bitcoin Core users in an unclear situation: the option could be removed in the next version or perhaps never. Removing the deprecation gives clarity for their planning purposes. Deprecating the option in the future, preferably with a removal schedule to better inform users, would still be possible. **Minimal downsides to removing deprecation** As a best practice, Bitcoin Core has avoided an option when the developers cannot articulate when they should be used. There is non-zero maintenance cost to keeping this code around (although leaving the options deprecated for a long time has the same effect). “Don’t offer users footguns” is also a good principle, but with this option, there seems to be only small impacts that can quickly be remedied by changing the option value by Bitcoin Core users. There already exist in Bitcoin Core more potentially-user-harmful options/values than what datacarrier might cause. ACKs for top commit: ajtowns: ACK 451ba9a darosior: That said, certain users care strongly about using those options. In these conditions, i do not see the project removing the option anytime soon. Therefore i think it's technically incorrect (and confusing) to mark it as deprecated. utACK 451ba9a on removing the deprecation. instagibbs: crACK 451ba9a Raimo33: ACK 451ba9a Ademan: utACK 451ba9a ryanofsky: Code review ACK 451ba9a marcofleon: ACK 451ba9a achow101: ACK 451ba9a moonsettler: ACK 451ba9a ismaelsadeeq: utACK 451ba9a 🛰️ jonatack: ACK 451ba9a Zero-1729: crACK 451ba9a vasild: ACK 451ba9a Tree-SHA512: b83fc509f5dd820976596e1ae9fb69a22ada567e0e0ac88da5fc5e940a46d8894b40cc70c3eff2cbdabd4da5ec913f0d18c1632fc906f210b308855868410699
0802398 fuzz: make it possible to mock (fuzz) CThreadInterrupt (Vasil Dimov) 6d9e5d1 fuzz: add CConnman::SocketHandler() to the tests (Vasil Dimov) 3265df6 fuzz: add CConnman::InitBinds() to the tests (Vasil Dimov) 91cbf4d fuzz: add CConnman::CreateNodeFromAcceptedSocket() to the tests (Vasil Dimov) 50da743 fuzz: add CConnman::OpenNetworkConnection() to the tests (Vasil Dimov) e6a917c fuzz: add Fuzzed NetEventsInterface and use it in connman tests (Vasil Dimov) e883b37 fuzz: set the output argument of FuzzedSock::Accept() (Vasil Dimov) Pull request description: Extend `CConnman` fuzz tests to also exercise the methods `OpenNetworkConnection()`, `CreateNodeFromAcceptedSocket()`, `InitBinds()` and `SocketHandler()`. Previously fuzzing those methods would have resulted in real socket functions being called in the operating system which is undesirable during fuzzing. Now that #21878 is complete all those are mocked to a fuzzed socket and a fuzzed DNS resolver (see how `CreateSock` and `g_dns_lookup` are replaced in the first commit). ACKs for top commit: achow101: ACK 0802398 jonatack: Review re-ACK 0802398 dergoegge: Code review ACK 0802398 Tree-SHA512: a717d4e79f42bacf2b029c821fdc265e10e4e5c41af77cd4cb452cc5720ec83c62789d5b3dfafd39a22cc8c0500b18169aa7864d497dded729a32ab863dd6c4d
5019402 ci: Remove bash -c from cmake invocation using eval (Brandon Odiwuor) Pull request description: Follow up to #32970 #32970 (comment) > Does `cmake -S ...` still need to be wrapped in `bash -c "..."`? #32970 (comment) > It is not trivial to replace. Maybe the `eval` hack from below can be used: > > ```shell > # parses TEST_RUNNER_EXTRA as an array which allows for multiple arguments such as TEST_RUNNER_EXTRA='--exclude "rpc_bind.py --ipv6"' > > eval "TEST_RUNNER_EXTRA=($TEST_RUNNER_EXTRA)" > ``` >however, I haven't tried this yet. #32970 (comment) > Yeah, the eval hack should work: > > ``` > $ export T="-DREDUCE_EXPORTS=ON -DCMAKE_CXX_FLAGS='-Wno-psabi -Wno-error=maybe-uninitialized'"; eval "T=($T)"; for i in "${T[@]}"; do echo "_${i}_" ; done > _-DREDUCE_EXPORTS=ON_ > _-DCMAKE_CXX_FLAGS=-Wno-psabi -Wno-error=maybe-uninitialized_ > ``` > > (can be done in a follow-up) This replaces the `bash -c` wrapper with an eval-based array parsing to preserve spaces in flag values (e.g., in CMAKE_CXX_FLAGS), allowing ShellCheck to lint the cmake command ACKs for top commit: maflcko: lgtm ACK 5019402 hebasto: ACK 5019402. Tree-SHA512: 6fd22569e2c719a8d13805f18e1e7e3b8eb57d0a6307f2e7175988b25750eafb7c8260796c8e7350db67d622dbe97e6af7bab8ee52187bb8e8eeae3740a47c01
Have `CConnman::DisconnectNode()` iterate `m_nodes` itself instead of using `FindNode()`. This avoids recursive mutex lock and drops the only caller of `FindNode()` which used the return value for something else than a boolean found/notfound.
All callers of `CConnman::FindNode()` use its return value `CNode*` only as a boolean null/notnull. So change that method to return `bool`. This removes the dangerous pattern of handling a `CNode` object (the return value of `FindNode()`) without holding `CConnman::m_nodes_mutex` and without having that object's reference count incremented for the duration of the usage. Also rename the method to better describe what it does.
The returned value in `getpeerinfo/addr` could be a hostname as well as an IP address and the `:port` part could be missing. It is displayed from `CNode::m_addr_name` which could have been set from RPC `addnode` where the argument is allowed to be a hostname and an optional port.
…a recursive mutex lock 87e7f37 doc: clarify peer address in getpeerinfo and addnode RPC help (Vasil Dimov) 2a4450c net: change FindNode() to not return a node and rename it (Vasil Dimov) 4268aba net: avoid recursive m_nodes_mutex lock in DisconnectNode() (Vasil Dimov) 3a4d1a2 net: merge AlreadyConnectedToAddress() and FindNode(CNetAddr) (Vasil Dimov) Pull request description: `CConnman::FindNode()` would lock `m_nodes_mutex`, find the node in `m_nodes`, release the mutex and return the node. The current code is safe but it is a dangerous interface where a caller may end up using the node returned from `FindNode()` without owning `m_nodes_mutex` and without having that node's reference count incremented. Change `FindNode()` to return a boolean since all but one of its callers used its return value to check whether a node exists and did not do anything else with the return value. Remove a recursive lock on `m_nodes_mutex`. Rename `FindNode()` to better describe what it does. ACKs for top commit: achow101: ACK 87e7f37 furszy: Code review ACK 87e7f37 hodlinator: re-ACK 87e7f37 Tree-SHA512: 44fb64cd1226eca124ed1f447b4a1ebc42cc5c9e8561fc91949bbeaeaa7fa16fcfd664e85ce142e5abe62cb64197c178ca4ca93b3b3217b913e3c498d0b7d1c9
Normally `ConnectNode()` would choose whether to use a proxy and which one. Make it possible to override this from the callers and same for `OpenNetworkConnection()` - pass down the proxy to `ConnectNode()`. Document both functions. This is useful if we want to open connections to IPv4 or IPv6 peers through the Tor SOCKS5 proxy. Also have `OpenNetworkConnection()` return whether the connection succeeded or not. This can be used when the caller needs to keep track of how many (successful) connections were opened.
06df14b test: add more TRUC reorg coverge (Greg Sanders) 26e71c2 Mempool: Do not enforce TRUC checks on reorg (Greg Sanders) bbe8e90 fuzz: don't bypass_limits for most mempool harnesses (Greg Sanders) Pull request description: This was the intended behavior but our tests didn't cover the scenario where in-block transactions themselves violate TRUC topological constraints. The behavior in master will potentially lead to many erroneous evictions during a reorg, where evicted TRUC packages may be very high feerate and make sense to mine all together in the next block and are well within the normal anti-DoS chain limits. This issue exists since the merge of https://github.com/bitcoin/bitcoin/pull/28948/files#diff-97c3a52bc5fad452d82670a7fd291800bae20c7bc35bb82686c2c0a4ea7b5b98R956 ACKs for top commit: sdaftuar: ACK 06df14b glozow: ACK 06df14b ismaelsadeeq: Code review ACK 06df14b Tree-SHA512: bdb6e4dd622ed8b0b11866263fff559fcca6e0ca1c56a884cca9ac4572f0026528a63a9f4c8a0660df2f5efe0766310a30e5df1d6c560f31e4324ea5d4b3c1a8
eca5085 depends: static libxcb_cursor (fanquake) Pull request description: Remove the runtime requirement of `libxcb-cursor`. This library is no-longer present on modern Ubuntu. Fixes #33432. Also related to #32097. ACKs for top commit: davidgumberg: Addendum ACK eca5085 willcl-ark: Code review ACK eca5085 Tree-SHA512: d545a03baf5030de64874b79add87b6ef5f95eb5ca31aa66007ee03554103d2eda5e56dfd4395d0a12e24b2e489457e4f19ed9e6d390351c72a0da630f03cc42
7b5261f contrib: fix using macdploy script without translations. (amisha) Pull request description: **Description** From what I deciphered reading the line https://github.com/bitcoin/bitcoin/blob/master/contrib/macdeploy/macdeployqtplus#L390 is that qt translations are optional to have hence we should be able to build without it but the case where the flag translations_dir falls back to its default Null value it raises this error. The config comments also mentioned that adding translation file is optional. ``` ./macdeployqtplus --help usage: macdeployqtplus [-h] [-verbose [VERBOSE]] [-no-plugins] [-no-strip] [-translations-dir path] [-zip zip] app-bundle Improved version of macdeployqt. Outputs a ready-to-deploy app in a folder "dist" and optionally wraps it in a .zip file. Note, that the "dist" folder will be deleted before deploying on each run. Optionally, Qt translation files (.qm) can be added to the bundle. ``` **Steps to reproduce** So I was following the general steps to set up app on macos however I didn't download any qt translations presuming it was optional from the comment linkedin in PR, so to reproduce if you have translation directories in place ull need to delete them and then try to build the file, otherwise don't download it at all and try to build it. It should fail on that flag as translations dir was never downloaded. **Approach taken** I have moved the code which adds language files under the if statement that first checks if the value of the flag is not Null before referencing it. ACKs for top commit: ismaelsadeeq: ACK 7b5261f Tree-SHA512: 8d51b17569e42c9feb95e1be17b1551c708a05eb44b82c74db0b25e07006b4ee223d64484f8bdb2ee1420f6e571686561ae1c09bd3362f77dcbb507bc5085f86
14ae71f test: make notfound_on_unannounced more reliable (David Gumberg) 99bc552 test: fix (w)txid confusion in p2p_leak_tx.py (Martin Zumsande) 576dd97 test: increase timeout in p2p_leak_tx.py (Martin Zumsande) Pull request description: This fixes two issues with `p2p_leak_tx.py`: 1.) #33090: As far as I can see, this is just the randomness of `NextInvToInbounds`/ `rand_exp_duration`, which has a probability of `e^-(60s/5s) = 6.14×10^−6` to result in a period > 60s (our waiting time), so that the test would fail every 160k runs... Doubling the timeout should be sufficient to lower the probability drastically. 2.) The subtest `test_notfound_on_unannounced_tx` has some (w)txid confusion: we send a `MSG_TX`-type getdata with a `wtxid` in it, which necessarily always results in a NOTFOUND. Fixed this, and change the subtest to be more deterministic based on `mocktime`. ACKs for top commit: stratospher: ACK 14ae71f. nice restructuring using mocktime! davidgumberg: reACK 14ae71f vasild: ACK 14ae71f Tree-SHA512: be5a4ca7bf56f82b6fa04d90ef9312dc2e6f8ff7ddf70b39d979dc42fbdd823157109b8b5dc46eb7f81ac1e816f40e6966b3c8a7d384aadee01e2189c20d3e3a
…10min in the future 8e47ed6 test: addrman: check isTerrible when time is more than 10min in the future (brunoerg) Pull request description: This PR adds test coverage to kill the following mutant (https://corecheck.dev/mutation/src/addrman.cpp#L76): ```diff diff --git a/src/addrman.cpp b/src/addrman.cpp index 9c3a24d..0ffd349315 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -73,7 +73,7 @@ bool AddrInfo::IsTerrible(NodeSeconds now) const } if (nTime > now + 10min) { // came in a flying DeLorean - return true; + return false; } ``` When the `nTime` is set 10 minutes in the future the addr should be marked as terrible. ACKs for top commit: Crypt-iQ: crACK 8e47ed6 danielabrozzoni: tACK 8e47ed6 marcofleon: Nice, code review ACK 8e47ed6 Tree-SHA512: b53b3aa234a73ec7808cb1555916ac64dd707f230ec290a1712493ece8e274a060e16d862b31df0f744804ebd3c0c2825c49becb7d3040cc358e48c4002524cb
…ramework dda5228 test: set par=2 in default config for functional test framework (Andrew Toth) Pull request description: Depending on the host machine, a default `par` value can spawn up to 15 script verification threads for each node. Running the functional test suite with default `par` can exhaust file descriptors or hit other resource limits when many threads are spawned. These threads are mostly idle and the same code paths are executed with a value of `par=2`. Limit this to 2 for functional tests that do not override the default option. ACKs for top commit: maflcko: lgtm ACK dda5228 pablomartin4btc: ACK dda5228 l0rinc: Code review ACK dda5228 theStack: ACK dda5228 Tree-SHA512: 4459972330ff50ac7391141db6382579de09d84e68959eaeb5f20972bb9daf9aac1bd68355028ded9ee65e838c12dbd53e6f3bb6cdc375d269f666c19a19eaec
…uling 0f7d4ee p2p: Use different inbound inv timer per network (Martin Zumsande) 94db966 net: use generic network key for addrcache (Martin Zumsande) Pull request description: Currently, `NextInvToInbounds` schedules each round of `inv` at the same time for all inbound peers. It's being done this way because with a separate timer per peer (like it's done for outbounds), an attacker could do multiple connections to learn about the time a transaction arrived. (#13298). However, having a single timer for inbounds of all networks is also an obvious fingerprinting vector: Connecting to a suspected pair of privacy-network and clearnet addresses and observing the `inv` pattern makes it trivial to confirm or refute that they are the same node. This PR changes it such that a separate timer is used for each network. It uses the existing method from `getaddr` caching and generalizes it to be saved in a new field `m_network_key` in `CNode` which will be used for both `getaddr` caching and `inv` scheduling, and can also be used for any future anti-fingerprinting measures. ACKs for top commit: sipa: utACK 0f7d4ee stratospher: reACK 0f7d4ee. naiyoma: Tested ACK 0f7d4ee danielabrozzoni: reACK 0f7d4ee Tree-SHA512: e197c3005b2522051db432948874320b74c23e01e66988ee1ee11917dac0923f58c1252fa47da24e68b08d7a355d8e5e0a3ccdfa6e4324cb901f21dfa880cd9c
…ode() c76de2e net: support overriding the proxy selection in ConnectNode() (Vasil Dimov) Pull request description: Normally `ConnectNode()` would choose whether to use a proxy and which one. Make it possible to override this from the callers and same for `OpenNetworkConnection()` - pass down the proxy to `ConnectNode()`. Document both functions. This is useful if we want to open connections to IPv4 or IPv6 peers through the Tor SOCKS5 proxy. Also have `OpenNetworkConnection()` return whether the connection succeeded or not. This can be used when the caller needs to keep track of how many (successful) connections were opened. --- This is part of [#29415 Broadcast own transactions only via short-lived Tor or I2P connections](#29415). Putting it in its own PR to reduce the size of #29415 and because it does not depend on the other commits from there. ACKs for top commit: stratospher: ACK c76de2e. optout21: ACK c76de2e mzumsande: Code Review ACK c76de2e andrewtoth: ACK c76de2e Tree-SHA512: 1d266e4280cdb1d0599971fa8b5da58b1b7451635be46abb15c0b823a1e18cf6e7bcba4a365ad198e6fd1afee4097d81a54253fa680c8b386ca6b9d68d795ff0
1aaaaa0 fuzz: Drop unused workaround after Apple-Clang bump (MarcoFalke) fadad7a Drop support for EOL macOS 13 (MarcoFalke) Pull request description: Now that macOS 13 is EOL (https://en.wikipedia.org/wiki/MacOS_Ventura), it seems odd to still support it. (macOS Ventura 13.7.8 received its final security update on 20 Aug 2025: https://support.apple.com/en-us/100100) This patch will only be released in version 31.x, another 6 months out from now. So: * Update the depends build and release note template to drop EOL macOS 13. * As a result, update the earliest Xcode to version 16 in CI. * Also, bump the macOS CI runner to version 15, to avoid issues when version 14 will be at its EOL in about 1 year. This also allows to drop a small workaround in the fuzz tests and unlocks libcpp hardening (#33462) ACKs for top commit: stickies-v: re-ACK 1aaaaa0 l0rinc: code review ACK 1aaaaa0 hodlinator: re-ACK 1aaaaa0 hebasto: ACK 1aaaaa0. Tree-SHA512: 6d247a8432ef8ea8c6ff2a221472b278f8344346b172980299507f9898bb9e8e16480c128b1f4ca692bcbcc393da2b2fd6895ac5f118bc09e0f30f910529d20c
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.