{"id":39018,"date":"2019-10-31T22:27:25","date_gmt":"2019-10-31T19:27:25","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kniga-sozdanie-smart-kontraktov-solidity-dlya-blokchejna-ethereum-prakticheskoe-rukovodstvo\/"},"modified":"2019-10-31T22:27:25","modified_gmt":"2019-10-31T19:27:25","slug":"kniga-sozdanie-smart-kontraktov-solidity-dlya-blokchejna-ethereum-prakticheskoe-rukovodstvo","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/kniga-sozdanie-smart-kontraktov-solidity-dlya-blokchejna-ethereum-prakticheskoe-rukovodstvo","title":{"rendered":"Buch: \u00abSmart Contracts mit Solidity f\u00fcr die Ethereum-Blockchain. Ein praktischer Leitfaden\u00bb","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Buch: \u00abSmart Contracts mit Solidity f\u00fcr die Ethereum-Blockchain. Ein praktischer Leitfaden\u00bb\" src=\"\/wp-content\/uploads\/2019\/10\/9549e708e99fef6892045ff854231fa7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nIch habe \u00fcber ein Jahr an dem Buch \u201eErstellung von Solidity Smart Contracts f\u00fcr die Ethereum Blockchain. Praktisches Handbuch\u201c gearbeitet, und nun ist diese Arbeit abgeschlossen und das Buch <noindex><a rel=\"nofollow\" href=\"https:\/\/www.litres.ru\/aleksandr-frolov-198\/sozdanie-smart-kontraktov-solidity-dlya-blokcheyna-et\/\">wird ver\u00f6ffentlicht und ist auf Litres verf\u00fcgbar.<\/a><\/noindex>.<\/p>\n<p>Ich hoffe, mein Buch hilft Ihnen, schnell mit der Erstellung von Solidity Smart Contracts und dezentralen Anwendungen (DApp) f\u00fcr die Ethereum Blockchain zu beginnen. Es besteht aus 12 Lektionen mit praktischen Aufgaben. Nach Abschluss dieser Aufgaben wird der Leser in der Lage sein, eigene lokale Ethereum-Knoten zu erstellen, Smart Contracts zu ver\u00f6ffentlichen und deren Methoden aufzurufen, Daten zwischen der realen Welt und Smart Contracts mithilfe von Oracles auszutauschen und mit dem Testnetz Rinkeby zu arbeiten. <\/p>\n<p>Das Buch richtet sich an alle, die sich f\u00fcr fortschrittliche Technologien im Bereich Blockchain interessieren und schnell Kenntnisse erwerben m\u00f6chten, um interessante und zukunftstr\u00e4chtige Aufgaben zu \u00fcbernehmen.<\/p>\n<p>Unten finden Sie das Inhaltsverzeichnis und das erste Kapitel des Buches (auch auf <noindex><a rel=\"nofollow\" href=\"https:\/\/www.litres.ru\/aleksandr-frolov-198\/sozdanie-smart-kontraktov-solidity-dlya-blokcheyna-et\/\">Litres<\/a><\/noindex> sind Ausschnitte des Buches verf\u00fcgbar). Ich freue mich auf Ihr Feedback, Anmerkungen und Vorschl\u00e4ge. All dies werde ich bei der Vorbereitung der n\u00e4chsten Auflage des Buches ber\u00fccksichtigen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Inhaltsverzeichnis<\/b><b class=\"spoiler_title\">Einf\u00fchrung<\/b>Unser Buch richtet sich an diejenigen, die nicht nur die Funktionsweise der Ethereum-Blockchain verstehen m\u00f6chten, sondern auch praktische F\u00e4higkeiten in der Erstellung von dezentralen Anwendungen (DApp) in der Programmiersprache Solidity f\u00fcr dieses Netzwerk erwerben m\u00f6chten.<\/p>\n<p>Es ist besser, dieses Buch nicht nur zu lesen, sondern aktiv damit zu arbeiten, indem Sie die in den Lektionen beschriebenen praktischen Aufgaben ausf\u00fchren. Dazu ben\u00f6tigen Sie einen lokalen Computer, einen virtuellen oder Cloud-Server mit installiertem Debian oder Ubuntu-Betriebssystem. F\u00fcr viele Aufgaben k\u00f6nnen Sie auch einen Raspberry Pi verwenden.<\/p>\n<p><b>Im ersten Unterricht <\/b>werden wir die Funktionsweise der Ethereum-Blockchain und grundlegende Terminologie betrachten und dar\u00fcber informieren, wo diese Blockchain eingesetzt werden kann. <\/p>\n<p>Ziel <b>zweiten Unterricht<\/b> \u2014 einen Knoten eines privaten Ethereum-Blockchains auf dem Ubuntu- und Debian-Server einzurichten, um im Rahmen dieses Kurses weiterzuarbeiten. Wir werden die Besonderheiten der Installation grundlegender Dienstprogramme wie geth, das den Betrieb unseres Blockchain-Knotens erm\u00f6glicht, sowie des Daemons des dezentralen Datenspeichers swarm betrachten.<\/p>\n<p><b>Dritte Unterricht<\/b> llehrt Sie, Experimente mit Ethereum auf dem kosteng\u00fcnstigen Mikrocomputer Raspberry Pi durchzuf\u00fchren. Sie werden das Betriebssystem (OS) Rasbian auf dem Raspberry Pi installieren, das Geth-Tool verwenden, das den Betrieb eines Blockchain-Knotens erm\u00f6glicht, und den dezentralen Datenspeicherdienst Swarm kennenlernen.<\/p>\n<p><b>Die vierte Lektion<\/b> behandelt Konten und Kryptow\u00e4hrungseinheiten im Ethereum-Netzwerk sowie M\u00f6glichkeiten, Gelder von einem Konto auf ein anderes \u00fcber die Geth-Konsole zu \u00fcbertragen. Sie lernen, Konten zu erstellen, Transaktionen zu initiieren, den Status von Transaktionen abzurufen und Quittungen zu erhalten.<\/p>\n<p><b>In der f\u00fcnften Lektion<\/b> werden Sie mit Smart Contracts im Ethereum-Netzwerk vertraut gemacht und erfahren mehr \u00fcber deren Ausf\u00fchrung durch die Ethereum Virtual Machine. <\/p>\n<p>Sie werden Ihren ersten Smart Contract in einem privaten Ethereum-Netzwerk erstellen und ver\u00f6ffentlichen sowie dessen Funktionen aufrufen. Dazu verwenden Sie die Entwicklungsumgebung Remix Solidity IDE. Au\u00dferdem lernen Sie, den Compiler solc zu installieren und zu nutzen.<br \/>\nWir werden auch \u00fcber die sogenannte Application Binary Interface (ABI) sprechen und wie man sie anwendet.<\/p>\n<p><b>Die sechste Lektion<\/b> ist der Erstellung von JavaScript-Skripten gewidmet, die unter Node.js ausgef\u00fchrt werden und Operationen mit Solidity-Smart Contracts durchf\u00fchren.<\/p>\n<p>Sie werden Node.js auf Ubuntu, Debian und Raspberry Pi installieren, Skripte schreiben, um einen Smart Contract im lokalen Ethereum-Netzwerk zu ver\u00f6ffentlichen und dessen Funktionen aufzurufen. <\/p>\n<p>Au\u00dferdem lernen Sie, mit Skripten Mittel zwischen gew\u00f6hnlichen Konten zu \u00fcbertragen und sie auf Smart Contract-Konten einzuzahlen.<\/p>\n<p><b>In der siebten Lektion<\/b> werden Sie lernen, die bei Entwicklern von Smart Contracts beliebte integrierte Entwicklungsumgebung Truffle zu installieren und zu verwenden. Sie werden Skripte in JavaScript erstellen, die Funktionen von Vertr\u00e4gen mit dem Modul truffle-contract aufrufen und Ihren Smart Contract mit Truffle testen.<\/p>\n<p><b>Die achte Lektion<\/b> ist den Datentypen von Solidity gewidmet. Sie werden Smart Contracts schreiben, die mit Datentypen wie vorzeichenbehafteten und nicht vorzeichenbehafteten Ganzzahlen, Gleitkommazahlen, Strings, Adressen, komplexen Variablen, Arrays, Aufz\u00e4hlungen, Strukturen und Dictionaries arbeiten.<\/p>\n<p><b>In der neunten Lektion<\/b> Sie sind nur noch einen Schritt davon entfernt, Smart Contracts f\u00fcr das Ethereum-Hauptnetz zu erstellen. Sie lernen, wie man Vertr\u00e4ge mit Truffle in einem privaten Geth-Netzwerk sowie in dem Testnetz Rinkeby ver\u00f6ffentlicht. Die Fehlersuche von Smart Contracts im Rinkeby-Netzwerk ist \u00e4u\u00dferst wertvoll, bevor Sie sie im Hauptnetz ver\u00f6ffentlichen \u2014 dort ist alles fast echt, aber kostenlos.<\/p>\n<p>Im Rahmen dieser Lektion werden Sie einen Knoten im Testnetz Rinkeby erstellen, ihn mit Mitteln aufladen und einen Smart Contract ver\u00f6ffentlichen.<\/p>\n<p><b>Lektion 10<\/b> widmet sich den verteilten Datenspeichern von Ethereum Swarm. Durch die Nutzung verteilter Speicher sparen Sie Kosten f\u00fcr die Speicherung gro\u00dfer Datenmengen in der Ethereum-Blockchain. <\/p>\n<p>In dieser Lektion werden Sie ein lokales Swarm-Speicher erstellen, Datei- und Verzeichnisoperationen durchf\u00fchren. Anschlie\u00dfend lernen Sie, wie Sie mit einem \u00f6ffentlichen Swarm-Gateway arbeiten, Skripte zur Ansprache von Swarm aus Node.js schreiben und das Perl-Modul Net::Ethereum::Swarm verwenden.<\/p>\n<p><b>Ziel der Lektion 11<\/b> \u2014 Erlernen Sie den Umgang mit Smart Contracts in Solidity unter Verwendung der popul\u00e4ren Programmiersprache Python und des Frameworks Web3.py. Sie installieren dieses Framework, schreiben Skripte zum Kompilieren und Ver\u00f6ffentlichen von Smart Contracts sowie zum Aufrufen ihrer Funktionen. Dabei wird Web3.py sowohl eigenst\u00e4ndig als auch zusammen mit der integrierten Entwicklungsumgebung Truffle eingesetzt.<\/p>\n<p><b>In der 12. Lektion<\/b> lernen Sie, Daten zwischen Smart Contracts und der realen Welt mithilfe von Orakeln zu \u00fcbermitteln. Dies ist n\u00fctzlich, um Daten von Webseiten, Internet-of-Things (IoT)-Ger\u00e4ten, verschiedenen Instrumenten und Sensoren abzurufen und Daten aus Smart Contracts an diese Ger\u00e4te zu senden. Im praktischen Teil der Lektion erstellen Sie ein Orakel und einen Smart Contract, der den aktuellen Wechselkurs von USD zu Rubel von der Website der Zentralbank der Russischen F\u00f6deration abruft.<\/p>\n<p><b class=\"spoiler_title\">Lektion 1. Einf\u00fchrung in Blockchain und das Ethereum-Netzwerk<\/b><b>Ziel der Lektion:<\/b> die Funktionsweise der Ethereum-Blockchain, ihre Anwendungsbereiche und die grundlegende Terminologie kennenzulernen.<br \/>\n<b>Praktische Aufgaben:<\/b> f\u00fcr diese Lektion sind keine vorgesehen.<\/p>\n<p>Heute gibt es kaum einen Softwareentwickler, der noch nie von Blockchain-Technologie, Kryptow\u00e4hrungen, Bitcoins, Initial Coin Offerings (ICO), Smart Contracts oder anderen Begriffen geh\u00f6rt hat, die mit Blockchain in Verbindung stehen.<\/p>\n<p>Die Blockchain-Technologie er\u00f6ffnet neue M\u00e4rkte und schafft Arbeitspl\u00e4tze f\u00fcr Programmierer. Wenn Sie alle Feinheiten der Kryptow\u00e4hrungstechnologien und der Smart Contracts verstehen, sollte es Ihnen leichtfallen, dieses Wissen praktisch anzuwenden.<\/p>\n<p>Es sollte angemerkt werden, dass es um Kryptow\u00e4hrungen und Blockchains eine Menge Spekulationen gibt. Wir wollen Spekulationen \u00fcber Kryptow\u00e4hrungswechselkurse, das Erstellen von Pyramidensystemen, die Feinheiten der kryptow\u00e4hrungsrechtlichen Bestimmungen usw. au\u00dfen vor lassen. In unserem Lehrgang konzentrieren wir uns haupts\u00e4chlich auf die technischen Aspekte der Anwendung von Smart Contracts auf der Ethereum-Blockchain und die Entwicklung sogenannter dezentraler Anwendungen (DApp).<\/p>\n<h3>Was ist Blockchain?<\/h3>\n<p>\nDie Blockchain stellt eine Kette von Datenbl\u00f6cken dar, die auf eine bestimmte Weise miteinander verkn\u00fcpft sind. Zu Beginn der Kette steht der erste Block, der als Genesis-Block oder Ursprungsblock bezeichnet wird. Darauf folgen der zweite, der dritte und so weiter.<\/p>\n<p>Alle diese Datenbl\u00f6cke werden automatisch auf zahlreichen Knoten im Blockchain-Netzwerk dupliziert. So wird eine dezentrale Speicherung der Blockchain-Daten sichergestellt. <br \/>\nSie k\u00f6nnen sich das Blockchain-System als eine gro\u00dfe Anzahl von Knoten (physikalischen oder virtuellen Servern) vorstellen, die in einem Netzwerk verbunden sind und alle \u00c4nderungen in der Kette von Datenbl\u00f6cken replizieren. Es ist wie ein riesiger Multi-Server-Computer, wobei die Knoten dieses Computers (Server) \u00fcber die ganze Welt verstreut sein k\u00f6nnen. Und auch Ihr Computer kann dem Blockchain-Netzwerk hinzugef\u00fcgt werden. <\/p>\n<h4>Verteilte Datenbank<\/h4>\n<p>\nDie Blockchain kann als verteilte Datenbank betrachtet werden, die auf allen Knoten des Blockchain-Netzwerks repliziert wird. In der Theorie wird die Blockchain funktionsf\u00e4hig bleiben, solange mindestens ein Knoten, der alle Bl\u00f6cke der Blockchain speichert, aktiv ist.<\/p>\n<h4>Verteiltes Datenregister<\/h4>\n<p>\nBlockchain kann als ein verteiltes Register von Daten und Transaktionen betrachtet werden. Ein weiteres Wort f\u00fcr dieses Register ist Hauptbuch. <\/p>\n<p>In das verteilte Register k\u00f6nnen Daten hinzugef\u00fcgt werden, jedoch ist es nicht m\u00f6glich, diese zu \u00e4ndern oder zu l\u00f6schen. Dieses Verbot wird unter anderem durch den Einsatz von kryptografischen Algorithmen, speziellen Algorithmen zum Hinzuf\u00fcgen von Bl\u00f6cken in die Kette und die dezentrale Speicherung von Daten erreicht.<\/p>\n<p>Beim Hinzuf\u00fcgen von Bl\u00f6cken und der Durchf\u00fchrung von Transaktionen werden private und \u00f6ffentliche Schl\u00fcssel verwendet. Diese schr\u00e4nken die Nutzer des Blockchain ein und gew\u00e4hren ihnen nur Zugang zu ihren eigenen Datenbl\u00f6cken.<\/p>\n<h4>Transaktionen<\/h4>\n<p>\nBlockchain speichert Informationen \u00fcber Transaktionen in Bl\u00f6cken. Dabei k\u00f6nnen alte, bereits durchgef\u00fchrte Transaktionen nicht zur\u00fcckgesetzt oder ge\u00e4ndert werden. Neue Transaktionen werden in neuen, hinzugef\u00fcgten Bl\u00f6cken gespeichert.<\/p>\n<p>So kann im Blockchain die gesamte Transaktionsgeschichte unver\u00e4ndert aufgezeichnet werden. Daher kann Blockchain beispielsweise f\u00fcr die zuverl\u00e4ssige Speicherung von Banktransaktionen, Urheberrechtsinformationen, der Historie von Eigent\u00fcmerwechseln bei Immobilien usw. verwendet werden.<\/p>\n<p>Die Ethereum-Blockchain enth\u00e4lt sogenannte Systemzust\u00e4nde. Mit der Durchf\u00fchrung von Transaktionen \u00e4ndert sich der Zustand von anf\u00e4nglich bis aktuell. Transaktionen werden in Bl\u00f6cken aufgezeichnet.<\/p>\n<h4>\u00d6ffentliche und private Blockchains<\/h4>\n<p>\nEs ist wichtig zu beachten, dass alles, was gesagt wurde, nur f\u00fcr die sogenannten \u00f6ffentlichen Blockchain-Netzwerke gilt, die nicht von einzelnen physischen oder juristischen Personen, Regierungsbeh\u00f6rden oder Regierungen kontrolliert werden k\u00f6nnen. <br \/>\nDie sogenannten privaten Blockchain-Netzwerke stehen unter vollst\u00e4ndiger Kontrolle ihrer Ersteller, und dort ist alles m\u00f6glich, wie beispielsweise die vollst\u00e4ndige Ersetzung aller Bl\u00f6cke in der Kette.<\/p>\n<h4>Praktische Anwendungen der Blockchain<\/h4>\n<p>\nWof\u00fcr kann Blockchain n\u00fctzlich sein?<\/p>\n<p>Kurz gesagt, Blockchain erm\u00f6glicht es, sichere Transaktionen zwischen Parteien oder Unternehmen durchzuf\u00fchren, die einander nicht vertrauen. Daten, die in der Blockchain aufgezeichnet sind (Transaktionen, pers\u00f6nliche Daten, Dokumente, Zertifikate, Vertr\u00e4ge, Frachtpapiere usw.), k\u00f6nnen nach der Aufzeichnung nicht gef\u00e4lscht oder ersetzt werden. Daher k\u00f6nnen auf Basis der Blockchain beispielsweise vertrauensw\u00fcrdige verteilte Register verschiedener Dokumentenarten erstellt werden.<\/p>\n<p>Nat\u00fcrlich wissen Sie, dass auf Blockchain-Basis Kryptow\u00e4hrungssysteme entstehen, die darauf abzielen, herk\u00f6mmliches Papiergeld zu ersetzen. Papiergeld wird auch als Fiat-W\u00e4hrung bezeichnet.<br \/>\nDie Blockchain erm\u00f6glicht die Speicherung und Unver\u00e4nderlichkeit von Transaktionen, die in Bl\u00f6cken aufgezeichnet sind, weshalb sie f\u00fcr die Erstellung von Kryptow\u00e4hrungssystemen verwendet werden kann. Sie enth\u00e4lt die gesamte Historie der \u00dcbertragung von Krypto-Mitteln zwischen verschiedenen Benutzern (Konten), wobei jede Transaktion nachvollzogen werden kann.<\/p>\n<p>Obwohl Transaktionen innerhalb von Kryptow\u00e4hrungssystemen anonym sein k\u00f6nnen, f\u00fchrt die Umwandlung von Kryptow\u00e4hrung in Fiat-W\u00e4hrung in der Regel zur Offenlegung der Identit\u00e4t des Inhabers des Krypto-Assets. <\/p>\n<p>Die sogenannten Smart Contracts, die Software repr\u00e4sentieren, die im Ethereum-Netzwerk arbeitet, erm\u00f6glichen die Automatisierung des Vertragsabschlusses und die \u00dcberwachung ihrer Ausf\u00fchrung. Dies ist besonders effektiv, wenn die Bezahlung f\u00fcr den Vertrag in der Kryptow\u00e4hrung Ether erfolgt.<\/p>\n<p>Die Ethereum-Blockchain und die Smart Contracts von Ethereum, die in der Programmiersprache Solidity geschrieben sind, k\u00f6nnen beispielsweise in folgenden Bereichen eingesetzt werden:<\/p>\n<ul>\n<li>eine Alternative zur notariellen Beglaubigung von Dokumenten;<\/li>\n<li>Archivierung von Immobilienregistern und Informationen zu Immobiliengesch\u00e4ften;<\/li>\n<li>Speicherung von Daten zu Urheberrechten an geistigem Eigentum (B\u00fccher, Bilder, Musikwerke usw.);<\/li>\n<li>Schaffung von Systemen f\u00fcr unabh\u00e4ngige Abstimmungen;<\/li>\n<li>Bereich Finanzen und Bankgesch\u00e4ft;<\/li>\n<li>Internationale Logistik und Nachverfolgung von Frachtbewegungen;<\/li>\n<li>Speicherung personenbezogener Daten als Pendant zu Identifikationssystemen;<\/li>\n<li>Sichere Transaktionen im Handelsbereich;<\/li>\n<li>Speicherung von Ergebnissen medizinischer Untersuchungen sowie von Vorgeschichten \u00fcber durchgef\u00fchrte Verfahren;<\/li>\n<\/ul>\n<p><\/p>\n<h4>Probleme mit der Blockchain;<\/h4>\n<p>\nAber nat\u00fcrlich ist nicht alles so einfach, wie es erscheinen mag! <\/p>\n<p>Es gibt Probleme mit der Verifizierung von Daten vor deren Hinzuf\u00fcgung zur Blockchain (zum Beispiel, ob sie echt sind?), Sicherheitsprobleme der System- und Anwendungssoftware, die f\u00fcr die Arbeit mit der Blockchain verwendet wird, und Probleme mit der M\u00f6glichkeit, Methoden der sozialen Manipulation zu verwenden, um den Zugang zu Kryptowallets zu stehlen usw.<\/p>\n<p>Wenn es sich nicht um eine \u00f6ffentliche Blockchain handelt, deren Knoten weltweit verteilt sind, sondern um eine private Blockchain, die einer Person oder Organisation geh\u00f6rt, wird das Vertrauen nicht h\u00f6her sein als das Vertrauen in diese Person oder Organisation.<\/p>\n<p>Es ist auch zu beachten, dass die im Blockchain gespeicherten Daten f\u00fcr alle zug\u00e4nglich werden. In diesem Sinne ist die Blockchain (insbesondere die \u00f6ffentliche) nicht f\u00fcr die Speicherung vertraulicher Informationen geeignet. Doch die Tatsache, dass Informationen in der Blockchain nicht ver\u00e4ndert werden k\u00f6nnen, kann dazu beitragen, unterschiedliche Arten von Betrugsf\u00e4llen zu verhindern oder zu untersuchen.<\/p>\n<p>Dezentralisierte Ethereum-Anwendungen sind am besten geeignet, wenn die Nutzungsgeb\u00fchren in Kryptow\u00e4hrung bezahlt werden. Je mehr Menschen Kryptow\u00e4hrung besitzen oder bereit sind, sie zu erwerben, desto beliebter werden DApps und Smart Contracts.<\/p>\n<p>Zu den allgemeinen Problemen der Blockchain, die ihre praktische Anwendung erschweren, geh\u00f6ren die begrenzte Geschwindigkeit bei der Hinzuf\u00fcgung neuer Bl\u00f6cke und die relativ hohen Transaktionskosten. Allerdings entwickeln sich die Technologien in diesem Bereich aktiv, und es besteht die Hoffnung, dass die technischen Probleme im Laufe der Zeit gel\u00f6st werden.<\/p>\n<p>Ein weiteres Problem besteht darin, dass Smart Contracts der Ethereum-Blockchain in einer isolierten Umgebung virtueller Maschinen operieren und keinen Zugriff auf Daten aus der realen Welt haben. Insbesondere kann das Smart Contract-Programm keine Daten von Websites oder physischen Ger\u00e4ten (Sensoren, Kontakte usw.) abrufen und kann keine Daten an externe Ger\u00e4te ausgeben. Dieses Problem und m\u00f6gliche L\u00f6sungen werden wir in einer Lektion er\u00f6rtern, die sich mit sogenannten Orakeln \u2013 Informationsvermittlern f\u00fcr Smart Contracts \u2013 besch\u00e4ftigt.<\/p>\n<p>Es gibt auch Einschr\u00e4nkungen im Bereich der Gesetzgebung. In einigen L\u00e4ndern ist es beispielsweise verboten, Kryptow\u00e4hrungen als Zahlungsmittel zu verwenden, aber man kann sie als digitale Verm\u00f6genswerte besitzen, \u00e4hnlich wie Wertpapiere. Solche Verm\u00f6genswerte k\u00f6nnen an der B\u00f6rse gekauft und verkauft werden. In jedem Fall muss man sich bei der Erstellung eines Projekts, das mit Kryptow\u00e4hrungen arbeitet, \u00fcber die Gesetzgebung des Landes informieren, unter dessen Jurisdiktion Ihr Projekt f\u00e4llt.<\/p>\n<h3>Wie die Blockchain-Kette entsteht<\/h3>\n<p>\nWie bereits erw\u00e4hnt, besteht die Blockchain aus einer einfachen Kette von Datenbl\u00f6cken. Zuerst wird der erste Block dieser Kette erstellt, gefolgt vom zweiten und so weiter. Es wird angenommen, dass die Transaktionsdaten in den Bl\u00f6cken gespeichert werden und in den letzten Block hinzugef\u00fcgt werden.<\/p>\n<p>In Abb. 1.1 zeigen wir die einfachste Variante der Abfolge von Bl\u00f6cken, wobei der erste Block auf den n\u00e4chsten verweist. <\/p>\n<p><img decoding=\"async\" alt=\"Buch: \u00abSmart Contracts mit Solidity f\u00fcr die Ethereum-Blockchain. Ein praktischer Leitfaden\u00bb\" src=\"\/wp-content\/uploads\/2019\/10\/23ca04ba2c8914334032523d01bf8b80.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Abb. 1.1. Einfache Abfolge von Bl\u00f6cken<\/i><\/p>\n<p>In diesem Szenario k\u00f6nnen jedoch die Inhalte eines beliebigen Blockes der Kette sehr leicht gef\u00e4lscht werden, da die Bl\u00f6cke keine Informationen zum Schutz vor \u00c4nderungen enthalten. Da die Blockchain f\u00fcr die Nutzung durch Menschen und Unternehmen gedacht ist, zwischen denen kein Vertrauen besteht, kann man schlie\u00dfen, dass diese Art der Datenspeicherung f\u00fcr die Blockchain nicht geeignet ist.<\/p>\n<p>Lassen Sie uns den Schutz der Bl\u00f6cke gegen F\u00e4lschungen angehen. In der ersten Phase werden wir versuchen, jeden Block mit einer Pr\u00fcfziffer zu sch\u00fctzen (Abb. 1.2).<\/p>\n<p><img decoding=\"async\" alt=\"Buch: \u00abSmart Contracts mit Solidity f\u00fcr die Ethereum-Blockchain. Ein praktischer Leitfaden\u00bb\" src=\"\/wp-content\/uploads\/2019\/10\/141502accec14e868a9382c612cfc791.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Abb. 1.2. Hinzuf\u00fcgen von Datenschutz zu den Bl\u00f6cken mit einer Pr\u00fcfziffer<\/i><\/p>\n<p>Jetzt kann ein Angreifer den Block nicht einfach \u00e4ndern, da der Block eine Pr\u00fcfziffer enth\u00e4lt. Die \u00dcberpr\u00fcfung der Pr\u00fcfziffer wird zeigen, dass die Daten ver\u00e4ndert wurden.<\/p>\n<p>Zur Berechnung der Pr\u00fcfziffer kann eine der Hash-Funktionen verwendet werden, wie z.B. MD5, SHA-1, SHA-256 usw. Hash-Funktionen berechnen einen bestimmten Wert (zum Beispiel in Form einer Textzeichenfolge fester L\u00e4nge) durch irreversible Operationen auf dem Datenblock. Die Operationen h\u00e4ngen von der Art der Hash-Funktion ab. <\/p>\n<p>Selbst bei einer geringen \u00c4nderung des Inhalts eines Datenblocks \u00e4ndert sich auch der Wert der Hash-Funktion. Anhand des Wertes der Hash-Funktion ist es unm\u00f6glich, den Datenblock, f\u00fcr den sie berechnet wurde, wiederherzustellen.<\/p>\n<p>Ist dieser Schutz ausreichend? Leider nicht.<\/p>\n<p>In diesem Schema sch\u00fctzt die Pr\u00fcfziffer (Hash-Funktion) nur einzelne Bl\u00f6cke, jedoch nicht die gesamte Kette der Bl\u00f6cke. Kennt ein Angreifer den Algorithmus zur Berechnung der Hash-Funktion, kann er den Inhalt eines Blocks leicht manipulieren. Nichts hindert ihn auch daran, Bl\u00f6cke aus der Kette zu entfernen oder neue hinzuzuf\u00fcgen.<\/p>\n<p>Um die gesamte Kette als Ganzes zu sch\u00fctzen, kann man in jedem Block neben den Daten auch den Hash der Daten des vorherigen Blocks speichern (siehe Abb. 1.3).<\/p>\n<p><img decoding=\"async\" alt=\"Buch: \u00abSmart Contracts mit Solidity f\u00fcr die Ethereum-Blockchain. Ein praktischer Leitfaden\u00bb\" src=\"\/wp-content\/uploads\/2019\/10\/f414ab67dbabc763c537a430e01ed065.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Abb. 1.3. Hinzuf\u00fcgen des Hashs des vorherigen Blocks zu den Daten<\/i><\/p>\n<p>In diesem Schema muss, um einen Block zu \u00e4ndern, die Hash-Funktion aller nachfolgenden Bl\u00f6cke neu berechnet werden. Worin k\u00f6nnte das Problem liegen?<\/p>\n<p>In echten Blockchains werden zus\u00e4tzliche k\u00fcnstliche Schwierigkeiten geschaffen, um neue Bl\u00f6cke hinzuzuf\u00fcgen \u2013 Algorithmen, die hohe Rechenressourcen erfordern, kommen zum Einsatz. Da f\u00fcr \u00c4nderungen an einem Block nicht nur dieser Block, sondern alle nachfolgenden Bl\u00f6cke neu berechnet werden m\u00fcssen, wird dies \u00e4u\u00dferst herausfordernd.<\/p>\n<p>Es ist auch wichtig zu beachten, dass die Blockchain-Daten auf zahlreichen Knoten im Netzwerk gespeichert (dupliziert) werden, d.h. es wird ein dezentraler Speicher genutzt. Dies macht es erheblich schwieriger, einen Block zu f\u00e4lschen, da \u00c4nderungen an allen Knoten im Netzwerk vorgenommen werden m\u00fcssen.<\/p>\n<p>Da Bl\u00f6cke Informationen \u00fcber den vorherigen Block speichern, kann der Inhalt aller Bl\u00f6cke der Kette \u00fcberpr\u00fcft werden.<\/p>\n<h3>Ethereum Blockchain<\/h3>\n<p>\nDie Ethereum Blockchain ist eine Plattform, auf der dezentrale Anwendungen (DApps) erstellt werden k\u00f6nnen. Im Gegensatz zu anderen Plattformen erm\u00f6glicht Ethereum die Nutzung sogenannter Smart Contracts, die in der Programmiersprache Solidity geschrieben sind.<\/p>\n<p>Diese Plattform wurde 2013 von Vitalik Buterin, dem Gr\u00fcnder des Bitcoin Magazine, ins Leben gerufen und 2015 gestartet. Alles, was wir in unserem Kurs lernen oder tun werden, bezieht sich auf die Ethereum-Blockchain und Smart Contracts mit Solidity.<\/p>\n<h3>Mining oder wie Bl\u00f6cke erstellt werden<\/h3>\n<p>\nMining ist ein komplizierter und ressourcenintensiver Prozess, bei dem neue Bl\u00f6cke zur Blockchain hinzugef\u00fcgt werden, und kein \u00abAbbau von Kryptow\u00e4hrungen\u00bb. Mining stellt die Funktionsf\u00e4higkeit der Blockchain sicher, da dieser Prozess f\u00fcr das Hinzuf\u00fcgen von Transaktionen zur Ethereum-Blockchain verantwortlich ist.<\/p>\n<p>Die Personen und Organisationen, die Bl\u00f6cke hinzuf\u00fcgen, werden Miner genannt.<br \/>\nDie Software (SW), die auf den Nodes der Miner l\u00e4uft, versucht, f\u00fcr den letzten Block den Hashing-Parameter namens Nonce zu ermitteln, um einen bestimmten Wert der vom Netzwerk vorgeschriebenen Hash-Funktion zu erhalten. Der in Ethereum verwendete Hashing-Algorithmus Ethash erm\u00f6glicht es, den Nonce-Wert nur durch sequentielles Ausprobieren zu erhalten. <\/p>\n<p>Wenn ein Mining-Knoten den richtigen Nonce-Wert gefunden hat, gilt dies als so genannter Proof of Work (PoW). In diesem Fall erh\u00e4lt der Miner, wenn der Block dem Ethereum-Netzwerk hinzugef\u00fcgt wird, eine bestimmte Belohnung in der W\u00e4hrung des Netzwerks \u2013 Ether. Zum Zeitpunkt der Erstellung unseres Buches betr\u00e4gt die Belohnung 5 Ether, wird jedoch im Laufe der Zeit verringert.<\/p>\n<p>Auf diese Weise sorgen Ethereum-Miner f\u00fcr den Betrieb des Netzwerks, indem sie Bl\u00f6cke hinzuf\u00fcgen und daf\u00fcr Kryptow\u00e4hrungs-Geld erhalten. Im Internet finden Sie viele Informationen \u00fcber Miner und Mining, aber wir konzentrieren uns auf die Erstellung von Solidity-Vertr\u00e4gen und dezentralen Anwendungen (DApps) im Ethereum-Netzwerk.<\/p>\n<h3>Zusammenfassung der Lektion<\/h3>\n<p>\nIn der ersten Lektion haben Sie das Blockchain-System kennengelernt und erfahren, dass es sich um eine speziell angeordnete Sequenz von Bl\u00f6cken handelt. Der Inhalt zuvor aufgezeichneter Bl\u00f6cke kann nicht ge\u00e4ndert werden, da dies die Neuberechnung aller nachfolgenden Bl\u00f6cke an vielen Knoten im Netzwerk erfordern w\u00fcrde, was sehr viele Ressourcen und Zeit in Anspruch nimmt.<\/p>\n<p>Blockchain kann verwendet werden, um die Ergebnisse von Transaktionen zu speichern. Seine Hauptfunktion besteht darin, sichere Transaktionen zwischen Parteien (Personen und Organisationen) zu organisieren, zwischen denen kein Vertrauen besteht. Sie haben erfahren, in welchen spezifischen Gesch\u00e4ftsbereichen und Sektoren Blockchain-Technologie, Ethereum und Smart Contracts in Solidity eingesetzt werden k\u00f6nnen. Dazu geh\u00f6ren die Bankenbranche, die Registrierung von Eigentumsrechten, Dokumenten usw.<\/p>\n<p>Sie haben auch erfahren, dass bei der Nutzung von Blockchain verschiedene Probleme auftreten k\u00f6nnen. Dazu geh\u00f6ren die Verifizierung der in die Blockchain aufgenommenen Informationen, die Geschwindigkeit der Blockchain, die Transaktionskosten, die Problematik des Datenaustauschs zwischen Smart Contracts und der realen Welt sowie potenzielle Angriffe von Cyberkriminellen, die darauf abzielen, Kryptow\u00e4hrungen von Benutzerkonten zu stehlen.<\/p>\n<p>Wir haben auch kurz \u00fcber das Mining als den Prozess gesprochen, neue Bl\u00f6cke zur Blockchain hinzuzuf\u00fcgen. Mining ist erforderlich, um Transaktionen auszuf\u00fchren. Die Miner gew\u00e4hrleisten die Funktionalit\u00e4t der Blockchain und erhalten daf\u00fcr eine Belohnung in Kryptow\u00e4hrung.<\/p>\n<p><b class=\"spoiler_title\">Lektion 2. Vorbereitung der Entwicklungsumgebung unter Ubuntu und Debian<\/b>Auswahl des Betriebssystems<br \/>\nInstallation der notwendigen Tools<br \/>\nInstallation von Geth und Swarm unter Ubuntu<br \/>\nInstallation von Geth und Swarm unter Debian<br \/>\nVorbereitung<br \/>\nDownload des Go-Distributionspakets<br \/>\nEinrichtung der Umgebungsvariablen<br \/>\n\u00dcberpr\u00fcfung der Go-Version<br \/>\nInstallation von Geth und Swarm<br \/>\nErstellung einer privaten Blockchain<br \/>\n\u0413\u043e\u0442\u043e\u0432\u0438\u043c \u0444\u0430\u0439\u043b genesis.json<br \/>\nErstellung eines Arbeitsverzeichnisses<br \/>\nErstellung eines Kontos<br \/>\nInitialisierung des Nodes starten<br \/>\nNode-Startparameter<br \/>\nVerbindung zu unserem Node herstellen<br \/>\nMining-Management und Kontostand \u00fcberpr\u00fcfen<br \/>\nBeenden der Geth-Konsole<br \/>\nZusammenfassung der Lektion<\/p>\n<p><b class=\"spoiler_title\">Lektion 3. Vorbereitung der Entwicklungsumgebung auf Raspberry Pi 3<\/b>Vorbereitung des Raspberry Pi 3 zur Nutzung<br \/>\nInstallation von Raspbian<br \/>\nInstallation von Updates<br \/>\nAktivierung des SSH-Zugangs<br \/>\nEinrichtung einer statischen IP-Adresse<br \/>\nInstallation der notwendigen Tools<br \/>\nInstallation von Go<br \/>\nDownload des Go-Distributionspakets<br \/>\nEinrichtung der Umgebungsvariablen<br \/>\n\u00dcberpr\u00fcfung der Go-Version<br \/>\nInstallation von Geth und Swarm<br \/>\nErstellung einer privaten Blockchain<br \/>\n\u00dcberpr\u00fcfung des Kontos und des Kontostands<br \/>\nZusammenfassung der Lektion<\/p>\n<p><b class=\"spoiler_title\">Lektion 4. Konten und Geldtransfer zwischen Konten<\/b>Konten anzeigen und hinzuf\u00fcgen<br \/>\nListe der Konten anzeigen<br \/>\nKonto hinzuf\u00fcgen<br \/>\nGeth-Konto-Befehlsoptionen<br \/>\nKontopassw\u00f6rter<br \/>\nKryptow\u00e4hrung in Ethereum<br \/>\nW\u00e4hrungen in Ethereum<br \/>\n\u00dcberpr\u00fcfung des aktuellen Kontostands unserer Konten<br \/>\nGeldtransfer von einem Konto zu einem anderen<br \/>\nMethoden eth.sendTransaction<br \/>\n\u00dcberpr\u00fcfung des Transaktionsstatus<br \/>\nTransaktionsquittung<br \/>\nZusammenfassung der Lektion<\/p>\n<p><b class=\"spoiler_title\">Lektion 5. Ver\u00f6ffentlichung des ersten Vertrags<\/b>Smart Contracts in Ethereum<br \/>\nAusf\u00fchrung eines Smart Contracts<br \/>\nEthereum Virtual Machine<br \/>\nIntegrierte Entwicklungsumgebung Remix Solidity IDE<br \/>\nKompilierung starten<br \/>\nFunktionsaufrufe des Vertrags<br \/>\nVertrag in einem privaten Netzwerk ver\u00f6ffentlichen<br \/>\nDefinition ABI und Bytecode des Vertrags abrufen<br \/>\nVertrag ver\u00f6ffentlichen<br \/>\nStatus der Vertragsver\u00f6ffentlichung \u00fcberpr\u00fcfen<br \/>\nFunktionsaufrufe des Vertrags<br \/>\nBatch-Compiler solc<br \/>\nInstallation von solc unter Ubuntu<br \/>\nInstallation von solc unter Debian<br \/>\nKompilierung des Vertrags HelloSol<br \/>\nVertrag ver\u00f6ffentlichen<br \/>\nInstallation von solc auf Rasberian<br \/>\nZusammenfassung der Lektion<\/p>\n<p><b class=\"spoiler_title\">\u0423\u0440\u043e\u043a 6. \u0421\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u044b \u0438 Node.js<\/b>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Node.js<br \/>\nInstallation unter Ubuntu<br \/>\nInstallation unter Debian<br \/>\nInstallation und Ausf\u00fchrung von Ganache-cli<br \/>\nInstallation von Web3<br \/>\nInstallation von solc<br \/>\nInstallation von Node.js auf Rasberian<br \/>\nSkript zum Abrufen der Kontoliste in der Konsole<br \/>\nSkript zur Ver\u00f6ffentlichung eines Smart Contracts<br \/>\nAusf\u00fchrung und Abruf von Parametern<br \/>\nAbfragen der Startparameter<br \/>\nKompilierung des Vertrags<br \/>\nKonto entsperren<br \/>\nABI und Bytecode des Vertrags hochladen<br \/>\nBen\u00f6tigte Gasmenge absch\u00e4tzen<br \/>\nObjekt erstellen und Vertrag ver\u00f6ffentlichen<br \/>\nSkript zur Vertragsver\u00f6ffentlichung ausf\u00fchren<br \/>\nFunktionsaufrufe des Smart Contracts<br \/>\nKann ein ver\u00f6ffentlichter Smart Contract aktualisiert werden?<br \/>\nArbeiten mit Web3 Version 1.0.x<br \/>\nListe der Konten abrufen<br \/>\nVertrag ver\u00f6ffentlichen<br \/>\nFunktionsaufrufe des Vertrags<br \/>\nGeldtransfer von einem Konto zu einem anderen<br \/>\nGeld auf das Vertragskonto \u00fcberweisen<br \/>\nSmart Contract HelloSol aktualisieren<br \/>\nSkript zur Einsicht des Kontostands erstellen<br \/>\n\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 getBalance \u0432 \u0441\u043a\u0440\u0438\u043f\u0442 call_contract_get_promise.js<br \/>\nSaldo des Smart Contracts aufladen<br \/>\nZusammenfassung der Lektion<\/p>\n<p><b class=\"spoiler_title\">Lektion 7. Einf\u00fchrung in Truffle<\/b>Truffle installieren<br \/>\nProjekt HelloSol erstellen<br \/>\nVerzeichnis und Dateien des Projekts anlegen<br \/>\nVerzeichnis contracts<br \/>\nVerzeichnis migrations<br \/>\nVerzeichnis test<br \/>\n\u0424\u0430\u0439\u043b truffle-config.js<br \/>\nKompilierung des Vertrags HelloSol<br \/>\nVer\u00f6ffentlichung des Vertrags starten<br \/>\nFunktionen des Contracts HelloSol in der Truffle-Einladung aufrufen<br \/>\n\u0412\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 HelloSol \u0438\u0437 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 JavaScript \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c Node.js<br \/>\nModul truffle-contract installieren<br \/>\nFunktionen des Contracts getValue und getString aufrufen<br \/>\nFunktionen des Contracts setValue und setString aufrufen<br \/>\nVertrag \u00e4ndern und erneut ver\u00f6ffentlichen<br \/>\nArbeiten mit Web3 Version 1.0.x<br \/>\n\u00c4nderungen am Smart Contract HelloSol vornehmen<br \/>\nSkripte zum Aufruf der Contract-Methoden<br \/>\nTesten in Truffle<br \/>\nTest in Solidity<br \/>\nTest in JavaScript<br \/>\nZusammenfassung der Lektion<\/p>\n<p><b class=\"spoiler_title\">Lektion 8. Datentypen in Solidity<\/b>Vertrag zum Studium der Datentypen<br \/>\nBoolean Datentypen<br \/>\nUnsigned Integers und Signed Integers<br \/>\nFestkommazahlen<br \/>\nAdresse<br \/>\nVariablen komplexer Typen<br \/>\nArrays fester Gr\u00f6\u00dfe<br \/>\nDynamische Arrays<br \/>\nEnum<br \/>\nStrukturen<br \/>\nMapping Dictionaries<br \/>\nZusammenfassung der Lektion<\/p>\n<p><b class=\"spoiler_title\">Lektion 9. Migration von Contracts in private Netzwerke und das Rinkeby-Netzwerk<\/b>Vertrag aus Truffle in ein privates Geth-Netzwerk ver\u00f6ffentlichen<br \/>\nKnoten des privaten Netzwerks vorbereiten<br \/>\nVertrag f\u00fcr den Betrieb vorbereiten<br \/>\nKompilierung und Migration des Vertrags in das Truffle-Netzwerk<br \/>\nMigration im lokalen Geth-Netzwerk starten<br \/>\nErzeugen von Truffle-Artefakten<br \/>\nVer\u00f6ffentlichen des Vertrags aus Truffle im Testnetz Rinkeby<br \/>\nVorbereitung des Geth-Knotens f\u00fcr die Arbeit mit Rinkeby<br \/>\nSynchronisierung des Knotens<br \/>\nHinzuf\u00fcgen von Konten<br \/>\nAufladen des Rinkeby-Kontos mit Ether<br \/>\nMigration des Vertrags im Rinkeby-Netzwerk starten<br \/>\nAnzeigen von Vertragsinformationen im Rinkeby-Netzwerk<br \/>\nTruffle-Konsole f\u00fcr das Rinkeby-Netzwerk<br \/>\nEinfacherer Weg zum Aufrufen von Vertragsfunktionen<br \/>\n\u0412\u044b\u0437\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 Node.js<br \/>\n\u00dcberweisung von Mitteln zwischen Konten in der Truffle-Konsole f\u00fcr Rinkeby<br \/>\nZusammenfassung der Lektion<\/p>\n<p><b class=\"spoiler_title\">Lektion 10. Dezentrales Datenspeicher Ethereum Swarm<\/b>Wie Ethereum Swarm funktioniert<br \/>\nInstallation und Start von Swarm<br \/>\nDatei- und Verzeichnisoperationen<br \/>\nHochladen einer Datei in Ethereum Swarm<br \/>\nLesen einer Datei aus Ethereum Swarm<br \/>\nAnzeigen des Manifests der hochgeladenen Datei<br \/>\nHochladen von Verzeichnissen mit Unterverzeichnissen<br \/>\nLesen einer Datei aus dem hochgeladenen Verzeichnis<br \/>\nVerwendung eines \u00f6ffentlichen Swarm-Gateways<br \/>\n\u041e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a Swarm \u0438\u0437 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 Node.js<br \/>\nPerl-Modul Net::Ethereum::Swarm<br \/>\nInstallation des Moduls Net::Ethereum::Swarm<br \/>\nSchreiben und Lesen von Daten<br \/>\nZusammenfassung der Lektion<\/p>\n<p><b class=\"spoiler_title\">Lektion 11. Web3.py-Framework f\u00fcr die Arbeit mit Ethereum in Python<\/b>Installation von Web3.py<br \/>\nAktualisierung und Installation ben\u00f6tigter Pakete<br \/>\nInstallation des easysolc-Moduls<br \/>\nVer\u00f6ffentlichen des Vertrags mit Web3.py<br \/>\nKompilierung des Vertrags<br \/>\nVerbindung zum Anbieter herstellen<br \/>\nVer\u00f6ffentlichung des Vertrags<br \/>\nSpeicherung der Vertragsadresse und ABI in einer Datei<br \/>\nSkript zur Vertragsver\u00f6ffentlichung ausf\u00fchren<br \/>\nAufruf von Methoden des Vertrags<br \/>\nLesen der Adresse und ABI des Vertrags aus einer JSON-Datei<br \/>\nVerbindung zum Anbieter herstellen<br \/>\nErstellen eines Vertragsobjekts<br \/>\nAufruf von Methoden des Vertrags<br \/>\nTruffle und Web3.py<br \/>\nZusammenfassung der Lektion<\/p>\n<p><b class=\"spoiler_title\">Lektion 12. Orakel<\/b>Kann ein Smart Contract Informationen aus der Au\u00dfenwelt vertrauen?<br \/>\nOrakel als Informationsvermittler der Blockchain<br \/>\nDatenquelle<br \/>\nCode zur Darstellung von Daten aus der Quelle<br \/>\nOrakel zur Aufzeichnung des Wechselkurses in der Blockchain<br \/>\nVertrag USDRateOracle<br \/>\nAktualisierung des Wechselkurses im Smart Contract<br \/>\nVerwendung des Web Socket Providers<br \/>\nWarten auf das Ereignis RateUpdate<br \/>\nVerarbeitung des Ereignisses RateUpdate<br \/>\nInitiierung der Datenaktualisierung im Smart Contract<br \/>\nZusammenfassung der Lektion<\/p>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/467347\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0411\u043e\u043b\u044c\u0448\u0435 \u0433\u043e\u0434\u0430 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430\u0434 \u043a\u043d\u0438\u0433\u043e\u0439 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 Solidity \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 Ethereum. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u00bb, \u0438 \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430, \u0430 \u043a\u043d\u0438\u0433\u0430 \u0438\u0437\u0434\u0430\u043d\u0430 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432 \u041b\u0438\u0442\u0440\u0435\u0441\u0435. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043c\u043e\u044f \u043a\u043d\u0438\u0433\u0430 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 Solidity \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 DApp \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 Ethereum. \u041e\u043d\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 12 \u0443\u0440\u043e\u043a\u043e\u0432 \u0441 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u043c\u0438. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u0438\u0445, \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29275,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-39018","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0411\u043e\u043b\u044c\u0448\u0435 \u0433\u043e\u0434\u0430 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430\u0434 \u043a\u043d\u0438\u0433\u043e\u0439 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 Solidity \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 Ethereum. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u00bb, \u0438 \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430, \u0430 \u043a\u043d\u0438\u0433\u0430 \u0438\u0437\u0434\u0430\u043d\u0430 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432 \u041b\u0438\u0442\u0440\u0435\u0441\u0435. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043c\u043e\u044f \u043a\u043d\u0438\u0433\u0430 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 Solidity \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 DApp \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 Ethereum. \u041e\u043d\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 12 \u0443\u0440\u043e\u043a\u043e\u0432 \u0441 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u043c\u0438. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u0438\u0445, \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/kniga-sozdanie-smart-kontraktov-solidity-dlya-blokchejna-ethereum-prakticheskoe-rukovodstvo\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u043d\u0438\u0433\u0430 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 Solidity \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 Ethereum. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u00bb | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0411\u043e\u043b\u044c\u0448\u0435 \u0433\u043e\u0434\u0430 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430\u0434 \u043a\u043d\u0438\u0433\u043e\u0439 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 Solidity \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 Ethereum. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u00bb, \u0438 \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430, \u0430 \u043a\u043d\u0438\u0433\u0430 \u0438\u0437\u0434\u0430\u043d\u0430 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432 \u041b\u0438\u0442\u0440\u0435\u0441\u0435. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043c\u043e\u044f \u043a\u043d\u0438\u0433\u0430 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 Solidity \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 DApp \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 Ethereum. \u041e\u043d\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 12 \u0443\u0440\u043e\u043a\u043e\u0432 \u0441 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u043c\u0438. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u0438\u0445, \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/kniga-sozdanie-smart-kontraktov-solidity-dlya-blokchejna-ethereum-prakticheskoe-rukovodstvo\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:27:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:27:25+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Buch \u201eErstellung von Solidity-Smart-Contracts f\u00fcr die Ethereum-Blockchain. Praktischer Leitfaden\u201c | ProHoster","description":"\u00dcber ein Jahr lang habe ich an dem Buch 'Smart Contracts mit Solidity f\u00fcr die Ethereum-Blockchain. Praktischer Leitfaden' gearbeitet, und jetzt ist dieses Werk abgeschlossen, das Buch ver\u00f6ffentlicht und verf\u00fcgbar bei Litres. Ich hoffe, mein Buch hilft, schnell mit der Erstellung von Smart Contracts in Solidity und verteilten Anwendungen DApp f\u00fcr die Ethereum-Blockchain zu beginnen. Es besteht aus 12 Lektionen mit praktischen Aufgaben. Nach der Durchf\u00fchrung dieser Aufgaben wird der Leser","canonical_url":"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/kniga-sozdanie-smart-kontraktov-solidity-dlya-blokchejna-ethereum-prakticheskoe-rukovodstvo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u043d\u0438\u0433\u0430 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 Solidity \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 Ethereum. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u00bb | ProHoster","og:description":"\u0411\u043e\u043b\u044c\u0448\u0435 \u0433\u043e\u0434\u0430 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430\u0434 \u043a\u043d\u0438\u0433\u043e\u0439 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 Solidity \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 Ethereum. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u00bb, \u0438 \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430, \u0430 \u043a\u043d\u0438\u0433\u0430 \u0438\u0437\u0434\u0430\u043d\u0430 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432 \u041b\u0438\u0442\u0440\u0435\u0441\u0435. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043c\u043e\u044f \u043a\u043d\u0438\u0433\u0430 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 Solidity \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 DApp \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 Ethereum. \u041e\u043d\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 12 \u0443\u0440\u043e\u043a\u043e\u0432 \u0441 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u043c\u0438. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u0438\u0445, \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c","og:url":"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/kniga-sozdanie-smart-kontraktov-solidity-dlya-blokchejna-ethereum-prakticheskoe-rukovodstvo","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:27:25+00:00","article:modified_time":"2019-10-31T19:27:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39018","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 00:24:24","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:58:39","updated":"2026-01-24 00:24:24"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/39018","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=39018"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/39018\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/29275"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=39018"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=39018"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=39018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}