- Kriptografi tabanlı bir ağ yığını olup LoRa, paket radyo, WiFi gibi çeşitli ortamlar üzerinde çalışır ve çok düşük hız, yüksek gecikme koşullarında da kararlı iletişimi destekler
- Uçtan uca şifreleme, gönderici anonimliği, otomatik yapılandırılan çok atlamalı yönlendirme, sahteciliğe kapalı teslim onayı gibi güvenlik odaklı özellikler içerir
- IP yığınına bağımlı değildir ve Python 3 ortamında çekirdek modülü olmadan kullanıcı alanında çalışabilir
- Düşük maliyetli ve özerk ağlar kurmayı hedefler; merkezi kontrol veya sansür olmadan binlerce bağımsız ağın birbirine bağlanmasını mümkün kılar
- Dağıtık iletişim altyapısı kurma ve off-grid ağ oluşturma için açık kaynaklı bir araç olarak geliştiriciler ve araştırmacılar için yüksek kullanım değeri sunar
Reticulum genel bakış
- Reticulum, sıradan donanımlarla yerel ve geniş alan ağları kurmayı sağlayan kriptografi tabanlı bir ağ yığınıdır
- Yüksek gecikmeli ve düşük bant genişlikli ortamlarda da çalışır
- Uçtan uca şifreleme, gönderici anonimliği, otomatik yapılandırılan çok atlamalı aktarım, verimli adresleme, sahteciliğe kapalı teslim onayı özellikleri sunar
- Amaç, herkesin kendi ağının işletmecisi haline gelerek merkezi kontrol olmadan özerk ve birbirine bağlanabilir ağlar kurabilmesidir
- Reticulum tek bir ağ değil, binlerce bağımsız ağ kurmak için tasarlanmış bir araçtır
- IP tabanlı olarak da çalışabildiği için internet veya özel ağlar üzerinde tünelleme yapılabilir
- Python 3 ortamında çalışır, çekirdek modülü veya sürücü gerektirmez
Temel özellikler
- Küresel olarak benzersiz adresleme ve otomatik yapılandırılan çok atlamalı yönlendirme desteği
- Veriler farklı fiziksel ortamlar ve topolojiler üzerinden aktarılabilir
- Gönderici anonimliği sağlar: paketlerde kaynak adresi bulunmaz
- Asimetrik X25519 şifreleme ve Ed25519 imzaları tabanlı iletişim
- 512 bitlik Curve25519 anahtar seti kullanır
- Forward Secrecy desteği, AES-256-CBC şifreleme ve SHA256 HMAC doğrulaması
- Genişletilebilir arayüz sistemi ile özel arayüzler eklenebilir
- Basit bir API sunarak dağıtık uygulama geliştirmeyi kolaylaştırır
- Büyük veri aktarımını destekler; otomatik sıkıştırma, sağlama toplamı ve aktarım ayarlama özellikleri içerir
- Hafif bir Request/Response mekanizması ve verimli bağlantı kurulumu sağlar (3 paket, 297 bayt)
Referans uygulama ve protokol
- Bu depodaki Python kodu resmi referans uygulamadır ve protokol tanımının temelini oluşturur
- Reticulum License ile dağıtılır; protokol 2016'da kamu malı olarak bağışlanmıştır
- Uyumluluk, referans uygulamayla tam birlikte çalışabilirlik olarak tanımlanır
Kullanım örnekleri
- rnsh: Reticulum tabanlı uzak kabuk oturumu
- LXMF: dağıtık mesaj iletim protokolü
- LXST: gerçek zamanlı ses ve sinyal iletim çatısı
- Nomad Network: off-grid şifreli mesh iletişim platformu
- Sideband: dosya aktarımı, sesli arama ve harita özellikleri sunan GUI uygulaması
- MeshChat: web tabanlı LXMF istemcisi; görsel, ses ve dosya aktarımını destekler
Desteklenen ortamlar ve cihazlar
- En az 5bps ve üzeri yarı çift yönlü kanal ile 500 bayt MTU destekleyen her ortamda çalışır
- LoRa, paket radyo, WiFi, Ethernet, optik iletişim bağlantıları gibi ortamlar kullanılabilir
- RNode, Reticulum için bir LoRa arayüzüdür; doğrudan üretilebilir veya hazır olarak satın alınabilir
- Raspberry Pi gibi cihazlarda LoRa, paket radyo ve WiFi birlikte yapılandırılabilir
Desteklenen arayüzler
- Ethernet, LoRa(RNode), paket radyo TNC, KISS modem, seri cihazlar, TCP/UDP, stdio pipe gibi arayüzleri destekler
- Özel arayüz modülleri eklenebilir; gerçek kullanımda doğrulanmış PR'lar memnuniyetle karşılanır
Performans ve durum
- Hedef performans aralığı: 250bps~1Gbps, mevcutta yaklaşık 150bps~500Mbps
- Çekirdek protokol işlevleri tamamen uygulanmıştır, API ve biçimler kararlı durumdadır
Bağlantı önyükleme
- Reticulum, abonelik gerektiren bir hizmet değil, özerk bir ağdır
- Topluluk tarafından işletilen açık giriş noktası dizini üzerinden ilk bağlantı kurulabilir
- Örnek:
directory.rns.recipes, rmap.world
Kriptografik bileşenler
- Curve25519 tabanlı 512 bit anahtar seti, Ed25519 imzaları, X25519 anahtar değişimi
- HKDF, AES-256-CBC, HMAC-SHA256, SHA-256/512 kullanır
- Varsayılan olarak OpenSSL ve PyCA/cryptography üzerinden sağlanır
- Saf Python uygulaması da dahildir, ancak güvenlik doğrulama seviyesi daha düşüktür
1 yorum
Hacker News yorumları
Birden fazla yerel toplulukta Mesh ağları ile derinlemesine ilgilendim, ancak Reticulum’u gerçekten kullanan büyük bir ağ hiç görmedim
Toplulukların katılmamasının başlıca nedeni, bu projenin fiilen tek bir geliştirici etrafında dönmesi; Git değişiklik geçmişi de “Update”, “Better Version”, “Cleanup” gibi ifadelerle dolu olduğu için neyin değiştiğini takip etmek neredeyse imkansız
Bundan sonra yalnızca öngörülemez, aralıklı güncellemeler olacağını ve destek ya da topluluk yönetimi olmayacağını söyledi
Sonuçta bu da tükenmiş tek kişilik bir açık kaynak projesi haline gelmiş oldu
Bir veda yazısı gibi hissettirdi
Reticulum, prodüksiyon seviyesinde tam bir ağ yığını ve şifreleme ile anonimlik merkezde yer alıyor
Sadece LoRa’ya özel değil; taşıma katmanından bağımsız
Ama iki sorun var
C API’sine sahip küçük bir kütüphane daha iyi olurdu gibi geliyor
Yine de Columba gibi uygulamalar bunu yavaş yavaş iyileştiriyor
Şu anda C++, Zig, Rust, Go gibi dillerle düşük seviye sürümler üretmeye çalışan yaklaşık 4 girişim var
Bunlar arasında Beechat’in Rust gerçeklemesi en olgun görüneni, ama gerçek kullanım örneği neredeyse yok
“Eski yöntem”, tarayıcıdaki asma kilit simgesine güvenmekti; “Zen yöntemi” ise hash parmak izini doğrudan doğrulamak
Ama bu yaklaşımın kullanıcı deneyimi berbat
Ben teknik biriyim ve yine de kurulumda zorlandım; sıradan bir kullanıcının bunu kullanması mümkün değil
Sonuçta yaygınlaşmasını istiyorsanız, o yeşil asma kilit simgesine ihtiyacınız var
Kimsenin bundan bahsetmemesine şaşırdım ama Yggdrasil diye bir yönlendirme protokolü var
Kriptografik tabanlı adresler kullanıyor ve TCP/IP ya da LoRa üzerinde de çalışabiliyor
Ben birkaç haftadır bunu Tailscale alternatifi olarak kullanıyorum; gecikme benzer ve oldukça da kararlı çıktı
Reticulum’dan farkı ne merak ediyorum
Yggdrasil resmî sitesi
Aslında benim en çok önemsediğim şey mesaj teslim garantisi
Reticulum, “Store and Forward” modelini varsayılan mod olarak kullanıyor
Mesaj hemen iletilmese bile, daha sonra bağlantı oluştuğunda gönderiliyor
Ama mesajlar sıralı gelmediğinde, istemcinin bunları doğru sıralayabilmesi için gerekli metaveriyi içerip içermediğini merak ediyorum
Reticulum 1.0.0 sürümüne ulaştı ve pratikte de iyi çalışıyor
Başlamak için meshchat ya da
Android için Sideband kullanılabilir
LoRa üzerinden fotoğraf ve sesli sohbet de mümkün; bant genişliği yetmediğinde veya bağlantı koptuğunda otomatik olarak başka bir taşıma yöntemine geçiyor
Beni şaşırtan şey, resmî protokol spesifikasyonunun yayımlanmamış olması
LoRa gibi kablosuz çipler hedefleniyorsa bunun mikrodenetleyicilerde çalışması gerekir, ama Python ya da Rust std sürümleri böyle ortamlarda kullanılamaz
Lisansa baktım, tam anlamıyla özgür yazılım değil
İçinde “insanlara zarar vermeme” ve “yapay zeka kullanım yasağı” maddeleri var
Üçü de eBGP benzeri çoklu spanning tree yapısına sahip bir master–slave düğüm düzeni gerektiriyor
Belli ki biri Anathem hayranı