Die Veröffentlichung des dezentralen Dateisystems IPFS 0.8 (InterPlanetary File System) wurde vorgestellt. Es bildet globalen, versionierten Speicher in Form eines P2P-Netzwerks, das aus teilnehmenden Systemen besteht. IPFS kombiniert Ideen, die zuvor in Systemen wie Git, BitTorrent, Kademlia, SFS und dem Web umgesetzt wurden, und erinnert an ein gemeinsames 'Rudel' von BitTorrent (Peers, die am Datenaustausch teilnehmen), das Git-Objekte austauscht. IPFS zeichnet sich durch eine adressierung nach Inhalt und nicht nach Speicherort oder willkürlichen Namen aus. Der Code der Referenzimplementierung ist in Go geschrieben und wird unter den Lizenzen Apache 2.0 und MIT verteilt.
In der neuen Version:
- Es wurde die Möglichkeit geschaffen, externe Dienste zur Bindung von Benutzerdaten (Pinning – das Verknüpfen von Daten mit einem Knoten, um sicherzustellen, dass wichtige Daten gespeichert werden) zu erstellen. Die an den Dienst gebundenen Daten können unterschiedliche Namen tragen, die sich von der Inhalts-ID (CID) unterscheiden. Eine Suche nach Daten ist sowohl über den Namen als auch über die CID möglich. Für die Verarbeitung von Anfragen zur Bindung von Daten steht die API des IPFS Pinning Service zur Verfügung, die direkt in go-ipfs verwendet werden kann. In der Befehlszeile wird der Befehl „ipfs pin remote“ zum Anfügen vorgeschlagen: ipfs pin remote service add mysrv https://my-service.example.com/api-endpoint myAccessToken ipfs pin remote add /ipfs/bafymydata —service=mysrv —name=myfile ipfs pin remote ls —service=mysrv —name=myfile ipfs pin remote rm —service=mysrv —name=myfile
- Die Vorgänge zum Binden (Pinning) und Lösen (Unpinning) von Daten auf dem lokalen Knoten wurden beschleunigt. Die Leistungssteigerung und der reduzierte Speicherverbrauch sind insbesondere bei der Ausführung von Ausgaben oder Änderungen auf Systemen mit einer großen Anzahl von Bindungen deutlich spürbar.
- Bei der Erstellung von "https://"-Links für Gateways wurde die Möglichkeit hinzugefügt, DNSLink-Namen mithilfe von Subdomains zu übermitteln. Zum Beispiel kann für den Zugriff auf den Namen "ipns://en.wikipedia-on-ipfs.org" neben den zuvor unterstützten Links "https://dweb.link/ipns/en.wikipedia-on-ipfs.org" nun auch der Link "https://en-wikipedia-on-ipfs-org.ipns.dweb.link" verwendet werden, bei dem Punkte in den ursprünglichen Namen durch das Zeichen "-" ersetzt und bestehende "-"-Symbole zusätzlich mit einem weiteren ähnlichen Zeichen maskiert werden.
- Die Unterstützung des QUIC-Protokolls wurde erweitert. Um die Leistung zu steigern, wurde die Möglichkeit geschaffen, die Empfangspuffer für UDP zu vergrößern.
Es ist wichtig zu beachten, dass im IPFS die URL zum Zugriff auf eine Datei direkt mit ihrem Inhalt verknüpft ist und einen kryptografischen Hash des Inhalts enthält. Die Adresse der 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 dass sich die Adresse ändert (die alte Version bleibt unter der bisherigen Adresse, während die neue über eine andere Adresse zugänglich ist, da sich der Hash des Inhalts der Datei ändert). Da sich die Datei-ID bei jeder Änderung ändert, werden Dienste angeboten, die permanente Adressen bereitstellen, die verschiedene Versionen einer Datei berücksichtigen (IPNS), oder die ein Pseudonym ähnlich den traditionellen FS und DNS festlegen (MFS (Mutable File System) und DNSLink).
Ähnlich wie bei BitTorrent werden die Daten direkt auf den Systemen der Teilnehmer gespeichert, die Informationen im P2P-Modus austauschen, ohne an zentrale Knoten gebunden zu sein. Wenn ein bestimmter Inhalt benötigt wird, sucht das System nach Teilnehmern, die die Datei besitzen, und überträgt sie in Teilen über mehrere Streams von deren Systemen. Nach dem Herunterladen der Datei auf sein System wird der Teilnehmer automatisch zu einem der Verbreitungspunkte für diese Datei. Um die Teilnehmer im Netzwerk zu identifizieren, auf deren Knoten der gesuchte Inhalt verfügbar ist, wird eine verteilte Hash-Tabelle (DHT) genutzt. Für den Zugriff auf das globale Dateisystem IPFS kann das HTTP-Protokoll verwendet werden oder ein virtuelles Dateisystem \/ipfs mittels des FUSE-Moduls eingebunden werden.
IPFS bietet Lösungen für Herausforderungen wie die Zuverlässigkeit der Datenspeicherung (wenn die ursprüngliche Speichereinheit ausfällt, kann die Datei von den Systemen anderer Nutzer heruntergeladen werden), die Bekämpfung von Inhaltszensur (um Inhalte zu blockieren, müssten alle Systeme der Nutzer, auf denen Kopien der Daten vorhanden sind, blockiert werden) und die Bereitstellung von Zugriff, wenn keine direkte Internetverbindung besteht oder die Verbindungsqualität schlecht ist (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 genutzt werden, zum Beispiel zur Organisation von Webseiten, die nicht an Server gebunden sind, oder zur Entwicklung verteilter Anwendungen.

Quelle: opennet.ru
