3 poin oleh GN⁺ 2023-08-01 | 1 komentar | Bagikan ke WhatsApp
  • Conduit adalah server open source ringan yang mengimplementasikan spesifikasi Matrix, dengan fokus pada penyusunan homeserver mandiri dalam hitungan menit
  • Proyek ini masih berstatus beta, jadi sudah bisa digunakan tetapi beberapa fitur kecil masih belum ada
  • Matrix adalah jaringan terbuka untuk komunikasi aman dan terdistribusi, dan pengguna dari homeserver yang berbeda bisa saling mengobrol
  • Dari sisi operasional, Conduit menggunakan biner tunggal dan struktur basis data bawaan, dengan RocksDB sebagai basis data default
  • Karena ditujukan sebagai alternatif yang lebih ringan dan lebih mudah dipasang daripada Synapse, ini layak dipertimbangkan jika Anda membutuhkan server chat mandiri dengan kebutuhan sistem rendah

Peran Conduit dan Matrix

  • Conduit adalah server open source ringan yang mengimplementasikan Matrix Specification
  • Status saat ini adalah beta
    • Sudah bisa digunakan
    • Beberapa fitur kecil masih belum ada
  • Matrix adalah jaringan terbuka untuk komunikasi yang aman dan terdistribusi
    • Semua pengguna homeserver Matrix dapat mengobrol dengan pengguna server Matrix lainnya
    • Dengan menggunakan bridge, komunikasi juga dimungkinkan dengan pengguna di luar Matrix seperti komunitas Discord

Karakteristik instalasi dan operasional

  • Ditujukan untuk konfigurasi yang mudah dan kebutuhan sistem yang rendah, sehingga Anda dapat membuat konfigurasi Conduit sendiri dalam hitungan menit
  • Server ini menggunakan biner tunggal dan struktur basis data bawaan
  • Basis data default adalah RocksDB
  • Dalam beberapa kasus, ini bisa lebih cepat daripada implementasi server lain

Tautan terkait dan dukungan

