Idee der eigenen Erkenntnis
Idee der eigenen Erkenntnis

Interplanetares File System - IPFS

Frank Siebert
QR Code
Creative Commons Zero

Das Interplanetare File System

Das Interplanetare File System (IPFS) hat ein paar sehr interessante Eigenschaften:

Damit bietet das IPFS neue interessante Möglichkeiten der sicheren Dateiablage. Wobei natürlich genau hin geschaut werden muss, wovor diese Art der Ablage absichert.

Im Moment kann beobachtet werden, dass die Halbwertszeit von Videos auf YouTube oder von Posts in Twitter und Facebook je nach dem Thema und der Meinung sehr kurz ausfallen kann. Wir leben in einem Zeitalter der Zensur, möge es ein kurzes sein.

IPFS kann Aufgrund seiner dezentralen Funktionsweise Zensur sehr effektiv erschweren. Die Vielzahl der unerwünschten Beiträge und die Vielzahl der interessierten Konsumenten dieser Inhalte, welche die Ihrer Meinung nach besonders hochwertigen Inhalte auf ihrem Rechner "pinnen" (vor der automatischen Bereinigung schützen) können, führt zu einem großen Aufwand für Zensoren.

IPFS sichert auf der anderen Seite nicht die Anonymität der Anwender. Jeder Rechner mit IPFS-Service bekommt eine eindeutige Peer-ID, welche sich natürlich mit der IP Adresse des Anwenders verknüpfen lässt. Damit lässt sich recht gut ermitteln, wer Interesse an welchen Inhalten zeigt. Alles was man braucht ist hinreichend Speicherplatz, Mitarbeiter, die Inhalte besuchen die Zensiert werden sollen, und eine Protokollierung, von welchen IP Adressen mit welcher Peer-ID welche Inhalte angeliefert werden.

Findet sich die selbe Peer-ID im Abstand von 2 Tagen für den gleichen Inhalt wieder, dann hat dieser Anwender den Inhalt offenbar "gepinnt", da er sich besonders für den Inhalt interessiert.

Privacy ist keine Stärke dieses File-Systems, es sei denn Inhalte werden darauf verschlüsselt abgelegt, so dass keine Rückschlüsse aus ihrem Inhalt gezogen werden können. Für die Verbreitung von Meinungsäußerungen oder von unerwünschtem Wissen ist eine Verschlüsselung allerdings nicht besonders gut, da der Inhalt dann ja von niemandem Konsumiert werden kann. Und auch mit Verschlüsselung kann immer noch erkannt werden, wer alles auf die Information zugreift.

Mein eigenes Interesse

Mein eigener Schwerpunkt bei der Betrachtung dieses File Systems liegt in den Fragen:

Aber auch wenn diese Fragen mit Nein beantwortet werden sollten, dann ist die dezentrale und server-lose Verbreitung statischer Inhalte natürlich auch schon ein Wert für sich alleine, wenn wir die derzeitige Zensurpolitik betrachten.

Als Einstieg in das Thema habe ich ein paar Videos 1 angeschaut und dann beschlossen mit dem Brave Browser erste Erfahrungen mit dem IPFS zu sammeln.

Brave Browser - IPFS

Das Software Repository von Debian Stable bietet den Browser nicht zur Installation an. Für die Installation muss man daher auf einen Download zurückgreifen oder auf ein von den Entwicklern angebotenes Repository.

Ich finde auf Anhieb 3 Seiten zum Brave Browser:

Die Seite brave.com mit der Angabe einer Büro Adresse sowie weiterer Kontaktmöglichkeiten ist die offensichtliche Wahl für den Start. Der Download-Button führt zu der Seite "Installing Brave on Linux" 5 .

Folgende Installationsschritte werden für Debian ab Version 9 angegeben.

sudo apt install apt-transport-https curl gnupg

curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc \
| sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add -

echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" \
| sudo tee /etc/apt/sources.list.d/brave-browser-release.list

sudo apt update
sudo apt install brave-browser

Installiert wird neben dem brave-browser ein brave-keyring.

Start des Browsers

