Ich verwende NBitcoin und habe ein ExtKey
Objekt erstellt. Jetzt muss ich den Master Chain Code (siehe Seite 89 von Mastering Bitcoin für eine gute Erklärung) für diesen HD-Knoten erhalten. Wie mache ich das?
Laut Mastering Bitcoin wird ein Root-Seed mit HMAC-SHA512 verwendet, um eine 512-Bit-Ausgabe zu erzeugen. Die linken 256 Bit werden für den Master Private Key verwendet, die rechten 256 Bit werden für den Master Chain Code verwendet. Wenn ich GetBytes()
mein ExtKey
Objekt jedoch aufrufe, gibt es ein byte[74]-Array zurück. Dies entspricht 592 Bit. Ich weiß nicht, was die zusätzlichen 80 Bit sind, also kann ich nicht einfach die richtigen 256 Bit nehmen.
Ich habe dies mit einer Pull-Anforderung gelöst, die eine Eigenschaft hinzufügt ExtKey
und ExtPubKey
mit der Sie die ChainCode
Eigenschaft aufrufen können. Siehe Pull-Request 156 .
Es wurde in NBitcoin 3.0.0.28 zusammengeführt, das auf NuGet verfügbar ist .
Hier sind ein paar Dinge, die Sie tun können, ich habe im Kommentar notiert, was Sie brauchen:
var masterPrivateKey = new ExtKey();
var masterPublicKey = masterPrivateKey.Neuter();
// This is what you need:
var masterMainNetPrivateKey = masterPrivateKey.GetWif(Network.Main);
var masterTestNetPrivateKey = masterPrivateKey.GetWif(Network.TestNet);
var masterMainNetPublicKey = masterPublicKey.GetWif(Network.Main);
var masterTestNetPublicKey = masterPublicKey.GetWif(Network.TestNet);
Vielleicht möchten Sie den entsprechenden Abschnitt des C#-Bitcoin-Buchs überprüfen .
Leon Cullens
Leon Cullens