3 puan yazan GN⁺ 2023-08-01 | 1 yorum | WhatsApp'ta paylaş
  • Conduit, Matrix spesifikasyonunu uygulayan hafif bir açık kaynak sunucudur; birkaç dakika içinde kendi homeserver’ınızı kurmaya odaklanır
  • Proje hâlâ beta aşamasında; kullanılabilir durumda olsa da bazı küçük özellikler eksik
  • Matrix, güvenli ve dağıtık iletişim için açık bir ağdır; farklı homeserver’lardaki kullanıcılar birbirleriyle sohbet edebilir
  • Operasyon tarafında tek bir binary ve gömülü veritabanı yapısı kullanır; varsayılan veritabanı olarak RocksDB kullanılır
  • Synapse’e göre daha hafif ve kurulumu daha kolay bir alternatif olmayı hedeflediğinden, düşük sistem gereksinimli, kendi barındırabileceğiniz bir sohbet sunucusuna ihtiyaç varsa değerlendirmeye değer

Conduit ve Matrix’in rolü

  • Conduit, Matrix Specification’ı uygulayan hafif bir açık kaynak sunucudur
  • Mevcut durumu betadır
    • Halihazırda kullanılabilir
    • Bazı küçük özellikler henüz yok
  • Matrix, güvenli ve dağıtık iletişim için açık bir ağdır
    • Her Matrix homeserver kullanıcısı, diğer Matrix sunucularındaki kullanıcılarla sohbet edebilir
    • Köprüler kullanılarak Discord toplulukları gibi Matrix dışındaki kullanıcılarla da iletişim kurulabilir

Kurulum ve operasyon özellikleri

  • Kolay yapılandırma ve düşük sistem gereksinimleri hedeflenir; kendi Conduit kurulumunuzu birkaç dakika içinde oluşturabilirsiniz
  • Sunucu tek bir binary ve gömülü veritabanı yapısı kullanır
  • Varsayılan veritabanı RocksDB’dir
  • Bazı durumlarda diğer sunucu implementasyonlarından daha hızlı olabilir

İlgili bağlantılar ve destek

