diff --git a/README.md b/README.md index f6dae01..68e481a 100644 --- a/README.md +++ b/README.md @@ -2,25 +2,4 @@ - Follow [run-first-validator.md](docs/run-first-validator.md) to run the first validator node - Follow [run-validator.md](docs/run-validator.md) to run subsequent validator nodes - -### Other Dependencies - -- [laconic-so](https://github.com/cerc-io/stack-orchestrator/?tab=readme-ov-file#install) -- [tmkms](https://github.com/iqlusioninc/tmkms?tab=readme-ov-file#installation) (for validator nodes) -- Keplr wallet extension (for multisig app) - -## Launch Laconic Mainnet - -- Run [playbook](./playbooks/first-validator/README.md) to use exported state for generating mainnet genesis, submit gentx and setup the node - - Generate the genesis file from testnet state - - Set up the first validator node - - Configure TMKMS for key management - - Verify testnet state transfer and token distribution - -- Run [playbook](./playbooks/validator/README.md) to start both validator nodes - - Set up additional validator nodes with different ports - - Configure TMKMS for each validator - - Create validators on the running chain - - Verify validator creation and participation - -- Deploy the Cosmos Multisig application using the [cosmos-multisig-app playbook](./playbooks/cosmos-multisig-app/README.md) +- Follow [cosmos-multisig-app playbook](./playbooks/cosmos-multisig-app/README.md) to run the Cosmos Multisig app diff --git a/playbooks/README.md b/playbooks/README.md index 1334a50..679dd14 100644 --- a/playbooks/README.md +++ b/playbooks/README.md @@ -40,65 +40,3 @@ ansible --version # ansible [core 2.17.2] ``` - -# Laconic Stack Playbooks - -This directory contains Ansible playbooks for setting up and managing various components of the Laconic stack. - -## Prerequisites - -- [laconic-so](https://github.com/cerc-io/stack-orchestrator/?tab=readme-ov-file#install) -- [tmkms](https://github.com/iqlusioninc/tmkms?tab=readme-ov-file#installation) (for validator nodes) - - Install with `softsign` feature - ```bash - cargo install tmkms --features=softsign --version=0.14.0 - ``` -- testnet-state.json (exported testnet state) -- distribution.json (JSON containing the `lps_lockup` distribution) -- Keplr wallet extension (for multisig app) - -## Launch Laconic Mainnet - -- Begin by setting up the first validator node using the [first-validator playbook](first-validator/README.md) - - This playbook will: - - Generate the genesis file from testnet state - - Set up the first validator node - - Configure TMKMS for key management - - Verify testnet state transfer and token distribution - -- Once the first validator node is running, set up additional validators using the [validator playbook](validator/README.md) - - This playbook will: - - Set up additional validator nodes with different ports - - Configure TMKMS for each validator - - Create validators on the running chain - - Verify validator creation and participation - -- Deploy the Cosmos Multisig application using the [cosmos-multisig-app playbook](cosmos-multisig-app/README.md) - - This playbook will: - - Set up the multisig web interface - - Configure it to work with your validator nodes - - Enable multisig wallet creation and management - - Allow creation of multisig wallets with validator accounts - - Enable transaction signing and broadcasting - -## Common Environment Variables - -Most playbooks require these environment variables: - -```bash -export CWD=$(pwd) -export DATA_DIRECTORY=$CWD -``` - -Additional variables are documented in each playbook's README. - -## Cleanup - -To clean up all deployments: - -```bash -rm -rf *-spec.yml *-deployment tmkms-* output -``` diff --git a/playbooks/first-validator/README.md b/playbooks/first-validator/README.md deleted file mode 100644 index 01ffdc3..0000000 --- a/playbooks/first-validator/README.md +++ /dev/null @@ -1,125 +0,0 @@ -# First Validator Setup - -This playbook sets up the first validator node for the Laconic mainnet chain. - -## Prerequisites - -- [ansible](../README.md#ansible-installation) -- [laconic-so](https://github.com/cerc-io/stack-orchestrator/?tab=readme-ov-file#install) -- [tmkms](https://github.com/iqlusioninc/tmkms?tab=readme-ov-file#installation) - - Install with `softsign` feature - ```bash - cargo install tmkms --features=softsign --version=0.14.0 - ``` -- testnet-state.json (exported testnet state) -- distribution.json (JSON containing the `lps_lockup` distribution) - -## Setup Steps - -1. Copy the example variables file: - ```bash - cp first-validator-vars.example.yml first-validator-vars.yml - ``` - -2. Set environment variables: - ```bash - export CWD=$(pwd) - export DATA_DIRECTORY=$CWD - export MAINNET_DEPLOYMENT_DIR=mainnet-laconicd-deployment - export EXPORTED_STATE_PATH=$CWD/testnet-state.json - export LPS_DISTRIBUTION_PATH=$CWD/distribution.json - export EARLY_SUPPORTS_ACC_ADDR=laconic1gwytamfk3m5n0gsawh5vpwxkwd3vapmvzpp6nz - ``` - -3. Generate genesis file: - ```bash - ansible-playbook -v -i localhost, -c local generate-genesis.yml \ - -e "exported_state_path=$EXPORTED_STATE_PATH" \ - -e "lps_distribution_path=$LPS_DISTRIBUTION_PATH" \ - -e "early_supports_acc_address=$EARLY_SUPPORTS_ACC_ADDR" - ``` - -4. Update `first-validator-vars.yml` with your configuration: - ```yaml - pvt_key: - genesis_file: "$CWD/output/genesis.json" - staking_amount_file: "$CWD/output/staking-amount.json" - cerc_moniker: "LaconicMainnet" - key_name: "laconic-validator" - cerc_chain_id: "laconic-mainnet" - min_gas_price: 0.001 - cerc_loglevel: "info" - ``` - -5. Setup the first validator node: - ```bash - ansible-playbook -v -i localhost, -c local setup-first-validator.yml - ``` - -6. Setup TMKMS: - ```bash - # Initialize TMKMS - tmkms init ./tmkms-first-node - - # Create TMKMS config - cat > ./tmkms-first-node/tmkms.toml << EOL - [[chain]] - id = "laconic-mainnet" - key_format = { type = "cosmos-json", account_key_prefix = "laconicpub", consensus_key_prefix = "laconicvalconspub" } - state_file = "$CWD/tmkms-first-node/state/priv_validator_state.json" - - [[validator]] - chain_id = "laconic-mainnet" - addr = "tcp://localhost:26659" - secret_key = "$CWD/tmkms-first-node/secrets/kms-identity.key" - protocol_version = "v0.34" - reconnect = true - - [[providers.softsign]] - key_type = "consensus" - path = "$CWD/tmkms-first-node/secrets/priv_validator_key" - chain_ids = ["laconic-mainnet"] - EOL - - # Import validator key - tmkms softsign import $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR/data/laconicd-data/config/priv_validator_key.json $CWD/tmkms-first-node/secrets/priv_validator_key - ``` - -7. Start TMKMS: - ```bash - tmkms start --config $CWD/tmkms-first-node/tmkms.toml - ``` - -8. Enable TMKMS and start the node: - ```bash - echo "TMKMS_ENABLED=true" >> $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR/config.env - rm $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR/data/laconicd-data/config/priv_validator_key.json - laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR start - ``` - -## Verification - -1. Check node logs: - ```bash - laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR logs laconicd -f - ``` - -2. Verify validator and TMKMS pubkeys match: - ```bash - laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR exec laconicd 'laconicd query staking validators -o json | jq .validators' - ``` - -3. Check bonds list: - ```bash - laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR exec laconicd 'laconicd query bond list' - ``` - -4. Check token supply: - ```bash - laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR exec laconicd 'laconicd query bank total-supply' - ``` - -5. Check LPS lockup account: - ```bash - laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR exec laconicd 'laconicd query auth module-account lps_lockup' - ``` \ No newline at end of file diff --git a/playbooks/validator/README.md b/playbooks/validator/README.md deleted file mode 100644 index c8553b5..0000000 --- a/playbooks/validator/README.md +++ /dev/null @@ -1,135 +0,0 @@ -# Validator Setup - -This playbook sets up additional validator nodes for the Laconic mainnet chain. - -## Prerequisites - -- [ansible](../README.md#ansible-installation) -- [laconic-so](https://github.com/cerc-io/stack-orchestrator/?tab=readme-ov-file#install) -- [tmkms](https://github.com/iqlusioninc/tmkms?tab=readme-ov-file#installation) - - Install with `softsign` feature - ```bash - cargo install tmkms --features=softsign --version=0.14.0 - ``` -- Running first validator node -- Private key of an account with balance - -## Configuration - -1. Copy the example variables file: - ```bash - cp validator-vars.example.yml validator-vars.yml - ``` - -2. Update `validator-vars.yml` with your configuration: - ```yaml - cerc_moniker: "LaconicMainnetNode-2" - cerc_peers: "@host.docker.internal:26656" # First validator node address - ``` - -3. Update port mappings in `templates/specs/spec-template.yml.j2` to avoid port conflicts: - ```yaml - network: - ports: - laconicd: - - '3060:6060' - - '36659:26659' - - '36657:26657' - - '36656:26656' - - '3473:9473' - - '3090:9090' - - '3317:1317' - ``` - -## Setup Steps - -1. Set environment variables: - ```bash - export CWD=$(pwd) - export DATA_DIRECTORY=$CWD - export MAINNET_DEPLOYMENT_DIR=mainnet-validator-deployment - ``` - -2. Setup validator node: - ```bash - ansible-playbook -v -i localhost, -c local setup-validator.yml - ``` - -3. Setup TMKMS: - ```bash - # Initialize TMKMS - tmkms init ./tmkms-second-node - - # Create TMKMS config - cat > ./tmkms-second-node/tmkms.toml << EOL - [[chain]] - id = "laconic-mainnet" - key_format = { type = "cosmos-json", account_key_prefix = "laconicpub", consensus_key_prefix = "laconicvalconspub" } - state_file = "$CWD/tmkms-second-node/state/priv_validator_state.json" - - [[validator]] - chain_id = "laconic-mainnet" - addr = "tcp://localhost:36659" - secret_key = "$CWD/tmkms-second-node/secrets/kms-identity.key" - protocol_version = "v0.34" - reconnect = true - - [[providers.softsign]] - key_type = "consensus" - path = "$CWD/tmkms-second-node/secrets/priv_validator_key" - chain_ids = ["laconic-mainnet"] - EOL - - # Import validator key - tmkms softsign import $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR/data/laconicd-data/config/priv_validator_key.json $CWD/tmkms-second-node/secrets/priv_validator_key - ``` - -4. Start TMKMS: - ```bash - tmkms start --config $CWD/tmkms-second-node/tmkms.toml - ``` - -5. Enable TMKMS and start the node: - ```bash - echo "TMKMS_ENABLED=true" >> $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR/config.env - rm $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR/data/laconicd-data/config/priv_validator_key.json - laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR start - ``` - -## Create Validator - -1. Set required environment variables: - ```bash - export PVT_KEY= - export KEY_NAME=validator-2 - ``` - -2. Create validator on running chain: - ```bash - ansible-playbook -v -i localhost, -c local create-validator.yml - ``` - -## Verification - -1. Check node logs: - ```bash - laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR logs laconicd -f - ``` - -2. Check validator list: - ```bash - laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR exec laconicd 'laconicd query staking validators' - ``` - -## Clean up - -- To stop the deployment: - ```bash - laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR stop - ``` - -- To stop and delete all data: - ```bash - laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR stop --delete-volumes - sudo rm -rf $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR - ``` \ No newline at end of file