forked from bitcoin/bitcoin
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
, bitcoin#24468, bitcoin#25119, bitcoin#25176, bitcoin#25421, bitcoin#26248, bitcoin#26199, bitcoin#27036, bitcoin#27270, partial bitcoin#27106 (networking backports: part 10) 3260f2c partial bitcoin#27106: remove orphaned CSubNet::SanityCheck() (Kittywhiskers Van Gogh) 75cc94e merge bitcoin#27270: Avoid CNode::m_relays_txs usage (Kittywhiskers Van Gogh) f961903 merge bitcoin#27036: Remove last uses of snprintf and simplify (Kittywhiskers Van Gogh) d80bbe9 merge bitcoin#26199: Don't self-advertise during version processing (Kittywhiskers Van Gogh) 4b17baf merge bitcoin#26248: Set relay in version msg to peers with relay permission in -blocksonly mode (Kittywhiskers Van Gogh) 18738f5 merge bitcoin#25421: convert standalone IsSelectableSocket() and SetSocketNonBlocking() to Sock methods (Kittywhiskers Van Gogh) 8782575 merge bitcoin#25176: Fix frequent -netinfo JSON errors from missing getpeerinfo#relaytxes (Kittywhiskers Van Gogh) 1d96a47 merge bitcoin#25119: move StartExtraBlockRelayPeers() from header to implementation (Kittywhiskers Van Gogh) 37e0c58 merge bitcoin#24468: improve -onlynet help and related tor/i2p documentation (Kittywhiskers Van Gogh) 52c3b03 merge bitcoin#23542: open p2p connections to nodes that listen on non-default ports (Kittywhiskers Van Gogh) 8e2a12a merge bitcoin#22732: use m_client_interface rather than uiInterface (Kittywhiskers Van Gogh) 06a8e9c merge bitcoin#21845: Don't require locking cs_main before calling RelayTransactions() (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * Due to changes introduced in [bitcoin#21845](bitcoin#21845), a `LOCK(cs_main)` had to be added to `PeerManagerImpl::ReattemptInitialBroadcast()` ([source](06a8e9c#diff-6875de769e90cec84d2e8a9c1b962cdbcda44d870d42e4215827e599e11e90e3R1634)). This addition is in line with upstream ([source](https://github.com/bitcoin/bitcoin/blob/39e19713cd6594f93db835e8ef7eef5824a9ba02/src/net_processing.cpp#L1021)). * While nodes have been allowed to connect to non-default ports since [dash#2168](#2168), [bitcoin#23542](bitcoin#23542) also adds a list of ports considered "bad" that while not outright prohibited, are heavily discouraged from use as they are considered _de facto_ prohibited. In combination with port restrictions for masternodes (connections only permitted if matching listening port), port validation logic was better served by implementing it in a lambda block that's immediately executed (see `is_prohibited_port` for more information, [source](https://github.com/dashpay/dash/blob/01975fba32b8fcd8bccb0ce293b217c07b522c53/src/net.cpp#L3551-L3567)). * In [bitcoin#25176](bitcoin#25176), `is_block_relay` is renamed to `is_tx_relay` as the block relay-only = not transaction-relay assumption no longer holds true (see [dash#6365](#6365) for more information). One use of `is_block_relay` which relied on this now-obsolete assumption is incrementing `m_block_relay_peers_count`. It has been replaced with checking for a `block-relay-only` `conn_type`, matching upstream ([source](https://github.com/bitcoin/bitcoin/blob/a17c5e96b602fed65166037b78d98605e915206b/src/bitcoin-cli.cpp#L486)). ## Breaking Changes None expected. ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK 3260f2c PastaPastaPasta: utACK 3260f2c Tree-SHA512: 2bb50deb77ffaf7f7c4b396a8efe03f8bbfa605b49b75eace5fbc9d9813d4de8b72b086c50fbb0c23b97237c1f4c1b30b68f4b456bb74875308a4fcaa82deb08
- Loading branch information
Showing
26 changed files
with
457 additions
and
182 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
When Dash Core automatically opens outgoing P2P connections, it chooses | ||
a peer (address and port) from its list of potential peers. This list is | ||
populated with unchecked data gossiped over the P2P network by other peers. | ||
|
||
A malicious actor may gossip an address:port where no Dash node is listening, | ||
or one where a service is listening that is not related to the Dash network. | ||
As a result, this service may occasionally get connection attempts from Dash | ||
nodes. | ||
|
||
"Bad" ports are ones used by services which are usually not open to the public | ||
and usually require authentication. A connection attempt (by Dash Core, | ||
trying to connect because it thinks there is a Dash node on that | ||
address:port) to such service may be considered a malicious action by an | ||
ultra-paranoid administrator. An example for such a port is 22 (ssh). On the | ||
other hand, connection attempts to public services that usually do not require | ||
authentication are unlikely to be considered a malicious action, | ||
e.g. port 80 (http). | ||
|
||
Below is a list of "bad" ports which Dash Core avoids when choosing a peer to | ||
connect to. If a node is listening on such a port, it will likely receive fewer | ||
incoming connections. | ||
|
||
1: tcpmux | ||
7: echo | ||
9: discard | ||
11: systat | ||
13: daytime | ||
15: netstat | ||
17: qotd | ||
19: chargen | ||
20: ftp data | ||
21: ftp access | ||
22: ssh | ||
23: telnet | ||
25: smtp | ||
37: time | ||
42: name | ||
43: nicname | ||
53: domain | ||
69: tftp | ||
77: priv-rjs | ||
79: finger | ||
87: ttylink | ||
95: supdup | ||
101: hostname | ||
102: iso-tsap | ||
103: gppitnp | ||
104: acr-nema | ||
109: pop2 | ||
110: pop3 | ||
111: sunrpc | ||
113: auth | ||
115: sftp | ||
117: uucp-path | ||
119: nntp | ||
123: NTP | ||
135: loc-srv /epmap | ||
137: netbios | ||
139: netbios | ||
143: imap2 | ||
161: snmp | ||
179: BGP | ||
389: ldap | ||
427: SLP (Also used by Apple Filing Protocol) | ||
465: smtp+ssl | ||
512: print / exec | ||
513: login | ||
514: shell | ||
515: printer | ||
526: tempo | ||
530: courier | ||
531: chat | ||
532: netnews | ||
540: uucp | ||
548: AFP (Apple Filing Protocol) | ||
554: rtsp | ||
556: remotefs | ||
563: nntp+ssl | ||
587: smtp (rfc6409) | ||
601: syslog-conn (rfc3195) | ||
636: ldap+ssl | ||
989: ftps-data | ||
990: ftps | ||
993: ldap+ssl | ||
995: pop3+ssl | ||
1719: h323gatestat | ||
1720: h323hostcall | ||
1723: pptp | ||
2049: nfs | ||
3659: apple-sasl / PasswordServer | ||
4045: lockd | ||
5060: sip | ||
5061: sips | ||
6000: X11 | ||
6566: sane-port | ||
6665: Alternate IRC | ||
6666: Alternate IRC | ||
6667: Standard IRC | ||
6668: Alternate IRC | ||
6669: Alternate IRC | ||
6697: IRC + TLS | ||
10080: Amanda | ||
|
||
For further information see: | ||
|
||
[pull/23306](https://github.com/bitcoin/bitcoin/pull/23306#issuecomment-947516736) | ||
|
||
[pull/23542](https://github.com/bitcoin/bitcoin/pull/23542) | ||
|
||
[fetch.spec.whatwg.org](https://fetch.spec.whatwg.org/#port-blocking) | ||
|
||
[chromium.googlesource.com](https://chromium.googlesource.com/chromium/src.git/+/refs/heads/main/net/base/port_util.cc) | ||
|
||
[hg.mozilla.org](https://hg.mozilla.org/mozilla-central/file/tip/netwerk/base/nsIOService.cpp) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.