nueva versión del sistema de archivos descentralizado (InterPlanetary File System), que forma un almacenamiento global de archivos versionado, desplegado en forma de red P2P, compuesta por sistemas de participantes. IPFS combina ideas previamente implementadas en sistemas como Git, BitTorrent, Kademlia, SFS y Web, y se asemeja a un único 'enjambre' de BitTorrent (los peer que participan en el intercambio), intercambiando objetos de Git. Para acceder al sistema de archivos global, IPFS puede utilizar el protocolo HTTP o montarse como un sistema de archivos virtual /ipfs usando el módulo FUSE. El código de la implementación de referencia está escrito en Go y bajo las licencias Apache 2.0 y MIT. Adicionalmente hay una implementación del protocolo IPFS en JavaScript, que puede funcionar en el navegador.
Una característica clave IPNSMFS DNSLink ).
se utiliza una tabla hash distribuida ( DHT).
En esencia, se puede considerar IPFS como una reencarnación distribuida de la web con direccionamiento basado en contenido en lugar de en la ubicación y nombres arbitrarios. Además del almacenamiento de archivos y el intercambio de datos, IPFS puede usarse como base para crear nuevos servicios, por ejemplo, para organizar el funcionamiento de sitios que no dependen de servidores o para crear aplicaciones distribuidas. .
IPFS ayuda a resolver problemas como la fiabilidad del almacenamiento (si el almacenamiento original se interrumpe, el archivo se puede descargar de sistemas de otros usuarios), la resistencia a la censura del contenido (para bloquearlo, se necesitaría bloquear todos los sistemas de usuarios que tienen una copia de los datos) y la organización del acceso en ausencia de una conexión directa a Internet o cuando la calidad del canal de comunicación es mala (se pueden descargar datos a través de los participantes más cercanos en la red local).
En la versión se ha mejorado significativamente el rendimiento y la fiabilidad. La red pública basada en IPFS ha superado los 100,000 nodos, y los cambios en IPFS 0.5 reflejan la adaptación del protocolo para funcionar en tales condiciones. Las optimizaciones se han centrado principalmente en mejorar los mecanismos de enrutamiento de contenido, responsables de la búsqueda, el anuncio y la recuperación de datos, así como en aumentar la eficiencia de implementación (DHT), que proporciona información sobre los nodos que tienen los datos solicitados. El código relacionado con el DHT ha sido prácticamente reescrito, lo que ha acelerado significativamente las operaciones de búsqueda de contenido y la determinación de las entradas de IPNS.
En particular, la velocidad de las operaciones de adición de datos se ha duplicado, el anuncio de nuevo contenido en la red ha aumentado en 2.5 veces,
la recuperación de datos de 2 a 5 veces, y la búsqueda de contenido de 2 a 6 veces.
Los mecanismos de enrutamiento y envío de anuncios rediseñados han permitido acelerar el funcionamiento de la red de 2 a 3 veces mediante un uso más eficiente del ancho de banda y la transmisión de tráfico en segundo plano. En la próxima versión, se planea implementar un transporte basado en el protocolo QUIC, lo que permitirá lograr un aumento aún mayor en el rendimiento gracias a la reducción de latencias.
Se ha acelerado el funcionamiento y aumentado la fiabilidad del sistema IPNS (Inter-Planetary Name System), utilizado para crear enlaces permanentes a contenido en constante cambio. Un nuevo transporte experimental pubsub ha permitido acelerar la entrega de registros IPNS de 30 a 40 veces en pruebas en una red con mil nodos (se ha desarrollado un simulador especial para los experimentos ). Aproximadamente se ha duplicado el rendimiento de la capa
Badger, utilizada para interactuar con el sistema de archivos del sistema operativo. Gracias al soporte de operaciones de escritura asíncrona, Badger ahora funciona 25 veces más rápido que la antigua capa flatfs. El aumento de rendimiento también ha afectado al mecanismo , utilizado para la transferencia de archivos entre nodos.
Entre las mejoras funcionales, se menciona la implementación de TLS para cifrar las conexiones entre clientes y servidores. Se ha añadido soporte para subdominios en el gateway HTTP: los desarrolladores pueden alojar aplicaciones descentralizadas (dapps) y contenido web en subdominios aislados que pueden usarse con direcciones hash, IPNS, DNSLink, ENS, etc. Se ha añadido un nuevo espacio de nombres /p2p, donde se han movido los datos relacionados con las direcciones de los pares (/ipfs/peer_id → /p2p/peer_id). Se ha añadido soporte para enlaces “.eth” basados en blockchain, lo que ampliará la aplicación de IPFS en aplicaciones distribuidas.
La startup Protocol Labs, que apoya el desarrollo de IPFS, también está desarrollando paralelamente el proyecto , que es una capa superior a IPFS. Si IPFS permite a los participantes almacenar, solicitar y transferir datos entre sí, Filecoin se desarrolla como una plataforma basada en blockchain para almacenamiento permanente. Filecoin permite a los usuarios que tienen espacio en disco no utilizado proporcionarlo a la red por una recompensa establecida, y a los usuarios que necesitan espacio de almacenamiento comprarlo. Si ya no se necesita el espacio, el usuario puede venderlo. Así se forma un mercado del espacio en almacenamiento, donde las transacciones se realizan en tokens , que se generan mediante minería.
Fuente: opennet.ru
