a chat protocol or something. We have no clue what we're doing, please help
api | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE | ||
README.md |
shoutcat
-
verteiltes netzwerk an servern
- shoutcat besteht aus einem verteilten netzwerk an servern die über das internet verbunden sind
- Jeder Node (server) trägt zur Gesamtfunktionalität des Netzwerkes bei und kann mit anderen Servern kommunizieren
-
verbindungen werden über ein relay hergestellt (zunächst bereitgestellt von dem server von dem aus der chat initialisiert wurde)
- Kommunikation zwischen den Clients und dem Relay über das QUIC-Protokoll
-
Raft als Distributed Consensus System
- Raft verhindert nicht dass ein node malicious ist, wird aber früher oder später einen konsistenten Zusant über alle Server erreichen und Trifft die Entscheidung welcher node leader an einem relay ist
- Jeder Server ist ein raft-node
- Bei Serverausfällen oÄ wählt Raft einen neuen Leader um Kontinuität zu gewährleisten
-
Clients als Server
- Die Clients sollen auch als Server agieren können?
- Dentrales speichern / weitergeben von Daten via IPFS?
- Die Clients sollen auch als Server agieren können?
-
Verbindungsaufbau:
- Ein Client initialisiert eine Verbindung zum Relay-Server um an Shoutcat netzwerk teilzunehmen
- Der Relayserver ermöglicht es den clients sich gegenseitig zu entdecken und nachrichten auszutauschen
-
Nachrichtenaustausch
- Die clients können nachrichten senden und empfangen, das relay dient als vermittler
- die verbindung zum relay und übertragung der nachrichten passiert über das QUIC protokoll