From 5dd89f83eefb7fe8308e4dfb3cbb001716baee3d Mon Sep 17 00:00:00 2001 From: Nabarun Date: Thu, 15 May 2025 12:04:54 +0530 Subject: [PATCH] Update distribution params to disable staking rewards --- .gitignore | 3 +++ ...vars.yml => first-validator-vars.example.yml} | 2 +- .../first-validator/run-first-validator.yml | 4 ++-- run-first-validator.md | 16 ++++++++++++++-- scripts/generate-mainnet-genesis.sh | 1 - scripts/genesis.sh | 15 +++++++++++++++ .../compose/docker-compose-mainnet-laconicd.yml | 2 +- .../config/mainnet-laconicd/run-laconicd.sh | 12 ++++++++++++ .../stacks/mainnet-laconicd/README.md | 2 -- 9 files changed, 48 insertions(+), 9 deletions(-) rename playbooks/first-validator/{first-validator-vars.yml => first-validator-vars.example.yml} (77%) diff --git a/.gitignore b/.gitignore index abaaaab..2948191 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ *-deployment *-spec.yml + +# Playbook vars +playbooks/first-validator/first-validator-vars.yml diff --git a/playbooks/first-validator/first-validator-vars.yml b/playbooks/first-validator/first-validator-vars.example.yml similarity index 77% rename from playbooks/first-validator/first-validator-vars.yml rename to playbooks/first-validator/first-validator-vars.example.yml index 78d11ec..6d8b34f 100644 --- a/playbooks/first-validator/first-validator-vars.yml +++ b/playbooks/first-validator/first-validator-vars.example.yml @@ -1,4 +1,4 @@ -cerc_moniker: "MainnetNode" +cerc_moniker: "LaconicMainnetNode" cerc_chain_id: "laconic-mainnet" min_gas_price: 0.001 cerc_loglevel: "info" diff --git a/playbooks/first-validator/run-first-validator.yml b/playbooks/first-validator/run-first-validator.yml index 5317547..8022454 100644 --- a/playbooks/first-validator/run-first-validator.yml +++ b/playbooks/first-validator/run-first-validator.yml @@ -20,7 +20,7 @@ fail: msg: >- Required key files are not defined. - Please set genesis_file in run-first-validator-vars.yml. + Please set genesis_file in first-validator-vars.yml. when: not genesis_file - name: Fetch laconicd stack shell: laconic-so fetch-stack git.vdb.to/cerc-io/laconicd-stack --git-ssh --pull @@ -72,7 +72,7 @@ - name: Fail if pvt_key is not set fail: msg: >- - Private key (pvt_key) is not set in run-first-validator-vars.yml. + Private key (pvt_key) is not set in first-validator-vars.yml. This is required for creating the gentx. when: not pvt_key diff --git a/run-first-validator.md b/run-first-validator.md index a1405ce..ffb5d0a 100644 --- a/run-first-validator.md +++ b/run-first-validator.md @@ -42,11 +42,23 @@ ansible-playbook -i localhost, -c local ~/cerc/laconicd-stack/playbooks/first-validator/generate-genesis.yml -e "exported_state_path=$EXPORTED_STATE_PATH" -e "early_supports_acc_address=$EARLY_SUPPORTS_ACC_ADDR" ``` +- Genesis file will be generated in output directory along with a file specifying the staking amount + + ```bash + # List files in output directory - genesis.json and staking-amount.json + ls -l output + ``` + ## Run node -- Update [run-first-validator-vars.yml](playbooks/first-validator/run-first-validator-vars.yml) with required values: +- Copy the example variables file: + ```bash + cp ~/cerc/laconicd-stack/playbooks/first-validator/first-validator-vars.example.yml ~/cerc/laconicd-stack/playbooks/first-validator/first-validator-vars.yml + ``` + +- Update `~/cerc/laconicd-stack/playbooks/first-validator/first-validator-vars.yml` with required values: ```bash # Private key of the existing account in hex format (required for gentx) @@ -56,7 +68,7 @@ genesis_file: "" # Set custom moniker for the node - cerc_moniker: "MainnetNode" + cerc_moniker: "LaconicMainnetNode" # Set desired key name key_name: "validator" diff --git a/scripts/generate-mainnet-genesis.sh b/scripts/generate-mainnet-genesis.sh index 67836b8..e1e4982 100755 --- a/scripts/generate-mainnet-genesis.sh +++ b/scripts/generate-mainnet-genesis.sh @@ -59,7 +59,6 @@ docker run \ # Copy over the genesis file to output folder cp ./$MAINNET_GENESIS_DIR/config/genesis.json $OUTPUT_DIR/genesis.json -# TODO: chown the output dir to user echo "Genesis file for mainnet written to $OUTPUT_DIR/genesis.json" # -------- diff --git a/scripts/genesis.sh b/scripts/genesis.sh index 32822f8..da012c7 100755 --- a/scripts/genesis.sh +++ b/scripts/genesis.sh @@ -27,6 +27,21 @@ testnet_state_file="$NODE_HOME/testnet-state.json" mainnet_genesis_file="$NODE_HOME/config/genesis.json" # Update any module params if required here +update_genesis() { + jq "$1" $NODE_HOME/config/genesis.json > $NODE_HOME/config/tmp_genesis.json && + mv $NODE_HOME/config/tmp_genesis.json $NODE_HOME/config/genesis.json +} + +# Set distribution community tax to 1 for disabling staking rewards and redirect them to the community pool +update_genesis '.app_state["distribution"]["params"]["community_tax"]="1.000000000000000000"' + +# Increase threshold in gov proposals for making it difficult to spend community pool funds +echo "Setting high threshold for accepting governance proposal" +update_genesis '.app_state["gov"]["params"]["quorum"]="1.000000000000000000"' +# Set expedited threshold to 100% +update_genesis '.app_state["gov"]["params"]["expedited_threshold"]="1.000000000000000000"' +# Set normal threshold to 99% since it needs to be lesser than expedited threshold +update_genesis '.app_state["gov"]["params"]["threshold"]="0.990000000000000000"' # Perform alps allocations laconicd genesis add-genesis-account $EARLY_SUPPORTS_ACC_ADDRESS $EARLY_SUPPORTS_ALLOC$LPS_DENOM --keyring-backend $KEYRING --append diff --git a/stack-orchestrator/compose/docker-compose-mainnet-laconicd.yml b/stack-orchestrator/compose/docker-compose-mainnet-laconicd.yml index e649dea..6822d82 100644 --- a/stack-orchestrator/compose/docker-compose-mainnet-laconicd.yml +++ b/stack-orchestrator/compose/docker-compose-mainnet-laconicd.yml @@ -4,7 +4,7 @@ services: image: cerc/laconicd:local command: ["bash", "-c", "/opt/run-laconicd.sh"] environment: - CERC_MONIKER: ${CERC_MONIKER:-MainnetNode} + CERC_MONIKER: ${CERC_MONIKER} CERC_CHAIN_ID: ${CERC_CHAIN_ID:-laconic-mainnet} CERC_PEERS: ${CERC_PEERS} MIN_GAS_PRICE: ${MIN_GAS_PRICE:-0.001} diff --git a/stack-orchestrator/config/mainnet-laconicd/run-laconicd.sh b/stack-orchestrator/config/mainnet-laconicd/run-laconicd.sh index 9e35027..047b659 100755 --- a/stack-orchestrator/config/mainnet-laconicd/run-laconicd.sh +++ b/stack-orchestrator/config/mainnet-laconicd/run-laconicd.sh @@ -42,6 +42,18 @@ sed -i 's/cors_allowed_origins.*$/cors_allowed_origins = ["*"]/' $NODE_HOME/conf # Update config with persistent peers sed -i "s/^persistent_peers *=.*/persistent_peers = \"$CERC_PEERS\"/g" $NODE_HOME/config/config.toml +# Enable telemetry (prometheus metrics: http://localhost:1317/metrics?format=prometheus) +if [[ "$OSTYPE" == "darwin"* ]]; then + sed -i '' 's/enabled = false/enabled = true/g' $NODE_HOME/config/app.toml + sed -i '' 's/prometheus-retention-time = 0/prometheus-retention-time = 60/g' $NODE_HOME/config/app.toml + sed -i '' 's/prometheus = false/prometheus = true/g' $NODE_HOME/config/config.toml +else + sed -i 's/enabled = false/enabled = true/g' $NODE_HOME/config/app.toml + sed -i 's/prometheus-retention-time = 0/prometheus-retention-time = 60/g' $NODE_HOME/config/app.toml + sed -i 's/prometheus = false/prometheus = true/g' $NODE_HOME/config/config.toml +fi + + echo "Starting laconicd node..." laconicd start \ --api.enable \ diff --git a/stack-orchestrator/stacks/mainnet-laconicd/README.md b/stack-orchestrator/stacks/mainnet-laconicd/README.md index aaffda9..3ab806d 100644 --- a/stack-orchestrator/stacks/mainnet-laconicd/README.md +++ b/stack-orchestrator/stacks/mainnet-laconicd/README.md @@ -1,3 +1 @@ # mainnet-laconicd - -Instructions for running validator nodes