doc: add basic I2P documentation#22250
Conversation
|
Concept ACK! Can be merged after FF but is needed before release. |
Why after feature freeze? I can't see why this couldn't be merged at any time. |
|
That it's ok if it isn't merged today. |
|
Missing a link to the new doc from the main file |
|
Concept ACK |
|
Concept ACK nit: Docs mention i2p 'router' is required, this can be confusing for some users. I had to use Related comments: Will test again today on POP!_OS. |
|
Tried on POP!_OS and had no issues except last step:
|
|
-netinfo displays an I2P column if you have any I2P connections; addnode any of the I2P addresses in contrib/seeds/nodes_main.txt and you will see the connection in -netinfo. |
doc/i2p.md
Outdated
There was a problem hiding this comment.
Maybe mention that you can see which I2P addresses your node knows with RPC getnodeaddresses 0 i2p and (maybe, not sure) that there are I2P seed nodes to bootstrap your I2P connections in /contrib/seeds/nodes_main.txt
There was a problem hiding this comment.
Added getnodeaddresses 0 i2p, but not the seeds mention.
Actually, we use the seeds to fill addrman / establish a connection if we don't have any. But as far as I am aware we do this regardless of the network. Should we do that per-network? I.e. make sure we establish at least one connection to Tor if the user has bothered to setup a Tor proxy, using the seeds if necessary? Same for I2P.
There was a problem hiding this comment.
This seems like a good idea. IRC discussion: https://www.erisian.com.au/bitcoin-core-dev/log-2021-06-18.html#l-289
There was a problem hiding this comment.
The few times I talked people through testing an I2P service, each time they needed an I2P address to connect to or wouldn't see one. @prayank23's review is another good example 👍
There was a problem hiding this comment.
"(N being either I2P or Tor). If N is configured, make sure we have at least one connection to N (either inbound or outbound). If nobody connects to us, then try to open a connection to a peer from N (using either the seeds or addresses received via gossip)".
This will help I2P now / 22.0. But it is too late for 22.0.
For 23.0 it may not be necessary for I2P if it gains traction quickly. I am not sure if Tor needs it at all.
There was a problem hiding this comment.
If demonstrated to be an issue, it may (possibly) not be too late.
|
ACK, modulo the comments. I was wondering if we should warn that i2pd needs to be a version more recent than 2.33.0 due to the issues Suhas experienced with it, but mentioning i2pd can be done in a follow-up, if desired. |
Was about to comment this as well, but I guess we cannot really recommend any version of i2pd at this point at all due to known crash issues? In any case, I agree it can be done later if at all. |
|
I have nothing more to add in review apart from my comments above. Would be helpful if someone could answer this question on SE: https://bitcoin.stackexchange.com/questions/107060/tor-and-i2p-tradeoffs-in-bitcoin-core |
|
|
|
Render: https://github.com/bitcoin/bitcoin/blob/e498c9292af233c33616dcee2fe749ecb85fa186/doc/i2p.md |
|
@prayank23, I added a link to the I2P glossary https://geti2p.net/en/about/glossary, I think "I2P router" in general means an I2P proxy not the specific implementation in Java. |
doc/i2p.md
Outdated
There was a problem hiding this comment.
This official link has one 'download' button, it will open https://geti2p.net/en/download which has options for different OS. If you try installing i2p for Ubuntu from here it won't work. Others also look like .jar files
|
|
Yes. The previous "to connect to other bitcoin nodes through I2P" may be interpreted as to connect to other non-I2P nodes (e.g. IPv4). |
doc/i2p.md
Outdated
There was a problem hiding this comment.
| To see which I2P addresses your node knows, use the RPC | |
| To see which I2P addresses your node knows, run RPC |
There was a problem hiding this comment.
"run" because getnodeaddresses 0 i2p is not just the name of an RPC but a call with specific arguments. But definitely a pico-nit.
|
ACK There are a few fixups but nothing that can't be done in a follow-up before -final. Personally, I was procrastinating on writing this doc out of bikeshed avoidance, so just noting a few things here and happy to open a follow-up. |
|
For the next time: maybe a wiki is more appropriate, where everybody can edit and only open a PR once settled/finalized. |
|
ACK 78cdab1 Thanks for updating. It may be a good idea to mention the ports (0 or ignored) I2P specificity to users here once it's settled. |
|
ACK 78cdab1
Yes, I don't think this is a bad idea for new documentation. I'd be uncomfortable with using a wiki as main documentation source, but during the editing phase it can be less friction. |
Neat idea. Better than a StackExchange post if it is intended to go directly into Core docs and as @laanwj says less friction during editing phase than opening a PR with a first draft. |
|
Indeed. Just the initial/draft phase. |
78cdab1 doc: sort entries in doc/README.md#Miscellaneous alphabetically (Vasil Dimov) cad487b doc: add basic I2P documentation (Vasil Dimov) Pull request description: Add basic I2P documentation to help users to start using I2P and Bitcoin Core. ACKs for top commit: jonatack: ACK 78cdab1 laanwj: ACK 78cdab1 Tree-SHA512: 71cffc9419338a21cb9e811ee9463d6d09eef1a2a73190f766523bc1642a1f58984d5b2ab13da9b6560387ac9f431aace8bc7ae9b776585ecd3e3c1ff6af8e8d
78cdab1 doc: sort entries in doc/README.md#Miscellaneous alphabetically (Vasil Dimov) cad487b doc: add basic I2P documentation (Vasil Dimov) Pull request description: Add basic I2P documentation to help users to start using I2P and Bitcoin Core. ACKs for top commit: jonatack: ACK 78cdab1 laanwj: ACK 78cdab1 Tree-SHA512: 71cffc9419338a21cb9e811ee9463d6d09eef1a2a73190f766523bc1642a1f58984d5b2ab13da9b6560387ac9f431aace8bc7ae9b776585ecd3e3c1ff6af8e8d
78cdab1 doc: sort entries in doc/README.md#Miscellaneous alphabetically (Vasil Dimov) cad487b doc: add basic I2P documentation (Vasil Dimov) Pull request description: Add basic I2P documentation to help users to start using I2P and Bitcoin Core. ACKs for top commit: jonatack: ACK 78cdab1 laanwj: ACK 78cdab1 Tree-SHA512: 71cffc9419338a21cb9e811ee9463d6d09eef1a2a73190f766523bc1642a1f58984d5b2ab13da9b6560387ac9f431aace8bc7ae9b776585ecd3e3c1ff6af8e8d
Summary: This is a backport of [[bitcoin/bitcoin#22250 | core#22250]] Depends on D11037 Test Plan: proofreading and following the steps to run a node using I2P Reviewers: #bitcoin_abc, Fabien Reviewed By: #bitcoin_abc, Fabien Differential Revision: https://reviews.bitcoinabc.org/D11041
Add basic I2P documentation to help users to start using I2P and Bitcoin Core.