Nach dem Start des Browsers wird man durch einen Guided Setup geführt. Ich bin die Schritte durchgegangen und habe das Crypto Currency Feature und auch das Geld verdienen mit Add-lesen ingoriert und lediglich DuckDuckGo als Suchmaschine ausgewählt.

No Caption

Mich interessiert zunächst nur das IPFS Feature, aber dieses kam in den Setup-Schritten nicht vor.

Erkunden des IPFS Features

Für das Aktivieren des IPFS Features benötige ich eine IPFS oder IPNS URI (Uniform Resource Identifier), also bin ich auf die Seite www.corbettreport.com 6 gegangen, denn ich weiß, dass es eine IPFS Version von ihr gibt.

Die dort angegebene URL auf die IPFS Version sieht wie folgt aus: https://ipfs.io/ipns/QmNqHuSVuufkBKK1LHtoUmKETobZriC1o5uoiXSoLX2i3K/

Das ist natürlich zunächst eine HTTPS URL. mit der über das Gateway ipfs.io auf das Interplanetare File System zugegriffen wird. Die IPNS URI ist aber erkennbar und lautet: ipns://QmNqHuSVuufkBKK1LHtoUmKETobZriC1o5uoiXSoLX2i3K

Hinter IPNS verbirgt sich einen Knoten (Node), wärend IPFS für ein File steht. HTML-Seiten mit eingebetteten Bildern und Videos sind in diesem System ein Node, während sie ein File sein könnten, sofern sie nichts einbetten. Ob letzteres der Fall ist werde ich vermutlich sowieso heraus finden, ich gehe der Frage jetzt nicht nach.

Nach dem Kopieren dieser URI in die Adresszeile des Brave Browsers wird die URI umgeschrieben in: https://k2k4r8jllj4k33jxoa4vaeleqkrwu8b7tqz7tgczhptbfkhqr2i280fm.ipns.dweb.link/ und eine Information erscheint oben im Browser: "IPFS resources detected. Would you like Brave to load them using a local IPFS node?"

Die angebotenen Optionen sind "Enable IPFS" und "Settings", ich wähle "Enable IPFS". Danach muss ich, weil der Browser die URI ja wieder in eine HTTP URL umgeschrieben hatte, die IPNS URI ein weiteres mal in die Adresszeile kopieren.

Danach bin ich tatsächlich auf dem Interplanetarischen Filesystem unterwegs.

No Caption

Erwartungen

Wenn ich nun in den Inhalten des Corbett Report navigiere, dann werden die Anfragen des Browser an den lokalen Teil des IPFS gerichtet, welches dann die Content Chunks von den Peers holt, welche diese anbieten. Im lokalen IPFS werden die Content-Chunks abgelegt und an den Browser weitergegeben. Andere Benutzer von IPFS, welche später die gleichen Inhalte anfragen, können diese von meinem Rechner erhalten.

Das sollte auch mit Videos funktionieren, also wähle ich für den Start eines der kürzeren Videos, ein "New World Next Week" Video und starte es.

Das mit dem Video...

Die meisten Web-Seiten, auch der Corbett Report, hosten Videos nicht mit einem eigenen Streaming Server. Die URLs der eingebetteten Videos zeigen daher auf fremde Server und beginnen alle mit einem expliziten " https:// ".

Da die IPFS Seite des Corbett Reports nur eine persistierte Kopie der HTTPS Seite ist, werden die eingebetteten Videos der Seite nicht über IPFS gestreamt. Daher werde ich auch nicht automatisch Host der Videos.

Das ist keine optimale Lösung. Die Entscheidung eine IPFS Seite anzubieten sollte zu einer auf IPFS zugeschnittenen Lösung führen.

Beim Corbett Report gibt es allerdings auch immer einen Link auf das Video für den Download. Dies ist ein relativer Link, der nicht mit " https:// " startet und in der IPFS Version der Seite das Streamen des Videos über IPFS ermöglicht.

Der Link öffnet allerdings einen neuen Tab, auf dem nichts passiert, während im ursprünglichen Tab ein HTML-Overlay angezeigt wird, in dem das Video zum anschauen angeboten wird. Wer es nicht weiß, der sitzt erst einmal wartend vor einem leeren Tab.

Was hoste ich denn nun ?

