1
0
Fork
You've already forked p2pool
0

I2P support #1

Closed
opened 2026年02月22日 23:04:20 +01:00 by jpk68 · 2 comments
Owner
Copy link

Add support for I2P as another proxy option, in addition to regular SOCKS and Tor proxies.

It seems this would best be done by having the user set up a SOCKS proxy tunnel through their I2P router, and providing the address/port of the tunnel at startup. This is quite similar to how Tor support currently works.

Unlike Tor, an inbound server tunnel would also be needed for traffic from peers, as I2P tunnels are unidirectional. The .b32.i2p address can also be provided at startup, however since this is a hash derived from the destination key(s) which cannot be reversed, we would have to query the router (presumably through the SAM bridge or web frontend) to get the actual destination info. This means that each P2Pool client/server being run will need to look up the address/hash themselves, since the actual destinations are too long to be used as persistent identifiers.

Some references:
https://dark.fi/book/misc/nodes/i2p-guide.html
https://docs.i2pd.website/en/latest/user-guide/tunnels/
https://i2p.net/en/docs/api/socks/
https://i2p.net/en/docs/overview/naming/#naming-services

Add support for I2P as another proxy option, in addition to regular SOCKS and Tor proxies. It seems this would best be done by having the user set up a SOCKS proxy tunnel through their I2P router, and providing the address/port of the tunnel at startup. This is quite similar to how Tor support currently works. Unlike Tor, an inbound server tunnel would also be needed for traffic from peers, as I2P tunnels are unidirectional. The `.b32.i2p` address can also be provided at startup, however since this is a hash derived from the destination key(s) which cannot be reversed, we would have to query the router (presumably through the SAM bridge or web frontend) to get the actual destination info. This means that each P2Pool client/server being run will need to look up the address/hash themselves, since the actual destinations are too long to be used as persistent identifiers. Some references: https://dark.fi/book/misc/nodes/i2p-guide.html https://docs.i2pd.website/en/latest/user-guide/tunnels/ https://i2p.net/en/docs/api/socks/ https://i2p.net/en/docs/overview/naming/#naming-services
Author
Owner
Copy link

Update: this is mostly done, except for some errors/test cases which need to be resolved.

Update: this is mostly done, except for some errors/test cases which need to be resolved.
Author
Owner
Copy link

Merged :)

Merged :)
Sign in to join this conversation.
No Branch/Tag specified
master
i2p
No results found.
Labels
Clear labels
No items
No labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
jpk68/p2pool#1
Reference in a new issue
jpk68/p2pool
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?