Network Architecture - ART Report
Introduction
-
motivation / angle of approach / models
- compositional cryptographic identities
- the external identity / internal identity system
- actor model
- heterogeneous trust & heterogeneous preferences
- people want a subset of messages
- both trust and preferences vary over time
- which we want to be able to adapt to
- heterogenous / sovereign domains
- different requirements for different domains
- authentication, protocols, etc
- different requirements for different domains
- message delivery guarantees & semantics
- compositional cryptographic identities
-
models to architecture & protocols
- how these models lead to the proposed sw architecture & network protocols
- e.g.
- cryptographic identities + actor model
- engines/nodes with cryptographic identities
- associating network addresses with external identities
- message routing based on cryptographic identities
- compositional identities
- unicast/multicast routing depending on the number of identities
- cryptographic identities + actor model
- overview of the network & sw architecture
Requirements
Design requirements for:
-
messaging patterns
- unicast/multicast/anycast
-
message delivery semantics
- expressed per-message/node/domain
- delivery semantics
- unreliable
- best-effort, unordered delivery
- reliable
- fifo/causal
- exactly once
- unreliable
-
Network architecture & protocols
- privacy/security/efficiency/etc considerations
- node trust/reputation/measurements
- sovereign domains architecture
- intra-node & inter-node protocols
- message routing, addressing, transport
- intra-domain protocols
- protocols/services provided (pub/sub, storage, etc)
- join/authentication methods
- topology maintenance/membership protocol requirements
- inter-domain protocols
- domain lookup/routing protocols
- clustering/efficiency considerations
- privacy considerations
-
Software architecture
- engines & message passing requirements
- interoperability, protocol versioning
- language-independent serialization
- modular transport system
- various network transport protocols
- local transport for local user interfaces (i.e. User actors)
- measurements
- allow network/protocol testing/evaluation with simulated network topology & nodes
Related work
- mention other p2p libraries/frameworks with similar scope (e.g. libp2p, gnunet)
Network Architecture
- describe overall network architecture
- identities for addressing & message authentication
- unicast/multicast messaging
- sovereign domains
- describe each network protocol
- messages types & protocol logic
- how different protocols interact with / rely on each other
Software Architecture
- describe engines & message passing, motivated by the actor model
- unicast/multicast/anycast comm patterns
- message preferences
- privacy/security/reliability/ordering
- describe each engine of the networking machine
- what network protocols they implement
- message flows between engines
- protocol testing & evaluation
- launch many nodes on the same machine
- multiple nodes (set of actors) directly connected
- network transport for simulation:
- add delay + message loss
- launch many nodes on the same machine
Future work
-
open problems/questions
-
improvements necessary
-
future research directions
-
future ART reports
- inter-domain protocols
- peer sampling & clustering
- small-world routing
- for anycast requests to domains
- intra-domain protocols
- topology & pubsub
- decentralized secure group messaging
- trust & reputation
- inter-domain protocols