- WebTorrent tabanlı eşten eşe ağ kullanarak web sitelerini merkezi sunucu olmadan dağıtan bir sistem
- Kullanıcılar web sitesi klasörünü sürükleyip bırakarak yükleyebilir ve benzersiz PeerWeb bağlantısı üzerinden paylaşabilir
- Tarayıcı sekmesi açık bırakıldığında veya masaüstü istemcisi kullanıldığında barındırma sürekliliği korunur
- DOMPurify tabanlı güvenlik filtreleme, sandbox çalıştırma ve akıllı önbellekleme ile güvenlik ve hız güçlendirilir
- Sansür direnci, maliyet tasarrufu ve küresel dağıtıklık sunan merkeziyetsiz web barındırma modeli olarak öne çıkıyor
PeerWeb'e genel bakış
- PeerWeb, WebTorrent teknolojisini kullanarak web sitelerini merkezi sunucu olmadan barındıran bir sistemdir
- Web siteleri eşten eşe ağ üzerinden dağıtık olarak depolanır ve bu sayede sansür direnci ile sürekli erişilebilirlik sağlanır
- Kullanıcılar HTML, CSS, JavaScript gibi bileşenlerden oluşan statik web sitelerini yükleyebilir
- Yükleme sonrası oluşturulan benzersiz hash ve PeerWeb URL'si üzerinden herkes erişebilir
Yükleme ve barındırma yöntemi
- Web sitesi klasörü sürükle ve bırak ile otomatik işlenir ve yükleme tamamlanır
- Yükleme sonrası hash (Hash) ve PeerWeb URL'si oluşturulur; bunlar hemen paylaşılabilir
- Tarayıcı sekmesi açık bırakılırsa bu sekme bir barındırma düğümü olarak çalışır
- Sekme kapatılmadan açık kaldığı sürece diğer kullanıcılar siteye erişebilir
- Masaüstü istemcisi (Windows, macOS, Linux) kullanıldığında sekme açık olmasa da sürekli barındırma mümkündür
Kullanım şekli
- ① HTML/CSS/JS ile statik site hazırlayın
- ② Klasörü PeerWeb sayfasına sürükleyip bırakarak yükleyin
- ③ Oluşturulan benzersiz bağlantıyı paylaşın
- ④ Tarayıcı sekmesini açık tutarak veya istemciyi çalıştırarak barındırmayı sürdürün
Mevcut bir siteyi yükleme
- Mevcut bir web sitesini yüklemek için torrent hash'i girin
- PeerWeb, magnet bağlantısı öneki ve tracker bilgilerini otomatik olarak ekler
- Örnek demolar arasında SomaFM, satranç oyunu ve metin düzenleyici uygulaması yer alıyor
Geliştirici özellikleri
- URL'ye
&debug=true eklenirse debug modu açılır ve ilerleme durumu ayrıntılı gösterilir
- Gelişmiş torrent oluşturucu ile doğrudan torrent dosyası oluşturulabilir
- Önbelleği temizleme ve gelişmiş ayarlar özellikleri sunulur
Akıllı önbellekleme
- Ziyaret edilen siteler IndexedDB içinde saklanır ve anında yeniden yükleme desteklenir
- Önbellek 7 gün sonra otomatik silinir
- Yalnızca DOMPurify ile temizlenmiş içerik saklanır
- Çevrimdışı durumda bile önbelleğe alınmış sitelere erişim mümkündür
Güvenlik özellikleri
- DOMPurify entegrasyonu ile tüm HTML temizlenir ve XSS saldırıları engellenir
- Tehlikeli etiket ve özniteliklerin kaldırılması, sandbox iframe çalıştırma ve kaynak doğrulama yapılır
- Tüm dosyalar izole bir ortamda çalıştırılarak güvenlik güçlendirilir
Site gereksinimleri
- Kök dizinde veya alt klasörlerde index.html bulunması zorunludur
- Tüm kaynaklarda göreli yol kullanılmalıdır
- Yalnızca statik içeriklere izin verilir (HTML, CSS, JS, görseller, fontlar vb.)
- Duyarlı tasarım önerilir
- İçerik otomatik olarak güvenlik temizliğinden geçirilir
Başlıca avantajlar
- Sansür direnci: Merkezi sunucu olmadığı için engellenemez
- Maliyet tasarrufu: Barındırma ücreti yoktur
- Küresel dağıtıklık: Dünya çapındaki eşler arasında otomatik dağıtım
- Sürekli erişilebilirlik: Eşler çevrimiçi kaldığı sürece erişim mümkündür
- Güvenlik: Sandbox çalıştırma ve XSS koruması
- Hızlı yükleme: Akıllı önbellekleme ile anında yeniden ziyaret
- Basit URL yapısı: Yalnızca torrent hash'i ile erişim
- Çevrimdışı erişim: Önbelleğe alınmış siteler internet olmadan çalışır
Sonuç
- PeerWeb, WebTorrent tabanlı merkeziyetsiz bir web barındırma platformu olarak,
sansür direnci, maliyet verimliliği ve güvenliği aynı anda sunan yeni bir web dağıtım yöntemidir
3 yorum
Bu IPFS değil mi??
Bunu kullanarak video akışı yapan bir şey yapmıştım. İşe yarıyordu.
Hacker News yorumları
2020'de Linux dağıtımlarını WebTorrent ile barındırıp dağıtmak için bir PoC yapmıştım; protokolün kendisi gerçekten çok iyi tasarlanmış olsa da son dönemde neredeyse durgun durumda
WebRTC tabanlı tracker'lardan da yalnızca birkaç tanesi istikrarlı biçimde ayakta kalmış durumda
İlgili projeye LinuxExchange üzerinden bakılabilir
Tarayıcılar gerçekten bir torrent istemcisini destekleseydi tamamen farklı bir dünya olurdu
WebRTC kısıtları yüzünden eski sorunlar hâlâ çözülemiyor
libdweb deneysel özelliklerini kullanıyordu ama artık kaldırıldı
O zamanlar
wtp://tomjwatson.com/bloggibi URL'leri tarayıcıda doğrudan açabiliyordunuzÖrneğin WebTorrent FAQ sayesinde yeni şeyler öğrendim
WebTorrent'in kendisiyle kıyaslandığında nasıl bir fark sunduğunu bilmiyorum ama varlığı bile ilgi çekici
Mevcut torrent istemcilerini kullanmaya kıyasla ne avantaj sağladığını pek anlayamıyorum
Hatalar azalırsa belki bir gün kullanılabilir hâle gelir
Dağıtık bir anti-abuse protokolü, popüler dosyaları önce dağıtma, yükleme sürerken anında paylaşımı mümkün kılan streaming UGC API, site URL'leriyle doğal entegrasyon ve gecikmeye göre otomatik CDN'e geçiş gibi özellikler tasarlıyorum
Daha önce durdurmuştum ama yakında tekrar başlayacağım
Şu anda “Connecting to peers…” ekranında takılıp kalıyor, yani çalışmıyor
Claude ile yapılmış projelerde benzer paletleri sık sık görüyorum
Lovable'ın frontend'i de benzer bir his veriyor
Aynı prompt ile tekrar tekrar üretim yapıldığında sonuçlar birbirine benzemeye yatkın oluyor
Bu da 'vibecoded' tarzındaki tekdüzeliğin nedenlerinden biri
Ben de AI kullandığımda bu kısımları hep düzeltiyorum
Sadece iframe sandbox kullanmak bile yeterli olur; ideal olarak torrent hash'ini subdomain olarak kullanıp same-origin politikasından yararlanmak daha iyi
Bir JS frontend ekleyip siteyi P2P olarak barındırırsanız, trafik arttıkça DDoS savunması açısından da faydası olabilir
Anonimlik arttıkça bu daha da sorunlu hâle geliyor; YouTube'un tekel konumunda olmasının sebeplerinden biri de bu
AI tabanlı sansür teknolojileri gelişirse biraz iyileşebilir
Hâlâ bakımı süren bir fork zeronet-conservancy altında mevcut
MDwiki, AJAX ile Markdown yükleyip JS ile render eden tek bir HTML dosyası
Sonucu bu bağlantıda görebilirsiniz