Ich versuche, eine Bitcoin-Adresse in Ruby nach der Dokumentation von Bitcoin Wiki (bitcoin creation according bitcoin wiki) zu erstellen. Ausgangspunkt ist nur eine zufällige Zeichenfolge, die die Ausgabe von ripmed160 emuliert. Leider haben wir ganz ich nicht dabei erfolgreich zu sein, hier ist mein Code:create bitcoin Adresse in Ruby
require 'base58_gmp'
tx_hash = "a8d0c0184dde994a09ec054286f1ce581bebf46446a512166eae7628734ea0a5"
ripmed160 = tx_hash[0..39]
ripmed160_with_pre = "00" + ripmed160
sha1 = Digest::SHA256.hexdigest ripmed160_with_pre
sha2 = Digest::SHA256.hexdigest sha1
bin_address = Integer("0x" + ripmed160_with_pre + sha2[0..7])
bitcoin_address = "1" + Base58GMP.encode(bin_address, 'bitcoin') # => "1GPcbTYDBwJ42MfKkedxjmJ3nrgoaNd2Sf"
ich etwas, das wie eine Bitcoin-Adresse aussieht, aber es von blockchain.info nicht erkannt wird, so denke ich, es ist ungültig. Können Sie mir bitte helfen, diese Arbeit zu machen.
Es gibt einen anderen Fehler im Code, den Sie gezeigt haben ; Sie versuchen, in eine Ganzzahl zu konvertieren (mit 'Integer (" 0x "+ xx)' _twice_, was einen Fehler verursacht. Ich denke, dies ist nur ein Tippfehler oder Kopieren/Einfügen Fehler, da es den Code fehlschlägt, anstatt eine falsche Adresse geben – matt
Anstatt 'Integer (" 0x "+ hex)', tun Sie 'hex.to_i (16)'. –
Sie haben Recht. Ich habe den Code bearbeitet, jetzt scheitert es nicht mehr. – user3866773