O armazenamento LF descentralizado foi transferido para uma licença aberta

LF 1.1.0, um armazenamento de dados chave/valor descentralizado e replicado, já está disponível. O projeto está sendo desenvolvido pela ZeroTier, que está desenvolvendo um switch Ethernet virtual que permite combinar hosts e máquinas virtuais localizadas em diferentes provedores em uma rede local virtual, cujos participantes trocam dados em modo P2P. O código do projeto é escrito em linguagem C. A nova versão se destaca por sua transição para a licença gratuita MPL 2.0 (Mozilla Public License).

Anteriormente, o código LF estava disponível sob a BSL (Business Source License), que não é gratuita devido à discriminação contra certas categorias de usuários. A licença BSL foi proposta pelos cofundadores do MySQL como uma alternativa ao modelo Open Core. A essência do BSL é que o código de funcionalidade avançada está inicialmente disponível para modificação, mas por algum tempo só pode ser usado gratuitamente se forem atendidas condições adicionais, que exigem a compra de uma licença comercial para contornar.

LF é um sistema completamente descentralizado e permite implantar um único armazenamento de dados em um formato de valor-chave sobre um número arbitrário de nós. Os dados são mantidos sincronizados em todos os nós e todas as alterações são totalmente replicadas em todos os nós. Todos os nós em LF são iguais entre si. A ausência de nós separados que coordenam a operação do armazenamento permite eliminar um único ponto de falha, e a presença de uma cópia completa dos dados em cada nó elimina a perda de informações quando nós individuais falham ou são desconectados.

Para conectar um novo nó à rede, você não precisa obter permissões separadas - qualquer pessoa pode iniciar seu próprio nó. O modelo de dados do LF é construído em torno de um gráfico acíclico direcionado (DAG), que simplifica a sincronização e permite uma variedade de estratégias de resolução de conflitos e segurança. Ao contrário dos sistemas de tabela hash distribuída (DHT), a arquitetura IF é inicialmente projetada para uso em redes não confiáveis ​​onde a disponibilidade constante dos nós não é garantida. As áreas de aplicação do LF são a criação de sistemas de armazenamento altamente duráveis ​​que armazenam volumes relativamente pequenos de dados críticos que raramente mudam. Por exemplo, LF é adequado para armazenamentos de chaves, certificados, parâmetros de identidade, arquivos de configuração, hashes e nomes de domínio.

Para proteção contra sobrecarga e abuso, é aplicado um limite na intensidade das operações de gravação no armazenamento compartilhado, implementado com base na prova de trabalho - para poder salvar dados, um participante da rede de armazenamento deve completar um determinado tarefa, que é facilmente verificada, mas requer grandes recursos computacionais (semelhante à organização da expansão de sistemas baseados em blockchain e CRDT). Os valores calculados também são utilizados como sinalização na resolução de conflitos.

Alternativamente, uma autoridade certificadora pode ser lançada na rede para emitir certificados criptográficos aos participantes, dando o direito de adicionar registros sem confirmação de trabalho e dando prioridade na resolução de conflitos. Por padrão, o armazenamento está disponível sem restrições para conectar quaisquer participantes, mas opcionalmente, com base em um sistema de certificados, podem ser criados armazenamentos privados isolados, nos quais apenas nós certificados pelo proprietário da rede podem se tornar participantes.

Principais características do LF:

  • Fácil de implantar seu próprio armazenamento e conectar-se a redes de armazenamento público existentes.
  • Não existe um ponto único de falha e a capacidade de envolver todos na manutenção do armazenamento.
  • Acesso de alta velocidade a todos os dados e capacidade de acessar os dados restantes em seu nó, mesmo após uma interrupção na conectividade da rede.
  • Um modelo de segurança universal que permite combinar vários mecanismos de resolução de conflitos (heurísticas locais, peso baseado no trabalho concluído, tendo em conta o nível de confiança de outros nós, certificados).
  • Uma API flexível para consultar dados que permite a especificação de várias chaves aninhadas ou intervalos de valores. Capacidade de vincular vários valores a uma chave.
  • Todos os dados são armazenados de forma criptografada, incluindo chaves, e verificados. O sistema pode ser usado para organizar o armazenamento de dados confidenciais em nós não confiáveis. Os registos cujas chaves não são conhecidas não podem ser determinados por força bruta (sem conhecer a chave é impossível obter os dados a ela associados).

As limitações incluem o foco no armazenamento de dados pequenos e que raramente mudam, a ausência de bloqueios e consistência garantida dos dados, altos requisitos de CPU, memória, espaço em disco e largura de banda e um aumento constante no tamanho do armazenamento ao longo do tempo.

Fonte: opennet.ru

Adicionar um comentário