| Author | Jose Storopoli |
|---|---|
| Owner | Jose Storopoli |
| Due Date | 2025-05-31 |
| Target Audience | Enginners/Protocol Developers |
| Status | Draft |
The P2P library will be used as a scaffold to build P2P implementations either as a standalone binary or embedded in other binaries. The library is to be primarily used as a common set of P2P features and basal implementations that all P2P applications need to have in order to operate as a P2P node.
Hence, the P2P library is a basic library that provides easy-to-use abstractions for other libraries to implement specific P2P node use cases: we call these libraries "service libraries". Eventually a binary, either a standalone or a shared binary, will implement the specific P2P service libraries to run a P2P runtime.
The P2P library must be compatible with LibP2P’s protocols, libraries, and primitives. It is recommended that the P2P library use the LibP2P’s libraries directly which provides best guarantees for protocol compliance, code quality; and performance and security concerns.
The P2P specification is composed of:
ed25519.IWANT/IHAVE features.LibP2P implementations must support Ed25519 ****keys and signatures. Ed25519 is the most well-implemented and supported authentication method in LibP2P; and the only one that is mandatory to be supported in the protocol.
Ed25519 is generally preferred over ECDSA on secp256k1 (what the v1 of this spec used) for authentication for several important reasons: