Skip to content

Conversation

jonatack
Copy link
Member

@jonatack jonatack commented Jan 6, 2023

Address the documentation updates requested in issue #26754, clarify/simplify the -i2pacceptincoming help, and a few other fixups.

@DrahtBot
Copy link
Contributor

DrahtBot commented Jan 6, 2023

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

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK 1440000bytes, w0xlt, vasild, willcl-ark
Concept ACK zzzi2p

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #17783 (util: Fix -norpcwhitelist, -norpcallowip, and similar corner case behavior by ryanofsky)
  • #17580 (refactor: Add ALLOW_LIST flags and enforce usage in CheckArgFlags by ryanofsky)
  • #17493 (util: Forbid ambiguous multiple assignments in config file by ryanofsky)

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@zzzi2p
Copy link

zzzi2p commented Jan 7, 2023

Thanks for this. You're on the right track here and we also appreciate the updates on your blog.

Not sure of the audience (users vs. downstreams) for this doc vs. your blog,
or whether this doc is more about your current release or your next one.
So I won't offer a detailed review.

Elaborating my request from OP of the ticket, overall, the messaging that would be most helpful is:

  • Emphasize that I2P is a P2P network (just like Bitcoin!), encourage high share limits (or discourage limit setting at all) to protect anonymity and contribute to the network
  • Be sure to run latest version of Java I2P (2.1.0 or later) or i2pd (2.45.0 or later)
  • For now, discourage -i2pacceptincoming=0, especially on low-performance hardware or low-bandwidth, until we work through the issues.
  • I don't know if anybody is trying to bootstrap the whole blockchain over i2p, or if that's even possible, but that's a really bad idea also

Thanks again.

@ghost
Copy link

ghost commented Jan 8, 2023

whether this doc is more about your current release or your next one

Its the only i2p doc in this repository that users and developers can refer, update etc. for minimal and important things required to use i2p with bitcoin core. Not release specific. It was added in #22250 (2021) and updated multiple times since then.

There is also a doc for Tor: /doc/tor.md

Copy link
Contributor

@vasild vasild left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 92f43b4 modulo the typo mentioned below

@jonatack jonatack force-pushed the 2023-01-i2p-documentation-updates branch from 92f43b4 to 11f9b98 Compare January 9, 2023 16:04
@jonatack
Copy link
Member Author

jonatack commented Jan 9, 2023

* Emphasize that I2P is a P2P network (just like Bitcoin!), encourage high share limits (or discourage limit setting at all) to protect anonymity and contribute to the network

Done.

* Be sure to run latest version of Java I2P (2.1.0 or later) or i2pd (2.45.0 or later)

Dropped the versions in the documentation as they go stale. Presumably users will install current versions.

* For now, discourage -i2pacceptincoming=0, especially on low-performance hardware or low-bandwidth, until we work through the issues.

Done.

* I don't know if anybody is trying to bootstrap the whole blockchain over i2p, or if that's even possible, but that's a really bad idea also

Indeed, this was discouraged in the documentation, as it takes a long time.

@jonatack jonatack marked this pull request as ready for review January 9, 2023 16:11
@jonatack
Copy link
Member Author

jonatack commented Jan 9, 2023

Thanks for the feedback, everyone. Pushed an update and brought this out of draft.

and also hoist the default setting to a constexpr and
remove unused f-string operators in a related functional test.
as these go stale and users will generally install the current versions available.
@jonatack jonatack force-pushed the 2023-01-i2p-documentation-updates branch from 11f9b98 to 3e1d294 Compare January 9, 2023 16:20
Copy link

@ghost ghost left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 3e1d294

Copy link
Contributor

@w0xlt w0xlt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 3e1d294

These changes improve the I2P documentation.

@w0xlt
Copy link
Contributor

w0xlt commented Jan 9, 2023

don't know if anybody is trying to bootstrap the whole blockchain over i2p, or if that's even possible, but that's a really bad idea also

Maybe this shouldn't be allowed by code ?

@jonatack
Copy link
Member Author

jonatack commented Jan 9, 2023

Maybe this shouldn't be allowed by code ?

I thought about this but would prefer not to limit it unless it's been shown that this is really causing a serious issue with the network, both in principle to not make an exception for one network, and also doing it several releases after adding I2P support, as any users that do would see their nodes not working anymore after upgrading to that release of Bitcoin Core.

Copy link
Contributor

@vasild vasild left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 3e1d294

@zzzi2p
Copy link

zzzi2p commented Jan 10, 2023

ACK

@willcl-ark
Copy link
Member

ACK 3e1d294

Iin the last 24h of running my node I see the following stats via nethogs, for Bitcoin Core v24.0 with ~11 I2P peers, ~85 HTTP peers and ~13 onion peers:

Selection_048

For contrast Tor has used ~600 MB of data total (figure shared with core-lightning). This is roughly the same usage pattern I saw which led me to try and limit I2P traffic only to bitcoin peers initially -- in fact a few months ago when monitoring for longer periods, I found I2P using more than double the bitcoind totals.

I accept (and agree!) that we should want to and encourage contributing back to the wider I2P network for it's network health and, for me personally it's no issue, as I'm on an unmetered connection. But I still wonder whether a comment around "expected" I2P bandwidth usage might be warranted in a future PR to give a heads up to entities with limited resources?

maflcko pushed a commit that referenced this pull request Jan 11, 2023
3e1d294 doc: remove recommended I2P router versions (jonatack)
295849a doc: update/clarify/de-emphasize I2P transient address section (jonatack)
dffa319 doc: update bandwidth section of I2P documentation (jonatack)
0ed9cc5 doc: clarify -i2pacceptincoming help documentation (jonatack)

Pull request description:

  Address the documentation updates requested in issue #26754, clarify/simplify the -i2pacceptincoming help, and a few other fixups.

ACKs for top commit:
  willcl-ark:
    ACK 3e1d294
  1440000bytes:
    ACK 3e1d294
  w0xlt:
    ACK 3e1d294
  vasild:
    ACK 3e1d294

Tree-SHA512: e647221884af34646b99150617f4d4cc8d5fce325a769294f49047b9d8c9c8ab2b365cfdd9f56b3bd0303da706233f03d24cececf6e161c53f04ed947751052a
@maflcko maflcko closed this Jan 11, 2023
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Jan 11, 2023
@jonatack jonatack deleted the 2023-01-i2p-documentation-updates branch January 11, 2023 21:31
@jonatack
Copy link
Member Author

@willcl-ark Interesting feedback (thanks!), worth measuring how much bandwidth is used after #26837 and upgrading to the latest releases, currently Java I2P 2.1.0 and i2pd 2.45.1.

@bitcoin bitcoin locked and limited conversation to collaborators Jan 11, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants