Mit Hyperledger Caliper Benchmarks für Smart Contracts erstellen

Die Leistungsmessung von Programmen und Infrastrukturen ist für alle Arten von Netzwerken wichtig, wenn Anwender optimal mit bestimmten Programmen arbeiten und Daten austauschen müssen. Anwendungen, die produktiv genutzt werden, oder die automatisch Vorgänge auslösen, sind abhängig von den zur Verfügung stehenden Ressourcen, aber auch  vom eigenen Quellcode, um ihre Aufgaben möglichst schnell und stabil zur Verfügung zu stellen.

Natürlich gilt das auch für Blockchains und die darin betriebenen Apps. Auch hier müssen die integrierten Programme möglichst schnell und ressourcenschonend arbeiten. Bei der Leistungsmessung helfen Tools, die zeigen, ob ein Programm in irgendeinem Bereich Leistungsprobleme hat, die für einen optimalen Betrieb behoben werden müssen.

Leistungsmessung in Blockchain-Netzwerken

Das ist der Sinn hinter Hyperleder Caliper

Hyperledger Caliper ist ein solches Tool, das dabei helfen kann Leistungsmessungen in Blockchain-Netzwerken und den darin integrierten Apps durchzuführen. Als Ergebnisse erhalten Entwickler und Administratoren Informationen, wie die Leistung verbessert werden kann.

Das Projekt wurde im Mai 2017 von Hyperledger ins Leben gerufen. Caliper ist das erste Tool zur Leistungsmessung, das für Projekte aus dem Hyperleder-Gewächshaus offiziell genutzt werden kann, um aussagekräftige Informationen zu liefern.

Bitcoin-Wallets entwickeln (Bild von Gerd Altmann auf Pixabay)

Es gibt natürlich bereits Tools, die Leistungen in Blockchain-Netzwerken testen können, allerdings sind diese nicht für die unterschiedlichen Projekte einheitlich anerkannt. Dazu kommt das Problem, dass die Tools häufig ihren Quellcode nicht zur Verfügung stellen und daher ein einheitlicher Vergleich zwischen verschiedenen Projekten und deren Leistungsmessung schwer bis unmöglich ist.

Caliper bietet eine einheitliche, transparente und nachverfolgbare Datenstruktur, um eine verlässliche Leistungsmessung durchführen zu können. Dabei handelt es sich um das erste Tool, mit dem Blockchain-Entwickler umfassend mehrere Projekte und deren Leistung miteinander vergleichen können. Dabei setzt Caliper auf einheitliche Metriken, die im Rahmen des Projektes festgelegt werden.

An dem Projekt arbeiten Entwickler von Huawei, Hyperchain, Oracle, Bitwise, Soramitsu, IBM und der Budapester Universität für Technologie und Wirtschaft mit. Hyperledger Caliper steht als Open Source zur Verfügung, wie die anderen Projekte bei Hyperledger auch. Zum Tragen kommt eine Apache 2.0-Lizenz.

Empfehlung: Bereits bei der Entwicklung von Blockchain-Apps mit Caliper arbeiten

Das Open Source-Tool Caliper arbeitet in diesem Zusammenhang mit verschiedenen Blockchain-Technologien, -Frameworks, -Tools und unterschiedlichen Plattformen zusammen. Die verschiedenen Frameworks für die Entwicklung von Blockchain-Anwendungen können umfassend mit Caliper genutzt werden.

Es ist empfehlenswert bereits bei der Entwicklung von Smart Contracts oder anderen Anwendungen im Blockchain-Bereich darauf zu achten die Leistung optimal zur Verfügung zu stellen. Aus diesem Grund sollte die Leistung einer Blockchain-Anwendung bereits beim Entwickeln regelmäßig gemessen werden. Dazu ist Caliper in der Lage. Zusätzlich kann das Tool auch im laufenden Betrieb Berichte erstellen, mit denen auch der produktive Nutzen der Blockchain messbar ist.

