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

语言: CN / TW / HK

在使用比特币系列(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

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

分享到: