Bewertungen

Verständnis von ERC20

Verständnis ERC20

Dieser Artikel geht davon aus, dass der Leser zumindest die folgenden Konzepte bereits kennt: die Ethereum Blockchain, Dapps, Ether, Smart Contracts & ICOs.

Die Ethereum-Blockchain ist eine verteilte, auf Open Source basierende Blockchain-basierte Computing-Plattform, die schnell rekapitalisiert werden kann. Diese Computerplattform, das Ethereum-Netzwerk, hostet dezentrale Anwendungen (dapps), die mit Stücken von Codes ausgeführt werden, die intelligente Verträge genannt werden; Alle Transaktionen im Ethereum-Netzwerk sowie die Rechenkosten für die Ausführung intelligenter Verträge werden im Ethereum-Kryptowährung-Äther bezahlt.

Einige, aber nicht alle dieser Dapps (dezentralisierte Apps) benötigen eine zusätzliche In-Dapp-Währung - diese Dapps führen ihre neue Währung namens Token ein und sammeln Gelder durch ein anfängliches Münzangebot (ICO ).

Die Blockchain-Plattform von Ethereum ist so konzipiert, dass sie alle Arten von Datendiebstahl unterstützt - einschließlich derjenigen, die die Erstellung, Pflege und Übertragung digitaler Assets erfordern. Diese dapp-spezifischen Ethereum-Tokens können implementiert werden, um ein Netzwerk von Dapps mit aussagekräftigen Anwendungsfällen wie Rechnungsfakturierung, browserweite Zahlungen und eine Kryptowährungskarte zu erstellen.

Alle zuvor erwähnten Ideen sind zur Zeit lebende Ethereum-basierte Dapp-Token, die einem sehr gängigen Token-Programmierstandard folgen; Tatsächlich folgen 99% aller eingesetzten Ethereum-Token diesem Standard, dem ERC20-Standard.

Der ERC20-Token-Standard, der für Ethereum Requests for Comment steht, ist ein Standardsatz von Programmier- "Regeln", denen alle Ethereum-basierten Token folgen sollen. Die Entwickler haben sich auf diese sechs Funktionen und zwei Ereignisse als minimal realisierbares Token geeinigt, um das erwartete Verhalten bei der Kommunikation über das Ethereum-Netzwerk zu normalisieren. Mit diesem Protokoll können die Entwickler von Ethereum problemlos mit externen Smart Contracts arbeiten.

Einführung Solidität

Während der beliebteste Ethereum Client derzeit in Googles GO geschrieben ist, gibt es reichlich Auswahlmöglichkeiten für eine entwicklerfreundliche Smart-Contract-Sprache. Entwickler können aus Sprachen wie Vyper, Bamboo, Serpent & Solidity wählen.

Für den Rest dieses Artikels werden wir die Soliditätssyntax hervorheben.

Solidität ist eine hochrangige, vertragsorientierte Programmiersprache, die für die Implementierung intelligenter Verträge verwendet wird. Die Soliditätssyntax, die mit der Programmierung vertraut ist, ist ein Mischmasch von Javascript-, Python- und C-Konzepten; Es ist statisch getippt, unterstützt Vererbung und hat eine Vielzahl von Bibliotheken von Anfang an. Weitere Informationen zur Solidität finden Sie in der Dokumentation unter // solidity. readthedocs. io / de / develop / #

ERC20 Interface Walkthrough

Wir werden uns genauer ansehen, was und wie dieser Standard im gesamten Ethereum-Netzwerk implementiert ist. Wie bereits erwähnt, werden wir dies speziell behandeln in Soliditätssyntax.

Im Ethereum-Land beginnt und endet alles mit Verträgen. In der Dokumentation zur Solidität werden Verträge als "eine Sammlung von Code (ihre Funktionen ) und Daten (ihr Status ) definiert, die sich an einer bestimmten Adresse in der Ethereum Blockchain befinden. "Ethereum-Verträge unterstützen die Vererbung - also kann ein Vertrag eine Instanz eines anderen Vertrages sein.

Nach dieser Logik kann ein abstrakter Vertrag, der ausschließlich für die Vererbung verwendet wird, auch als ausfallsicher verwendet werden, indem definiert wird, was ein neuer Vertrag zum Kompilieren enthalten muss. Diese abstrakten Verträge werden auch als Schnittstellenverträge bezeichnet. Dies bedeutet, dass jeder Token-Vertrag, der eine ERC20-Instanz ist, nicht ohne das Folgende kompiliert wird; Im Gegensatz dazu wissen die Entwickler von Ethereum jetzt, welche Funktionen und Verhaltensweisen sie erwarten können, wenn sie mit einem ERC20-Token interagieren.

Der ERC20-Standard ist ein Schnittstellenvertrag, der insgesamt sechs ausführbare Funktionen und zwei Protokollierungsereignisse enthält.

