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.
Die neue Version zeichnet sich durch die standardmäßige Einbeziehung des auf dem Protokoll basierenden Transports aus , das eine Erweiterung des UDP-Protokolls darstellt, mehrere Verbindungen unterstützt und Verschlüsselungsmethoden bietet, die TLS/SSL entsprechen. In IPFS wird der Socket für den Empfang von UDP-Verbindungen automatisch an der gleichen Adresse und dem gleichen Netzwerkport gestartet wie der TCP-basierte Transporthandler. QUIC wird sowohl für eingehende als auch für ausgehende Verbindungen verwendet, wobei im Falle von Verbindungsversuchen mit neuen Knoten, falls QUIC nicht verfügbar ist, auf TCP zurückgegriffen wird.
Eine weitere wichtige Neuerung ist die Unterstützung des sicheren Transports , dem Protokoll und entwickelt im Rahmen von , einem modularen Netzwerkstack für P2P-Anwendungen. Nach der initialen Aushandlung der Verbindung wird der gesamte nachfolgende Datenaustausch zwischen den Teilnehmern verschlüsselt und vor Abhörversuchen geschützt.
NOISE hat den Transport , ersetzt, aber als bevorzugte Methode zur Verschlüsselung von Verbindungen zwischen Knoten wird weiterhin TLS 1.3 eingesetzt. NOISE ist einfach zu implementieren und wird als universeller plattformübergreifender Transport positioniert, der in verschiedenen Programmiersprachen umgesetzt werden kann.
In der neuen Version besteht zudem die Möglichkeit, eigene „404 Not Found“-Seiten hinzuzufügen, und es wurde optionale Unterstützung für die Kodierungsmethode Base36 hinzugefügt, die optimal für alphanumerische Daten ohne Groß-/Kleinschreibung ist, wie Domainnamen (bei der Verwendung von Base32 überschreiten die Ed25519 IPNS-Keys um zwei Bytes das Limit für die Größe von Subdomains, während sie bei Base36 innerhalb des Limits liegen). Darüber hinaus wurde eine Option in die Einstellungen eingefügt
««, die die Liste der Knoten für die Verbindung, das Aufrechterhalten der Verbindung und die Wiederverbindung zum Ziel der Identifizierung von "klebrigen" Verbindungen zwischen häufig verwendeten Peers definiert.
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
