From 4a75025e234e77d5c99b916164c28c2e42edb457 Mon Sep 17 00:00:00 2001 From: Shreerang Kale Date: Thu, 19 Jun 2025 11:01:34 +0530 Subject: [PATCH 1/6] Remove git-ssh usage --- docs/demo.md | 12 ++++++------ docs/run-first-validator.md | 2 +- docs/run-validator.md | 2 +- docs/update-deployments.md | 2 +- playbooks/cosmos-multisig-app/README.md | 2 +- .../cosmos-multisig-app-start.yml | 2 +- playbooks/first-validator/setup-first-validator.yml | 2 +- playbooks/tmkms/setup-tmkms.yml | 2 +- playbooks/validator/build-laconicd.yml | 2 +- playbooks/validator/setup-validator.yml | 2 +- 10 files changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/demo.md b/docs/demo.md index c5f0a68..bbf2689 100644 --- a/docs/demo.md +++ b/docs/demo.md @@ -10,7 +10,7 @@ cargo install tmkms --features=softsign --version=0.14.0 ``` - Install `zstd` using `sudo apt install zstd` -- testnet-state.zst ([exported testnet state](./run-first-validator.md#export-testnet-state)) +- testnet-state.zst ([exported testnet state](./run-first-validator.md#export-testnet-state)) - LPS distribution Google spreadsheet URL or CSV file path ## Steps @@ -20,7 +20,7 @@ - Fetch stack: ```bash - laconic-so fetch-stack git.vdb.to/cerc-io/laconicd-stack --git-ssh --pull + laconic-so fetch-stack git.vdb.to/cerc-io/laconicd-stack --pull ``` - Generate LPS lockup distribution JSON file @@ -96,7 +96,7 @@ cerc_moniker: "LaconicMainnet" # Set desired key name key_name: "laconic-validator" - + cerc_chain_id: "laconic-mainnet" min_gas_price: 0.001 cerc_loglevel: "info" @@ -150,7 +150,7 @@ ``` - Import the private validator key into tmkms: - + ```bash tmkms softsign import $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR/data/laconicd-data/config/priv_validator_key.json $CWD/tmkms-first-node/secrets/priv_validator_key ``` @@ -209,7 +209,7 @@ # Check consensus_pubkey in output laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR exec laconicd 'laconicd query staking validators -o json | jq .validators' ``` - + - Compare it with the pubkey noted from logs in TMKMS - Check bonds list to confirm that testnet state was transferred properly: @@ -331,7 +331,7 @@ ``` - Import the private validator key into tmkms: - + ```bash tmkms softsign import $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR/data/laconicd-data/config/priv_validator_key.json $CWD/tmkms-second-node/secrets/priv_validator_key ``` diff --git a/docs/run-first-validator.md b/docs/run-first-validator.md index f9b2b8d..45b57ef 100644 --- a/docs/run-first-validator.md +++ b/docs/run-first-validator.md @@ -25,7 +25,7 @@ - laconicd-stack ```bash - laconic-so fetch-stack git.vdb.to/cerc-io/laconicd-stack --git-ssh --pull + laconic-so fetch-stack git.vdb.to/cerc-io/laconicd-stack --pull ``` ## Build laconicd to generate genesis file diff --git a/docs/run-validator.md b/docs/run-validator.md index fdc50d1..6ddb0d6 100644 --- a/docs/run-validator.md +++ b/docs/run-validator.md @@ -7,7 +7,7 @@ - To fetch laconicd-stack: ```bash - laconic-so fetch-stack git.vdb.to/cerc-io/laconicd-stack --git-ssh --pull + laconic-so fetch-stack git.vdb.to/cerc-io/laconicd-stack --pull ``` - Machine 1: Where your SAPO testnet node is already running diff --git a/docs/update-deployments.md b/docs/update-deployments.md index 6352f46..daf748d 100644 --- a/docs/update-deployments.md +++ b/docs/update-deployments.md @@ -260,7 +260,7 @@ Instructions to reset / update the deployments * If code has changed, fetch and build with updated source code: ```bash - laconic-so --stack ~/cerc/snowballtools-base-api-stack/stack-orchestrator/stacks/snowballtools-base-backend setup-repositories --git-ssh --pull + laconic-so --stack ~/cerc/snowballtools-base-api-stack/stack-orchestrator/stacks/snowballtools-base-backend setup-repositories --pull # rebuild containers laconic-so --stack ~/cerc/snowballtools-base-api-stack/stack-orchestrator/stacks/snowballtools-base-backend build-containers --force-rebuild diff --git a/playbooks/cosmos-multisig-app/README.md b/playbooks/cosmos-multisig-app/README.md index 7a8335a..89283c2 100644 --- a/playbooks/cosmos-multisig-app/README.md +++ b/playbooks/cosmos-multisig-app/README.md @@ -15,7 +15,7 @@ This playbook sets up the Cosmos Multisig application for managing multisig wall - Fetch the stack: ```bash - laconic-so fetch-stack git.vdb.to/cerc-io/laconicd-stack --git-ssh --pull + laconic-so fetch-stack git.vdb.to/cerc-io/laconicd-stack --pull ``` - Copy the example variables file: diff --git a/playbooks/cosmos-multisig-app/cosmos-multisig-app-start.yml b/playbooks/cosmos-multisig-app/cosmos-multisig-app-start.yml index ef0dd5e..7d39ab9 100644 --- a/playbooks/cosmos-multisig-app/cosmos-multisig-app-start.yml +++ b/playbooks/cosmos-multisig-app/cosmos-multisig-app-start.yml @@ -25,7 +25,7 @@ - name: Clone cosmos-multisig-ui repo shell: | - laconic-so fetch-stack git.vdb.to/cerc-io/cosmos-multisig-ui@v0.1.2 --git-ssh --pull + laconic-so fetch-stack git.vdb.to/cerc-io/cosmos-multisig-ui@v0.1.2 --pull - name: Build container image shell: | diff --git a/playbooks/first-validator/setup-first-validator.yml b/playbooks/first-validator/setup-first-validator.yml index 459af51..46a8f25 100644 --- a/playbooks/first-validator/setup-first-validator.yml +++ b/playbooks/first-validator/setup-first-validator.yml @@ -24,7 +24,7 @@ - name: Setup required repositories shell: > laconic-so --stack ~/cerc/laconicd-stack/stack-orchestrator/stacks/mainnet-laconicd - setup-repositories --git-ssh --pull + setup-repositories --pull - name: Build container images shell: | diff --git a/playbooks/tmkms/setup-tmkms.yml b/playbooks/tmkms/setup-tmkms.yml index 468af00..f2fddf4 100644 --- a/playbooks/tmkms/setup-tmkms.yml +++ b/playbooks/tmkms/setup-tmkms.yml @@ -17,7 +17,7 @@ - name: Fetch tmkms stack shell: | - laconic-so fetch-stack git.vdb.to/LaconicNetwork/tmkms-stack --git-ssh --pull + laconic-so fetch-stack git.vdb.to/LaconicNetwork/tmkms-stack --pull - name: Build tmkms container images shell: | diff --git a/playbooks/validator/build-laconicd.yml b/playbooks/validator/build-laconicd.yml index 3aeefbe..b456bf8 100644 --- a/playbooks/validator/build-laconicd.yml +++ b/playbooks/validator/build-laconicd.yml @@ -8,7 +8,7 @@ - name: Setup required repositories shell: > laconic-so --stack ~/cerc/laconicd-stack/stack-orchestrator/stacks/mainnet-laconicd - setup-repositories --git-ssh --pull + setup-repositories --pull - name: Build container images shell: | diff --git a/playbooks/validator/setup-validator.yml b/playbooks/validator/setup-validator.yml index f97b9a7..8b9b627 100644 --- a/playbooks/validator/setup-validator.yml +++ b/playbooks/validator/setup-validator.yml @@ -31,7 +31,7 @@ - name: Setup required repositories shell: > laconic-so --stack ~/cerc/laconicd-stack/stack-orchestrator/stacks/mainnet-laconicd - setup-repositories --git-ssh --pull + setup-repositories --pull - name: Build container images shell: | -- 2.45.2 From 05ef8b48bf310c92fdde728f4bf717ec0fdb1e76 Mon Sep 17 00:00:00 2001 From: Prathamesh Musale Date: Thu, 19 Jun 2025 11:27:06 +0530 Subject: [PATCH 2/6] Make yq installation OS agnostic --- docs/run-validator.md | 3 +-- playbooks/setup.yml | 7 ++++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/run-validator.md b/docs/run-validator.md index 6ddb0d6..aa6a55b 100644 --- a/docs/run-validator.md +++ b/docs/run-validator.md @@ -32,7 +32,6 @@ - [ansible](playbooks/README.md#ansible-installation) - ## Stop SAPO testnet node - Run the following steps in machine where your SAPO testnet validator node is already running (machine 1) @@ -120,7 +119,7 @@ ``` - To get path to the deployment - + ```bash echo $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR ``` diff --git a/playbooks/setup.yml b/playbooks/setup.yml index b3bd354..72d0a29 100644 --- a/playbooks/setup.yml +++ b/playbooks/setup.yml @@ -11,9 +11,14 @@ path: "{{ ansible_env.HOME }}/.laconic-tools/yq" register: yq_file +- name: Detect OS and architecture + set_fact: + yq_os: "{{ 'darwin' if ansible_system == 'Darwin' else 'linux' }}" + yq_arch: "{{ ansible_architecture | regex_replace('x86_64', 'amd64') | regex_replace('aarch64', 'arm64') }}" + - name: Download yq to user's tools directory shell: | - curl -L https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -o {{ ansible_env.HOME }}/.laconic-tools/yq + curl -L https://github.com/mikefarah/yq/releases/latest/download/yq_{{ yq_os }}_{{ yq_arch }} -o {{ ansible_env.HOME }}/.laconic-tools/yq chmod +x {{ ansible_env.HOME }}/.laconic-tools/yq when: not yq_file.stat.exists args: -- 2.45.2 From ff836a2be0c86e3563269403c4098ef8f3881534 Mon Sep 17 00:00:00 2001 From: Prathamesh Musale Date: Thu, 19 Jun 2025 11:37:14 +0530 Subject: [PATCH 3/6] Add macOS support for zstd installation --- docs/demo.md | 2 +- docs/export-testnet.md | 2 +- docs/run-first-validator.md | 2 +- docs/run-validator.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/demo.md b/docs/demo.md index bbf2689..a2ce808 100644 --- a/docs/demo.md +++ b/docs/demo.md @@ -9,7 +9,7 @@ ```bash cargo install tmkms --features=softsign --version=0.14.0 ``` -- Install `zstd` using `sudo apt install zstd` +- Install `zstd` using `sudo apt install zstd` (Linux) or `brew install zstd` (macOS) - testnet-state.zst ([exported testnet state](./run-first-validator.md#export-testnet-state)) - LPS distribution Google spreadsheet URL or CSV file path diff --git a/docs/export-testnet.md b/docs/export-testnet.md index 1c25ad1..0a7f9b9 100644 --- a/docs/export-testnet.md +++ b/docs/export-testnet.md @@ -4,7 +4,7 @@ - Machine where the SAPO testnet validator node is already running - - Install `zstd` using `sudo apt install zstd` + - Install `zstd` using `sudo apt install zstd` (Linux) or `brew install zstd` (macOS) - [laconic-so](https://github.com/cerc-io/stack-orchestrator/?tab=readme-ov-file#install) diff --git a/docs/run-first-validator.md b/docs/run-first-validator.md index 45b57ef..cfe455a 100644 --- a/docs/run-first-validator.md +++ b/docs/run-first-validator.md @@ -10,7 +10,7 @@ - Machine 3: Where the genesis file is to be generated - - Install `zstd` using `sudo apt install zstd` + - Install `zstd` using `sudo apt install zstd` (Linux) or `brew install zstd` (macOS) - [LSP distribution JSON](./export-testnet.md#prepare-lps-distribution-json) diff --git a/docs/run-validator.md b/docs/run-validator.md index aa6a55b..03322e8 100644 --- a/docs/run-validator.md +++ b/docs/run-validator.md @@ -18,7 +18,7 @@ - [ansible](playbooks/README.md#ansible-installation) - - Install `zstd` using `sudo apt install zstd` + - Install `zstd` using `sudo apt install zstd` (Linux) or `brew install zstd` (macOS) - Machine 3: Where the create-validator transaction is to be signed -- 2.45.2 From 42b1a8be232b23c0f0fb7d9589284566aec0ec57 Mon Sep 17 00:00:00 2001 From: Shreerang Kale Date: Thu, 19 Jun 2025 18:02:22 +0530 Subject: [PATCH 4/6] Update docker run commands for running subsequent validators --- playbooks/validator/create-validator.yml | 42 ++++++++++++++++-------- playbooks/validator/setup-validator.yml | 24 ++++++++++---- 2 files changed, 45 insertions(+), 21 deletions(-) diff --git a/playbooks/validator/create-validator.yml b/playbooks/validator/create-validator.yml index 18f615c..87895ba 100644 --- a/playbooks/validator/create-validator.yml +++ b/playbooks/validator/create-validator.yml @@ -48,17 +48,31 @@ when: private_key_input.user_input | default('') | trim == '' - name: Run create-validator script - shell: | - docker run -i \ - -v {{create_validator_dir}}:/root/create-validator \ - -v ~/cerc/laconicd-stack/stack-orchestrator/config/mainnet-laconicd/create-validator.sh:/scripts/create-validator.sh \ - -e "KEY_NAME={{ key_name }}" \ - -e "NODE_URL={{ node_url }}" \ - -e "CERC_MONIKER={{ cerc_moniker }}" \ - -e "CERC_CHAIN_ID={{ cerc_chain_id }}" \ - -e "MIN_GAS_PRICE={{ min_gas_price }}" \ - -e "VALIDATOR_PUB_KEY={{ validator_pub_key | to_json }}" \ - -e "PVT_KEY={{ private_key_input.user_input }}" \ - --network=host \ - cerc/laconicd:local \ - sh -c "/scripts/create-validator.sh" + command: + argv: + - docker + - run + - -i + - -v + - "{{create_validator_dir}}:/root/create-validator" + - -v + - "{{ ansible_env.HOME }}/cerc/laconicd-stack/stack-orchestrator/config/mainnet-laconicd/create-validator.sh:/scripts/create-validator.sh" + - -e + - "KEY_NAME={{ key_name }}" + - -e + - "NODE_URL={{ node_url }}" + - -e + - "CERC_MONIKER={{ cerc_moniker }}" + - -e + - "CERC_CHAIN_ID={{ cerc_chain_id }}" + - -e + - "MIN_GAS_PRICE={{ min_gas_price }}" + - -e + - "VALIDATOR_PUB_KEY={{ validator_pub_key }}" + - -e + - "PVT_KEY={{ private_key_input.user_input }}" + - --network=host + - cerc/laconicd:local + - sh + - -c + - "/scripts/create-validator.sh" diff --git a/playbooks/validator/setup-validator.yml b/playbooks/validator/setup-validator.yml index 8b9b627..2a3b1b2 100644 --- a/playbooks/validator/setup-validator.yml +++ b/playbooks/validator/setup-validator.yml @@ -94,10 +94,20 @@ - name: Initialize laconicd node when: not BUILD_ONLY - shell: | - docker run -i \ - -v {{data_directory}}/{{ mainnet_deployment_dir }}/data/laconicd-data:/root/.laconicd \ - -v {{data_directory}}/{{ mainnet_deployment_dir }}/config/mainnet-laconicd:/scripts \ - -e "CERC_MONIKER={{ cerc_moniker }}" \ - -e "CERC_CHAIN_ID={{ cerc_chain_id }}" \ - cerc/laconicd:local bash -c "/scripts/setup-laconicd.sh" + command: + argv: + - docker + - run + - -i + - -v + - "{{data_directory}}/{{ mainnet_deployment_dir }}/data/laconicd-data:/root/.laconicd" + - -v + - "{{data_directory}}/{{ mainnet_deployment_dir }}/config/mainnet-laconicd:/scripts" + - -e + - "CERC_MONIKER={{ cerc_moniker }}" + - -e + - "CERC_CHAIN_ID={{ cerc_chain_id }}" + - cerc/laconicd:local + - bash + - -c + - "/scripts/setup-laconicd.sh" -- 2.45.2 From 37e684ad245b22e001f4fe7e1e4e8dbb1096ebcf Mon Sep 17 00:00:00 2001 From: Shreerang Kale Date: Thu, 19 Jun 2025 18:35:04 +0530 Subject: [PATCH 5/6] Add step to check sync status of the node --- docs/run-validator.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/run-validator.md b/docs/run-validator.md index 03322e8..235b05b 100644 --- a/docs/run-validator.md +++ b/docs/run-validator.md @@ -208,10 +208,21 @@ NOTE: This public key is required in next step to create validator +- Check sync status of node: + + ```bash + # Check sync status + laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR exec laconicd "laconicd status | jq .sync_info" + + # `catching_up: false` indicates that node is completely synced + ``` + ## Create Validator - Run these steps in a machine from where [the create-validator transaction is to be signed (machine 3)](#build-laconicd-to-create-validator) + NOTE: Make sure that your node has completed syncing + - Copy the example variables file: ```bash -- 2.45.2 From ee6a87f12166a14b4d12952caeaa7ff9f4e22477 Mon Sep 17 00:00:00 2001 From: Shreerang Kale Date: Thu, 19 Jun 2025 18:47:14 +0530 Subject: [PATCH 6/6] Update readme --- docs/run-validator.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/run-validator.md b/docs/run-validator.md index 235b05b..90d8ccd 100644 --- a/docs/run-validator.md +++ b/docs/run-validator.md @@ -221,8 +221,6 @@ - Run these steps in a machine from where [the create-validator transaction is to be signed (machine 3)](#build-laconicd-to-create-validator) - NOTE: Make sure that your node has completed syncing - - Copy the example variables file: ```bash @@ -253,6 +251,8 @@ - Run ansible playbook to create a validator in the running chain: + NOTE: Make sure that your node has completed syncing before running the playbook + ```bash ansible-playbook -i localhost, -c local ~/cerc/laconicd-stack/playbooks/validator/create-validator.yml ``` -- 2.45.2