diff --git a/docs/demo.md b/docs/demo.md index c5f0a68..a2ce808 100644 --- a/docs/demo.md +++ b/docs/demo.md @@ -9,8 +9,8 @@ ```bash 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)) +- 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 ## 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/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 f9b2b8d..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) @@ -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..90d8ccd 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 @@ -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 @@ -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 ``` @@ -209,6 +208,15 @@ 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) @@ -243,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 ``` 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/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: 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/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 f97b9a7..2a3b1b2 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: | @@ -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"