EOS 节点数据备份

  1. 简介
  2. 前言
  3. pitreos工具
  4. go安装步骤
  5. 编译脚本文件
  6. 添加
  7. pitreos安装步骤
  8. pitreos常用命令
  9. 常用目录

简介

最近在做eos数据落盘的项目,遇到了很多场景,都需要备份数据。所以,今天跟大家分享下备份节点数据的小工具。

前言

eos节点非正常退出,甚至节点升级,都会意外导致脏数据的产生,节点数据不得不重新同步。官方给的数据重新同步方法,是用下面的命令重启节点:
nodeos --hard-replay

不过,实际使用起来会发现replay数据执行的非常慢,普通的全节点也要两天时间才能完成重新同步。归根结底,还是eos节点数据的验证机制导致的慢。具体原因,大家可以看看这篇文章:痛苦的EOS数据同步,可能的EOS安全隐患。
简而言之,eos之所有不能像以太坊那样做到快速同步,是因为eos没有将状态数据生成merkle root,存储上链。所以,eos重新同步数据时,节点不能信任其他节点,只能重新执行一遍交易,亲自验证交易状态,当然会极大影响同步速度。另外,节点的同步只能从创世块开始,不能按照时间分片,同步相当于重新计算一遍全网交易,速度可想而知。
数据同步

eos的节点数据是存储在data目录的,data目录里有blocks和state目录,分别存储区块信息和状态信息:
mac os:~/Library/Application\ Support/eosio/nodeos/data
Linux:~/.local/share/eosio/nodeos/data
因为eos数据是按文件形式存储的,常用的备份方法是将data目录整个拷贝一份,当数据坏了时,启用备用data目录,则节点会从备用data目录的高度开始,再同步之后的数据。这个方法简单,但是普通的全节点,不开history-plugin时数据30G+,开启history-plugin数据可达500G。简单的cp操作处理备份,显然需要数小时不等,还是太慢。

pitreos工具

pitreos是加拿大超级节点 eos canada 出品的节点数据备份工具,项目地址:pitreos。
它实现了大文件的快速备份和恢复。以下是30G大文件备份和恢复的实测效果,备份和恢复处理时间各约30s,极大的提升了效率。

生成30G大文

备份30G大文件,时间约30s
恢复备份,时间约30s

go安装步骤

wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
tar -C /usr/local -zxvf  go1.10.3.linux-amd64.tar.gz

编译脚本文件

vim /etc/profile

添加

export GOROOT=/usr/local/go
export GOPATH=/opt/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT/bin
export PATH=$PATH:$GOPATH/bin

pitreos安装步骤

需要安装golang、设置gopath
mkdir -p $GOPATH/src/github.com/eoscanada
cd $GOPATH/src/github.com/eoscanada
git clone https://github.com/eoscanada/pitreos.git
cd $GOPATH/src/github.com/eoscanada/pitreos && go get -v ./... && go install -v

pitreos常用命令

备份:pitreos backup ./mydata -t <备份tag>。备份文件默认存在:$HOME/.pitreos/backups
恢复:pitreos -c restore <备份tag> ./mydata。
查询tag:pitreos list

常用目录

备份:pitreos backup ~/.local/share/eosio/nodeos/data -t `date "+%Y-%m-%d.%H:%M:%S"`
备份文件默认存在:$HOME/.pitreos/backups

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 ancjf@163.com

文章标题:EOS 节点数据备份

本文作者:ancjf

发布时间:2018-09-29, 21:51:16

最后更新:2020-09-15, 08:30:48

原始链接:http://ancjf.com/2018/09/29/EOS-%E8%8A%82%E7%82%B9%E6%95%B0%E6%8D%AE%E5%A4%87%E4%BB%BD/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