Blockchain-Anwendungen entwickeln

Daher empfehlen die Verantwortlichen bei Hyperledger bereits im Rahmen der Entwicklung Caliper einzubinden. Das gilt, neben der Entwicklung einer Blockchain mit Hyperledger Fabric, auch bei der Verwendung von anderen Tools und Frameworks wie Besu, Sawtooth oder Iroha, bereits frühzeitig auf Caliper zu setzen.

Caliper lässt sich auch direkt in CI/CD-Pipelines integrieren, um bereits frühzeitig bei der Entwicklung von Blockchains-Infrastrukturen die optimale Leistung sicherzustellen. Der Vorteil dabei liegt auch darin, dass bereits bei der Entwicklung von Blockchain-Anwendungen potentielle Leistungsprobleme frühzeitig entdeckt und behoben werden können.

Da an dieser Stelle in den meisten Fällen noch keine Anwender produktiv mit dem System arbeiten, lässt sich sicherstellen, dass keine Leistungsprobleme entstehen. Das Beheben von Leistungsproblemen kann bei frühzeitiger Entdeckung natürlich wesentlich schneller und damit günstiger erfolgen, als bei fertig gestellten Anwendungen, die über einen umfassenden Code verfügen.

Prozesse im Unternehmen für den Einsatz von Blockchain optimieren

Bei der Einführung von Blockchain-Technologien in Netzwerken kommt es natürlich zwangsläufig zu teilweise umfassenden Anpassungen der Prozesse und Abläufe im Unternehmen. Aus diesem Grund sollte in jedem Fall sichergestellt sein, dass diese Abläufe möglichst schnell und ressourcensparend ablaufen. Das spart Geld und erhöht die Akzeptanz der Benutzer.

Caliper nutzt bei der Leistungsmessung anerkannte Vorgehensweisen und Regeln, mit denen die verschiedenen Abläufe von Transaktionen in einer Blockchain umfassend messbar sind und Entwickler aus den Ergebnissen Erkenntnisse gewinnen, um zum Beispiel den Code von Smart Contracts zu verbessern, idealerweise bereits bei der Entwicklung und Aktualisierung.

Neben der Leistungsmessung für Entwickler, die zum Beispiel über Microsoft Visual Studio Code nutzbar ist, verfügt Caliper auch über verschiedene Ressourcenmonitore und Berichtsgeneratoren.

Hyperledger Performance & Scalability Working Group

Bei der Definition von einheitlichen Metriken zur Leistungsüberwachung mit Caliper hilft die Hyperledger Performance & Scalability Working Group (PWSG) mit der gemeinsame Definitionen für Leistungsindikatoren festgelegt werden.

Das Hyperledger Caliper Projekt bezieht sich auf die Definitionen, Metriken und Terminologie, wie sie von der Hyperledger PWSG definiert werden. Caliper gibt es seit Mai 2017, die PWSG hat im Juni 2017 ihre Arbeit aufgenommen. Mitglied sind derzeit auch die verschiedenen Entwickler und Unterstützer von Caliper, zum Beispiel Huawei, Hyperchain, Oracle, Bitwise, Soramitsu und IBM. Auf der IBM Blockchain Platform kann Caliper ebenfalls bereits genutzt werden.

Dominoes game online. Domino tiles on a computer laptop

Die einzelnen Metriken sind im Whitepaper „Hyperledger Blockchain Performance Metrics“ zu finden. Die Metriken werden natürlich immer weiter entwickelt, je mehr Anwender auf Caliper setzen.

Mit Caliper lassen sich Anwendungsszenarien definieren oder bereits vorhandene Szenarien nutzen, um spezielle Bereiche einer Blockchain-Infrastruktur, oder die komplette Infrastruktur zu messen und Leistungsdaten für eine Verbesserung und Beschleunigung der Umgebung erhalten. Caliper kann in viele Blockchain-Infrastrukturen fest implementiert werden, um jederzeit Leistungsmessungen durchführen zu können.

