Neue Ausgabe des dezentralen Dateisystems (InterPlanetary File System), das ein globales versionsgesteuertes Dateispeicher bietet, aufgebaut als P2P-Netzwerk aus Teilnehmer-Systemen. IPFS vereint Konzepte, die zuvor in Systemen wie Git, BitTorrent, Kademlia, SFS und Web realisiert wurden, und ähnelt einem einheitlichen „Schwarm“ von BitTorrent (Peers, die am Sharing beteiligt sind), die Git-Objekte austauschen. Der Zugriff auf das globale Dateisystem IPFS kann über das HTTP-Protokoll erfolgen oder ein virtuelles Dateisystem \/ipfs mithilfe des FUSE-Moduls eingehängt werden. Der Code der Referenzimplementation ist in Go geschrieben und unter den Lizenzen Apache 2.0 und MIT. Darüber hinaus gibt es eine Implementierung des IPFS-Protokolls in JavaScript, die im Browser betrieben werden kann.
Ein Schlüssel IPFS ist eine Inhaltsadressierung, bei der der Zugang zu einer Datei direkt mit ihrem Inhalt verknüpft ist (einschließlich eines kryptografischen Hashes des Inhalts). IPFS unterstützt standardmäßig die Versionierung. Die Adresse einer Datei kann nicht willkürlich umbenannt werden; sie kann sich nur ändern, wenn sich der Inhalt ändert. Ebenso ist es nicht möglich, eine Datei zu ändern, ohne die Adresse zu verändern (die alte Version bleibt unter der bisherigen Adresse, während die neue über eine andere Adresse verfügbar ist, da der Hash des Inhalts der Datei sich ändert). Da sich die Datei-ID bei jeder Änderung ändert, werden Dienste angeboten, um permanente Adressen bereitzustellen, die verschiedene Versionen der Datei berücksichtigen, oder um einen Alias gemäß den traditionellen Dateisystemen und DNS zu verankern.), oder um einen Alias gemäß den traditionellen Dateisystemen und DNS zu verankern ( (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 ein Benutzer eine Datei mit bestimmten Inhalten benötigt, sucht das System nach Teilnehmern, die diese Datei besitzen, und gibt sie aus deren Systemen in mehreren Streams aus. Nach dem Herunterladen der Datei auf sein System wird der Teilnehmer automatisch zu einem der Punkte für deren Verbreitung. Zur Identifizierung der Teilnehmer im Netzwerk, auf deren Knoten sich die interessierenden Inhalte befinden. verteilte Hash-Tabelle ().
Im Grunde kann IPFS als verteilte Reinkarnation des Webs betrachtet werden, die auf Inhalten und nicht auf Standorten und willkürlichen Bezeichnungen basiert. Neben der Dateiablage und dem Datenaustausch kann IPFS auch als Grundlage für die Schaffung neuer Dienste verwendet werden, beispielsweise zur Organisation des Betriebs von Websites, die nicht an Server gebunden sind, oder zur Erstellung verteilter. .
IPFS hilft dabei, Herausforderungen wie die Zuverlässigkeit der Speicherung zu bewältigen (Wenn das ursprüngliche Speichermedium ausfällt, kann die Datei von anderen Benutzersystemen abgerufen werden), der Zensur von Inhalten entgegenzuwirken (Um die Daten zu blockieren, müssten alle Systeme der Benutzer, auf denen eine Kopie der Daten vorhanden ist, gesperrt werden) sowie den Zugang in Situationen ohne direkte Internetverbindung oder bei schlechter Verbindungsqualität zu organisieren (Daten können über die nächstgelegenen Teilnehmer im lokalen Netzwerk abgerufen werden).
In der Version wurden die Leistung und die Zuverlässigkeit erheblich verbessert. Das öffentliche Netzwerk basierend auf IPFS hat die Marke von 100.000 Knoten überschritten, und die Änderungen in IPFS 0.5 spiegeln die Anpassung des Protokolls für den Betrieb unter diesen Bedingungen wider. Die Optimierungen konzentrierten sich hauptsächlich auf die Verbesserung der Content-Routing-Mechanismen, die für Suche, Ankündigung und Abruf von Daten verantwortlich sind, sowie auf die Steigerung der Effizienz der Implementierung (DHT), die Informationen über Knoten bereitstellt, die die gesuchten Daten enthalten. Der mit DHT verbundene Code wurde nahezu vollständig neu geschrieben, was die Operationen zur Suche nach Inhalten und zur Bestimmung von IPNS-Einträgen erheblich beschleunigte.
Insbesondere wurde die Geschwindigkeit bei den Operationen zur Datenaufnahme verdoppelt, die Ankündigung neuer Inhalte im Netzwerk um das 2,5-fache beschleunigt,
die Datenextraktion um das 2- bis 5-fache und die Suche nach Inhalten um das 2- bis 6-fache.
Die überarbeiteten Mechanismen für Routing und das Versenden von Ankündigungen haben die Netzwerkgeschwindigkeit um das 2- bis 3-fache erhöht, dank einer effizienteren Nutzung der Bandbreite und der Hintergrundübertragung von Daten. In der nächsten Version ist die Implementierung eines Transports auf Basis des QUIC-Protokolls geplant, was eine noch größere Leistungssteigerung durch verringerte Latenzzeiten ermöglichen wird.
Die Leistung und Zuverlässigkeit des IPNS (Inter-Planetary Name System), das zur Erstellung permanenter Links zu sich ändernden Inhalten verwendet wird, wurde verbessert. Der neue experimentelle Pubsub-Transport ermöglichte eine Beschleunigung der Lieferung von IPNS-Einträgen um das 30- bis 40-fache in Tests in einem Netzwerk mit tausend Knoten (für die Experimente wurde ein spezieller ). Die Leistung der Schicht wurde etwa verdoppelt.
Badger, das zur Interaktion mit dem Betriebssystem-Filesystem verwendet wird. Dank der Unterstützung für asynchrone Schreiboperationen arbeitet Badger jetzt 25-mal schneller als die alte FlatFS-Schicht. Auch der Mechanismus , der für die Dateiübertragung zwischen Knoten verwendet wird.
Unter den funktionalen Verbesserungen wird die Verwendung von TLS zur Verschlüsselung der Verbindungen zwischen Clients und Servern erwähnt. Es gibt jetzt Unterstützung für Subdomänen im HTTP-Gateway – Entwickler können dezentrale Anwendungen (dapps) und Webinhalte in isolierten Subdomänen hosten, die mit Hash-Adressen, IPNS, DNSLink, ENS usw. verwendet werden können. Ein neuer Namensraum /p2p wurde hinzugefügt, in dem Daten zu Peer-Adressen ( /ipfs/peer_id → /p2p/peer_id) ausgegliedert wurden. Auch die Unterstützung für Blockchain-basierte ".eth"-Links wurde hinzugefügt, was die Verwendung von IPFS in verteilten Anwendungen erweitern wird.
Das IPFS-Entwicklungsunternehmen Protocol Labs entwickelt parallel das Projekt , das eine Erweiterung von IPFS darstellt. Während IPFS den Teilnehmern ermöglicht, Daten zu speichern, abzurufen und auszutauschen, entwickelt sich Filecoin als eine blockchainbasierte Plattform für die dauerhafte Speicherung. Filecoin gibt Nutzern, die über ungenutzten Speicherplatz verfügen, die Möglichkeit, diesen gegen eine bestimmte Vergütung dem Netzwerk zur Verfügung zu stellen, während Nutzer, die Speicherplatz benötigen, diesen kaufen können. Wenn der Bedarf an Speicherplatz entfällt, kann der Nutzer diesen verkaufen. So entsteht ein Markt für Speicherplatz, dessen Transaktionen in Tokens abgewickelt werden. , die durch Mining erzeugt werden.
Quelle: opennet.ru
