✅ achow101 closed an issue: "Fr to"
(https://github.com/bitcoin/bitcoin/issues/33441)
(https://github.com/bitcoin/bitcoin/issues/33441)
📝 l0rinc opened a pull request: "log: don't rate limit "rolling forward" messages"
(https://github.com/bitcoin/bitcoin/pull/33443)
On an incomplete reindex the blocks will need to be replayed. This results in excessive `Rolling forward` which quickly triggers the recently introduced log rate limiter. Since the corresponding `UpdateTipLog` is also not rate limited, we can either remove the rate limit here as well or change logging to display fewer rolling forward messages. This PR does the first.
Reproducer:
* start a normal ibd, stop after some progress
* do a reindex, stop before it finishes
* restart the node normal
...
(https://github.com/bitcoin/bitcoin/pull/33443)
On an incomplete reindex the blocks will need to be replayed. This results in excessive `Rolling forward` which quickly triggers the recently introduced log rate limiter. Since the corresponding `UpdateTipLog` is also not rate limited, we can either remove the rate limit here as well or change logging to display fewer rolling forward messages. This PR does the first.
Reproducer:
* start a normal ibd, stop after some progress
* do a reindex, stop before it finishes
* restart the node normal
...
🤔 mzumsande reviewed a pull request: "validation: make the "rolling forward" loop interruptible"
(https://github.com/bitcoin/bitcoin/pull/33442#pullrequestreview-3248539713)
I did this in #30155 a while back, but in a way such that any partial progress would be saved, and we continue with the next startup.
In any case, now that we flush every hour it's probably a less pressing issue.
(https://github.com/bitcoin/bitcoin/pull/33442#pullrequestreview-3248539713)
I did this in #30155 a while back, but in a way such that any partial progress would be saved, and we continue with the next startup.
In any case, now that we flush every hour it's probably a less pressing issue.
👍 l0rinc approved a pull request: "system: improve handling around GetTotalRAM()"
(https://github.com/bitcoin/bitcoin/pull/33435#pullrequestreview-3248537350)
ACK 8fcf71ca005449e639f189dec7ec0163a07e6d37
Reproduced the unused clamp on FreeBSD and that the fix returns the correct memory on FreeBSD and NetBSD and OpenBSD as well (`__illumos__` was tested by @hebasto).
I have also tested that on systems that don't support the memory query the test is gracefully skipped and reported as skipped.
Thanks for the quick fix.
(https://github.com/bitcoin/bitcoin/pull/33435#pullrequestreview-3248537350)
ACK 8fcf71ca005449e639f189dec7ec0163a07e6d37
Reproduced the unused clamp on FreeBSD and that the fix returns the correct memory on FreeBSD and NetBSD and OpenBSD as well (`__illumos__` was tested by @hebasto).
I have also tested that on systems that don't support the memory query the test is gracefully skipped and reported as skipped.
Thanks for the quick fix.
💬 l0rinc commented on pull request "system: improve handling around GetTotalRAM()":
(https://github.com/bitcoin/bitcoin/pull/33435#discussion_r2365342452)
I think this should likely be:
```suggestion
"skipping total_ram_test"
```
(https://github.com/bitcoin/bitcoin/pull/33435#discussion_r2365342452)
I think this should likely be:
```suggestion
"skipping total_ram_test"
```
✅ l0rinc closed a pull request: "validation: make the "rolling forward" loop interruptible"
(https://github.com/bitcoin/bitcoin/pull/33442)
(https://github.com/bitcoin/bitcoin/pull/33442)
💬 l0rinc commented on pull request "validation: make the "rolling forward" loop interruptible":
(https://github.com/bitcoin/bitcoin/pull/33442#issuecomment-3314621836)
Closing in favor of https://github.com/bitcoin/bitcoin/pull/30155
(https://github.com/bitcoin/bitcoin/pull/33442#issuecomment-3314621836)
Closing in favor of https://github.com/bitcoin/bitcoin/pull/30155
💬 l0rinc commented on pull request "validation: Make ReplayBlocks interruptible":
(https://github.com/bitcoin/bitcoin/pull/30155#issuecomment-3314625043)
I have tested this with a recent interrupted reindex, it correctly interrupts and flushes and on next start continues from where we left off:
```
2025-09-20T06:11:25Z Rolling forward 00000000127100b0bcdde9e9f363ae231c73e885e2d527821ef9ce0457930494 (51141)
2025-09-20T06:11:25Z Rolling forward 0000000013484b73eff09514abc3f916b319eb9f43c55f051be9e760ad2210d0 (51142)
^C2025-09-20T06:11:25Z Flushing intermediate state of replay
2025-09-20T06:11:25Z [error] Unable to replay blocks. You will need
...
(https://github.com/bitcoin/bitcoin/pull/30155#issuecomment-3314625043)
I have tested this with a recent interrupted reindex, it correctly interrupts and flushes and on next start continues from where we left off:
```
2025-09-20T06:11:25Z Rolling forward 00000000127100b0bcdde9e9f363ae231c73e885e2d527821ef9ce0457930494 (51141)
2025-09-20T06:11:25Z Rolling forward 0000000013484b73eff09514abc3f916b319eb9f43c55f051be9e760ad2210d0 (51142)
^C2025-09-20T06:11:25Z Flushing intermediate state of replay
2025-09-20T06:11:25Z [error] Unable to replay blocks. You will need
...
💬 l0rinc commented on pull request "RFC: blocks: add `-reobfuscate-blocks` arg to xor existing blk/rev on startup":
(https://github.com/bitcoin/bitcoin/pull/33324#discussion_r2365380262)
Thanks again for the review, I have pushed a change to fix the CI and took a few suggestion from your branch (chunking, code simplifications), but kept the original file iteration with progress indicator for now.
The parallelization complicates the situation considerably, I will see if I can find a simpler way or if single-threaded execution is also acceptable.
(https://github.com/bitcoin/bitcoin/pull/33324#discussion_r2365380262)
Thanks again for the review, I have pushed a change to fix the CI and took a few suggestion from your branch (chunking, code simplifications), but kept the original file iteration with progress indicator for now.
The parallelization complicates the situation considerably, I will see if I can find a simpler way or if single-threaded execution is also acceptable.
💬 vasild commented on pull request "system: improve handling around GetTotalRAM()":
(https://github.com/bitcoin/bitcoin/pull/33435#discussion_r2365387629)
By the way:
```
warning: implicit conversion changes signedness: 'long' to 'unsigned long long' [-Wsign-conversion]
... return clamp(1ULL * p * s);
... ~ ^
```
changing it to
```cpp
clamp(static_cast<uint64_t>(p) * static_cast<uint64_t>(s))
```
silences that. `-Wsign-conversion` also enabled by `-Wconversion` is not used by Bitcoin Core, so we don't see it when compiling. In this case the code is ok because values are explicitly checked that they are greater than 0 be
...
(https://github.com/bitcoin/bitcoin/pull/33435#discussion_r2365387629)
By the way:
```
warning: implicit conversion changes signedness: 'long' to 'unsigned long long' [-Wsign-conversion]
... return clamp(1ULL * p * s);
... ~ ^
```
changing it to
```cpp
clamp(static_cast<uint64_t>(p) * static_cast<uint64_t>(s))
```
silences that. `-Wsign-conversion` also enabled by `-Wconversion` is not used by Bitcoin Core, so we don't see it when compiling. In this case the code is ok because values are explicitly checked that they are greater than 0 be
...
💬 TheCharlatan commented on pull request "kernel: Introduce initial C header API":
(https://github.com/bitcoin/bitcoin/pull/30595#discussion_r2365546655)
I think it would be a nice addition. Others have asked for it too before. I'm not sure about the best approach to expose them though. Should we just copy them, or make the header installable and reuse it for both our internal code and the external API?
(https://github.com/bitcoin/bitcoin/pull/30595#discussion_r2365546655)
I think it would be a nice addition. Others have asked for it too before. I'm not sure about the best approach to expose them though. Should we just copy them, or make the header installable and reuse it for both our internal code and the external API?
✅ fanquake closed a pull request: "[30.0] Final changes + rc2"
(https://github.com/bitcoin/bitcoin/pull/33424)
(https://github.com/bitcoin/bitcoin/pull/33424)
📝 fanquake reopened a pull request: "[30.0] Final changes + rc2"
(https://github.com/bitcoin/bitcoin/pull/33424)
Backports:
* #28592
* #33420
Finalise `v30.0rc2`
(https://github.com/bitcoin/bitcoin/pull/33424)
Backports:
* #28592
* #33420
Finalise `v30.0rc2`
💬 fanquake commented on pull request "build: Remove lingering Windows registry & shortcuts (#32132 follow-up)":
(https://github.com/bitcoin/bitcoin/pull/33422#issuecomment-3314831522)
Backported to 30.x in #33424.
(https://github.com/bitcoin/bitcoin/pull/33422#issuecomment-3314831522)
Backported to 30.x in #33424.
💬 pinheadmz commented on issue "RPC: getblock(header) returns the same target for every block":
(https://github.com/bitcoin/bitcoin/issues/33440#issuecomment-3314882141)
> Why would we want to know the current target when looking up information about an old block?
@Sjors
(https://github.com/bitcoin/bitcoin/issues/33440#issuecomment-3314882141)
> Why would we want to know the current target when looking up information about an old block?
@Sjors
💬 sdaftuar commented on pull request "Cluster mempool implementation":
(https://github.com/bitcoin/bitcoin/pull/28676#discussion_r2365588805)
Good catch -- I'm working on a solution to this, possibly involving a more extensive rewrite of the TRUC checks (to not need parents/ancestors explicitly calculated) and the RBF checks (to not require ancestors to be calculated before we verify that the cluster size limits are respected).
(https://github.com/bitcoin/bitcoin/pull/28676#discussion_r2365588805)
Good catch -- I'm working on a solution to this, possibly involving a more extensive rewrite of the TRUC checks (to not need parents/ancestors explicitly calculated) and the RBF checks (to not require ancestors to be calculated before we verify that the cluster size limits are respected).
💬 john-moffett commented on pull request "rpc: Always return per-wtxid entries in submitpackage tx-results":
(https://github.com/bitcoin/bitcoin/pull/33427#discussion_r2365625178)
This is somewhat academic today as the RPC already [errors](https://github.com/bitcoin/bitcoin/blob/df101c97c260793627208d8c334afc9551759e2b/src/rpc/mempool.cpp#L1054) on anything but all-or-none results from `ProcessNewPackage`:
`CHECK_NONFATAL(m_tx_results.size() == txns.size() || m_tx_results.empty())`
So if partial maps from `ProcessNewPackage` were ever done in practice, a call to `submitpackage` would run into that first check. If that guard were relaxed and tested to accommodate the
...
(https://github.com/bitcoin/bitcoin/pull/33427#discussion_r2365625178)
This is somewhat academic today as the RPC already [errors](https://github.com/bitcoin/bitcoin/blob/df101c97c260793627208d8c334afc9551759e2b/src/rpc/mempool.cpp#L1054) on anything but all-or-none results from `ProcessNewPackage`:
`CHECK_NONFATAL(m_tx_results.size() == txns.size() || m_tx_results.empty())`
So if partial maps from `ProcessNewPackage` were ever done in practice, a call to `submitpackage` would run into that first check. If that guard were relaxed and tested to accommodate the
...
📝 enirox001 opened a pull request: "rpc: Fix dumptxoutset rollback with competing forks"
(https://github.com/bitcoin/bitcoin/pull/33444)
Fixes dumptxoutset rollback functionality when competing forks exist.
**Problem:**
dumptxoutset rollback fails when competing forks are present at the target height, even though it should work on the active chain regardless of forks.
Attempts to fix #32817.
**Solution:**
- Fix rollback logic to handle competing forks correctly
- Add test coverage for the fix
**Changes:**
- Add functional test demonstrating the issue and verifying the fix
- Update dumptxoutset rollback implementa
...
(https://github.com/bitcoin/bitcoin/pull/33444)
Fixes dumptxoutset rollback functionality when competing forks exist.
**Problem:**
dumptxoutset rollback fails when competing forks are present at the target height, even though it should work on the active chain regardless of forks.
Attempts to fix #32817.
**Solution:**
- Fix rollback logic to handle competing forks correctly
- Add test coverage for the fix
**Changes:**
- Add functional test demonstrating the issue and verifying the fix
- Update dumptxoutset rollback implementa
...
💬 fanquake commented on pull request "fuzz: reduce iterations in slow targets":
(https://github.com/bitcoin/bitcoin/pull/33429#issuecomment-3314984363)
@furszy Could you PR that branch separately?
(https://github.com/bitcoin/bitcoin/pull/33429#issuecomment-3314984363)
@furszy Could you PR that branch separately?
🚀 fanquake merged a pull request: "fuzz: reduce iterations in slow targets"
(https://github.com/bitcoin/bitcoin/pull/33429)
(https://github.com/bitcoin/bitcoin/pull/33429)