π¬ sipa commented on pull request "doc: corrected lockunspent rpc quoting":
(https://github.com/bitcoin/bitcoin/pull/31275#issuecomment-3514327614)
I wanted to verify if all invocations of `HelpExampleRpc` produce valid JSON, so I tested by adding a `UniValue::read` inside the function. The following RPCs all fail it still (with this PR):
* `getblockfrompeer`
* `importmempool`
* `getindexinfo`
* `addnode`
* `addconnection`
* `sendmsgtopeer`
* `createwalletdescriptor`
* `restorewallet`
* `listlabels`
* `loadwallet`
* `unloadwallet`
I think this means we either need to:
* Get rid of the `curl` example codes in the RPC help text
...
(https://github.com/bitcoin/bitcoin/pull/31275#issuecomment-3514327614)
I wanted to verify if all invocations of `HelpExampleRpc` produce valid JSON, so I tested by adding a `UniValue::read` inside the function. The following RPCs all fail it still (with this PR):
* `getblockfrompeer`
* `importmempool`
* `getindexinfo`
* `addnode`
* `addconnection`
* `sendmsgtopeer`
* `createwalletdescriptor`
* `restorewallet`
* `listlabels`
* `loadwallet`
* `unloadwallet`
I think this means we either need to:
* Get rid of the `curl` example codes in the RPC help text
...
π¬ sdaftuar commented on pull request "Cluster mempool":
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2512305384)
See also https://github.com/bitcoin/bitcoin/pull/33591/commits/7e715bc2749378f92284a1924f2079492adccf3f
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2512305384)
See also https://github.com/bitcoin/bitcoin/pull/33591/commits/7e715bc2749378f92284a1924f2079492adccf3f
π ryanofsky opened a pull request: "kernel: Improve logging API"
(https://github.com/bitcoin/bitcoin/pull/33847)
Simplify kernel logging API and try to connect it to the rest of the kernel API by letting log options be set on `Logger` objects directly and `Logger` objects to be associated with `Context` objects directly. Also drop `logging_disable()` function and avoid having library accumulate log messages in a 1MB buffer by default.
Changes are intended to make the API a little less surprising and more future proof. Rationale is described in some more detail the commit message.
This change is not b
...
(https://github.com/bitcoin/bitcoin/pull/33847)
Simplify kernel logging API and try to connect it to the rest of the kernel API by letting log options be set on `Logger` objects directly and `Logger` objects to be associated with `Context` objects directly. Also drop `logging_disable()` function and avoid having library accumulate log messages in a 1MB buffer by default.
Changes are intended to make the API a little less surprising and more future proof. Rationale is described in some more detail the commit message.
This change is not b
...
π¬ glozow commented on pull request "Cluster mempool":
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2512026907)
in 6b791cc4ee9: this arg is not necessary
```suggestion
self.extra_args = [['-limitdescendantsize=1000', '-limitancestorsize=1000', f'-limitancestorcount={CUSTOM_ANCESTOR_COUNT}', f'-limitdescendantcount={CUSTOM_DESCENDANT_COUNT}', "-limitclustersize=1000"]]
```
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2512026907)
in 6b791cc4ee9: this arg is not necessary
```suggestion
self.extra_args = [['-limitdescendantsize=1000', '-limitancestorsize=1000', f'-limitancestorcount={CUSTOM_ANCESTOR_COUNT}', f'-limitdescendantcount={CUSTOM_DESCENDANT_COUNT}', "-limitclustersize=1000"]]
```
π¬ glozow commented on pull request "Cluster mempool":
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2512035648)
nitty nity in 6b791cc4ee9eda5cccc310e3efb869af36057935: it feels nice and future-proof to have annotations like
```suggestion
m_txgraph->AddDependency(/*parent=*/*it, /*child=*/*childIter);
```
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2512035648)
nitty nity in 6b791cc4ee9eda5cccc310e3efb869af36057935: it feels nice and future-proof to have annotations like
```suggestion
m_txgraph->AddDependency(/*parent=*/*it, /*child=*/*childIter);
```
π¬ glozow commented on pull request "Cluster mempool":
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2511991832)
nit in cf1bcbbb8e1a4cb72cd37a44dcd8811db8a1958b: `clustercount` would be a better name. Looks like `*size` is used to mean aggregate size here in `ancestorsize`
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2511991832)
nit in cf1bcbbb8e1a4cb72cd37a44dcd8811db8a1958b: `clustercount` would be a better name. Looks like `*size` is used to mean aggregate size here in `ancestorsize`
π¬ glozow commented on pull request "Cluster mempool":
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2512031063)
in 6b791cc4ee9eda5cccc310e3efb869af36057935
```suggestion
/** Check if any cluster limits are exceeded. Returns true if pass, false if fail.*/
bool CheckMemPoolPolicyLimits();
````
(https://github.com/bitcoin/bitcoin/pull/33629#discussion_r2512031063)
in 6b791cc4ee9eda5cccc310e3efb869af36057935
```suggestion
/** Check if any cluster limits are exceeded. Returns true if pass, false if fail.*/
bool CheckMemPoolPolicyLimits();
````
π¬ 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
...