Wie ipfs-Node-Besitzer Dtube-Channel unterstützen können und was der Channelbesitzer dafür tun muss.

Unter einem der Letzten Viedeos von @sempervideo habe ich angemerkt, dass ipfs ein guter Weg wäre um @sempervideo zu unterstützen.
Zu diesem Zweck habe ich eine Methode, des ipns grob skizziert. Und was soll ich sagen ... ich habe rumprobiert und die detaillierte Anleitung findet ihr hier:

Was der Channelbesitzer tun muss

Wie man Viedeos über ipfs auf Dtube hochladen kann wurde schon von @sempervideo
in Dtube: Videos schneller hochladen hervorragend erklärt.

Um es euren Unterstützern einfacher zu machen, all eure Videos vor-zuhalten empfiehlt es sich alle Videos in einen Ordner zu packen und mit ipns (ja mit n nicht mit f, das steht für interplanetary name service)
darauf zu verweisen. So könnt ihr den Ordner ändern aber der Verweis bleibt gleich.

Als erstes wird der Ordner mit dem Befehl

ipfs add -r C:\Pfad\zu\Ordner

hinzugefügt.
Nach Eingabe dieses Befehls wird eine liste von Hashes ausgegeben
der Letzte ist der Ordnerhash.

Um das auf den Ordner verweisen vom eigentlichen Node zu trennen empfiehlt es sich mit
ipfs key gen --type=rsa --size=2048 myipfspublishkey
einen seperaten Key zu erstellen. Diesen sollte man sichern (Nutzerordner\.ipfs\keystore\myipfspublishkey) , denn nur mit diesem Key ist es möglich den Verweis zu verändern.
Nun muss auf den Ordnerhash verwiesen werden. Dies gelingt mit
ipfs name publish --key=myipfspublishkey Ordnerhash
Die Ausgabe sieht folgendermaßen aus:
Published to ipnshash: /ipfs/Ordnerhash

Der ipnshash ist der Verweis.
Um ihn zu testen kann man in einem Browser öffnen (es kann eine weile dauern bis es reagiert).
Hier ist darauf zu achten /ipns und nicht /ipfs dem hash voranzustellen.

Nun könnt ihr den ipnshash mit der Community teilen und hoffen :)

Wenn der Ordner erweitert wurde muss das folgende getan werden:

  1. Der Ordner muss mit dem Befehl
    ipfs add -r C:\Pfad\zu\Ordner
    erneut hinzugefügt werden.

  2. Der alte Ordnerhash sollte vom eigenen Node entfernt werden
    dazu wird zu nächst der alte Ordnerhash mit
    ipfs name resolve ipnshash
    abgefragt und mit
    ipfs pin rm Alterordnerhash
    vom eigenen Node entfernt werden.

  3. Nun wird auf den neuen Ordnerhash verwiesen.
    ipfs name publish --key=myipfspublishkey Ordnerhash
    Dies führt zum gleichen ipnshash wie zuvor.

Was der ipfs-Node-Besitzer tun kann

Um unterstützen zu können benötigt man einen ipfs-Node.
Die kostenschonende Variante ist ein Raspberry pi.
Hierzu hat @sempervideo wiedereinmal ein fulminantes Video erstellt.
Raspberry Pi: IPFS-Node installieren

Ergänzend solltet ihr in der ~/.ipfs/config im Abschnitt Reprovider Strategy von "all" auf "pinned" ändern, so wird nur das an das Netzwerk verteilt was wirklich gepinnt wurde.
Zudem könnt ihr im Abschnitt Datastore mit Parameter StorageMax definieren, wie viel Speicher ihr dem Netzwerk zur Verfügung stellen wollt.
Standardmäßig ist StorageMax auf "10GB" gesetzt.

Der einfachste Weg für den Unterstützer ist nun mit dem Befehl
ipfs pin add /ipns/ipnshash
den Videoordner hinzuzufügen.
Um es automatisiert zu aktualisieren kann dieser Befehl als cronjob hinzugefügt werden.

Hier ist der Nachteil, dass der vorherige Ordnerhash weiterhin auf dem Node vorhanden ist.
Um das zu verhindern, sollte das folgende Shellscript von Anfang an verwendet werden.

#!/bin/bash
# usage: ./pin_update  

IPFS=ipfs


mkdir -p ${HOME}/.ipns_pin_update_old_hashes
oldhashfile=${HOME}/.ipns_pin_update_old_hashes/$2

new_ipfs_hash=`$IPFS name resolve $1`



if [ -f $oldhashfile ];then
    old_ipfs_hash=`cat $oldhashfile`
    if [ $old_ipfs_hash != $new_ipfs_hash ];then
        $IPFS pin update $old_ipfs_hash $new_ipfs_hash
        echo $new_ipfs_hash > $oldhashfile
        echo "Ordner wurde aktuallisiert."
    else
        echo "Ordner ist bereits aktuell."
    fi
else
    echo "script wird das erste mal ausgeführt"
    $IPFS pin add $new_ipfs_hash
    echo $new_ipfs_hash > $oldhashfile
    echo "Ordner wurde hinzugefügt."
fi

Zunächst müsst ihr den Text auf eurem Node beispielsweise mit nano pin_update speichern
und mit chmod +x pin_update ausführbar machen.

Das erste mal solltet ihr es direkt im Terminal ausführen, um zu sehen, dass es funktioniert.
Mit dem Befehl ./pin_update ipns-hash Ordnername (es kann eine Weile dauern bis es reagiert).
Der Ordnername ist frei wählbar muss aber dann beibehalten werden.
Es empfiehlt sich den Channel-Namen zu verwenden.

Ihr solltet es ein zweites mal ausführen, das Script wird euch dann mitteilen, dass der Ordner bereits aktuell ist.

Will man das ganze automatisieren so geht dies mit einem Cronjob.
Mit crontab -e kann nun folgende Zeile am Ende hinzugefügt werden:

0 5 * * * /path/to/script ipnshash ordnername

Diese führt zu einer täglichen Aktualisierung um 5 Uhr.
Ist man vollkommen übermotiviert, so kann man auch zu jeder vollen Stunde mit

0 * * * * /path/to/script ipnshash Ordnername

aktualisieren.
Es ist vermutlich nicht empfehlenswert, wenn jeder die Aktualisierung zur vollen Stunde durchführt.
Also wählt anstelle der 0 eine zufällige Zahl zwischen 0 und 59.

An dieser Stelle noch eine kleine Wahrung an alle ipfs-Node-Besitzer.
Der Channel-Besitzer ist so in der Lage jegliche Datei indirekt zu eurem Node hinzuzufügen.
Für alle Sempervideofans:
Sprecher kann Bilder von seinen Kollegen hinzufügen.
Für die daraus resultierenden Schäden übernehme unter keinen Umständen die Verantwortung ;)

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now