Dendrite,具有Matrix协议实现的通信服务器

Dendrite是一台通讯服务器 那是 由Matrix团队开发 它被定位为第二代Matrix服务器组件的实现。

与用Python编写的Synapse参考服务器不同,Dendrite代码是用Go开发的。 两种官方实现均根据Apache 2.0许可进行分发。

作为Ruma项目的一部分,正在以Rust语言开发单独版本的Matrix服务器,该服务器已获得MIT许可。

新服务器 旨在实现高效率,可靠性和可扩展性。

关于树突

树突 在性能方面领先于Synapse, 它需要更少的内存来运行,并且可以通过跨多个节点的负载平衡来扩展。

树突结构 支持水平扩展,并且基于微服务形式的控制器分离, 微服务的每个实例在数据库中都有自己的表。

负载平衡器负责将呼叫发送到微服务。 线程(执行例程)用于并行化代码中的操作,从而可以使用所有CPU内核的资源,而无需将其划分为单独的进程。

树突 支持两种模式的工作:整体和多组件 (多石)。

  • 在单片模式下, 所有微服务都链接到一个可执行文件中,在一个进程中运行,并且彼此直接交互。
  • 在多组件模式下 (集群),即使在不同节点上具有多样性,微服务也可以单独启动。 多组件模式下的组件交互是使用内部HTTP API和Apache Kafka平台进行的。

开发是根据Matrix协议的规范并使用两套测试进行的:Synapse的常规sytest测试和新的Complement套件。

在目前的开发阶段,Dendrite已成功通过了56%的测试 客户端服务器API的使用率和联邦API测试的77%,而客户端服务器API的实际功能覆盖率估计为联盟API的70%,实际功能覆盖率估计为95%。

Beta阶段表明Dendrite已准备好进行初始部署 并通过常规新版本过渡到开发。 在发行版之间,数据库存储架构现在将被更新(与从存储库中安装块不同,更新之后,数据库的内容将不会丢失)。

仅在主要版本中才会提供破坏向后兼容性,更改数据库结构或需要更改配置的更改。

目前, 建议与PostgreSQL DBMS一起在整体模式下使用Dendrite 创建小型家庭服务器和P2P节点。 由于无法处理并发操作,因此不建议使用SQLite。

尚未实现的功能 在树枝状 它们包括:消息确认,书签,推送通知,OpenID,电子邮件链接,服务器端搜索,用户目录,用户忽略列表,创建组和社区,评估用户的在线状态,访客输入,与第三方网络的交互。

聊天室操作的基本功能(创建,邀请,身份验证规则),会议室中的参与者的联盟,脱机返回后的事件同步,帐户,个人资料,拨号指示,编辑文件的下载和上传(媒体API)可用于使用消息,ACL,标签以及端到端加密设备和密钥列表。

回想一下, 用于组织分散通信矩阵的平台使用HTTPS + JSON 作为能够使用WebSocket或基于CoAP + Noise的协议的传输。 该系统由服务器社区组成,这些服务器社区可以彼此交互,并组合在一个公用的分散式网络中。

消息跨所有服务器复制 消息传递参与者所连接的对象。 消息在服务器之间传播的方式类似于在Git存储库之间传播提交的方式。

数据来源: https://matrix.org


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。