Notes: a re-design in routing was also necessary as the original routing across networks exposed the origination to the destination and every 1M5 relay in between. It's desired to change this to onion routing so that 1M5 relays are not aware of whom is an originator nor destination. This requires building up lease sets similar to how TOR/I2P works.
This daemon runs as an OS service providing:
Packets are used to route Envelopes across networks.
Envelopes are routed within the destination node's 1M5 Daemon process to fulfill a request.
```
----------- OS Process -------------- ----------- OS Process --------------
- ------------------------------- - - ------------------------------- -
- - SEDA Bus - - - - [API] Browser - -
- ------------------------------- - - ------------------------------- -
- - -------------------------------------
- ------- ---------------------- -
- - - - Network Router - - ------------ OS Process -------------
- - - ---------------------- - - ------------------------------- -
- - - - - - [API] Messenger - -
- - - ---------------------- - - ------------------------------- -
- - - - LiFi Client - - -------------------------------------
- - - ---------------------- -
- - - - ----------- OS Process --------------
- - S - ---------------------- - - ------------------------------- -
- - e - - Bluetooth Client - - - - [API] CLI - -
- - r - ---------------------- - - ------------------------------- -
- - v - - -------------------------------------
- - i - ---------------------- -
- - c - - WiFi Direct Client - - ----------- OS Process --------------
- - - ---------------------- - - ------------------------------- -
- - B - - - - [API] External Service - -
- - u - ---------------------- - - ------------------------------- -
- - s - - HTTPS Client - - -------------------------------------
- - - ---------------------- -
- - - -
- - - ---------------------- -
- - - - VPN Client - -
- - - ---------------------- -
- - - -
- - - ---------------------- -
- - - - TOR Client - -
- - - ---------------------- -
- - - -
- - - ---------------------- -
- - - - I2P Client - -
- - - ---------------------- -
- - - -
- - - ---------------------- -
- - - - Locha Mesh Client - -
- - - ---------------------- -
- - - -
- - - ---------------------- -
- - - - Satellite Client - -
- - - ---------------------- -
- - - -
- - - ---------------------- -
- - - - FS Radio Client - -
- - - ---------------------- -
- - - -
- - - ---------------------- -
- - - - Service Router - -
- - - ---------------------- -
- - - -
- - - ---------------------- -
- - - - Keychain - -
- - - ---------------------- -
- - - -
- - - ---------------------- -
- - - - InfoVault - -
- - - ---------------------- -
- - - -
- - - ---------------------- -
- - - - CDN - -
- - - ---------------------- -
- - - -
- - - ---------------------- -
- - - - DID - -
- - - ---------------------- -
```
External processes like the Browser, Messenger, and CLI can use the API to send/receive messages via services. The API packs up the service request into an Envelope and transmits it to the SEDA Bus via its inbound external channel. The SEDA Bus retrieves this message asynchronously sending it to the Service Bus. If the message is a Packet, it sends it to the Network Router. If the message is an Envelope, it sends it to the Service Router.