Faz pouco o nascimento de um novo projeto foi anunciado que está desenvolvendo um aplicativo para criar chats P2P descentralizados, cujos participantes interagem diretamente uns com os outros sem acessar servidores centralizados.
O nome deste projeto é conversa fiada e o programa é projetado como uma aplicação web rodando em um navegador, o código é escrito em TypeScript e distribuído sob a licença GPLv2.
Sobre o bate-papo
conversa fiada é uma ferramenta de comunicação de código aberto, que foi projetado com segurança e privacidade em mente.
Alguns serviços são necessários para estabelecer uma conexão ponto a ponto, mas o aplicativo é baseado na comunicação direta ponto a ponto tanto como seja possível. Os serviços usados pelo aplicativo não estão associados ao projeto Chitchatter e estão disponíveis publicamente para todos.
Aplicação permite gerar um id de bate-papo exclusivo que pode ser compartilhado com outros participantes para começar a conversar. Qualquer servidor público que suporte o protocolo WebTorrent pode ser usado para negociar uma conexão de bate-papo.
Uma vez que a conexão é negociada, canais de comunicação criptografados diretos são criados conectando os usuários usando a tecnologia WebRTC, que fornece meios prontos para acessar nós operando atrás de tradutores de endereços (NATs) e ignorando firewalls corporativos usando os protocolos STUN e TURN.
Chitchatter é um aplicativo de comunicação totalmente do lado do cliente. Ele usa servidores WebTorrent e STUN/TURN externos de propósito geral para a comunicação necessária, mas não há servidor de API Chitchatter.
Recursos internos que se destacam no repositório do projeto, são mencionados:
- Código totalmente aberto (licenciado sob GPL v2)
- P2p
- Sempre que possível, caso contrário, o Open Relay é usado para garantir uma conexão ponto a ponto confiável
- Criptografia (via WebRTC)
- Não requer um servidor
- Servidores WebTorrent públicos são usados apenas para handshake inicial ponto a ponto
- Efêmero
- O conteúdo da mensagem nunca é preservado no disco
descentralizado - Não há servidor de API. Tudo o que é necessário para o Chitchatter funcionar é a disponibilidade do GitHub para ativos estáticos e servidores de retransmissão públicos WebTorrent e STUN/TURN para comunicação ponto a ponto.
- auto-hospedável
- Sem análise, rastreamento ou telemetria.
- O Chitchatter começou com o aplicativo Create React. A magia das redes seguras não seria possível sem o Trystero.
Cabe mencionar que o conteúdo da conversa não é salvo no disco e é perdido após o fechamento do aplicativo. Ao conversar, você pode usar a marcação Markdown e incorporar arquivos de mídia.
Os planos futuros incluem bate-papos protegidos por senha, chamadas de voz e vídeo, compartilhamento de arquivos, prompts de digitação e a capacidade de visualizar as mensagens postadas antes de um novo membro entrar no bate-papo.
Quanto aos interessados em poder testar ou conhecer este projeto, podem experimentar a demo oferecida no link a seguir
Hospede seu próprio bate-papo do Chitchatter
Para aqueles que estão interessados em poder auto-hospedar o projeto, eles devem seguir as instruções compartilhadas abaixo. A primeira coisa é obter o código-fonte, que você pode fazer de o seguinte link.
Supondo que você pretenda hospedar o Chitchatter nas páginas do GitHub, você deve alterar o arquivo propriedade em package.json para qualquer URL a partir do qual a instância do Chitchatter está hospedada. Isso será algo como https://github_user_or_org_name.github.io/chitchatter/.
Depois disso, uma chave secreta de ação do GitHub deve ser definida (em https://github.com/github_user_or_org_name/chitchatter/settings/secrets/actions).
E com isso, quando ele está hospedado nas páginas do GitHub e a configuração acima foi feita, o ambiente de produção é atualizado.
Quanto à configuração de tempo de execução, você pode fazer isso nos arquivos de configuração que estão em /src/config e aqui você pode modificar a configuração do matchmaking e do servidor de retransmissão.
Por fim, se você tiver interesse em saber mais sobre o assunto, pode consultar os detalhes no link a seguir.