cf2ff6768d
Add a full embedded I2P router (PurpleI2P/i2pd) alongside the existing
embedded Tor, making Triangles a dual-network anonymity cryptocurrency.
Architecture:
- i2pd runs in-process via i2p::api (same pattern as embedded Tor)
- SOCKS proxy (19100) routes outbound .b32.i2p connections
- Server tunnel acts as I2P hidden service (incoming P2P connections)
- SAM bridge (7656) available for future SAM v3 protocol usage
- Auto-generated tunnels.conf with persistent destination keys
- Non-fatal: I2P failure falls back to Tor-only operation
Files:
- src/i2p/i2pd-src/: PurpleI2P/i2pd as git submodule
- src/i2p/i2p_embedded.h/.cpp: CI2PEmbedded router wrapper
- src/i2p/i2pseed.h: .b32.i2p seed node placeholders
- src/i2p/build-libi2pd.sh: static library build script
- CMakeLists.txt: USE_I2P_EMBEDDED option (default OFF)
- src/init.cpp: I2P startup/shutdown wiring
- src/net.cpp: allow .b32.i2p in ConnectNode + seed parsing
- src/netbase.cpp: I2P SOCKS routing in ConnectSocketByName,
fixed .b32.i2p address parsing (was broken .oc.b32.i2p only)
Build: cmake -DUSE_I2P_EMBEDDED=ON
Test: verified daemon starts, creates .b32.i2p destination,
builds tunnels, connects to I2P network
10 lines
308 B
Plaintext
10 lines
308 B
Plaintext
[submodule "src/tor/tor-src"]
|
|
path = src/tor/tor-src
|
|
url = https://gitlab.torproject.org/tpo/core/tor.git
|
|
[submodule "src/secp256k1"]
|
|
path = src/secp256k1
|
|
url = https://github.com/bitcoin-core/secp256k1
|
|
[submodule "src/i2p/i2pd-src"]
|
|
path = src/i2p/i2pd-src
|
|
url = https://github.com/PurpleI2P/i2pd.git
|