Hyperledger Transact – Smart Contracts universeller entwickeln

Blockchain-Anwendungen entwickeln

Mit Hyperledger Transact stellen die Entwickler der Hyperledger-Gruppe eine neue Bibliothek und SDKs zur Verfügung, die dabei helfen sollen Smart Contracts einfacher, universeller und flexibler zu entwickeln.

Im Fokus von Transact steht das einfachere Implementieren von Smart Contracts in Blockchain-Infrastrukturen, unabhängig von den verwendeten Distributed Ledgers. Das bedeutet, dass der Code eines Smart Contracts auch in anderen Umgebungen oder für andere Verträge genutzt werden kann.

Das Projekt läuft bei Hyperledger unter den Tools, zusammen mit Aries, Caliper, Cello, Composer, Explorer, Quilt und URSA. Transact arbeitet mit Sawtooth und Hyperledger Fabric eng zusammen, unterstützt aber auch andere Blockchain-Technologien, wie Ethereum.

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

Intel und IBM unterstützten Hyperledger Transact

Derzeit arbeiten vor allem Entwickler von Bitwise IO, Cargill, IBM und Intel am Transact-Projekt mit. Intel unterstützt das Projekt auch finanziell. Hyperledger Transact wird als Open Source unter der Apache License Version 2.0 lizenziert. Der Code und Dateien des Projektes sind auf GitHub verfügbar.

Transact stellt neben einer Bibliothek und verschiedene Funktionen für die Abwicklung von Transaktionen mit Smart Contracts auch SDKs für die Implementierung von Smart Contracts und Smart Contract Engines zur Verfügung. Beispiele dafür sind Rust, Python, Javascript, Go, Java (auch für Android), Swift (iOS), C++, und .NET. Unterstützt werden auch Sabre (WebAssembly Smart Contracts) und Seth (EVM Smart Contracts). Das öffnet ein breites Feld an Möglichkeiten, um Smart Contracts schneller und flexibler zu entwickeln.

Im Fokus von Bitcoinj stehen Wallets für Smartphones (Bild von Jan Vašek auf Pixabay)

Hyperledger Transact nutzt Technologien von Hyperledger Sawtooth. Dazu gehören die verschiedenen Elemente der Transaktionsausführungsplattform von Sawtooth. Funktionen für Scheduling, Transaktionsisolierung und Zustandsmanagement nutzt Transact aus Sawtooth. Das Projekt Hyperledger Sawtooth ist einer der Schwerpunkt von Intel bei der Unterstützung von Hyperledger. Aus diesem Grund erfährt auch Hyperleder Transact eine besondere Unterstützung durch Intel.

Die Vorteile von Transact bei der Entwicklung von Smart Contracts und Distributed Ledgern

Mit Transact können Entwickler eine Standardschnittstelle für Smart Contracts nutzen, die es ermöglicht den Code und Teile des Smart Contracts auch mit anderen Distributed Ledgern aus anderen Technologien zu nutzen. Dazu stehen verschiedene Schnittstellen und Funktionen zur Verfügung, die es ermöglichen Smart Contracts universell und kompatibel zu entwickeln.

Diese Funktionen in Transact vereinfachen das Schreiben von Distributed-Ledger-Software. Da Transact eine Software-Bibliothek bereitstellt, die von der jeweiligen Plattform des Distributed Ledgers unabhängige Entwicklung von Smart Contracts ermöglicht, können die Ausführung von Smart Contracts durch die Schnittstelle von Transact übernommen werden.

Dazu gehören auch die verschiedenen Bereiche des Schedulings, die Transaktionsabwicklung und die Zustandsverwaltung. Generell stell Transact die Schnittstelle zwischen Distributed Ledger und Smart Contract zur Verfügung und hilft dabei Smart Contracts schnell zu implementieren.

Transact bringt Technologien wie WebAssembly in die Blockchain

Mit Transact ist es möglich in einer Blockchain externe Technologien und Sprachen, wie zum Beispiel WebAssembly und Seth schneller und einfacher in die Hyperledger-Plattform zu übernehmen. Dadurch profitieren auch Blockchain-Entwickler von modernen Entwicklungs-Ansätzen, Tools und Erweiterungen. Als Schnittstelle dazu dient Transact.

Im Fokus steht dabei die einfachere, flexiblere und vor allem bessere Entwicklung von Smart Contracts, indem sich Transact in die Prozesse bei der Abwicklung von Transaktionen einklinkt. Dadurch bleibt die Unabhängigkeit der Smart Contracts zwischen Distributed Ledgers gewahrt und gleichzeitig können Bausteine aus Transact in die Smart Contracts implementiert werden.