Der Brave Browser unterstützt nun das Browsen per IPFS und IPNS, aber eine Übersicht der Seiten, welche gerade von mir gehostet werden, gibt mir der Browner nicht. Wenn ich also mehr von den Möglichkeiten des IPFS Nutzen möchte, dann muss ich in dem Settings den IPFS Companion aktivieren. Dahinter verbirgt sich ein Browser Add-On, welches es auch für Chromium und Firefox gibt.

Natürlich stellt sich dann die Frage, ob ich nicht gleich bei meinem gewohnten Browser bleiben soll. Fürs erste beantworte ich diese Frage mit nein - mir persönlich ist die Trennung der Browser nach Nutzungsart ganz recht.

Aber auch mit dem Plugin kann ich bisher nicht so einfach erkennen, was ich da genau hoste.

Suche nach einem Video

Es gibt eine IPFS Suche: https://ipfs-search.com/#/search?kind=video&page=2&search=QmREdNzPjjXJSs6mr94FKYxy4JeJJZM5M1uMXxiz7bxFyK

Also suche ich darin einfach einmal nach "Demokratie" und erhalte einen Treffer: ipfs://bafybeib7pavv2xizce7zmhlokqux4nunu65cwh25l4gy55mdzjxexlzbvu/

No Caption

Ein Video in dem ich mir einmal mehr den Unsinn anhören kann, den unsere Regierung mit dem Infektionsschutzgesetz gemacht hat. Zur Zeit der Aufzeichnung war da einiges geplant, dass inzwischen verabschiedet wurde. (Wir sollten uns von diesem Infektionsschutzgesetz verabschieden. So schnell wie möglich!)

Es dauert lange, bis ich etwas von dem Video im Browser sehe. Zunächst schafft das es das Video dann auch nur bis zu Sekunde 7 und bleibt danach stehen. Erst später entdecke ich das HTML-Overlay im ursprünglichen Tab. Dort läuft das Video klaglos.

No Caption

Ich benutze das Companion Add-On um das Video zu Pinnen und kann es mir danach über die Pin Liste näher anschauen. Das Video hat 208 MB und die Wiedergabeprobleme könnten mit der geringen Anzahl von Content-Paketen und deren Strukturierung zusammen hängen.

No Caption

Für das Streamen wird als Tree-Layout nicht Balanced sondern Trickle empfohlen. Wie und mit welchen Content-Paketgrößen man das am Besten macht, werde ich wohl einmal ausprobieren müssen.

Das nächste Video, dass ich anschaue, ist von Peter Boeringer. Man sieht im Hintergrund die Kuppel des Bundestages, vielleicht sollte mir sein Name bekannt sein. Im Verlauf des Videos kommt mir der Verdacht, dass es sich um einen AFD Politiker handeln muss. ipfs://bafybeiblbajjflyi66nd3ndrxxjewiwludtglrnsvv62eph7ehwyrapg6i/Druck%20und%20Propaganda%20pro%20Impfung%20%E2%80%93%20Boehringer%20Klartext%20%28134%29.mp4

Auf jeden Fall funktioniert das Video auf Anhieb, IPFS scheint also Grundsätzlich für das Streamen von Videos geeignet zu sein.

Und was der Herr Boeringer zu dem Thema Corona-Impfungen sagt passt weitestgehend; naja, vom Tagesspiegel-Artikel hätte er vielleicht besser mehr als die Titelzeile lesen sollen. Auf jeden Fall kein Problem, dass ich es nun über IPFS hoste, obwohl es das Video eines AFD Politikers ist. Es kommt auf den Inhalt an, nicht auf die Verpackung.

Ein Video einstellen

Ich bin jetzt selbst kein Video-Hersteller, auch wenn ich das vielleicht noch werde. Aber James Corbett fordert immer dazu auf, seine Videos weiter zu geben. Ich lade also über den Firefox das Video "Century of Enslavement - The Federal Reserve" herunter und verwende die Import-Funktion im Companion Add-On des Brave Browsers um das Video in das IPFS einzustellen.

No Caption

