Skip to content

Commit 4101ec9

Browse files
vasildjonatack
andcommitted
doc: mention that we enforce port=0 in I2P
Co-authored-by: Jon Atack <[email protected]>
1 parent e0a2b39 commit 4101ec9

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

doc/i2p.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,18 @@ RPC.
7070

7171
Bitcoin Core uses the [SAM v3.1](https://geti2p.net/en/docs/api/samv3) protocol
7272
to connect to the I2P network. Any I2P router that supports it can be used.
73+
74+
## Ports in I2P and Bitcoin Core
75+
76+
Bitcoin Core uses the [SAM v3.1](https://geti2p.net/en/docs/api/samv3)
77+
protocol. One particularity of SAM v3.1 is that it does not support ports,
78+
unlike newer versions of SAM (v3.2 and up) that do support them and default the
79+
port numbers to 0. From the point of view of peers that use newer versions of
80+
SAM or other protocols that support ports, a SAM v3.1 peer is connecting to them
81+
on port 0, from source port 0.
82+
83+
To allow future upgrades to newer versions of SAM, Bitcoin Core sets its
84+
listening port to 0 when listening for incoming I2P connections and advertises
85+
its own I2P address with port 0. Furthermore, it will not attempt to connect to
86+
I2P addresses with a non-zero port number because with SAM v3.1 the destination
87+
port (`TO_PORT`) is always set to 0 and is not in the control of Bitcoin Core.

0 commit comments

Comments
 (0)