1 puan yazan GN⁺ 4 시간 전 | 2 yorum | WhatsApp'ta paylaş
  • Iroh 1.0, ilk kararlı sürüm ve wire protocol ile dil API kararlılığını garanti ederek iroh v1 endpoint'lerinin minor sürüm ya da dilden bağımsız olarak birbiriyle iletişim kurabilmesini sağlıyor
  • Rust crate'e ek olarak Python, Node.js, Swift, Kotlin resmi olarak destekleniyor; böylece Swift iOS uygulamalarına ve Kotlin Android uygulamalarına iroh gömülebiliyor
  • Wire kararlılığını etkileyen değişiklikler her zaman major release ile birlikte yapılacak; gelecekte dil API sürümü ile wire uyumluluğu birbirinden bağımsız şekilde sürümlendirilebilir
  • 1.0 sonrasında major ve minor sürümler destek takvimi doğrultusunda desteklenecek ve 0.35 minor sürümü ek sürüm almayacak
  • Public relay desteği v1.0 için End of Life'a kadar, v0.35x için 31 Aralık 2026'ya kadar, v0.9x ve v1.0.0-rcX için ise 30 Eylül 2026'ya kadar sürdürülecek
  • Public relay genellikle her sürümün hemen ardından 24 saat içinde en güncel sürüme yükseltiliyor; wire-breaking relay değişikliklerinde mevcut istemcilerin çalışmaya devam etmesi için yeni bir URL kullanılıyor
  • Bağlantı özellikleri arasında QUIC multipath, QUIC NAT traversal, local-first yapılandırma, WASM ve tarayıcıda çalışma, bağlantı kontrol hook'ları ve custom transport desteği yer alıyor
  • Bağlantılarda verinin %95'inin cihazlar arasında doğrudan aktarılması yaygın; bu da doğrudan bağlantının bulut üzerinden ek hop'ları ve egress maliyetlerini azalttığı anlamına geliyor {p:95}
  • Public relay üzerinden geçen trafikte rate limit uygulanıyor ve bu sınırlar herhangi bir zamanda değişebilir

