Blue Horizon – Mit der Blockchain Flugzeugen auf der Spur

Blockchain, IoT und Raspberry Pi – das sind nur einige der elektrisierenden Buzz-Words, die auch mich zunehmend begeistern. Als ich dann in dem Buch Ethereum (Autor: Henning Diedrich) von dem Open Source Projekt Blue Horizon las, fand ich, dass es endlich an der Zeit war, meinen vernachlässigten Raspberry Pi wieder in die Pflicht zu nehmen.

Hinterm Horizont geht es weiter – dezentrale, autonome Verarbeitung von Daten

Die Idee hinter Blue Horizon ist es, eine dezentrale, autonome Struktur bereitzustellen, bei der sich jedes Endgerät, wie zum Beispiel ein Sensor (sprich: einen Raspberry Pi mit Antenne), direkt mit jedem anderen Endgerät verbinden kann, um die Verarbeitung von Streaming-Daten zu ermöglichen, und das direkt dort, wo die Daten anfallen, nämlich an der Quelle. Durch die Verarbeitung der Daten direkt an der Quelle erhält man qualitativ hochwertigere Daten, die für sofortige und autonome Aktionen (zum Beispiel beim maschinellen Lernen) verwendet werden können. Über Blue Horizon können Microservices an den Endgeräten bereitgestellt werden, mit deren Hilfe zum Beispiel Analytik oder kognitive Berechnungen betrieben werden können.

Für Blue Horizon wurden bereits einige Anwendungen programmiert, die sogenannten Horizon Insights, die das Sammeln und Auswerten von Daten ermöglichen. Einer der vorhandenen Horizon Insights ist der SDR Aircraft Tracker.

Blue Horizon: ein kurzer Überblick

  • Blue Horizon basiert auf der Blockchain-Technologie.
  • Blue Horizont ist dezentralisiert und verwendet Peer-to-Peer (P2P) Technologien.
  • Blue Horizon ermöglicht die Entdeckung von bisher unbekannten Endgeräten, wobei Geräteidentitätsinformationen in der Blockchain gespeichert werden.
  • Blue Horizon erleichtert die Vertrauensbildung zwischen bisher nicht vertrauenswürdigen Parteien, die nur auf der Existenz eines gegenseitig vertrauenswürdigen Dritten beruhen.
  • Teilnehmer von Blue Horizon können ihre Echtzeit-Daten bereitstellen oder die Echtzeit-Daten anderer Teilnehmer weiterverwenden. Geräte-Interaktionen werden durch selbstausführende smart contracts auf der Blockchain vollständig automatisiert.
  • Blue Horizon liefert verschlüsselt signierte Codecontainer direkt an Endgeräte, die in eingeschränkten Sandbox-Umgebungen ausgeführt werden können.

Hardware und Software

Das Ganze ist mehr als die Summe seiner Teile – das gilt praktisch für jedes Raspberry Pi Projekt. Daher zunächst erst einmal ein Überblick über die von mir verwendete Hardware und Software.

Hardware:

  • Raspberry Pi 3 Model B
  • 16 GB SanDisk Ultra microSDHC Speicherkarte
  • Netzteil für Raspberry Pi
  • Antenne NooElec NESDR Mini 2 SDR
  • Windows-Laptop mit Slot zum Lesen und Schreiben von Speicherkarten

Software:

1. Schritt: Horizon Image auf Raspberry Pi initialisieren und konfigurieren

Die zentrale Software ist das Horizon Image für Raspberry Pi. Das Horizon Image enthält das Betriebssystem (Debian) und die Horizon Insights.
Das Horizon Image muss auf der Speicherkarte installiert und initialisiert werden (ein einfaches Kopieren reicht nicht aus), damit der Raspberry Pi mit der Speicherkarte gebootet werden kann. Das Programm Etcher ermöglicht das Initialisieren eines Image auf einer Speicherkarte.

Horizon Image auf Speicherkarte installieren:

  1. Download des Horizon Image für Raspberry Pi.
  2. Entpacken der Zip-Datei auf der lokalen Festplatte.
  3. Die Speicherkarte in den Kartenleseslot im Windows-Laptop einführen.
  4. Starten des Programms Etcher.

Etcher: Image und Speicherkarte auswählen

  1. Das Image auswählen, die Speicherkarte auswählen und die Initialisierung (Flash!) starten.
    Der Vorgang dauert ca. eine Minute.
    Mit der Speicherkarte könnte jetzt der Raspberry Pi mit einem gesunden Debian-Betriebssystem gebootet werden. Jedoch hat man noch keinen Zugriff auf den Rasperry Pi. Dazu musss noch das W-Lan und SSH konfiguriert bzw. aktiviert werden.

2. Schritt: Verbindung zum W-Lan konfigurieren

Das W-Lan für den Raspberry Pi kann über die Datei wpa_supplicant_cred.txt konfiguriert werden, die sich auf der Dokumentenroot der Speicherkarte befindet.

  1. Die Datei wpa_supplicant_cred.txt im Notepad öffen.
  2. Nach dem Eintrag wpa_ssid suchen und dort den Namen des W-Lans eintragen.
  3. Bei dem Eintrag wpa_passphrase den Schlüssel (Passwort) des W-Lans eingeben.
  4. Die Datei  wpa_supplicant_cred.txt speichern.

3. Schritt: SSH aktivieren

Zum Aktivieren von SSH muss muss nur eine leere Datei SSH auf der Dokumentenroot der Speicherkarte erstellt werden. Die Datei SSH kann ebenfalls mit dem Notepad erstellt werden.

Nun sind alle Konfigurationen abgeschlossen.

4. Schritt: Einloggen in den Rasperry Pi

