Dendrite, một máy chủ giao tiếp với việc triển khai giao thức Ma trận

Dendrite là một máy chủ truyền thông đó là được phát triển bởi nhóm Matrix và nó được định vị như một triển khai của thế hệ thứ hai của các thành phần máy chủ Ma trận.

Không giống như máy chủ tham chiếu Synapse được viết bằng Python, mã Dendrite được phát triển bằng Go. Cả hai bản triển khai chính thức đều được phân phối theo giấy phép Apache 2.0.

Là một phần của dự án Ruma, một phiên bản riêng của máy chủ Matrix đang được phát triển bằng ngôn ngữ Rust, được phân phối theo giấy phép MIT.

Máy chủ mới nhằm đạt được hiệu quả, độ tin cậy và khả năng mở rộng cao.

Về Dendrite

Dendrite dẫn trước Synapse về hiệu suất, nó đòi hỏi ít bộ nhớ hơn để hoạt động và có thể mở rộng quy mô bằng cách cân bằng tải trên nhiều nút.

Kiến trúc Dendrite hỗ trợ chia tỷ lệ theo chiều ngang và dựa vào phân tách trình điều khiển dưới dạng microservices, trong đó mỗi phiên bản của một microservice có các bảng riêng trong cơ sở dữ liệu.

Bộ cân bằng tải chịu trách nhiệm gửi các cuộc gọi đến microservices. Các luồng (quy trình thực hiện) được sử dụng để song song hóa các hoạt động trong mã, cho phép sử dụng tài nguyên của tất cả các lõi CPU mà không cần chia chúng thành các quy trình riêng biệt.

Dendrite hỗ trợ làm việc ở hai chế độ: nguyên khối và đa thành phần (polylith).

  • Ở chế độ nguyên khối, Tất cả các microservices đều được liên kết trong một tệp thực thi, chạy trong một quy trình và tương tác trực tiếp với nhau.
  • Ở chế độ nhiều thành phần (cluster), các microservices có thể được khởi chạy riêng biệt, ngay cả với sự đa dạng trên các nút khác nhau. Tương tác thành phần trong chế độ đa thành phần được thực hiện bằng cách sử dụng API HTTP nội bộ và nền tảng Apache Kafka.

Việc phát triển được thực hiện dựa trên các thông số kỹ thuật của giao thức Matrix và sử dụng hai bộ kiểm tra: các bài kiểm tra đồng bộ chung với Synapse và bộ bổ sung mới.

Ở giai đoạn phát triển hiện tại, Dendrite đã vượt qua thành công 56% bài kiểm tra API máy khách-máy chủ và 77% kiểm tra API liên kết, trong khi phạm vi chức năng thực tế được ước tính là 70% đối với API máy khách-máy chủ và 95% đối với API liên kết.

Giai đoạn beta chỉ ra rằng Dendrite đã sẵn sàng để triển khai ban đầu và quá trình chuyển đổi sang phát triển với các bản phát hành mới thường xuyên. Giữa các bản phát hành, giản đồ lưu trữ cơ sở dữ liệu sẽ được cập nhật (không giống như cài đặt các phần từ kho lưu trữ, sau khi cập nhật, nội dung của cơ sở dữ liệu sẽ không bị mất).

Các thay đổi phá vỡ khả năng tương thích ngược, thay đổi cấu trúc cơ sở dữ liệu hoặc yêu cầu thay đổi cấu hình sẽ chỉ được cung cấp trong các bản phát hành chính.

Hiện tại, bạn nên sử dụng Dendrite ở chế độ nguyên khối cùng với PostgreSQL DBMS để tạo các máy chủ nhỏ tại nhà và các nút P2P. Việc sử dụng SQLite chưa được khuyến nghị do các vấn đề chưa được giải quyết khi xử lý các hoạt động đồng thời.

Các tính năng chưa được triển khai trong Dendrite bao gồm: xác nhận tin nhắn, dấu trang, thông báo đẩy, OpenID, liên kết email, tìm kiếm phía máy chủ, thư mục người dùng, danh sách người dùng bỏ qua, tạo nhóm và cộng đồng, đánh giá sự hiện diện trực tuyến của người dùng , đầu vào của khách, tương tác với mạng của bên thứ ba.

Chức năng cơ bản cho hoạt động của phòng trò chuyện (tạo, lời mời, quy tắc xác thực), phương tiện liên kết những người tham gia trong phòng, đồng bộ hóa các sự kiện sau khi trở về từ ngoại tuyến, tài khoản, hồ sơ, chỉ báo quay số, tải xuống và tải lên Các tệp chỉnh sửa (Media API) có sẵn để sử dụng thông báo, ACL, gắn thẻ và thiết bị mã hóa end-to-end và danh sách khóa.

Hãy nhớ rằng nền tảng để tổ chức Ma trận truyền thông phi tập trung sử dụng HTTPS + JSON như một phương tiện vận chuyển với khả năng sử dụng WebSockets hoặc một giao thức dựa trên CoAP + Noise. Hệ thống được hình thành như một cộng đồng các máy chủ có thể tương tác với nhau và được kết hợp trong một mạng phi tập trung chung.

Thông báo được sao chép trên tất cả các máy chủ mà những người tham gia nhắn tin được kết nối. Thông báo được truyền giữa các máy chủ theo cách tương tự như cách các cam kết được truyền giữa các kho lưu trữ Git.

Fuente: https://matrix.org

 


Nội dung bài viết tuân thủ các nguyên tắc của chúng tôi về đạo đức biên tập. Để báo lỗi, hãy nhấp vào đây.

Hãy là người đầu tiên nhận xét

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.