summaryrefslogtreecommitdiff
path: root/b2/dd0cac1a459808192fdb3ad4b080cc3c9a1c49
blob: affe5b28371512c10927d56b63d83094b69926ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
Return-Path: <prayank@tutanota.de>
Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137])
 by lists.linuxfoundation.org (Postfix) with ESMTP id C2A07C000B
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Sat, 29 Jan 2022 22:02:28 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by smtp4.osuosl.org (Postfix) with ESMTP id 9ECDB40893
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Sat, 29 Jan 2022 22:02:28 +0000 (UTC)
X-Virus-Scanned: amavisd-new at osuosl.org
X-Spam-Flag: NO
X-Spam-Score: -0.2
X-Spam-Level: 
X-Spam-Status: No, score=-0.2 tagged_above=-999 required=5
 tests=[BAYES_20=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001,
 RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001]
 autolearn=ham autolearn_force=no
Authentication-Results: smtp4.osuosl.org (amavisd-new);
 dkim=pass (2048-bit key) header.d=tutanota.de
Received: from smtp4.osuosl.org ([127.0.0.1])
 by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id JPvsKQWgMpn5
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Sat, 29 Jan 2022 22:02:27 +0000 (UTC)
X-Greylist: from auto-whitelisted by SQLgrey-1.8.0
Received: from w1.tutanota.de (w1.tutanota.de [81.3.6.162])
 by smtp4.osuosl.org (Postfix) with ESMTPS id 4814140892
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Sat, 29 Jan 2022 22:02:26 +0000 (UTC)
Received: from w3.tutanota.de (unknown [192.168.1.164])
 by w1.tutanota.de (Postfix) with ESMTP id 8A0E9FBF851
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Sat, 29 Jan 2022 22:02:24 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1643493744; 
 s=s1; d=tutanota.de;
 h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Cc:Date:Date:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:Sender;
 bh=qrJel2zdSD6YHIpJu9e5dBNwSMcKPALOGB8mRI9WsJ0=;
 b=3te9zBy3Vsn26AI4lldxV1kIkULz91DZk7zBtQExqiimCX/d4YQcCTUC8kcdFq/F
 bm8fFz0X4FtJT4kdz5SPYsfA1ILiM6O7yKwpuIHw2+Dfe8oLj3/AR4yEigq8dfqBO1U
 nqifU0paZAlfYYaCy6LDmDoTFXqs8yQvHspV6FMoC9KHCCJJlwgQyoHv0wRRSAMIKY9
 02xdp3dZjrsFcostVZEZSJNB7ykaxFsfQOLepIat1Vgd62ye904Zgtt85FMJXpWBmr0
 +xY5Af3wT9li8AWw9d4oPKYaeM+GFlPVej2+2TlX1Lmp6hD9UUOLsCNm78zWkdRQgRI
 sC+LA68C5g==
Date: Sat, 29 Jan 2022 23:02:24 +0100 (CET)
From: Prayank <prayank@tutanota.de>
To: Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>
Message-ID: <Mubr4YT--3-2@tutanota.de>
MIME-Version: 1.0
Content-Type: multipart/alternative; 
 boundary="----=_Part_290858_1540062542.1643493744552"
X-Mailman-Approved-At: Sat, 29 Jan 2022 23:26:53 +0000
Subject: [bitcoin-dev] non-default ports for automatic connections in
	Bitcoin P2P network
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>, 
 <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>, 
 <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Sat, 29 Jan 2022 22:02:28 -0000

------=_Part_290858_1540062542.1643493744552
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

## Using non-default ports for automatic connections in Bitcoin P2P network


ISPs can block default port 8333 used by Bitcoin nodes. One example:
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-September/0107=
98.html

While it would still be possible for crawlers and scanners to know about bi=
tcoin nodes listening on non-default ports using other methods, it can be h=
elpful in lot of countries that use basic things to block: domain, port etc=
.

In October 2021 a [pull request][1] was merged in Bitcoin Core in which lot=
 of contributors
agreed to allow non default ports for automatic connections. It did not imp=
lement everything,
was limited to discussing the concept and allow AddrMan to support multiple=
 ports per IP.

It was followed by another [pull request][2] in November 2021 which is stil=
l open and makes most
of the changes required for non-default ports to work with automatic connec=
tions.

I could not find any major issues with the changes however had some nits in=
cluding a discussion on
mailing list which was even requested by a few other reviewers.


=3D=3D=3DThings that I found during my review, research and testing=3D=3D=
=3D

1.One user had posted about issues with default port 8333 on [bitcointalk][=
3] in July 2010. VMWare server
also used port 8333 so an option was requested to change port. This option =
was added in [May 2011][4] by Gavin Andresen. Gavin has discussed this opti=
on and related issues in detail with others on [bitcointalk][5].

2.I tried running signet for 1 hour v22.0 and 1 hour PR branch with debug=
=3Dnet. v22.0 had only 38333 port with different IPs in debug.log for conne=
ctions. PR branch had 2 feeler connections with non-default ports 38331 and=
 13833.

Note: Default ports used in Bitcoin Core are 8333(mainnet), 18333(testnet),=
 18444(regtest) and 38333(signet)

3.Wrote a [PowerShell script][6] and tested it on v22.0 and PR branch which=
 bans all peers every 100 seconds using default port. It works as expected =
and I could see one peer using port 3111 on signet.

4.I am not sure about the 'bad ports' list in Bitcoin Core added in PR #235=
42


8333 in leet becomes 'beee' in plain text. Not sure if this was considered =
by Satoshi to hardcode 8333 for Bitcoin.