Nach dem von mir gewünschten Tree Layout werde ich nicht gefragt, auch nicht nach der von mir gewünschten Größe für die Content-Pakete, den sogenannten Chunks. Die Inspektion des Ergebnisses für die über 300 MB große Datei ergibt dann auch, dass es als Balanced Tree mit 8 Chunks abgelegt wurde, wovon ein Chunk der Root-Knoten des Trees ist.

Mit der Frage, wie ich darauf Einfluss nehmen kann, muss ich mich wohl noch ein wenig beschäftigen.

Mit der neu erzeugten CID (Content ID) starte ich eine Suche in der IPFS Web-Suche und bekomme auf Anhieb das Video in der Trefferliste angezeigt. Diesen Treffer gab es aber vermutlich schon bevor ich den Import vor nahm. Sofern der Import mit den Default-Werten statt findet, so wie es bei mir der Fall war, ergibt sich auch immer die gleiche CID.

Ich hätte vorher einmal die Suche mit dem Dateinamen "centuryofenslavement.mp4" starten sollen. Ich nehme das zum Anlass nach "ep308.mp4" in der Rubrik "Any" der IPFS Web-Suche zu suchen.

"We found 6 results in 1 pages for your search!"

Ich erhalte 5 mal den Titel: "9/11 Trillions: Follow The Money (video) : The Corbett Report" und einmal den Titel "ep308.mp4". In der Rubrik "Video" gibt es dann nur noch den einen Treffer "ep308.mp4".

Im Gegenzug bekomme ich keinen einzigen Treffer wenn ich nach "9/11 Trillions: Follow The Money (video) : The Corbett Report" (ohne die Gänsefüsschen) in der Rubrik "Any" suche.

Die Suche nach "9 11 Trillions Follow The Money video" bringt dafür eine große Trefferzahl, mit den relevanten Treffern an erster Stelle. Immerhin.

Offensichtlich gibt es Bedarf an einer Verbesserung der Suche, mit der jetzigen Suche ist auf jeden Fall eine größere Umgewöhnung erforderlich. Das Importieren eines einzelnen Videos liefert auf jeden Fall nicht genug Metadaten mit, um das Video über die Suche in der Rubrik "Video" wieder zu finden. Ohne eine Web-Seite darum herum findet man das Video nur, wenn man seinen exakten Namen kennt.

Ich werde wohl einmal nach den Projekt-Details zu der Suchmaschinen-Entwicklung schauen, wie deren Index gefüttert wird. Vielleicht wird das ja ein Projekt für mich.

Brave Browser & IPFS - vorläufiges Fazit

Der Umgang mit dem Brave Browser und seinem IPFS Feature sind gewöhnungsbedürftig. Vor allem für einen IPFS Einsteiger wie mich ist dieses Browser Feature nicht wirklich selbsterklärend.

Natürlich steht dies im Moment einem breiten Einsatz noch im Wege. Natürlich kann man den Brave Browser auch einfach so als HTTP Browser verwenden. In dieser Funktion ist die Umgewöhnung minimal. Wenn man Crypto Currency und andere Features ebenfalls einfach ignoriert, dann ist es halt eben ein Web-Browser wie jeder andere auch.

Sehr schön weisen die Entwickler des Brave Browsers auf ihrer Web-Seite auf die Security und Privacy Implikationen der IPFS Nutzung hin.

Zu den Privacy Implikationen schreiben sie:

  1. Wenn Ihr Gerät über IPFS auf Inhalte zugreift, wird es auch vorübergehend zu einem Host für die Inhalte, bis der lokale Cache Ihres Knotens gelöscht wird (diese Zeitspanne kann variieren, der Cache wird jedoch stündlich überprüft und gelöscht, wenn er 90% seiner Standard Grenze von 1 GB erreicht). Dies bedeutet, dass Sie beim Besuch einer Seite über IPFS zustimmen, vorübergehend Host aller geladenen IPFS-Ressourcen zu sein.
  2. Jeder IPFS-Knoten im Netzwerk verfügt über eine eindeutige öffentliche Kennung, die als PeerID bezeichnet wird. Da es sich bei PeerIDs um langlebige Identitäten handelt, kann jemand Ihre PeerID in der verteilten Hash-Tabelle (DHT) nachschlagen, in der öffentliche IPFS-Metadaten gespeichert und Ihre IP-Adresse im Laufe der Zeit verfolgt werden.
  3. Da dieses DHT auch Metadaten zu den von PeerIDs angeforderten oder bereitgestellten Inhalten enthält, kann jemand, der das DHT beobachtet, erfahren welche Inhalte Ihr Knoten (und möglicherweise Ihre IP-Adresse) im IPFS-Netzwerk anfordert oder bereitstellt.
  4. Wenn Sie die Ausführung eines lokalen Knotens vermeiden möchten, können Sie IPFS über das öffentliche Gateway laden. Dadurch kann das Gateway jedoch Ihre IPFS-Browsing-Aktivität anzeigen. Dieses öffentliche Gateway kann Ihre IP-Adresse anzeigen und sogar protokollieren. 7

