bitcoin_core_sv2 leverages new interruptWait IPC call#177
Conversation
0d79601 to
73ca3ce
Compare
bitcoin_core_sv2bitcoin_core_sv2 leverages new interruptWait IPC call
|
caught a new bug on Bitcoin Core, reported on bitcoin/bitcoin#34250 I assume there's nothing wrong on our side |
0ad1002 to
d23da7d
Compare
I still have to review this PR, but how did you manage this issue? |
449453d to
d0e0fa1
Compare
the bug there is that Bitcoin Core crashes whenever we disconnect from the UNIX socket while there's a pending I naively assumed that now that we're calling but from the discussions on bitcoin/bitcoin#34250, I learned that the fact that we got a response for with d23da7d now we have a global reference to a so I also introduced d0e0fa1 so that we can that way, we'll never disconnect while ideally this kind of thing should not happen on Bitcoin Core, and there's efforts to fix it under bitcoin/bitcoin#34250 whenever that's fixed, then arguably d0e0fa1 could be potentially reverted but tbh it also doesn't hurt to leave it there as an extra safeguard |
GitGab19
left a comment
There was a problem hiding this comment.
I ran some tests with v30.2, killing and restarting both Pool and JDC together to stress-test the node, and everything went smoothly.
tACK
xyephy
left a comment
There was a problem hiding this comment.
Tested with bitcoin v30.2 : it Builds, Connects to IPC socket, Receives templates correctly and Graceful shutdown works .
Minor observation is that: When shutdown happens during the min_interval sleep (not during waitNext), the interruptWait isn't called since the tokio::select! only wraps the waitNext call. This isn't a bug - the sleep will complete and the loop will break on the next iteration via the cancellation token check.
tACK
|
Will the changes here make us compatible with just If yes, we should update our docs, most of them are instructing $ rg v30 >
docker/README.md
18:* A fully synced **Bitcoin Core v30+** node running on **testnet4** (or any network you prefer)
pool-apps/pool/README.md
24:- Bitcoin Core v30+: an officially released Bitcoin Core node running locally, on the same machine, for which a UNIX socket connection will be established
bitcoin-core-sv2/src/lib.rs
9://! `bitcoin_core_sv2` allows for the official Bitcoin Core v30+ distribution (or any compatible
miner-apps/jd-client/README.md
48:- Bitcoin Core v30+: an officially released Bitcoin Core node running locally, on the same machine, for which a UNIX socket connection will be established
integration-tests/lib/template_provider.rs
61:/// Represents a Bitcoin Core v30+ node with IPC enabled.
112: // Download and setup Bitcoin Core v30 with IPC support
258:/// Represents a template provider using Bitcoin Core v30+ with IPC and standalone sv2-tp.
261:/// 1. Bitcoin Core v30+ (bitcoin-node) with IPC enabled
271: /// Start a new [`TemplateProvider`] instance with Bitcoin Core v30+ and standalone sv2-tp.
integration-tests/README.md
17:Bitcoin Core v30 binaries are downloaded from https://bitcoincore.org/bin/bitcoin-core-30.0/ and the |
added a9e1494 |
d0e0fa1 to
a9e1494
Compare
close #81