doc: Add I2P guidance related to bandwidth and i2pd software version #25993

pull willcl-ark wants to merge 1 commits into bitcoin:master from willcl-ark:i2pd_bandwidth changing 1 files +26 −0
  1. willcl-ark commented at 8:32 PM on September 3, 2022: contributor

    Add some general guidance on lowering bandwidth usage when using I2P routers.

  2. willcl-ark force-pushed on Sep 3, 2022
  3. ghost commented at 9:16 PM on September 3, 2022: none

    Concept ACK

  4. DrahtBot added the label Docs on Sep 3, 2022
  5. fanquake requested review from vasild on Sep 4, 2022
  6. fanquake requested review from jonatack on Sep 4, 2022
  7. in doc/i2p.md:163 in 0dbb919a4a outdated
     158 | +and outbound I2P connections you can set the `notransit` option to `true`.
     159 | +
     160 | +### Software version
     161 | +
     162 | +It is recommended to use `i2pd` version >= 2.42.0 which fixes some bugs related
     163 | +to clock synchronisation which cause `i2pd` to fail on startup.
    


    jonatack commented at 10:46 AM on September 5, 2022:

    The doc already discusses i2pd versions in lines 17-20; perhaps drop this entire section and update the minimum version there? What platform are you using? I'm still using i2pd version 2.40.0 on debian testing without issues (will upgrade to 2.43 to test). Meta: maybe we could drop the minimum recommended version once a sufficiently recent version is in package managers.

  8. in doc/i2p.md:141 in 0dbb919a4a outdated
     132 | @@ -133,3 +133,36 @@ listening port to 0 when listening for incoming I2P connections and advertises
     133 |  its own I2P address with port 0. Furthermore, it will not attempt to connect to
     134 |  I2P addresses with a non-zero port number because with SAM v3.1 the destination
     135 |  port (`TO_PORT`) is always set to 0 and is not in the control of Bitcoin Core.
     136 | +
     137 | +## i2pd
     138 | +
     139 | +### Bandwidth
     140 | +
     141 | +`i2pd` may route a large amount of general network traffic with default
    


    jonatack commented at 10:59 AM on September 5, 2022:

    Is this different with i2prouter (I2P Router), the official implementation in Java? It may be more helpful to discuss bandwith in general for both.

  9. in doc/i2p.md:142 in 0dbb919a4a outdated
     137 | +## i2pd
     138 | +
     139 | +### Bandwidth
     140 | +
     141 | +`i2pd` may route a large amount of general network traffic with default
     142 | +settings enabled. Check your routers configuration to limit the amount of this
    


    jonatack commented at 11:00 AM on September 5, 2022:
    settings enabled. Check your router's configuration to limit the amount of this
    
  10. in doc/i2p.md:145 in 0dbb919a4a outdated
     141 | +`i2pd` may route a large amount of general network traffic with default
     142 | +settings enabled. Check your routers configuration to limit the amount of this
     143 | +traffic that is being relayed.
     144 | +
     145 | +For `i2pd` this can be achieved by modifying the `bandwidth`, `share` and
     146 | +`transittunnels` options. For example to limit total I2P traffic to 256KB/s,
    


    jonatack commented at 11:02 AM on September 5, 2022:
    `transittunnels` options in the `i2pd/contrib/i2pd.conf` file. For example, to limit total I2P traffic to 256KB/s
    

    Will test some of your recommendations, thanks!


    willcl-ark commented at 4:10 PM on September 5, 2022:

    👍🏼 I did test that disabling the transit traffic still permitted connections to and from the SAM proxy, and it worked between my two nodes. I also double checked on libera-chat#i2pd-dev that this is intended behaviour, and it is. So if you want only bitcoin traffic on your I2P proxy, you can disable everything else for ultimate minimum bandwidth-usage!


    willcl-ark commented at 4:17 PM on September 5, 2022:

    I think I might leave out the conf file path: 1) It might be in different locations for different people (e.g. /etc/i2pd/i2pd.conf or /var/lib/i2pd/i2pd.conf etc.) and 2) people might just be running with command line args.


    jonatack commented at 10:10 AM on September 12, 2022:

    Suggestions

     ## Bandwidth
     
    -I2P routers may route a large amount of general network traffic with default
    -settings enabled. Check your router's configuration to limit the amount of this
    -traffic that is being relayed.
    -
    -For `i2pd` controlling the amount of bandwidth being shared with the wider
    -network can be achieved by modifying the `bandwidth`, `share` and
    -`transittunnels` options. For example to limit total I2P traffic to 256KB/s,
    -and share 50% of this limit for a maximum of 20 transit tunnels you can use:
    +I2P routers may route a large amount of general network traffic with their
    +default settings. Check your router's configuration to limit the amount of
    +traffic relayed, if desired.
    +
    +With `i2pd`, the amount of bandwidth shared with the wider network can be
    +adjusted with the `bandwidth`, `share` and `transittunnels` options in
    +`i2pd.conf`. For example, to limit I2P traffic to 256KB/s and share 50% of this
    +limit for a maximum of 20 transit tunnels:
    

    jonatack commented at 10:12 AM on September 12, 2022:

    I think I might leave out the conf file path: 1) It might be in different locations for different people (e.g. /etc/i2pd/i2pd.conf or /var/lib/i2pd/i2pd.conf etc.) and 2) people might just be running with command line args.

    Agree WRT the path. Maybe give the conf filename for both i2pd and i2p router or for neither.


    willcl-ark commented at 9:36 AM on September 13, 2022:

    I believe this is addressed here in response to vasild's comment.


    jonatack commented at 1:55 PM on September 14, 2022:

    I believe this is addressed here in response to vasild's comment.

    How?

    Mind having a look at #25993 (review)? It would fix a few punctuation/grammar issues and improve clarity/brevity.


    willcl-ark commented at 2:47 PM on September 19, 2022:

    Ok I have adopted the changes from #25993 (review)

    How?

    As the final clause now reads:

    Similar bandwidth configuration options in the Java I2P router can be found in
    the `http://127.0.0.1:7657/config`, under the "Bandwidth" tab.
    

    Which I think, is roughly the equivalent of the i2p router conf file?

  11. jonatack commented at 11:04 AM on September 5, 2022: contributor

    Some initial thoughts.

  12. in doc/i2p.md:145 in 4266146768 outdated
     140 | +settings enabled. Check your routers configuration to limit the amount of this
     141 | +traffic that is being relayed.
     142 | +
     143 | +For `i2pd` this can be achieved by modifying the `bandwidth`, `share` and
     144 | +`transittunnels` options. For example to limit total I2P traffic to 256KB/s,
     145 | +and permit 50% of this limit for a maximum of 20 transit tunnels you can use:
    


    vasild commented at 11:08 AM on September 5, 2022:

    Would it be clearer if this:

    For example to limit total I2P traffic to 256KB/s, and permit 50% of this limit for a maximum of 20 transit tunnels you can use:

    it tweaked to:

    For example to limit total I2P traffic to 256KB/s, and share 50% of this limit with a maximum of 20 transit tunnels you can use:

    ?

  13. in doc/i2p.md:153 in 4266146768 outdated
     147 | +```
     148 | +bandwidth = 256
     149 | +share = 50
     150 | +
     151 | +[limits]
     152 | +transittunnels = 20
    


    vasild commented at 11:10 AM on September 5, 2022:

    Feel free to add some text for the java i2p router:

    The bandwidth configuration in the Java I2P router can be found in the http://127.0.0.1:7657/config, under the "Bandwidth" tab.

  14. in doc/i2p.md:139 in 4266146768 outdated
     132 | @@ -133,3 +133,24 @@ listening port to 0 when listening for incoming I2P connections and advertises
     133 |  its own I2P address with port 0. Furthermore, it will not attempt to connect to
     134 |  I2P addresses with a non-zero port number because with SAM v3.1 the destination
     135 |  port (`TO_PORT`) is always set to 0 and is not in the control of Bitcoin Core.
     136 | +
     137 | +## Bandwidth
     138 | +
     139 | +Some I2P routers may route a large amount of general network traffic with default
    


    vasild commented at 11:12 AM on September 5, 2022:

    I think remove "Some" - because this is not specific to i2pd.

  15. vasild commented at 11:14 AM on September 5, 2022: contributor

    The first commit looks ok (modulo the nits below). I am not sure about the second one - i2pd was tested and it worked with 2.35. Was it broken after 2.35 and then fixed in 2.42?

  16. willcl-ark commented at 4:05 PM on September 5, 2022: contributor

    The first commit looks ok (modulo the nits below). I am not sure about the second one - i2pd was tested and it worked with 2.35. Was it broken after 2.35 and then fixed in 2.42?

    Hmmm, I was trying on a totally fresh Debian install, and a not-so-fresh Ubuntu install. On Ubuntu apt served me 2.41 which worked. However Debain bullseye was serving me 2.36, which did not work, and resulted in crashing with log messages like this. Installing 2.41 did not seem to work, but I grabbed the 2.42 release and it just worked perfectly, so thought recommending this might be worthwhile.

  17. willcl-ark force-pushed on Sep 5, 2022
  18. willcl-ark commented at 4:24 PM on September 5, 2022: contributor
    • Dropped the i2pd version recommendation for now, as it seems like this could be a system issue on my side.
    • Integrated spelling nits and added paragraph on where to find the bandwidth config from the Java router.
  19. vasild approved
  20. vasild commented at 6:41 AM on September 6, 2022: contributor

    ACK 27b9e098d163c292753cdd3df9cefefa28b648f8

  21. Rspigler commented at 8:06 PM on September 6, 2022: contributor

    Is i2pd used more often than the official I2p router? (that's what I use)

  22. willcl-ark commented at 10:11 PM on September 6, 2022: contributor

    Is i2pd used more often than the official I2p router? (that's what I use)

    Possibly....

    <img src="https://user-images.githubusercontent.com/6606587/188749138-d9a60f13-a6e7-4a4d-9fd1-e0a0d3db8c52.png" height="250">

  23. Rspigler commented at 11:43 PM on September 6, 2022: contributor

    I wasn't sure how I felt about giving implementation-specific directions, but I missed that you also gave them for the i2p router, which IMO covers the 2 major implementations, so Concept ACK from me. Sorry

  24. willcl-ark force-pushed on Sep 19, 2022
  25. vasild approved
  26. vasild commented at 4:11 PM on September 19, 2022: contributor

    ACK 6119adcafd7b3379629ab64c2b0243a838900c24

  27. DrahtBot commented at 4:13 AM on September 23, 2022: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    No conflicts as of last run.

  28. in doc/i2p.md:145 in 6119adcafd outdated
     140 | +default settings. Check your router's configuration to limit the amount of this
     141 | +traffic relayed, if desired.
     142 | +
     143 | +With `i2pd`, the amount of bandwidth being shared with the wider network can be
     144 | +adjusted with the `bandwidth`, `share` and `transittunnels` options. For
     145 | +example to limit total I2P traffic to 256KB/s, and share 50% of this limit for
    


    jonatack commented at 7:26 AM on September 23, 2022:
    example, to limit total I2P traffic to 256KB/s and share 50% of this limit for
    
  29. in doc/i2p.md:161 in 6119adcafd outdated
     156 | +If you prefer not to relay any public I2P traffic and only permit I2P traffic
     157 | +from programs which are connecting via the SAM proxy, e.g. Bitcoin Core, you
     158 | +can set the `notransit` option to `true`.
     159 | +
     160 | +Similar bandwidth configuration options in the Java I2P router can be found in
     161 | +the `http://127.0.0.1:7657/config`, under the "Bandwidth" tab.
    


    jonatack commented at 7:31 AM on September 23, 2022:
    `http://127.0.0.1:7657/config`, under the "Bandwidth" tab.
    

    As this says where to find the i2prouter options, it would make sense to also do so for i2pd, i.e. in the i2pd.conf file

  30. jonatack commented at 7:35 AM on September 23, 2022: contributor

    The PR description needs to be updated.

  31. doc: Add I2P bandwidth guidance to i2p.md
    Adds some general guidance on lowering bandwidth usage when using I2P
    routers.
    874c861885
  32. willcl-ark force-pushed on Oct 3, 2022
  33. willcl-ark commented at 9:38 AM on October 3, 2022: contributor

    The PR description needs to be updated.

    Description updated and changes incorporated

  34. in doc/i2p.md:161 in 874c861885
     156 | +If you prefer not to relay any public I2P traffic and only permit I2P traffic
     157 | +from programs which are connecting via the SAM proxy, e.g. Bitcoin Core, you
     158 | +can set the `notransit` option to `true`.
     159 | +
     160 | +Similar bandwidth configuration options for the Java I2P router can be found in
     161 | +`http://127.0.0.1:7657/config` under the "Bandwidth" tab.
    


    jonatack commented at 11:03 AM on October 3, 2022:

    Ignore unless you need to retouch: dropping the backticks could make this a clickable URL.

    http://127.0.0.1:7657/config under the "Bandwidth" tab.
    

    willcl-ark commented at 7:30 AM on October 6, 2022:

    Thanks @jonatack

    Will indeed amend if I retouch.

  35. jonatack approved
  36. jonatack commented at 11:03 AM on October 3, 2022: contributor

    ACK 874c8618850174dc989d5e2a17773115a55a91e5

    Thanks for updating!

  37. hernanmarino commented at 1:57 PM on October 28, 2022: contributor

    ACK 874c8618850174dc989d5e2a17773115a55a91e5

  38. hernanmarino approved
  39. pablomartin4btc approved
  40. pablomartin4btc commented at 2:15 PM on October 28, 2022: member

    ACK 874c8618850174dc989d5e2a17773115a55a91e5.

    Very useful info as I was testing I2P on v.24 a few weeks ago and I didn't know you could setup this options (bandwidth, share and transittunnels).

  41. fanquake merged this on Dec 5, 2022
  42. fanquake closed this on Dec 5, 2022

  43. sidhujag referenced this in commit 138a09ea0b on Dec 5, 2022
  44. bitcoin locked this on Dec 5, 2023

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-22 18:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me