如果我在shell变量中有比特币地址、私钥和来自比特币(regtest模式)的事务ID,我需要运行什么Python代码来声明比特币确实是用于这个私钥的?
我一直在关注这篇优秀的文章-比特币的艰难之路:使用原始比特币协议。我希望在regtest模式下用比特币复制这一点,作为更大设计的一部分。
首先,我必须确保文章中提到的代码(此处提供)可以生成以m或n为前缀的比特币地址,并使用111作为网络ID。我做了以下代码更改以生成regtest模式的地址:
keyUtils.pubKeyToAddr
定义PubKeyToAddress:
ripemd160=hashlib.new(’ripemd160’)
ripemd160.update(hashlib.sha256(s.decode(’hex’)).digest())
return utils.base58CheckEncode(111,ripemd160.digest())
utils.base58CheckEncode
def base58CheckEncode(版本,有效负载):
s=chr(版本)+有效载荷
校验和=hashlib.sha256(hashlib.sha256(s).digest()).digest()[0:4]
结果=s+校验和
leadingZeros=countLeadingChars(结果,’\0’)
返回’m’*前导零+base58编码(base256解码(结果))
然后,使用比特币qt,我将一些BTC转移到上面生成的地址。传输通过并在创建新块时确认。
但是,我无法使用getreceivedbyaddress命令查看记入此新地址的金额。我正在调试窗口控制台中运行此命令(由于某些原因,即使在配置bitcoind之后bitcoin cli也无法连接)。我认为,原因可能是,私钥和比特币地址是从命令行的其他地方生成的,而不是比特币qt启动时使用的默认数据目录位置。我明白这一点。
交易
钱包
地址
分享
改进这个问题
跟随
2月5日17点52分被问到
我思故我在
31733银牌1515铜牌
您是否将私钥或地址导入比特币核心的钱包?getreceivedbyaddress是一个钱包RPC,只能知道钱包认为是自己的交易彼得·维尔2月5日17:54
实际上,我不想将私钥导入到属于full节点的钱包中。我想把mabuakky创建的比特币地址当作一个单独的钱包cogitoergosum 2月6日0:35
比特币核心目前只支持一个钱包彼得·维尔2月6日0:45
顺便说一下,您不需要导入私钥。您只需将地址(带有importaddress)导入为仅监视的地址即可彼得·维尔2月6日0:54
1
blockchain.info有一个为每个地址预先编制索引的大型数据库。这在比特币核心中没有实现,你通常不需要它。让钱包跟踪相关交易的可伸缩性要高得多彼得·维尔2月6日2点20分
再显示6条评论
1个答案
0
我无法用getreceivedbyaddress命令查看记入这个新地址的金额。
比特币核心没有区块链的地址索引。
例如,为了让比特币核心追踪地址,您必须将一个地址添加到钱包中,作为仅监视的地址。
分享
改进这个答案
跟随
回复时间:11月14日11:10
社区wiki