Lançamento do Dendrite 0.1.0, servidor de comunicação com implementação do protocolo Matrix.

Publicado lançamento do servidor Matrix Dendrite 0.1.0, que marca a transição do desenvolvimento para a fase de testes beta. O Dendrite é desenvolvido pela equipe principal da plataforma de comunicação descentralizada Matrix e é posicionado como a implementação de segunda geração dos componentes de servidor Matrix. Ao contrário do servidor padrão Synapse, escrito na linguagem Python, o código do Dendrite está em desenvolvimento é escrito em Go. Ambas as implementações oficiais são distribuídas sob a licença Apache 2.0. No âmbito do projeto Ruma desenvolve-se separadamente uma versão do servidor Matrix em Rust, que é distribuído sob a licença MIT.

O novo servidor tem como objetivo alcançar alta eficiência, confiabilidade e escalabilidade. O Dendrite supera o Synapse em desempenho, requer significativamente menos memória para funcionar e pode escalar por meio de balanceamento de carga em vários nós. A arquitetura do Dendrite suporta escalabilidade horizontal e se baseia na separação de manipuladores na forma de microsserviços, onde cada instância de microsserviço possui suas próprias tabelas no banco de dados. A distribuição das chamadas aos microsserviços é gerenciada pelo balanceador de carga. Para paralelizar as operações no código, são usadas goroutines, permitindo utilizar os recursos de todos os núcleos da CPU sem separação em processos distintos.

Lançamento do Dendrite 0.1.0, servidor de comunicação com implementação do protocolo Matrix.

O Dendrite suporta operação em dois modos — monolítico e multifuncional (polylith). No modo monolítico, todos os microsserviços estão combinados em um único arquivo executável, são executados em um único processo e interagem diretamente entre si. No modo multifuncional (em cluster), os microsserviços podem ser executados separadamente, inclusive distribuídos em diferentes nós. A interação dos componentes no
modo multifuncional é realizada através de uma API HTTP interna e da plataforma Apache Kafka.

O desenvolvimento é baseado nas especificações do protocolo Matrix e utiliza dois conjuntos de testes — conjuntos compartilhados com os testes do Synapse sytest e um novo conjunto Complement. Neste estágio atual de desenvolvimento, o Dendrite passa com sucesso 56% dos testes da API Cliente-Servidor e 77% dos testes da API de Federação, enquanto a cobertura funcional real é estimada em 70% para a API Cliente-Servidor e 95% para a API de Federação.

A fase de beta-teste indica que o Dendrite está pronto para implementação inicial e para a transição para o desenvolvimento com lançamento periódico de novas versões. Agora, entre os lançamentos, haverá uma atualização do esquema de armazenamento de dados no banco de dados (diferente da instalação de cortes do repositório, após a atualização, o conteúdo do banco não será perdido). As alterações que rompem a compatibilidade retroativa, mudam a estrutura do banco de dados ou requerem ajustes na configuração serão propostas apenas em lançamentos significativos. O Dendrite é atualmente recomendado para uso em modo monolítico em conjunto com o banco de dados PostgreSQL para criar pequenos servidores iniciais (homeserver) e nós P2P. O uso do SQLite ainda não é recomendado devido a problemas não resolvidos com o processamento de operações simultâneas.

Entre as funcionalidades ainda não implementadas no Dendrite, destacam-se confirmações de recebimento de mensagens, indicadores de leitura, notificações push, OpenID, vinculação a e-mail, busca do lado do servidor, catálogo de usuários, listas de usuários ignorados, criação de grupos e comunidades, avaliação da presença do usuário online, entradas de convidados, interação com redes externas.

Estão disponíveis funcionalidades básicas para o funcionamento de salas de chat (criação, convites, regras de autenticação), meios de federação de participantes nas salas, sincronização de eventos após retorno do offline, contas, perfis, indicação de digitação, upload e entrega de arquivos (Media API), edição de mensagens, ACL, vinculação de tags e gerenciamento de listas de dispositivos e chaves para criptografia de ponta a ponta.

Lembramos que a plataforma para a organização de comunicações descentralizadas Matrix utiliza HTTPS+JSON como transporte, com a possibilidade de usar WebSockets ou um protocolo baseado em CoAP+Noise. O sistema é formado como uma aliança de servidores que podem interagir entre si e se unem em uma rede descentralizada. As mensagens são replicadas por todos os servidores aos quais os participantes da troca de mensagens estão conectados. As mensagens se espalham entre os servidores de maneira semelhante a como os commits se espalham entre repositórios Git. Em caso de desligamento temporário de um servidor, as mensagens não são perdidas, sendo transmitidas aos usuários após a reinicialização do servidor. Vários tipos de identificadores de usuário são suportados, incluindo e-mail, número de telefone, conta no Facebook, etc.

Na rede, não há um único ponto de falha ou controle sobre as mensagens. Todos os servidores envolvidos na discussão são tratados como iguais.
Qualquer usuário pode iniciar seu próprio servidor e conectá-lo à rede comum. É possível criar portas de ligação para integrar o Matrix com sistemas baseados em outros protocolos, por exemplo, foram preparados serviços para envio bidirecional de mensagens no IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp e Slack. Além da troca instantânea de mensagens de texto e organização de chats, o sistema pode ser utilizado para a transferência de arquivos, envio de notificações,
organização de teleconferências, realização de chamadas de voz e vídeo. Também são suportadas funcionalidades avançadas como notificação de digitação, avaliação da presença do usuário online, confirmação de leitura, notificações push, busca do lado do servidor, sincronização de histórico e estado dos clientes.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster