Update root README
This commit is contained in:
parent
a7f26983ab
commit
30727feb21
23
README.md
23
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
|
||||
|
@ -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
|
||||
```
|
||||
|
@ -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: <KEY_OF_ACCOUNT_WITH_BALANCE_IN_TESTNET>
|
||||
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'
|
||||
```
|
@ -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: "<node-id>@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=<private-key-in-hex-format>
|
||||
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
|
||||
```
|
Loading…
Reference in New Issue
Block a user