LF, un almacenamiento descentralizado de datos replicados
LF es un almacenamiento descentralizado de datos replicados en formato de clave/valor que está siendo desarrollado por ZeroTier, que desarrolla un conmutador Ethernet virtual que permite combinar hosts y máquinas virtuales ubicadas en diferentes proveedores en una red de área local virtual, cuyos participantes intercambian datos en modo P2P.
Anteriormente, el código LF estaba disponible bajo la licencia BSL (Business Source License), 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 una alternativa al modelo Open Core. La esencia de BSL es que el código para la funcionalidad extendida está inicialmente disponible para su modificación, pero durante algún tiempo se puede usar sin cargo solo si se cumplen condiciones adicionales, para omitir lo que requiere la compra de una licencia comercial.
LF es un sistema completamente descentralizado y permite implementar un único almacén de datos en formato de valor clave en un número arbitrario de nodos. Todos los nodos mantienen los datos sincronizados y todos los cambios se replican por completo en todos los nodos, ademas de que todos los nodos de LF son iguales. La ausencia de nodos separados que coordinen el trabajo del almacenamiento permite deshacerse de un solo punto de falla y la presencia de una copia completa de los datos en cada nodo elimina la pérdida de información en caso de falla o apagado del individuo.
Para conectar un nuevo nodo a la red, no se necesitan obtener permisos por separado; cualquiera puede iniciar su propio nodo. El modelo de datos LF se basa en un gráfico acíclico dirigido(DAG) que simplifica la sincronización y permite diferentes estrategias de seguridad y resolución de conflictos.
A diferencia de los sistemas basados en tablas hash distribuidas (DHT), la arquitectura IF se diseñó originalmente para su uso en redes poco fiables, donde no se garantiza la disponibilidad constante de nodos. Las aplicaciones de LF incluyen la creación de los sistemas de almacenamiento más resistentes que almacenan cantidades relativamente pequeñas de datos de misión crítica que rara vez cambian. Por ejemplo, LF es adecuado para almacenes de claves, certificados, credenciales, archivos de configuración, hashes y nombres de dominio.
Para protegerse contra la sobrecarga y el abuso, se aplica una limitación de la intensidad de las operaciones de escritura al almacenamiento compartido, implementada sobre la base de una prueba de trabajo (prueba de trabajo), para poder guardar datos, un miembro del almacenamiento La red debe realizar una determinada tarea, que se verifica fácilmente, pero requiere grandes recursos computacionales (similar a organizar la expansión de sistemas basados en blockchain y CRDT ). Los valores calculados también se utilizan como indicador para la resolución de conflictos.
Alternativamente, se puede lanzar una autoridad de certificación en la red para emitir certificados criptográficos a los participantes que dan derecho a agregar entradas sin confirmación del trabajo y dan prioridad en la resolución de conflictos. De forma predeterminada, el almacenamiento está disponible sin restricciones para conectar a los participantes, pero opcionalmente, según el sistema de certificados, se pueden crear almacenamientos privados cercados, en los que solo los nodos certificados por el propietario de la red pueden convertirse en participantes.
De las principales características de LF se destacan las siguientes:
- Facilidad para implementar su almacenamiento y conectarse a redes de almacenamiento público existentes.
- La ausencia de un solo punto de falla y la capacidad de involucrar a todos en el mantenimiento de la tienda.
- Alta velocidad de acceso a todos los datos y la capacidad de acceder a los datos que quedan en su nodo, incluso después de una falla en la conectividad de la red.
- Un modelo de seguridad universal que permite combinar varios mecanismos de resolución de conflictos (heurística local, ponderación en función del trabajo realizado, teniendo en cuenta el nivel de confianza de otros nodos, certificados).
- API flexible para consultar datos, lo que permite especificar varias claves anidadas o rangos de valores. Posibilidad de vincular varios valores a una clave.
- Todos los datos se almacenan cifrados, incluidas las claves, y se verifican. El sistema se puede utilizar para organizar el almacenamiento de datos confidenciales en nodos que no son de confianza. Los registros, cuyas claves no se conocen, no se pueden determinar por el método de fuerza bruta (sin conocer la clave, es imposible obtener los datos asociados con ella).
- Entre las limitaciones, el enfoque está en almacenar datos pequeños que rara vez cambian, la ausencia de bloqueos y consistencia de datos garantizada, altos requisitos de CPU, memoria, espacio en disco y ancho de banda, y un aumento constante en el tamaño del almacenamiento a lo largo del tiempo.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.