Inhaltsangabe:
Materialien zum Buch ... 16 1. Vorwort ... 17 1.1 ... Vorwort der Autoren ... 17 1.2 ... Geleitwort ... 19 2. Einführung ... 21 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. Die Basics: So funktioniert eine Blockchain ... 67 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. Eine eigene Blockchain erstellen -- Grundfunktionen ... 167 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. Die Blockchain an eine Web-API anbinden ... 189 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. Ein Peer-to-Peer-Netzwerk aufbauen ... 215 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. Accounts und Guthaben einführen ... 233 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. Verifikation und Optimierungen umsetzen ... 251 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. Smart Contract Development ... 269 9.1 ... Einführung ... 270 9.2 ... Einfache Smart Contracts bei Bitcoin ... 272 9.3 ... Anspruchsvolle Smart Contracts ... 280 9.4 ... Zusammenfassung ... 283 10. Solidity -- Die Grundlagen verstehen ... 285 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. Solidity -- Details und Herausforderungen ... 325 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. Smart Contracts testen und debuggen ... 363 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. Smart Contracts schützen und absichern ... 385 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. Smart Contracts deployen und managen ... 407 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. Standards, Libraries und Design Patterns ... 429 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. Decentralized Applications entwickeln ... 453 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. Ihre erste DApp mit Drizzle zur DAO erweitern ... 475 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. Dezentrale Autonome Initiale Coin Offerings umsetzen ... 497 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. Supply Chains mit Smart Contracts ergänzen ... 519 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. Ausblick: Zukunftstechnologien ... 535 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 Literaturverzeichnis ... 557 Index ... 559
Kurze Inhaltsangabe:
Datenstruktur, Kryptographie, Konsensmodelle, Netzwerk, Verifikation und Optimierung
Inhaltsangabe:
Alles, was Sie als Blockchain-Entwickler wissen müssen - Grundlagen, Konzepte, Codebeispiele für die Blockchain - Apps auf der Ethereum-Blockchain mit Solidity programmieren - Datenstruktur, Kryptografie, Konsensmodelle, Smart Contracts, DApps 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. Gerade der Einsatz der Blockchain bei der Kryptowährung Bitcoin zeigt die Wirkung dieser neuen Trend-Technologie. Machen Sie sich selbst mit den Möglichkeiten der Blockchain vertraut! In diesem Buch lernen Sie die Idee hinter der Blockchain kennen und erfahren, wie Sie die Blockchain technisch umsetzen. Der praxisorientierte Guide erklärt Ihnen von grundlegenden Konzepten über die verschiedenen Konsensmodelle und Datenstrukturen bis zur individuellen Implementierung alles, was Sie als Entwickler über die Blockchain wissen müssen. Inkl. kommentierten Codebeispielen und Projekten zum Download. 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
Informationen zum Autor:
Andreas Schütz hat Informatik studiert und begeistert sich bereits seit vielen Jahren für die Blockchain-Technologie. Neben seiner Promotion gibt er auf Vorträgen, Seminaren und Online-Artikeln Fachleuten und Laien Einblicke in die Blockchain. Außerdem berät er gemeinsam mit Tobias Fertig Unternehmen, wie sie die Blockchain sinnvoll einsetzen können.
Rezension:
»Neben den Basics der Blockchain liefern [die Autoren] Anwendungsbeispiele und schrecken nicht vor technischen Details zurück. Es wird ein Grundverständnis über die Kryptografie einer Blockchain vermittelt, sowie Hands-On Tipps zur Umsetzung von eigenen Projekten. Die beiden Autoren bieten einen kompakten Überblick über die neuesten Entwicklungen rund um Ripple, IOTA oder Ethereum.« (01/2020)