3 पॉइंट द्वारा GN⁺ 2023-08-01 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Conduit एक हल्का open source सर्वर है जो Matrix specification को implement करता है, और कुछ ही मिनटों में अपना homeserver सेटअप करने पर केंद्रित है
  • प्रोजेक्ट अभी beta में है, इसलिए इसे पहले से इस्तेमाल किया जा सकता है, लेकिन कुछ छोटे फीचर अभी मौजूद नहीं हैं
  • Matrix सुरक्षित और distributed communication के लिए एक open network है, और अलग-अलग homeserver के उपयोगकर्ता आपस में चैट कर सकते हैं
  • संचालन के लिहाज़ से यह single binary और built-in database संरचना का उपयोग करता है, और default database के रूप में RocksDB इस्तेमाल करता है
  • यह Synapse की तुलना में हल्का और इंस्टॉल करने में आसान विकल्प बनने का लक्ष्य रखता है, इसलिए अगर आपको कम system requirements वाला self-hosted चैट सर्वर चाहिए तो इसे देखना उपयोगी हो सकता है

Conduit और Matrix की भूमिका

  • Conduit एक हल्का open source सर्वर है जो Matrix Specification को implement करता है
  • इसकी वर्तमान स्थिति beta है
    • इसे पहले से इस्तेमाल किया जा सकता है
    • कुछ छोटे फीचर अभी नहीं हैं
  • Matrix सुरक्षित और distributed communication के लिए एक open network है
    • सभी Matrix homeserver उपयोगकर्ता अन्य Matrix सर्वर के उपयोगकर्ताओं के साथ चैट कर सकते हैं
    • bridge का उपयोग करने पर Discord community जैसे Matrix के बाहर के उपयोगकर्ताओं से भी संचार किया जा सकता है

इंस्टॉलेशन और संचालन की विशेषताएँ

  • आसान सेटअप और कम system requirements इसका लक्ष्य हैं, और आप कुछ ही मिनटों में अपना Conduit कॉन्फ़िगरेशन बना सकते हैं
  • सर्वर single binary और built-in database संरचना का उपयोग करता है
  • default database RocksDB है
  • कुछ मामलों में यह अन्य सर्वर implementations से अधिक तेज़ हो सकता है

संबंधित लिंक और प्रायोजन

  • प्रोजेक्ट लिंक

  • प्रायोजन और संचालन जानकारी

    • Liberapay: https://liberapay.com/timokoesters/
    • Bitcoin: bc1qnnykf986tw49ur7wx9rpw2tevpsztvar5x8w4n
    • conduit.rs सर्वर होस्टिंग Matrix.org Foundation द्वारा प्रदान की जाती है
    • Conduit को 2023 में https://manualsbrain.com/ का प्रायोजन मिला
    • 2021 में German BMBF से 6 महीने का प्रायोजन मिला था, और FKZ 01lS21S11 है