1 yorum

 
GN⁺ 2023-08-01
Hacker News yorumları
  • Birkaç yıldır self-hosted Conduit örneği işletiyorum; artısı kurulumunun ve kullanımının kolay olması, eksisi ise hâlâ beta yazılımı olması.
    Yine de benim için oldukça iyi oldu; birkaç arkadaşımla kararlı sohbetlerde ve katıldığım biraz daha büyük odalarda da sorunsuz kullandım.
    Yazarı, bir başka ilginç Rust projesi olan Veloren üzerinde de çalışıyor: https://veloren.net

    • Veloren gerçekten harika bir oyun. Birkaç yıl önce arkadaşlarla şakasına derleyip denemiştik; GTX 1050 Ti kartımda bile şaşırtıcı derecede akıcı çalışmıştı.
      Lobiye girip yaklaşık 30 dakika oynadıktan sonra, karakterden fare tekerleğiyle sürekli uzaklaşılabildiğini fark ettim. Sıradan bir aksiyon RPG ölçeğinin ötesine geçip mini harita ölçeğine, hatta bulutların üstüne kadar kare düşüşü olmadan çıkıyordu; epey halüsinatif bir histi.
      Projenin şu anda ne kadar iyi sürdürüldüğünü bilmiyorum ama güçlü bir RPG’ye dönüşecek iskelete fazlasıyla sahip görünüyor.
    • Conduit’i epey uzun süredir kullanıyorum ve çok olumlu bakıyorum.
      Uzun süre Spaces desteği eksikti ama geliştirme sürümüne yeni girdi ve harika. Kendi servisimi de şimdiden güncelledim; beklendiği gibi iyi çalışıyor.
    • Go sunucusu Dendrite çalıştırmaya alternatif olarak iyi görünüyor. Dendrite sanki sonsuza kadar geliştirme aşamasında kalacakmış gibi hissettiriyor; Python sunucusu artık çok fazla kaynak tükettiği için Go sunucusu dışında da alternatifler görmek sevindirici.
    • Özellikleri tam destekleyen benzer bir istemci olsa iyi olurdu. Matrix’in sorunu, çok fazla özelliği olması; Signal, Discord, Slack, Zoom ve Teams’in tek yerde karışmış hâli gibi.
      Sadece güvenli sohbet yapan bir alt protokol olsa iyi olurdu.
    • 10 aydır işletiyorum; hem kurulum hem kullanım çok pürüzsüzdü.
      Sunucumun tek kullanıcısı benim ve çok aktif odalara girmedim ama şimdiye kadar küçük VPS’in performansına etkisi ihmal edilebilir düzeyde.
  • Merhaba, birkaç yıl önce Conduit projesini başlatan Timo’yum. Sorularınız varsa çekinmeden sorun.

    • Conduit’i 10 aydır kullanıyorum ve gerçekten seviyorum. İki sorum var.
      Üniversiteyi bitirdikten sonra projenin geleceği konusunda bir endişe olup olmadığını merak ediyorum. Şimdiye kadar Timo açık ara en aktif katkıcı gibi görünüyor; bu yüzden projenin hâlâ ayırabildiğin zamana büyük ölçüde bağlı olup olmadığından endişeleniyorum.
      Bir Rust/Linux geliştiricisi Conduit’e ilk kez anlamlı katkı yapmak isterse nereden başlamalı, onu da merak ediyorum. GitLab’da açık 155 issue var ve kullanıcı açısından göze çarpan belirgin bir sorun olmadığı için nereden başlanacağını bilemiyorum.
      Dortmund ya da uzaktan çalışma şart değilse iletişime geçmekten çekinme; iyi bir iş bulmanı dilerim.
    • Dendrite için geliştirilmekte olan matrix-p2p / Pinecone hakkında ne düşündüğünü merak ediyorum.
      Yakın gelecekte Conduit’i de P2P hâle getirme planı olup olmadığını merak ediyorum.
      https://github.com/matrix-org/pinecone
      https://archive.fosdem.org/2022/schedule/event/matrix_p2p_pi...
    • Matrix’e bir protokol olarak bakınca tasarım açısından en sinir bozucu kısmın ne olduğunu merak ediyorum.
      Bot yazarken benim de bazı düşüncelerim oldu ama özellikle homeserver implementasyonu bakımcısı perspektifini merak ediyorum.
    • Conduit’in özellikler bakımından Synapse veya Matrix spesifikasyonuyla nasıl karşılaştırıldığını özetleyen bir doküman var mı merak ediyorum.
      Hedefin tam özellikli bir Matrix sunucusu mu olduğu, yoksa ölçek ya da özellik açısından belirli bir alt kümeyi mi hedeflediği net değil.
    • Conduit’i bizzat her gün kullanıp kullanmadığını merak ediyorum. Günlük kullanım için kararlı olup olmadığını bilmek istiyorum.
  • Matrix’te hoşuma gitmeyen şey, 3-4 kullanıcılı tek bir sunucu işletmem ve birkaç ay içinde veritabanının 80 GB civarına şişmesiydi.
    Kullanıcıların yüklediği içerik ve metinlerin toplamı ancak 2-3 GB kadardı. Eski sunuculardan alınan veri önbelleğini, örneğin 2 haftadan eski olanlardan başlayarak silmenin ve gerekirse yeniden çekmenin bir yolu var mı merak ediyorum.

    • Eski yerel/uzak görselleri silebilen bir admin API var. Bu durumda muhtemelen aradığın API bu.
      https://matrix-org.github.io/synapse/v1.85/admin_api/media_a...
      Benim sunucum federasyona açık değil ama oldukça aktif; onu geçici bir alan gibi ele alıyorum. Hem metin hem medyanın 1-2 haftadan eski olanları otomatik olarak geri kazanılacak şekilde ayarlı.
    • Alanı kaplayan şey odaların/sohbetlerin durum verisi ve bu sıkıştırılabiliyor.
      https://levans.fr/shrink-synapse-database.html
      https://github.com/matrix-org/rust-synapse-compress-state
    • Bu tür şeyler yüzünden XMPP’yi daha çok takdir eder oldum. Tüm sohbet odası geçmişini kopyalama beklentisi yok.
      Birçok MUC’de varsayılan son 20 mesajdır; konuşmanın akışını yakalayıp dahil olmak için genellikle yeterlidir. Kendi sunucumu işletmenin maliyeti de oldukça düşüktü.
  • Synapse’ten Conduit’e migrasyon yapmanın bir yolu var mı merak ediyorum. 6 yıllık sohbet geçmişini çöpe atmayı haklı göstermek zor.

    • Henüz yok. Synapse’ten Dendrite’a geçiş için bir migrasyon aracı planı var ama Conduit desteğinin ayrıca eklenmesi gerekiyor.
      Her iki durumda da bunun ne kadar süreceği belli değil.
      Bulabildiğim tek şey Synapse -> Dendrite migrasyonunu izleyen issue oldu.
      https://github.com/matrix-org/dendrite/issues/1705
  • İlgili yazı: Conduit Beta – Matrix chat server - https://news.ycombinator.com/item?id=28385840 - Eylül 2021, 69 yorum

  • XMPP varken neden Matrix kullanıldığını açıklayabilir misiniz?

    • İlk aklıma gelen, aslında sorunun tersinden sorulması gerektiğiydi. XMPP’yi neden kullanmam gerektiğini bilmediğim için, Matrix’in iyi yanlarını anlatayım
      Slack ve Discord’da insanların beklediği özelliklere sahip modern bir sohbet çözümü; ayrıca farklı protokoller için birden fazla sohbet istemcisi kullanmak zorunda kalmamanızı sağlayan çok sayıda köprüsü var
      Çok iyi topluluklar var, sesli sohbet de gayet iyi, açık kaynak ve self-host edilebiliyor. XMPP’de neyin iyi olduğunu merak ediyorum
    • Matrix, Git ile sohbet etmeye daha yakın; dağıtık bir veritabanı kullanıyor ve Mattermost ya da Zulip gibi ekip mesajlaşma niteliği daha ağır basıyor
      XMPP yapısal olarak e-postaya daha yakın; çevrim içi durumu, yazıyor bilgisi, son görülme gibi seçenekler eklenmiş durumda ve WhatsApp gibi büyük mesajlaşma servisleri de sıkça kendi türevlerini kullanıyor
      XMPP, e-posta kullanılan her yerde kullanılabilen ve kullanılması makul olan tek sistem. Matrix kadar modern, yalnızca veri depolama ve dağıtım konusunda farklı düşünüyor
      Karşılaştırma: https://www.freie-messenger.de/en/systemvergleich/xmpp-matri...
    • Şu özet hâlâ geçerli: https://news.ycombinator.com/item?id=8998290
      XMPP, tasarlandığı amaç için harika; ancak mobil, yüksek paket kaybı ve yüksek gecikmeli bağlantılar için pek uygun değil. Fazla konuşkan ve çok bant genişliği kullanıyor; bu da veri ve pilin kısıtlı olduğu ortamlar için iyi değil. Ayrıca bir kişinin birden fazla cihaz kullanması gerçeği de başlangıçta düşünülmemişti
      Dosya aktarımı da uzun süre iyi değildi; istemciye ve ağ yapısına göre birbiriyle uyumsuz yöntemler karışık hâlde kullanıldı
      XEP’lerin çok fazla olması da ekosisteme yardımcı olmuyor. Seçimli genişletmeler çok fazla olunca birlikte çalışabilirlik düşüyor. Modern sohbetten beklenen özellikler XMPP’nin tasarlandığı kapsamın ötesine geçti; XEP’ler bunu yamamaya çalıştı ama sonuçlar karışıktı
      Tasarlandığı dönemde doğal bir teknoloji seçimiydi, ancak bugün daha iyi seçenekler de çok. Geliştiriciler, üzerinde çalışmayı daha keyifli kılan teknolojileri seçme eğiliminde olduğundan yeni platform tarafında daha fazla iş yapılıyor. Örneğin bugün başka bir HN yazısında da sıradan bir XML ayrıştırıcısının yetersiz kalabileceği, çok gelişmiş bir XML ayrıştırıcısına ihtiyaç duyulduğu ele alındı: https://news.ycombinator.com/item?id=36930196
    • XMPP’de en küçük ortak payda var ve temel işlevlerin önemli bir kısmı isteğe bağlı XEP’lerin altında. Bu yüzden kullanıcı deneyimi istemciye ve sunucuya göre çok dalgalanıyor
      Matrix’te önemli özellik kümesi daha net; bu nedenle uyumlu bir istemcinin bunları sürprizsiz ve tutarlı biçimde uygulamasını bekleyebilirsiniz
    • Matrix, mesaj gönderme yönteminden çok bir durum eşitleme servisine daha yakın
      Başka bir Matrix sunucusundaki bir odaya girdiğinizde, kendi sunucunuz o sunucunun bir kopyasını tutmaya başlar ve siz bunu istediğiniz şekilde kullanabilirsiniz. Sunucunuzu bir gün kapatıp sonra açsanız bile yeniden eşitlenir
      XMPP’nin böyle çalışıp çalışmadığını bilmiyorum; ama hep e-posta gibi mesaj gönderip biraz yeniden deneme yapan bir şey olarak düşünmüştüm. Sunucular arasında mevcut durumun, okundu bilgilerinin, yazıyor bildirimleri gibi geçici bilgilerin nasıl çalıştığından da pek emin değilim
  • Conduit çok harika bir proje, ancak tüm commit’leri ve issue’ları okumadan durumunu ve ilerlemesini takip etmek zor görünüyor
    Son dönemde yerleşik Sliding Sync özelliğinde ilerleme olması umut verici. Çünkü dağıtımı çok daha kolaylaştırıyor

  • Matrix’te bazen son mesajın yeni bir son mesaj gönderilene kadar çözülmemesine ya da çevresindeki mesajlar çözülebilirken tek bir mesajda şifre çözme hatası olmasına neyin yol açtığını bilen var mı?

    • Anlayışım hâlâ kusursuz değil, ama tüm mesajlar aynı anahtarla şifrelenmiyor
      Benim tüm istemcilerim aynı anda bağlı değilse ve gönderen için de durum aynıysa, birbirleriyle anahtar alışverişi yapamazlar. Bu durumda her istemci yalnızca anahtarına sahip olduğu mesajların bir kısmını çözebilir. Ayrıca istemciler yalnızca doğrulanmış diğer istemcilerle anahtar alışverişi yapar
      Mesaj JSON ham verisindeki session_id özelliğine bakarsanız, belirli bir oturumun, yani gönderenin tek bir istemcide oturum açmış olduğu süre boyunca gönderilen mesajların ya tamamen çözülebildiğini ya da hiç çözülemediğini görebilirsiniz. İlki o oturumun anahtarına sahip olduğunuz, ikincisi ise anahtarı henüz almadığınız anlamına gelir
  • Bir şeyi kaçırmış olabilirim ama sayfa fazla basit ve Matrix’in ne olduğunu ve bunun nasıl kullanılacağını zaten bildiğinizi varsayıyor gibi görünüyor
    Farklı kurulum yöntemlerine epey zaman ayırıyor, ancak istemci kullanımı gibi sunucunun kendisinin nasıl kullanılacağına dair bir şey görünmüyor

    • Sayfadaki ilk bağlantı matrix.org’a gidiyor ve matrix.org’da istemci bağlantısı var: https://matrix.org/ecosystem/clients/
      Muhtemelen Element kullanmak yeterli olacaktır
      Conduit sayfasının doğru yaptığını düşünüyorum. Matrix’in ne olduğunu bildiğinizi varsaymaktan çok, bilmiyorsanız bağlantıya tıklayacak kadar kavrayışınız olduğunu varsayıyor gibi
    • Matrix.org’a aşinaysanız açılış sayfası oldukça iyi. Matrix geliştiricilerini hedefliyor gibi görünüyor
      Şahsen kısa olmasını, çözmeye çalıştığı sorunu kısaca göstermesini ve asıl eylem çağrısı olan Git deposu bağlantısının hızlıca görünmesini beğendim
      Orijinal yazıdan sonra açılış sayfasının kendisi yeni içerikle güncellenmiş de olabilir
    • Bağlantı değişmiş mi?
      Matrix, güvenli ve merkeziyetsiz iletişim için açık bir ağdır. Herhangi bir Matrix homeserver’ındaki kullanıcılar, diğer tüm Matrix sunucularındaki kullanıcılarla sohbet edebilir. Discord toplulukları gibi Matrix dışındaki kullanıcılarla da bridge’ler üzerinden iletişim kurabilir
      Ayrıca kurulum bilgisi görünmüyor
    • Matrix bir sohbet protokolüdür. Git ile sohbet ediyormuşsunuz gibi çalışır ve dağıtık bir veritabanı kullanır; Mattermost veya Zulip gibi ekip mesajlaşma araçlarına daha yakındır
      Conduit, sunucu yazılımıdır; son kullanıcıya yönelik bir uygulama değildir
      Matrix hakkında ek bilgi: https://www.freie-messenger.de/en/matrix
  • Conduit’in Synapse ile nasıl bir ilişkisi olduğunu merak ediyorum
    Dendrite https://github.com/matrix-org/sytest ile test ediliyor ve “hâlâ Synapse mı?” gibi issue’lar da var; ama Conduit’te bununla ilgili bir tartışma bulamadım. Synapse gibi olmak istememe nedenlerine dair bir tartışma bile görünmüyor

    • Conduit, Matrix sunucu spesifikasyonunun Rust ile yazılmış üçüncü taraf bir implementasyonudur. Synapse ve Dendrite’ın ikisi de resmi implementasyonlardır; Dendrite da başlangıçta Synapse’in yerini almak amacıyla başlamıştı
      Öne çıkardığı avantajlar hafif olması ve kurulumunun kolay olması; bu da Synapse’in böyle olmadığı imasını taşıyor. Daha önemlisi, Matrix sunucu spesifikasyonu için bir doğrulama örneği oldu ve yıllar içinde muğlak kısımların netleşmesine epey katkı sağladı
    • SyTest ağırlıklı olarak Synapse ile kullanılacak şekilde uyarlanmış ve Dendrite tarafında bunu kendi sürekli entegrasyonlarına bağlamak için sarmalayan bir çalışma yapıyorlar gibi görünüyor
      Conduit de bu çalışmanın bir kısmını yeniden kullanabilir; ama hatırladığım kadarıyla Conduit GitLab kullanıyor, Dendrite ise GitHub Actions kullanıyor
      Ayrı olarak Conduit şu an için Synapse’in drop-in alternatifi olmayı hedeflemiyor gibi. Matrix odasında son baktığımda da göze çarpan birkaç özellik boşluğu vardı