Förderjahr 2017 / Project Call #12 / ProjektID: 2200 / Projekt: BlockNinjas
In diesem Betirag möchten wir einen Einblick in die System-Architektur unserer Analyse-Plattform geben. Technisch sind wir mittlerweile sehr gut ausgestattet, da wir ein weiteres Fördermittel bekommen haben um Amazon Server zu finanzieren. Dem entsprechend konnte wir unsere Server Kapazitäten erweitern und auf schneller Cloud Rechner setzen. Da wir AWS aktuell benutzen haben wir hier unsere Architektur veranschaulicht:
Wir setzen vermehrt auf Elastic Compute Cloud - EC2 - um unsere Prozess performant zu gestalten. Als Persistenz-System verwenden wir Simple Storage Service - S3 - bzw. Relational Database Serivce - RDS.
Unser System weist, bei einem aktuellen Datenaufkommen von 1,1 Terrabyte - 5 Komponenten auf:
- Die Bitcoin Core Client installation, die die Daten aus der Bitcoin Netzwerk einholt
- Ein S3 "Bucket", der als Share Storage für die Roh-Blockchain Daten fungiert (die .blk Dateien)
- Der "Blockchain Analyzer", der die Blockchain verarbeitet und analysiert
- PostgreSQL Datenbank für die Abspeicherung der verarbeiteten Daten aus der Blockchain
- GraphQL-basierende API
Wie aus dem Diagramm oben hervorgeht, agiert der Bitcoin Client als Schnittstelle zwischen unserem System und dem P2P Netzwerk von Bitcoin. Wir haben darauf einen "Full Node" installiert, welche somit ALLE Daten aus dem Netzwerk herunterlädt und natürlich 24h läuft um das System auf dem aktuellsten Stand zu halten. Diese Rohdaten werden in die S3 Bucket geladen. In regelmäßigen sehr kurzen Intervallen überprüft der Blockchain Analyzer die Blockchain Daten (S3) vom Bitcoin Client auf "Neues" und importiert diese gleich in die Datenbank