发布 Dendrite 0.1.0,一个实现 Matrix 协议的通信服务器

发表 矩阵服务器版本 枝晶0.1.0,这标志着开发过渡到 Beta 测试阶段。 Dendrite由去中心化通信平台Matrix的核心开发团队开发,定位为第二代Matrix服务器组件的实现。 与参考服务器不同 突触,用Python编写,代码Dendrite 发展 在 Go 语言中。 两种官方实现均根据 Apache 2.0 许可证获得许可。 在项目边界内 鲁马 Rust 语言的 Matrix 服务器版本正在单独开发,该版本 分发者 在麻省理工学院的许可下。

新服务器旨在实现高效率、可靠性和可扩展性。 Dendrite 的性能优于 Synapse,运行所需的内存显着减少,并且可以通过跨多个节点的负载平衡进行扩展。 Dendrite 架构支持水平扩展,并基于微服务形式的处理程序分离,其中每个微服务实例在数据库中都有自己的表。 负载均衡器将调用分派给微服务。 为了并行化代码中的操作,使用了线程(go 例程),它允许您使用所有 CPU 核心的资源,而无需将它们划分为单独的进程。

发布 Dendrite 0.1.0,一个实现 Matrix 协议的通信服务器

Dendrite 支持两种模式:单片模式和多片模式。 在单体模式下,所有微服务都打包在单个可执行文件中,在单个进程中执行,并直接相互交互。 在多组件(集群)模式下,微服务可以单独启动,包括分布在不同节点上。 中组件的交互
多组件模式是使用内部HTTP API和平台进行的 阿帕奇卡夫卡.

开发是基于 Matrix 协议规范并使用两个测试套件进行的 - Synapse 通用的测试 系统测试 和一套新的 补充。 在当前的开发阶段,Dendrite 通过了 56% 的客户端-服务器 API 测试和 77% 的联邦 API 测试,而实际功能覆盖率预计客户端-服务器 API 为 70%,联邦 API 为 95%。

Beta 测试阶段表明 Dendrite 已准备好进行初始实施并过渡到开发,并定期形成新版本。 在版本之间,数据库中的数据存储方案现在将被更新(与从存储库安装切片不同,更新后数据库的内容不会丢失)。 破坏向后兼容性、更改数据库结构或需要更改配置的更改将仅在主要版本中提供。 目前建议将 Dendrite 以整体模式与 PostgreSQL DBMS 结合使用,以创建小型家庭服务器和 P2P 节点。 由于处理并发操作的问题尚未解决,因此尚不建议使用 SQLite。

Dendrite 中尚未实现的功能包括消息接收确认、已读标记、推送通知、OpenID、电子邮件绑定、服务器端搜索、用户目录、用户忽略列表、创建组和社区、评估用户在线状态、访客输入、与第三方网络的交互。

可供使用的有聊天室的基本功能(创建、邀请、身份验证规则)、房间中参与者的联合方式、离线返回后的事件同步、帐户、个人资料、拨号指示、下载和上传文件(媒体 API)、编辑消息、ACL、标签绑定以及使用设备和密钥列表进行端到端加密。

让我们回想一下,组织去中心化通信的平台 Matrix 使用 HTTPS+JSON 作为传输,能够使用 WebSockets 或基于 行动计划+噪声。 该系统形成为一个服务器社区,这些服务器可以相互交互并联合成一个公共的去中心化网络。 消息在消息传递参与者连接的所有服务器之间复制。 消息在服务器之间传播的方式与提交在 Git 存储库之间传播的方式相同。 如果服务器暂时中断,消息不会丢失,而是在服务器恢复运行后传输给用户。 支持各种用户 ID 选项,包括电子邮件、电话号码、Facebook 帐户等。

整个网络不存在单点故障或消息控制。 讨论中涉及的所有服务器都是平等的。
任何用户都可以运行自己的服务器并将其连接到公共网络。 可以创建 网关 用于Matrix与基于其他协议的系统的交互,例如, 准备好的 用于向 IRC、Facebook、Telegram、Skype、Hangouts、电子邮件、WhatsApp 和 Slack 双向发送消息的服务。 除了即时短信和聊天之外,该系统还可以用于传输文件、发送通知、
组织电话会议、进行语音和视频通话。 它还支持输入通知、用户在线状态评估、阅读确认、推送通知、服务器端搜索、历史记录和客户端状态同步等高级功能。

来源: opennet.ru

添加评论