- Magic Wormhole, bir bilgisayardan diğerine rastgele boyutta dosyaları, dizinleri ve kısa metinleri güvenli şekilde taşımak için bir kütüphane ve
wormholekomut satırı aracını sunar - Aktarımın iki ucu aynı wormhole code ile tanımlanır; genellikle gönderen cihaz kodu üretip gösterir ve bu kod alıcı cihaza girilir
- Kod kısa ve insanların telaffuz etmesi kolay sözcük listelerini kullanır; alıcı taraf kod sözcükleri için sekme ile otomatik tamamlama sunduğundan genelde yalnızca birkaç harf girmek yeterlidir
- wormhole code tek kullanımlıktır; ezberlemek gerekmez ve program ayrı depolardaki mailbox server ile transit relay olmak üzere iki sunucu kullanır
- Magic Wormhole MIT lisansı ile dağıtılır, Python 3.10 ve üzeriyle uyumludur ve 3.12'ye kadar test edilmiştir
Magic Wormhole'un sunduğu özellikler
- Magic Wormhole, “bir bilgisayardan diğerine güvenli şekilde aktarma” hedefiyle geliştirilmiş bir projedir
- Paket iki biçim sunar
-
Kütüphane
wormholeadlı bir komut satırı aracı- Aktarılabilen içerikler şunları kapsar
- Rastgele boyutta dosyalar
- Dizinler
- Kısa metin parçaları
-
wormhole code tabanlı aktarım yöntemi
- İki uç nokta aynı wormhole code kullanılarak tanımlanır
- Genel akış şu şekildedir
- Gönderen cihaz kodu üretir ve ekranda gösterir
- Alıcı cihazda bu kod girilir
- Kod kısa, insanların telaffuz etmesi kolaydır ve fonetik olarak ayırt edilebilen sözcük listelerini kullanır
- Alıcı taraf kod sözcükleri için sekme ile otomatik tamamlama sunduğundan genelde yalnızca birkaç harf girmek yeterlidir
- wormhole code tek kullanımlıktır ve ezberlenmesi gerekmez
Sunucu yapısı
- Bu program iki sunucu kullanır ve her sunucunun kaynak kodu ayrı bir depoda bulunur
Belgeler ve sunum materyalleri
- Tüm belgelere Magic Wormhole belgeleri üzerinden veya deponun
docs/alt dizininden ulaşılabilir - PyCon 2016 sunum materyalleri de sunulmaktadır
Lisans, uyumluluk ve kurulum
- Magic Wormhole MIT lisansı ile dağıtılır; ayrıntılar
LICENSEdosyasında yer alır - Kütüphane Python 3.10 ve üzeri ile uyumludur ve 3.12'ye kadar test edilmiştir
- Magic Wormhole paketi çeşitli işletim sistemlerine dahil edilmiştir
- OS paketi olmadan kurmak için Installation docs izlenebilir
1 yorum
Hacker News görüşleri
Tuhaf ağ ortamlarında sistemler arasında büyük dosyalar taşımak için yıllardır kullanıyorum; neredeyse her zaman sorunsuz çalışıyor
Biraz daha sıra dışı bir test olarak kendi Magic Wormhole relay’imi çalıştırıp çok büyük dosya kopyalamalarını daha hızlı ve kararlı hale getirecek şekilde ayarlayabildim
Google Drive’a onlarca GB’lık dosya atınca çok sık çöküp kaldığı için hâlâ sevmiyorum
https://www.jeffgeerling.com/blog/2023/my-own-magic-wormhole...
Wormhole ile en son büyük miktarda veri göndermeye çalıştığımda bant genişliği-gecikme çarpanı yüzünden 20MB/s ile sınırlanmıştım; sonunda sıradan HTTP üzerinde aria2c ve çoklu stream kullanarak 1Gbps hattı tamamen doldurdum
PAKE tabanlı araçların uzun mesafeli büyük aktarımlarda Globus gibi aşırı karmaşık, tescilli araçların yerini tamamen alamaması için bir neden görmüyorum; ama gerçeklik geçmişte kalmış durumda
Gerçek verinin relay’den ancak bazı ağ kısıtları olduğunda geçmesi gerekir; aksi halde ücretsiz relay işletme maliyetini nasıl karşıladıklarını merak ediyorum
python -m http.serverda kullanıyorumBu xkcd karikatürünün 2011’de olduğu kadar hâlâ geçerli olması üzücü: https://xkcd.com/949/
Bu, tek bir işi inanılmaz iyi yapan tek amaçlı yardımcı araçlardan biri; o kadar iyi çalışıyor ve o kadar göze batmıyor ki tamamen fark edilmeden kalıyor
Böyle harika üretimlere daha çok minnet duymamız gerektiğini hissediyorum
Benzer bir proje olarak iyi özellikleri olan croc’u kullanıyorum: https://github.com/schollz/croc
https://redrocket.club/posts/croc/
wormhole ile bir kez 70GB dosya aktardım. Eskiden asla yapamayacağım bir şeydi
Relay sunucusunun bant genişliğini kullandığımı bildiğim için hemen Debian’a bağış yaptım. apt paket sürümündeki relay’i Debian’ın işlettiğini sanıyordum
Upstream git kodunun kullandığı adresle aynı yere işaret eden bir CNAME; amaç, maliyet yükü oluşursa kolayca değiştirebilmekti
Şimdiye kadar sorun olmadı; ayda yaklaşık 10-15TB taşıyor ama zaten kiraladığım diğer sunucularla bant genişliği havuzunu paylaştığı için yalnızca bir kez kota aşımı ücreti ödedim
Biri bana bağış yapsa açıkçası muhtemelen aynen Debian’a gönderirim
Ara sıra biri yarım terabayt akıttığında, daha yavaş ama sabit ücretli bir sağlayıcıya geçmem, daha iyi hız sınırlama kodu yazmam ya da istemcinin aktaracağı veri miktarını önceden bildirdiği ve sunucunun reddedebildiği protokol genişletmesini nihayet uygulamam gerektiğini düşünüyorum
Ama henüz önceliği yeterince yükselmedi
NAT’tan NAT’a geçişin en büyük motivasyon olduğu açık. İki tarafta da duvar yoksa zaten scp, rsync, sftp kullanırsınız
Relay sunucusunun ayarlanıp ayarlanamadığını da merak ediyorum. Bir ölçüde hard-code edilmiş gibi görünüyordu
Tesadüfen bunu da buldum. “Yeni özellikler ve iyileştirmeler içeren Magic Wormhole’un Rust implementasyonu”: https://github.com/magic-wormhole/magic-wormhole.rs
Yazarıyım. Sorular varsa yanıtlayabilirim
Bu paranoyakça mı?
Kuantum bilişime nasıl karşılık vermeyi planladığınızı, “şimdi sakla, sonra şifresini çöz” saldırılarına karşı kuantuma dayanıklı kriptografiye geçme planınız olup olmadığını da merak ediyorum
Protokolün TURN sunucusu gibi daha genel bir proxy üzerine genişletilip genişletilemeyeceğini de bilmek isterim
Başka birkaç araç da var
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
Aptalca bir soru olabilir ama iPhone ile MacBook arasında bunu yapmanın en iyi yolu ne?
AirDrop politika gereği devre dışı, iCloud depolama alanım tembellikten dolup taştı, diğer tüm cihazlarda Syncthing kullanıyorum ama şirket iPhone'unda kullanabileceğim bir istemci bulamadım
Özellikle hiçbir cihaza üçüncü taraf uygulama kurmak gerekmemesini seviyorum
Mac'teki Safari'de genelde Chrome kadar iyi çalışmıyor gibi, ama Windows'tan iOS'a, Windows'tan macOS'e, macOS'ten iOS'a kurulum yapmadan aktarım yapmışlığım var
python -m http.servergibi bir HTTP sunucusu kullanmanız yeterliİlgili yazı: Magic Wormhole: Get things from one computer to another, safely - https://news.ycombinator.com/item?id=27262193 - Mayıs 2021, 178 yorum
Tailscale'de de artık Taildrop var: https://tailscale.com/kb/1106/taildrop
Burada Tailscale'i genel olarak kullanıyor olsak da, dosyaları hâlâ sık sık wormhole ile gönderiyorum