Unter der Haube

Es ist wie scp, ohne die IP-Adresse kennen zu müssen. Fügen Sie Dateien zu AltSendme hinzu, und es gibt Ihnen ein einfügbares Ticket, das Sie an jeden weitergeben können, der Ihre Dateien benötigt. AltSendme verbindet Ihre Geräte direkt und überträgt die Daten ohne Konten oder Konfiguration.

AltSendme Hero-Grafik

Wichtige Konzepte

1. Blobs

Inhaltsadressierte Blob-Speicherung und -Übertragung. iroh-blobs implementiert Request/Response- und Streaming-Übertragungen beliebig großer Byte-Blobs mit BLAKE3-verifizierten Streams und inhaltsadressierten Links.

  • Blob: eine undurchsichtige Bytefolge (ohne eingebettete Metadaten).
  • Link: ein 32-Byte-BLAKE3-Hash, der einen Blob identifiziert.
  • HashSeq: ein Blob, der eine Sequenz von Links enthält (nützlich für Chunking/Bäume).
  • Provider / Requester: Der Provider liefert Daten; der Requester holt sie ab. Ein Endpunkt kann beides sein.

2. Tickets

Tickets sind eine Möglichkeit, Wählinformationen zwischen iroh-Endpunkten zu teilen. Sie sind ein einzelnes Token, das alles enthält, was benötigt wird, um sich mit einem anderen Endpunkt zu verbinden oder in diesem Fall einen Blob abzurufen. Enthält Ed25519 NodeIds: die kryptografische Identität Ihres Geräts zur Authentifizierung. Sie sind auch sehr leistungsfähig. Dieses Setup ist deutlich besser als vollständige Peer-to-Peer-Systeme, die Ihre IP an Peers senden. Stattdessen werden in iroh Tickets verwendet, um ein „cozy network“ zwischen Peers zu bilden, mit denen Sie sich explizit verbinden möchten. Es ist möglich, „full p2p“ zu gehen und Ihre App so zu konfigurieren, dass Wähldetails gesendet werden, aber Tickets sind ein besserer Mittelweg als Standard.

3. Peer Discovery, NAT-Traversal & Hole Punching

Peers registrieren sich beim Start bei Open-Source-öffentlichen Relay-Servern, um Firewalls und NATs zu durchqueren und Verbindungen aufzubauen. Nach der Verbindung nutzt iroh QUIC Hole Punching, um eine direkte Peer-to-Peer-Verbindung herzustellen und das Relay zu umgehen. Wenn eine direkte Verbindung möglich ist, kommunizieren die Peers direkt mit Ende-zu-Ende-Verschlüsselung; andernfalls fungiert das Relay nur vorübergehend als Fallback. Dies ermöglicht zuverlässige Verbindungen innerhalb lokaler Netzwerke und über das Internet.

4. QUIC & Verschlüsselung

QUIC ist ein modernes Transportprotokoll auf UDP-Basis, das Latenz reduziert und die Web-Performance gegenüber TCP verbessert. Ursprünglich von Google entwickelt und heute vom IETF als Grundlage von HTTP/3 standardisiert, integriert es TLS 1.3 direkt ins Protokoll.

QUIC ermöglicht folgende Superkräfte:

  • Verschlüsselung & Authentifizierung
  • Stream-Multiplexing
  • keine Head-of-Line-Blocking-Probleme
  • Stream-Prioritäten
  • ein gemeinsamer Congestion Controller
  • ein verschlüsselter, unzuverlässiger Datagramm-Transport
  • Verbindungsaufbau ohne Round-Trip-Zeit, wenn Sie sich zuvor mit einem Endpunkt verbunden haben

5. Relays

AltSendme nutzt Open-Source-öffentliche Relay-Server, um direkte Verbindungen aufzubauen, die anfängliche Verbindungszeit zu verkürzen und als Fallback zu dienen, falls direkte Verbindungen zwischen zwei Endpunkten scheitern oder unmöglich sind. Alle Verbindungen sind Ende-zu-Ende-verschlüsselt. Das Relay ist „nur ein weiterer UDP-Socket“ zum Versenden verschlüsselter Pakete. Mehr erfahren.

Unter der Haube | AltSendme