EOS FAQ之使用快照同步区块时提示[snapshot db storage not configured to have enough storage for the...]的解决办法

软件名称 版本 路径 下载地址
Mac OSX Mojava 10.14.5    
EOSIO 2019.6  

brew tap eosio/eosio

brew install eosio/eosio

前言

    EOS开发过程中,如果需要把交易广播至主网,需要搭建本地非生产节点,进行签名和广播,在不想同步全网数据的同时,https://eosnode.tools/snapshots为我们提供了数据快照同步最近的节点,但是在官方的文档中(可能我还没看到)https://developers.eos.io/eosio-home/docs/getting-the-software并未看到相关操作,因此在使用快照搭建本地开发使用的节点遇到了如题中所示的问题(问题描述来自于nodeos.log[该文件所在位置请自行查找,此处不赘述]),导致一直无法完成rpc调用的离线签名。

解决步骤:

  1. 先确认本地是否仅仅只有一个eos的配置文件config.ini,若有多个,则在启动时需要指定使用哪个配置文件启动,防止同步区块过程中查看的日志文件有出入,不利于排查错误;
  2. 删除nodeos所在文件夹下data文件夹下的所有区块文件和状态文件;此处路径为:
    $HOME/.local/share/eosio/nodeos/config

    开始同步后,会自动生成相关文件夹,如下图:

  3. 提示"snapshot db storage not configured to have enough storage for the provided"错误时需要查看config.ini中的这两个字段是否使用默认值,如果是使用默认值,则出现该问题。修改该文件中的两个配置项为:
    chain-state-db-size-mb = 10240
    
    reversible-blocks-db-size-mb = 1024

    关闭nodeos启动对应进程(不懂如何kill的,请自行上网搜索)

  4. 重新启动nodeos服务

    nodeos -e -p eosio \
    --plugin eosio::producer_plugin \
    --plugin eosio::chain_api_plugin \
    --plugin eosio::http_plugin \
    --access-control-allow-origin='*' \
    --contracts-console \
    --http-validate-host=false \
    --verbose-http-errors \
    --config-dir ./ \
    --data-dir ./data \
    --snapshot ./snapshots/snapshot-03dc9a694f5a2af6dfcc3996867fef1ce1b8901f6391b22e26f31719165ddbf8.bin >> $HOME/var/log/eos/nodeos.log 2>&1 &

    同步成功后如下图所示:

    使用快照同步最近一小段区块成功
可以正常请求到链上信息chain_id务必为:aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906方是主网数据
发布了105 篇原创文章 · 获赞 35 · 访问量 31万+

猜你喜欢

转载自blog.csdn.net/mimica/article/details/93335457