=C2=A0 [1]: https://github.com/bitcoin/bitcoin/pull/23306
=C2=A0 [2]: https://github.com/bitcoin/bitcoin/pull/23542
=C2=A0 [3]: https://bitcointalk.org/index.php?topic=3D322.0
=C2=A0 [4]: https://github.com/bitcoin/bitcoin/pull/221
=C2=A0 [5]: https://bitcointalk.org/index.php?topic=3D589.0
=C2=A0 [6]: https://github.com/prayank23/bitcoin-ps-scripts/blob/main/Scrip=
ts/Node/ban_default_peers.ps1

--=20
Prayank

A3B1 E430 2298 178F

------=_Part_290858_1540062542.1643493744552
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta http-equiv=3D"content-type" content=3D"text/html; charset=3DUTF-8=
">
  </head>
  <body>
<div>## Using non-default ports for automatic connections in Bitcoin P2P ne=
twork<br></div><div dir=3D"auto"><br></div><div dir=3D"auto"><br></div><div=
 dir=3D"auto">ISPs can block default port 8333 used by Bitcoin nodes. One e=
xample:<br></div><div dir=3D"auto">https://lists.linuxfoundation.org/piperm=
ail/bitcoin-dev/2015-September/010798.html<br></div><div dir=3D"auto"><br><=
/div><div dir=3D"auto">While it would still be possible for crawlers and sc=
anners to know about bitcoin nodes listening on non-default ports using oth=
er methods, it can be helpful in lot of countries that use basic things to =
block: domain, port etc.<br></div><div dir=3D"auto"><br></div><div dir=3D"a=
uto">In October 2021 a [pull request][1] was merged in Bitcoin Core in whic=
h lot of contributors<br></div><div dir=3D"auto">agreed to allow non defaul=
t ports for automatic connections. It did not implement everything,<br></di=
v><div dir=3D"auto">was limited to discussing the concept and allow AddrMan=
 to support multiple ports per IP.<br></div><div dir=3D"auto"><br></div><di=
v dir=3D"auto">It was followed by another [pull request][2] in November 202=
1 which is still open and makes most<br></div><div dir=3D"auto">of the chan=
ges required for non-default ports to work with automatic connections.<br><=
/div><div dir=3D"auto"><br></div><div dir=3D"auto">I could not find any maj=
or issues with the changes however had some nits including a discussion on<=
br></div><div dir=3D"auto">mailing list which was even requested by a few o=
ther reviewers.<br></div><div dir=3D"auto"><br></div><div dir=3D"auto"><br>=
</div><div dir=3D"auto">=3D=3D=3DThings that I found during my review, rese=
arch and testing=3D=3D=3D<br></div><div dir=3D"auto"><br></div><div dir=3D"=
auto">1.One user had posted about issues with default port 8333 on [bitcoin=
talk][3] in July 2010. VMWare server<br></div><div dir=3D"auto">also used p=
ort 8333 so an option was requested to change port. This option was added i=
n [May 2011][4] by Gavin Andresen. Gavin has discussed this option and rela=
ted issues in detail with others on [bitcointalk][5].<br></div><div dir=3D"=
auto"><br></div><div dir=3D"auto">2.I tried running signet for 1 hour v22.0=
 and 1 hour PR branch with debug=3Dnet. v22.0 had only 38333 port with diff=
erent IPs in debug.log for connections. PR branch had 2 feeler connections =
with non-default ports 38331 and 13833.<br></div><div dir=3D"auto"><br></di=
v><div dir=3D"auto">Note: Default ports used in Bitcoin Core are 8333(mainn=
et), 18333(testnet), 18444(regtest) and 38333(signet)<br></div><div dir=3D"=
auto"><br></div><div dir=3D"auto">3.Wrote a [PowerShell script][6] and test=
ed it on v22.0 and PR branch which bans all peers every 100 seconds using d=
efault port. It works as expected and I could see one peer using port 3111 =
on signet.<br></div><div dir=3D"auto"><br></div><div dir=3D"auto">4.I am no=
t sure about the 'bad ports' list in Bitcoin Core added in PR #23542<br></d=
iv><div dir=3D"auto"><br></div><div dir=3D"auto"><br></div><div dir=3D"auto=
">8333 in leet becomes 'beee' in plain text. Not sure if this was considere=
d by Satoshi to hardcode 8333 for Bitcoin.<br></div><div dir=3D"auto"><br><=
/div><div dir=3D"auto"><br></div><div dir=3D"auto">&nbsp; [1]: https://gith=
ub.com/bitcoin/bitcoin/pull/23306<br></div><div dir=3D"auto">&nbsp; [2]: ht=
tps://github.com/bitcoin/bitcoin/pull/23542<br></div><div dir=3D"auto">&nbs=
p; [3]: https://bitcointalk.org/index.php?topic=3D322.0<br></div><div dir=
=3D"auto">&nbsp; [4]: https://github.com/bitcoin/bitcoin/pull/221<br></div>=
<div dir=3D"auto">&nbsp; [5]: https://bitcointalk.org/index.php?topic=3D589=
.0<br></div><div dir=3D"auto">&nbsp; [6]: https://github.com/prayank23/bitc=
oin-ps-scripts/blob/main/Scripts/Node/ban_default_peers.ps1<br></div><div><=
br></div><div>-- <br></div><div>Prayank<br></div><div><br></div><div dir=3D=
"auto">A3B1 E430 2298 178F<br></div>  </body>
</html>

------=_Part_290858_1540062542.1643493744552--