- Radicle, Git üzerine kurulu merkeziyetsiz açık kaynak kod işbirliği ağıdır; merkezi bir sunucu olmadan depoların eşler arasında doğrudan çoğaltılmasını ve yönetilmesini sağlar
- Tüm veriler ve sosyal artefaktlar, açık anahtar kriptografisiyle imzalanır; böylece özgünlük ve yazar doğrulaması yapılabilir
- Kullanıcılar kendi düğümlerini çalıştırarak sansüre dayanıklı bir işbirliği ortamını sürdürebilir ve internet bağlantısı olmadan da local-first yaklaşımla çalışabilir
- Collaborative Objects(COBs) aracılığıyla issue, tartışma, kod incelemesi gibi işbirliği işlevlerini Git nesneleri olarak uygular; geliştiriciler bu işlevleri özgürce genişletebilir
- CLI, web, TUI gibi modüler bir yapıdan oluşur; bu sayede farklı istemciler geliştirilebilen ve değiştirilebilen, yüksek ölçüde genişletilebilir bir kod forge platformudur
Genel Bakış (Synopsis)
- Radicle, Git tabanlı eşler arası bir kod işbirliği yığınıdır ve merkezi kod barındırma platformlarının aksine tek bir kontrol otoritesine sahip değildir
- Depolar eşler arasında dağıtık olarak çoğaltılır ve kullanıcılar kendi verileri ile iş akışları üzerinde tam denetime sahiptir
- Açık kaynak olarak sunulur ve MIT ile Apache 2.0 lisansları altında serbestçe kullanılabilir
- Ana depo
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 tanımlayıcısına sahiptir
Kurulum ve Başlangıç
- Kurulum, shell üzerinde şu komutla yapılabilir:
curl -sSLf https://radicle.xyz/install | sh
- Ya da kaynak kodundan doğrudan derlenebilir
- Şu anda yalnızca Linux, macOS ve BSD ailesinde çalışır
- Radicle Desktop istemcisi üzerinden grafik tabanlı bir işbirliği ortamı da sunulur
Nasıl Çalışır
- Kriptografik kimlik sistemi kullanarak kod ve sosyal verilerin bütünlüğünü ve yazar kimliğinin doğrulanmasını garanti eder
- Eşler arasında verimli veri aktarımı için Git kullanır
- Depo meta verilerini değiş tokuş etmek için özel bir gossip protokolü kullanır
Veri Güvenliği ve Kalıcılık
- Tüm sosyal artefaktlar Git'te saklanır ve açık anahtar kriptografisiyle imzalanır
- Radicle, verinin özgünlüğünü ve yazar kimliğini otomatik olarak doğrular
Otonomi ve Sansüre Dayanıklılık
- Kullanıcılar kendi düğümlerini doğrudan çalıştırabildiği için üçüncü taraf bağımlılığı olmayan bir işbirliği ortamı korunur
- Ağ, esnek ve sansüre dayanıklı bir yapı olarak tasarlanmıştır
Local-first
- İnternet bağlantısı olmasa bile her zaman erişilebilir işlevler sunar
- Kullanıcılar verilerinin sahipliğini elinde tutar; taşıma, yedekleme ve erişim kolaydır
Genişletilebilirlik ve Evrim Potansiyeli
- Collaborative Objects(COBs) ile issue, tartışma, kod incelemesi gibi işbirliği işlevleri Git nesneleri olarak uygulanır
- Geliştiriciler COBs'leri genişleterek yeni işbirliği akışları kurabilir
Tasarım Gereği Modüler (Modular by Design)
- Radicle Stack, CLI, web arayüzü ve TUI bileşenlerinden oluşur
- Bunlar Radicle Node ve HTTP Daemon tarafından desteklenir
- Her bileşen değiştirilebilir ve farklı istemciler geliştirmek de mümkündür
Topluluk ve Katılım
- Radicle, özgür ve açık kaynak yazılım olarak herkesin koda katkı yapmasına açıktır
- Topluluk Zulip, Mastodon, Bluesky ve Twitter gibi platformlarda aktiftir
- Geri bildirimler feedback@radicle.xyz adresine gönderilebilir ve otomatik olarak Zulip'teki
#feedback kanalında yayımlanır
1 yorum
Hacker News yorumları
Radicle'ın giriş paragrafının self-hosted Git'ten nasıl farklı olduğunu netleştirmediğini düşünüyorum
Eğer gitea ya da forgejo gibi bir alternatifse, Git'in üzerine hangi işlevleri eklediğini kısaca açıklamak iyi olurdu
E-posta yamaları paylaşmanın kaosu olmadan birlikte çalışmayı sağlayan bir araç olarak anladım
gitea ya da forgejo'yu bilmediğim için karşılaştırma pek yardımcı olmuyor
İlk cümlede Git'in belirtilmesi yeterince açık
Buna karşılık forgejo'nun açılış sayfası Git ya da kaynak kontrolünden söz etmekten kaçınıyor ve bu daha da kafa karıştırıcı
forgejo/gitea/gitlab gibi yerel barındırma olanağı sunuyor, ancak P2P ağ üzerinde çalıştığı için kesintilere daha dayanıklı ve merkeziyetsiz herkese açık proje barındırma mümkün oluyor
Nasıl yazmanın daha iyi olacağına dair doğrudan öneri getirirseniz seviniriz
Yeni bir sosyal forge yapma girişimi sevindirici
Böyle projelerin sadece GitHub ve GitLab üzerinde iyileştirme baskısı oluşturması bile anlamlı
FAQ'ya bakınca Radicle'ın Git'teki güven sorununu PKI tabanlı bir kimlik sistemiyle çözmeye çalıştığı görülüyor
Ama sonuçta “kimin kimliğine güvenileceği” sorunu yine ortada kalıyor gibi geliyor
Şu anda SSH anahtarlarıyla bire bir eşleniyor, ancak grup kimliğine doğru genişletiyoruz
Kusursuz bir çözüm değil ama kriptografik kimlik sayesinde ‘bazı yerlerden daha geniş güvene ölçeklenebilen’ bir yapı sunuyor
Sonuçta güven, insanlar arası ilişkiler gibi sosyal bağlantılar üzerinden dağıtılıyor
Bir kez güven oluşunca, aynı DID'ye sahip diğer depolar bulunabilir
Birden fazla sürüm varsa, güvenilen kaynak ya da etkinliği yüksek depo seçilebilir
Eski internet servislerini (IRC, Gopher vb.) çalıştıran küçük sysadmin gruplarıyla takılırken, P2P sistemlerde silinememe konusu üzerine düşünmeden edemiyorum
Yanlışlıkla kişisel veri yüklenirse ya da yasa değişip yüklenen bir içerik sorunlu hale gelirse ne yapılacağı belirsiz
Belarus'ta amatör telsiz operatörlerinin tutuklanması vakası gibi tehlikeli durumlar da var
Bunlar P2P'nin kötü olduğu anlamına gelmiyor ama silme sorunu hâlâ çözülmesi zor bir mesele
GitHub'da da gizli anahtar içeren kod yüklenirse çoğu zaman iş işten geçmiş oluyor
P2P yeni bir sorun yaratmaktan çok mevcut sorunu olduğu gibi görünür kılıyor
E-postadaki gibi belli bir süre içinde yayını geri almayı sağlayan bir gecikmeli yayımlama özelliği iyi olurdu
Ağ seviyesinde içerik imha etme özelliği de tartışılıyor
Operatör silme durumunu manipüle edebilir ya da devlete bildirim yapabilir
Hukuki sorunlar sonuçta siyasal sistemin adilliğine bağlı
Tangled ile farkını soran bir soru
Tüm işlemler (issue'lar, patch review'lar vb.) yerel veri deposunda yapılıyor ve sunucu gidiş-dönüşü yok
Ağ yalnızca eşzamanlama anında devreye giriyor
Buna karşılık Tangled, AT Protocol tabanlı federatif bir yapı kullanıyor ve fiilen merkezi sunuculara (AppView) dayanıyor
Yapısal olarak istemci-sunucu tipi bir sistem
Radicle'da sunucu kavramı yok; tüm düğümler eşit
Yalnızca bazı düğümler tarayıcı erişimini kolaylaştırmak için HTTP sunucusu gibi çalışabiliyor
FAQ'ya göre Radicle, kötüye kullanım ve yasa dışı içerik konusunda her düğümün kendi politikasına göre engelleme yapmasına izin veriyor
Ayrıca güvenilen peer'lar arasında özel depoları destekliyor
Veri şifrelenmiyor ama seçmeli çoğaltma sayesinde tüm ağa yayılmıyor
FAQ bağlantısı
Ana sayfada herkese açık depo dizinine erişim sağlayan bir ağ geçidi olması gerektiğini düşünüyorum
Böylece tüm ağı keşfetmek mümkün olur
Böyle bir dizin olursa GitHub'ın yerini alma potansiyeli var
Yalnız bunun ana sayfadan açıkça bağlanıp bağlanmadığını bilmiyorum
Radicle gerçekten harika bir proje
Aylardır bir düğüm çalıştırıyorum ama hâlâ ana çözümüm olarak kullanmıyorum
P2P forge'ların web'in geleceği olduğuna inanıyorum
Katılımın kendisi bir oy vermek gibi
GitHub'da bir proje her engellendiğinde aklımdan “Keşke Radicle kullanılsaydı” diye geçiyor
Tor arkasında düğüm çalıştırmak hukuki baskılardan da kaçınmayı sağlayabilir
Geçmişte bazı projelerde böyle kurulumlarda sorun çıkmıştı
İzin verici seed node'ların büyük ikili dosya yüklemelerine karşı nasıl korunduğunu merak ediyorum
Tüm issue ve tartışmalar saklanırsa depo boyutu aşırı büyüyebilir
Git'teki shallow clone gibi kısmi çoğaltma özelliği gerekli görünüyor
Forgejo (ForgeFed protokolü) ile farkını soran bir soru
Her düğüm aynı süreçle çalışıyor ve kullanıcı hesapları self-certifying biçimde doğrulanıyor
Buna karşılık Forgejo, ActivityPub üzerinden sunucular arası iletişim kuran federatif bir yapı
GitHub : Forgejo = Twitter : Mastodon ve dosya paylaşımı : BitTorrent = yazılım geliştirme : Radicle benzetmesi yapılabilir
Radicle, referansları merkezi sunucu yerine proje bazlı kriptografik namespace'lerle yönetiyor
Erişim kontrolü de sunucuya değil kullanıcı kimliğine dayanıyor