It is not entirely accurate that persistent I2P addresses are used for making outbound connections and accepting incoming ones, as the -privatebroadcast option forces the use of a new transient destination for each transaction it relays.
doc/i2p: mention -privatebroadcast bypasses persistent address #36348
pull jpk68 wants to merge 1 commits into bitcoin:master from jpk68:persistent-bypass changing 1 files +7 −1-
jpk68 commented at 7:58 PM on September 26, 2026: contributor
-
doc/i2p: mention -privatebroadcast bypasses persistent address 06e3849107
-
DrahtBot commented at 7:58 PM on September 26, 2026: contributor
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
<!--006a51241073e994b41acfe9ec718e94-->
Code Coverage & Benchmarks
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/36348.
<!--021abf342d371248e50ceaed478a90ca-->
Reviews
See the guideline and AI policy for information on the review process.
Type Reviewers ACK andrewtoth Concept ACK jonatack If your review is incorrectly listed, please copy-paste <code><!--meta-tag:bot-skip--></code> into the comment that the bot should ignore.
<!--5faf32d7da4f0f540f40219e4f7537a3-->
-
fanquake commented at 8:03 PM on September 26, 2026: member
- andrewtoth approved
-
andrewtoth commented at 3:22 PM on September 27, 2026: contributor
lgtm ACK 06e38491077ccb49eb1aee118af5259c905b9a9b
-
jonatack commented at 9:00 PM on September 27, 2026: member
Concept ACK
Private broadcast opens several short-lived peers per transaction, over Tor or I2P, and only for
sendrawtransaction. Perhaps the proposed text could mention that to be more precise. WDYT of the following?@@ -83,7 +83,7 @@ generates a persistent I2P address and its corresponding private key by default, unless `-i2pacceptincoming=0` is set. The private key is saved in a file named `i2p_private_key` in the Bitcoin Core data directory. The persistent I2P -address is used for making outbound connections and accepting inbound -connections. +address is used for making outbound connections and accepting inbound +connections, except that I2P connections opened for `-privatebroadcast` +use a transient destination instead (see below). In the I2P network, the receiver of an inbound connection sees the address of the initiator. This is unlike the Tor network, where the recipient does not @@ -98,6 +98,12 @@ I2P addresses are designed to be long-lived. Waiting for tunnels to be built for every peer connection adds delay to connection setup time. Therefore, I2P listening should only be turned off if really needed. +Independently of `-i2pacceptincoming`, I2P connections opened for +`-privatebroadcast` do not use the persistent destination from +`i2p_private_key`. Instead, they use a transient destination so the +receiver does not see the node's long-lived I2P identity. + +The `-privatebroadcast` option applies only to transactions submitted +with `sendrawtransaction`, not to wallet-created transactions. Private +broadcast also runs over Tor; this section only describes the I2P case. + ## Fetching I2P-related information from Bitcoin Core