- Magic Wormhole एक कंप्यूटर से दूसरे कंप्यूटर पर मनचाहे आकार की फ़ाइलें, directories और छोटे text को सुरक्षित रूप से ले जाने के लिए library और
wormholecommand-line tool प्रदान करता है - ट्रांसफर के दोनों सिरों की पहचान एक ही wormhole code से होती है; आम तौर पर sending device code बनाकर दिखाता है और receiving device में उसे दर्ज किया जाता है
- code छोटा होता है और ऐसे शब्दों की सूची का उपयोग करता है जिन्हें इंसान आसानी से बोल सकें; receiving side code words के लिए tab autocompletion देती है, इसलिए आम तौर पर कुछ अक्षर ही टाइप करने पड़ते हैं
- wormhole code one-time use होता है, उसे याद रखने की ज़रूरत नहीं होती, और program अलग repositories में मौजूद दो servers—mailbox server और transit relay—का उपयोग करता है
- Magic Wormhole MIT License के तहत वितरित होता है, Python 3.10 या उससे ऊपर के साथ compatible है और 3.12 तक tested है
Magic Wormhole क्या प्रदान करता है
- Magic Wormhole एक ऐसा project है जिसका लक्ष्य “एक कंप्यूटर से दूसरे कंप्यूटर पर सुरक्षित रूप से लाना” है
- package दो रूप प्रदान करता है
-
Library
wormholeनाम का command-line tool- transfer targets में ये शामिल हैं
- मनचाहे आकार की files
- directories
- छोटे text snippets
-
wormhole code आधारित transfer तरीका
- दो endpoints की पहचान एक ही wormhole code का उपयोग करके होती है
- सामान्य flow इस प्रकार है
- sending device code बनाता है और screen पर दिखाता है
- receiving device में वह code दर्ज किया जाता है
- code छोटा होता है, इंसानों के लिए बोलने में आसान होता है, और ध्वन्यात्मक रूप से अलग पहचाने जाने वाले शब्दों की सूची का उपयोग करता है
- receiving side code words के लिए tab autocompletion देती है, इसलिए आम तौर पर कुछ अक्षर ही टाइप करने पड़ते हैं
- wormhole code one-time use होता है और उसे याद रखने की ज़रूरत नहीं होती
Server configuration
- यह program दो servers का उपयोग करता है, और हर server का source code अलग repository में है
Documentation और presentation material
- पूरा documentation Magic Wormhole documentation या repository की
docs/subdirectory में देखा जा सकता है - PyCon 2016 presentation material उपलब्ध है
License, compatibility और installation
- Magic Wormhole MIT License के तहत वितरित होता है और विस्तृत जानकारी
LICENSEfile में है - library Python 3.10 या उससे ऊपर के साथ compatible है, और 3.12 तक tested है
- Magic Wormhole package कई operating systems में शामिल है
- OS package के बिना install करना हो तो Installation docs का पालन किया जा सकता है
1 टिप्पणियां
Hacker News राय
अजीब network environments में systems के बीच बड़ी files ट्रांसफर करने के लिए इसे कई सालों से इस्तेमाल कर रहा हूं, और यह लगभग हमेशा बिना दिक्कत काम करता है
एक थोड़े अलग test में, मैंने खुद Magic Wormhole relay चलाकर बहुत बड़ी file copies को तेज़ और ज़्यादा reliable बनाने के लिए tune भी कर पाया
Google Drive से अभी भी चिढ़ है, क्योंकि tens of GB files डालते ही यह बहुत बार टूट जाता है
https://www.jeffgeerling.com/blog/2023/my-own-magic-wormhole...
पिछली बार जब मैंने Wormhole से bulk data भेजने की कोशिश की, तो bandwidth-delay product की वजह से यह 20MB/s तक सीमित हो गया, और आखिर में साधारण HTTP पर aria2c और multiple streams का इस्तेमाल करके 1Gbps line को पूरा saturate किया
मुझे नहीं लगता कि PAKE-based tools long-distance large transfers में Globus जैसे over-complicated proprietary tools को पूरी तरह replace न कर सकें, लेकिन हकीकत अभी भी अतीत में अटकी है
असली data relay से तभी गुज़रेगा जब कुछ network restrictions होंगी; वरना सोचता हूं कि free relay चलाने का खर्च कैसे manage होता होगा
python -m http.serverभी इस्तेमाल करता हूंअफसोस है कि यह xkcd comic 2011 जैसी ही आज भी relevant है: https://xkcd.com/949/
यह उन single-purpose utilities में से एक है जो एक काम बेहद अच्छी तरह करती है, लेकिन इतनी अच्छी और चुपचाप काम करती है कि पूरी तरह नज़र से छूट जाती है
ऐसे शानदार creations के लिए और ज़्यादा आभारी होना चाहिए, ऐसा महसूस होता है
इसी तरह के project के रूप में अच्छे features वाले croc का इस्तेमाल कर रहा हूं: https://github.com/schollz/croc
https://redrocket.club/posts/croc/
मैंने wormhole से एक बार 70GB file ट्रांसफर की थी। पहले यह बिल्कुल संभव नहीं लगता था
मुझे पता था कि relay server bandwidth इस्तेमाल हुई है, इसलिए तुरंत Debian को donate किया। मेरी जानकारी में apt package version वाला relay Debian चलाता था
यह upstream git code वाले address की ओर इशारा करने वाला CNAME है, ताकि अगर cost burden आए तो उसे आसानी से बदला जा सके
अब तक यह समस्या नहीं बनी है; हर महीने करीब 10–15TB move होता है, लेकिन वैसे भी मैं जिन दूसरे servers को rent करता हूं उनके साथ bandwidth pool share करता हूं, इसलिए overage fee सिर्फ एक बार देनी पड़ी है
अगर कोई मुझे donate भी करे, तो सच कहूं तो शायद उसे सीधे Debian को भेज दूंगा
कभी-कभी जब कोई आधा terabyte बहा देता है, तो सोचता हूं कि इसे किसी धीमे लेकिन flat-rate provider पर shift कर दूं, या बेहतर rate-limiting code implement करूं, या आखिरकार वह protocol extension implement करूं जिसमें client पहले से बताए कि कितना data भेजना है और server उसे reject कर सके
लेकिन अभी तक यह priority कभी इतनी high नहीं हुई
NAT-to-NAT traversal सबसे बड़ा motivation है, यह साफ है। अगर दोनों तरफ barriers न हों तो बस scp, rsync, sftp इस्तेमाल कर सकते हैं
यह भी जानना है कि क्या relay server configure किया जा सकता है। कुछ हद तक hardcoded जैसा दिखा
संयोग से यह भी मिला। “नए features और improvements के साथ Magic Wormhole का Rust implementation”: https://github.com/magic-wormhole/magic-wormhole.rs
मैं author हूं। सवाल हों तो जवाब दे सकता हूं
क्या यह paranoid behavior है?
quantum computing से निपटने की आपकी क्या योजना है, और store-now-decrypt-later attacks से बचने के लिए post-quantum cryptography पर switch करने की योजना है या नहीं
यह भी जानना चाहता हूं कि protocol को TURN server जैसे ज़्यादा general proxy के ऊपर extend किया जा सकता है या नहीं
कुछ और 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
शायद बेवकूफी भरा सवाल हो, लेकिन iPhone और MacBook के बीच यह करने का सबसे अच्छा तरीका क्या होगा?
AirDrop policy के चलते disabled है, iCloud storage आलस की वजह से भर चुकी है, और बाकी सभी devices पर Syncthing इस्तेमाल करता/करती हूं, लेकिन company iPhone पर इस्तेमाल करने लायक client नहीं मिला
खास तौर पर यह पसंद है कि किसी भी device पर third-party app install करने की जरूरत नहीं पड़ती
Mac के Safari में आम तौर पर Chrome जितना अच्छा नहीं लगता, लेकिन मैंने Windows से iOS, Windows से macOS, और macOS से iOS पर बिना install किए transfer किया है
python -m http.serverजैसे HTTP server का इस्तेमाल कर लेंसंबंधित पोस्ट: Magic Wormhole: Get things from one computer to another, safely - https://news.ycombinator.com/item?id=27262193 - मई 2021, 178 comments
Tailscale में भी अब Taildrop है: https://tailscale.com/kb/1106/taildrop
यहां हम Tailscale को काफी व्यापक रूप से use करते हैं, फिर भी files अक्सर wormhole से ही भेजते हैं