Das Tool bietet also nicht nur bei der Entwicklung eine wichtige Rolle, sondern auch im laufenden Betrieb. Caliper kann den kompletten Lebenszyklus von Blockchain-Anwendungen in einem Unternehmen begleiten, auch dann, wenn mehrere Blockchain-Technologien zum Einsatz kommen.

Geschwindigkeitsmessungen spielen bei Blockchain-Infrastrukturen eine wichtige Rolle

Beim Betrieb einer Blockchain und den darin enthaltenen Daten spielen Geschwindigkeitsmessungen eine wichtige Rolle. Neue oder verbesserte Prozesse sollten nach der Umstellung zu einer Blockchain-Lösung natürlich so funktionieren, wie es die Anwender erwarten.

Ohne eine leistungsfähige Einbindung der Blockchain im eigenen Netzwerk, können die zugrunde liegenden Prozesse nicht optimal eingebunden werden und Anwender können nicht richtig mit den Anwendungen arbeiten.

Auch daher sollten Leistungsmessungen bereits bei der Entwicklung von Blockchain-Anwendungen durchgeführt werden. Das ist auch einer der Gründe, warum Caliper sich in verschiedene SDKs einbinden kann und auch mit Editoren wie Visual Studio Code genutzt werden kann.

Blockchain-Netzwerke effektiv betreiben (Bild von Gerd Altmann auf Pixabay)

Beim Betrieb von Blockchain-Anwendungen spielen Benchmarks eine wichtige Rolle, zum Beispiel auch für optimal ablaufende Smart Contract-Workflows. Hyperledger Caliper kann mit Hyperledger Fabric 1.x und 2.x verwendet werden. Auch Hyperledger Besu, Ethereum und FISCO BCOS können mit Caliper gemessen werden.

Diese Daten kann Caliper testen

Hyperledger Caliper kann erfolgreiche und fehlgeschlagene Transaktionen messen, und damit auch dabei helfen Probleme in einer Blockchain-Infrastruktur zu finden und zu beheben. Gleichzeitig kann die Leistung der Abläufe für die einzelnen Transaktionen gemessen werden. Im Rahmen der Messung erfasst Caliper auch die Latenzzeiten für Transaktionen. Dabei misst das Tool die Zeit, in der eine Transaktion abgeschlossen wird.

Die Transactions per Second (TPS) kann Caliper auch in Berichten darstellen. Bei TPS handelt es sich um einen Leistungsindikator der durch die Hyperledger Performance & Scalability Working Group (PWSG) definiert ist. TPS spielt beim Einsatz von Smart Contracts eine wichtige Rolle. In den meisten Fällen sind Smart Contracts komplexe Programme, bei denen die Leistung eine wichtige Rolle spielt. Dabei ist TPS ein guter Anhaltspunkt, der bei Leistungsproblemen helfen kann.

Auch die Antworten der Anwendungen, die mit den Transaktionen arbeiten, werden gemessen. Im Rahmen des Testzyklus erfasst Caliper dabei auch die maximale, minimale und durchschnittliche Latenz. Die Transaktionen im kompletten System werden pro Sekunde gemessen.

Gleichzeitig erfasst Caliper den Ressourcenverbrauch. Hier kann das Tool zum Beispiel auch CPU- und Speicherverbrauch messen. Der komplette E/A-Verkehr im Netzwerk ist mit Caliper darstellbar. Schwachstellen und Flaschenhälse sind dabei schnell erkennbar.

Mit Caliper Benchmarks für Hyperledger Fabric erstellen

Um Benchmarks für Blockchain-Umgebungen zu erstellen, ist Hyperledger Caliper ideal. Vor allem, wenn Hyperledger Fabric und andere Lösungen von Hyperledger zum Einsatz kommen, macht es Sinn parallel auf Caliper zu setzen. Der Quellcode von Hyperledger Caliper steht auf GitHub zur Verfügung.

