# 0L Genesis Ceremony Guide **Coordinator**: `sirouk` > ⚠️ **Important**: Only proceed with asynchronous steps after the coordinator confirms the previous sequential blocking steps as completed. ## Genesis Ceremony Steps ### 1. Cleanup - Delete any previous forked `release-v6.9.0-rc.0-genesis-2` in your GitHub organization. - Previous clones and testnets leave data in the `.libra` directory, so you need to clean up: ```bash rm -Rf ~/libra-framework rm -Rf ~/.libra/data && rm -Rf ~/.libra/genesis && rm -Rf ~/.libra/secure-data.json ``` - Retrieve Validator Address: ```bash grep 'account_address' ~/.libra/public-keys.yaml ``` - Fetch Static IP ```bash curl -s ipinfo.io | jq .ip ``` Enter your Validator Address, Operator Name, and Static IP in the Genesis Worksheet. ### 2. Fetch source & verify commit hash ```bash cd ~ git clone https://github.com/0LNetworkCommunity/libra-framework cd ~/libra-framework git fetch --all && git checkout main git log -n 1 --pretty=format:"%H" ``` > **Note**: Provide git hash in the Genesis Worksheet. Only proceed with the following async steps after the coordinator provides the git hash and your results match. ### 3. Build `libra-framework` packages ```bash cd ~/libra-framework cargo build --release -p libra -p libra-genesis-tools -p libra-txs -p diem-db-tool ``` - Confirm with "done" in the Genesis Worksheet. ### 4. Prepare `.libra` directory and add GitHub PAT (use classic with repo privileges) ```bash mkdir ~/.libra/ nano ~/.libra/github_token.txt ``` - Confirm with "done" in the Genesis Worksheet. ### 5. Pre-Genesis Registration - Ensure you delete any forked version of `release-v6.9.0-rc.0-genesis-2` in your home org before registering. ```bash cd ~/libra-framework ./target/release/libra-genesis-tools register --org-github 0LNetworkCommunity --name-github release-v6.9.0-rc.0-genesis-7 ``` - Confirm with "done" in the Genesis Worksheet. ### 6. PR Received (coordinator) ### 7. PR Merged (coordinator) ### 8. Build JSON_Legacy ```bash ### Fetch Ancestry Data and Snapshot mkdir -p ~/libra-recovery wget https://github.com/0LNetworkCommunity/epoch-archive/raw/main/667.tar.gz -O ~/libra-recovery/667.tar.gz cd ~/libra-recovery && tar -xvzf 667.tar.gz wget https://raw.githubusercontent.com/sirouk/ol-data-extraction/v-6.9.x-ready/assets/data.json -O ~/libra-recovery/v5_ancestry.json ### Use v5.2 codebase and snapshot to generate recovery.json for seeding v6.9.x state sudo rm -Rf ~/libra-legacy-v6 cd ~ && git clone -b v6 https://github.com/0LNetworkCommunity/libra-legacy-v6 cd ~/libra-legacy-v6/ol/genesis-tools cargo r -p ol-genesis-tools -- --export-json ~/libra-recovery/v5_recovery.json --snapshot-path ~/libra-recovery/667/state_ver* --ancestry-file ~/libra-recovery/v5_ancestry.json md5sum ~/libra-recovery/v5_recovery.json ``` - Confirm `v5_recovery.json` md5 hash in the Genesis Worksheet. ### 9. All nodes added to `layout.yaml` users key (coordinator) > ⚠️ **Note**: Pre-genesis set closes here. Wait for coordinator. ### 10. Pull from genesis repo and build ```bash # pull and build genesis cd ~/libra-framework/tools/genesis GIT_ORG=0LNetworkCommunity GIT_REPO=release-v6.9.0-rc.0-genesis-7 RECOVERY_FILE=~/libra-recovery/v5_recovery.json make genesis ``` - Confirm with "done" in the Genesis Worksheet. > ⚠️ **Note**: All set. Wait for the coordinator before the next step. ### 11. Start nodes! Wait for the coordinator, say a prayer, then start! ```bash ~/libra-framework/target/release/libra node --config-path ~/.libra/validator.yaml ``` --- **End of Ceremony Steps**