I2p-cp
Are you interested in an I2CP client in a specific language, or A Scalable Framework for Anonymous Communication - I2P
I2CP is essential for the I2P ecosystem because it provides a consistent API for various programming languages. While the primary I2P router is written in Java, I2CP allows clients written in C++, Python, or Go to interface with it seamlessly. This has enabled the integration of I2P into diverse projects, such as the Monero cryptocurrency for transaction privacy.
To establish a connection through the network, a client follows a specific handshake and setup sequence via I2CP: i2p-cp
Sent by the router when it needs the client to sign a new set of tunnels for inbound traffic. Significance for Developers
: The client requests the current network time from the router via GetDate and SetDate messages. Are you interested in an I2CP client in
The is the standard interface through which client applications interact with an I2P router to send and receive data across the anonymous network. By decoupling the application logic from the complex routing and encryption tasks of the network, I2CP allows developers to build privacy-focused tools—such as secure messaging or file-sharing systems—without needing to implement the underlying peer-to-peer (P2P) protocol themselves. Core Functionality and Architecture
: A CreateSession message is sent, containing the application's configuration and its cryptographic Destination (public key). To establish a connection through the network, a
: Since I2P is a packet-switched network where messages can be lost or delayed, I2CP is inherently asynchronous, allowing applications to manage their own reliability or use the built-in streaming library for TCP-like behavior. The Initialization Process