Default 1GB

Nach ein wenig herumspielen stellt man auch schnell fest, dass der Default von 1GB für den Cache, der ja meinen lokalen Teil des IPFS darstellt, nach dem Pinnen von nur wenigen Videos am Anschlag ist. Das ist natürlich kein großes Wunder. In den IPFS Settings des Companion Add-Ons findet man aber auch den Text der Konfigurationsdatei und kann diese dort ändern.

In Zeile 55 findet sich der Eintrag "StorageMax": "1GB" , den man im Browser ändern kann. Danach erscheint auch ein Save und ein Cancel Button. Anpassen und Speichern ist also ganz einfach, nur steht über dem Editor noch der Hinweis, dass ich den Service (unter Linux den "daemon") neu starten muss. Es gibt auch einen Link auf eine Dokumentation, welche genau diesen Neustart nicht zu beschreiben scheint.

Das Beenden und neu Starten des Browsers ist aber ein einfacher Weg. Der go-ipfs Service läuft nur so lange, wie der Browser geöffnet ist; zumindest wenn man vollständig den integrierten IPFS-Support des Browser verwendet, wie ich dies im Rahmen dieser ersten Schritte gemacht habe.

Fazit

IPFS ist interessant. Es steht zu erwarten, dass es auch bald breiter zur Anwendung kommt. Eine Vielzahl von Beispielen gibt es bereits 8 , ich habe nicht einmal begonnen diese durch zu sehen. Wie immer kommt die Technik mit Chancen und mit Risiken. Der Einsatz muss überlegt und bewusst erfolgen, daher ist mit einer schnellen Verbreitung bei 'normalen' Anwendern nicht zu rechnen.

IPFS kann helfen Zensur zu erschweren und das Verschwinden wichtiger Informationen zu verhindern.

Am Ende kann Technik aber nicht unsere gesellschaftlichen und politischen Probleme lösen, auch wenn dies der feuchte Traum der Technokraten ist, welche seit den 1930ern 9 an der Errichtung einer Technokratie arbeiten. Und nun hoffen sie es bald geschafft zu haben, mit 5G, Smart-City, Contact-Tracing-Apps, Gesundheit-Apps, elektronischem Impfausweis, Bargeldabschaffung und vielleicht auch dem Chippen 10 der Bürger.

Wenn wir bei der Abwehr der Technokratie nur auf technische Mittel setzen, dann machen wir offensichtlich etwas falsch. IPFS kann jetzt ein wenig helfen, die Probleme aber müssen wir in der realen und nicht in der virtuellen Welt lösen.

Darum sollte ich eigentlich diesen Artikel gar nicht schreiben, sondern auf der Straße herum laufen und eine Ein-Mann Demonstration machen.

Fußnoten


  1. IPFS concepts , docs.ipfs.io
  2. brave.com
  3. bravebrowserweb.com
  4. www.brave-newbrowser.com<
  5. "Installing Brave on Linux"
  6. www.corbettreport.com
  7. How does IPFS Impact my Privacy? , support.brave.com
  8. Awesome IPFS
  9. Patrick Wood on the Hard Road to World Order , The Corbett Report, 2019-04-04
  10. Grimes and Lil Uzi Vert make plans to get ‘brain chips’ together following Elon Musk’s Neuralink announcement , independent.co.uk, 2021-02-08

Kategorie:IT Kategorie:IPFS