Smart Contracts sind ein zentraler Baustein in Blockchains

Mit Transact wollen die Hyperledger-Entwickler ihre Erfahrungen aus Sawtooth und Fabric dazu nutzen die Entwicklung von Smart Contracts zu vereinfachen und mehr Möglichkeiten für Smart Contracts zu integrieren. Das hat verschiedene Gründe. Smart Contracts gehören sicherlich zu den wichtigsten Bausteinen in verteilten Ledgern. Daher sollte sichergestellt sein, dass diese einfach und flexibel integrierbar sind. Auch das Verwenden eines Smart Contracts mit unterschiedlichen Technologien und Blockchains spielt dabei eine wesentliche Rolle.

Viele Unternehmen und Netzwerke führen Blockchain-Technologien vor allem zur Einbindung von Smart Contracts in Unternehmen ein. Aus diesem Grund möchten es die Hyperledger-Verantwortlichen den Anwendern so einfach und effektiv wie möglich machen, Smart Contracts zu entwickeln und zu nutzen. Außerdem sollte es problemlos möglich sein, den Code von Smart Contracts auch auf anderen Plattformen nutzen zu können.

Hyperledger Transact löst die Abhängigkeit zwischen Smart Contract und Distributed Ledger auf

In den meisten Fällen werden einzelne Aktionen in Smart Contracts an bestimmte Distributed Ledgers gebunden. Das schränkt die Verwendung des Smart Contracts und dessen Funktionen auf das verbundene Distributed Ledger ein und damit auf die Plattform, auf der das Distributed Ledger betrieben wird. Diese Einschränkung kann problematisch sein, wenn in einem Unternehmen mehrere Plattformen zum Einsatz kommen, da der Smart Contract nur auf einer einzelnen Plattform genutzt werden kann.

Diese Abhängigkeit soll durch Hyperledger Transact aufgelöst werden. Das ermöglicht wiederum die flexiblere Verwendung des Smart Contracts und dessen Codes. Da er nicht mehr von einem speziellen Distributed Ledger abhängig ist, kann er auch mit anderen Distributed Ledgers genutzt werden und damit auch auf verschiedenen Plattformen.

Hyperledger Transact stellt dazu eine Standardschnittstelle für die Ausführung von Smart Contracts bereit. Diese ist komplett unabhängig von den jeweiligen Distributed Ledgers. Dieser Sachverhalt ist der zentrale Aspekt von Transact, da Entwickler jetzt Smart Contracts und Distributed Ledger komplett getrennt voneinander entwickeln und verbinden können.

Entwickeln für Bitcoin

Einfachere Codes, mehr Funktionen und flexiblere Smart Contracts mit Transact

Hyperledger-Projekte nutzen die erweiterte Transaktionsausführung und Zustandsverwaltung, die Transact bietet, wenn das Projekt in die eigene Plattform integriert wird. Das erhöht die Flexibilität der Smart Contracts und der Distributed Ledger und vereinfacht gleichzeitig deren Entwicklung, da viele Funktionen nicht im Smart Contract eingebunden werden müssen, sondern Transact diese ausführen kann.

Zusammengefasst erhalten die Entwickler bei der Verwendung von Transact Zugriff auf die Funktionen von Transact, zum Beispiel die bereits erwähnte Transaktionsausführung und Zustandsverwaltung. Gleichzeitig ist die Entwicklung des Codes für den Smart Contract wesentlich einfacher. Zusätzlich ist der fertige Smart Contract und dessen Code sehr viel flexibler in der weiteren Verwendung des Codes, zusammen mit anderen Distributed Ledgern. Es spricht also bei neuen Smart Contracts nichts dagegen sich die Möglichkeiten von Hyperleder Transact genauer anzusehen.

Neue Smart Contract-Sprachen integrieren – Smart Contracts Engines

Mit Hyperledger Transact ist es auch möglich neue Sprachen zur Entwicklung von Smart Contracts (Smart Contracts Engines) in vorhandene Projekte und Distributed Ledgers zu integrieren. Smart Contract Engines implementieren mit Transact eine neue eine virtuelle Maschine oder einen Interpreter, der die Smart Contracts verarbeitet.

