kosmos-industrie40 / kosmos-local-blockchain-connector

Lokale KOSMoS Komponente "Blockchain Connector"
2 stars 2 forks source link

Lokale KOSMoS Komponente "Blockchain Connector"

Mit diesem Repository wird die lokale KOSMoS Komponente Blockchain Connector (LKK-BCC) realisiert.

Der LKK-BCC stellt eine Schnittstelle zwischen den lokalen KOSMoS Komponenten und der Blockchain-API bereit.

Changelog
Todo Liste

Voraussetzungen

Wenn die LKK-BCC ohne KOSMOS-MQTT gestartet werden soll (z.B. zu Testzwecken), muss im CONFIG.env die Variable USE_STANDALONE_NO_MQTT auf true gesetzt werden.

Installation

Test

Das docker-compose-test.yml wird für die test-Version benutzt.

Zum Test kann ein Standalone-Blockchain-Connector gestartet werden:

$ make build 
$ make up

Zu stoppen genügt ein $ make down

Produktion

Die Produktionsversion wird mit Docker gestartet:

$ docker run \
    -d \
    --net kosmos-local \
    --domainname=${KOSMOS_LOCAL_MQTT_CLIENT_ROLE_FQDN} \
    --hostname=bockchain-connector \
    --name blockchain-connector \
    -e TZ=Europe/Berlin \
    -e VAULT_TOKEN=${VAULT_TOKEN} \
    -e USE_TLS=true \
    -e USE_STANDALONE_NO_MQTT=false \
    -e BC_API_PRODDATA=http://<bc-api>/storage/prodData \
    -e BC_API_MACHINES=http://<bc-api>/machine \
    -e BC_API_CONTRACTS=http://<bc-api>/contract \
    -e BCC_CONFIG="[{ \
            "machineId": "14ca47df-3872-4d05-b6fe-dabb2dcb92ea", \
            "sensorId": "sensor1inmachine1", \
            "mqtt-topic": "kosmos/machine-data/<machineId>/sensor/<sensorId>/update", \
            "blockchain-endpoint": "<BC_API_PRODDATA>", \
            "mapping": "none" \
        }]"
    -e MY_PKI_URI=https://${KOSMOS_LOCAL_MQTT_CA_FQDN}:8201/v1/${KOSMOS_LOCAL_MQTT_PKI_PATH}/issue/${KOSMOS_LOCAL_MQTT_CLIENT_ROLE_PATH} \
    -e MQTT_BROKER_FQDN=${KOSMOS_LOCAL_MQTT_BROKER_HOSTNAME}.${KOSMOS_LOCAL_MQTT_BROKER_ROLE_FQDN} \
    -p 10005:1880 \
    harbor.kosmos.idcp.inovex.io/ondics/blockchain-connector:0.3.0 \
        > /dev/null && echo " [OK]"

Oberfläche

Wenn der Container gestartet ist The Node-RED Editor can be reached at http://...

Anmeldung im Node-RED Editor mit admin/kosmos

Das Node-RED-Dashboard ist erreichbar unter http://.../ui

Der Status kann (im Container) mit

curl localhost:1880/health | jq

abgefragt werden.

Konfiguration

Der Container ist stateless und wird über Umgebungsvariablen beim Start konfiguriert.

Docker-Env Variablen

Aufbau BCC_CONFIG

Ein JSON-Array mit Einträgen für Mqtt-Topics. Jeder Eintrag besteht aus:

Beispiel:

[
    {
        "machineId": "14ca47df-3872-4d05-b6fe-dabb2dcb92ea",
        "sensorId": "sensor1inmachine1",
        "mqtt-topic": "kosmos/machine-data/<machineId>/sensor/<sensorId>/update",
        "blockchain-endpoint": "<BC_API_PRODDATA>",
        "mapping": "none"
    }
]

Funktionsweise

Die LKK-BCC macht folgendes:

Als Blockchain wird Hyperledger Fabric verwendet, die Kommunikation findet über eine HTTP-API statt

Dokmentation der API: http:///docs

Dashboard

Das Dashboard bietet:

Credits

Dieses Repo wurde erstellt im Rahmen des BMBF Forschungsprojektes KOSMoS gefördert durch das https://www.bmbf.de/

Verwendete Software und Technologien:

Author

(C) 2022 Ondics GmbH