软件名称 | 版本 | 路径 | 下载地址 |
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调用的离线签名。
解决步骤:
- 先确认本地是否仅仅只有一个eos的配置文件config.ini,若有多个,则在启动时需要指定使用哪个配置文件启动,防止同步区块过程中查看的日志文件有出入,不利于排查错误;
- 删除nodeos所在文件夹下data文件夹下的所有区块文件和状态文件;此处路径为:
$HOME/.local/share/eosio/nodeos/config
开始同步后,会自动生成相关文件夹,如下图:
- 提示"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的,请自行上网搜索)
-
重新启动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 &
同步成功后如下图所示: