Luke Dashjr, bekannt als luke-jr, ist Bitcoin-Entwickler. Zu seinen Arbeitsgebieten gehören Mining-Schnittstellen, Bitcoin Knots und BIPs, also öffentlich dokumentierte Vorschläge und Standards. An seinen Beiträgen lässt sich verstehen, wie jemand die Entwicklung erheblich beeinflussen kann, ohne für das gesamte Netzwerk zu entscheiden.
Auf GitHub tritt Luke Dashjr als luke-jr auf. Dort werden Quellcode, Änderungsvorschläge und deren Verlauf gespeichert. Sein Profil verweist unter anderem auf Bitcoin Knots und das Mining-Programm BFGMiner. Ein Profil ist jedoch weder die vollständige Geschichte aller Mitwirkenden noch eine Liste ausschließlich eigener Arbeiten. Konkrete Änderungen und die Autorenschaft von Spezifikationen liefern genauere Belege. Die folgenden Beispiele behandeln praktische Fragen: Wie erhält ein Miner seine Aufgabe, wie werden Fehler früh entdeckt und woran erkennt man, ob ein Vorschlag tatsächlich genutzt wird? [1]
Beim Mining werden Berechnungen über einen vorbereiteten Block wiederholt, bis ein Ergebnis die geforderte Schwierigkeit erfüllt. Zunächst muss jedoch der Inhalt zusammengestellt werden. Dashjrs BIP 22 beschreibt getblocktemplate: Über diese Schnittstelle erhält ein Programm die Struktur des geplanten Blocks einschließlich der Transaktionen. Es bekommt damit nicht bloß einen kurzen Header zum Hashen, sondern kann den Block zusammensetzen und im erlaubten Rahmen verändern. Das ähnelt den Unterlagen für einen vollständigen Auftrag statt einer isolierten Tätigkeit. Die Gültigkeitsregeln für den fertigen Block bleiben dabei verbindlich. [2]
Stellen Sie sich eine Transaktion vor, die einen Ausgang einer anderen Transaktion im selben geplanten Block ausgibt. Diese vorherige Transaktion muss ebenfalls enthalten sein. Das Feld depends in BIP 22 erfasst solche Abhängigkeiten. Fehlt es, sind sie unbekannt; das Programm darf nicht annehmen, dass keine bestehen. Dasselbe gilt für eine fehlende Gebührenangabe oder sigops, die für Blockgrenzen gezählten Signaturprüfoperationen. Fehlende Informationen sind nicht automatisch Nullwerte. Diese scheinbare Kleinigkeit verhindert, dass ein Miner wegen missverstandener Angaben einen ungültigen Block zusammenstellt. [2]
Dashjrs BIP 23 erweitert die Schnittstelle für Mining-Pools, in denen Miner ihre Arbeit bündeln. Der optionale Modus proposal lässt einen vorbereiteten Block vom Server prüfen, wobei der Arbeitsnachweis ausgenommen ist. So können inhaltliche Fehler auffallen, bevor die aufwendige Suche nach einem passenden Rechenergebnis beginnt. Eine positive Antwort bedeutet nur, dass der Vorschlag den Regeln dieses Servers entspricht. Der erforderliche Arbeitsnachweis und die Prüfung durch andere Knoten stehen noch aus. Die Vorprüfung bedeutet nicht, dass bereits ein neuer Block gefunden wurde. [3]
Ein weiterer Bereich ist die Einführung neuer Regeln. BIP 8 von Shaolin Fry und Luke Dashjr legt Phasen anhand der Blockhöhe fest, also der Position eines Blocks in der Kette. Die Option lockinontimeout bestimmt, ob Miner in der letzten Periode unter den festgelegten Bedingungen signalisieren müssen, um die Aktivierung festzuschreiben. LOCKED_IN ist nicht ACTIVE: Der erste Zustand sichert in diesem Mechanismus den späteren Übergang, erst im zweiten wird die neue Regel angewandt. Es ist der Unterschied zwischen einem festgelegten Wirksamkeitstermin und dessen Eintritt. Das Schreiben des Vorschlags schaltet das Netzwerk noch nicht um. [4]
Bitcoin Knots ist Software für einen eigenen Knoten: einen Rechner, der Blöcke und Transaktionen herunterlädt und vollständig überprüft. Die Dokumentation beschreibt die Übernahme von Entwicklungen aus Bitcoin Core und die Möglichkeit zusätzlicher Änderungen. Auch Wallet und grafische Oberfläche können enthalten sein. Zum Zeitpunkt dieser Prüfung nennt die offizielle Website Dashjr als Hauptverantwortlichen für die Pflege. Diese Verantwortung für ein Programm erlaubt ihm nicht, dem gesamten Netzwerk neue Regeln aufzuerlegen. Wer Software auswählt, sollte deshalb Funktionen und Einstellungen jeder Ausgabe lesen, statt stets identisches Verhalten anzunehmen. [5] [6]
Beim Herunterladen von Bitcoin Knots möchten Sie feststellen, ob die Datei vom vorgesehenen Herausgeber stammt. Die Website empfiehlt OpenPGP-Signaturen und den Abgleich öffentlicher Schlüssel aus unabhängigen Quellen. Ein öffentlicher Schlüssel dient zur Prüfung einer digitalen Signatur; zuerst muss aber geklärt sein, wem er gehört. Eine gültige Signatur mit zuverlässig geprüftem Schlüssel belegt die Herkunft und dass die signierten Daten nicht verändert wurden. Sie garantiert keinen fehlerfreien Programmcode. Herkunftskontrolle, Codeprüfung und die Wahl geeigneter Einstellungen sind unterschiedliche Aufgaben. [6]
Dashjr schrieb auch BIP 2 zur Vorbereitung und Veröffentlichung von Vorschlägen. Heute wird es durch BIP 3 von Murch ersetzt. Darin steht ausdrücklich, dass ein veröffentlichter BIP weder den Konsens der Bitcoin-Gemeinschaft noch eine allgemeine Umsetzungsempfehlung darstellt. Ein Vorschlag kann Papier bleiben, in einem bestimmten Programm umgesetzt werden oder später gemeinsam durchgesetzte Regeln verändern. Eine Nummer aktiviert nichts. Bei Meldungen über einen neuen BIP lohnt deshalb die zusätzliche Frage, wer ihn umgesetzt hat und ob er tatsächlich verwendet wird. [7] [8]
Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Matt Corallo, Peter Todd, Satoshi Nakamoto. Auf diesen Eintrag verweisen außerdem Matt Corallo, Peter Todd.