Veröffentlichung eines dezentralen Dateisystems (InterPlanetary File System), das ein global versioniertes Dateispeicher bereitstellt, das in Form eines P2P-Netzwerks aufgebaut ist, das aus den Systemen der Teilnehmer besteht. IPFS kombiniert Ideen, die zuvor in Systemen wie Git, BitTorrent, Kademlia, SFS und Web realisiert wurden, und erinnert an einen einzelnen „Schwarm“ von BitTorrent (Peers, die am Teilen teilnehmen), der Git-Objekte austauscht. IPFS unterscheidet sich durch die Adressierung nach Inhalt und nicht nach Speicherort sowie durch beliebige Namen. Der Code der Referenzimplementierung ist in Go geschrieben und unter den Lizenzen Apache 2.0 und MIT.
In der neuen Version wurde der Transport standardmäßig deaktiviert , dessen Ersatz in der vorherigen Ausgabe angeboten wurde , dem Protokoll und im Rahmen des modularen Netzwerkstacks für P2P-Anwendungen entwickelt . Als Backup-Transport bleibt TLSv1.3 bestehen. Administratoren von Knoten, die ältere Versionen von IPFS (Go IPFS < 0.5 oder JS IPFS < 0.47) verwenden, wird empfohlen, die Software zu aktualisieren, um Leistungsverlust zu vermeiden.
In der neuen Version wurde auch der Standardwechsel zu ed25519-Schlüsseln anstelle von RSA vollzogen. Die Unterstützung alter RSA-Schlüssel bleibt erhalten, aber neue Schlüssel werden jetzt mit dem ed25519-Algorithmus generiert. Die Verwendung integrierter ed25519-Öffentlicher Schlüssel löst das Problem der Speicherung öffentlicher Schlüssel, da zur Verifizierung von signierten Daten mit ed25519 nur Informationen über PeerId erforderlich sind. Schlüsselnamen in IPNS-Pfaden werden jetzt mit dem base36 CIDv1-Algorithmus anstelle von base58btc kodiert.
Neben dem Wechsel des Standard-Schlüssels in IPFS 0.7 wurde die Möglichkeit zur Rotation von Identifikationsschlüsseln hinzugefügt. Um den Knoten-Schlüssel zu wechseln, kann jetzt der Befehl „ipfs key rotate“ ausgeführt werden. Darüber hinaus wurden neue Befehle für den Import und Export von Schlüsseln („ipfs key import“ und „ipfs key export“) hinzugefügt, die für Backup-Zwecke verwendet werden können, sowie der Befehl „ipfs dag stat“, um Statistiken über DAG (Distributed Acyclic Graphs) anzuzeigen.
Wir erinnern daran, dass im IPFS der Link zum Zugriff auf eine Datei direkt mit ihrem Inhalt verbunden ist und einen kryptografischen Hash des Inhalts umfasst. Die Adresse der Datei kann nicht willkürlich umbenannt werden; sie kann sich nur ändern, wenn sich der Inhalt ändert. Ähnlich ist es unmöglich, eine Datei zu ändern, ohne die Adresse zu ändern (die alte Version bleibt unter der bisherigen Adresse, während die neue über eine andere Adresse verfügbar ist, da sich der Hash des Inhalts der Datei ändert). Da der Identifikator der Datei sich bei jeder Änderung ändert, werden Dienste bereitgestellt, um permanente Adressen zu binden, die verschiedene Versionen der Datei berücksichtigen (), 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 (). Um auf das globale FS zuzugreifen, kann IPFS das HTTP-Protokoll verwenden oder ein virtuelles FS \/ipfs mithilfe des FUSE-Moduls einbinden.
IPFS hilft, Aufgaben wie die Zuverlässigkeit der Speicherung zu lösen (wenn das ursprüngliche Speichergerät ausfällt, kann die Datei von anderen Benutzersystemen heruntergeladen werden), die Bekämpfung von Inhaltszensur (um Inhalte zu blockieren, müssten alle Systeme der Benutzer, auf denen eine Kopie der Daten vorhanden ist, blockiert werden) und die Organisation des Zugriffs ohne direkte Internetverbindung oder bei schlechter Netzwerkqualität (Daten können über die nächstgelegenen Teilnehmer im lokalen Netzwerk heruntergeladen werden). Neben der Speicherung von Dateien und dem Austausch von Daten kann IPFS als Grundlage für die Erstellung neuer Dienste verwendet werden, etwa für die Organisation des Betriebs von Websites, die nicht an Server gebunden sind, oder für die Erstellung von verteilten .
Quelle: opennet.ru
