Foi lançado o sistema de sincronização automática de arquivos Syncthing 1.16, onde os dados sincronizados não são carregados em armazenamento em nuvem, mas são replicados diretamente entre os sistemas do usuário quando aparecem online ao mesmo tempo, utilizando o protocolo BEP (Block Exchange Protocol) desenvolvido pelo projeto. O código do Syncthing é escrito em Go e distribuído sob a licença MPL. Compilações prontas estão disponíveis para Linux, Android, Windows, macOS, FreeBSD, Dragonfly BSD, NetBSD, OpenBSD e Solaris.
Além de resolver problemas de sincronização de dados entre vários dispositivos de um único usuário, o Syncthing permite a criação de grandes redes descentralizadas para o armazenamento de dados compartilhados, que são distribuídos entre os sistemas dos participantes. Oferece ferramentas flexíveis de controle de acesso e criação de exceções para a sincronização. É possível definir hosts que apenas receberão dados, ou seja, a alteração de dados nesses hosts não será refletida nas instâncias de dados armazenadas em outros sistemas. Vários modos de versionamento de arquivos são suportados, nos quais as versões anteriores dos dados alterados são mantidas.
Durante a sincronização, o arquivo é logicamente dividido em blocos, que são partes indivisíveis na transmissão de dados entre os sistemas do usuário. Ao sincronizar com um novo dispositivo, se houver blocos idênticos em vários dispositivos, a cópia dos blocos é feita a partir de diferentes nós, semelhante ao funcionamento do sistema BitTorrent. Quanto mais dispositivos participam da sincronização, mais rápida será a replicação de novos dados devido à paralelização. Durante o processo de sincronização de arquivos alterados, apenas os blocos de dados modificados são transmitidos pela rede, enquanto a renomeação ou alteração de permissões sincroniza apenas os metadados.
Os canais de transmissão de dados são formados usando TLS, todos os nós se autenticam mutuamente por meio de certificados e identificadores de dispositivos, e o SHA-256 é usado para controle de integridade. Para identificar nós de sincronização na rede local, o protocolo UPnP pode ser utilizado, eliminando a necessidade de entrada manual. endereços IP dispositivos sincronizados. Para configurar o sistema e monitorar, há uma interface web embutida, um cliente CLI e o GUI Syncthing-GTK, que também fornece ferramentas para gerenciar nós de sincronização e repositórios. Para facilitar a busca de nós, o Syncthing desenvolve um servidor de coordenação para a descoberta de nós.
Na nova versão, foi implementado suporte experimental para criptografia de arquivos, permitindo o uso do Syncthing com servidores servidores não confiáveis, por exemplo, para sincronizar seus dados não apenas com seus dispositivos, mas também com servidores externos fora do controle do usuário. Além disso, a nova versão inclui uma caixa de diálogo para solicitar confirmação antes de cancelar alterações ou sobrescrever diretórios. Problemas de consumo excessivo de CPU nas caixas de diálogo com indicadores de progresso animados foram resolvidos. Em seguida, uma atualização 1.16.1 foi lançada, que corrigiu um problema no pacote para Debian.


Fonte: opennet.ru
