mysql eos_配置EOS同步主网数据到Mysql

一. 修改Config配置

先运行下nodeos,将会自动创建~/.local/share/eosio/nodeos/config目录和config.ini文件。

修改config.ini中如下内容//添加 (2018-8-18 此时可用,如果有想分享的节点,请私聊我)

p2p-peer-address = fullnode.eoslaomao.com:443

p2p-peer-address = mars.fnp2p.eosbixin.com:443

//修改 可忽略

agent-name = "BcSkill"

//如果需要返回错误信息,修改

verbose-http-errors = true

//添加插件支持

plugin = eosio::chain_plugin

plugin = eosio::net_plugin

plugin = eosio::sql_db_plugin

//修改mongodb插件相关配置

sql_db-uri = mysql://db=eos user=root host=127.0.0.1 password='pwd'

二. 安装配置并启动MySql

1. 安装MySql

2. 配置MySql接下来我们安装 soci。soci 是 C++ 连接 MySQL 的 Library。Ubuntu 可以快速安装,命令如下:sudo apt-get -y install libsoci-dev安装 mysql-clientsudo apt-get -y install mysql-client

sudo apt-get install libmysqlclient-dev

由于链上数据较大,比如1000W块左右的数据,离线压缩包大约14GB,同步到MySql大概需要200GB左右。所以需要将MySql数据单独磁盘存储。

修改MySql数据存储位置,/mnt/data为我这边挂载的存储盘

新建目录mkdir /mnt/data/MySql

并参考 Ubuntu16.04下修改MySQL数据的默认存储位置

配置Eos数据库进入mysqlmysql -p创建数据库CREATE DATABASE eos DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;查看数据库mysql > show databases;

三. 下载主网离线数据包

参考 EOS 主网数据更新,离线数据包

因为使用离线包可以加快追上主网的进度,如果从零自己同步到主网进度,难以想象要多久...

假设已经将离线数据下载并解压到了 /mnt/data/data目录下。

四. 启动nodeos开始同步数据nodeos --data-dir /mnt/data/data --hard-replay-blockchain --replay-blockchain第一次运行 必须添加 --replay-blockchain参数,不然不会创建数据库表,参考下面代码

如果需要清空mysql数据库的话,添加--sql_db-block-start=0 --replay-blockchain

相关代码如下eos\plugins\sql_db_plugin\sql_db_plugin.cppvoid sql_db_plugin::plugin_initialize(const variables_map& options)

{

ilog("initialize");

try {

std::string uri_str = options.at(SQL_DB_URI_OPTION).as<:string>();

if (uri_str.empty())

{

wlog("db URI not specified => eosio::sql_db_plugin disabled.");

return;

}

ilog("connecting to ${u}", ("u", uri_str));

uint32_t block_num_start = options.at(BLOCK_START_OPTION).as();

auto db = std::make_unique(uri_str, block_num_start);

if (options.at(HARD_REPLAY_OPTION).as() ||

options.at(REPLAY_OPTION).as() ||

options.at(RESYNC_OPTION).as() ||

!db->is_started())

{

if (block_num_start == 0) {

ilog("Resync requested: wiping database");

if( options.at( RESYNC_OPTION ).as() ||

options.at( REPLAY_OPTION ).as()) {

ilog( "Resync requested: wiping database" );

db->wipe();

}

}

}

此时已开始,同步中

五. 服务器建议配置

内存:32GB

存储:1T+

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值