2 puan yazan GN⁺ 2025-02-02 | 1 yorum | WhatsApp'ta paylaş
  • Earthstar, kullanıcıların doğrudan sahip olduğu ve işlettiği özel dağıtık uygulamalar oluşturmak için bir veri spesifikasyonu ve JavaScript kütüphanesidir
  • Yeni Earthstar spesifikasyonu Willow tabanlı hale geldi ve Earthstar v11 şu anda beta olarak sunuluyor
  • Uygulamalar varsayılan olarak çevrimdışı çalışma yaklaşımıyla gelirken canlı senkronizasyonu, geçici belgeleri, gerçek silmeyi ve müzik·fotoğraf·video depolamayı destekler
  • Sunucular isteğe bağlıdır, ancak çalışma modeli her zaman self-hosting temellidir ve blockchain ya da tokenlara dayanmaz
  • Tarayıcı, Deno ve Node üzerinde çalışır; ed25519 doğrulaması, salt okunur erişim, akış tabanlı senkronizasyon, çoklu yazar ve depolama sürücüleri sunar

Earthstar'ın rolü ve mevcut durumu

  • Earthstar, kullanıcı sahipli uygulamalar oluşturmak için veritabanı niteliğinde bir spesifikasyon ve JavaScript kütüphanesidir
  • Yeni Earthstar specification, Willow temel alınarak hazırlanmıştır
  • Earthstar v11 şu anda beta sürüm olarak sunulmaktadır
  • Dokümantasyon, JavaScript API, spesifikasyon ve sohbet uygulaması eğitimi başlıca giriş noktaları olarak sunulmaktadır

Çevrimdışı öncelikli uygulamalar için özellikler

  • Uygulama özellikleri

    • Çevrimdışı çalışma desteği sunar
    • Canlı senkronizasyon ve Sneakernet yöntemini destekler
    • Müzik, fotoğraf ve video depolanabilir
    • Geçici belgeleri ve verilerin gerçekten silinmesini destekler
    • Tek bir kimlik (identity) veya birden fazla kimlik kullanılabilir
  • İşletim modeli

    • Sunucu isteğe bağlıdır
    • İşletim modeli her zaman self-hosting temellidir
    • Blockchain ve token kullanılmaz
    • “Her anlamda sonsuza kadar ücretsiz” anlayışını benimser
  • Teknik özellikler

    • ed25519 doğrulamasını destekler
    • Tarayıcı, Deno ve Node üzerinde çalışır
    • Salt okunur erişim yetkisi verilebilir
    • Verimli senkronizasyon ve akış tabanlı senkronizasyonu destekler
    • Birden fazla cihazda tek bir kimlik kullanılabilir
    • Çoklu yazar, depolama sürücüleri ve belge yazma yetkilerini destekler

