- Conduit é um servidor open source leve que implementa a especificação Matrix, com foco em permitir configurar seu próprio homeserver em poucos minutos
- O projeto ainda está em beta, então já pode ser usado, mas ainda faltam alguns recursos menores
- Matrix é uma rede aberta para comunicação segura e distribuída, e usuários de homeservers diferentes podem conversar entre si
- Do ponto de vista operacional, usa uma estrutura de binário único com banco de dados embutido, e utiliza RocksDB como banco de dados padrão
- Como busca ser uma alternativa mais leve e mais fácil de instalar que o Synapse, vale considerar se você precisa de um servidor de chat próprio com baixos requisitos de sistema
O papel do Conduit e do Matrix
- Conduit é um servidor open source leve que implementa a Matrix Specification
- O estado atual é beta
- Já pode ser usado
- Alguns recursos menores ainda não estão disponíveis
- Matrix é uma rede aberta para comunicação segura e distribuída
- Qualquer usuário de um homeserver Matrix pode conversar com usuários de outros servidores Matrix
- Com bridges, também é possível se comunicar com usuários fora do Matrix, como comunidades no Discord
Características de instalação e operação
- O objetivo é facilitar a configuração e reduzir os requisitos de sistema, permitindo criar sua própria instalação do Conduit em poucos minutos
- O servidor usa uma estrutura de binário único com banco de dados embutido
- O banco de dados padrão é o RocksDB
- Em alguns casos, pode ser mais rápido que outras implementações de servidor
Links relacionados e apoio
-
Links do projeto
- Website: https://conduit.rs
- Git and Documentation: https://gitlab.com/famedly/conduit
- Chat: #conduit:ahimsa.chat
-
Apoio e informações operacionais
- Liberapay: https://liberapay.com/timokoesters/
- Bitcoin:
bc1qnnykf986tw49ur7wx9rpw2tevpsztvar5x8w4n - A hospedagem do servidor
conduit.rsé fornecida pela Matrix.org Foundation - O Conduit recebeu patrocínio da https://manualsbrain.com/ em 2023
- Em 2021, recebeu um patrocínio de 6 meses do BMBF da Alemanha, com FKZ
01lS21S11
1 comentários
Opiniões do Hacker News
Venho rodando uma instância auto-hospedada do Conduit há alguns anos; o ponto positivo é que é fácil de instalar e usar, e o negativo é que ainda é um software beta
Mesmo assim, tem sido muito bom para mim; tenho usado bem para conversas estáveis com alguns amigos e também em algumas salas um pouco maiores das quais participo
O autor também trabalha em outro projeto interessante em Rust, o Veloren: https://veloren.net
Entrei no lobby e joguei por uns 30 minutos, até perceber que dava para continuar dando zoom out com a roda do mouse a partir do personagem. Ia além do nível de um RPG de ação comum, passando para uma escala de minimapa e subindo acima das nuvens sem queda de frames; foi uma sensação bem alucinógena
Não sei quão bem o projeto é mantido hoje, mas parece ter uma estrutura mais que suficiente para se tornar um RPG robusto
Por muito tempo faltou suporte a Spaces, mas ele acabou de entrar nos builds de desenvolvimento e está excelente. Já atualizei meu serviço e está funcionando como esperado
Seria bom ter um subprotocolo voltado apenas a chat seguro
Sou o único usuário do meu servidor e não entrei em salas muito ativas, mas até agora o impacto no desempenho de um VPS pequeno é desprezível
Olá, sou o Timo, comecei o projeto Conduit há alguns anos. Fiquem à vontade para fazer perguntas
Tenho curiosidade se há alguma preocupação com o futuro do projeto depois que você terminar a universidade. Até agora, o Timo parece ser de longe o contribuidor mais ativo, então fico receoso de que o projeto ainda dependa muito do tempo que você consegue dedicar
Também queria saber por onde um desenvolvedor Rust/Linux deveria começar para fazer uma primeira contribuição significativa ao Conduit. Há 155 issues abertas no GitLab e, do ponto de vista de usuário, não tenho nenhum problema óbvio que salte aos olhos, então não sei por onde começar
Se Dortmund ou trabalho remoto não forem requisitos obrigatórios, pode entrar em contato; espero que consiga um bom emprego
Também queria saber se há planos de tornar o Conduit P2P no futuro próximo
https://github.com/matrix-org/pinecone
https://archive.fosdem.org/2022/schedule/event/matrix_p2p_pi...
Tenho minhas próprias impressões depois de escrever bots, mas tenho especial curiosidade pela perspectiva de um mantenedor de implementação de homeserver
Não está claro se o objetivo é ser um servidor Matrix com todos os recursos ou mirar um subconjunto específico em escala ou funcionalidades
O que não gostei no Matrix foi que eu administrava um servidor com 3 ou 4 usuários e, em alguns meses, o banco de dados cresceu para cerca de 80 GB
Mesmo somando o conteúdo enviado pelos usuários e o texto, dava algo em torno de 2 a 3 GB. Gostaria de saber se há uma forma de apagar o cache de dados recebidos de servidores antigos, por exemplo a partir de 2 semanas de idade, e buscá-los novamente se necessário
https://matrix-org.github.io/synapse/v1.85/admin_api/media_a...
Meu servidor não é federado, mas é bem ativo, e eu o trato como um espaço temporário. Configurei para que tanto texto quanto mídia com mais de 1 ou 2 semanas sejam coletados automaticamente
https://levans.fr/shrink-synapse-database.html
https://github.com/matrix-org/rust-synapse-compress-state
Muitos MUCs usam como padrão as 20 mensagens mais recentes, o que normalmente basta para entender o fluxo da conversa e entrar nela. O custo para operar meu servidor também era bem baixo
Gostaria de saber se há uma forma de fazer migração do Synapse para o Conduit. É difícil justificar jogar fora 6 anos de histórico de conversas
De qualquer forma, não dá para saber quanto tempo isso levaria
O que encontrei foi apenas a issue de acompanhamento da migração Synapse -> Dendrite
https://github.com/matrix-org/dendrite/issues/1705
Post relacionado: Conduit Beta – Matrix chat server - https://news.ycombinator.com/item?id=28385840 - setembro de 2021, 69 comentários
Alguém consegue explicar por que usar Matrix se já existe XMPP?
É uma solução moderna de chat com os recursos que as pessoas esperam do Slack e do Discord, e tem muitas bridges que evitam a necessidade de usar vários clientes de chat para vários protocolos
Há muitas comunidades excelentes, o chat de voz também é bem bom, é open source e pode ser auto-hospedado. Fico curioso para saber o que há de bom no XMPP
XMPP, estruturalmente, é mais parecido com e-mail, com opções como status online, digitando e último acesso, e grandes serviços de mensageria como o WhatsApp também costumam usar variantes próprias dele
XMPP é o único sistema que pode ser usado, e que faz sentido usar, em qualquer lugar onde se use e-mail. Ele é tão moderno quanto o Matrix; apenas pensa de forma diferente sobre armazenamento e distribuição de dados
Comparação: https://www.freie-messenger.de/en/systemvergleich/xmpp-matri...
XMPP é excelente para o objetivo para o qual foi projetado, mas não se encaixa bem em mobile, alta perda de pacotes e conexões de alta latência. É verboso e consome muita largura de banda, então não é bom para ambientes com dados e bateria limitados, e originalmente também não levou em conta a realidade de uma pessoa usar vários dispositivos
A transferência de arquivos também foi ruim por muito tempo, e havia uma mistura de métodos incompatíveis dependendo dos clientes e da topologia da rede
O excesso de XEPs também não ajuda o ecossistema. Quando há extensões opcionais demais, a interoperabilidade cai. Os recursos esperados em um chat moderno ultrapassaram o escopo para o qual o XMPP foi projetado, e as XEPs tentaram remendar isso, mas o resultado foi desigual
Na época do projeto, era uma escolha tecnológica natural, mas hoje há muitas opções melhores. Desenvolvedores tendem a escolher tecnologias que tornam o trabalho mais agradável, então há mais movimento nas plataformas novas. Por exemplo, outro post no HN hoje também tratou do fato de que um parser XML comum pode não ser suficiente, sendo necessário um parser XML bem avançado: https://news.ycombinator.com/item?id=36930196
No Matrix, o conjunto de funcionalidades importantes é mais claro, então dá para esperar que um cliente compatível as implemente de forma uniforme, sem surpresas
Quando você entra em uma sala de outro servidor Matrix, seu servidor começa a manter uma cópia daquele servidor, e você pode usá-la do jeito que quiser. Mesmo que você desligue seu servidor por um dia e depois ligue de novo, ele sincroniza novamente
Não sei se o XMPP funciona assim, mas sempre pensei nele como algo que envia mensagens como e-mail e faz algumas tentativas de reenvio. Também não sei bem como informações transitórias, como estado atual, confirmação de leitura e indicação de digitação, funcionam entre servidores
O Conduit é um projeto muito legal, mas parece difícil acompanhar seu estado e andamento sem ler todos os commits e issues
O progresso recente no recurso embutido de Sliding Sync é promissor, porque facilita muito a implantação
Alguém sabe o que faz com que, no Matrix, às vezes a última mensagem não seja descriptografada até que uma nova última mensagem seja enviada, ou que as mensagens ao redor funcionem, mas uma única mensagem tenha falha de descriptografia?
Se todos os meus clientes não estiverem conectados ao mesmo tempo, e o remetente também não estiver, eles não conseguem trocar chaves entre si. Então cada cliente só consegue descriptografar parte das mensagens para as quais possui a chave. Além disso, os clientes só trocam chaves com outros clientes verificados
Observando a propriedade
session_idno JSON original da mensagem, dá para ver que todas as mensagens de uma sessão específica — ou seja, enquanto o remetente estava logado em um cliente — são todas descriptografadas ou nenhuma é descriptografada. O primeiro caso significa que você tem a chave daquela sessão; o segundo, que ainda não a recebeuPosso ter deixado passar alguma coisa, mas a página é simples demais e parece presumir que você já sabe o que é Matrix e como usar isso
Ela dedica bastante tempo a várias formas de instalação, mas não vejo instruções de uso do servidor em si, como usar clientes
Provavelmente é só usar o Element
Acho que a página do Conduit está fazendo o certo. Não é tanto presumir que você sabe o que é Matrix, mas sim presumir que, se não souber, tem discernimento suficiente para clicar no link
Pessoalmente, gostei por ser curta, deixar claro de forma simples o problema que tenta resolver e mostrar rapidamente o link do repositório Git, que é a chamada real para ação
Talvez a própria landing page tenha sido atualizada com conteúdo novo depois do post original
Matrix é uma rede aberta para comunicação segura e descentralizada. Usuários de qualquer homeserver Matrix podem conversar com usuários de qualquer outro servidor Matrix. Também podem se comunicar, por meio de bridges, com usuários fora do Matrix, como comunidades do Discord
E não vejo informações de instalação
Conduit é um software de servidor, não um app para usuário final
Mais informações sobre Matrix: https://www.freie-messenger.de/en/matrix
Fiquei curioso sobre qual é a relação do Conduit com o Synapse
O Dendrite é testado com https://github.com/matrix-org/sytest e há até issues do tipo “já é Synapse?”, mas não encontrei discussões relacionadas no Conduit. Nem mesmo vejo discussões sobre por que ele não quer se tornar como o Synapse
Os pontos fortes que ele destaca são ser leve e fácil de instalar, o que implica que o Synapse não é assim. Mais importante, ele serviu como caso de validação da especificação de servidores Matrix e, ao longo dos anos, contribuiu bastante para esclarecer partes ambíguas
O Conduit talvez pudesse reutilizar parte desse trabalho, mas, se me lembro bem, o Conduit usa GitLab e o Dendrite usa GitHub Actions
Separadamente, por enquanto o Conduit não parece mirar ser um substituto drop-in do Synapse. Da última vez que vi nas salas Matrix, ainda havia várias lacunas de recursos perceptíveis