Allowance

Die Allowance-Funktion ermöglicht, dass zwei Adressen eine wiederholte unidirektionale Übertragung erzeugen. Eine Brieftaschenadresse

tokenOwner und ein zweiter Brieftaschenspender sind die zwei Brieftaschen, die für wiederholte Transaktionen verwendet werden. Insbesondere wird der Geldbörsenspender etwas Betrag aus dem Wallet tokenOwner bei etwas Intervall abziehen - beides sind Variablen, die später bestimmt werden. Genehmigen

Für die Funktion Genehmigen, verweisen Sie zurück auf unsere Funktion "Genehmigung": Die Funktion ermöglicht, dass zwei Adressen wiederholt unidirektional zurückgezogen werden. Die Approve-Funktion, treffend benannt, ist eine einfache Standardfunktion, die den Geldbörsenbesitzer auffordert, eine Transaktion zu genehmigen, die in seinem Namen im Zusammenhang mit einer Allowance durchgeführt wird. Diese Funktion benötigt zwei Eingaben, die Adresse des Spenders und die Anzahl der gesendeten Token. Die Ausgabe gibt einen öffentlichen Booleschen Wert zurück, der angibt, ob die Genehmigung erteilt oder abgelehnt wurde.

BalanceOf

BalanceOf ist eine intuitive Funktion, die einen einzelnen Adresseingabeparameter (Adresse TokenOwner) akzeptiert und eine einzelne öffentliche Konstante (Uintsaldo) zurückgibt. Die zurückgegebene Uint-Konstante, balance, stellt die Menge an Token dar, die die abgefragte Adresse enthält - denken Sie daran, Transaktionen an einer Blockchain sind normalerweise öffentlich, Ethereum ist nicht anders.

TotalSupply

Die totalSupply-Funktion, wie Sie anhand des Namens vermuten können, ist eine anonyme Konstruktorfunktion, die nur einmal im ersten Moment der Bereitstellung im aktiven Ethereum-Netzwerk ausgeführt wird. Die Funktion gibt eine öffentliche Konstante totalSupply nicht zugewiesene Ganzzahl (uint) zurück, die als Gesamtmenge der Token für den Rest der Vertragslaufzeit dient. Diese totalSupply-Konstante wird normalerweise auf eine der beiden folgenden Arten definiert: Festcodierung einer Variablen oder Finanzierung aus einer Ursprungsmappe.

Transfer

Die Transfer-Funktion ist die Kernfunktion jedes ERC20-Tokens. es definiert & implementiert eine direkte

Brieftaschen-Besitzer-zu-Partner- -Tokenübertragung. Da die Geldbörsenbesitzer diesen Anruf tätigen, sind nur zwei Parameter erforderlich: die Empfängeradresse und die Anzahl der gesendeten Token.Diese beiden Parameter werden normalerweise als (Adresse zu) & (Uint Tokens) initialisiert. Der Übertragungs-Rückgabewert ist einfach ein boolescher Wert, der bestätigt, ob der Empfänger (die "bis" -Adresse) die gesendeten Token empfangen hat. TransferFrom

Die Funktion TransferFrom ermöglicht für

einen Smart-Vertrag , eine Übertragung mit den übergebenen Parametern im Auftrag des Wallet-Eigentümers durchzuführen. Vorsichtig mit der vorherigen Übertragung r Funktion unterscheiden. Die vorherige Funktion erlaubte dem Wallet-Besitzer , Token direkt an eine Adresse zu senden; Dieser TransferFrom ermöglicht es einem Smart Contract , Token im Namen der Wallet-Besitzer zu senden, wie z. B. das Ausfüllen einer Order an einer Börse, die rechtzeitige Freigabe von Geldern oder die Zahlung unserer Gewinne ein Spiel des Glücks. Die Funktion TransferFrom

hat drei Eingabeparameter, die Adresse des Wallet-Besitzers, die Adresse der Empfänger-Brieftasche und die Menge der gesendeten Tokens. Sie werden oft in der folgenden Syntax initialisiert: (Adresse von, Adresse an, Uint-Token). Die Ausgabe der Funktion ist genau dieselbe wie die Transfer-Ausgabe: ein einzelner öffentlicher Boolescher Wert, der den Erfolg oder das Fehlschlagen der Transaktion angibt. Zusammenfassung Die sechs oben aufgeführten Funktionen sind die sechs Kernfunktionen, die in 99% aller aktuell aktiven ERC20-Tokens zu finden sind. Mit ein paar Ausnahmen (mit Blick auf Golem) können sich die Entwickler von Ethereum sicher fühlen, dass sie diese Kernfunktionen bei der Entwicklung interner Verträge oder bei der Interaktion mit externen öffentlichen Verträgen voll und ganz erwarten können.

Ähnliche