Add script and playbook to create validator
This commit is contained in:
parent
187b254399
commit
efbeed60a2
30
playbooks/validator/create-validator.yml
Normal file
30
playbooks/validator/create-validator.yml
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
- name: Create validator on running chain
|
||||
hosts: localhost
|
||||
vars:
|
||||
data_directory: "{{ lookup('env', 'DATA_DIRECTORY') }}"
|
||||
deployment_dir: "{{ lookup('env', 'MAINNET_DEPLOYMENT_DIR') }}"
|
||||
key_name: "{{ lookup('env', 'KEY_NAME') }}"
|
||||
pvt_key: "{{ lookup('env', 'PVT_KEY') }}"
|
||||
tasks:
|
||||
- name: Fail if DATA_DIRECTORY or MAINNET_DEPLOYMENT_DIR env vars are not set
|
||||
fail:
|
||||
msg: >-
|
||||
Required environment variables are not set.
|
||||
Please export both DATA_DIRECTORY and MAINNET_DEPLOYMENT_DIR before running the playbook.
|
||||
when: lookup('env', 'DATA_DIRECTORY') == '' or lookup('env', 'MAINNET_DEPLOYMENT_DIR') == ''
|
||||
|
||||
- name: Fail if pvt_key is not set
|
||||
fail:
|
||||
msg: >-
|
||||
Neither private key (pvt_key) is set.
|
||||
Please export PVT_KEY.
|
||||
when: not pvt_key
|
||||
|
||||
- name: Import private key in laconicd
|
||||
shell: |
|
||||
laconic-so deployment --dir {{ data_directory }}/{{ deployment_dir }} exec laconicd "laconicd keys import-hex {{ key_name }} {{ pvt_key }}"
|
||||
|
||||
- name: Run create-validator script
|
||||
shell: |
|
||||
laconic-so deployment --dir {{ data_directory }}/{{ deployment_dir }} exec laconicd "export KEY_NAME={{ key_name }} /scripts/create-validator.sh"
|
@ -75,6 +75,42 @@
|
||||
laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR logs laconicd -f
|
||||
```
|
||||
|
||||
## Create Validator
|
||||
|
||||
- Get your private key from testnet deployment:
|
||||
|
||||
```bash
|
||||
# Replace <testnet-deployment-dir> with the absolute path to the testnet deployment directory and <key-name> with the name of your key
|
||||
docker run -it \
|
||||
-v <testnet-deployment-dir>/data/laconicd-data:/root/.laconicd \
|
||||
cerc/laconicd:local bash -c "laconicd keys export <key-name> --unarmored-hex --unsafe"
|
||||
```
|
||||
|
||||
- Export required env vars:
|
||||
|
||||
```bash
|
||||
# private key of the existing account
|
||||
export PVT_KEY=<private-key-in-hex-format>
|
||||
|
||||
# desired key name
|
||||
export KEY_NAME=<key-name>
|
||||
|
||||
export DATA_DIRECTORY=<data-directory>
|
||||
export MAINNET_DEPLOYMENT_DIR=<mainnet-deployment-dir>
|
||||
```
|
||||
|
||||
- Run ansible playbook to create validator on running chain:
|
||||
|
||||
```bash
|
||||
ansible-playbook -i localhost, -c local playbooks/validator/create-validator.yml
|
||||
```
|
||||
|
||||
- Check the validator list:
|
||||
|
||||
```bash
|
||||
laconic-so deployment --dir $DATA_DIRECTORY/$MAINNET_DEPLOYMENT_DIR exec laconicd 'laconicd query staking validators'
|
||||
```
|
||||
|
||||
## Register Your Node
|
||||
|
||||
- Get your node's address:
|
||||
|
20
scripts/create-validator.sh
Executable file
20
scripts/create-validator.sh
Executable file
@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
DENOM=alnt
|
||||
|
||||
# Create validator with fixed parameters
|
||||
laconicd tx staking create-validator \
|
||||
--amount 900000000$DENOM \
|
||||
--pubkey $(laconicd tendermint show-validator) \
|
||||
--moniker "$CERC_MONIKER" \
|
||||
--chain-id "$CERC_CHAIN_ID" \
|
||||
--commission-rate 0.0 \
|
||||
--commission-max-rate 0.0 \
|
||||
--commission-max-change-rate 0.0 \
|
||||
--min-self-delegation 1 \
|
||||
--gas auto \
|
||||
--gas-adjustment 1.5 \
|
||||
--gas-prices $MIN_GAS_PRICE$DENOM \
|
||||
--from $KEY_NAME \
|
||||
--yes
|
@ -12,6 +12,7 @@ services:
|
||||
volumes:
|
||||
- laconicd-data:/root/.laconicd
|
||||
- ../config/mainnet-laconicd/run-laconicd.sh:/opt/run-laconicd.sh
|
||||
- ../config/mainnet-laconicd/create-validator.sh:/scripts/create-validator.sh
|
||||
ports:
|
||||
- "6060"
|
||||
- "26657"
|
||||
|
Loading…
Reference in New Issue
Block a user