Caliper unterstützt natürlich auch alle Plattformen, auf denen Blockchain-Lösungen auf Basis von Hyperledger Fabric bereitgestellt werden, zum Beispiel IBM Cloud Platform oder Microsoft Azure. Wenn Entwickler überprüfen wollen, ob ihre Smart Contracts optimal programmiert sind, die auf der jeweiligen Infrastruktur laufen, kann Caliper zuverlässige Informationen dazu zur Verfügung stellen., auch im laufenden Betrieb.

Adaptionsschicht von Caliper nutzen

Eine wichtige Komponente in Hyperledger Caliper ist die Adaptionsschicht. Mit dieser besteht die Möglichkeit parallel mehrere mehrere Blockchain-Lösungen in das Caliper-Framework zu integrieren. Entwickler und Administratoren können dadurch unterschiedliche Objekte auch aus verschiedenen Infrastrukturen messen. Für jedes zu testende Blockchain-System bindet Caliper einen Adaptor ein, der für die Übersetzung der Caliper-NBIs in das entsprechende Blockchain-Protokoll verantwortlich ist.

Image by livia wong from Pixabay

Bei Caliper-NBI handelt es sich um einen gemeinsamen Satz von Blockchain-Schnittstellen, die Operationen zur Interaktion mit dem Backend-Blockchain-System enthalten. Dabei handelt es sich zum Beispiel um die Möglichkeit die Installation von Smart Contracts genauso zu überwachen, wie das Aufrufen von Verträgen, das Abfragen des Status vom Ledger und andere Einsatzgebiete.

Die NBIs können auch für Upstream-Anwendungen verwendet werden, zum Beispiel um Tests für mehrere Blockchain-Systeme zu schreiben. Vor allem in größeren Umgebungen, oder wenn mehrere Blockchain-Anwendungen und unterschiedliche Blockchain-Lösungen im Einsatz sind, kann es sinnvoll sein bereits frühzeitig die Implementation von Caliper zu planen und das Tool zu testen.

Dazu sollten sich Entwickler auch mit den verschiedenen Komponenten von Caliper auseinandersetzen, um das Tool möglichst unproblematisch in die eigene Infrastruktur zu integrieren.

Benchmarks mit Microsoft Visual Studio Code und Hyperledger Caliper

Caliper hilft dabei die Latenz, den Ressourcenverbrauch und sonstige Leistungskriterien zu messen und Tests durchzuführen, über die verschiedene Leistungsdaten gemessen und angezeigt werden können. Am Beispiel der IBM Blockchain Platform stehen auch Tools zur Verfügung, die Caliper nutzen, um Benchmarks durchzuführen.

IBM stellt Extensions für Visual Studio Code kostenlos zur Verfügung, mit denen sich Blockchain-Apps mit Microsoft Visual Studio Code auch kostenlos entwickeln lassen. Die Erweiterungen funktionieren zusammen mit Caliper.

Caliper installieren und testen

Um mit Caliper Benchmarks durchzuführen kann das Tool auch mit NPM installiert werden. Caliper verfügt über eine CLI, die wiederum an unterstützte SDKs angebunden werden kann. Am Beispiel von Caliper 0.3.2 und Fabric SDK Node 1.48 auf IBM Blockchain Platform erfolgt die Installation mit:

npm install -g –only=prod @hyperledger/caliper-cli@0.3.2

Nach der Installation von Caliper wird die CLI noch mit dem entsprechenden SDK gebunden. Am Beispiel von IBM Cloud Platform erfolgt das mit:

caliper bind –caliper-bind-sut fabric:1.4.8 –caliper-bind-args=-g

Eine Anleitung zur praktischen Umsetzung zeigt IBM auf seiner Seite „Performance testing smart contracts developed within VS Code using Hyperledger Caliper“.

