If I have the bitcoin address, the private key and a transaction ID from Bitcoin (
regtest mode) in shell variables, what Python code do I need to run to claim the Bitcoins are indeed intended for this private key?
I have been following this excellent article – Bitcoins the hard way : Using the raw Bitcoin protocol. I hope to replicate this with Bitcoin in regtest mode as part of a larger design.
To begin with, I had to ensure that the code mentioned in the article (available here) can generate Bitcoin address with
n as the prefix and uses
111 as the network ID. See here. I made the following code changes to generate addresses for
def pubKeyToAddr(s): ripemd160 = hashlib.new('ripemd160') ripemd160.update(hashlib.sha256(s.decode('hex')).digest()) return utils.base58CheckEncode(111, ripemd160.digest())
def base58CheckEncode(version, payload): s = chr(version) + payload checksum = hashlib.sha256(hashlib.sha256(s).digest()).digest()[0:4] result = s + checksum leadingZeros = countLeadingChars(result, '') return 'm' * leadingZeros + base58encode(base256decode(result))
bitcoin-qt, I transferred some BTC to an address generated from above. The transfer goes through and is confirmed when a new block is created.
However, I am unable to see the amount credited to this new address with the
getreceivedbyaddress command. I am running this command in the Debug Window console (for some reason,
bitcoin-cli wouldn’t connect even after configuring
bitcoind). I think, the reason could be the fact that, the private key and the bitcoin address was generated elsewhere from command line rather than the default
--data-dir location that
bitcoin-qt used when it was launched. I understand this.