Durch die SDKs, die Transact mitliefert, können Smart Contracts und verknüpfte Programme und Abläufe in verschiedenen Programmiersprachen geschrieben werden. Entwickler können hier auf die Sprachen setzen, mit denen sie am besten zurechtkommen, und die für das Projekt am besten geeignet sind. Bekannte Beispiele für diese Unterstützung sind  Rust, Python, Javascript, Go, Java (auch für Android), Swift (iOS), C++, und .NET. Unterstützt werden auch Sabre (WebAssembly Smart Contracts) und Seth (EVM Smart Contracts).

Abläufe bei der Verwendung von Hyperledger Transact

Transact bietet außerdem, einfach ausgedrückt, ein Transaktionsverarbeitungssystem für Zustandsübergänge. Die Daten der Zustände müssen gespeichert werden, zum Beispiel in einer Key-Value- oder einer SQL-Datenbank. Hier findet derzeit noch eine Entwicklung statt, wo und wie diese Daten gespeichert werden sollen. Transact führt Transaktionen aus und erzeugt damit einen neuen Zustand. Im Gegensatz zu anderen Systemen, wie zum Beispiel bei Ethereum, werden nur Ausgangszustand und die Transaktion als Eingabe verwendet.

Konsens, Blöcke, Verkettung und Peering verwaltet Transact nicht. Dafür sind weiterhin die einzelnen Hyperledger-Frameworks verantwortlich, zum Beispiel Sawtooth und Fabric. Das ist wichtig für die Kompatibilität von Transact und den damit integrierten Smart Contracts.

Durch die Flexibilität von Transact sind hier auch andere Distributed-Ledger-Technologien nutzbar, solange diese von Transact unterstützt werden. Diese Vorgehensweise erfolgt also absichtlich, denn durch die Vermeidung der direkten Integration von Konsens, Blöcken, Verkettung und Peering kommt Transact nie in Konflikt mit dem eingesetzten Ledger und lässt sich flexibel auch mit anderen Technologien nutzen.

Entwickeln für Bitcoin

Transact-Komponenten verstehen

Transact nutzt für die Ausführung seiner Aufgaben verschiedene Komponenten. Wer genauer in den Ablauf einsteigen will, sollte sich die technischen Anmerkungen auf der Projektseite und dem Wiki genauer anschauen:

  • Mit „State“ können Get-, Set- und Delete-Operationen gegen eine Datenbank ausgeführt werden. Das ermöglicht auch die Verwendung von In-Memory-Datenbanken, damit die Leistung der Smart Contracts nicht durch Schreib- und Lesevorgänge ausgebremst werden.
  • In Transact sind Lese- und Schreibvorgänge auf einen festgelegten „Kontext“ beschränkt. Der integrierte Kontextmanager begleitet den Kontextlebenszyklus und verwaltet die Aufrufe, um Daten lesen, schreiben und löschen zu können.
  • Der Planer steuert die Reihenfolge der auszuführenden Transaktionen in Transact. Hier gibt es auch Möglichkeiten, um Transaktionen parallel auszuführen. Eine serielle Ausführung ist ebenfalls möglich. Natürlich können parallel ausgeführte Transaktionen die Leistung deutlich verbessern. Allerdings sind nicht alle Smart Contracts dazu in der Lage Transaktionen parallel auszuführen, da die zugrunde liegenden Prozesse eine gewisse Abhängigkeit zwischen Transaktionen oder deren Zustände voraussetzen.
  • Der Transact Executor erhält Transaktionen vom Scheduler und führt sie gegen einen bestimmten Kontext aus.
  • Smart Contracts Engines stellen die Implementierungen der virtuellen Maschine und Interpreter bereit, mit denen die Smart Contracts ausgeführt werden. Hier kommen zum Beispiel WebAssembly, Ethereum Virtual Machine, Sawtooth Transactions Processors und Fabric Chain Code zum Einsatz. Transact unterstützt Adapter, die prozessinterne und externe Transaktionsausführung unterstützen.

Ausführlichere Informationen dazu sind in der Dokumentation von Hyperledger Transact zu finden. Im Chat von Hyperleder Transact tauschen sich Entwickler und Anwender aus. Wer mit Transact arbeitet, sollte den Chat ebenfalls berücksichtigen. Es gibt auch bereits Beispiele für die Verwendung von Transact. Diese sind ebenfalls auf GitHub zu finden.

Image by livia wong from Pixabay

Zukunft von Hyperledger und Transact

