GNUnet System Architecture
Foundations
The foundations of GNUnet are a distributed hash table (R5N), an SCTP-like end-to-end encrypted messaging layer (CADET), a public key infrastructure (GNS) and a pluggable transport system (TRANSPORT).
Using public keys for addresses and self-organizing decentralized routing algorithms, these subsystems replace the traditional TCP/IP stack.
Security
GNUnet is implemented using a multi-process architecture. Each subsystem runs as a separate process, providing fault isolation and enabling tight permissions to be granted to each subsystem. Naturally, the implementation is a GNU package, and will always remain free software.
System architecture
Read more about the system architecture in the corresponding section of our handbook.
Subsystems
Read more about the subsystems (or GNUnet services) in the corresponding section of our handbook.
libgnunetutil
libgnunetutil is the fundamental library that all GNUnet code builds upon. Ideally, this library should contain most of the platform dependent code (except for user interfaces and really special needs that only few applications have). Read more.
APIs
GNUnet offers a variety of APIs for accessing services (using IPC), running services, message queues, or cryptographic operations.
Legend:
- house
- application
- circle
- application
- box
- daemon
- diamond
- library
- blackline
- dependency
- blue line
- extension via plugin
- red line
- possibly useful
- dashed
- in planning