Keypool ran out, please call keypoolrefill first异常处理
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
如果钱包设置了加密,执行此操作之前需先将钱包解密。
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接
本文链接:https://choupangxia.com/2019/11/15/keypool-ran-out-please-call-keypoolrefill-first/