- Magic Wormhole bietet eine Bibliothek und das Kommandozeilen-Tool
wormhole, um Dateien beliebiger Größe, Verzeichnisse und kurze Texte sicher von einem Computer auf einen anderen zu übertragen - Beide Enden der Übertragung werden über denselben wormhole code identifiziert; üblicherweise erzeugt das sendende Gerät den Code, zeigt ihn an, und das empfangende Gerät gibt ihn ein
- Der Code verwendet kurze, für Menschen leicht aussprechbare Wortlisten; auf der Empfängerseite gibt es Tab-Autovervollständigung für die Codewörter, sodass meist nur wenige Buchstaben eingegeben werden müssen
- Der wormhole code ist einmalig verwendbar, muss nicht auswendig gelernt werden, und das Programm nutzt zwei Server: einen mailbox server und einen transit relay aus separaten Repositories
- Magic Wormhole wird unter der MIT-Lizenz veröffentlicht, ist mit Python 3.10 oder neuer kompatibel und bis 3.12 getestet
Funktionen von Magic Wormhole
- Magic Wormhole ist ein Projekt mit dem Ziel, Dinge „sicher von einem Computer auf einen anderen zu holen“
- Das Paket bietet zwei Formen
-
Bibliothek
- ein Kommandozeilen-Tool namens
wormhole - Zu den übertragbaren Inhalten gehören:
- Dateien beliebiger Größe
- Verzeichnisse
- kurze Textausschnitte
- ein Kommandozeilen-Tool namens
-
Übertragungsmethode auf Basis von wormhole code
- Die beiden Endpunkte werden mit demselben wormhole code identifiziert
- Der typische Ablauf ist wie folgt
- Das sendende Gerät erzeugt den Code und zeigt ihn auf dem Bildschirm an
- Auf dem empfangenden Gerät wird dieser Code eingegeben
- Der Code ist kurz, für Menschen leicht aussprechbar und verwendet eine phonetisch unterscheidbare Wortliste
- Die Empfängerseite bietet Tab-Autovervollständigung für die Codewörter, sodass normalerweise nur einige wenige Buchstaben eingegeben werden müssen
- Der wormhole code ist einmalig verwendbar und muss nicht behalten werden
Server-Konfiguration
- Dieses Programm verwendet zwei Server, deren Quellcode sich jeweils in separaten Repositories befindet
Dokumentation und Vortragsmaterialien
- Die vollständige Dokumentation ist in der Magic Wormhole-Dokumentation oder im Unterverzeichnis
docs/des Repositories verfügbar - Es gibt Materialien zum PyCon-2016-Vortrag
Lizenz, Kompatibilität und Installation
- Magic Wormhole wird unter der MIT-Lizenz veröffentlicht; Details stehen in der Datei
LICENSE - Die Bibliothek ist mit Python 3.10 oder neuer kompatibel und bis Version 3.12 getestet
- Das Magic-Wormhole-Paket ist in mehreren Betriebssystemen enthalten
- Für eine Installation ohne OS-Paket kann die Installationsdokumentation verwendet werden
1 Kommentare
Meinungen auf Hacker News
Ich nutze es seit Jahren, um in seltsamen Netzwerkumgebungen große Dateien zwischen Systemen zu übertragen, und es funktioniert fast immer problemlos.
Als etwas ungewöhnlicheren Test habe ich auch einen eigenen Magic-Wormhole-Relay betrieben und konnte ihn so abstimmen, dass sehr große Dateikopien schneller und stabiler wurden.
Google Drive hasse ich immer noch, weil es bei Dateien mit zig GB viel zu oft zusammenbricht.
https://www.jeffgeerling.com/blog/2023/my-own-magic-wormhole...
Als ich zuletzt versucht habe, große Datenmengen mit Wormhole zu senden, war ich wegen des Bandwidth-Delay-Products auf 20 MB/s begrenzt; am Ende habe ich mit gewöhnlichem HTTP, aria2c und mehreren Streams eine 1-Gbps-Leitung ausgelastet.
Ich sehe keinen Grund, warum PAKE-basierte Tools bei großen Langstreckenübertragungen überkomplexe proprietäre Werkzeuge wie Globus nicht vollständig ersetzen könnten, aber die Realität hängt in der Vergangenheit fest.
Nur bei bestimmten Netzwerkeinschränkungen sollten die eigentlichen Daten über den Relay laufen; wenn nicht, frage ich mich, wie die Kosten für den Betrieb eines kostenlosen Relays getragen werden.
python -m http.serverfür lokale Downloads.Schade, dass dieser xkcd-Comic von 2011 noch immer genauso aktuell ist: https://xkcd.com/949/
Das ist eines dieser Single-Purpose-Utilities, die eine Sache extrem gut machen, dabei so gut funktionieren und so unauffällig sind, dass sie völlig unter dem Radar bleiben.
Ich habe das Gefühl, solchen großartigen Schöpfungen stärker dankbar sein zu müssen.
Ich nutze croc, ein ähnliches Projekt mit guten Funktionen: https://github.com/schollz/croc
https://redrocket.club/posts/croc/
Ich habe einmal eine 70-GB-Datei mit wormhole übertragen. Früher wäre das schlicht unmöglich gewesen.
Mir war klar, dass ich Bandbreite des Relay-Servers genutzt habe, also habe ich direkt an Debian gespendet. Ich war der Meinung, dass Debian den Relay der apt-Paketversion betreibt.
Das ist ein CNAME, der auf dieselbe Adresse zeigt wie der Upstream-Git-Code, damit man ihn leicht ändern kann, falls Kosten entstehen.
Bisher war das kein Problem; es werden etwa 10–15 TB pro Monat übertragen, aber da der Server ohnehin einen Bandbreiten-Pool mit anderen von mir gemieteten Servern teilt, musste ich erst ein einziges Mal Zusatzgebühren zahlen.
Wenn mir jemand spenden würde, würde ich das ehrlich gesagt wahrscheinlich einfach an Debian weiterleiten.
Wenn gelegentlich jemand ein halbes Terabyte durchschiebt, denke ich darüber nach, auf einen langsameren, aber pauschal abgerechneten Anbieter umzuziehen, besseren Rate-Limiting-Code zu implementieren oder endlich eine Protokollerweiterung zu bauen, bei der der Client die zu übertragende Datenmenge vorab angibt und der Server ablehnen kann.
Aber bisher ist die Priorität nie hoch genug geworden.
NAT-zu-NAT-Traversal ist offensichtlich die Hauptmotivation. Wenn es auf beiden Seiten keine Barrieren gibt, kann man einfach scp, rsync oder sftp verwenden.
Ich frage mich auch, ob man den Relay-Server konfigurieren kann. Es wirkte so, als sei er bis zu einem gewissen Grad hardcodiert.
Zufällig habe ich auch das hier gefunden: „Eine Rust-Implementierung von Magic Wormhole mit neuen Funktionen und Verbesserungen“: https://github.com/magic-wormhole/magic-wormhole.rs
Ich bin der Autor. Wenn es Fragen gibt, kann ich sie beantworten.
Ist das paranoid?
Außerdem interessiert mich, wie der Plan im Hinblick auf Quantencomputing aussieht und ob es Pläne gibt, auf Post-Quantum-Kryptografie umzustellen, um Store-now-decrypt-later-Angriffe abzuwehren.
Ich würde auch gern wissen, ob sich das Protokoll auf allgemeinere Proxys wie TURN-Server erweitern lässt.
Es gibt auch ein paar andere Tools
p2pcopy https://github.com/psantosl/p2pcopy
pcp https://github.com/dennis-tra/pcp
wormhole-william https://github.com/psanford/wormhole-william
https://github.com/mat-sz/filedrop
https://github.com/saljam/webwormhole
https://github.com/schollz/croc
https://github.com/dutchcoders/transfer.sh
https://github.com/timvisee/send
https://github.com/schlagmichdoch/pairdrop
https://github.com/SnapDrop/snapdrop
Vielleicht ist das eine dumme Frage, aber wie macht man das am besten zwischen iPhone und MacBook?
AirDrop ist per Policy deaktiviert, der iCloud-Speicher ist aus Faulheit vollgelaufen, und auf allen anderen Geräten nutze ich Syncthing, aber ich habe keinen Client gefunden, den ich auf dem Firmen-iPhone verwenden kann
Besonders gefällt mir, dass man auf keinem Gerät eine Drittanbieter-App installieren muss
In Safari auf dem Mac scheint es meistens nicht ganz so gut zu funktionieren wie in Chrome, aber ich habe schon ohne Installation von Windows zu iOS, von Windows zu macOS und von macOS zu iOS übertragen
python -m http.serververwenden, dann geht dasVerwandter Beitrag: Magic Wormhole: Get things from one computer to another, safely - https://news.ycombinator.com/item?id=27262193 - Mai 2021, 178 Kommentare
Auch Tailscale hat inzwischen Taildrop: https://tailscale.com/kb/1106/taildrop
Obwohl wir hier Tailscale allgemein nutzen, verschicke ich Dateien immer noch häufig per wormhole