The following document describes the necessary steps involved that a validator must take in order to prepare phoenix-1
. The Terra team will post an official updated penultimate-genesis.json
and genesis.json
file, but it is recommended that validators execute the following instructions in order to verify the resulting genesis file.
-
Fri May 27 2022 18:00:00 GMT+0900 (KST)
-
Fri May 26 2022 09:00:00 GMT+0000 (UTC)
Share
preultimate-genesis.json
and start to collect gen_txs from the validators. -
Fri May 28 2022 12:00:00 GMT+0900 (KST)
-
Fri May 28 2022 03:00:00 GMT+0000 (UTC)
Finish collecting gen_txs and build & share
genesis.json
-
Fri May 28 2022 15:00:00 GMT+0900 (KST)
-
Fri May 28 2022 06:00:00 GMT+0000 (UTC)
Launch network
- Stop node
sudo systemctl stop terrad
- Checkout state exporter and install
git clone https://github.com/terra-money/core-genesis-exporter
cd core-genesis-exporter
make install
- Verify the exporter binary versions
terrad version --long
core: [placeholder]
git commit: [placeholder]
go.sum hash: [placeholder]
build tags: netgo ledger
- Take pre-attack snapshot
terrad export --height 7544910 > pre-attack-snapshot.json
- Take post-attack snapshot
terrad export --height 7790000 > post-attack-snapshot.json
- Verify the SHA256 of the (sorted) pre-attack & post-attack export snapshots
# pre-attack
jq -S -c -M '' pre-attack-snapshot.json | shasum -a 256
[placeholder]
# post-attack
jq -S -c -M '' post-attack-snapshot.json | shasum -a 256
[placeholder]
Assume this steps will be happening in the same machine with Snapshot.
- Checkout genesis builder
git clone https://github.com/terra-money/genesis-tools
- Move pre-attack and post-attack snapshots into genesis-tools
mv ./pre-attack-snapshot.json ./post-attack-snapshot.json ./genesis-tools
- Run genesis builder script
python3 ./genesis-builder.py \
./genesis-template.json \
./pre-attack-snapshot.json \
./post-attack-snapshot.json \
./genesis-validators.json \
--genesis-time=2022-05-28T06:00:00.000000Z \
--pretty=false --chain-id=pheonix-1 \
> penultimate-genesis.json
- Verify the SHA256 of the (sorted) penultimate-genesis.json
jq -S -c -M '' penultimate-genesis.json | shasum -a 256
[placeholder]
Assume this steps will be happening in new validator machine with validator setup (terra init
).
- Checkout and install Terra 2.0 core
# checkout and install
git clone https://github.com/terra-money/core
cd core
git checkout v2.0.0
make install
- Verify the binary version
terrad version --long
core: v2.0.0
git commit: [placeholder]
go.sum hash: [placeholder]
build tags: netgo ledger
- Prepare Environment
# install or move penultimate-genesis.json to server
wget [placeholder]
# move genesis to config location
mv ./penultimate-genesis.json ~/.terra/genesis.json
- Execute GenTx
terrad gentx [key-name] [amount-to-stake] \
--chain-id phoenix-1 \
--min-self-delegation=[] \
--security-contact=[] \
--moniker=[] \
--details=[] \
--commission-rate=[] \
...
- Upload generated GenTx file to this repository's gentx folder via PR.
ls ~/.terra/config/gentx/*
Assume this steps will be happening in the same machine with GenTx.
- Download gentx files and locate to terra home config.
git clone https://github.com/terra-money/genesis-tools
cd genesis-tools
mv ./gentx/* ~/.terra/config/gentx/
- Execute collect-gentxs
terrad collect-gentxs
- Verify the SHA256 of the (sorted) final genesis
jq -S -c -M '' ~/.terra/config/genesis.json | shasum -a 256
[placeholder]
Execute binary and wait until network launch
sudo systemctl start terrad