IPFS Tutorial #1 - Adden und cat(en)

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@janse·
0.000 HBD
IPFS Tutorial #1 - Adden und cat(en)
![IPFS-HowTo Header #1](http://ipfs.io/ipfs/QmP1z4MCrWxKnjRKcEFVXcoFUAPXu3D1iyRfEvFyKsC8ib/howto_header.jpg)

Moinsen,

nachdem nun also unser Node friedlich auf der Festplatte schlummert, wollen wir ihn doch mal nutzen (und mich nebenbei züchtigen, da ich die alte Schriftart vom Header vergessen habe 😁).
Im [letzten Post](https://busy.org/@janse/ipfs-tutorial-0-ueber-dezentrales-internet-und-vong) haben wir IPFS kennengelernt, uns mit dem System dahinter etwas vertraut gemacht und schlussendlich unseren eigenen Node lokal installiert. Nun will ich mit dir heute behandeln, wie man Dateien im IPFS abruft und eigene in ebendieses lädt.
Voraussetzung für diesen Part ist, dass du mit deiner Konsole im IPFS-Stammverzeichnis bist und das [IPFS-Companion-Plugin](https://github.com/ipfs-shipyard/ipfs-companion) für Firefox oder Chrome installiert hast.

## Die Katze aus dem Sack lassen
Der universelle Befehl, um Hashes in *halbwegs* lesbaren Text aufzulösen, ist `ipfs cat HASH`. Dieser Befehl fetcht (=sucht) den Hash in der sog. *Distributed Hash Table*.
Wir testen das einfach mal anhand eines Beispiels. Rufe in deiner Konsole den Befehl `ipfs cat QmZANHTxVXNvC7BcpW4DTQYxLWqp591tBQNRLUDhZoJLcS` auf.

![cat-Befehl Screenshot](http://ipfs.io/ipfs/QmP1z4MCrWxKnjRKcEFVXcoFUAPXu3D1iyRfEvFyKsC8ib/cmd_2018-02-12_16-22-13.png)

IPFS hat in dieser kurzen Zeit über die *DHT* einen Node erhalten, über welchen die Datei auf dein lokales Repository (=der Speicher deines lokalen Nodes) gespeichert und anschließend ausgelesen wurde.
Das ist doch ganz cool. Probieren wir es mit einem anderen Hash. `ipfs cat QmUedQokVV75iuZa7agKY1tDj65ntbHbMLHUt7ZDpyZi5h`

![cat-Befehl mit viel Schrott](http://ipfs.io/ipfs/QmP1z4MCrWxKnjRKcEFVXcoFUAPXu3D1iyRfEvFyKsC8ib/cmd_2018-02-12_16-31-06.png)
*Öhm, what *🤔

Scheint irgendwie fehlerhaft auszusehen, oder? Nein, IPFS hat genau das gemacht, was du wolltest. Das Problem hierbei ist, dass dieser Hash zu einer Videodatei gehört. Was also tun?

**Erste Möglichkeit**
Für die meisten wahrscheinlich die einfachste: Rufe den Hash im Browser auf.
Das Aufrufen über das HTTP-Gateway ist das selbe, wie `cat`, nur, dass diesesmal dein Browser versucht, die Datei zu öffnen. Dazu muss in einer zweiten Konsole der Daemon mit `ipfs daemon` gestartet werden und folgende URL geöffnet werden: `http://127.0.0.1:8080/ipfs/QmUedQokVV75iuZa7agKY1tDj65ntbHbMLHUt7ZDpyZi5h`. Alternativ kannst du die URL auch über entsprechende Player, wie VLC oder MPV (<-für Konsolenjunkies) öffnen.

**Zweite Möglichkeit**
Du kannst mit einer einfachen Möglichkeit den Output vom *cat*-Befehl in eine Datei schreiben. Dies funktioniert mit einem `>`. Beispiel: `ipfs cat QmUedQokVV75iuZa7agKY1tDj65ntbHbMLHUt7ZDpyZi5h > geheimnisvollesvideo.mp4`. Dies erzeugt eine Videodatei, welchen den Output der Konsole beinhaltet. Die Datei wird dann stadartmäßig im IPFS-Pfad gespeichert. Voraussetzung ist, dass man weiß, welches Dateiformat der Output benötigt. Ein *.mp4* ist ja nicht gleich ein *.jpg*.

**Dritte Möglichkeit**
Möchtest du die Datei speichern, kannst du `ipfs get HASH` nutzen.
Für unsere Datei könnte man also `ipfs get QmUedQokVV75iuZa7agKY1tDj65ntbHbMLHUt7ZDpyZi5h ` nutzen. So wird die Datei direkt im IPFS-Verzeichnis gespeichert. Ebenso wie in der zweiten Möglichkeit muss man die Datei entsprechend umbenennen (normalerweise heißt sie wie der Hash).

Die beste Möglichkeit ist, einen Hash über den Browser aufzurufen. Dort kann man mit einem Rechtsklick auch die Datei im Originalen downloaden. Solltest du nun einen lustigen Hund von [DMania](https://dmania.lol/post/bandumona/lol-in-day-zg1hbmlh-qfoxq) sehen, weißt du nun, wie man Dateien im IPFS mit Hilfe von der Konsole und dem Daemon aufrufen und speichern kann.


## Beam me up, Scotty!
Aber wie bekommen wir nun unseren eigenen lustigen Hund ins IPFS?
Wir fangen erstmal klein an. Erinnerst du dich an das `>` ? Erstellen wir uns eine einfachte Textdatei mit `DEIN TEXT HIER > awesometext.txt` (und denk daran, der Name der Datei ist unwichtig).

![Screenshot Beispiel Textinput](http://ipfs.io/ipfs/QmP1z4MCrWxKnjRKcEFVXcoFUAPXu3D1iyRfEvFyKsC8ib/cmd_2018-02-12_17-05-05.png)

Nun können wir mit `ipfs add DATEI` die Datei hinzufügen. Liegt die Datei nicht im IPFS-Verzeichnis, kannst du auch den Pfad eingeben (also `\PFAD\ZUR\DATEI.wasauchimmer`)

![Screenshot Beispiel add-Befehl](http://ipfs.io/ipfs/QmP1z4MCrWxKnjRKcEFVXcoFUAPXu3D1iyRfEvFyKsC8ib/cmd_2018-02-12_17-07-02.png)

Nun bekommen wir unseren Hash als Ausgabe (Bsp.: `QmdcNGWQ45ADdavikh2HhDaPVGaD9W3R8C6TeJdS174ma3`). Diesen können wir nun an unsere Freunde schicken oder online stellen. Ebenso können sie z.B. für D.Tube genutzt werden.

Beim Adden wird die Datei auch automatisch gepinnt, d.h. sie bleibt so lange in deinem lokalen Repository, bis du sie entpinnst. Was das genau ist, sehen wir uns in einem anderen Teil an.

Übrigens kann man auch komplette Ordner adden, indem man einfach statt `DATEI`  den `PFAD/` und ein `-r` eingibt. Man erhält dann den [Hash des Ordners](http://ipfs.io/ipfs/QmP1z4MCrWxKnjRKcEFVXcoFUAPXu3D1iyRfEvFyKsC8ib) und kann z.B. über den Browser eine Datei ganz normale über ihren Namen abrufen. Um z.B. ein Bild aus diesem Ordner zu verlinken kannst du also den Pfad `/ipfs/QmP1z4MCrWxKnjRKcEFVXcoFUAPXu3D1iyRfEvFyKsC8ib/howto_header.jpg`nutzen (sehr sinnvoll beim Erstellen von Websiten, dazu komme ich aber in einem späteren Part).


----------
Und das war es auch schon für diesen Part. Wie immer gebe ich den Hinweis, dass diese Tutorialreihe unter der CC BY 4.0 steht und du **gerne** den Beitrag auch auf anderen Netzwerken teilen kannst (bitte mit Namensnennung).
Wie immer ermuntere ich, Fragen, Disskussionen und Vorschläge für weitere Parts in den Kommentaren da zu lassen. 

Bis zum nächsten Part!

BB,
JanSe

*Unfunny Funfact: Eigentlich sollte jetzt hier stehen, dass du alle Bilder über IPFS siehst. Leider cachen Busy und Steemit die Bilder direkt, so dass ich nicht kontrollieren kann, von welcher Quelle sie kommen. Einerseits natürlich gut, andererseits kann man dann keine Bilder sehen, wenn die Cache-Server mal offline sein sollten (deswegen funzt auch der Selftest, der eigentlich am Anfang des Postes stehen sollte, nicht). Wie stehst du dazu? Auf deine Meinung freue ich mich 😁*

![CC 4.0 By Badge](https://licensebuttons.net/l/by/4.0/88x31.png)
👍 , , , , , , ,