2 yorum

 
GN⁺ 3 시간 전
Hacker News yorumları
  • Iroh’yu ilk kez görüyorsanız, kabaca ağ katmanı değil uygulama katmanı için bir Tailscale gibi düşünebilirsiniz
    “Neden doğrudan Tailscale kullanmıyoruz?” sorusu, uygulama geliştiricisinin bakış açısından farklı. Uygulama örneklerinin birbirine kolayca bağlanmasını istiyorsanız, teoride Tailscale işlevlerini uygulamanın içine gömebilirsiniz; ama o zaman kullanıcının bir Tailscale hesabına ihtiyacı olur ve uygulama da Tailscale’e bağımlı hale gelir
    Iroh ise bu işlevi doğrudan gömebilmenizi sağlıyor ve herkese açık yedek relay’ler de sunuyor. Uygulama, açık relay’lerin kaldıramayacağı kadar büyürse kendi relay’inize geçmek de neredeyse tek bir anahtar çevirmek kadar kolay

    • Bu açıklamayı görünce, videodan daha iyi şekilde Iroh’nun ne yaptığını anladım. Şimdi merak ettiğim şey Iroh’nun bunu nasıl gerçekleştirdiği
    • Artık değer önerisini anlıyorum. Bunu landing page’den çok daha iyi anlatmışsın; pazarlama metinlerini bile sana emanet edebilirler
    • “Neden Tailscale kullanmıyoruz?” sorusunun cevaplarından biri de şu: Tailscale para kazanmaya çalışan bir şirket ve dağıtık teknolojileri birkaç merkezi sahibin elinde toplamaya devam etmemiz de aptalca
      Özellikle de Iroh bunu doğru şekilde yapmayı bu kadar kolay ve iyi hale getiriyorsa
    • Aynen mesele bu. “Uygulamamızla birlikte Tailscale’i dağıtabilir miyiz?” diye düşünürken Iroh’yu bulduğumu sanıyorum
      Kullanıcıların yerel bir instance’a erişmesi gereken ortamlarda Iroh’nun oyun değiştirici olabileceğini düşünüyorum. Bizim kullanımımızda, telefondan ya da başka cihazlardan yazılımı kolayca kontrol etmeyi sağlıyor
      Eskiden aynı LAN’da olup olmadığını kontrol etmeniz gerekebilirdi, ama Iroh ile her ortamda çalışıyor
    • En yakın karşılaştırma OpenZiti olur
      Iroh ve OpenZiti’nin ikisi de uygulamaya gömülebilir ve hizmete gömmek isteyen uygulama geliştiricileri için ikisi de iyi kullanım örnekleri sunar
      OpenZiti, ölçek ve güvenliğin kritik olduğu hizmetlerde kullanılırken, Iroh önceden ilişkisi olmayan katılımcıların da birlikte çalışmasına izin verdiği için çok kullanışlı olabilir
  • Iroh geliştiricilerinden biriyim
    Sık gelen sorulardan biri, Iroh’nun ne zaman WebRTC, BLE, LoRa vb. destekleyeceği
    Şu anda Iroh varsayılan olarak yalnızca IPv4, IPv6 ve relay taşımasını destekliyor. İlginç taşıma yöntemi çok fazla olduğu için hepsini desteklemeye kalkarsanız kod tabanı, bakımı imkânsız bir özellik bayrağı labirentine dönüşür
    Bunun yerine özel taşıma katmanları uygulayabilmenizi sağladık ve taşıma implementasyonu tamamen ayrı bir crate içinde durabiliyor
    Mevcut deneysel özel taşımalara Tor, Nym ve BLE dahil. https://github.com/mcginty/iroh-ble-transport
    İçeride nasıl çalıştığını burada görebilirsiniz: https://www.iroh.computer/blog/iroh-0-97-0-custom-transports...

    • Belgeleri incelerken bunun oldukça havalı bir proje gibi göründüğünü fark ettim ve P2P sohbet örneğini de buldum
      Bununla bir P2P istemci/sunucu yapısı ya da iki eş makine kurarsam, iki uygulama arasında bağlantı kurmak için ek olarak ne ayarlamam gerektiğinin sınırlarını merak ediyorum
      Örneğin telefonda çalışan bir uygulama ile dizüstünde çalışan bir uygulama yaparsam, ikisi arasında gerçekten doğrudan ve güvenli bir bağlantı elde edebilir miyim, yoksa bu başka bir problemi mi çözüyor, bunu anlamak istiyorum
      -[0]: sıfırdan Rust ile p2p chat: https://www.youtube.com/watch?v=ogN_mBkWu7o
    • Daha önce libp2p tabanlı çok şey geliştirmiş biri olarak, uygulama geliştiricisi odaklı güncel bir karşılaştırma görmek isterim
      Geçen yıl ikisinden birini seçerken alışık olduğum tarafa yöneldim, ama şimdi Iroh tarafında belirgin bir ivme varmış gibi geliyor
    • Herkese açık relay işletmenin riskleri neler, merak ediyorum. Kavramsal olarak bunun Tor Guard Node ya da relay işletmeye benzer olup olmadığını öğrenmek isterim
    • Tor taşıması https://github.com/n0-computer/iroh-tor-transport adresinde
      Burada Tor daemon kullanılıyor. Tor’un bir Rust implementasyonu var ve Rust içinde kullanıldığında stream nesneleri gibi şeyler olarak kullanılabiliyor
      Kullanım örneğini https://gitlab.torproject.org/tpo/core/oniux içinde görebilirsiniz
    • Bakımın imkânsız hale gelmesinden endişe ediliyorsa, feature flag API düşünmeye değer olabilir
      Strateji deseni ve merkezi özellik yönetimi iyi olur
  • Videoda “Dial keys” geçiyor muydu bilmiyorum ama ilk paragrafta bunun ne tür bir anahtar olduğu ve neden gerekli olduğu bence açıkça belirtilmeli
    Bunun kriptografik bir anahtar mı, asimetrik bir anahtar mı olduğu, en temel düzeyde bile nasıl çalıştığı açıklanmıyor. Doğrudan soyut üstünlük iddialarına ve kullanım istatistiklerine geçiliyor
    Rölelerin işin içinde olduğu anlaşılıyor gibi ama bunu HN tartışmasında aratmak yerine en baştan söylemeleri daha iyi olurdu

    • İlk sayfa çok derine inmiyor ama belgeler bunu hemen açıklıyor
      Önce https://docs.iroh.computer/what-is-iroh var, ardından da nasıl çalıştığı bölümü geliyor. Şu ana kadarki izlenimime göre dokümantasyon gerçekten iyi ve ortaya çıkan soruları da oldukça hızlı yanıtlıyor gibi görünüyor
    • Videoyu izledim ama bunların ne olduğunu hâlâ bilmiyorum. Bir de “asla bağımlı kalmazsınız” denirken ortada bir “pricing” var ve röleleri self-host edeceksen neden “apps” için para ödediğini de anlamıyorum
    • “Dial keys. Not IPs.” açıklaması bana DNS’in yeniden uygulanması gibi geliyor
      Dağıtık olabilir, ücretsiz olabilir ve tek parça bir yapı olmayabilir ama geniş açıdan bakınca aynı kategoriye giriyor
    • “keys” ifadesini okuyunca bunu, .ssh/config içindeki adlandırılmış host’lar gibi, bir anahtarla erişilen bir “isim” sandım
      Ama daha fazla dinleyince QUIC üzerinde ağ kurmanın yeni bir yolu gibi geliyor
    • Bir süre anlamaya çalıştıktan sonra, bu anahtarların hem şifreleme anahtarları hem de WebRTC görüntülü görüşmelerinde kullanılabilecek oturum çerezi benzeri kalıcı tanımlayıcılar olarak ikili bir rol oynadığını düşünüyorum
      Uzman değilim ve projeyi bugün ilk kez gördüm ama Lobste.rs özeti şu: Bu, istemcilere kalıcı kimlik atayan, güçlü görüşlere sahip bir WebRTC kurulumuna daha yakın. Sinyal sunucusu kurma işi halledilmiş ve çözüm yeterince genel ve ucuz olduğu için topluluk tarafından barındırılan sunucular da kullanılabiliyor. Steam’in kapalı P2P gamenetworkingsocket altyapısından elde edilene biraz benziyor
      https://lobste.rs/s/cslljn/iroh_1_0_dial_keys_not_ips#c_s3na...
  • En başta hangi problemi çözmeye çalıştığını anlamıyorum. IP ve DNS gayet iyi çalışıyor
    Zaten IPv6 ve QUIC var ve bu alanda anlamlı bir ivme kazanmak için satıcıların ve büyük yazılımların desteği gerekir

    • Iroh, QUIC kullanıyor. Tekerleği yeniden icat etmeye çalışmıyor; mevcut IETF RFC’lerini yaratıcı biçimde birleştiriyor
      Örneğin, evdeki WLAN’ında NAT arkasında bulunan bir cihaz ile 4G ağında ya da şirkette başka bir NAT’ın arkasındaki başka bir cihaz olduğunu düşün
      Çoğu durumda hole punching ile bu iki cihaz arasında çok hızlı bir doğrudan bağlantı kurabilir ve mümkün olan en yüksek bant genişliği ile en düşük gecikmeyi elde edebilirsin
      Bu, şimdiye kadar çözülmüş bir problem değildi
    • Iroh ile ilgim yok ve kullanmıyorum ama “IP iyi çalışıyor” demek anlamsız. Bu çözülmüş bir problem değil
    • Tersine, doğrudan bağlantı kurmak bugünkü internet altyapısında çok daha zor bir problem
    • Bana göre Iroh, OSI modelinde eksik kalan oturum katmanını oluşturmaya çalışıyor. Cisco’nun Location-Identity Separation Protocol’ü de benzer bir girişim
      TCP/IP’de gerçek bir oturum katmanı olmadığı için vMotion genelde yalnızca tek bir broadcast domain içinde mümkün oluyor. Bu durumda adresleme fiilen yalnızca MAC adresleriyle yapılıyor ve vMotion sonrasında MAC adresi değişse bile IP’yi kalıcı tanımlayıcı olarak kullanabiliyorsun. Eşleme işini switch’in MAC adresi tablosu hallediyor
    • DNS, merkeziyetsiz olmaktan çok federatif bir yapı. En azından en son baktığımda Iroh’nun burada DHT kullanabilen bir seçeneği vardı diye biliyorum
  • Ağ iletişiminin geleceği merkeziyetsizlik. Yggdrasil ve I2P’yi çok seviyorum
    24 saat çalışacak bir mini PC alıp ihtiyacım olan şeyleri barındırabilmeli ve diğer insanlarla sorunsuz biçimde bağlanabilmeliyim. Birçok teknik insanın zaten köşede tozlanan eski yedek makineleri var ve bunlar sunucuya dönüştürülebilir
    Uzun vadede bu, alan adı ve sunucu barındırma işleriyle uğraşmaktan çok daha ucuz ve bakımı da daha kolay. Iroh ekibinin yaptığı işi gerçekten çok takdir ediyorum

    • Bu zaten en az 20 yıldır gelecekti
  • Iroh ile çalışmak gerçekten çok keyifliydi ve Discord kanalındaki mühendisler de son derece yardımseverdi
    P2P’yi sadece çalışır hâle getiren pratik yaklaşım anlaşılması kolaydı, YouTube kanalındaki içerikler de harika. v1 çıkışını kutlarım
    https://youtube.com/@n0computer

  • IP adreslerine benzer bir işlev üstlenmeye çalışan bir protokolün üzerinde fiyat etiketi olması garip görünmüyor mu? Belki bir şeyi yanlış anlıyorumdur

    • Başkalarının da söylediği gibi iroh’un çekirdek kütüphanesi ve protokolü tamamen açık kaynak
      Ama geliştirme maliyetlerini karşılamak için, özellikle daha büyük ya da özel kullanım senaryolarında dağıtımı ve işletimi kolaylaştıran ek hizmetler de sunuyorlar
    • Bu bir Tailscale sendromu
      “İnsanlar için altyapı, uzmanlar için iş” olmak isteme hâli
      “Bunu işletmek için para gerekiyor” ile “kamusal altyapı sistemi olmak istiyoruz” arasında sıkışıyorlar ve kâr amaçlı şirket olmanın olumsuz yanları “ama sonuçta açık kaynak” denilerek geçiştiriliyor
      “Açık kaynak” notu tamamen aşırı özelleştirilmiş ve anlaşılmaz bir kod tabanıyla birlikte gelmediği sürece, bu iş modelini bir ölçüde makul buluyorum
    • Aynı fiyat sayfasına bakarsan hepsi ek hizmet. Gözlemlenebilirlik, röle barındırma, destek mühendisleri gibi şeyler
    • Sundukları şeyi IP adresleriyle kıyaslayacaksak, bu daha çok BGP router’ları ya da bir ISP işletmeye veya veri merkezi ağı için ağ mühendisleriyle çalışmaya benziyor
      Bir ISP ya da AS işletmenin ciddi miktarda paraya mal olduğu kesin
    • Görünüşe göre “Iroh uygulamaları için özel barındırma ve izleme” sunuyorlar
  • Şirketimizde Iroh’yu prodüksiyonda kullanıyoruz ve gerçekten çok seviyoruz
    Bunu esasen Rust crate’i olarak sunulan Tailscale tarzı hole punching diye tarif ederdim ama elbette temel QUIC bağlantısının üstüne birçok hoş P2P özelliği de ekleyebiliyorsunuz

  • Şirketimiz, prodüksiyon ortamındaki dağıtık makine öğrenimi eğitim sistemi için Iroh kullandı ve çok memnun kaldık
    Kurumsal destek sözleşmesi imzalamadan önce bile ekip inanılmaz hızlı yanıt veriyordu, bilgi düzeyleri çok derindi ve kütüphanenin kendisi de şaşırtıcı derecede iyi çalıştı. libp2p yerine bu kütüphaneyi her zaman yeniden tercih ederim

  • Çıkışı kutluyorum
    tailscale/netbird/netmaker/zerotier/twingate/openziti ile karşılaştıran bir versus sayfasına acilen ihtiyaç var
    kullanım senaryolarına bakınca şu an Tailscale ile yapılamayan bir şey görünmüyor

 
