python-bitcoinlib | Private Schlüssel, öffentliche Schlüssel und Adressen erstellen – wie geht das?

Ich versuche, die python-bitcoinlib- Bibliothek zu verwenden, aber ihre Dokumentation ist mir nicht ganz klar. Ich bin ein Programmierer, aber ziemlich neu in Python und nicht sehr versiert im Bitcoin-Protokoll.

Was ist der Code-weise Prozess mit der Bibliothek für Folgendes?

  1. Generieren eines privaten Schlüssels
  2. Erstellen eines öffentlichen Schlüssels
  3. Erstellen einer Adresse aus dem öffentlichen Schlüssel

Ich habe verschiedene Dinge ausprobiert und bin mir nicht ganz sicher, welche Argumente ich welchen Funktionen liefere und welche Funktionen ich dabei verwenden soll.

Ich würde mich sehr freuen, und ich denke, es würde mir am meisten helfen, wenn ich Code zum Erreichen jedes Schritts erhalten würde.

Ich konnte dem Bitcoin-Protokoll (insbesondere der Entwicklerreferenz und dem Entwicklerleitfaden auf bitcoin.org) folgen , um all diese Dinge zu tun, und ich schaue speziell, wie ich es mit der Bibliothek mache, damit ich meinen Code vollständig haben kann kompatibel mit anderen Funktionen davon, da ich die Bibliothek für zusätzliche Zwecke verwenden möchte.

Antworten (2)

Entschuldigung, ich bin mit python-bitcoinlib nicht vertraut, aber wenn Sie nur Schlüssel/Adressen erstellen möchten, können Sie diese Bibliothek (Offenlegung: Ich habe sie geschrieben) folgendermaßen verwenden:

Generieren eines privaten Schlüssels

private = PrivateKey.random()

oderprivate = PrivateKey.from_hex('yourhexkeyhere')

oderprivate = PrivateKey.from_wif('yourwifhere')

und dann die Hex-Darstellung private.hex()verwendenprivate.wif()

Erstellen eines öffentlichen Schlüssels

public = private.to_public()
public.hex()
'044cc549c65f4b0b7713d7a763a01221f85fd34602ac8ff0386995349c55de7111d16b5...'
public.hex(compressed=True)
'034cc549c65f4b0b7713d7a763a01221f85fd34602ac8ff0386995349c55de7111'

Erstellen einer Adresse aus dem öffentlichen Schlüssel

public.to_address('P2PKH')
'16B2Ghyu5C1CofKfXF2Zi9JycqaAyaE8cd'
public.to_address('P2WPKH')
'bc1qtqshpjw8kr7jlk27gcvj7pvzt8lp6vn5dc2f24'

Wenn Sie diese Bibliothek verwenden, verwenden Sie sie bitte nur als Lernwerkzeug und nicht, um echte Münzen zu senden, da möglicherweise noch einige Fehler vorhanden sind.

Einige Anwendungsbeispiele sind jetzt im Repository verfügbar.