Um sich beim Rasperry per SSH einzuloggen, muss zunächst die IP-Adresse des Rasperry Pi ermittelt werden.

  1. Die Speicherkarte aus dem Windows-Laptop auswerfen und entnehmen und in den Slot für Speicherkarten im Raspberry Pi einführen.
  2. Raspberry Pi an Netzteil anschließen.
    Der Raspberry Pi bootet.
  3. Mit dem Windows-Programm Advanced IP Scanner die IP-Adresse des Raspberry Pi ermitteln.
  4. Mit PuTTY (installiert auf dem Windows-Laptop) mit der ermittelten IP-Adresse mit dem Raspberry Pi verbinden über root@IP-Adresse:
    Benutzername: root
    Passwort: horizon
    Zu beachten ist, dass der Rasperry Pi mit einem amerikanischen Tastatur-Layout gebootet wird. Das z im Passwort muss daher bei einem deutschen Tastatur-Layout als y eingegeben werden.
    Über den Befehl raspi-config kann das Programm zur Konfiguration einiger wichtiger Einstellungen ausgerufen werden, unter anderem das Einstellen des Tastaturlayouts.

5. Schritt: Rasperry Pi bei Blue Horizon registrieren

Alle Daten, die an Blue Horizon übertragen werden, werden dort auf einer Karte dargestellt. Um die Daten des SDR Aircraft Trackers zu Blue Horizon übermitteln zu können, muss der Raspberry Pi, der die Daten über die Antenne NooElec NESDR Mini 2 SDR empfängt und dann an Blue Horizon sendet, zuerst bei Blue Horizon registriert werden.

Blue Horizon aktualisieren

Es empfiehlt sich, bevor man die Registrierung durchführt, Blue Horizon auf der Speicherkarte auf den aktuellsten Stand zu bringen. Lange Zeit funktionierte die Registrierung nicht, erst nach einem Update von Blue Horizon.
Zum Update von Blue Horizon sind folgende beiden Befehle in der Kommandozeile vom Raspberry Pi einzugeben:

apt-get update
apt-get install horizon bluehorizon bluehorizon-ui

Nach der Aktualisierung ist der Rasperry Pi bereit für die Registrierung.

Für die Registerierung muss die Antenne NooElec NESDR Mini 2 SDR an einen der USB-Slots des Raspberry Pi eingesteckt und der Raspberry Pi neu gestartet werden.

Raspberry Pi bei Blue Horizon registrieren:

  1. Nach dem Neustart des Raspberry Pi, den Advanced IP Scanner auf dem Windows-Laptop starten und die IP-Adresse des Raspberry Pi im lokalen Netzwerk identifizieren.
  2. In einem Web-Browser auf dem Windows-Laptop, der ebenfalls mit lokalen Netzwerk über das W-Lan verbunden ist, die IP-Adresse des Raspberry Pi eingeben, z.B.
    http://192.168.2.116
    Folgende Seite wird angezeigt:

  1. Username, Password, Email und Edge Node Name eingeben und über Generate Token einen eindeutigen Token erzeugen.
  2. Continue klicken.
    Folgende Seite wird angezeigt:

  1. Share GPS location data aktivieren. Das ist nicht notwendig, wenn der Raspberry Pi mit der Antenne immer am gleichen Ort verwendet wird.
  2. Enable Blockchain for your edge node aktivieren. Damit werden die smart contracts mit dem Raspberry PI in der Horizon Blockchain aufgezeichnet.
  3. Continue klicken.
  4. In der Select a pattern Liste den Eintrag Location, Netspeed, and SDR for arm auswählen.
    Wichtig dabei ist, den Eintrag mit SDR auszwählen.
  5. Confirm klicken.
    Der Raspberry Pi verbindet sich mit der Horizon Blockchain und es dauert ein paar Minuten, bis folgende Seite, das Dashboard, angezeigt wird.

Dann dauert es eine ganze Weile, bis die smart contracts abgeschlossen sind. Insbesondere muss der smart contract für SDR ausgeführt werden, ansonsten können keine Flugzeuge beobachtet werden.

Dann endlich ist es soweit: Die getrackten Flugzeuge werden auf der Blue Horizon Karte angezeigt.

 

Anwendungen aktualisieren
Wenn eine Anwendung von Blue Horizon terminiert wird, wenn z.B. Blue Horizon keine Daten mehr vom Raspberry Pi empfängt, kann das Dashboard leider nicht dazu verwendet werden, eine Anwendung neu zu starten. Die einzige Möglichkeit, eine einmal beendete Anwendungen neu zu starten, besteht darin, Blue Horizon zu resetten. Resetten bedeutet, dass alle Daten zur Registrierung und der verwendeten Anwendungen auf dem Rasperry Pi gelöscht werden müssen und dass danach der Raspberry Pi wieder neu bei Blue Horizon registiert werden muss.
Das kann mit folgenden Befehlen bewerkstelligt werden:
mkdir -p /var/horizon/reg
cd /var/horizon/reg
find . ! -name env_vars -type f -exec rm -f {} +
wget -i https://raw.githubusercontent.com/linggao/horizon-utils/master/reg/filelist.txt
wget https://raw.githubusercontent.com/linggao/horizon-utils/master/update_horizon
chmod +x reg_all update_horizon
Danach das Update-Skript starten, das die Registerungsinformationen löscht:
./update_horizon

Damit ist der Raspberry Pi wieder bereit für die Registrierung. Die IP-Adresse des Raspberry Pi im Browser auf dem Windows-Laptop aufrufen und den Raspberry Pi erneut bei Blue Horizon registrieren (Details siehe oben).

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.