Blockchain im Unternehmen einbinden (Bild von Gerd Altmann auf Pixabay)

Um Caliper in anderen Umgebungen zu testen, hilft das Caliper-Tutorial auf der Seite „Setting up and Running a Performance Benchmark on an existing network“.

Um Tests mit Caliper durchzuführen sind mehrere Konfigurationsdateien notwendig. Wichtig sind eine Konfigurationsdatei, mit der die aktuelle Infrastruktur in Caliper verfügbar ist, und die Testdatei für die Tests, die Caliper durchführen soll. Caliper fordert für Tests den Chaincode des Peers an.

Der Peer führt anschließend den Chaincode in der Sprache der Chain aus und gibt das Ergebnis an Caliper zurück. Dabei spielt es keine Rolle, in welcher Sprache die Blockchain und die Apps geschrieben sind. Caliper nutzt Node.js/Javascript für das Abrufen des Codes. In welcher Sprache dieser geschrieben ist, spielt für Caliper keine Rolle.

Dokumentation, Use Cases und Beispiele für den Einsatz von Caliper nutzen

In der offiziellen Dokumentation von Hyperledger Caliper sind umfassende Anleitungen zu finden, wie Benchmarks mit den verschiedenen SDKs für Blockchain-Infrastrukturen umgesetzt werden.

In der Dokumentation sind auch Beispiele für verschiedene Konfigurationen zu finden und Beispielcode, der dabei hilft Caliper in verschiedene Infrastrukturen zu implentieren. Mit Caliper können Entwickler oder Blockchain-Administratoren auch verschiedene Use Cases nutzen, die Bestandteil des Projektes sind.

Hier können mit Beispielen eigene Szenarien entwickelt werden, um die Leistung zu messen. Mit den Use Cases wird schnell klar, wie Transaktionen, Smart Contracts oder andere Objekte in Caliper eingebunden werden, und wie das Tool anschließend Messungen durchführen kann.

Fazit

Unternehmen und Organisationen, die sich mit der Einführung von Blockchains beschäftigen, oder die bereits Blockchain-Apps im Netzwerk nutzen, sollten das Thema Leistungsüberwachung nicht aus dem Auge verlieren. Generell gilt für alle Anwendungen, dass die Leistung möglichst optimal sein muss, damit Benutzer die Anwendung auch akzeptieren und vor allem optimal mit der Anwendung arbeiten können.

Im Blockchain-Bereich bedeutet die Einführung einer neuen App zwangsläufig auch die Anpassung von Prozessen und die Einführung von neuen Prozessen. Hier ist es natürlich bereits bei der Planung sinnvoll die Leistung optimal zur Verfügung zu stellen, damit Smart Contracts oder andere Anwendungen auch so funktionieren, wie es geplant ist.

Caliper hilft dabei, bereits bei der Entwicklung von Anwendungen für Blockchains die Leistung sicherzustellen, kann aber auch im Betrieb die Leistung jederzeit messen und dabei helfen Probleme zu beheben. Dazu stehen verschiedene Möglichkeiten zur Verfügung, auch das Erstellen von Berichten.

Entwickler, die mit Hyperledger Fabric oder einem anderen Framework arbeiten, das mit Caliper funktioniert, sollte sich in jedem Fall die Möglichkeiten des Tools anschauen und das Produkt testen. Um dauerhaft mit Caliper zu arbeiten, kann das Benchmark-Tool auch in die CI/CD-Pipeline eingebunden werden.

Wer bei der Entwicklung aber noch nicht mit Hyperledger Caliper arbeitet, kann natürlich dennoch jederzeit das Tool in der eigenen Infrastruktur implementieren, um die Leistung zu verbessern.

 

Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Immer aktuell in der Blockchainwelt.

Melden Sie sich zu unserem monatlichen Newsletter an. Garantiert kostenlos und ohne Spam!