Bitcoin Core Github
43 subscribers
123K links
Download Telegram
👍 vasild approved a pull request: "multiprocess: Add libmultiprocess git subtree"
(https://github.com/bitcoin/bitcoin/pull/31741#pullrequestreview-2626370787)
ACK 66c318abe1b7df3e2ff1035376bc5f4b2059626a
💬 vasild commented on pull request "multiprocess: Add libmultiprocess git subtree":
(https://github.com/bitcoin/bitcoin/pull/31741#discussion_r1961422233)
style: Our CMake files use 2-space for indentation and no space after `if` like this: `if(FOO`. When we were switching to CMake I assumed this is ok because it was all consistent. Now I realize that people will keep adding changes that use 4-space indentation and a space after `if` because the rest of the code base uses that.

Maybe just ignore this and accept that our CMake files will end up with an inconsistent mixture of different styles?
🤔 stickies-v reviewed a pull request: "Fix delimeter in `package-msg` field of `submitpackage` RPC"
(https://github.com/bitcoin/bitcoin/pull/31900#pullrequestreview-2626465092)
The developer notes [state](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#rpc-interface-guidelines):

> Argument and field naming: please consider whether there is already a naming style or spelling convention in the API for the type of object in question (blockhash, for example), and if so, try to use that. If not, use snake case fee_delta (and not, e.g. feedelta or camel case feeDelta).
>
> Rationale: Consistency with the existing interface.

So it seems like if
...
💬 zaidmstrr commented on pull request "rpc: combinerawtransaction now rejects unmergeable transactions":
(https://github.com/bitcoin/bitcoin/pull/31298#discussion_r1961477434)
```suggestion
for (unsigned int idx{0}; idx < txs.size(); idx++) {
```
nit: don't need to add the extra space
💬 zaidmstrr commented on pull request "rpc: combinerawtransaction now rejects unmergeable transactions":
(https://github.com/bitcoin/bitcoin/pull/31298#discussion_r1961489882)
```suggestion
for (unsigned int i{0}; i < mergedTx.vin.size(); ++i) {
```
nit: same for here `++i` should be prioritised.
💬 zaidmstrr commented on pull request "rpc: combinerawtransaction now rejects unmergeable transactions":
(https://github.com/bitcoin/bitcoin/pull/31298#discussion_r1961478912)
```suggestion
for (unsigned int k{0}; k < txVariantsCopy.size(); ++k) {
```
nit: `++k` should be given more prefrence then `k++ `
💬 TheCharlatan commented on pull request "kernel: Introduce initial C header API":
(https://github.com/bitcoin/bitcoin/pull/30595#issuecomment-2668392827)
Rebased a604321c3e4bd50b52fa28e8567f6b068b2d2fb3 -> 251a55f2f0cc3cdfb7fa0015b76772586134cde3 ([kernelApi_24](https://github.com/TheCharlatan/bitcoin/tree/kernelApi_24) -> [kernelApi_25](https://github.com/TheCharlatan/bitcoin/tree/kernelApi_25), [compare](https://github.com/TheCharlatan/bitcoin/compare/kernelApi_24..kernelApi_25))
💬 maflcko commented on pull request "test, refactor: Add TestNode.binaries to hold binary paths":
(https://github.com/bitcoin/bitcoin/pull/31866#discussion_r1961532157)
> > It would be better to fully move all touched code of this pull into `TestNode` and only allow getting binaries through the `TestNode` interface.
>
> This doesn't make much sense to me. I wouldn't want tests to be using `self.nodes[0].binaries` if they aren't actually interacting with node 0, and when a node 0 object might not even exist. If tests just need to call some binaries, they should be able to use a standalone binaries object without creating a fake node or going through an unrela
...
💬 maflcko commented on issue "Intermittent issue in p2p_i2p_ports.py AssertionError: [node 0] Expected messages "['Error connecting to [...].b32.i2p:0: Cannot connect to 127.0.0.1:60000']" does not partially match log:":
(https://github.com/bitcoin/bitcoin/issues/30030#issuecomment-2668411603)
https://cirrus-ci.com/task/6088386139652096?logs=ci#L3797
💬 Sjors commented on pull request "Have createNewBlock() wait for tip, make rpc handle shutdown during long poll and wait methods":
(https://github.com/bitcoin/bitcoin/pull/31785#discussion_r1961542693)
Agreed, though both disappeared in my last push.
💬 Sjors commented on pull request "Have createNewBlock() wait for tip, make rpc handle shutdown during long poll and wait methods":
(https://github.com/bitcoin/bitcoin/pull/31785#discussion_r1961544741)
I went back to the old behavior.
💬 Zero-1729 commented on pull request "util: detect and warn when using exFAT on MacOS":
(https://github.com/bitcoin/bitcoin/pull/31453#issuecomment-2668427141)
I agree with @sipa here, I think the scope and focus of this PR should remain the macOS external SSD exFAT issue which is well documented and easily testable (both the error and @willcl-ark's warning).

Once there is a similar level of replicability for the SD card or similar issue, there can be a separate follow up PR that addresses that.
💬 Sjors commented on pull request "Have createNewBlock() wait for tip, make rpc handle shutdown during long poll and wait methods":
(https://github.com/bitcoin/bitcoin/pull/31785#issuecomment-2668432011)
> the current code first sets the tip and then starts the RPC, so this is mostly theoretical or about future changes that might swap the startup order.

Indeed, that's what it's supposed to do.

I ended up simplifying things a bit. The original `CHECK_NONFATAL(miner.getTip()` has been replaced with `JSONRPCError(RPC_IN_WARMUP`. So in the unlikely event there's no tip, the user gets a clear error. I also added an `Assume`, so we can fix things if it turns out `SetRPCWarmupFinished` was called
...
💬 Sjors commented on pull request "Have createNewBlock() wait for tip, make rpc handle shutdown during long poll and wait methods":
(https://github.com/bitcoin/bitcoin/pull/31785#issuecomment-2668483777)
I forgot that you can't use `Assume` in RPC code. Using `NONFATAL_UNREACHABLE` instead, though that's not as clear to the user.
💬 purpleKarrot commented on pull request "cmake: Fix `-pthread` flags in summary":
(https://github.com/bitcoin/bitcoin/pull/31724#issuecomment-2668512824)
There are two general problems with printing a build summary at configure time:

1. It is annoying visual clutter. The cmake configure log should contain status events and important warnings as well as errors. Detailed settings can be analyzed and modified in the cache editor such as `ccmake`. Currently, when using `ccmake`, this dreaded summary has to be dismissed with `e` after each configure run with `c`. This is because make treats the summary as a warning.

2. There is no way to know al
...
📝 maflcko opened a pull request: "test: Assert unused port to debug intermittent issue 30030"
(https://github.com/bitcoin/bitcoin/pull/31903)
`p2p_i2p_ports.py` is intermittently failing in tests on Cirrus, GHA, and locally.

However, the reason is unclear.

Assert that the port is unused to possibly get more details for further actions.
💬 maflcko commented on issue "Intermittent issue in p2p_i2p_ports.py AssertionError: [node 0] Expected messages "['Error connecting to [...].b32.i2p:0: Cannot connect to 127.0.0.1:60000']" does not partially match log:":
(https://github.com/bitcoin/bitcoin/issues/30030#issuecomment-2668550971)
Not sure what to do here. Let's print the offending program name? See https://github.com/bitcoin/bitcoin/pull/31903
💬 Sjors commented on pull request "Have createNewBlock() wait for tip, make rpc handle shutdown during long poll and wait methods":
(https://github.com/bitcoin/bitcoin/pull/31785#issuecomment-2668567278)
Four CI machines consistently failing `rpc_blockchain.py` (either `--v1transport` or `--v2transport`) at:

```py
def assert_waitforheight(height, timeout=2):
assert_equal(
node.waitforblockheight(height=height, timeout=timeout)['height'],
current_height)
```

With "Remote end closed connection without response", but not much useful info otherwise. Can't reproduce locally yet.
💬 maflcko commented on pull request "Have createNewBlock() wait for tip, make rpc handle shutdown during long poll and wait methods":
(https://github.com/bitcoin/bitcoin/pull/31785#discussion_r1961627062)
```suggestion
BlockRef current_block{*CHECK_NONFATAL(miner.getTip())};
// Abort if RPC came out of warmup too early

```

There is no need for optional, if the value can never be nullopt
💬 hodlinator commented on pull request "doc: clarify loadwallet path loading for wallets":
(https://github.com/bitcoin/bitcoin/pull/30302#discussion_r1961635509)
I think "DriveLetter:" is more confusing than "C:". This is an example, not some kind of catch-all pattern.