Blockchain für Entwickler

(0) Erste Bewertung abgeben
20%
CHF 43.90
Auslieferung erfolgt in der Regel innert 3 bis 5 Werktagen.
Fester Einband

Beschreibung

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

Autorentext
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.

Tobias Fertig unterrichtet seit mehreren Jahren Programmierung, Software Engineering und verteilte Systeme. Er versteht die Details der Blockchain Technologie und weiß diese verständlich zu erklären. Neben seiner Promotion über Informationssicherheit berät er gemeinsam mit Andreas Schütz Unternehmen im Bereich Blockchain.

Klappentext

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



Zusammenfassung
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

Inhalt




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


Mehr anzeigen

Produktinformationen

Titel
Blockchain für Entwickler
Untertitel
Das Handbuch für Software Engineers. Grundlagen, Programmierung, Anwendung. Mit vielen Praxisbeispielen
Autor
EAN
9783836263900
ISBN
978-3-8362-6390-0
Format
Fester Einband
Herausgeber
Rheinwerk
Genre
Programmiersprachen
Anzahl Seiten
565
Gewicht
1172g
Größe
H246mm x B182mm x T37mm
Jahr
2019
Untertitel
Deutsch
Mehr anzeigen
Andere Kunden kauften auch