1M5

Invisible Matrix Services - Uncensored Communications

build Crate Info API Docs

License PGP

commits repo size

num lang top lang Rustc Version 1.42+

Info | Docs | Changelog | Roadmap

Donate

Become a patron

Why rewrite in Rust?

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.

Design

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 - - - - - ---------------------- -

- ------- -

```

Components

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.

SEDA Bus

Service Bus

LiFi Client

Bluetooth Client

WiFi Direct Client

HTTPS Client

VPN Client

TOR Client

I2P Client

Locha Mesh Client

Satellite Client

FS Radio Client

Service Router

Keychain

InfoVault

CDN

DID