Mycelium Overview
Networking
Network Topology
The Mycelium network consists of two types of node: user-owned servers and relays. Any type of node can connect to any other type.
Discoverability
Update Propagation and Caching
Server Structure
A server makes up a node on the network. A server is modular by design, and is comprised mainly of three parts: the keyring manager, a set of providers, and a set of adapters.
The keyring manager is a service that maintains the keyrings for each persona. Each keyring consists of a keypair for the persona, a colleciton of endorsements, and a mapping of key signatures to public keys and endorsements, used to authenticate other users.
Providers are services that provide the core, protocol-agnostic functionality of a server.
Adapters are interfaces that providers can use to communicate with the world. A provider may register routes with any number of supported adapters. Each adapter runs only a single instance, which is needed for, e.g. all TCP/UDP services using the same port (80).
Cryptography
TODO
Keyring
For details on the Anima Identity Protocol, see the Anima Specification.