Hi zusammen
Heute will ich euch eine einfache Möglichkeit vorstellen die Steemit Blockchain mal ein wenig unter die Lupe zu nehmen. Bestimmt habt ihr schon Auswertungen gesehen oder vielleicht hat jemand im Chat schnell eine angefertigt, wie ihr euch denken könnt ist das mitnichten Magie sondern ein paar Tools mit ein paar Abfragen.
Was braucht ihr ?
Wir werden die Blockchain nicht direkt angehen, sondern eine aufbereitete Kopie in einer SQL Datenbank. Das macht uns das Leben sehr viel leichter und führt letztlich zu den selben Ergebnissen :)
Um das tun zu können brauchen wir einen SQL Client, ich benutz an dieser Stelle HeidiSQL. Das Tool ist kostenlos und tut alles was ich an dieser Stelle brauche.
Ansonsten braucht ihr sicherlich ein paar Minuten eurer Zeit um das ganze im nächsten Schritt einzurichten.
Einrichten des SQL Clients
Für die Abfragen benutzen wir das Steemsql Projekt, bei dem es darum geht die Blockchain als SQL Datenbank zur Verfügung zu stellen.
Als ersten Schritt nach der Installation des Heidi SQL Clients müssen die Verbindungsparameter eingestellt werden, dass sieht im Detail wie folgt aus
Benutzername: steemit
Passwort: steemit
Mit den Einstellungen im Bild sollte die Connection direkt klappen, und weiter gehts im nächsten Abschnitt.
Erste Schritte in SQL
Wenn die Verbindung aufgebaut ist sieht das Bild wie folgt aus:
Was ihr hier seht sind die Tabellen, in die das Steemsql Projekt die einzelnen Daten sortiert.
Alle Informationen innerhalb der Blockchain sind hier abgelegt, eine Menge Informationen, die nur darauf warten entdeckt zu werden :)
SQL ist eine Abfragesprache, es wird jeweils durch setzen von einer oder mehreren Bedingungen eine Auswahl getroffen und diese Daten dann angezeigt. Lasst uns das an einem kleinen einfachen Beispiel testen.
Um in den Abfragemodus zu kommen müsst ihr den Reiter mit dem blauen Pfeil und dem Wort Abfrage anklicken. Dann verändert sich das Bild wie folgt.
Wenn ihr jetzt zum Beispiel wissen wollt welche Transaktionen innerhalb von Steemit ihr getätigt habt, dann könnt ihr das folgende SQL Statement eingeben.
Ich habe das hier schon ausgeführt, mit dem blauen Pfeil oben in der Leiste oder mit der Taste F9, dann erscheint folgendes Bild mit der Anzeige meiner Daten.
Hier kurz der Befehl auseinandergenommen:
- select * wählt alle Elemente einer Tabelle aus
- from bezeichnet die Tabelle aus der wir auswählen in dem Fall dbo.TxTransfers
- where startet den Bedingungsblock,
- dieses "from" bezeichnet eine Spalte in der Tabelle, nämlich die Spalte in der der Ursprung der Transaktionen gespeichert wird. Die Gänsefüßchen sind wichtig da from auch ein SQL Steuerwort ist und wir kennzeichnen wollen, dass wir hier die Spalte in der Tabelle meinen. Ingesamt lautet die Bedingung "from" = 'jedigeiss' (auch hier sind die einfachen ticks um den Wert wichtig). Das heisst wir durchsuchen die ganze Tabelle und werfen nur Datensätze raus in der Transaktionen stehen die von mir (jedigeiss) ausgegangen sind.
Wie ihr im Bild sehen könnt werden alle meine Transaktionen angezeigt, wollt ihr das eingrenzen könnt ihr das über den Timestamp machen. Dieser ist schon in der Tabelle dbo.TxTransfers enthalten. Wenn ihr eine Tabelle anklickt seht ihr die Inhalte, wie auf folgendem Bild.
Wenn ihr jetzt, zum Beispiel, nur die Transaktionen ab dem 30.09. haben wollt müsst ihr das wie folgt weiter einschränken.
Als Verbindungswort benutzen wir in diesem Fall AND da wir ja wollen das die ursprüngliche Bedingung weiterhin gilt. Die ganze Abfrage sieht dann wie folgt aus: select * from dbo.TxTransfers where "from" = 'jedigeiss' AND "timestamp" >='2017-09-30'
Als Ergebnis werden dann die Transaktionen eingeschränkt und nur die ausgegeben die auch den Bedingungen entsprechen.
Wie ihr seht ist ne Menge an Informationen direkt verfügbar, wenn man weiss wie man auf diese zugreifen kann.
An dieser Stelle beende ich den ersten Post zu SQL und Steemit, falls ihr Fragen habt ich bin meistens im Steemit.Chat anzutreffen.
Danke fürs Lesen !
Euer Jan
ps wenn etwas nicht verständlich war oder ihr gerne hättet, dass ich den Schwerpunkt auf ein bestimmtes Thema lege nutzt die Kommentare und teilt euch mit :) Danke