1 yorum

 
GN⁺ 2025-02-02
Hacker News yorumları
  • nostr'a biraz benziyor ama farkları var. Veriler içerik adreslemeli değil, ad tabanlı olduğu için üzerine yazmayı ve silmeyi destekliyor; ham veri tipi de mesaj kümesi değil, addan belgeye giden bir ilişkisel dizi
    Belgeler "shares" içinde gruplanıyor ve bir sunucunun ilgili share'in belgelerine sahip olduğunu kabul etmesi için önce "share address"i bilmesi gerekiyor. Bazıları özel, bazıları herkese açık olan erişim ilginç; bu eksende uç noktalardan birini seçen projeler genelde zorlanıyor, bence çoğu da öyle
    Spam gönderenleri ve dolandırıcıları engellemede başarılı olacak gibi, ancak motivasyonu yüksek saldırganlarla karşı karşıya kalan büyük gruplar için temkinliyim. Bir kullanıcı, herkese açık ile özel arasındaki belirsiz bölgede kalan bir share address'i ifşa ederse, o share'deki tüm kullanıcılar açığa çıkıyor gibi görünüyor
    Saldırganın hedefini bulmadan önce güven grafiğinin her hop'unu aşmak zorunda olduğu bir güven ağı daha iyi olurdu; ama kullanıcının üstlenmesi gereken karmaşıklık arttığı için, basitlik uğruna ayrıntı eksikliğine katlanılmasının nedenini de anlıyorum. Böyle şeylerin başarılı olmasını istiyorum; web'i kaybetmişiz gibi geliyor ve web benzeri bir şey olmadan kritik zamanlarda çok sayıda insanın büyük ölçekte koordinasyon sağlaması zor

    • Doğru düzgün bir yetenek tabanlı tasarım varsa, kullanıcı başına ayrı bir share address verilmeli ve bu istenildiği zaman devre dışı bırakılabilmeli
      share address, ssh anahtarı gibi ele alınmalı
  • Bunun tam olarak ne olduğundan emin değilim
    İçinde bolca JavaScript olan bir belge/medya veritabanı mı? Biraz self-hosting odaklı ve Mastodon'a benzer şekilde peer node'lara mı replike ediyor? Büyük bir vizyon var gibi ama pek net görünmüyor

    • Earthstar'ın avantajı dağıtıklık gibi görünüyor. Aksi halde offline çalışma, yerel depolama ve tarayıcıda çalışabilme açısından PGlite ya da SQLite kadar geniş veritabanı özelliklerine sahip değil
      Earthstar'ın dağıtıklığıyla ne kazanıldığını bilmiyorum. Yedekleme ise SQLite ve PGlite ile de oldukça basit. Veritabanı kullanıcılarının çoğu için büyük bir avantaj olup olmadığı pek görünmüyor
      Verilerini kendi cihazlarında saklayıp bu verileri başka bireylerle paylaşmak ve onların da yerel kopyalara sahip olmasını isteyenler için faydalı gibi görünüyor. Belki de içerik korsan paylaşımı içindir
    • Aynı anlamda local-first diye bir terim var ve o taraf daha hareketli görünüyor
    • Ben de bunu yazmak için gelmiştim. Kullanım senaryosunun ne olduğunu, nasıl kullanıldığını, neden kullanmak gerektiğini bilmiyorum
      İlginç özellikleri kesinlikle var, ama özellik listesinin içinde vizyon bulanıklaşmış gibi
  • Bence bu, daha önce paylaşılan Willow protokolü [0] ile değiştirilmiş durumda
    Willow'u okumaya çalıştım ama bir türlü kavrayamadım [1]. Zaman damgaları ve kriptografik token'lar için eklenmiş bir sürü ekstra alanı olan hiyerarşik anahtar-değer deposu gibi görünüyor, fakat çalışan örnekler fazlasıyla yetersiz
    En yeni Rust kütüphanesi [2] bile fiilen bir soyut sınıflar demeti ve implementasyonlar sadece hata fırlatıyor. Avrupa teknolojik inceliğinin mevcut durumu hakkında şaka yapabilirdim, ama kibar bir tebessümle geçeceğim
    [0] https://willowprotocol.org/earthstar/spec/
    [1] https://willowprotocol.org/specs/data-model/index.html#data_...
    [2] https://github.com/earthstar-project/willow-rs/tree/main

    • NLnet tarafından desteklenen bir proje. NLnet'in desteklediği projelerin listesi [1]'de; herhangi bir özgür/açık kaynak proje başvurabilir [2]
      [1] https://nlnet.nl/project/current.html
      [2] https://nlnet.nl/funding.html
    • Kardeş yorumla aynı şeyi söyleyecektim. İğnelemeye gerek yok; NLnet gerçekten çok sayıda harika projeyi destekliyor
      Silikon Vadisi'nde yapılan yazılımların kalitesini başarılı olamamış VC yatırım projelerine göre değerlendireceksek, işin içinden çıkılmaz
    • Willow'un arkasındaki kişiler de aynı ekip gibi görünüyor: https://earthstar-project.org/docs/future#willow-protocol
      “Yukarıdaki özelliklerin tümü, üzerinde çalıştığımız yeni Willow General Purpose Sync Protocol ile mümkün oluyor. Earthstar'dan ilham alan yeni bir protokol; onun kavramlarını rafine edip genişletiyor. Bu protokolün eksiksiz spesifikasyonunu içeren yeni bir web sitesi yayımlayacağız.”

      https://willowprotocol.org/more/compare/index.html#compare_e...
      “Earthstar size Willow'a çok benzer geliyorsa bu tesadüf değil. Willow, Earthstar'ı yeniden düşünme süreciyle başladı; Earthstar'ın gelecekteki sürümleri Willow üzerine inşa edilecek ve Earthstar'ın çekirdek maintainer'ı Willow'un iki yazarından biridir.”
    • Web sitesinin en üstündeki banner'da kelimesi kelimesine “Earthstar has a new specification powered by Willow.” yazıyor
    • Tek kişilik bir açık kaynak projesi, Avrupa teknolojik inceliğinin durumunu bütünüyle anlatmaz
  • Bir Python istemcisi var mı? Dokümanda Python ile ilgili gördüğüm tek şey şu
    # Earthstar timestamps in python
    timestamp = int(time.time() * 1000 * 1000)

  • Bunun yerine jellyfin, immich, geri kalanı için de sadece sftp önerirdim. Senkronizasyon, yok yani dağıtıklaştırma git, syncthing, rsync ile yapılabilir.
    Henüz düzgün bir self-hosted kimlik yöneticisi ya da SSO benzeri bir şey görmedim. bluesky’nin bir tane yaptığını biliyorum ama self-hosting mümkün olur mu bilmiyorum. Otomatik tamamlama Freudvari biçimde self hosted’ı self hostage diye değiştirdi.
    Homelab/özel bulutta hâlâ çözemediğim bir başka sorun da kendi CA’im olup karşı tarafa ssh öğretmeden makinelerime erişimi yönetmenin yolu.
    NordVPN’in meshnet’i gibi, aile planında oturum açmış kişilerin birbirlerinin makinelerini yerel ağdaymış gibi görebildiği bir şey istiyorum. wireguard ile mümkün mü? yggdrasil de buna benziyor sanırım ama henüz derinlemesine bakmadım.

    • Bu, kendi uygulamalarınızı yapmak için bir kütüphane değil mi? jellyfin gibi şeylerin burada neden ilgili olduğunu anlamıyorum.
      “İyi” kimlik yönetimi derken OpenLDAP ya da 389 olmayan bir şeyi mi kastediyorsunuz? Windows’u da hesaba katıyorsanız ne kadar iyi uyacağını bilmiyorum.
      Kendi CA’iniz olmak kolay, ama o CA’i istediğiniz tüm makinelere kurma kısmı pek hoş değil. Let’s Encrypt kullanınca her şey düzgün çalışıyor.
      Wireguard internet üzerinden iki LAN’ı bağlayabilir, ama iki uçta da pfsense gibi wireguard destekli iki yönlendirici olması iyi olur. Yoksa her istemci makineye özel yönlendirme ayarları kurmanız gerekir. Bağlantı üzerinden otomatik keşif için avahi’yi nasıl ileteceğimi henüz çözemedim.
    • Ailenizle bir VLAN paylaşmaya çalışıyorsanız aradığınız şey tailscale olabilir.
  • Tarayıcıların SQLite desteğini sonlandırmasından sonra SQLite partisine katılmış olmamız hâlâ içimde ukde.

  • Bunun için bir blog yazısı gerçekten faydalı olur gibi. Örneğin neden böyle tasarlandığı, alternatiflerin neler olduğu gibi bir yazı.
    İlk izlenimim ilginç olduğu yönünde. Kimliğin anahtar çifti olması ve dosyalarla içeriğe adla erişilebilmesi de hoşuma gitti.

  • Python gibi başka dillerde uygulanma ihtimali var mı? Her şeyini beğendim, sadece JavaScript olması takılıyor; bu tür bir kullanım için JavaScript kullanma konusunda hâlâ temkinliyim.

    • Bu tür uygulamalar yüzünden nim ya da gleam gibi hem JavaScript’e hem de başka hedeflere derlenebilen diller iyi oluyor. Böylece uygulamayı Raspberry Pi’de, ESP32’de, tarayıcı sekmesinde, nerede olursa olsun çalıştırabilirsiniz.
      Ne yazık ki ikisi de o kadar popüler değil; sonuçta yine birden fazla dilde uygulama isteniyor ve bu da böyle projelerin bakımını yapanlar için yük olur gibi. Her hâlükârda gerçeklik bu; böyle bir dil değilse ben de Python istemci kütüphanesiyle ilgilenirim.
  • “Her zaman self-hosted. Sunucu isteğe bağlı. Blockchain yok. Token yok. Her anlamda sonsuza dek ücretsiz.”
    Harika bir tez özeti.