Zum Hauptinhalt springen
Dekorationsartikel gehören nicht zum Leistungsumfang.
Blockchain für Entwickler
Das Handbuch für Software Engineers. Grundlagen, Programmierung, Anwendung. Mit vielen Praxisbeispielen
Buch von Andreas Schütz (u. a.)
Sprache: Deutsch

39,90 €*

inkl. MwSt.

Versandkostenfrei per Post / DHL

auf Lager, Lieferzeit 1-2 Werktage

Kategorien:
Beschreibung

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

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
Über den 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.
Zusammenfassung
Datenstruktur, Kryptographie, Konsensmodelle, Netzwerk, Verifikation und Optimierung
Inhaltsverzeichnis
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
Details
Erscheinungsjahr: 2019
Fachbereich: Programmiersprachen
Genre: Informatik
Rubrik: Naturwissenschaften & Technik
Medium: Buch
Reihe: Rheinwerk Computing
Inhalt: 565 S.
ISBN-13: 9783836263900
ISBN-10: 3836263904
Sprache: Deutsch
Einband: Gebunden
Autor: Schütz, Andreas
Fertig, Tobias
Hersteller: Rheinwerk Verlag GmbH
Maße: 251 x 185 x 38 mm
Von/Mit: Andreas Schütz (u. a.)
Erscheinungsdatum: 22.02.2019
Gewicht: 1,166 kg
Artikel-ID: 114870159
Über den 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.
Zusammenfassung
Datenstruktur, Kryptographie, Konsensmodelle, Netzwerk, Verifikation und Optimierung
Inhaltsverzeichnis
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
Details
Erscheinungsjahr: 2019
Fachbereich: Programmiersprachen
Genre: Informatik
Rubrik: Naturwissenschaften & Technik
Medium: Buch
Reihe: Rheinwerk Computing
Inhalt: 565 S.
ISBN-13: 9783836263900
ISBN-10: 3836263904
Sprache: Deutsch
Einband: Gebunden
Autor: Schütz, Andreas
Fertig, Tobias
Hersteller: Rheinwerk Verlag GmbH
Maße: 251 x 185 x 38 mm
Von/Mit: Andreas Schütz (u. a.)
Erscheinungsdatum: 22.02.2019
Gewicht: 1,166 kg
Artikel-ID: 114870159
Warnhinweis

Ähnliche Produkte

Ähnliche Produkte