π¬ glozow commented on pull request "Cluster mempool":
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2512203125)
187f78991fad3c521e55508a9d1901d3767c2f89: I'm not sure if there is coverage for the case we were trying to prevent with the old Rule 2:
```diff
diff --git a/test/functional/feature_rbf.py b/test/functional/feature_rbf.py
index 288a501d53e..f29e7a77803 100755
--- a/test/functional/feature_rbf.py
+++ b/test/functional/feature_rbf.py
@@ -13,6 +13,7 @@ from test_framework.messages import (
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import (
...
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2512203125)
187f78991fad3c521e55508a9d1901d3767c2f89: I'm not sure if there is coverage for the case we were trying to prevent with the old Rule 2:
```diff
diff --git a/test/functional/feature_rbf.py b/test/functional/feature_rbf.py
index 288a501d53e..f29e7a77803 100755
--- a/test/functional/feature_rbf.py
+++ b/test/functional/feature_rbf.py
@@ -13,6 +13,7 @@ from test_framework.messages import (
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import (
...
π¬ glozow commented on pull request "Cluster mempool":
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2512379818)
Good catch π
I'm very very happy to save this for a followup, but since the repeated locking and cleanups aren't ideal, I thought I'd give another approach a shot: https://github.com/glozow/bitcoin/tree/2025-10-mempoolaccept-layers
It keeps two routes, `AcceptSingleTransaction` and `AcceptPackage` (which allows packages of size 1). I had to make `m_pool` a public member of `CTxMemPool` (that felt bad at first, but the caller needs to provide it, so it seems reasonable to have access?).
...
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2512379818)
Good catch π
I'm very very happy to save this for a followup, but since the repeated locking and cleanups aren't ideal, I thought I'd give another approach a shot: https://github.com/glozow/bitcoin/tree/2025-10-mempoolaccept-layers
It keeps two routes, `AcceptSingleTransaction` and `AcceptPackage` (which allows packages of size 1). I had to make `m_pool` a public member of `CTxMemPool` (that felt bad at first, but the caller needs to provide it, so it seems reasonable to have access?).
...
π¬ glozow commented on pull request "Cluster mempool":
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2512390118)
Good catch π
I'm very very happy to save this for a followup, but since the repeated locking and cleanups aren't ideal, I thought I'd give another approach a shot: https://github.com/glozow/bitcoin/tree/2025-10-mempoolaccept-layers
It keeps two routes, AcceptSingleTransaction and AcceptPackage (which allows packages of size 1). I had to make m_pool a public member of CTxMemPool (that felt bad at first, but the caller needs to provide it, so it seems reasonable to have access?).
One
...
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2512390118)
Good catch π
I'm very very happy to save this for a followup, but since the repeated locking and cleanups aren't ideal, I thought I'd give another approach a shot: https://github.com/glozow/bitcoin/tree/2025-10-mempoolaccept-layers
It keeps two routes, AcceptSingleTransaction and AcceptPackage (which allows packages of size 1). I had to make m_pool a public member of CTxMemPool (that felt bad at first, but the caller needs to provide it, so it seems reasonable to have access?).
One
...
π€ polespinasa reviewed a pull request: "rpc: Optionally print feerates in sat/vb"
(https://github.com/bitcoin/bitcoin/pull/33741#pullrequestreview-3445589098)
Rebased following @w0xlt suggestions :)
(https://github.com/bitcoin/bitcoin/pull/33741#pullrequestreview-3445589098)
Rebased following @w0xlt suggestions :)
π¬ polespinasa commented on pull request "rpc: Optionally print feerates in sat/vb":
(https://github.com/bitcoin/bitcoin/pull/33741#discussion_r2512314414)
Yes maybe it's a better approach.
Moved the function into `core_write.cpp` and `core_io.h` similar to function `ValueFromAmount`.
(https://github.com/bitcoin/bitcoin/pull/33741#discussion_r2512314414)
Yes maybe it's a better approach.
Moved the function into `core_write.cpp` and `core_io.h` similar to function `ValueFromAmount`.
π¬ polespinasa commented on pull request "rpc: Optionally print feerates in sat/vb":
(https://github.com/bitcoin/bitcoin/pull/33741#discussion_r2512303937)
True!
I thought that there was the intention to add all values and not only `relayfee` and `incrementalfee` here as the comment ` // Those fields can be deprecated, to be replaced by the getmempoolinfo fields` seems suggest.
But seeing https://github.com/bitcoin/bitcoin/pull/25648/files#r935563077 I think I just misunderstood and the intention was to maybe remove them in the future and just use `getmempool` rpc to know that info.
(https://github.com/bitcoin/bitcoin/pull/33741#discussion_r2512303937)
True!
I thought that there was the intention to add all values and not only `relayfee` and `incrementalfee` here as the comment ` // Those fields can be deprecated, to be replaced by the getmempoolinfo fields` seems suggest.
But seeing https://github.com/bitcoin/bitcoin/pull/25648/files#r935563077 I think I just misunderstood and the intention was to maybe remove them in the future and just use `getmempool` rpc to know that info.
π¬ polespinasa commented on pull request "rpc: Optionally print feerates in sat/vb":
(https://github.com/bitcoin/bitcoin/pull/33741#discussion_r2512312634)
yup, good catch tanks! :)
(https://github.com/bitcoin/bitcoin/pull/33741#discussion_r2512312634)
yup, good catch tanks! :)
π¬ 151henry151 commented on pull request "Check required interfaces before generating manpages":
(https://github.com/bitcoin/bitcoin/pull/33828#issuecomment-3514498164)
Thanks for taking a look, fanquake.
I noticed #33085 had gone quiet for a little over three weeks with the review concerns still open, so I put this together.
In #33085 the script pulls component flags from `test/config.ini` (adding checks for CLI, chainstate, fuzz, USDT tracepoints, etc.), but that file only exists when tests are configured and most of those toggles donβt affect the manpages, so the script breaks in release-style builds. This branch reads `CMakeCache.txt`, the authorita
...
(https://github.com/bitcoin/bitcoin/pull/33828#issuecomment-3514498164)
Thanks for taking a look, fanquake.
I noticed #33085 had gone quiet for a little over three weeks with the review concerns still open, so I put this together.
In #33085 the script pulls component flags from `test/config.ini` (adding checks for CLI, chainstate, fuzz, USDT tracepoints, etc.), but that file only exists when tests are configured and most of those toggles donβt affect the manpages, so the script breaks in release-style builds. This branch reads `CMakeCache.txt`, the authorita
...
π¬ kevkevinpal commented on issue "`test_kernel` fails to build on Ubuntu 22.04":
(https://github.com/bitcoin/bitcoin/issues/33846#issuecomment-3514905241)
If you want to reproduce using docker here is the docker file
```
FROM ubuntu:22.04
RUN apt update && \
apt install -y git build-essential cmake pkgconf python3 libevent-dev libboost-dev libsqlite3-dev
WORKDIR /bitcoin
RUN git clone https://github.com/bitcoin/bitcoin.git .
RUN cmake -B build -DENABLE_IPC=OFF -DBUILD_KERNEL_LIB=ON && \
cmake --build build -j $(nproc)
```
(https://github.com/bitcoin/bitcoin/issues/33846#issuecomment-3514905241)
If you want to reproduce using docker here is the docker file
```
FROM ubuntu:22.04
RUN apt update && \
apt install -y git build-essential cmake pkgconf python3 libevent-dev libboost-dev libsqlite3-dev
WORKDIR /bitcoin
RUN git clone https://github.com/bitcoin/bitcoin.git .
RUN cmake -B build -DENABLE_IPC=OFF -DBUILD_KERNEL_LIB=ON && \
cmake --build build -j $(nproc)
```
π¬ Sjors commented on pull request "Enhanced error messages for invalid network prefix during address parsing.":
(https://github.com/bitcoin/bitcoin/pull/27260#issuecomment-3515363192)
CI fails with:
```
Bech32 address decoded with error: Invalid character or mixed case == Bech32(m) address decoded with error: Invalid character or mixed case
```
(https://github.com/bitcoin/bitcoin/pull/27260#issuecomment-3515363192)
CI fails with:
```
Bech32 address decoded with error: Invalid character or mixed case == Bech32(m) address decoded with error: Invalid character or mixed case
```
π¬ maflcko commented on issue "`test_kernel` fails to build on Ubuntu 22.04":
(https://github.com/bitcoin/bitcoin/issues/33846#issuecomment-3515396269)
Please remove the include. See https://github.com/bitcoin/bitcoin/actions/runs/19176694315/job/54823183155?pr=33810#step:9:18532 :
```
/home/admin/actions-runner/_work/_temp/src/test/kernel/test_kernel.cpp should remove these lines:
- #include <boost/test/included/unit_test.hpp> // lines 9-9
- #include <cstdlib> // lines 15-15
- #include <format> // lines 17-17
(https://github.com/bitcoin/bitcoin/issues/33846#issuecomment-3515396269)
Please remove the include. See https://github.com/bitcoin/bitcoin/actions/runs/19176694315/job/54823183155?pr=33810#step:9:18532 :
```
/home/admin/actions-runner/_work/_temp/src/test/kernel/test_kernel.cpp should remove these lines:
- #include <boost/test/included/unit_test.hpp> // lines 9-9
- #include <cstdlib> // lines 15-15
- #include <format> // lines 17-17
π€ hodlinator reviewed a pull request: "test, refactor: Embedded ASmap selected preparatory work"
(https://github.com/bitcoin/bitcoin/pull/33026#pullrequestreview-3441618331)
Reviewed 5bb456c92bbd27ebbba1773832b051968f162b8a
Thanks for providing a less intimidating PR as a stepping stone for reviewers new to this domain like myself.
---
PR description still mentions 4 commits but only 3 are currently present (after https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2429247548).
(https://github.com/bitcoin/bitcoin/pull/33026#pullrequestreview-3441618331)
Reviewed 5bb456c92bbd27ebbba1773832b051968f162b8a
Thanks for providing a less intimidating PR as a stepping stone for reviewers new to this domain like myself.
---
PR description still mentions 4 commits but only 3 are currently present (after https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2429247548).
π¬ hodlinator commented on pull request "test, refactor: Embedded ASmap selected preparatory work":
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2509317566)
nit in 5a63a5a1fdf84625c411acb72fa51e12f9a8b067:
New code should use more modern `constexpr std::byte`s (and optionally `reserve()` vector):
```diff
BOOST_AUTO_TEST_CASE(asmap_test_vectors)
{
// Randomly generated encoded ASMap with 128 ranges, up to 20-bit AS numbers.
- static const auto ASMAP_DATA =
+ constexpr auto ASMAP_DATA{
"fd38d50f7d5d665357f64bba6bfc190d6078a7e68e5d3ac032edf47f8b5755f87881bfd3633d9aa7c1fa279b3"
"6fe26c63bbc9de44e0f04e5a382d8e1cddbe1c26653b
...
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2509317566)
nit in 5a63a5a1fdf84625c411acb72fa51e12f9a8b067:
New code should use more modern `constexpr std::byte`s (and optionally `reserve()` vector):
```diff
BOOST_AUTO_TEST_CASE(asmap_test_vectors)
{
// Randomly generated encoded ASMap with 128 ranges, up to 20-bit AS numbers.
- static const auto ASMAP_DATA =
+ constexpr auto ASMAP_DATA{
"fd38d50f7d5d665357f64bba6bfc190d6078a7e68e5d3ac032edf47f8b5755f87881bfd3633d9aa7c1fa279b3"
"6fe26c63bbc9de44e0f04e5a382d8e1cddbe1c26653b
...
π¬ hodlinator commented on pull request "test, refactor: Embedded ASmap selected preparatory work":
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2509429711)
nit:
```suggestion
const int64_t size{db_file.size()};
```
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2509429711)
nit:
```suggestion
const int64_t size{db_file.size()};
```
π¬ hodlinator commented on pull request "test, refactor: Embedded ASmap selected preparatory work":
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2509422876)
Why do we get 14?
Tried adding...
```C++
{
AutoFile test{raw_file("rb"), obfuscation};
BOOST_CHECK_EQUAL(test.size(), 14);
}
```
...just after this block before digging into the data but it fails with `size()` suddenly returning 7 (which would be what we expect: 2 vector compact size bytes + 2+3 bytes of data).
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2509422876)
Why do we get 14?
Tried adding...
```C++
{
AutoFile test{raw_file("rb"), obfuscation};
BOOST_CHECK_EQUAL(test.size(), 14);
}
```
...just after this block before digging into the data but it fails with `size()` suddenly returning 7 (which would be what we expect: 2 vector compact size bytes + 2+3 bytes of data).
π¬ hodlinator commented on pull request "test, refactor: Embedded ASmap selected preparatory work":
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2509435441)
This last `seek()` can be removed and all unit tests still pass (259 non-skipped functional tests all passed as well, no failures in my non-`--extended` run), could add a test that covers this so we don't spawn any mutation testing mutants.
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2509435441)
This last `seek()` can be removed and all unit tests still pass (259 non-skipped functional tests all passed as well, no failures in my non-`--extended` run), could add a test that covers this so we don't spawn any mutation testing mutants.
π¬ hodlinator commented on pull request "test, refactor: Embedded ASmap selected preparatory work":
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2509450577)
nit: Should be moved above `DataStream::GetMemoryUsage()` so it's kept together with other `AutoFile` methods. Maybe after `AutoFile::tell` to keep some consistency with header file.
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2509450577)
nit: Should be moved above `DataStream::GetMemoryUsage()` so it's kept together with other `AutoFile` methods. Maybe after `AutoFile::tell` to keep some consistency with header file.
π¬ hodlinator commented on pull request "test, refactor: Embedded ASmap selected preparatory work":
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2509464158)
remark: Good that it is non-`const` as it is not thread-safe. :+1:
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2509464158)
remark: Good that it is non-`const` as it is not thread-safe. :+1:
π¬ hodlinator commented on pull request "test, refactor: Embedded ASmap selected preparatory work":
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2511238194)
remark: Tried...
```shell
βΏ printf fd38d50f7d5d665357f64bba6bfc190d6078a7e68e5d3ac032edf47f8b5755f87881bfd3633d9aa7c1fa279b36fe26c63bbc9de44e0f04e5a382d8e1cddbe1c26653bc939d4327f287e8b4d1f8aff33176787cb0ff7cb28e3fdaef0f8f47357f801c9f7ff7a99f7f9c9f99de7f3156ae00f23eb27a303bc486aa3ccc31ec19394c2f8a53dddea3cc56257f3b7e9b1f488be9c1137db823759aa4e071eef2e984aaf97b52d5f88d0f373dd190fe45e06efef1df7278be680a73a74c76db4dd910f1d30752c57fe2bc9f079f1a1e1b036c2a69219f11c5e11980a3fa51f4f82d36373de73b1863a8c
...
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2511238194)
remark: Tried...
```shell
βΏ printf fd38d50f7d5d665357f64bba6bfc190d6078a7e68e5d3ac032edf47f8b5755f87881bfd3633d9aa7c1fa279b36fe26c63bbc9de44e0f04e5a382d8e1cddbe1c26653bc939d4327f287e8b4d1f8aff33176787cb0ff7cb28e3fdaef0f8f47357f801c9f7ff7a99f7f9c9f99de7f3156ae00f23eb27a303bc486aa3ccc31ec19394c2f8a53dddea3cc56257f3b7e9b1f488be9c1137db823759aa4e071eef2e984aaf97b52d5f88d0f373dd190fe45e06efef1df7278be680a73a74c76db4dd910f1d30752c57fe2bc9f079f1a1e1b036c2a69219f11c5e11980a3fa51f4f82d36373de73b1863a8c
...
π¬ hodlinator commented on pull request "test, refactor: Embedded ASmap selected preparatory work":
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2511202729)
Instead of implementing `AutoFile::size()`, did you consider using `fs::file_size()` as we do in a few other places?
(https://github.com/bitcoin/bitcoin/pull/33026#discussion_r2511202729)
Instead of implementing `AutoFile::size()`, did you consider using `fs::file_size()` as we do in a few other places?
π€ Sjors reviewed a pull request: "Enhanced error messages for invalid network prefix during address parsing."
(https://github.com/bitcoin/bitcoin/pull/27260#pullrequestreview-3446684328)
Thanks for splitting base58 and bech32 stuff into separate commits. I think that 04d5d4acab4259505654a506c838fecb29fdb88d _Base58 decoding logic + bech32 decoding network awareness_ could itself be split, see inline comment from @l0rinc, since it's still contains a lot of bech32 changes despite the commit name.
My main other suggestion is to drop the first commit (and don't add the network name to error messages).
See inline comment for how to fix the test.
(https://github.com/bitcoin/bitcoin/pull/27260#pullrequestreview-3446684328)
Thanks for splitting base58 and bech32 stuff into separate commits. I think that 04d5d4acab4259505654a506c838fecb29fdb88d _Base58 decoding logic + bech32 decoding network awareness_ could itself be split, see inline comment from @l0rinc, since it's still contains a lot of bech32 changes despite the commit name.
My main other suggestion is to drop the first commit (and don't add the network name to error messages).
See inline comment for how to fix the test.