Skip to main content

Migration E2E Testing (TestNet Only)

Table Of Contents


Background

For end-to-end migration testing (on a live/public network with real stakeholders), Morse State uploads on Shannon Beta TestNets:need to:

  • Merge both the Morse MainNet and TestNet state exports into a single file.
  • Maximizes developer convenience and peace of mind.
Callout

On Shannon TestNet only will the snapshot contain both Morse MainNet and TestNet state.


Step by Step Instructions for Protocol Maintainer

Background:

  • Morse state exports are derived from snapshots.
  • TestNet snapshots are taken manually and distributed via STORJ.

1. Retrieve a Morse TestNet Snapshot

SNapshot Height Verification
  • Snapshot heights MUST match those used to generate the canonical state (see Migration Artifacts).

Use the links below to download the snapshot:

SnapshotHeightDateSize
morse-testnet-176966-2025-05-09.txz1769662025-05-09~7GB

Extract the snapshot by cop-pasting the following commands:

mkdir -p $HOME/morse-testnet-snapshot
# Untar the snapshot file (replace with your downloaded filename)
tar -xvf <testnet-snapshot-file>.tar -C $HOME/morse-testnet-snapshot
cd $HOME/morse-testnet-snapshot

2. Export Morse TestNet State

Set the snapshot height and date (replace with actual values):

export TESTNET_SNAPSHOT_HEIGHT="176966"
export TESTNET_SNAPSHOT_DATE="2025-05-09"
export MORSE_TESTNET_STATE_EXPORT_PATH="./morse_state_export_${TESTNET_SNAPSHOT_HEIGHT}_${TESTNET_SNAPSHOT_DATE}.json"

Export the state (update --datadir if your snapshot path is different):

pocket --datadir="$HOME/morse-testnet-snapshot" util export-genesis-for-reset "$TESTNET_SNAPSHOT_HEIGHT" pocket > "$MORSE_TESTNET_STATE_EXPORT_PATH"

3. Export Morse MainNet State

Follow steps 1-2 in State Transfer Playbook to retrieve and export the Morse MainNet snapshot.

4. Merge Morse MainNet & TestNet Stats

  • Merge the Morse MainNet and TestNet state exports into a single file:
export MSG_IMPORT_MORSE_ACCOUNTS_PATH="./msg_import_morse_accounts_m${MAINNET_SNAPSHOT_HEIGHT}_t${TESTNET_SNAPSHOT_HEIGHT}.json"

pocketd tx migration collect-morse-accounts \
"$MORSE_MAINNET_STATE_EXPORT_PATH" "$MSG_IMPORT_MORSE_ACCOUNTS_PATH" \
--merge-state="$MORSE_TESTNET_STATE_EXPORT_PATH"
  • Replace ${MAINNET_SNAPSHOT_HEIGHT} and ${TESTNET_SNAPSHOT_HEIGHT} with your actual values.
  • Result: msg_import_morse_accounts_m<MAINNET_SNAPSHOT_HEIGHT>_t<TESTNET_SNAPSHOT_HEIGHT>.json is ready for import.

5. Continue the State Upload Process

Go to step 6in State Transfer Playbook to upload the snapshot.