1 टिप्पणियां

 
GN⁺ 2023-08-01
Hacker News टिप्पणियाँ
  • मैं कई सालों से self-hosted Conduit instance चला रहा हूँ। इसकी अच्छी बात यह है कि इसे install और use करना आसान है, और कमी यह है कि यह अभी भी beta software है।
    फिर भी मेरे लिए यह काफ़ी अच्छा रहा है; कुछ दोस्तों के साथ stable chatting और जिन थोड़े बड़े rooms में मैं हूँ, वहाँ भी यह ठीक चला है।
    लेखक एक और दिलचस्प Rust project, Veloren, पर भी काम करते हैं: https://veloren.net

    • Veloren सचमुच शानदार game है। कुछ साल पहले दोस्तों के साथ मज़े-मज़े में इसे compile किया था, और यह मेरे GTX 1050 Ti पर भी हैरान करने लायक smooth चला।
      Lobby में जाकर करीब 30 मिनट play करने के बाद पता चला कि character से scroll करके लगातार zoom out किया जा सकता है। यह सामान्य action RPG level से आगे जाकर minimap scale तक, फिर clouds के ऊपर तक बिना frame drop के चला जाता था—काफी hallucination जैसा अनुभव था।
      अभी project कितनी अच्छी तरह maintained है, पता नहीं, लेकिन एक strong RPG बनने की बुनियाद इसमें पूरी दिखती है।
    • मैं Conduit काफी समय से इस्तेमाल कर रहा हूँ और इसे बहुत अच्छा मानता हूँ।
      लंबे समय तक Spaces support नहीं था, लेकिन अभी development build में आया है और बेहतरीन है। मैंने अपनी service भी update कर दी है और यह उम्मीद के मुताबिक ठीक काम कर रहा है।
    • Go server Dendrite चलाने के alternative के तौर पर अच्छा लगता है। Dendrite हमेशा development में ही लगता है, और Python server अब बहुत ज़्यादा resources खाता है, इसलिए Go server के अलावा भी alternatives दिखना अच्छा है।
    • काश ऐसा similar client होता जो features को पूरी तरह support करता। Matrix की समस्या यह है कि इसमें इतने features हैं कि यह Signal, Discord, Slack, Zoom और Teams का मिला-जुला रूप लगता है।
      अच्छा होता अगर सिर्फ secure chat के लिए कोई sub-protocol होता।
    • मैं इसे 10 महीनों से चला रहा हूँ और install व use दोनों बहुत smooth रहे हैं।
      मेरे server का user सिर्फ मैं हूँ और मैं बहुत active rooms में नहीं गया हूँ, लेकिन अब तक छोटे VPS की performance पर इसका असर नगण्य रहा है।
  • नमस्ते, मैं Timo हूँ, जिसने कुछ साल पहले Conduit project शुरू किया था। कोई सवाल हों तो बेझिझक पूछें।

    • मैं Conduit को 10 महीनों से इस्तेमाल कर रहा हूँ और सच में पसंद करता हूँ। मेरे दो सवाल हैं।
      University पूरी करने के बाद project के future को लेकर कोई चिंता है या नहीं, यह जानना चाहता हूँ। अब तक Timo overwhelmingly active contributor दिखते हैं, इसलिए चिंता है कि project अभी भी उनके उपलब्ध समय पर काफी निर्भर है।
      यह भी जानना चाहता हूँ कि कोई Rust/Linux developer Conduit में पहली meaningful contribution के लिए कहाँ से शुरू करे। GitLab पर 155 open issues हैं, और user के नज़रिए से कोई बहुत साफ़ दिखने वाली समस्या नहीं है, इसलिए समझ नहीं आता कि शुरुआत कहाँ से करूँ।
      अगर Dortmund या remote work अनिवार्य नहीं है तो संपर्क करना ठीक होगा, और उम्मीद है आपको अच्छी job मिले।
    • Dendrite के लिए develop हो रहे matrix-p2p / Pinecone के बारे में आपकी क्या राय है, जानना चाहता हूँ।
      क्या निकट भविष्य में Conduit को भी P2P बनाने की कोई योजना है?
      https://github.com/matrix-org/pinecone
      https://archive.fosdem.org/2022/schedule/event/matrix_p2p_pi...
    • Matrix को protocol के रूप में देखें तो design में आपको सबसे frustrating हिस्सा कौन-सा लगता है?
      Bots लिखते समय मेरी अपनी राय भी बनी है, लेकिन homeserver implementation maintainer का perspective खास तौर पर जानना चाहता हूँ।
    • क्या कोई document है जिसमें feature-wise Conduit की तुलना Synapse या Matrix specification से की गई हो?
      यह स्पष्ट नहीं है कि लक्ष्य full-featured Matrix server है, या scale/features में किसी खास subset को target करना है।
    • क्या आप Conduit को खुद रोज़ इस्तेमाल करते हैं? जानना चाहता हूँ कि daily use के लिए यह stable है या नहीं।
  • Matrix में मुझे जो बात पसंद नहीं आई, वह यह थी कि मैंने 3–4 users वाला एक server चलाया और कुछ महीनों में database करीब 80GB तक फूल गया।
    Users द्वारा upload किए गए content और text मिलाकर भी केवल करीब 2–3GB था। जानना चाहता हूँ कि क्या पुराने servers से प्राप्त data cache को, जैसे 2 हफ्ते से पुराने data से शुरू करके, delete करने और जरूरत पड़ने पर फिर से fetch करने का कोई तरीका है।

    • पुराने local/remote images हटाने के लिए एक admin API है। इस स्थिति में शायद यही API सही लगेगा।
      https://matrix-org.github.io/synapse/v1.85/admin_api/media_a...
      मेरा server federated नहीं है, लेकिन काफी active है और मैं इसे temporary space की तरह treat करता हूँ। मैंने इसे set कर रखा है कि text और media, दोनों में 1–2 हफ्ते से पुराने items automatically reclaimed हो जाएँ।
    • Space लेने वाली चीज़ rooms/conversations का state data है, और उसे compress किया जा सकता है।
      https://levans.fr/shrink-synapse-database.html
      https://github.com/matrix-org/rust-synapse-compress-state
    • इसी तरह की बातों की वजह से मैं XMPP को ज्यादा महत्व देने लगा हूँ। पूरे chat room history को replicate करने की expectation नहीं होती।
      कई MUC में default हाल के 20 messages होता है, जो conversation का flow समझने और उसमें शामिल होने के लिए आम तौर पर काफी होता है। मेरा server चलाने का खर्च भी काफी कम था।
  • जानना चाहता हूँ कि Synapse से Conduit में migration करने का कोई तरीका है या नहीं। 6 साल की conversation history खो देना justify करना मुश्किल है।

    • अभी नहीं है। Synapse से Dendrite में जाने के लिए migration tool की योजना है, लेकिन Conduit support भी अलग से जोड़ना होगा।
      दोनों में से किसी में कितना समय लगेगा, यह नहीं पता।
      मुझे सिर्फ Synapse -> Dendrite migration tracking issue मिला।
      https://github.com/matrix-org/dendrite/issues/1705
  • संबंधित लेख: Conduit Beta – Matrix chat server - https://news.ycombinator.com/item?id=28385840 - सितंबर 2021, 69 comments

  • जब XMPP मौजूद है तो Matrix क्यों इस्तेमाल करें, कोई समझा सकता है?

    • मेरा पहला विचार तो यह था कि सवाल उलटा होना चाहिए। मुझे समझ नहीं आता कि XMPP क्यों इस्तेमाल करना चाहिए, इसलिए Matrix की अच्छी बातें बताता हूँ
      यह Slack और Discord में लोगों द्वारा अपेक्षित features वाला एक modern chat solution है, और इसमें कई bridges हैं ताकि अलग-अलग protocols के लिए कई chat clients इस्तेमाल न करने पड़ें
      इसमें कई शानदार communities हैं, voice chat भी काफी अच्छा है, यह open source है और self-host किया जा सकता है। XMPP में क्या अच्छा है, यह जानने की उत्सुकता है
    • Matrix, Git के जरिए chat करने जैसा है; यह distributed database इस्तेमाल करता है और Mattermost या Zulip जैसे team messenger जैसा ज़्यादा है
      XMPP संरचनात्मक रूप से email के करीब है, जिसमें online status, typing, last seen जैसे options जुड़े होते हैं, और WhatsApp जैसी बड़ी messenger services भी अक्सर इसके अपने variants इस्तेमाल करती हैं
      XMPP एकमात्र ऐसा system है जिसे email इस्तेमाल होने वाली किसी भी जगह इस्तेमाल किया जा सकता है और करना ठीक है। यह Matrix जितना ही modern है, बस data storage और distribution को लेकर सोच अलग है
      तुलना: https://www.freie-messenger.de/en/systemvergleich/xmpp-matri...
    • यह summary आज भी सही है: https://news.ycombinator.com/item?id=8998290
      XMPP अपने design purpose के लिए बेहतरीन है, लेकिन mobile, high packet loss और high-latency connections के लिए ठीक नहीं बैठता। यह बहुत verbose है और bandwidth ज़्यादा खाता है, इसलिए data और battery सीमित environments के लिए अच्छा नहीं है, और मूल रूप से इस reality को भी ध्यान में नहीं रखता था कि एक व्यक्ति कई devices इस्तेमाल करता है
      File transfer भी लंबे समय तक अच्छा नहीं था, और clients तथा network types के हिसाब से incompatible तरीकों का मिश्रण रहा
      बहुत ज़्यादा XEPs होना भी ecosystem की मदद नहीं करता। optional extensions बहुत ज़्यादा हों तो interoperability घटती है। modern chat में अपेक्षित features XMPP के design scope से आगे निकल गए, और XEPs ने इसे patch करने की कोशिश की, लेकिन नतीजे मिले-जुले रहे
      design के समय यह स्वाभाविक technical choice था, लेकिन अब बेहतर विकल्प भी बहुत हैं। developers आम तौर पर ऐसी technology चुनते हैं जो काम को ज्यादा enjoyable बनाए, इसलिए नए platforms की तरफ ज़्यादा काम हो रहा है। उदाहरण के लिए आज ही एक दूसरे HN लेख में भी बताया गया कि generic XML parser पर्याप्त नहीं हो सकता और बहुत advanced XML parser की ज़रूरत पड़ सकती है: https://news.ycombinator.com/item?id=36930196
    • XMPP में एक lowest common denominator है, और काफी core functionality optional XEP के तहत आती है। इसलिए client और server के हिसाब से user experience बहुत inconsistent हो जाता है
      Matrix में important feature set ज़्यादा स्पष्ट है, इसलिए compatible client हो तो उम्मीद की जा सकती है कि implementation बिना surprises के uniform होगा
    • Matrix, messages भेजने के तरीके से ज़्यादा state sync service जैसा है
      जब आप किसी दूसरे Matrix server के room में जाते हैं, तो आपका server उस server की copy maintain करना शुरू कर देता है, और आप उसे अपनी पसंद के तरीके से इस्तेमाल कर सकते हैं। अगर मैं अपना server एक दिन के लिए बंद करके फिर चालू करूँ, तो यह फिर sync हो जाता है
      XMPP ऐसे काम करता है या नहीं, पता नहीं, लेकिन मैं हमेशा इसे email की तरह messages भेजने और थोड़ा retry करने भर जैसा मानता था। server-to-server में current state, read receipts, typing notifications जैसी transient information कैसे काम करती है, यह भी मुझे ठीक से नहीं पता
  • Conduit एक बहुत शानदार project है, लेकिन सभी commits और issues न पढ़ें तो status और progress follow करना मुश्किल लगता है
    हाल में built-in Sliding Sync feature में हुई progress उम्मीद जगाती है, क्योंकि इससे deployment बहुत आसान हो जाएगा

  • Matrix में कभी-कभी last message तब तक decrypt नहीं होता जब तक नया last message न भेजा जाए, या आसपास के messages decrypt हो जाते हैं लेकिन कोई एक message ही decryption fail क्यों होता है—क्या किसी को वजह पता है?

    • मेरी समझ अभी पूरी नहीं है, लेकिन सभी messages एक ही key से encrypted नहीं होते
      अगर मेरे सभी clients एक साथ connected नहीं हैं और sender के साथ भी ऐसा ही है, तो वे आपस में keys exchange नहीं कर सकते। तब हर client केवल उन messages का कुछ हिस्सा decrypt कर सकता है जिनकी key उसके पास है। इसके अलावा clients केवल दूसरे verified clients के साथ ही keys exchange करते हैं
      message JSON के raw source में session_id property देखें, तो पता चलता है कि किसी specific session—यानी sender के एक client में logged in रहने के दौरान भेजे गए messages—या तो सभी decrypt होते हैं या बिल्कुल नहीं होते। पहला मतलब कि आपके पास उस session की key है, और दूसरा मतलब कि वह अभी मिली नहीं है
  • हो सकता है मैंने कुछ मिस किया हो, लेकिन पेज बहुत ज़्यादा साधारण है और ऐसा लगता है कि यह मानकर चलता है कि आपको पहले से पता है कि Matrix क्या है और इसे कैसे इस्तेमाल करना है
    अलग-अलग तरीकों से installation पर काफी समय दिया गया है, लेकिन server के खुद के usage जैसे client इस्तेमाल करने की बात नहीं दिखती

    • पेज का पहला link matrix.org पर जाता है, और matrix.org पर client links हैं: https://matrix.org/ecosystem/clients/
      शायद Element इस्तेमाल कर लेना चाहिए
      मुझे लगता है Conduit पेज सही कर रहा है। यह इतना नहीं मानता कि आपको पता है Matrix क्या है, बल्कि ज़्यादा यह मानता है कि अगर नहीं पता तो link पर click करने जितनी समझ है
    • अगर आप Matrix.org से परिचित हैं तो landing page काफी अच्छा है। लगता है यह Matrix developers को target कर रहा है
      निजी तौर पर मुझे यह पसंद आया कि यह छोटा है, जिस problem को solve करने की कोशिश कर रहा है वह साफ दिखती है, और असली call to action यानी Git repository link जल्दी मिल जाता है
      यह भी हो सकता है कि मूल पोस्ट के बाद landing page खुद नए content से update हो गया हो
    • क्या link बदल गया है?
      Matrix सुरक्षित और decentralized communication के लिए एक open network है। हर Matrix homeserver के users किसी भी दूसरे Matrix server के users से chat कर सकते हैं। Discord community जैसे Matrix के बाहर के users से भी bridges के जरिए communicate कर सकते हैं
      और installation information नहीं दिखती
    • Matrix एक chat protocol है। यह कुछ-कुछ Git से chat करने जैसा काम करता है और distributed database इस्तेमाल करता है, और Mattermost या Zulip जैसे team messengers के ज्यादा करीब है
      Conduit server software है, end-user app नहीं
      Matrix पर और जानकारी: https://www.freie-messenger.de/en/matrix
  • उत्सुकता है कि Conduit का Synapse से क्या संबंध है
    Dendrite को https://github.com/matrix-org/sytest से test किया जाता है और “क्या यह अभी भी Synapse है?” जैसे issues भी हैं, लेकिन Conduit में इससे जुड़ी चर्चा नहीं मिली। Synapse जैसा न बनना क्यों चाहते हैं, इस पर भी कोई चर्चा नहीं दिखती

    • Conduit, Rust में Matrix server specification का third-party implementation है। Synapse और Dendrite दोनों official implementations हैं, और Dendrite मूल रूप से Synapse को replace करने के उद्देश्य से शुरू हुआ था
      इसके फायदे के तौर पर इसे lightweight और install करने में आसान बताया जाता है, जिससे यह संकेत मिलता है कि Synapse ऐसा नहीं है। इससे भी महत्वपूर्ण बात यह है कि यह Matrix server specification के लिए validation case बना, और कई वर्षों तक अस्पष्ट हिस्सों को स्पष्ट करने में इसने काफी योगदान दिया
    • SyTest को मुख्यतः Synapse के साथ इस्तेमाल के लिए tuned किया गया है, और लगता है Dendrite की तरफ इसे अपने continuous integration से जोड़ने के लिए wrapping work किया जा रहा है
      Conduit भी उस काम का कुछ हिस्सा reuse कर सकता है, लेकिन जहाँ तक याद है Conduit GitLab इस्तेमाल करता है और Dendrite GitHub Actions इस्तेमाल करता है
      अलग से, फिलहाल Conduit शायद Synapse का drop-in replacement बनने का लक्ष्य नहीं रखता। Matrix room में आखिरी बार जब देखा था, तब भी कई noticeable feature gaps थे