1 komentar

 
GN⁺ 2023-08-01
Komentar Hacker News
  • Saya sudah menjalankan instance Conduit yang di-self-host selama beberapa tahun. Kelebihannya: mudah dipasang dan digunakan; kekurangannya: ini masih software beta
    Meski begitu, bagi saya cukup bagus, dan selama ini saya memakainya dengan baik untuk chat yang stabil dengan beberapa teman serta di beberapa room yang agak besar yang saya ikuti
    Penulisnya juga mengerjakan Veloren, proyek Rust menarik lainnya: https://veloren.net

    • Veloren benar-benar game yang keren. Beberapa tahun lalu saya mengompilasinya iseng-iseng bersama teman-teman, dan ternyata berjalan sangat mulus bahkan di GTX 1050 Ti saya
      Setelah masuk ke lobi dan bermain sekitar 30 menit, saya sadar bahwa saya bisa terus zoom out dari karakter dengan scroll. Bukan cuma setingkat action RPG biasa, tetapi sampai skala minimap, lalu naik sampai di atas awan tanpa penurunan frame; rasanya cukup halusinatif
      Saya tidak tahu seberapa baik proyek ini dipelihara sekarang, tetapi kerangkanya tampak sangat cukup untuk menjadi RPG yang kuat
    • Saya sudah memakai Conduit cukup lama dan sangat menyukainya
      Selama ini dukungan Spaces lama absen, tetapi baru saja masuk ke build pengembangan dan hasilnya bagus. Saya juga sudah memperbarui layanan saya, dan berfungsi sesuai harapan
    • Tampaknya bagus sebagai alternatif untuk menjalankan Dendrite, server Go. Dendrite terasa seperti selamanya masih dalam pengembangan, dan server Python sekarang terlalu boros resource, jadi menyenangkan melihat ada alternatif selain server Go
    • Andai ada klien serupa yang mendukung fitur-fiturnya secara penuh. Masalah Matrix adalah fiturnya terlalu banyak, seperti Signal, Discord, Slack, Zoom, dan Teams dicampur jadi satu
      Saya berharap ada subprotokol yang hanya untuk chat aman
    • Saya sudah menjalankannya selama 10 bulan, dan pemasangan maupun penggunaannya sangat mulus
      Pengguna server saya hanya saya sendiri dan saya tidak masuk ke room yang sangat aktif, tetapi sejauh ini dampaknya terhadap performa VPS kecil saya bisa diabaikan
  • Halo, saya Timo, yang memulai proyek Conduit beberapa tahun lalu. Silakan ajukan pertanyaan kalau ada

    • Saya sudah memakai Conduit selama 10 bulan dan benar-benar menyukainya. Saya punya dua pertanyaan
      Saya penasaran apakah tidak ada kekhawatiran soal masa depan proyek setelah Anda lulus kuliah. Sejauh ini Timo terlihat sebagai kontributor yang jauh paling aktif, jadi saya khawatir proyek ini masih sangat bergantung pada waktu yang bisa Anda curahkan
      Saya juga ingin tahu dari mana sebaiknya seorang developer Rust/Linux mulai jika ingin memberi kontribusi bermakna pertama ke Conduit. Ada 155 issue terbuka di GitLab, dan dari sudut pandang pengguna tidak ada masalah yang benar-benar menonjol, jadi saya tidak tahu harus mulai dari mana
      Kalau Dortmund atau kerja remote bukan keharusan, boleh saja menghubungi saya, dan semoga Anda mendapatkan pekerjaan yang bagus
    • Saya penasaran pendapat Anda tentang matrix-p2p / Pinecone yang sedang dikembangkan untuk Dendrite
      Saya juga penasaran apakah ada rencana menjadikan Conduit P2P dalam waktu dekat
      https://github.com/matrix-org/pinecone
      https://archive.fosdem.org/2022/schedule/event/matrix_p2p_pi...
    • Jika melihat Matrix sebagai protokol, bagian desain mana yang paling membuat Anda frustrasi?
      Saya punya pendapat sendiri dari pengalaman menulis bot, tetapi saya terutama penasaran dengan sudut pandang maintainer implementasi homeserver
    • Apakah ada dokumen yang merangkum bagaimana Conduit dibandingkan dengan Synapse atau spesifikasi Matrix dari sisi fitur?
      Tidak jelas apakah tujuannya menjadi server Matrix dengan fitur lengkap, atau menargetkan subset tertentu dari sisi skala maupun fitur
    • Saya penasaran apakah Anda sendiri memakai Conduit setiap hari. Saya ingin tahu apakah cukup stabil untuk penggunaan sehari-hari
  • Hal yang tidak saya sukai dari Matrix adalah saya menjalankan satu server untuk 3–4 pengguna, dan hanya dalam beberapa bulan database membengkak menjadi sekitar 80GB
    Padahal total konten yang diunggah pengguna dan teks hanya sekitar 2–3GB. Saya penasaran apakah ada cara menghapus cache data yang diterima dari server lama, misalnya mulai dari yang berumur lebih dari 2 minggu, lalu mengambilnya lagi jika diperlukan

    • Ada API admin untuk menghapus gambar lokal/remote lama. Dalam situasi ini, mungkin API itulah yang tepat
      https://matrix-org.github.io/synapse/v1.85/admin_api/media_a...
      Server saya tidak terfederasi, tetapi cukup aktif, dan saya memperlakukannya seperti ruang sementara. Saya mengaturnya agar teks dan media yang lebih lama dari 1–2 minggu otomatis direklamasi
    • Yang memakan ruang adalah data state room/percakapan, dan itu bisa dikompresi
      https://levans.fr/shrink-synapse-database.html
      https://github.com/matrix-org/rust-synapse-compress-state
    • Hal semacam ini membuat saya lebih menghargai XMPP. Tidak ada ekspektasi bahwa seluruh riwayat chat room harus direplikasi
      Banyak MUC secara default hanya menampilkan 20 pesan terbaru, yang biasanya cukup untuk memahami alur percakapan dan ikut masuk. Biaya menjalankan server saya juga cukup murah
  • Saya penasaran apakah ada cara migrasi dari Synapse ke Conduit. Sulit membenarkan kehilangan riwayat percakapan selama 6 tahun

    • Untuk saat ini belum ada. Ada rencana alat migrasi dari Synapse ke Dendrite, tetapi dukungan untuk Conduit juga perlu ditambahkan secara terpisah
      Bagaimanapun, tidak jelas berapa lama itu akan memakan waktu
      Yang saya temukan hanya issue pelacakan migrasi Synapse -> Dendrite
      https://github.com/matrix-org/dendrite/issues/1705
  • Artikel terkait: Conduit Beta – Matrix chat server - https://news.ycombinator.com/item?id=28385840 - September 2021, 69 komentar

  • Bisa jelaskan mengapa memakai Matrix kalau sudah ada XMPP?

    • Pikiran pertama saya justru pertanyaannya harus dibalik. Karena saya tidak tahu kenapa harus memakai XMPP, saya akan menyebutkan hal-hal bagus dari Matrix
      Ini solusi chat modern dengan fitur yang diharapkan orang dari Slack dan Discord, dan ada banyak bridge sehingga kita tidak perlu memakai beberapa klien chat untuk berbagai protokol
      Ada banyak komunitas yang bagus, voice chat-nya juga cukup baik, open source, dan bisa self-hosting. Saya penasaran apa yang bagus dari XMPP
    • Matrix lebih mirip chat dengan Git, memakai basis data terdistribusi, dan lebih kuat sebagai messenger tim seperti Mattermost atau Zulip
      Secara struktur, XMPP lebih dekat ke email, dengan opsi seperti status online, sedang mengetik, dan terakhir aktif; layanan messenger besar seperti WhatsApp juga kerap memakai variasi mereka sendiri
      XMPP adalah satu-satunya sistem yang bisa dan boleh digunakan di mana pun email dipakai. Sama modernnya dengan Matrix, hanya saja cara berpikirnya tentang penyimpanan dan distribusi data berbeda
      Perbandingan: https://www.freie-messenger.de/en/systemvergleich/xmpp-matri...
    • Ringkasan seperti ini masih tetap tepat: https://news.ycombinator.com/item?id=8998290
      XMPP sangat bagus untuk tujuan desainnya, tetapi kurang cocok untuk mobile, packet loss tinggi, dan koneksi dengan latensi tinggi. Protokol ini cerewet dan memakai banyak bandwidth, sehingga kurang baik di lingkungan dengan data dan baterai terbatas, dan sejak awal juga tidak mempertimbangkan realitas satu orang memakai banyak perangkat
      Transfer file juga lama sekali tidak bagus, dan bergantung pada klien serta bentuk jaringan, berbagai cara yang tidak kompatibel bercampur aduk
      Terlalu banyak XEP juga tidak membantu ekosistem. Jika ada terlalu banyak ekstensi opsional, interoperabilitas menurun. Fitur yang diharapkan dari chat modern sudah melampaui cakupan rancangan XMPP, dan XEP mencoba menambalnya, tetapi hasilnya campur aduk
      Saat dirancang, itu pilihan teknologi yang wajar, tetapi sekarang ada banyak pilihan yang lebih baik. Developer cenderung memilih teknologi yang membuat pekerjaan lebih menyenangkan, sehingga lebih banyak pekerjaan berlangsung di platform baru. Misalnya, artikel HN lain hari ini juga membahas bahwa parser XML biasa mungkin tidak cukup, sehingga diperlukan parser XML yang sangat canggih: https://news.ycombinator.com/item?id=36930196
    • XMPP punya common denominator minimum, dan banyak fungsi inti berada di bawah XEP opsional. Karena itu pengalaman pengguna sangat tidak konsisten tergantung klien dan server
      Matrix punya himpunan fitur penting yang lebih jelas, sehingga jika kliennya kompatibel, kita bisa mengharapkan implementasi yang seragam tanpa kejutan
    • Matrix lebih dekat ke layanan sinkronisasi state daripada sekadar cara mengirim pesan
      Ketika masuk ke room di server Matrix lain, server saya mulai mempertahankan salinan dari server itu, dan saya bisa menggunakannya dengan cara yang saya inginkan. Bahkan kalau server saya dimatikan sehari lalu dinyalakan lagi, ia akan tersinkronisasi kembali
      Saya tidak tahu apakah XMPP bekerja seperti itu, tetapi saya selalu menganggapnya seperti email: mengirim pesan dan melakukan sedikit retry. Saya juga tidak begitu tahu bagaimana state saat ini, tanda sudah dibaca, notifikasi sedang mengetik, dan informasi sementara semacam itu bekerja antars-server
  • Conduit adalah proyek yang sangat keren, tetapi tampaknya sulit mengikuti status dan progresnya jika tidak membaca semua commit dan issue
    Kemajuan terbaru pada fitur Sliding Sync bawaan cukup menjanjikan, karena deployment akan menjadi jauh lebih mudah

  • Ada yang tahu penyebab di Matrix ketika kadang pesan terakhir tidak terdekripsi sampai pesan terakhir baru dikirim, atau pesan di sekitarnya bisa, tetapi satu pesan saja gagal didekripsi?

    • Pemahaman saya belum sempurna, tetapi tidak semua pesan dienkripsi dengan kunci yang sama
      Jika semua klien saya tidak terhubung bersamaan, dan pengirim juga demikian, mereka tidak bisa saling bertukar kunci. Maka setiap klien hanya bisa mendekripsi sebagian pesan yang kuncinya dimiliki. Selain itu, klien hanya bertukar kunci dengan klien lain yang sudah terverifikasi
      Jika melihat properti session_id pada sumber JSON pesan, Anda bisa melihat bahwa pesan dalam sesi tertentu—yaitu selama pengirim login di satu klien—semuanya bisa didekripsi atau sama sekali tidak bisa didekripsi. Yang pertama berarti Anda punya kunci untuk sesi itu, sedangkan yang kedua berarti Anda belum menerimanya
  • Mungkin saya melewatkan sesuatu, tetapi halamannya terlalu sederhana dan tampaknya mengasumsikan bahwa pembaca sudah tahu apa itu Matrix dan bagaimana menggunakannya
    Mereka menghabiskan banyak waktu untuk berbagai metode instalasi, tetapi saya tidak melihat cara memakai server itu sendiri, seperti penggunaan klien

    • Tautan pertama di halaman mengarah ke matrix.org, dan di matrix.org ada tautan klien: https://matrix.org/ecosystem/clients/
      Mungkin cukup memakai Element
      Menurut saya halaman Conduit sudah benar. Bukan berarti mereka mengasumsikan orang sudah tahu apa itu Matrix, melainkan lebih seperti mengasumsikan bahwa jika tidak tahu, orang punya pemahaman yang cukup untuk mengeklik tautannya
    • Kalau sudah familier dengan Matrix.org, landing page-nya cukup bagus. Sepertinya ditujukan untuk developer Matrix
      Secara pribadi, saya suka karena singkat, masalah yang ingin diselesaikan terlihat jelas, dan tautan ke repositori Git sebagai ajakan tindakan yang sebenarnya muncul dengan cepat
      Bisa saja landing page itu sendiri sudah diperbarui dengan konten baru sejak tulisan aslinya
    • Apakah tautannya berubah?
      Matrix adalah jaringan terbuka untuk komunikasi yang aman dan terdesentralisasi. Pengguna dari homeserver Matrix mana pun bisa mengobrol dengan pengguna dari server Matrix lainnya. Mereka juga bisa berkomunikasi lewat bridge dengan pengguna di luar Matrix, seperti komunitas Discord
      Dan saya tidak melihat informasi instalasi
    • Matrix adalah protokol chat. Cara kerjanya seperti chat dengan Git dan memakai basis data terdistribusi, lebih mirip messenger tim seperti Mattermost atau Zulip
      Conduit adalah perangkat lunak server, bukan aplikasi untuk pengguna akhir
      Informasi tambahan tentang Matrix: https://www.freie-messenger.de/en/matrix
  • Saya penasaran bagaimana hubungan Conduit dengan Synapse
    Dendrite diuji dengan https://github.com/matrix-org/sytest dan ada isu seperti “apakah ini masih Synapse?”, tetapi saya tidak menemukan diskusi terkait di Conduit. Bahkan diskusi tentang alasan mengapa mereka tidak ingin menjadi seperti Synapse pun tidak terlihat

    • Conduit adalah implementasi pihak ketiga dari spesifikasi server Matrix yang ditulis dalam Rust. Synapse dan Dendrite sama-sama implementasi resmi, dan Dendrite awalnya dimulai dengan tujuan menggantikan Synapse
      Keunggulan yang mereka tonjolkan adalah ringan dan mudah dipasang, yang menyiratkan bahwa Synapse tidak demikian. Yang lebih penting, Conduit menjadi kasus validasi untuk spesifikasi server Matrix dan selama bertahun-tahun cukup banyak berkontribusi memperjelas bagian-bagian yang ambigu
    • SyTest terutama disesuaikan untuk dipakai bersama Synapse, dan di pihak Dendrite sepertinya mereka membuat wrapper agar bisa memasukkannya ke integrasi berkelanjutan mereka sendiri
      Conduit mungkin bisa memakai ulang sebagian pekerjaan itu, tetapi seingat saya Conduit memakai GitLab sedangkan Dendrite memakai GitHub Actions
      Secara terpisah, Conduit saat ini tampaknya tidak bertujuan menjadi pengganti drop-in untuk Synapse. Saat terakhir saya melihatnya di ruang Matrix, masih ada beberapa kekosongan fitur yang cukup menonjol