Menu Close

Versailler Vertrag abitur

Es gibt keine Möglichkeit zu wissen, von Bytecode nur, dass der Vertrag Funktionen Übertragung (:) und getBalance(:). Noch weniger klar ist, ob es sich um öffentliche, private oder konstante Funktionen handelt. Der Vertrag wird kontextlos bereitgestellt. Das ist alles ziemlich leicht zu verstehen, wenn man es liest. Aber vorhin erwähnte ich, dass das ABI auch definiert, wie der Benutzer die Funktionen aufrufen kann , d. h. den Speicherort der Funktion in Bezug auf die Smart Contract-Adresse. Ereignisse sind eine Abstraktion des Ethereum-Protokollprotokolls. Protokolleinträge enthalten die Vertragsadresse, eine Reihe von bis zu vier Themen und einige beliebige Binärdaten. Ereignisse nutzen die vorhandene Funktion ABI, um diese (zusammen mit einer Schnittstellenspezifikation) als korrekt typisierte Struktur zu interpretieren. Um Funktionen in Smart Contracts aufzurufen, müssen wir sowohl das ABI als auch den Bytecode verwenden. Zum Glück für uns wird dies alles abstrahiert, wenn wir mit intelligenten Verträgen interagieren, indem wir eines der bereitgestellten Frameworks verwenden. web3.js kombinierte die beiden im Hintergrund und verfügt nun über alle erforderlichen Informationen, um Funktionen in unserem Smart Contract aufzurufen.

Das JSON-Format für die Schnittstelle eines Vertrags wird durch eine Reihe von Funktions- und/oder Ereignisbeschreibungen angegeben. Eine Funktionsbeschreibung ist ein JSON-Objekt mit den Feldern: Dies ist der einfachste Token-Smart-Vertrag, aber es hat mehrere wichtige Funktionen, die für dieses Tutorial nützlich sein werden. Sie sind: Diese Spezifikation befasst sich nicht mit Verträgen, deren Schnittstelle dynamisch ist oder anderweitig nur zur Laufzeit bekannt ist. Wir gehen davon aus, dass die Schnittstellenfunktionen eines Vertrages stark typisiert, zur Kompilierungszeit bekannt und statisch sind. Wir gehen davon aus, dass alle Verträge über die Schnittstellendefinitionen aller Verträge verfügen, die sie zum Zeitpunkt der Kompilierung sendestellen. Die Contract Application Binary Interface (ABI) ist die Standardmethode für die Interaktion mit Verträgen im Ethereum-Ökosystem, sowohl von außerhalb der Blockchain als auch für die Interaktion zwischen Verträgen und Verträgen. Die Daten werden entsprechend ihrem Typ codiert, wie in dieser Spezifikation beschrieben. Die Codierung ist nicht selbstbeschreibend und erfordert daher ein Schema, um zu dekodieren. Zuerst haben wir den simpelTokenContract definiert, der eine Beschreibung des Aussehens des Vertrags von außen ist. Wir haben dies getan, indem wir es die ABI der SimpleToken.sol übergeben. Das ABI ist die Beschreibung der Vertragsschnittstelle.

Es enthält keinen Code und kann nicht von selbst ausgeführt werden. Der Bytecode ist der ausführbare EVM-Code, aber von selbst ist er ohne Kontext. Einen solchen Vertrag aufzurufen, wäre fast unmöglich. Wir wissen nicht, wo sich jede Funktion im Bytecode befindet, welche Parameter sie benötigt oder ob wir sie überhaupt aufrufen dürfen. Hier kommt die ABI ins Spiel. Dann haben wir eine Instanz des Vertrags simpletoken erstellt, indem wir simpletoken.new(…) aufgerufen und die Daten des Vertrags (den ausführbaren Code) in sie übergeben. Ethereum Smart Contracts sind Sätze von Programmieranweisungen, die auf allen Knoten ausgeführt werden, auf denen ein vollständiger Ethereum-Client ausgeführt wird. Der Teil von Ethereum, der die Smart Contract-Anweisungen ausführt, wird EVM genannt. Es ist eine virtuelle Maschine, die Javas JVM nicht unähnlich ist. Die EVM liest eine Low-Level-Darstellung von Smart Contracts namens Ethereum Bytecode. Die meisten Smart Contracts werden in einer Programmiersprache auf hohem Niveau entwickelt.