Hyperledger-Projekte sind in der Blockchain-Welt sehr verbreitet und erfahren immer mehr Zuwachs. Im Fokus von Hyperledger steht der universelle Einsatz von Blockchain-Technologien auf Basis unterschiedlicher Plattformen. Es sollen nicht alle Funktionen von Blockchain-Anwendungen in einem einzelnen Framework/Projekt zusammengefasst sein. Durch die „Komponentisierung“ stellt Hyperledger sicher, dass die einzelne Funktionen in eigene Projekte ausgelagert werden, die aber mit den anderen Projekten zusammenarbeiten, um ein Ökosystem für Blockchain-Anwendungen zu bieten.

Transact gehört zu den Projekten, die Funktionen zwischen den Hyperledger-Technologien kompatibel machen soll, und das gleichzeitig sicherstellt, dass auch externe Technologien mit Hyperledger zusammen funktionieren. Es ist auch in Zukunft zu erwarten, dass immer mehr Projekte ins Leben gerufen werden, mit denen Blockchain-Technologien im Unternehmen effektiver und besser eingeführt werden können.

Vor dem Einsatz neuer Projekte sollten Entwickler und Verantwortliche natürlich auch darauf achten, ob diese Projekte eine Zukunft haben und weiterhin nutzbar sind. Am Beispiel von Transact ist das hochwahrscheinlich. Zu den größten Unterstützern von Transact gehört Intel, da der Prozessorhersteller auch stark auf Hyperledger Sawtooth setzt.

Sawtooth wird vor allem durch IBM, Intel und SAP entwickelt. Auch hier steht die Flexibilität von Smart Contracts und Distributed Ledgers im Fokus. Die Open-Source Enterprise Blockchain-as-a-Service (BaaS) Plattform unterstützt auch Ethereum Smart Contracts.  Auch hier können Transaktionen parallel ausgeführt werden. Daher arbeiten die beiden Projekte eng zusammen und Transact wurde durch Sawtooth inspiriert.

IBM, Hyperledger und Transact

IBM hat bei Hyperledger einen großen Einfluss, da das Unternehmen fünf von elf Mitgliedern im wichtigen Technical Steering Committee (TSC) gestellt hat. Das Komitee lenkt die verschiedenen Projekte von Hyperledger. Der Ausschuss wurde im letzten Jahr auf 15 Mitglieder erweitert. IBM hat, zusammen mit seinem Unternehmen Red Hat, weiterhin fünf Sitze. Es gibt jetzt aber weitere 11 Mitglieder, sodass der Einfluss von IBM nicht mehr so groß ist, wie er mal war. Dennoch bleibt IBM einer der großen Player bei Hyperledger.

Neben Intel und IBM sind auch Vertreter von ConsenSys, Walmart, Oracle und Telefonica mit an Bord. Die Unternehmen im TSC kommen aus verschiedenen Teilen der Welt, darunter auch Spanien, Indien und China. Die Vielfalt und die internationale Unterstützung von Hyperledger-Projekten wird in Zukunft also deutlich steigen, vor allem da auch Intel mit Projekten wie Sawtooth und Transact ständig neue Möglichkeiten schafft.

IBM Blockchain Plattform für Smart Contracts nutzen

Fazit

Hyperledger Transact ist eine wichtige Komponente im Hyperledger-Universum, wenn es darum geht Smart Contracts flexibler und einfacher zu gestalten. Vor allem Entwickler, die Smart Contracts für verschiedene Plattformen schreiben, oder Unternehmen, die verschiedene Plattformen einsetzen, sollten sich die Möglichkeiten von Transact anschauen.

Durch die Integration von Transact in die eigene Infrastruktur, ist der Code einfacher nutzbar für andere Ledgers und gleichzeitig wird die Entwicklung einfacher und flexibler. Transact hilft dabei die Entwicklung von Blockchains und den darin laufenden Smart Contracts universeller zu betreiben und kompatible Smart Contracts zu entwickeln, die auch mit anderen Technologien zusammenarbeiten.

Entwickler müssen sich ohne Einsatz von Transact bereits beim Start der Entwicklung für eine bestimmte Technologie entscheiden. Wer zum Beispiel für Ethereum programmieren will, verwendet meistens Solidity um den Smart Contract in einer virtuellen Maschine von Ethereum zu entwickeln und auszuführen. Soll ein weiterer Smart Contract für eine andere Plattform entwickelt werden, zum Beispiel Hyperledger Fabric, muss der komplette Code neu entwickelt werden. Bei der Verwendung von Transact muss der Smart Contract nur einmal entwickelt werden. Der Code und damit der Smart Contracts ist dadurch kompatibel mit allen Plattformen, auf denen Transact eingesetzt wird.

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!