El almacenamiento descentralizado de LF se ha transferido a una licencia abierta

LF 1.1.0, un almacén de datos clave/valor replicado y descentralizado, ya está disponible. El proyecto está siendo desarrollado por ZeroTier, que está desarrollando un conmutador Ethernet virtual que permite combinar hosts y máquinas virtuales ubicadas en diferentes proveedores en una red local virtual, cuyos participantes intercambian datos en modo P2P. El código del proyecto está escrito en lenguaje C. La nueva versión destaca por su transición a la licencia gratuita MPL 2.0 (Licencia pública de Mozilla).

Anteriormente, el código LF estaba disponible bajo una BSL (Licencia de fuente comercial), que no es gratuita debido a la discriminación contra ciertas categorías de usuarios. La licencia BSL fue propuesta por los cofundadores de MySQL como alternativa al modelo Open Core. La esencia de BSL es que el código de funcionalidad avanzada está inicialmente disponible para su modificación, pero durante algún tiempo puede usarse de forma gratuita solo si se cumplen condiciones adicionales, que requieren la compra de una licencia comercial para poder eludirlo.

LF es un sistema completamente descentralizado y le permite implementar un único almacén de datos en un formato clave-valor sobre una cantidad arbitraria de nodos. Los datos se mantienen sincronizados en todos los nodos y todos los cambios se replican completamente en todos los nodos. Todos los nodos de LF son iguales entre sí. La ausencia de nodos separados que coordinen el funcionamiento del almacenamiento le permite deshacerse de un único punto de falla, y la presencia de una copia completa de los datos en cada nodo elimina la pérdida de información cuando los nodos individuales fallan o se desconectan.

Para conectar un nuevo nodo a la red, no es necesario obtener permisos separados: cualquiera puede iniciar su propio nodo. El modelo de datos de LF se basa en un gráfico acíclico dirigido (DAG), que simplifica la sincronización y permite una variedad de estrategias de seguridad y resolución de conflictos. A diferencia de los sistemas de tabla hash distribuida (DHT), la arquitectura IF está diseñada inicialmente para su uso en redes no confiables donde no se garantiza la disponibilidad constante de los nodos. Entre las áreas de aplicación de LF se menciona la creación de sistemas de almacenamiento con mayor capacidad de supervivencia, en los que se almacenan volúmenes relativamente pequeños de datos críticos que rara vez cambian. Por ejemplo, LF es adecuado para almacenes de claves, certificados, parámetros de identidad, archivos de configuración, hashes y nombres de dominio.

Para protegerse contra sobrecargas y abusos, se aplica un límite en la intensidad de las operaciones de escritura en el almacenamiento compartido, implementado sobre la base de la prueba de trabajo: para poder guardar datos, un participante en la red de almacenamiento debe completar un cierto tarea, que se verifica fácilmente, pero requiere grandes recursos al calcular (similar a organizar la expansión de sistemas basados ​​​​en blockchain y CRDT). Los valores calculados también se utilizan como signo a la hora de resolver conflictos.

Como alternativa, se puede lanzar una autoridad certificadora en la red para emitir certificados criptográficos a los participantes, dando derecho a agregar registros sin confirmación de trabajo y dando prioridad en la resolución de conflictos. De forma predeterminada, el almacenamiento está disponible sin restricciones para conectar a cualquier participante, pero opcionalmente, basándose en un sistema de certificación, se pueden crear almacenamientos privados vallados, en los que sólo los nodos certificados por el propietario de la red pueden convertirse en participantes.

Características principales de LF:

  • Fácil de implementar su propio almacenamiento y conectarse a redes de almacenamiento públicas existentes.
  • No existe un punto único de falla y es posible involucrar a todos en el mantenimiento del almacenamiento.
  • Acceso de alta velocidad a todos los datos y capacidad de acceder a los datos que quedan en su nodo, incluso después de una interrupción en la conectividad de la red.
  • Un modelo de seguridad universal que permite combinar varios mecanismos de resolución de conflictos (heurística local, peso basado en el trabajo completado, teniendo en cuenta el nivel de confianza de otros nodos, certificados).
  • Una API flexible para consultar datos que permite especificar múltiples claves anidadas o rangos de valores. Capacidad para vincular múltiples valores a una clave.
  • Todos los datos se almacenan en forma cifrada, incluidas las claves, y se verifican. El sistema se puede utilizar para organizar el almacenamiento de datos confidenciales en nodos no confiables. Los registros cuyas claves se desconocen no se pueden determinar por fuerza bruta (sin conocer la clave, es imposible obtener los datos asociados a ella).

Las limitaciones incluyen centrarse en almacenar datos pequeños que rara vez cambian, la ausencia de bloqueos y la coherencia de los datos garantizada, altos requisitos de CPU, memoria, espacio en disco y ancho de banda, y un aumento constante en el tamaño de almacenamiento a lo largo del tiempo.

Fuente: opennet.ru

Añadir un comentario