Phát hành Dendrite 0.1.0, một máy chủ truyền thông có triển khai giao thức Matrix

được phát hành Phát hành máy chủ ma trận Dendrite 0.1.0, đánh dấu sự chuyển đổi quá trình phát triển sang giai đoạn thử nghiệm beta. Dendrite đang được phát triển bởi nhóm phát triển cốt lõi của nền tảng truyền thông phi tập trung Matrix và được định vị là nơi triển khai thế hệ thứ hai của các thành phần máy chủ Matrix. Không giống như máy chủ tham chiếu Khớp thần kinh, viết bằng Python, mã Dendrite đang phát triển bằng ngôn ngữ Go. Cả hai triển khai chính thức đều được cấp phép theo giấy phép Apache 2.0. Trong ranh giới dự án Ruma Một phiên bản của máy chủ Matrix bằng ngôn ngữ Rust đang được phát triển riêng. phân phối bở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. Dendrite hoạt động tốt hơn Synapse, cần ít bộ nhớ hơn để hoạt động và có thể mở rộng quy mô thông qua cân bằng tải trên nhiều nút. Kiến trúc Dendrite hỗ trợ mở rộng theo chiều ngang và dựa trên sự phân tách các trình xử lý dưới dạng microservice, trong đó mỗi phiên bản microservice có các bảng riêng trong cơ sở dữ liệu. Bộ cân bằng tải sẽ gửi lệnh gọi đến các vi dịch vụ. Để song song hóa các hoạt động trong mã, các luồng (thói quen đi) được sử dụng, cho phép bạn 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 tiến trình riêng biệt.

Phát hành Dendrite 0.1.0, một máy chủ truyền thông có triển khai giao thức Matrix

Dendrite hỗ trợ hai chế độ: nguyên khối và đa khối. Ở chế độ nguyên khối, tất cả các vi dịch vụ được đóng gói trong một tệp thực thi duy nhất, được thực thi trong một quy trình duy nhất và tương tác trực tiếp với nhau. Ở chế độ nhiều thành phần (cụm), các dịch vụ vi mô có thể được khởi chạy riêng biệt, bao gồm cả việc phân phối trên các nút khác nhau. Tương tác của các thành phần trong
chế độ đa thành phần được thực hiện bằng cách sử dụng nền tảng và API HTTP nội bộ Kafka Apache.

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ộ thử nghiệm - các thử nghiệm chung cho Synapse hệ thống và một bộ mới Bổ sung. Ở giai đoạn phát triển hiện tại, Dendrite vượt qua 56% các bài kiểm tra API Máy khách-Máy chủ và 77% các bài kiểm tra API Liên kết, trong khi mức độ bao phủ chức năng thực tế ước tính là 70% đối với API Máy chủ-Máy khách và 95% đối với API Liên kết.

Giai đoạn thử nghiệm beta cho thấy Dendrite đã sẵn sàng cho giai đoạn triển khai ban đầu và chuyển sang giai đoạn phát triển với các bản phát hành mới được hình thành định kỳ. Giữa các bản phát hành, sơ đồ lưu trữ dữ liệu trong cơ sở dữ liệu sẽ được cập nhật (không giống như cài đặt các lát từ kho lưu trữ, nội dung của cơ sở dữ liệu sẽ không bị mất sau khi cập nhật). Những 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. Dendrite hiện được khuyến nghị sử dụng ở chế độ nguyên khối kết hợp với PostgreSQL DBMS để tạo các máy chủ gia đình nhỏ và các nút P2P. Việc sử dụng SQLite vẫn chưa được khuyến khích 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 nhận tin nhắn, dấu đọc, 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 bỏ qua của người dùng, 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, thông tin đầu vào của khách, tương tác với mạng của bên thứ ba.

Có sẵn để sử dụng là các chức năng cơ bản cho phòng trò chuyện (tạo, 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 tệp (API phương tiện), chỉnh sửa tin nhắn, ACL, liên kết thẻ và làm việc với danh sách thiết bị và khóa để mã hóa hai đầu.

Chúng ta hãy nhớ lại rằng nền tảng tổ chức truyền thông phi tập trung Matrix sử dụng HTTPS+JSON làm phương tiện truyền tải với khả năng sử dụng WebSockets hoặc giao thức dựa trên CoAP+Tiếng ồn. 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à hợp nhất thành một mạng lưới phi tập trung chung. Tin nhắn được sao chép trên tất cả các máy chủ mà người tham gia nhắn tin được kết nối. Thông báo được truyền đi khắp các máy chủ giống như cách mà các cam kết được truyền đi giữa các kho Git. Trong trường hợp máy chủ tạm thời ngừng hoạt động, tin nhắn không bị mất mà được truyền đến người dùng sau khi máy chủ hoạt động trở lại. Nhiều tùy chọn ID người dùng khác nhau được hỗ trợ, bao gồm email, số điện thoại, tài khoản Facebook, v.v.

Không có điểm lỗi hoặc kiểm soát tin nhắn nào trên mạng. Tất cả các máy chủ được thảo luận đều bình đẳng với nhau.
Bất kỳ người dùng nào cũng có thể chạy máy chủ của riêng mình và kết nối nó với một mạng chung. Có thể tạo ra cổng để tương tác giữa Ma trận với các hệ thống dựa trên các giao thức khác, ví dụ: chuẩn bị dịch vụ gửi tin nhắn hai chiều tới IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp và Slack. Ngoài nhắn tin văn bản và trò chuyện tức thì, hệ thống có thể được sử dụng để truyền tệp, gửi thông báo,
tổ chức hội nghị từ xa, thực hiện cuộc gọi thoại và video. Nó cũng hỗ trợ các tính năng nâng cao như thông báo gõ, đánh giá sự hiện diện trực tuyến của người dùng, xác nhận đọc, thông báo đẩy, tìm kiếm phía máy chủ, đồng bộ hóa lịch sử và trạng thái máy khách.

Nguồn: opennet.ru

Thêm một lời nhận xét