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

2019-07-02 18:31:47 浏览数 (1)

版权声明:本文为博主原创文章,转载请写明出处。 https://cloud.tencent.com/developer/article/1455159

Keypool异常

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

代码语言:javascript复制
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的扩充:

代码语言:javascript复制
bitcoin-cli keypoolrefill 101

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

0 人点赞