Blockchain für Entwickler (gebundenes Buch)

Grundlagen, Programmierung, Anwendung - Das Praxisbuch
ISBN/EAN: 9783836263900
Sprache: Deutsch
Umfang: 565 S.
Einband: gebundenes Buch
Eine Blockchain ist ein distributed Ledger, dessen Datensätze manipulationssicher gespeichert werden. Was sich zunächst unspektakulär anhört, hat das Potenzial, die Softwareentwicklung verteilter Systeme grundlegend zu verändern: Ihr Einsatz in der Kryptowährung Bitcoin macht es vor. Lernen Sie die Idee hinter der Blockchain kennen und erfahren Sie, wie Ihre technische Umsetzung funktioniert. Dieser praxisorientierte Guide erklärt Ihnen von grundlegenden Konzepten über die verschiedenen Konsensmodelle und Datenstrukturen bis zur individuellen Implementierung alles, was Sie über die Blockchain wissen müssen.

Aus dem Inhalt:

Die Blockchain: Geschichte, Hintergründe und Potenzial
Die Basics: Transaktionen, Kryptographie, Konsensmodelle und Sicherheit
Die eigene Blockchain erstellen: Datenstrukturen, API, Synchronisation und Verifikation
Smart-Contract-Programmierung mit Solidity: Anwendungsbeispiele auf der Ethereum-Blockchain
Smart Contracts testen, debuggen, absichern und administrieren
Distributed Apps (dApps) entwickeln
Alternative Technologien: Ripple, NEO, IOTA und mehr















       1.1 ... Vorwort der Autoren ... 17


       1.2 ... Geleitwort ... 19











       2.1 ... Was ist die Blockchain? ... 21


       2.2 ... Geschichte der Blockchain ... 29


       2.3 ... Anwendung der Blockchain-Technologie ... 43


       2.4 ... Zusammenfassung ... 65











       3.1 ... Kryptografische Grundlagen ... 67


       3.2 ... Die Blockchain ... 80


       3.3 ... Die Blockchain 2.0 ... 112


       3.4 ... Alternative Konsensmodelle ... 144


       3.5 ... Sicherheit der Blockchain ... 153


       3.6 ... Zusammenfassung ... 164











       4.1 ... Transaktionen -- die kleinste Einheit ... 169


       4.2 ... Blockheader -- der Inhalt der Block-ID ... 171


       4.3 ... Die Blöcke verketten ... 173


       4.4 ... Die Blockchain auf die Festplatte speichern ... 175


       4.5 ... Der Genesis Block -- die Entstehung einer Blockchain ... 177


       4.6 ... Ausstehende Transaktionen ... 178


       4.7 ... Die Difficulty einer Blockchain ... 180


       4.8 ... Zeit zu schürfen -- der Miner Thread ... 182


       4.9 ... Zusammenfassung und Ausblick ... 186











       5.1 ... Die Service-Endpunkte der Web-API ... 190


       5.2 ... Deployment der Web-API ... 196


       5.3 ... Transaktionen per Webinterface versenden ... 200


       5.4 ... Einen eigenen Block-Explorer implementieren ... 204


       5.5 ... Zusammenfassung und Ausblick ... 211











       6.1 ... Das Peer-to-Peer-Framework konfigurieren ... 216


       6.2 ... Transaktionen im Netzwerk verteilen ... 219


       6.3 ... Blöcke im Netzwerk verteilen ... 222


       6.4 ... Mehrere Chains parallel verarbeiten ... 224


       6.5 ... Neue Knoten im Netzwerk aufnehmen ... 228


       6.6 ... Zusammenfassung und Ausblick ... 231











       7.1 ... Die Miner belohnen ... 234


       7.2 ... Die Accounts verwalten ... 238


       7.3 ... Die Accounts integrieren ... 242


       7.4 ... Die Accounts im Block-Explorer einbinden ... 243


       7.5 ... Zusammenfassung und Ausblick ... 249











       8.1 ... Transaktionen signieren ... 251


       8.2 ... Die Rahmenbedingungen erzwingen ... 255


       8.3 ... Guthaben sperren und entsperren ... 257


       8.4 ... Mit dem Merkle-Baum die Performance optimieren ... 260


       8.5 ... Den Public Key verkürzen zum Sparen von Speicher ... 263


       8.6 ... Startguthaben über den Genesis Block ermöglichen ... 264


       8.7 ... Weitere Optimierungen bedenken ... 265


       8.8 ... Zusammenfassung und Ausblick ... 267











       9.1 ... Einführung ... 270


       9.2 ... Einfache Smart Contracts bei Bitcoin ... 272


       9.3 ... Anspruchsvolle Smart Contracts ... 280


       9.4 ... Zusammenfassung ... 283











       10.1 ... Was ist Solidity? ... 285


       10.2 ... Elemente und Speicherbereiche eines Contracts ... 291


       10.3 ... Verfügbare Datentypen ... 300


       10.4 ... Zusätzliche Features von Solidity ... 312


       10.5 ... Vererbungshierarchien von Smart Contracts erstellen ... 314


       10.6 ... Libraries erstellen und verwenden ... 317


       10.7 ... Zusammenfassung und Ausblick ... 321











       11.1 ... Wichtige Details zu Funktionen ... 326


       11.2 ... Gas verstehen und optimieren ... 330


       11.3 ... Den richtigen Exception-Mechanismus wählen ... 333


       11.4 ... Solidity mit Assembly erweitern ... 335


       11.5 ... Leicht verständliche Contracts entwickeln ... 341


       11.6 ... Updatefähige Contracts entwickeln ... 343


       11.7 ... Warum kein Zufallsgenerator sicher ist ... 354


       11.8 ... Daten von außerhalb der Blockchain vertrauen ... 356


       11.9 ... Zeitabhängigkeiten einbauen ... 357


       11.10 ... Zusammenfassung und Ausblick ... 359











       12.1 ... Contracts mit Remix testen ... 364


       12.2 ... Debugging mit Remix ... 366


       12.3 ... Einführung in das Truffle Framework ... 368


       12.4 ... Unittests mit Truffle implementieren ... 372


       12.5 ... Integrationstests mit Truffle implementieren ... 377


       12.6 ... Mit dem Truffle Framework debuggen ... 381


       12.7 ... Zusammenfassung und Ausblick ... 382











       13.1 ... Allgemeine Sicherheitsempfehlungen ... 385


       13.2 ... Ether in Contracts schmuggeln ... 388


       13.3 ... Arithmetische Overflows und Underflows ... 391


       13.4 ... Mit DelegateCalls den Zustand manipulieren ... 393


       13.5 ... Reentrancy-Angriffe durchführen ... 396


       13.6 ... Denial-of-Service-Angriffe durchführen ... 399


       13.7 ... Gas-Siphoning-Angriffe beachten ... 401


       13.8 ... Zusammenfassung und Ausblick ... 404











       14.1 ... MetaMask einrichten und Accounts verwenden ... 408


       14.2 ... Contracts mit Remix und MetaMask deployen ... 409


       14.3 ... Contracts mit dem Truffle Framework deployen ... 411


       14.4 ... Code auf Etherscan veröffentlichen ... 418


       14.5 ... Einen eigenen Knoten aufsetzen und verwenden ... 420


       14.6 ... Contracts manuell kompilieren, linken und deployen ... 422


       14.7 ... Contracts nach dem Deployment managen ... 424


       14.8 ... Zusammenfassung und Ausblick ... 426











       15.1 ... ERC-173 Contract Ownership Standard ... 429


       15.2 ... ERC-165 Standard Interface Detection ... 432


       15.3 ... ERC-20 Token Standard ... 436


       15.4 ... ERC-721 Non-Fungible Token Standard ... 440


       15.5 ... Die Libraries von OpenZeppelin nutzen ... 445


       15.6 ... Design Patterns verwenden ... 446


       15.7 ... Zusammenfassung und Ausblick ... 450











       16.1 ... Was ist eine Decentralized Application? ... 453


       16.2 ... Der Entwicklungsprozess einer DApp ... 455


       16.3 ... Das Backend Ihrer ersten DApp entwickeln ... 457


       16.4 ... Das Frontend Ihrer ersten DApp entwickeln ... 460


       16.5 ... Ihre erste DApp auf Swarm deployen ... 463


       16.6 ... ENS-Domains für die eigene DApp einrichten ... 467


       16.7 ... Zusammenfassung und Ausblick ... 471











       17.1 ... Was ist Drizzle? ... 476


       17.2 ... Was ist eine DAO, und was wird benötigt? ... 478


       17.3 ... Die DApp, um einen Governance Contract erweitern ... 479


       17.4 ... Das Frontend mit Drizzle und React umsetzen ... 480


       17.5 ... Die Drizzle-DApp zentral oder dezentral deployen ... 492


       17.6 ... Zusammenfassung und Ausblick ... 494











       18.1 ... Was ist ein DAICO? ... 497


       18.2 ... Die Contracts eines DAICO implementieren ... 501


       18.3 ... Die passende DApp zu Ihrem DAICO entwerfen ... 510


       18.4 ... Zusammenfassung und Ausblick ... 517











       19.1 ... Ideen, Visionen und Problemlösungen ... 520


       19.2 ... Assets mit dem ERC-721 Token Standard tracken ... 521


       19.3 ... web3j: die Web3 Java Ethereum DApp API ... 522


       19.4 ... Ein Command Line Interface für Asset Tracker bauen ... 527


       19.5 ... Zusammenfassung und Ausblick ... 532











       20.1 ... Vyper -- Smart Contracts für jedermann? ... 535


       20.2 ... NEO -- der chinesische Klon von Ethereum ... 539


       20.3 ... EOS -- der stärkste Wettbewerber zu Ethereum? ... 541


       20.4 ... Ripple -- die Zukunft der Banken? ... 544


       20.5 ... IOTA -- das dezentrale Internet der Dinge ... 548


       20.6 ... Zusammenfassung ... 554