LoginSignup
11
5

symbol mainnet node用 fast-sync "fsdm-h"(委任者復元機能付き)

Last updated at Posted at 2024-02-24

注意 fsdm/fsdm-hは
symbol-bootstrapの ver.1.1.10で実行して下さい
それ以外の ver.では成功しない報告があります

※この fast-sync "fsdm" は @ryosasa氏の作成した
fast-sync

を基にして data/databases の ダウンロード先を変更、改変を行ったものです

symbol mainnet node用 fast-sync "fsdm"

※注意 symbol-bootstrap コマンドが sudoを付けずに実行できる nodeに限ります

pasomi.netの補助 nodeである 10.dusanjp.comの blockdataを使用しています
週に1度 金曜の夜くらいに更新してます

使用方法
nodeの状態は稼働中/停止中/異常停止中を問わず実行出来ます

nodeの作業ディレクトリにて

wget 10.dusanjp.com/fsdm/fsdm-h

file "fsdm"が downloadされます

sh fsdm-h

block data target/nodes/node/datatarget/databasesの圧縮fileが downloadされて解凍されます
時間は数時間掛かります

このまま放って置くと勝手に nodeが再起動して同期を開始します

委任者の復元

この fast-sync "fsdm-h"は その開始時に target/nodes/node/data/harvesters.dat
bak.harvesters.datとして作業ディレクトリに保存します

nodeが同期を完了したら

wget 10.dusanjp.com/fsdm/rh

file "rh"が downloadされます

sh rh

bak.harvesters.datをtarget/nodes/node/data/harvesters.datとして nodeに戻し
nodeを停止/起動します

nodeが起動したら

curl localhost:3000/node/unlockedaccount|jq

委任者情報が表示されます

fsdm-hの shellscript

#!/bin/bash
#
# 1) symbol-bootstrap stop
#
# 2) recovery databases/data
#  10.dusanjp.com/fsdm/databases.tar.gz
#   -> $HOME/target/databases
#  10.dusanjp.com/fsdm/data.tar.gz
#   -> $HOME/target/nodes/node/data
#
# 3) symbol-bootstrap start -d
#
if [ $# -gt 0 ]; then
    BOOTSTRAP_HOME=$(cd $(dirname $1) && pwd)/$(basename $1)
elif [ -z "$BOOTSTRAP_HOME" ]; then
    BOOTSTRAP_HOME=.
fi
if [ ! -d "$BOOTSTRAP_HOME/target" ]; then
    echo "$BOOTSTRAP_HOME/target not found!"
    exit 1
fi
S3_URL=10.dusanjp.com/fsdm
recover_data()
{
    echo "start recover data"
    cd $BOOTSTRAP_HOME/target/nodes/node/
    wget -O -  $S3_URL/data.tar.gz | tar zxf -
    echo "end recover data"
}
recover_databases()
{
    echo "start recover database"
    cd $BOOTSTRAP_HOME/target
    wget -O -  $S3_URL/databases.tar.gz | tar zxf -
    echo "end recover database"
}
date
cd $BOOTSTRAP_HOME
symbol-bootstrap stop
cp target/nodes/node/data/harvesters.dat bak.harvesters.dat
rm -rf $BOOTSTRAP_HOME/target/nodes/node/data
rm -rf $BOOTSTRAP_HOME/target/databases
recover_data &
recover_databases &
wait
symbol-bootstrap run -d
date

blockdata upload shellscript

block data抽出元 nodeから target/bak/targetを copy後
不要な log files等を削除したものを data.tar.gzdatabases.tar.gzに圧縮後
nginxの 公開用ディレクトリに送っています

symbol-bootstrap stop
rm -rf bak/target
cp -r target bak/
symbol-bootstrap run -d
symbol-bootstrap healthCheck

cd bak
du -sh target
ls -t1 target/nodes/node/catapult_broker*.log | tail -n+2 | xargs rm -rf
ls -t1 target/nodes/node/logs/catapult_server*.log | tail -n+2 | xargs rm -rf
ls -t1 target/nodes/node/logs/catapult_recovery*.log | tail -n+2 | xargs rm -rf
cd target/nodes/node/data/statedb
rm -rf AccountRestrictionCache/LOG.old*
rm -rf MetadataCache/LOG.old*
rm -rf NamespaceCache/LOG.old*
rm -rf AccountStateCache/LOG.old*
rm -rf MosaicCache/LOG.old*
rm -rf SecretLockInfoCache/LOG.old*
rm -rf HashCache/LOG.old*
rm -rf MosaicRestrictionCache/LOG.old*
rm -rf HashLockInfoCache/LOG.old*
rm -rf MultisigCache/LOG.old*
cd -
du -sh target

sudo rm -f /var/www/html/fsdm/*tar.gz
cd target
sudo tar -zcvf /var/www/html/fsdm/databases.tar.gz databases

cd nodes/node
sudo tar --exclude "*lock" --exclude "harvesters.dat" -zcvf /var/www/html/fsdm/data.tar.gz data
11
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
5