Keypool异常

在使用比特币系列(BTC、USDT、LTC)的钱包时,调用getnewaddress方法时会出现以下异常结果:

error: {"code":-12,"message":"Error: Keypool ran out, please call keypoolrefill first"}

原因分析

以BTC为例,在程序启动时,如果未找到wallet.dat文件,则默认会生成100个私钥到可以pool并形成wallet.dat文件。如果你的应用场景为交易所或有大量交易,那么这100个私钥会很快用完。当需要101个私钥的时候,就会抛出上面的异常。

解决方案

在bitcoin.conf文件中配置keypool=1000或通过参数-keypool=1000来设置。然后进入控制台,执行keypoolrefill命令。

另外一种方式,直接执行bitcoin-cli(linux操作系统)命令来执行keypool的扩充:

bitcoin-cli keypoolrefill 101

如果钱包设置了加密,执行此操作之前需先将钱包解密。



Keypool ran out, please call keypoolrefill first异常处理插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://www.choupangxia.com/2019/11/15/keypool-ran-out-please-call-keypoolrefill-first/