Neue Ausgabe des dezentralen Dateisystems (InterPlanetary File System), das einen globalen versionierten Dateispeicher bildet, der in Form eines P2P-Netzwerks aus den Systemen der Teilnehmer bereitgestellt wird. IPFS kombiniert Ideen, die zuvor in Systemen wie Git, BitTorrent, Kademlia, SFS und dem Web umgesetzt wurden, und ähnelt einem gemeinsamen „Schwarm“ von BitTorrent (Peers, die an der Verteilung teilnehmen), der Git-Objekte austauscht. Für den Zugang zum globalen FS kann IPFS das HTTP-Protokoll nutzen oder als virtuelles FS /ipfs mit Hilfe des FUSE-Moduls gemountet werden. Der Code der Referenzimplementierung ist in der Programmiersprache Go und unter den Lizenzen Apache 2.0 und MIT. Zusätzlich gibt es eine Implementierung des IPFS-Protokolls in JavaScript, die im Browser funktionieren kann.
Ein wesentliches von IPFS ist die adressierung nach Inhalt, bei der der Link zum Zugriff auf eine Datei direkt mit ihrem Inhalt verknüpft ist (einschließlich des kryptografischen Hashes des Inhalts). IPFS hat eine eingebaute Unterstützung für Versionierung. Die Adresse einer Datei kann nicht beliebig umbenannt werden, sie kann sich nur nach einer Änderung des Inhalts ändern. Ebenso ist es nicht möglich, eine Änderung an einer Datei vorzunehmen, ohne die Adresse zu ändern (die alte Version bleibt unter der bisherigen Adresse, während die neue über eine andere Adresse zugänglich wird, da sich der Hash des Inhalts der Datei ändern wird). Angesichts der Tatsache, dass sich die Dateikennung bei jeder Änderung ändert, werden Dienste bereitgestellt, die permanente Adressen für verschiedene Versionen der Datei verknüpfen, um nicht jedes Mal neue Links übermitteln zu müssen (), oder zur Verankerung eines Alias, ähnlich wie bei traditionellen FS und DNS ( (Mutable File System) und ).
Ähnlich wie bei BitTorrent werden die Daten direkt auf den Systemen der Teilnehmer gespeichert, die Informationen im P2P-Modus austauschen, ohne an zentralisierte Knoten gebunden zu sein. Wenn es notwendig ist, eine Datei mit bestimmtem Inhalt zu erhalten, findet das System die Teilnehmer, die diese Datei haben, und liefert sie von ihren Systemen in Teilen in mehreren Streams. Nach dem Hochladen der Datei auf sein System wird der Teilnehmer automatisch zu einem der Punkte für deren Verteilung. Um die Teilnehmer im Netzwerk zu bestimmen, auf deren Knoten der gewünschte Inhalt vorhanden ist, wird eine verteilte Hashtabelle ().
Im Grunde kann IPFS als verteilte Reinkarnation des Webs mit inhaltsbasierten Adressen und nicht nach Standort und willkürlichen Namen betrachtet werden. Neben der Speicherung von Dateien und dem Austausch von Daten kann IPFS als Grundlage für die Schaffung neuer Dienste genutzt werden, beispielsweise zur Organisation des Betriebs von Webseiten, die nicht an Server gebunden sind, oder zur Schaffung von verteilten .
IPFS hilft, Aufgaben wie die Zuverlässigkeit der Speicherung zu lösen (Wenn der ursprüngliche Speicherort ausfällt, kann die Datei von anderen Benutzersystemen heruntergeladen werden), Zensur von Inhalten entgegenzuwirken (Um den Zugriff zu blockieren, müssten alle Benutzersysteme, die eine Kopie der Daten haben, blockiert werden) und der Zugriff zu organisieren, wenn keine direkte Verbindung zum Internet besteht oder die Verbindungsqualität schlecht ist (Daten können über die nächstgelegenen Teilnehmer im lokalen Netzwerk heruntergeladen werden).
In der Version wurde die Leistung und Zuverlässigkeit erheblich verbessert. Das öffentliche Netzwerk auf Basis von IPFS hat die Marke von 100.000 Knoten überschritten, und die Änderungen in IPFS 0.5 spiegeln die Anpassung des Protokolls an solche Bedingungen wider. Optimierungen konzentrierten sich hauptsächlich auf die Verbesserung der Mechanismen der Inhalte-Routing, die für die Suche, Ankündigung und den Abruf von Daten verantwortlich sind, sowie auf die Effizienz der Implementierung zu erhöhen. (DHT), die Informationen über Knoten bereitstellt, die die gesuchten Daten haben. Der mit DHT verbundene Code wurde nahezu vollständig neu geschrieben, was die Suchvorgänge nach Inhalten und die Bestimmung von IPNS-Einträgen erheblich beschleunigte.
Insbesondere wurde die Geschwindigkeit der Durchführung von Datenhinzufügungen verdoppelt, die Ankündigung neuer Inhalte im Netzwerk um das 2,5-Fache,
der Datenabruf um das 2- bis 5-Fache und die Inhaltssuche um das 2- bis 6-Fache beschleunigt.
Die überarbeiteten Mechanismen für das Routing und die Ankündigung erlaubten es, die Netzwerkgeschwindigkeit um das 2- bis 3-Fache zu steigern, indem die Bandbreite effektiver genutzt und der Datenverkehr im Hintergrund übertragen wurde. In der nächsten Version ist die Einführung eines Transports auf Basis des QUIC-Protokolls geplant, was einen weiteren Leistungszuwachs durch Verringerung der Latenzzeiten ermöglichen wird.
Die Funktionsweise und die Zuverlässigkeit des IPNS-Systems (Inter-Planetary Name System) wurden verbessert, das verwendet wird, um permanente Links auf sich ändernde Inhalte zu erstellen. Der neue experimentelle Transport pubsub hat es ermöglicht, die Lieferung von IPNS-Einträgen bei Tests in einem Netzwerk mit tausend Knoten um 30-40 Mal zu beschleunigen (für die Experimente wurde ein spezieller ). Die Leistung der Schicht wurde ungefähr verdoppelt.
Badger, das zur Interaktion mit dem Betriebssystem-FS verwendet wird. Durch die Unterstützung von asynchronen Schreiboperationen arbeitet Badger jetzt 25-mal schneller als die alte Flatfs-Schicht. Auch die Leistungsteigerung betraf den Mechanismus , der zum Dateiübertrag zwischen Knoten eingesetzt wird.
Zu den funktionalen Verbesserungen gehört die Implementierung von TLS zur Verschlüsselung der Verbindungen zwischen Clients und Servern. Es gibt jetzt Unterstützung für Subdomains im HTTP-Gateway — Entwickler können dezentrale Anwendungen (dapps) und Web-Inhalte in isolierten Subdomains hosten, die mit Hash-Adressen, IPNS, DNSLink, ENS usw. verwendet werden können. Ein neuer Namensraum /p2p wurde hinzugefügt, in den Daten, die mit Peer-Adressen verbunden sind, ausgelagert wurden (/ipfs/peer_id → /p2p/peer_id). Es wurde Unterstützung für Blockchain-basierte „.eth“-Links hinzugefügt, die die Anwendung von IPFS in dezentralen Anwendungen erweitern werden.
Das für die Entwicklung von IPFS verantwortliche Startup Protocol Labs entwickelt parallel das Projekt , das eine Erweiterung von IPFS darstellt. Während IPFS Teilnehmern das Speichern, Abfragen und Übertragen von Daten ermöglicht, entwickelt sich Filecoin zu einer auf Blockchain-Technologie basierenden Plattform für die dauerhafte Speicherung. Filecoin ermöglicht es Nutzern mit ungenutztem Speicherplatz, diesen der Netzgemeinschaft gegen ein bestimmtes Entgelt anzubieten, während Nutzer, die Speicherplatz benötigen, ihn kaufen können. Wenn der Bedarf an Speicher verschwindet, kann der Nutzer ihn verkaufen. So entsteht ein Markt für Speicherplatz, dessen Abrechnungen in Token erfolgen, die durch Mining erzeugt werden.
Quelle: opennet.ru
