mirror of
https://github.com/oxen-io/lokinet.git
synced 2024-11-11 07:10:36 +00:00
3.2 KiB
3.2 KiB
- lokinet components
- basic data structures
- network / threading / sync utilities
- configuration
- cryptography
- nodedb
- event loop
- link layer message transport:
- link layer messages
- IHopHandler
- pathset
- routing layer message router
- dht "layer" / rc gossiper
- hidden service data structures
- service endpoint / outbound context connectivitybackend
- snode / exit connectivity backend
- snapp / exit / mobile / null frontend handlers
- outbound message dispatcher
lokinet components
basic data structures
AlignedBuffer
RouterContact
self signed router descriptor
Crypto key types
network / threading / sync utilities
threadpool
logic (single thread threadpool)
configuration
ini parser
llarp::Configuration
cryptography
llarp::Crypto interface
libsodium / sntrup implementation
llarp::CryptoManager
crypto implementation signleton manager
nodedb
llarp_nodedb
holds many RouterContacts loaded from disk in memory
uses a filesystem skiplist for on disk storage
stores in a std::unordered_map addressable via public identity key
event loop
llarp_event_loop
udp socket read/write
network interface packet read/write
stream connection (outbound stream)
stream acceptor (inbound stream)
link layer message transport:
ILinkSession
the interface for an entity that is single session with relay
responsible for delivery recieval of link layer messages in full
ILinkLayer
bound to an address / interface
has a direction, inbound / outbound
distinctly identified by the union of interface and direction
Holds many ILinkSessions bound on the distinctly idenitfied direction/interface
link layer messages
link layer message parser
parses buffers as bencoded dicts
link layer message handler
handles each type of link layer message
IHopHandler
llarp::PathHopConfig
txid, rxid, shared secret at hop
llarp::path::Path
a built path or a path being built
owns a std::vector<PathHopConfig> for each hop's info
TransitHop
a single hop on a built path
has txid, rxid, shared secret, hash of shared secret
pathset
path::Builder
builds and maintains a set of paths for a common use
routing layer message router
routing::IMessageHandler
interface for routing layer message processing
transit hops implement this if they are an endpoint
path::Path implement this always
dht "layer" / rc gossiper
TODO rewrite/refactor
hidden service data structures
IntroSet
decrypted plaintext hidden service descriptor
EncryptedIntroSet
public encrpyted / signed version of IntroSet
service endpoint / outbound context connectivitybackend
service::Endpoint
backend for sending/recieving packets over the hidden service protocol layer
kitchen sink
service::SendContext
interface type for sending to a resource on the network
service::OutboundContext
implements SendContext extends path::Builder and path::PathSet
for maintaining a pathset that aligns on an introset's intros
~