Blockchain Generator
    Die Daten für die Blöcke in der Kette werden mittels ARGV an den Blockchain Generator übergeben.

    Weiter wird die exakte Uhrzeit (des Servers) bis zum Nanosekundenbereich (tv_nsec), festgehalten.

    Nun wird die nächste freie Blocknummer in der Blockkette ermittel, dazu kommt die TCP Socket API zum Zuge die wiederum mittels
    TLS (libressl) verschlüsselt wird. Diese Funktion prüft in der redis in-memory Datenbank nach dem letzten validen Block.
    Im gleichen Zuge wird auch der Prevoius Hash (Vorherige Hash des letzten Blocks) abgefragt.

    Aus der Transaktion, plus Uhrzeit, plus Blocknummer, plus Prevoius Hash wird mittels der SSL API (LibreSSL) ein SHA1512 Hash gebildet.

    Dann wird mittels gpgme (GnuPG API) der Hashblock verschlüsselt, sowie eine GPG Signature daraus gebildet. Daraus läßt sich ermittel, welcher
    Server den Block generiert hat und der Hash des Blocks wird vor Manipulation kryptographisch gesichert .
    Die GPG Signature besteht aus einem AES256 Schlüssel der eine SHA512 langen Signatur erzeugt (base64 Format).

    nach der Generierung des neuen Blocks erfolgt das Senden des Blocks an den Blockchain Server. Die Übermittlung findet mittels TLS bzw.
    libreSSL/TLS API statt. Als Transportverschlüsselung kommt "ECDHE-RSA-AES256-GCM-SHA512" zum Einsatz, sowie das "Perfect Forward Secrecy"
    verfahren auf Basis des TLS 1.2 Protokolls. Das Server Zertifikat hat eine Länge vom 16384 bytes .

    Nachdem der Block zum Blockchain Server gesendet wurde, wird dieser (auch mittels TLS) an die verfügbaren Peers gesendet.
    Erst wenn mind. 5 Peers und nach erfolgreicher Validierung, den Erhalt des Blocks melden, kann der Block
    in die Kette aufgenommen werden. Der Blockchain Server medlet sein "OK" zurück und die gesammte Transaktion ist nun valide in der Blockchain Kette integriert.

Blockchain Server
    Der Blockchain Server überprüft beim Starten ob alle die ihm bekannten Peers ereichbar sind und ob die der verschiedenen Peers valide sind, bzw.
    die Blöcker der Peers zu der Kette des lokalen Server passen. Die Kommunikation geschiet verschlüsselt mittels TLS 1.2 "ECDHE-RSA-AES256-GCM-SHA512" .
    Das Server Zertifikat hat einen 16384 bytes langen Schlüssel.

SAP Blockchain Connector
    Der SAP_BC legt die Daten Verschlüsselt mit GPG (AES256) lokal auf einer RAM Disk ab.
    Via SSH kann der SAP_BC den Blockchain Generator ansprechen und die Daten verschlüsselt über das Netzwerk senden,
    daher findet eine User authentifizierung am Blockchain Gernertaor statt.
    
Features
    Netzwerk API
    SHA512 Transaktions Hashes
    GPG Verschlüsselung und Signature mit AES256 und SHA512
    Transportverschlüsselung mittel TLS 1.2 und ECDHE-RSA-AES256-GCM-SHA512
    SAP Blockchain Connector für SAP ERP 6.0 (FI_CO usw.)
    Transaktions Zeiterfassung im Nanosekunden Bereich
    Nutzung der redis in-meory Datenbank
    Nutzung vom RAM Disks
    Verteilen der Blöcke in einem Perr-to-Peer Netzwerk
    Thread basierendes TCP Verbindungsverwaltung
    Zyklische Validerung der gesammten Kette auf allen Peers.

 

Programmiert ist die Blockchain Suite in C++