654 / 736BK38

Programming Bitcoin

Jimmy Song: Bitcoin durch das Schreiben von Code verstehen

Programming Bitcoin führt Programmierer schrittweise zum Verständnis von Bitcoin, indem sie eine eigene Bibliothek in Python entwickeln. Jimmy Song baut den Unterricht auf Übungen und vorbereiteten Tests auf. Die Bibliothek dient dem Lernen; der Autor stellt sie weder als vollständige noch als leistungsoptimierte Implementierung dar.

Das technische Buch von Jimmy Song erschien 2019 bei O’Reilly. Dieser Überblick beruht auf dem gesamten Vorwort und dem abschließenden Kapitel Advanced Topics and Next Steps im offiziellen Repository, den betrachteten Abbildungen des Vorworts und den Verlagsangaben.

Programming Bitcoin wurde von Jimmy Song geschrieben. Der Katalog von O’Reilly nennt Februar 2019; die README im Repository des Autors nennt März 2019. Wir halten beide Angaben getrennt. Das öffentliche Repository enthält Texte und Begleitdateien, doch sein laufend veränderter Branch muss nicht mit einem bestimmten gedruckten Exemplar übereinstimmen. [1] [2]

Das Vorwort formuliert das Ziel deutlich: die Technik von Bitcoin verstehen, indem man die Bestandteile einer Bibliothek selbst schreibt. Es geht nicht um eine Analyse monetärer, wirtschaftlicher oder gesellschaftlicher Auswirkungen. Der Autor erklärt zugleich, dass die Bibliothek weder vollständig noch effizient sein soll und das Buch kein Nachschlagewerk zur Spezifikation jeder einzelnen Funktion ist. [3]

Vorausgesetzt werden Programmierkenntnisse, insbesondere in Python; die Bibliothek verwendet Python 3. Der Autor bevorzugt ein mittleres Kenntnisniveau, doch auch Anfänger können ihm zufolge viele Konzepte verstehen. Für die mathematischen Teile erwartet er ungefähr Kenntnisse auf Algebra-Niveau und führt neue Begriffe schrittweise ein. Es handelt sich also nicht um eine Einführung ohne jegliche technischen Voraussetzungen. [3]

Das Vorwort beschreibt die 14 Kapitel als aufeinander aufbauende Konstruktion: mathematische Grundlagen und Serialisierung, Transaktionen, Blöcke und Netzwerkkommunikation. Die Kapitel 1–12 enthalten Programmierübungen. Sie münden in eine Aufgabe im Testnet, bei der Leser Daten von einem Knoten abrufen, eine Transaktion erstellen und signieren und sie an das Netzwerk senden. Diesen Lehrplan setzen wir nicht mit unserer eigenen Durchführung der Aufgaben gleich. [3]

Im beschriebenen Ablauf arbeiten Leser mit Jupyter-Notebooks und bearbeiten zugehörige Python-Dateien so, dass sie die vorbereiteten Tests bestehen. Lösungen stehen im Anhang und in den Verzeichnissen der einzelnen Kapitel bereit. Wir haben die Abbildungen dieses Ablaufs betrachtet; die Lektüre und die Bilder allein belegen nicht, dass wir die Übungen ausgeführt oder ihre heutige Umgebung überprüft haben. [3]

Das Schlusskapitel schlägt Wallets als weiterführendes Studiengebiet vor und betont, wie schwierig der Schutz privater Schlüssel ist. Beim Projekt einer Testnet-Wallet nennt es außerdem Benutzeroberfläche, Sicherungskopien, Adressbuch und Transaktionshistorie. Das Wissen über Signaturen deckt somit nicht den gesamten Anwendungsentwurf ab; die Vorschläge sind weitere Lernschritte, keine fertige sichere Wallet. [4]

Der Autor empfiehlt Beiträge zu offenen Projekten und nennt Ideen wie einen Blockexplorer, einen Webshop oder eine Hilfsbibliothek. Beim Shop rät er, im Testnet zu beginnen und sichere Kryptografiebibliotheken zu verwenden. Das Kapitel zeigt eine Richtung für weiteres Lernen; seine damalige Projektliste und seine Berufsratschläge übernehmen wir nicht als aktuelle Prüfung von Diensten oder Beschäftigungsgarantie. [4]

Wir haben das gesamte Vorwort und das gesamte Kapitel Advanced Topics and Next Steps im offiziellen Repository gelesen und alle vier Abbildungen des Vorworts betrachtet. Den Verlagskatalog und die README haben wir geprüft. Die übrigen Kapitel und den Begleitcode haben wir nicht vollständig überprüft und keine Buchübungen ausgeführt; dies ist weder eine vollständige Rezension noch ein Sicherheitsaudit der Bibliothek. [1] [2] [3] [4]

Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Private Key, Transaktion, Bitcoin Script, Full Node.

01Muss ich vor der Lektüre programmieren können?

Ja, das Vorwort setzt Programmierkenntnisse voraus, insbesondere in Python. Der Autor bevorzugt ein mittleres Niveau, erklärt aber, dass auch Grundkenntnisse zum Verständnis vieler Konzepte ausreichen können.

02Ist die Bibliothek aus dem Buch eine fertige Lösung für echtes Geld?

Im Vorwort definiert der Autor sie als Lernwerkzeug, nicht als vollständige oder effiziente Bibliothek. Wir haben weder ihren Code noch die Buchübungen ausgeführt, und dieser Überblick bestätigt keine Sicherheit beim Umgang mit echtem Geld.

DOC · 001O’Reilly — Programming BitcoinVerlag DOC · 002Programming Bitcoin — official repositoryPrimärquelle DOC · 003Programming Bitcoin — PrefacePrimärquelle DOC · 004Programming Bitcoin — Advanced Topics and Next StepsPrimärquelle
Überarbeitet: Quellenbasiert · Keine Anlageberatung