GN⁺ 4 시간 전
Lobste.rs yorumları
  • Görünüşe göre hem burada hem de HN’de insanlar Iroh’nun, VPN üzerine kurulan mesh ağlardan (Tailscale, ZeroTier, Netbird vb.) nasıl farklı olduğunu karıştırıyor. Benim yorumuma göre Iroh, kendi uygulamasını çalıştıran cihazlar arasında P2P iletişim kurmak isteyen uygulama geliştiricileri için; mesh ağlar ise sahip oldukları ya da yönettikleri makineleri birbirine bağlamak isteyen ağ yöneticileri için.
    Örneğin bir P2P mesajlaşma uygulaması yaptığınızı düşünün; bir kullanıcı WiFi ile mobil veri arasında sürekli geçiş yapan bir mobil cihazda olabilir ve bu yüzden kararlı bir adresi yoktur, diğer tarafta ise NAT ve CGNAT arkasında bir dizüstü bilgisayar olabilir. IP adresleri değişse bile bu ikisinin iletişim kurabilmesi için bunu yönetecek bir mekanizma gerekir.
    Eskiden bu genellikle uygulama geliştiricisinin işlettiği bir aracı sunucuya iki uç noktanın bağlanıp durum paylaşmasıyla çözülürdü; Iroh ise bunu standartlaştırıp bir hizmet olarak sunmaya çalışan tarafa daha yakın görünüyor.

    • Doğru anladıysam, bu daha çok istemcilere kalıcı bir kimlik veren belirli tercihlerle yapılandırılmış bir WebRTC kurulumu gibi görünüyor. Yani signaling sunucusu kurma işini sizin yerinize yapıyor ve yeterince genel amaçlı ve ucuz olduğu için topluluk tarafından barındırılan sunucular da kullanılabiliyor.
      Biraz da Steam’in özel P2P gamenetworkingsocket altyapısından elde ettiklerinize benziyor.
    • Hedef pazarı nasıl tanımladıklarını anlıyorum ama fiyatlandırmaya bakınca bunun eşzamanlı kullanıcı sayısı üzerinden ölçeklendiğini ve genel katmanda üst sınırın 5.000 olduğunu görüyorum. Bu bana oldukça düşük gibi geldi.
  • Bir şeyi kaçırmış olabilirim ama her şeyi tek bir anahtara bağlamak kulağa çok riskli geliyor. O anahtar kaybolursa ya da ele geçirilirse ne olacağını merak ediyorum.
    Iroh belgelerinde hızlıca “key rotation” aradım ama bulamadım.

    • O anahtarlar açık anahtar. Iroh’da başka düğümlere ulaşma yöntemi olarak kullanılıyorlar; yani yine herkese açık olan IP adreslerinin yerini alıyorlar.
    • Bu anahtarların nasıl saklanacağına ya da döndürüleceğine geliştirici karar vermeli. Buradaki anahtarlar bir Ed25519 anahtar çifti ve açık anahtar kimlik olarak kullanıldığı için, anahtarı döndürürseniz yeni açık anahtarı bir şekilde eşlere bildirmeniz gerekir.
      Iroh kullanan bazı uygulamalar anahtarları kalıcı olarak saklarken bazıları her oturum için yeniden üretiyor.
      Özel anahtar sızarsa, bir saldırgan bağlantı başlatırken ya da kabul ederken benim kimliğime bürünebilir. Anahtarı kaybedersem eşlere kimliğimi kanıtlayamam. Anladığım kadarıyla bu, sıradan bir parola ya da özel anahtarın kaybolması veya ele geçirilmesiyle benzer bir risk.
  • Benzer alternatifler neler olabilir? Host Identity Protocol? https://mkomu.kapsi.fi/hipl/index.php?index=how

  • Projeyi anlamaya çalışıyorum ama anahtar ile IP arasındaki fark tam oturmuyor. Sonuçta bir noktada IP yönlendirmesi kullanmak için anahtarın bir IP adresine eşlenmesi gerekmiyor mu?
    Anahtar, IP adresine eklenmiş uzun ömürlü bir tanımlayıcı gibi davranarak URL ya da DNS’in yerini mi alıyor?

    • Evet, “anahtar” URL/DNS’in yerini alıyor ama belirli bir IP’ye atanmış değil. Iroh P2P hole punching ve relay işlemleri yapıyor ve anahtarlar Iroh relay sunucularında yayımlanıyor. İsterseniz bunları kendiniz de işletebilirsiniz.
      Bir düğümü başka bir düğüme anahtarla bağlamaya çalıştığınızda, relay sunucularından birinde o anahtar sorgulanıyor; ardından doğrudan IP bağlantısından hole punching’e ve en son relay sunucusu üzerinden aktarılan bağlantıya kadar çeşitli yöntemler deneniyor.
      Ayrıca anahtarlar, QUIC üzerinden uçtan uca şifreleme için de kullanılıyor.
  • Belirli bir uygulama için kendi relay sunucusunu barındırmanın bir yolu var mı? Mümkün görünüyor. Ama özel relay için ayrı bir fiyat sayfası olması biraz garip geldi.

    • Bağlantısını verdiğiniz kodun, ücretli yönetilen relay’den ayrı olarak kendi kendine barındırmaya imkân verdiğini düşünüyorum.
    • Evet, kendi relay sunucunuzu çalıştırabilirsiniz ve bağlantısını verdiğiniz kod doğru. Örneğin DeltaChat bunu chatmail relay’inin bir parçası olarak çalıştırıyor. Bunu mevcut web sunucusunun içine gömenler de var.
      Barındırılan relay ise, sunucuları kendiniz yönetme zahmetine girmeden bunu sağlamak ve ağ üzerinde daha fazla görünürlük sunmak amacıyla var.
  • Bu, Yggdrasil ya da Netbird’den çok Reticulum’a daha yakın gibi hissettiriyor.

  • Bunun ne olduğunu anlamak zor. Bana Yggdrasil’i hatırlatıyor ama ikisini nasıl karşılaştıracağımı pek bilmiyorum.