März 3, 2019

Teil 2: Der IOTA Daten Marktplatz: Eine technische Einführung

Teil 2: Der IOTA Daten Marktplatz: Eine technische Einführung

Veröffentlichung von Sensordaten

https://data.iota.org

Im vorherigen Artikel dieser Serie haben wir die Sensorintegration ausführlich erörtert. Heute lernen wir, wie du Sensordaten mit einem einfachen Skript an das Tangle übermitteln kannst.

Schauen wir uns den Screenshot aus dem vorherigen Artikel nochmal an, damit wir von dort aus beginnen können.

Klicke unten auf der Sensorkarte auf den Link 'Download Publish Script'. Dadurch wird der Download eines vorkonfigurierten ZIP-Archivs initiiert.

Wenn du den Inhalt des Archivs heruntergeladen und extrahiert hast, öffne eine IDE deiner Wahl, um mit dem Skript zu arbeiten. Wir schlagen vor, du verwendest eine einfache, aber leistungsfähige IDE wie Atom oder VS Code. Du kannst auch einen einfachen Texteditor verwenden, wenn dir das lieber ist.

Die Archivstruktur (auch als Projekt bezeichnet) ist recht einfach und enthält neben der Projektdokumentation (README.md) eine Reihe von JS- und json-Dateien.

Bitte lies immer die README.md Datei, bevor du das Skript verwendest.

Fertig machen:

  • Installiere Node.js (falls das noch nicht geschehen ist).
  • Überprüfe die Node.js-Version. Führe in deiner Konsole oder deinem Terminal „node -v“ aus.

Wir verwenden Node.js Version 8 und höher. Bitte aktualisiere sie, wenn deine Node.js-Version älter ist.

  • Installiere einen Paketmanager (falls das nicht geschehen ist). Ich schlage vor: Yarn oder NPM
  • Lese die README.md Datei sorgfältig.
  • Installiere die Pakete, indem du je nach Paketmanger eine yarn- oder npm-Installation ausführst.

Das Skript ist vorkonfiguriert, um damit Daten für den ausgewählten Sensor zu veröffentlichen. Du findest die Sensor-ID und seinen geheimen Schlüssel in der Datei config.json.

Wenn du dasselbe Skript für mehrere Sensoren verwendest, beachte bitte, dass auch der geheime Schlüssel geändert werden sollte. Andernfalls kannst du deine veröffentlichten Daten nicht entschlüsseln.

Standardmäßig wird das Skript im Debug-Modus ausgeführt, d.h. es werden keine Daten veröffentlicht. Alle erfassten Daten werden in der Konsole ausgegeben, sodass du sie überprüfen und anpassen kannst. Sobald die Nutzlast gut aussieht, kannst du den Debug-Modus deaktivieren, indem du die Debug-Variable in der Datei config.json auf false setzt (siehe Abbildung unten) und danach die Daten veröffentlichst.

Bitte beachte, dass der Proof-of-Work-Vorgang für jedes Datenpaket durchgeführt wird. Dies kann je nach Hardware bis zu 60 Sekunden lang dauern. Bitte berücksichtigen dies und unterbreche das Skript nicht, während dieser Vorgang ausgeführt wird.

                                                                    .   .   .

Sensordaten verarbeiten

Zu diesem Zeitpunkt zielen wir nicht auf einen echten Sensor ab. In diesem Tutorial lesen wir Daten aus einer statischen Datei aus und fordern einen API-Endpunkt an, der Daten liefern soll.

Eine Bibliothek, die echte Sensordaten liest, erfordert viel mehr technisches Know-how und ist außerdem zu spezifisch für einen ausgewählten Sensor.

Die Datei index.js enthält zwei Beispiele:

  • Beispiel 1 zeigt, wie Sensordaten aus einer statischen Datei oder Datenbank ausgelesen werden. Für dieses Beispiel haben wir eine data.json-Datei mit Beispieldaten bereitgestellt.
  • Beispiel 2 veranschaulicht, wie das Skript in einer Endlosschleife ausgeführt wird, um Daten in bestimmten Zeitintervallen abzufragen. Es liest Daten von einem Remote-Server und enthält eine Bedingung, um die Schleife zu unterbrechen (d. H. Die Ausführung zu stoppen), sobald ein definierter Statuscode empfangen wird. Für dieses Beispiel verwenden wir einen Server, der Beispieldaten bereitstellt. Aktualisiere zum Ändern der Server-URL das Feld serverUrl aus der Datei config.json im selben Ordner.

Sehen wir uns an, wie du die einzelnen Beispiele verwendest:

  1. Beispiel 1 liest die Daten aus einer JSON-Datei. Wir gehen davon aus, dass diese Datei ein Array von Datensätzen enthält, wobei jeder Datensatz über eigene Daten verfügt, die für die Nutzlast relevant sind.

Alternativ kannst du eine Funktionalität implementieren, die Daten aus einer Datenbank deiner Wahl liest.

Wenn du die Datenquelle gesichert hast, verarbeitest du sie in einer Schleife und sendest die Nutzlast an die publish() - Funktion. Diese Funktion erledigt alle erforderlichen Aufgaben, um deine Daten im Tangle zu veröffentlichen.

In dem bereitgestellten Beispiel haben wir eine Debug-Funktion integriert, sodass du deine Nutzlast sicher überprüfen kannst, ohne sie in das Tangle veröffentlichen zu müssen.

Wenn du weißt, was du tust und absolut sicher bist, dass deine Nutzlast korrekt ist, kann das Veröffentlichungsskript auf nur 3 Zeilen Code schrumpfen:

                                                                    .   .   .

2.  Beispiel 2 fordert Datensätze in einer Endlosschleife von einem Remote-Server an. Für dieses Beispiel verwenden wir die Star Wars-API, die Beispieldaten bereitstellt. Um die Server-URL zu ändern und auf deinem Server zu verweisen, aktualisiere das Feld serverUrl aus der Datei config.json im selben Ordner.

Da einige Aufrufe dieser API zu einer leeren Antwort führen können und die Gesamtmenge der Daten derzeit nur 73 Einträge enthält, haben wir zusätzlich eine Logik eingeführt, mit der zufällig eine Datei vom Server angefordert wird. Mit anderen Worten, die Funktion getRandomInt ist nur für das gezeigte Beispiel relevant und für die Erfassung deiner Sensordaten nicht erforderlich.

Eine vereinfachte Version dieses Skripts könnte wie folgt aussehen:

Wir haben heute viel behandelt, also nimm dir die Zeit den Artikel zu überdenken, mit dem Skript zu spielen und Fragen zu stellen.


Quelle: https://blog.iota.org/the-iota-data-marketplace-a-tech-intro-part-3-eea5cbcd1eb7