Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
9454cbd to
06d98ea
Compare
06d98ea to
5e071a4
Compare
|
Not needed for testing here, but it would still be cool to have a lock icon in the peers tab in the GUI, and reveal the session id if you click on it. cc @hebasto Tested a manual connection between macOS and Ubuntu, found matching session ids, pfew - no man in the middle attack on my local network :-) My DNS seed hasn't discovered any peers yet announcing the service flag, that could take a while. sipa/bitcoin-seeder#102 |
06a00c4 to
35f0384
Compare
35f0384 to
bdb7f73
Compare
|
I've changed a net debug-level log message to say "trying v2 connection ... lastseen=...hrs\n" |
bdb7f73 to
3f959b9
Compare
3f959b9 to
1f13994
Compare
Co-authored-by: Dhruv Mehta <[email protected]>
…tics This matches the behavior for per-type received bytes.
Co-authored-by: Dhruv Mehta <[email protected]>
Co-authored-by: Pieter Wuille <[email protected]>
When an outbound v2 connection is disconnected without receiving anything, but at least 24 bytes of our pubkey were sent out (enough to constitute an invalid v1 header), add them to a queue of reconnections to be tried. The reconnections are in a queue rather than performed immediately, because we should not block the socket handler thread with connection creation (a blocking operation that can take multiple seconds).
Co-authored-by: Dhruv Mehta <[email protected]>
Co-authored-by: Pieter Wuille <[email protected]>
|
Addressed nits by @mzumsande and @theStack: diff --git a/doc/bips.md b/doc/bips.md
index 87b5918c72..952d289daa 100644
--- a/doc/bips.md
+++ b/doc/bips.md
@@ -49,7 +49,7 @@ BIPs that are implemented by Bitcoin Core:
* [`BIP 173`](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki): Bech32 addresses for native Segregated Witness outputs are supported as of **v0.16.0** ([PR 11167](https://github.com/bitcoin/bitcoin/pull/11167)). Bech32 addresses are generated by default as of **v0.20.0** ([PR 16884](https://github.com/bitcoin/bitcoin/pull/16884)).
* [`BIP 174`](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki): RPCs to operate on Partially Signed Bitcoin Transactions (PSBT) are present as of **v0.17.0** ([PR 13557](https://github.com/bitcoin/bitcoin/pull/13557)).
* [`BIP 176`](https://github.com/bitcoin/bips/blob/master/bip-0176.mediawiki): Bits Denomination [QT only] is supported as of **v0.16.0** ([PR 12035](https://github.com/bitcoin/bitcoin/pull/12035)).
-* [`BIP 324`](https://github.com/bitcoin/bips/blob/master/bip-0324.mediawiki): Support for the BIP324 v2 transport protocol and the associated `NODE_P2P_V2` service bit is supported as of **v26.0**, but off by default ([PR 28331](https://github.com/bitcoin/bitcoin/pull/28331)).
+* [`BIP 324`](https://github.com/bitcoin/bips/blob/master/bip-0324.mediawiki): The v2 transport protocol specified by BIP324 and the associated `NODE_P2P_V2` service bit are supported as of **v26.0**, but off by default ([PR 28331](https://github.com/bitcoin/bitcoin/pull/28331)).
* [`BIP 325`](https://github.com/bitcoin/bips/blob/master/bip-0325.mediawiki): Signet test network is supported as of **v0.21.0** ([PR 18267](https://github.com/bitcoin/bitcoin/pull/18267)).
* [`BIP 339`](https://github.com/bitcoin/bips/blob/master/bip-0339.mediawiki): Relay of transactions by wtxid is supported as of **v0.21.0** ([PR 18044](https://github.com/bitcoin/bitcoin/pull/18044)).
* [`BIP 340`](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki)
diff --git a/src/net.cpp b/src/net.cpp
index c4c2d55c77..6b2ef5f43d 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -469,7 +469,7 @@ CNode* CConnman::ConnectNode(CAddress addrConnect, const char *pszDest, bool fCo
const std::vector<CService> resolved{Lookup(pszDest, default_port, fNameLookup && !HaveNameProxy(), 256)};
if (!resolved.empty()) {
const CService& rnd{resolved[GetRand(resolved.size())]};
- addrConnect = CAddress{MaybeFlipIPv6toCJDNS(rnd), addrConnect.nServices};
+ addrConnect = CAddress{MaybeFlipIPv6toCJDNS(rnd), NODE_NONE};
if (!addrConnect.IsValid()) {
LogPrint(BCLog::NET, "Resolver returned invalid address %s for %s\n", addrConnect.ToStringAddrPort(), pszDest);
return nullptr; |
|
re-ACK 75a3291 |
1 similar comment
|
re-ACK 75a3291 |
|
ACK 75a3291 |
|
any clear reason why noise protocol hasn't been considered here ? |
|
@rsantacroce the BIP explains this under "Why not use a general-purpose transport encryption protocol?": https://github.com/bitcoin/bips/blob/master/bip-0324.mediawiki |
|
Thank you, i missed that one! very good explanation now it's the other way around why we don't use it on stratumv2 .... this is for the other repo. thank you and thank you for the great work. |
| assert_equal(self.nodes[1].getblockcount(), 5) | ||
| # verify there is a v2 connection between node 0 and 1 | ||
| node_0_info = self.nodes[0].getpeerinfo() | ||
| node_1_info = self.nodes[0].getpeerinfo() |
There was a problem hiding this comment.
@sipa, am I missing something or should this line read:
node_1_info = self.nodes[1].getpeerinfo()
There was a problem hiding this comment.
This indeed looks like a bug.
There was a problem hiding this comment.
Good catch @kashifs. Do you want to open a PR for the fix? If not (for whatever reason), I'm happy to do it and add the commit with your authorship.
There was a problem hiding this comment.
I've opened a PR here. Please let me know if it's done correctly and if there is more that I should do.
|
Removing label, as this got a release note. |
Part of #27634.
This makes BIP324 support feature complete, through a (default off)
-v2transportoption for enabling V2 connections. If it is enabled:NODE_P2P_V2service flag (1 << 11) is advertized.NODE_P2P_V2service is available (or the newuse_v2parameter is set on theaddnodeRPC).There are two new RPC fields,
"transport_protocol_type"and"session_id", ingetpeerinfo.