wormhole/wormchain/syncing.md

3.9 KiB

Syncing Mainnet Wormchain

Contents

Sync From Snapshot

Build Latest Wormchain Release

# checkout git repository
git clone https://github.com/wormhole-foundation/wormhole

# checkout latest release (v2.23.0 at time of writing)
cd wormhole
git checkout v2.23.0

# build wormchain
cd wormchain
make build/wormchaind

Get a Recent Wormchain Snapshot

Please ask the Wormhole contributors for a recent Wormchain snapshot to use.

You can also use daily snapshots exported by various teams:

Download and Clean Snapshot

After you download the snapshot, you'll need to clear the wasm cache:

# before starting your node
rm -r /data/wasm/cache

Now you should be able to successfully start your node!

Troubleshooting

We were just able to successfully statesync when retaining the wasm folder and deleting the wasm cache, just fyi:

  • you need the wasm folder from a synced node
  • then configure statesync + unsafe-reset-all
  • then copy in wasm state cp -r <your-wasm-folder-location> $DAEMON_HOME/data
  • delete wasm cache rm -r $DAEMON_HOME/data/wasm/cache
  • then start the node & statesync

Sync Manually

Build Wormchain Versions

cd wormhole/wormchain

# v2.14.7
git checkout v2.14.7
make build/wormchaind
mv build/wormchaind build/wormchaind-v2.14.7

# v2.14.9.1
git checkout v2.14.9.1
make build/wormchaind
mv build/wormchaind build/wormchaind-v2.14.9.1

# v2.14.9.6
git checkout v2.14.9.6
make build/wormchaind
mv build/wormchaind build/wormchaind-v2.14.9.6

# v2.18.1
git checkout v2.18.1
make build/wormchaind
mv build/wormchaind build/wormchaind-v2.18.1

# v2.23.0
git checkout v2.23.0
make build/wormchaind
mv build/wormchaind build/wormchaind-v2.23.0

Setup Folders to sync Wormchain

cd wormhole/wormchain/build
rm -rf config/
rm -rf data/
rm -rf keyring-test/
./wormchaind-v2.14.7 init node-client --chain-id wormchain --home .
rm config/config.toml
rm config/genesis.json
cp ../mainnet/* config/

Sync with v2.14.7

./wormchaind-v2.14.7 start --home . --moniker <your-moniker>
# check sync status
./wormchaind-v2.14.7 status | jq ".SyncInfo.latest_block_height"
# Error in validation err="wrong Block.Header.LastResultsHash.  Expected 2AC3E9F6684C828DDBF5A990EE582FD1968DF9158845986AE01889AFDFE0CF8D, got 8161A8789F1A9404B445CDBE7EC97FC8230E89C49C649292E6A771179448D7B0" module=blockchain
# Block 1672360

Sync with v2.14.9.1

./wormchaind-v2.14.9.1 rollback --home .
./wormchaind-v2.14.9.1 start --home . --moniker <your-moniker>
# check sync status
./wormchaind-v2.14.9.1 status | jq ".SyncInfo.latest_block_height"
# Error in validation err="wrong Block.Header.LastResultsHash.  Expected 9F7AC20D2E6D4D06C8A55F7F7F1CDFDC194E3F7E6F89FD9FAF73CBA35D52CDF8, got A05378138E95B21D7D04A5688BAB3578DDC8424EAD5EA1DA55F8B8C5FEE3450C" module=blockchain
# Block 2157092

Sync with v2.14.9.6

./wormchaind-v2.14.9.6 rollback --home .
./wormchaind-v2.14.9.6 start --home . --moniker <your-moniker>
# sync until block 3151200 (problematic block is 3151174)
# stop the sync right after 3151174

Sync with v2.18.1

./build/wormchaind-v2.18.1 start --home . --moniker <your-moniker>
# sync will stop automatically on block 4449129
# after this stops, you just need to restart your wormchain node with v2.23.0
# no rollback is required.

Sync with v2.23.0

./build/wormchaind-v2.23.0 start --home . --moniker <your-moniker>
# this will sync until the latest block!