- Conduit là một máy chủ mã nguồn mở nhẹ triển khai đặc tả Matrix, tập trung vào việc thiết lập homeserver tự host chỉ trong vài phút
- Dự án hiện vẫn ở giai đoạn beta, nên đã có thể sử dụng nhưng vẫn còn thiếu một số tính năng nhỏ
- Matrix là một mạng mở dành cho giao tiếp bảo mật và phân tán, cho phép người dùng trên các homeserver khác nhau trò chuyện với nhau
- Về vận hành, nó sử dụng cấu trúc một tệp nhị phân duy nhất và cơ sở dữ liệu tích hợp, với cơ sở dữ liệu mặc định là RocksDB
- Vì hướng tới việc nhẹ hơn và dễ cài đặt hơn Synapse, đây là lựa chọn đáng cân nhắc nếu bạn cần một máy chủ chat tự host với yêu cầu hệ thống thấp
Vai trò của Conduit và Matrix
- Conduit là một máy chủ mã nguồn mở nhẹ triển khai Matrix Specification
- Trạng thái hiện tại là beta
- Đã có thể sử dụng
- Một số tính năng nhỏ hiện vẫn chưa có
- Matrix là một mạng mở cho giao tiếp an toàn và phân tán
- Mọi người dùng trên homeserver Matrix đều có thể trò chuyện với người dùng của các máy chủ Matrix khác
- Nếu dùng bridge, cũng có thể giao tiếp với người dùng bên ngoài Matrix như các cộng đồng Discord
Đặc điểm cài đặt và vận hành
- Mục tiêu là cấu hình dễ dàng và yêu cầu hệ thống thấp, cho phép tạo cấu hình Conduit riêng chỉ trong vài phút
- Máy chủ sử dụng cấu trúc một tệp nhị phân duy nhất và cơ sở dữ liệu tích hợp
- Cơ sở dữ liệu mặc định là RocksDB
- Trong một số trường hợp, nó có thể nhanh hơn các cách triển khai máy chủ khác
Liên kết liên quan và tài trợ
-
Liên kết dự án
- Website: https://conduit.rs
- Git and Documentation: https://gitlab.com/famedly/conduit
- Chat: #conduit:ahimsa.chat
-
Thông tin tài trợ và vận hành
- Liberapay: https://liberapay.com/timokoesters/
- Bitcoin:
bc1qnnykf986tw49ur7wx9rpw2tevpsztvar5x8w4n - Máy chủ
conduit.rsđược Matrix.org Foundation cung cấp dịch vụ hosting - Conduit nhận tài trợ từ https://manualsbrain.com/ vào năm 2023
- Năm 2021, dự án nhận tài trợ 6 tháng từ German BMBF, với mã FKZ là
01lS21S11
1 bình luận
Ý kiến trên Hacker News
Tôi đã vận hành một instance Conduit tự host trong vài năm nay; ưu điểm là dễ cài đặt và sử dụng, còn nhược điểm là nó vẫn là phần mềm beta
Dù vậy với tôi thì khá tốt, tôi đã dùng ổn định để chat với vài người bạn và trong một số phòng hơi lớn mà tôi tham gia
Tác giả cũng làm Veloren, một dự án Rust thú vị khác: https://veloren.net
Tôi vào lobby chơi khoảng 30 phút thì phát hiện ra có thể tiếp tục zoom out khỏi nhân vật bằng con lăn. Nó vượt xa mức của một game action RPG thông thường, kiểu như lên đến tỷ lệ minimap rồi bay lên trên cả mây mà không tụt frame, cảm giác khá ảo giác
Không biết hiện dự án được duy trì tốt đến đâu, nhưng có vẻ đã có đủ bộ khung để trở thành một RPG mạnh
Trong thời gian dài nó thiếu hỗ trợ Spaces, nhưng vừa được đưa vào bản development build và rất tuyệt. Tôi cũng đã cập nhật dịch vụ của mình và nó hoạt động đúng như mong đợi
Giá mà có một sub-protocol chỉ dành cho chat bảo mật thì tốt
Người dùng trên server của tôi chỉ có mình tôi và tôi không tham gia phòng nào quá sôi động, nhưng đến nay tác động lên hiệu năng của VPS nhỏ là không đáng kể
Xin chào, tôi là Timo, người đã bắt đầu dự án Conduit vài năm trước. Nếu có câu hỏi gì thì cứ thoải mái hỏi
Tôi thắc mắc liệu sau khi bạn học xong đại học thì có lo ngại gì về tương lai của dự án không. Cho đến nay Timo có vẻ là contributor hoạt động áp đảo, nên tôi lo rằng dự án vẫn phụ thuộc rất nhiều vào lượng thời gian bạn có thể dành cho nó
Tôi cũng muốn biết một lập trình viên Rust/Linux nên bắt đầu từ đâu để có đóng góp đầu tiên có ý nghĩa cho Conduit. Trên GitLab có 155 issue đang mở, và từ góc nhìn người dùng thì không có vấn đề nào thật sự nổi bật, nên tôi không biết bắt đầu từ đâu
Nếu Dortmund hoặc làm từ xa không phải yêu cầu bắt buộc thì cứ liên hệ nhé, chúc bạn kiếm được một công việc tốt
Tôi cũng muốn biết liệu Conduit có kế hoạch trở thành P2P trong tương lai gần không
https://github.com/matrix-org/pinecone
https://archive.fosdem.org/2022/schedule/event/matrix_p2p_pi...
Tôi cũng có cảm nhận riêng khi viết bot, nhưng đặc biệt tò mò góc nhìn của một maintainer triển khai homeserver
Không rõ mục tiêu là một Matrix server đầy đủ tính năng, hay nhắm đến một tập con cụ thể về quy mô hoặc tính năng
Điều tôi không thích ở Matrix là tôi vận hành một server chỉ có 3–4 người dùng, vậy mà sau vài tháng database phình lên khoảng 80GB
Tổng nội dung và văn bản do người dùng tải lên chỉ khoảng 2–3GB. Tôi muốn biết có cách nào xóa cache dữ liệu nhận từ các server cũ, chẳng hạn sau 2 tuần, rồi khi cần thì tải lại không
https://matrix-org.github.io/synapse/v1.85/admin_api/media_a...
Server của tôi không federate nhưng khá sôi động, và tôi xem nó như một không gian tạm thời. Tôi đã cấu hình để cả text lẫn media cũ hơn 1–2 tuần đều được tự động thu hồi
https://levans.fr/shrink-synapse-database.html
https://github.com/matrix-org/rust-synapse-compress-state
Nhiều MUC mặc định chỉ có 20 tin nhắn gần nhất, thường đủ để nắm được mạch trò chuyện và tham gia. Chi phí vận hành server của tôi cũng khá rẻ
Tôi muốn biết có cách nào migrate từ Synapse sang Conduit không. Rất khó biện minh cho việc mất 6 năm lịch sử trò chuyện
Dù theo hướng nào thì cũng không biết sẽ mất bao lâu
Thứ tôi tìm được chỉ là issue theo dõi việc migrate Synapse -> Dendrite
https://github.com/matrix-org/dendrite/issues/1705
Bài liên quan: Conduit Beta – Matrix chat server - https://news.ycombinator.com/item?id=28385840 - Tháng 9 năm 2021, 69 bình luận
Đã có XMPP rồi, vậy ai có thể giải thích vì sao nên dùng Matrix không?
Đây là một giải pháp chat hiện đại có các tính năng mà mọi người kỳ vọng từ Slack và Discord, và có nhiều bridge giúp không cần dùng nhiều client chat cho nhiều giao thức khác nhau
Có nhiều cộng đồng tuyệt vời, chat thoại cũng khá tốt, là mã nguồn mở và có thể tự host. Tôi tò mò XMPP có điểm gì hay
XMPP về mặt cấu trúc gần với email hơn, có các tùy chọn như trạng thái online, đang nhập, lần truy cập cuối; các dịch vụ nhắn tin lớn như WhatsApp cũng thường dùng biến thể riêng của nó
XMPP là hệ thống duy nhất có thể dùng và được phép dùng ở bất cứ nơi nào có email. Nó hiện đại ngang Matrix, chỉ khác ở cách nghĩ về lưu trữ và phân tán dữ liệu
So sánh: https://www.freie-messenger.de/en/systemvergleich/xmpp-matri...
XMPP rất tuyệt cho mục đích thiết kế ban đầu, nhưng không phù hợp lắm với mobile, môi trường mất gói cao và kết nối có độ trễ lớn. Nó nhiều lời và dùng nhiều băng thông, nên không tốt trong môi trường bị giới hạn dữ liệu và pin; thực tế một người dùng nhiều thiết bị ban đầu cũng không được tính đến
Truyền file trong thời gian dài cũng không tốt, và tùy theo client cũng như dạng mạng mà có một mớ cách thức không tương thích với nhau
Việc có quá nhiều XEP cũng không giúp ích cho hệ sinh thái. Quá nhiều phần mở rộng tùy chọn sẽ làm giảm khả năng tương tác. Các tính năng được kỳ vọng trong chat hiện đại đã vượt quá phạm vi thiết kế của XMPP, và XEP đã cố vá điều này nhưng kết quả không đồng đều
Vào thời điểm thiết kế, đó là lựa chọn công nghệ tự nhiên, nhưng giờ có nhiều lựa chọn tốt hơn. Developer thường chọn công nghệ khiến công việc thú vị hơn, nên có nhiều hoạt động diễn ra hơn ở các nền tảng mới. Ví dụ, một bài HN khác hôm nay cũng đề cập rằng parser XML thông thường có thể không đủ, nên cần parser XML rất cao cấp: https://news.ycombinator.com/item?id=36930196
Matrix có tập tính năng quan trọng rõ ràng hơn, nên với client tương thích, có thể kỳ vọng chúng được triển khai đồng đều mà không có bất ngờ
Khi bạn vào một phòng trên server Matrix khác, server của bạn bắt đầu duy trì một bản sao của server đó, và bạn có thể dùng nó theo cách mình muốn. Dù bạn tắt server của mình một ngày rồi bật lại, nó cũng sẽ đồng bộ lại
Tôi không biết XMPP có hoạt động như vậy không, nhưng tôi luôn nghĩ nó giống email: gửi tin nhắn và thử lại vài lần. Tôi cũng không rõ các thông tin nhất thời như trạng thái hiện tại, xác nhận đã đọc, thông báo đang nhập hoạt động thế nào giữa các server
Conduit là một dự án rất tuyệt, nhưng nếu không đọc mọi commit và issue thì có vẻ khó theo dõi trạng thái và tiến độ
Việc tính năng Sliding Sync tích hợp gần đây có tiến triển là điều đáng kỳ vọng, vì nó sẽ khiến việc triển khai dễ hơn nhiều
Có ai biết nguyên nhân vì sao trong Matrix đôi khi tin nhắn cuối cùng không được giải mã cho đến khi có tin nhắn cuối mới được gửi, hoặc các tin nhắn xung quanh thì được nhưng chỉ một tin nhắn đơn lẻ bị giải mã thất bại không?
Nếu tất cả client của tôi không kết nối cùng lúc, và người gửi cũng vậy, thì hai bên không thể trao đổi khóa với nhau. Khi đó mỗi client chỉ có thể giải mã một phần các tin nhắn mà nó có khóa. Ngoài ra, client chỉ trao đổi khóa với các client khác đã được xác minh
Nếu nhìn vào thuộc tính
session_idtrong JSON gốc của tin nhắn, bạn có thể thấy các tin nhắn thuộc một session cụ thể, tức là trong thời gian người gửi đăng nhập trên một client, hoặc đều được giải mã, hoặc hoàn toàn không được giải mã. Trường hợp trước nghĩa là bạn có khóa của session đó, còn trường hợp sau nghĩa là bạn vẫn chưa nhận được khóaCó thể tôi đã bỏ sót điều gì đó, nhưng trang này quá đơn giản và có vẻ giả định rằng người đọc đã biết Matrix là gì và cách dùng nó
Trang dành khá nhiều thời gian cho nhiều cách cài đặt, nhưng không thấy phần hướng dẫn sử dụng chính server, chẳng hạn như dùng client
Có lẽ dùng Element là được
Tôi nghĩ trang Conduit đang làm đúng. Không hẳn là giả định bạn biết Matrix là gì, mà gần hơn là giả định bạn có đủ khả năng hiểu để bấm vào liên kết nếu chưa biết
Cá nhân tôi thích vì nó ngắn gọn, nêu rõ vấn đề muốn giải quyết, và nhanh chóng đưa ra lời kêu gọi hành động thực tế là liên kết tới kho Git
Cũng có thể chính landing page đã được cập nhật nội dung mới sau bài viết gốc
Matrix là một mạng mở cho giao tiếp an toàn và phi tập trung. Người dùng của mọi homeserver Matrix có thể trò chuyện với người dùng trên mọi server Matrix khác. Thông qua bridge, họ cũng có thể giao tiếp với người dùng bên ngoài Matrix, chẳng hạn như cộng đồng Discord
Và tôi không thấy thông tin cài đặt đâu cả
Conduit là phần mềm server, không phải ứng dụng dành cho người dùng cuối
Thông tin thêm về Matrix: https://www.freie-messenger.de/en/matrix
Tôi tò mò Conduit có quan hệ thế nào với Synapse
Dendrite được kiểm thử bằng https://github.com/matrix-org/sytest và còn có các issue kiểu như “vẫn là Synapse à?”, nhưng tôi không tìm thấy thảo luận liên quan trong Conduit. Thậm chí cũng không thấy thảo luận nào về lý do họ không muốn trở thành như Synapse
Điểm mạnh mà Conduit nêu ra là nhẹ và dễ cài đặt, điều này ngụ ý rằng Synapse thì không như vậy. Quan trọng hơn, nó đã trở thành một trường hợp kiểm chứng cho đặc tả server Matrix và trong nhiều năm đã đóng góp khá nhiều vào việc làm rõ các phần còn mơ hồ
Conduit cũng có thể tái sử dụng một phần công việc đó, nhưng theo tôi nhớ thì Conduit dùng GitLab còn Dendrite dùng GitHub Actions
Riêng chuyện khác, hiện tại Conduit có vẻ không nhắm tới việc trở thành bản thay thế drop-in cho Synapse. Lần cuối tôi xem trong phòng Matrix, vẫn còn nhiều khoảng trống tính năng đáng chú ý