From 1c1d2e742eec7edc9604d3e7f8b54e39f5789c3a Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Wed, 20 Oct 2021 13:39:34 +0200 Subject: [PATCH 01/11] Add local simapp44 blockchain --- scripts/simapp44/.gitignore | 1 + scripts/simapp44/README.md | 66 ++ scripts/simapp44/env | 5 + scripts/simapp44/generate_template.sh | 74 ++ scripts/simapp44/generate_template_slow.sh | 22 + scripts/simapp44/genesis-ibc.json | 277 ++++++ scripts/simapp44/run_simd.sh | 7 + scripts/simapp44/setup.sh | 47 + scripts/simapp44/slow_start.sh | 42 + scripts/simapp44/slow_stop.sh | 11 + scripts/simapp44/start.sh | 42 + scripts/simapp44/stop.sh | 11 + .../simapp44/template/.simapp/config/app.toml | 152 +++ .../template/.simapp/config/config.toml | 393 ++++++++ .../template/.simapp/config/genesis.json | 925 ++++++++++++++++++ ...cdbcfe545eaaaea99378bc70bf22eef3401a4.json | 1 + .../template/.simapp/config/node_key.json | 1 + .../.simapp/config/priv_validator_key.json | 11 + ...13d84ba0fed8a6a4f9ef9abc9967a402c3.address | 1 + scripts/simapp44/template/.simapp/keyhash | 1 + .../simapp44/template/.simapp/validator.info | 1 + scripts/simapp44/template/run_simd.sh | 7 + scripts/simapp44/template/setup.sh | 47 + .../template_slow/.simapp/config/app.toml | 152 +++ .../template_slow/.simapp/config/config.toml | 393 ++++++++ .../template_slow/.simapp/config/genesis.json | 925 ++++++++++++++++++ ...cdbcfe545eaaaea99378bc70bf22eef3401a4.json | 1 + .../.simapp/config/node_key.json | 1 + .../.simapp/config/priv_validator_key.json | 11 + .../.simapp/data/priv_validator_state.json | 5 + ...13d84ba0fed8a6a4f9ef9abc9967a402c3.address | 1 + .../simapp44/template_slow/.simapp/keyhash | 1 + .../template_slow/.simapp/validator.info | 1 + scripts/simapp44/template_slow/run_simd.sh | 7 + scripts/simapp44/template_slow/setup.sh | 47 + 35 files changed, 3690 insertions(+) create mode 100644 scripts/simapp44/.gitignore create mode 100644 scripts/simapp44/README.md create mode 100644 scripts/simapp44/env create mode 100755 scripts/simapp44/generate_template.sh create mode 100755 scripts/simapp44/generate_template_slow.sh create mode 100644 scripts/simapp44/genesis-ibc.json create mode 100644 scripts/simapp44/run_simd.sh create mode 100644 scripts/simapp44/setup.sh create mode 100755 scripts/simapp44/slow_start.sh create mode 100755 scripts/simapp44/slow_stop.sh create mode 100755 scripts/simapp44/start.sh create mode 100755 scripts/simapp44/stop.sh create mode 100644 scripts/simapp44/template/.simapp/config/app.toml create mode 100644 scripts/simapp44/template/.simapp/config/config.toml create mode 100644 scripts/simapp44/template/.simapp/config/genesis.json create mode 100644 scripts/simapp44/template/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json create mode 100644 scripts/simapp44/template/.simapp/config/node_key.json create mode 100644 scripts/simapp44/template/.simapp/config/priv_validator_key.json create mode 100644 scripts/simapp44/template/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address create mode 100755 scripts/simapp44/template/.simapp/keyhash create mode 100644 scripts/simapp44/template/.simapp/validator.info create mode 100755 scripts/simapp44/template/run_simd.sh create mode 100755 scripts/simapp44/template/setup.sh create mode 100644 scripts/simapp44/template_slow/.simapp/config/app.toml create mode 100644 scripts/simapp44/template_slow/.simapp/config/config.toml create mode 100644 scripts/simapp44/template_slow/.simapp/config/genesis.json create mode 100644 scripts/simapp44/template_slow/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json create mode 100644 scripts/simapp44/template_slow/.simapp/config/node_key.json create mode 100644 scripts/simapp44/template_slow/.simapp/config/priv_validator_key.json create mode 100644 scripts/simapp44/template_slow/.simapp/data/priv_validator_state.json create mode 100644 scripts/simapp44/template_slow/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address create mode 100755 scripts/simapp44/template_slow/.simapp/keyhash create mode 100644 scripts/simapp44/template_slow/.simapp/validator.info create mode 100755 scripts/simapp44/template_slow/run_simd.sh create mode 100755 scripts/simapp44/template_slow/setup.sh diff --git a/scripts/simapp44/.gitignore b/scripts/simapp44/.gitignore new file mode 100644 index 0000000000..920c4e6e30 --- /dev/null +++ b/scripts/simapp44/.gitignore @@ -0,0 +1 @@ +template/.simapp/data/ diff --git a/scripts/simapp44/README.md b/scripts/simapp44/README.md new file mode 100644 index 0000000000..ad1890f170 --- /dev/null +++ b/scripts/simapp44/README.md @@ -0,0 +1,66 @@ +# Local Simd development network + +## Starting the blockchain + +Run the following: + +``` +cd scripts/simapp44 +./start.sh +``` + +## Preset accounts + +1. **Faucet**
+ economy stock theory fatal elder harbor betray wasp final emotion task crumble siren bottom lizard educate guess current outdoor pair theory focus wife stone
+ Address 0: cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6
+ Address 1: cosmos10dyr9899g6t0pelew4nvf4j5c3jcgv0r73qga5
+ Address 2: cosmos1xy4yqngt0nlkdcenxymg8tenrghmek4nmqm28k
+ Address 3: cosmos142u9fgcjdlycfcez3lw8x6x5h7rfjlnfhpw2lx
+ Address 4: cosmos1hsm76p4ahyhl5yh3ve9ur49r5kemhp2r0dcjvx
+ Pubkey 0: A08EGB7ro1ORuFhjOnZcSgwYlpe0DSFjVNUIkNNQxwKQ
+ Pubkey 1: AiDosfIbBi54XJ1QjCeApumcy/FjdtF+YhywPf3DKTx7
+ Pubkey 2: AzQg33JZqH7vSsm09esZY5bZvmzYwE/SY78cA0iLxpD7
+ Pubkey 3: A3gOAlB6aiRTCPvWMQg2+ZbGYNsLd8qlvV28m8p2UhY2
+ Pubkey 4: Aum2063ub/ErUnIUB36sK55LktGUStgcbSiaAnL1wadu +2. **Alice**: Test account for the cosmwasm package that can run in parallel with faucet without sequence conflicts
+ enlist hip relief stomach skate base shallow young switch frequent cry park
+ Address 0: cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada
+ Address 1: cosmos1hhg2rlu9jscacku2wwckws7932qqqu8x3gfgw0
+ Address 2: cosmos1xv9tklw7d82sezh9haa573wufgy59vmwe6xxe5
+ Address 3: cosmos17yg9mssjenmc3jkqth6ulcwj9cxujrxxzezwta
+ Address 4: cosmos1f7j7ryulwjfe9ljplvhtcaxa6wqgula3etktce
+ Pubkey 0: A9cXhWb8ZpqCzkA8dQCPV29KdeRLV3rUYxrkHudLbQtS
+ Pubkey 1: A4XluzvcUx0ViLF0DjYW5/noArGwpltDstoUUZo+g1b0
+ Pubkey 2: A5TKr1NKc/MKRJ7+EHDD9PlzmGaPD/di/6hzZyBwxoy5
+ Pubkey 3: A/HSABDUqMB2qDy+PA7fiuuuA+hfrco2VwwiThMiTzUx
+ Pubkey 4: A7usTiqgqfxL/WKhoephDUSCHBQlLagtwI/qTmEteTRM +3. **Bob**: Test account (unused for now)
+ remain fragile remove stamp quiz bus country dress critic mammal office need
+ Address 0: cosmos1lvrwcvrqlc5ktzp2c4t22xgkx29q3y83lktgzl
+ Address 1: cosmos1vkv9sfwaak76weyamqx0flmng2vuquxqcuqukh
+ Address 2: cosmos106jwym4s9aujcmes26myzzwqsccw09sdm0v5au
+ Address 3: cosmos1c7wpeen2uv8thayf7g8q2rgpm29clj0dgrdtzw
+ Address 4: cosmos1mjxpv9ft30wer7ma7kwfxhm42l379xutplrdk6
+ Pubkey 0: A0d/GxY+UALE+miWJP0qyq4/EayG1G6tsg24v+cbD6By
+ Pubkey 1: Agqd6njsVEQD1CR+F2aqEb8hil5NXZ06mjKgetaNC12t
+ Pubkey 2: A6e9ElvKaM0DKWh1bIdK3bgB14dyEDgIXYMA0Lbs1GoQ
+ Pubkey 3: AkAK5PQaucieWMb0+tTRY01feYI+upRnoNK556eD0Ibb
+ Pubkey 4: A5HMVEAJsupdQWItbZv5Z1xZifDixQi6tjU/hJpZY1bF +4. **Unused**: for testing account state; this account never changes balances or sequences
+ oyster design unusual machine spread century engine gravity focus cave carry slot
+ ArkCaFUJ/IH+vKBmNRCdUVl3mCAhbopk9jjW4Ko4OfRQ
+ cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u +5. **Guest**: account for manual testing
+ degree tackle suggest window test behind mesh extra cover prepare oak script
+ Am/+YV0LaeqQPu7BDJuDHV7J8y68ptkGs10YS+9s71Nq
+ cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej + +### Multisig accounts + +1. 1/5 threshold multisig of the first 5 faucet accounts
+ cosmos1v75snhly7wfndk83ud4daygh397vcmkta8rlzq +2. 2/5 threshold multisig of the first 5 faucet accounts
+ cosmos1h90ml36rcu7yegwduzgzderj2jmq49hcpfclw9 +3. 3/5 threshold multisig of the first 5 faucet accounts
+ cosmos1d2mg2euvus3tu2tprfwrfzeal4xu7kygugjxjc diff --git a/scripts/simapp44/env b/scripts/simapp44/env new file mode 100644 index 0000000000..9c1d2de639 --- /dev/null +++ b/scripts/simapp44/env @@ -0,0 +1,5 @@ +# Choose from https://hub.docker.com/r/interchainio/simapp/tags +REPOSITORY="interchainio/simapp" +VERSION="v0.44.2" +CONTAINER_NAME="simapp" +CONTAINER_NAME_SLOW="simapp-slow" diff --git a/scripts/simapp44/generate_template.sh b/scripts/simapp44/generate_template.sh new file mode 100755 index 0000000000..0ef73908fc --- /dev/null +++ b/scripts/simapp44/generate_template.sh @@ -0,0 +1,74 @@ +#!/bin/bash +set -o errexit -o nounset -o pipefail +command -v shellcheck >/dev/null && shellcheck "$0" + +gnused="$(command -v gsed || echo sed)" + +SCRIPT_DIR="$(realpath "$(dirname "$0")")" +# shellcheck source=./env +# shellcheck disable=SC1091 +source "$SCRIPT_DIR"/env + +rm -rf "$SCRIPT_DIR/template" +mkdir "$SCRIPT_DIR/template" +cp setup.sh "$SCRIPT_DIR/template/" +chmod +x "$SCRIPT_DIR/template/setup.sh" +cp run_simd.sh "$SCRIPT_DIR/template/" +chmod +x "$SCRIPT_DIR/template/run_simd.sh" + +# The usage of the accounts below is documented in README.md of this directory +docker run --rm \ + -e PASSWORD=my-secret-password \ + --mount type=bind,source="$SCRIPT_DIR/template",target=/root \ + "$REPOSITORY:$VERSION" \ + ./setup.sh \ + cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6 cosmos10dyr9899g6t0pelew4nvf4j5c3jcgv0r73qga5 cosmos1xy4yqngt0nlkdcenxymg8tenrghmek4nmqm28k cosmos142u9fgcjdlycfcez3lw8x6x5h7rfjlnfhpw2lx cosmos1hsm76p4ahyhl5yh3ve9ur49r5kemhp2r0dcjvx \ + cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada cosmos1hhg2rlu9jscacku2wwckws7932qqqu8x3gfgw0 cosmos1xv9tklw7d82sezh9haa573wufgy59vmwe6xxe5 cosmos17yg9mssjenmc3jkqth6ulcwj9cxujrxxzezwta cosmos1f7j7ryulwjfe9ljplvhtcaxa6wqgula3etktce \ + cosmos1lvrwcvrqlc5ktzp2c4t22xgkx29q3y83lktgzl cosmos1vkv9sfwaak76weyamqx0flmng2vuquxqcuqukh cosmos106jwym4s9aujcmes26myzzwqsccw09sdm0v5au cosmos1c7wpeen2uv8thayf7g8q2rgpm29clj0dgrdtzw cosmos1mjxpv9ft30wer7ma7kwfxhm42l379xutplrdk6 \ + cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u \ + cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej \ + cosmos1v75snhly7wfndk83ud4daygh397vcmkta8rlzq cosmos1h90ml36rcu7yegwduzgzderj2jmq49hcpfclw9 cosmos1d2mg2euvus3tu2tprfwrfzeal4xu7kygugjxjc + +# The ./template folder is created by the docker daemon's user (root on Linux, current user +# when using Docker Desktop on macOS), let's make it ours if needed +if [ ! -x "$SCRIPT_DIR/template/.simapp/config/gentx" ]; then + sudo chown -R "$(id -u):$(id -g)" "$SCRIPT_DIR/template" +fi + +function inline_jq() { + IN_OUT_PATH="$1" + shift + TMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/inline_jq.XXXXXXXXX") + TMP_FILE="$TMP_DIR/$(basename "$IN_OUT_PATH")" + jq "$@" <"$IN_OUT_PATH" >"$TMP_FILE" + if ! mv "$TMP_FILE" "$IN_OUT_PATH"; then + echo >&2 "Temp file '$TMP_FILE' could not be deleted. If it contains sensitive data, you might want to delete it manually." + exit 3 + fi +} + +( + cd "$SCRIPT_DIR" + # shellcheck disable=SC2016 + inline_jq "template/.simapp/config/genesis.json" --argjson ibc "$(/dev/null && shellcheck "$0" + +gnused="$(command -v gsed || echo sed)" + +SCRIPT_DIR="$(realpath "$(dirname "$0")")" + +# Create template for slow simapp +( + cd "$SCRIPT_DIR" + rm -rf template_slow + cp -R template template_slow + chmod +x "$SCRIPT_DIR/template_slow/setup.sh" + chmod +x "$SCRIPT_DIR/template_slow/run_simd.sh" + + # Slow settings in config.toml + "$gnused" -i \ + -e 's/^timeout_broadcast_tx_commit =.*$/timeout_broadcast_tx_commit = "1s"/' \ + -e 's/^timeout_commit =.*$/timeout_commit = "10s"/' \ + "template_slow/.simapp/config/config.toml" +) diff --git a/scripts/simapp44/genesis-ibc.json b/scripts/simapp44/genesis-ibc.json new file mode 100644 index 0000000000..ad57d577d4 --- /dev/null +++ b/scripts/simapp44/genesis-ibc.json @@ -0,0 +1,277 @@ +{ + "channel_genesis": { + "ack_sequences": [ + { + "channel_id": "channel-0", + "port_id": "transfer", + "sequence": "1" + } + ], + "acknowledgements": [], + "channels": [ + { + "channel_id": "channel-0", + "connection_hops": [ + "connection-0" + ], + "counterparty": { + "channel_id": "channel-0", + "port_id": "transfer" + }, + "ordering": "ORDER_UNORDERED", + "port_id": "transfer", + "state": "STATE_OPEN", + "version": "ics20-1" + } + ], + "commitments": [ + { + "channel_id": "channel-0", + "data": "hYz5Dx6o09DcSEWZR6xlJYwLgYUnLithsXMGtujic4I=", + "port_id": "transfer", + "sequence": "1" + } + ], + "next_channel_sequence": "0", + "receipts": [], + "recv_sequences": [ + { + "channel_id": "channel-0", + "port_id": "transfer", + "sequence": "1" + } + ], + "send_sequences": [ + { + "channel_id": "channel-0", + "port_id": "transfer", + "sequence": "2" + } + ] + }, + "client_genesis": { + "clients": [ + { + "client_id": "07-tendermint-0", + "client_state": { + "@type": "/ibc.lightclients.tendermint.v1.ClientState", + "allow_update_after_expiry": false, + "allow_update_after_misbehaviour": false, + "chain_id": "ibc-1", + "frozen_height": { + "revision_height": "0", + "revision_number": "0" + }, + "latest_height": { + "revision_height": "274", + "revision_number": "1" + }, + "max_clock_drift": "600s", + "proof_specs": [ + { + "inner_spec": { + "child_order": [ + 0, + 1 + ], + "child_size": 33, + "empty_child": null, + "hash": "SHA256", + "max_prefix_length": 12, + "min_prefix_length": 4 + }, + "leaf_spec": { + "hash": "SHA256", + "length": "VAR_PROTO", + "prefix": "AA==", + "prehash_key": "NO_HASH", + "prehash_value": "SHA256" + }, + "max_depth": 0, + "min_depth": 0 + }, + { + "inner_spec": { + "child_order": [ + 0, + 1 + ], + "child_size": 32, + "empty_child": null, + "hash": "SHA256", + "max_prefix_length": 1, + "min_prefix_length": 1 + }, + "leaf_spec": { + "hash": "SHA256", + "length": "VAR_PROTO", + "prefix": "AA==", + "prehash_key": "NO_HASH", + "prehash_value": "SHA256" + }, + "max_depth": 0, + "min_depth": 0 + } + ], + "trust_level": { + "denominator": "3", + "numerator": "1" + }, + "trusting_period": "1209600s", + "unbonding_period": "1814400s", + "upgrade_path": [ + "upgrade", + "upgradedIBCState" + ] + } + } + ], + "clients_consensus": [ + { + "client_id": "07-tendermint-0", + "consensus_states": [ + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "7PmRnufr0ItJMAtq3GOJEtupU93W9fh9utvgKL+2DX0=" + }, + "timestamp": "2021-01-11T11:02:53.837998Z" + }, + "height": { + "revision_height": "258", + "revision_number": "1" + } + }, + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "l4c9z7RZNTXk+tNM1BClb0MLnR5sWHdoofjPNyb2u7s=" + }, + "timestamp": "2021-01-11T11:02:56.184633Z" + }, + "height": { + "revision_height": "260", + "revision_number": "1" + } + }, + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "4Z4hxSmijgVvMR//if6aJFhYIBW6w9rYYtEqs+eIUcg=" + }, + "timestamp": "2021-01-11T11:03:02.268862Z" + }, + "height": { + "revision_height": "265", + "revision_number": "1" + } + }, + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "xFOoMvBw80wWTHqqrNpWb/Hv8+zKsTsbam8MFA9Gor4=" + }, + "timestamp": "2021-01-11T11:03:07.123191Z" + }, + "height": { + "revision_height": "269", + "revision_number": "1" + } + }, + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "0s6RbgtxLkZ51lJJCq1iZuhvSqn/DsAQs9jEMhShv3A=" + }, + "timestamp": "2021-01-11T11:03:13.075754Z" + }, + "height": { + "revision_height": "274", + "revision_number": "1" + } + } + ] + } + ], + "clients_metadata": [ + { + "client_id": "07-tendermint-0", + "client_metadata": [ + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjU4L3Byb2Nlc3NlZFRpbWU=", + "value": "FlkomBj7tMA=" + }, + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjYwL3Byb2Nlc3NlZFRpbWU=", + "value": "FlkomLBGmiA=" + }, + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjY1L3Byb2Nlc3NlZFRpbWU=", + "value": "FlkomhjrK/g=" + }, + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjY5L3Byb2Nlc3NlZFRpbWU=", + "value": "Flkomzng9Qg=" + }, + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjc0L3Byb2Nlc3NlZFRpbWU=", + "value": "FlkonJ5n5Gg=" + } + ] + } + ], + "create_localhost": false, + "next_client_sequence": "0", + "params": { + "allowed_clients": [ + "06-solomachine", + "07-tendermint" + ] + } + }, + "connection_genesis": { + "client_connection_paths": [ + { + "client_id": "07-tendermint-0", + "paths": [ + "connection-0" + ] + } + ], + "connections": [ + { + "client_id": "07-tendermint-0", + "counterparty": { + "client_id": "07-tendermint-0", + "connection_id": "connection-0", + "prefix": { + "key_prefix": "aWJj" + } + }, + "delay_period": "0", + "id": "connection-0", + "state": "STATE_OPEN", + "versions": [ + { + "features": [ + "ORDER_ORDERED", + "ORDER_UNORDERED" + ], + "identifier": "1" + } + ] + } + ], + "next_connection_sequence": "0" + } +} diff --git a/scripts/simapp44/run_simd.sh b/scripts/simapp44/run_simd.sh new file mode 100644 index 0000000000..9334906b2a --- /dev/null +++ b/scripts/simapp44/run_simd.sh @@ -0,0 +1,7 @@ +#!/bin/sh +set -o errexit -o nounset -o pipefail +command -v shellcheck >/dev/null && shellcheck "$0" + +cp -R "/template/.simapp" /root +mkdir -p /root/log +simd start --rpc.laddr tcp://0.0.0.0:26657 --trace diff --git a/scripts/simapp44/setup.sh b/scripts/simapp44/setup.sh new file mode 100644 index 0000000000..23648554da --- /dev/null +++ b/scripts/simapp44/setup.sh @@ -0,0 +1,47 @@ +#!/bin/sh +set -o errexit -o nounset +command -v shellcheck >/dev/null && shellcheck "$0" + +gnused="$(command -v gsed || echo sed)" + +PASSWORD=${PASSWORD:-1234567890} +CHAIN_ID=${CHAIN_ID:-simd-testing} +MONIKER=${MONIKER:-simd-moniker} + +# The staking and the fee tokens. The supply of the staking token is low compared to the fee token (factor 100). +STAKE=${STAKE_TOKEN:-ustake} +FEE=${FEE_TOKEN:-ucosm} + +# 2000 STAKE and 1000 COSM +START_BALANCE="2000000000$STAKE,1000000000$FEE" + +echo "Creating genesis ..." +simd init --chain-id "$CHAIN_ID" "$MONIKER" +"$gnused" -i "s/\"stake\"/\"$STAKE\"/" "$HOME"/.simapp/config/genesis.json # staking/governance token is hardcoded in config, change this + +echo "Setting up validator ..." +if ! simd keys show validator 2>/dev/null; then + echo "Validator does not yet exist. Creating it ..." + ( + echo "$PASSWORD" + echo "$PASSWORD" + ) | simd keys add validator +fi +# hardcode the validator account for this instance +echo "$PASSWORD" | simd add-genesis-account validator "$START_BALANCE" + +echo "Setting up accounts ..." +# (optionally) add a few more genesis accounts +for addr in "$@"; do + echo "$addr" + simd add-genesis-account "$addr" "$START_BALANCE" +done + +echo "Creating genesis tx ..." +SELF_DELEGATION="3000000$STAKE" # 3 STAKE (leads to a voting power of 3) +( + echo "$PASSWORD" + echo "$PASSWORD" + echo "$PASSWORD" +) | simd gentx validator "$SELF_DELEGATION" --offline --chain-id "$CHAIN_ID" --moniker="$MONIKER" +simd collect-gentxs diff --git a/scripts/simapp44/slow_start.sh b/scripts/simapp44/slow_start.sh new file mode 100755 index 0000000000..4a0f6b3b5f --- /dev/null +++ b/scripts/simapp44/slow_start.sh @@ -0,0 +1,42 @@ +#!/bin/bash +set -o errexit -o nounset -o pipefail +command -v shellcheck >/dev/null && shellcheck "$0" + +# Please keep this in sync with the Ports overview in HACKING.md +TENDERMINT_PORT_GUEST="26657" +TENDERMINT_PORT_HOST="26660" +API_PORT_GUEST="1317" +API_PORT_HOST="1320" + +SCRIPT_DIR="$(realpath "$(dirname "$0")")" +# shellcheck source=./env +# shellcheck disable=SC1091 +source "$SCRIPT_DIR"/env + +TMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/simapp_slow.XXXXXXXXX") +chmod 777 "$TMP_DIR" +echo "Using temporary dir $TMP_DIR" +SIMD_LOGFILE="$TMP_DIR/simd_slow.log" + +# Use a fresh volume for every start +docker volume rm -f simapp_slow_data + +docker run --rm \ + --name "$CONTAINER_NAME_SLOW" \ + -p "$TENDERMINT_PORT_HOST":"$TENDERMINT_PORT_GUEST" \ + -p "$API_PORT_HOST":"$API_PORT_GUEST" \ + --mount type=bind,source="$SCRIPT_DIR/template_slow",target=/template \ + --mount type=volume,source=simapp_slow_data,target=/root \ + "$REPOSITORY:$VERSION" \ + /template/run_simd.sh \ + >"$SIMD_LOGFILE" 2>&1 & + +echo "slow simd running on http://localhost:$TENDERMINT_PORT_HOST and logging into $SIMD_LOGFILE" + +if [ -n "${CI:-}" ]; then + # Give process some time to come alive. No idea why this helps. Needed for CI. + sleep 0.5 + + # Follow the logs in CI's background job + tail -f "$SIMD_LOGFILE" +fi diff --git a/scripts/simapp44/slow_stop.sh b/scripts/simapp44/slow_stop.sh new file mode 100755 index 0000000000..4ad190e4b8 --- /dev/null +++ b/scripts/simapp44/slow_stop.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -o errexit -o nounset -o pipefail +command -v shellcheck >/dev/null && shellcheck "$0" + +SCRIPT_DIR="$(realpath "$(dirname "$0")")" +# shellcheck source=./env +# shellcheck disable=SC1091 +source "$SCRIPT_DIR"/env + +echo "Killing slow simapp container..." +docker container kill "$CONTAINER_NAME_SLOW" diff --git a/scripts/simapp44/start.sh b/scripts/simapp44/start.sh new file mode 100755 index 0000000000..73d2ed02cb --- /dev/null +++ b/scripts/simapp44/start.sh @@ -0,0 +1,42 @@ +#!/bin/bash +set -o errexit -o nounset -o pipefail +command -v shellcheck >/dev/null && shellcheck "$0" + +# Please keep this in sync with the Ports overview in HACKING.md +TENDERMINT_PORT_GUEST="26657" +TENDERMINT_PORT_HOST="26658" +API_PORT_GUEST="1317" +API_PORT_HOST="1318" + +SCRIPT_DIR="$(realpath "$(dirname "$0")")" +# shellcheck source=./env +# shellcheck disable=SC1091 +source "$SCRIPT_DIR"/env + +TMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/simapp.XXXXXXXXX") +chmod 777 "$TMP_DIR" +echo "Using temporary dir $TMP_DIR" +SIMD_LOGFILE="$TMP_DIR/simd.log" + +# Use a fresh volume for every start +docker volume rm -f simapp_data + +docker run --rm \ + --name "$CONTAINER_NAME" \ + -p "$TENDERMINT_PORT_HOST":"$TENDERMINT_PORT_GUEST" \ + -p "$API_PORT_HOST":"$API_PORT_GUEST" \ + --mount type=bind,source="$SCRIPT_DIR/template",target=/template \ + --mount type=volume,source=simapp_data,target=/root \ + "$REPOSITORY:$VERSION" \ + /template/run_simd.sh \ + >"$SIMD_LOGFILE" 2>&1 & + +echo "simd running on http://localhost:$TENDERMINT_PORT_HOST and logging into $SIMD_LOGFILE" + +if [ -n "${CI:-}" ]; then + # Give process some time to come alive. No idea why this helps. Needed for CI. + sleep 0.5 + + # Follow the logs in CI's background job + tail -f "$SIMD_LOGFILE" +fi diff --git a/scripts/simapp44/stop.sh b/scripts/simapp44/stop.sh new file mode 100755 index 0000000000..9497d937c0 --- /dev/null +++ b/scripts/simapp44/stop.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -o errexit -o nounset -o pipefail +command -v shellcheck >/dev/null && shellcheck "$0" + +SCRIPT_DIR="$(realpath "$(dirname "$0")")" +# shellcheck source=./env +# shellcheck disable=SC1091 +source "$SCRIPT_DIR"/env + +echo "Killing simapp container..." +docker container kill "$CONTAINER_NAME" diff --git a/scripts/simapp44/template/.simapp/config/app.toml b/scripts/simapp44/template/.simapp/config/app.toml new file mode 100644 index 0000000000..4855c25048 --- /dev/null +++ b/scripts/simapp44/template/.simapp/config/app.toml @@ -0,0 +1,152 @@ +# This is a TOML config file. +# For more information, see https://github.com/toml-lang/toml + +############################################################################### +### Base Configuration ### +############################################################################### + +# The minimum gas prices a validator is willing to accept for processing a +# transaction. A transaction's fees must meet the minimum of any denomination +# specified in this config (e.g. 0.25token1;0.0001token2). +minimum-gas-prices = "" + +# default: the last 100 states are kept in addition to every 500th state; pruning at 10 block intervals +# nothing: all historic states will be saved, nothing will be deleted (i.e. archiving node) +# everything: all saved states will be deleted, storing only the current state; pruning at 10 block intervals +# custom: allow pruning options to be manually specified through 'pruning-keep-recent', 'pruning-keep-every', and 'pruning-interval' +pruning = "default" + +# These are applied if and only if the pruning strategy is custom. +pruning-keep-recent = "0" +pruning-keep-every = "0" +pruning-interval = "0" + +# HaltHeight contains a non-zero block height at which a node will gracefully +# halt and shutdown that can be used to assist upgrades and testing. +# +# Note: Commitment of state will be attempted on the corresponding block. +halt-height = 0 + +# HaltTime contains a non-zero minimum block time (in Unix seconds) at which +# a node will gracefully halt and shutdown that can be used to assist upgrades +# and testing. +# +# Note: Commitment of state will be attempted on the corresponding block. +halt-time = 0 + +# MinRetainBlocks defines the minimum block height offset from the current +# block being committed, such that all blocks past this offset are pruned +# from Tendermint. It is used as part of the process of determining the +# ResponseCommit.RetainHeight value during ABCI Commit. A value of 0 indicates +# that no blocks should be pruned. +# +# This configuration value is only responsible for pruning Tendermint blocks. +# It has no bearing on application state pruning which is determined by the +# "pruning-*" configurations. +# +# Note: Tendermint block pruning is dependant on this parameter in conunction +# with the unbonding (safety threshold) period, state pruning and state sync +# snapshot parameters to determine the correct minimum value of +# ResponseCommit.RetainHeight. +min-retain-blocks = 0 + +# InterBlockCache enables inter-block caching. +inter-block-cache = true + +# IndexEvents defines the set of events in the form {eventType}.{attributeKey}, +# which informs Tendermint what to index. If empty, all events will be indexed. +# +# Example: +# ["message.sender", "message.recipient"] +index-events = [] + +############################################################################### +### Telemetry Configuration ### +############################################################################### + +[telemetry] + +# Prefixed with keys to separate services. +service-name = "" + +# Enabled enables the application telemetry functionality. When enabled, +# an in-memory sink is also enabled by default. Operators may also enabled +# other sinks such as Prometheus. +enabled = false + +# Enable prefixing gauge values with hostname. +enable-hostname = false + +# Enable adding hostname to labels. +enable-hostname-label = false + +# Enable adding service to labels. +enable-service-label = false + +# PrometheusRetentionTime, when positive, enables a Prometheus metrics sink. +prometheus-retention-time = 0 + +# GlobalLabels defines a global set of name/value label tuples applied to all +# metrics emitted using the wrapper functions defined in telemetry package. +# +# Example: +# [["chain_id", "cosmoshub-1"]] +global-labels = [ +] + +############################################################################### +### API Configuration ### +############################################################################### + +[api] + +# Enable defines if the API server should be enabled. +enable = true + +# Swagger defines if swagger documentation should automatically be registered. +swagger = false + +# Address defines the API server to listen on. +address = "tcp://0.0.0.0:1317" + +# MaxOpenConnections defines the number of maximum open connections. +max-open-connections = 1000 + +# RPCReadTimeout defines the Tendermint RPC read timeout (in seconds). +rpc-read-timeout = 10 + +# RPCWriteTimeout defines the Tendermint RPC write timeout (in seconds). +rpc-write-timeout = 0 + +# RPCMaxBodyBytes defines the Tendermint maximum response body (in bytes). +rpc-max-body-bytes = 1000000 + +# EnableUnsafeCORS defines if CORS should be enabled (unsafe - use it at your own risk). +enabled-unsafe-cors = true + +############################################################################### +### gRPC Configuration ### +############################################################################### + +[grpc] + +# Enable defines if the gRPC server should be enabled. +enable = true + +# Address defines the gRPC server address to bind to. +address = "0.0.0.0:9090" + +############################################################################### +### State Sync Configuration ### +############################################################################### + +# State sync snapshots allow other nodes to rapidly join the network without replaying historical +# blocks, instead downloading and applying a snapshot of the application state at a given height. +[state-sync] + +# snapshot-interval specifies the block interval at which local state sync snapshots are +# taken (0 to disable). Must be a multiple of pruning-keep-every. +snapshot-interval = 0 + +# snapshot-keep-recent specifies the number of recent snapshots to keep and serve (0 to keep all). +snapshot-keep-recent = 2 diff --git a/scripts/simapp44/template/.simapp/config/config.toml b/scripts/simapp44/template/.simapp/config/config.toml new file mode 100644 index 0000000000..288d1d98aa --- /dev/null +++ b/scripts/simapp44/template/.simapp/config/config.toml @@ -0,0 +1,393 @@ +# This is a TOML config file. +# For more information, see https://github.com/toml-lang/toml + +# NOTE: Any path below can be absolute (e.g. "/var/myawesomeapp/data") or +# relative to the home directory (e.g. "data"). The home directory is +# "$HOME/.tendermint" by default, but could be changed via $TMHOME env variable +# or --home cmd flag. + +####################################################################### +### Main Base Config Options ### +####################################################################### + +# TCP or UNIX socket address of the ABCI application, +# or the name of an ABCI application compiled in with the Tendermint binary +proxy_app = "tcp://127.0.0.1:26658" + +# A custom human readable name for this node +moniker = "simd-moniker" + +# If this node is many blocks behind the tip of the chain, FastSync +# allows them to catchup quickly by downloading blocks in parallel +# and verifying their commits +fast_sync = true + +# Database backend: goleveldb | cleveldb | boltdb | rocksdb | badgerdb +# * goleveldb (github.com/syndtr/goleveldb - most popular implementation) +# - pure go +# - stable +# * cleveldb (uses levigo wrapper) +# - fast +# - requires gcc +# - use cleveldb build tag (go build -tags cleveldb) +# * boltdb (uses etcd's fork of bolt - github.com/etcd-io/bbolt) +# - EXPERIMENTAL +# - may be faster is some use-cases (random reads - indexer) +# - use boltdb build tag (go build -tags boltdb) +# * rocksdb (uses github.com/tecbot/gorocksdb) +# - EXPERIMENTAL +# - requires gcc +# - use rocksdb build tag (go build -tags rocksdb) +# * badgerdb (uses github.com/dgraph-io/badger) +# - EXPERIMENTAL +# - use badgerdb build tag (go build -tags badgerdb) +db_backend = "goleveldb" + +# Database directory +db_dir = "data" + +# Output level for logging, including package level options +log_level = "info" + +# Output format: 'plain' (colored text) or 'json' +log_format = "plain" + +##### additional base config options ##### + +# Path to the JSON file containing the initial validator set and other meta data +genesis_file = "config/genesis.json" + +# Path to the JSON file containing the private key to use as a validator in the consensus protocol +priv_validator_key_file = "config/priv_validator_key.json" + +# Path to the JSON file containing the last sign state of a validator +priv_validator_state_file = "data/priv_validator_state.json" + +# TCP or UNIX socket address for Tendermint to listen on for +# connections from an external PrivValidator process +priv_validator_laddr = "" + +# Path to the JSON file containing the private key to use for node authentication in the p2p protocol +node_key_file = "config/node_key.json" + +# Mechanism to connect to the ABCI application: socket | grpc +abci = "socket" + +# If true, query the ABCI app on connecting to a new peer +# so the app can decide if we should keep the connection or not +filter_peers = false + + +####################################################################### +### Advanced Configuration Options ### +####################################################################### + +####################################################### +### RPC Server Configuration Options ### +####################################################### +[rpc] + +# TCP or UNIX socket address for the RPC server to listen on +laddr = "tcp://127.0.0.1:26657" + +# A list of origins a cross-domain request can be executed from +# Default value '[]' disables cors support +# Use '["*"]' to allow any origin +cors_allowed_origins = ["*"] + +# A list of methods the client is allowed to use with cross-domain requests +cors_allowed_methods = ["HEAD", "GET", "POST", ] + +# A list of non simple headers the client is allowed to use with cross-domain requests +cors_allowed_headers = ["Origin", "Accept", "Content-Type", "X-Requested-With", "X-Server-Time", ] + +# TCP or UNIX socket address for the gRPC server to listen on +# NOTE: This server only supports /broadcast_tx_commit +grpc_laddr = "" + +# Maximum number of simultaneous connections. +# Does not include RPC (HTTP&WebSocket) connections. See max_open_connections +# If you want to accept a larger number than the default, make sure +# you increase your OS limits. +# 0 - unlimited. +# Should be < {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files} +# 1024 - 40 - 10 - 50 = 924 = ~900 +grpc_max_open_connections = 900 + +# Activate unsafe RPC commands like /dial_seeds and /unsafe_flush_mempool +unsafe = false + +# Maximum number of simultaneous connections (including WebSocket). +# Does not include gRPC connections. See grpc_max_open_connections +# If you want to accept a larger number than the default, make sure +# you increase your OS limits. +# 0 - unlimited. +# Should be < {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files} +# 1024 - 40 - 10 - 50 = 924 = ~900 +max_open_connections = 900 + +# Maximum number of unique clientIDs that can /subscribe +# If you're using /broadcast_tx_commit, set to the estimated maximum number +# of broadcast_tx_commit calls per block. +max_subscription_clients = 100 + +# Maximum number of unique queries a given client can /subscribe to +# If you're using GRPC (or Local RPC client) and /broadcast_tx_commit, set to +# the estimated # maximum number of broadcast_tx_commit calls per block. +max_subscriptions_per_client = 5 + +# How long to wait for a tx to be committed during /broadcast_tx_commit. +# WARNING: Using a value larger than 10s will result in increasing the +# global HTTP write timeout, which applies to all connections and endpoints. +# See https://github.com/tendermint/tendermint/issues/3435 +timeout_broadcast_tx_commit = "10s" + +# Maximum size of request body, in bytes +max_body_bytes = 1000000 + +# Maximum size of request header, in bytes +max_header_bytes = 1048576 + +# The path to a file containing certificate that is used to create the HTTPS server. +# Might be either absolute path or path related to Tendermint's config directory. +# If the certificate is signed by a certificate authority, +# the certFile should be the concatenation of the server's certificate, any intermediates, +# and the CA's certificate. +# NOTE: both tls_cert_file and tls_key_file must be present for Tendermint to create HTTPS server. +# Otherwise, HTTP server is run. +tls_cert_file = "" + +# The path to a file containing matching private key that is used to create the HTTPS server. +# Might be either absolute path or path related to Tendermint's config directory. +# NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server. +# Otherwise, HTTP server is run. +tls_key_file = "" + +# pprof listen address (https://golang.org/pkg/net/http/pprof) +pprof_laddr = "localhost:6060" + +####################################################### +### P2P Configuration Options ### +####################################################### +[p2p] + +# Address to listen for incoming connections +laddr = "tcp://0.0.0.0:26656" + +# Address to advertise to peers for them to dial +# If empty, will use the same port as the laddr, +# and will introspect on the listener or use UPnP +# to figure out the address. +external_address = "" + +# Comma separated list of seed nodes to connect to +seeds = "" + +# Comma separated list of nodes to keep persistent connections to +persistent_peers = "" + +# UPNP port forwarding +upnp = false + +# Path to address book +addr_book_file = "config/addrbook.json" + +# Set true for strict address routability rules +# Set false for private or local networks +addr_book_strict = true + +# Maximum number of inbound peers +max_num_inbound_peers = 40 + +# Maximum number of outbound peers to connect to, excluding persistent peers +max_num_outbound_peers = 10 + +# List of node IDs, to which a connection will be (re)established ignoring any existing limits +unconditional_peer_ids = "" + +# Maximum pause when redialing a persistent peer (if zero, exponential backoff is used) +persistent_peers_max_dial_period = "0s" + +# Time to wait before flushing messages out on the connection +flush_throttle_timeout = "100ms" + +# Maximum size of a message packet payload, in bytes +max_packet_msg_payload_size = 1024 + +# Rate at which packets can be sent, in bytes/second +send_rate = 5120000 + +# Rate at which packets can be received, in bytes/second +recv_rate = 5120000 + +# Set true to enable the peer-exchange reactor +pex = true + +# Seed mode, in which node constantly crawls the network and looks for +# peers. If another node asks it for addresses, it responds and disconnects. +# +# Does not work if the peer-exchange reactor is disabled. +seed_mode = false + +# Comma separated list of peer IDs to keep private (will not be gossiped to other peers) +private_peer_ids = "" + +# Toggle to disable guard against peers connecting from the same ip. +allow_duplicate_ip = false + +# Peer connection configuration. +handshake_timeout = "20s" +dial_timeout = "3s" + +####################################################### +### Mempool Configuration Option ### +####################################################### +[mempool] + +recheck = true +broadcast = true +wal_dir = "" + +# Maximum number of transactions in the mempool +size = 5000 + +# Limit the total size of all txs in the mempool. +# This only accounts for raw transactions (e.g. given 1MB transactions and +# max_txs_bytes=5MB, mempool will only accept 5 transactions). +max_txs_bytes = 1073741824 + +# Size of the cache (used to filter transactions we saw earlier) in transactions +cache_size = 10000 + +# Do not remove invalid transactions from the cache (default: false) +# Set to true if it's not possible for any invalid transaction to become valid +# again in the future. +keep-invalid-txs-in-cache = false + +# Maximum size of a single transaction. +# NOTE: the max size of a tx transmitted over the network is {max_tx_bytes}. +max_tx_bytes = 1048576 + +# Maximum size of a batch of transactions to send to a peer +# Including space needed by encoding (one varint per transaction). +# XXX: Unused due to https://github.com/tendermint/tendermint/issues/5796 +max_batch_bytes = 0 + +####################################################### +### State Sync Configuration Options ### +####################################################### +[statesync] +# State sync rapidly bootstraps a new node by discovering, fetching, and restoring a state machine +# snapshot from peers instead of fetching and replaying historical blocks. Requires some peers in +# the network to take and serve state machine snapshots. State sync is not attempted if the node +# has any local state (LastBlockHeight > 0). The node will have a truncated block history, +# starting from the height of the snapshot. +enable = false + +# RPC servers (comma-separated) for light client verification of the synced state machine and +# retrieval of state data for node bootstrapping. Also needs a trusted height and corresponding +# header hash obtained from a trusted source, and a period during which validators can be trusted. +# +# For Cosmos SDK-based chains, trust_period should usually be about 2/3 of the unbonding time (~2 +# weeks) during which they can be financially punished (slashed) for misbehavior. +rpc_servers = "" +trust_height = 0 +trust_hash = "" +trust_period = "168h0m0s" + +# Time to spend discovering snapshots before initiating a restore. +discovery_time = "15s" + +# Temporary directory for state sync snapshot chunks, defaults to the OS tempdir (typically /tmp). +# Will create a new, randomly named directory within, and remove it when done. +temp_dir = "" + +####################################################### +### Fast Sync Configuration Connections ### +####################################################### +[fastsync] + +# Fast Sync version to use: +# 1) "v0" (default) - the legacy fast sync implementation +# 2) "v1" - refactor of v0 version for better testability +# 2) "v2" - complete redesign of v0, optimized for testability & readability +version = "v0" + +####################################################### +### Consensus Configuration Options ### +####################################################### +[consensus] + +wal_file = "data/cs.wal/wal" + +# How long we wait for a proposal block before prevoting nil +timeout_propose = "300ms" +# How much timeout_propose increases with each round +timeout_propose_delta = "100ms" +# How long we wait after receiving +2/3 prevotes for “anything” (ie. not a single block or nil) +timeout_prevote = "300ms" +# How much the timeout_prevote increases with each round +timeout_prevote_delta = "100ms" +# How long we wait after receiving +2/3 precommits for “anything” (ie. not a single block or nil) +timeout_precommit = "300ms" +# How much the timeout_precommit increases with each round +timeout_precommit_delta = "100ms" +# How long we wait after committing a block, before starting on the new +# height (this gives us a chance to receive some more precommits, even +# though we already have +2/3). +timeout_commit = "1s" + +# How many blocks to look back to check existence of the node's consensus votes before joining consensus +# When non-zero, the node will panic upon restart +# if the same consensus key was used to sign {double_sign_check_height} last blocks. +# So, validators should stop the state machine, wait for some blocks, and then restart the state machine to avoid panic. +double_sign_check_height = 0 + +# Make progress as soon as we have all the precommits (as if TimeoutCommit = 0) +skip_timeout_commit = false + +# EmptyBlocks mode and possible interval between empty blocks +create_empty_blocks = true +create_empty_blocks_interval = "0s" + +# Reactor sleep duration parameters +peer_gossip_sleep_duration = "100ms" +peer_query_maj23_sleep_duration = "2s" + +####################################################### +### Transaction Indexer Configuration Options ### +####################################################### +[tx_index] + +# What indexer to use for transactions +# +# The application will set which txs to index. In some cases a node operator will be able +# to decide which txs to index based on configuration set in the application. +# +# Options: +# 1) "null" +# 2) "kv" (default) - the simplest possible indexer, backed by key-value storage (defaults to levelDB; see DBBackend). +# - When "kv" is chosen "tx.height" and "tx.hash" will always be indexed. +indexer = "kv" + +####################################################### +### Instrumentation Configuration Options ### +####################################################### +[instrumentation] + +# When true, Prometheus metrics are served under /metrics on +# PrometheusListenAddr. +# Check out the documentation for the list of available metrics. +prometheus = false + +# Address to listen for Prometheus collector(s) connections +prometheus_listen_addr = ":26660" + +# Maximum number of simultaneous connections. +# If you want to accept a larger number than the default, make sure +# you increase your OS limits. +# 0 - unlimited. +max_open_connections = 3 + +# Instrumentation namespace +namespace = "tendermint" diff --git a/scripts/simapp44/template/.simapp/config/genesis.json b/scripts/simapp44/template/.simapp/config/genesis.json new file mode 100644 index 0000000000..e9c0fb4f17 --- /dev/null +++ b/scripts/simapp44/template/.simapp/config/genesis.json @@ -0,0 +1,925 @@ +{ + "app_hash": "", + "app_state": { + "auth": { + "accounts": [ + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1urk9gy7cfws0ak9x5nu7lx4un9n6gqkry79679", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos10dyr9899g6t0pelew4nvf4j5c3jcgv0r73qga5", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1xy4yqngt0nlkdcenxymg8tenrghmek4nmqm28k", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos142u9fgcjdlycfcez3lw8x6x5h7rfjlnfhpw2lx", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1hsm76p4ahyhl5yh3ve9ur49r5kemhp2r0dcjvx", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1hhg2rlu9jscacku2wwckws7932qqqu8x3gfgw0", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1xv9tklw7d82sezh9haa573wufgy59vmwe6xxe5", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos17yg9mssjenmc3jkqth6ulcwj9cxujrxxzezwta", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1f7j7ryulwjfe9ljplvhtcaxa6wqgula3etktce", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1lvrwcvrqlc5ktzp2c4t22xgkx29q3y83lktgzl", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1vkv9sfwaak76weyamqx0flmng2vuquxqcuqukh", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos106jwym4s9aujcmes26myzzwqsccw09sdm0v5au", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1c7wpeen2uv8thayf7g8q2rgpm29clj0dgrdtzw", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1mjxpv9ft30wer7ma7kwfxhm42l379xutplrdk6", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1v75snhly7wfndk83ud4daygh397vcmkta8rlzq", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1h90ml36rcu7yegwduzgzderj2jmq49hcpfclw9", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1d2mg2euvus3tu2tprfwrfzeal4xu7kygugjxjc", + "pub_key": null, + "sequence": "0" + } + ], + "params": { + "max_memo_characters": "256", + "sig_verify_cost_ed25519": "590", + "sig_verify_cost_secp256k1": "1000", + "tx_sig_limit": "7", + "tx_size_cost_per_byte": "10" + } + }, + "bank": { + "balances": [ + { + "address": "cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1xy4yqngt0nlkdcenxymg8tenrghmek4nmqm28k", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1xv9tklw7d82sezh9haa573wufgy59vmwe6xxe5", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1f7j7ryulwjfe9ljplvhtcaxa6wqgula3etktce", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1vkv9sfwaak76weyamqx0flmng2vuquxqcuqukh", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1v75snhly7wfndk83ud4daygh397vcmkta8rlzq", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1d2mg2euvus3tu2tprfwrfzeal4xu7kygugjxjc", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos10dyr9899g6t0pelew4nvf4j5c3jcgv0r73qga5", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos106jwym4s9aujcmes26myzzwqsccw09sdm0v5au", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos142u9fgcjdlycfcez3lw8x6x5h7rfjlnfhpw2lx", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1h90ml36rcu7yegwduzgzderj2jmq49hcpfclw9", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1hsm76p4ahyhl5yh3ve9ur49r5kemhp2r0dcjvx", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1hhg2rlu9jscacku2wwckws7932qqqu8x3gfgw0", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1c7wpeen2uv8thayf7g8q2rgpm29clj0dgrdtzw", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1mjxpv9ft30wer7ma7kwfxhm42l379xutplrdk6", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1urk9gy7cfws0ak9x5nu7lx4un9n6gqkry79679", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos17yg9mssjenmc3jkqth6ulcwj9cxujrxxzezwta", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1lvrwcvrqlc5ktzp2c4t22xgkx29q3y83lktgzl", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + } + ], + "denom_metadata": [], + "params": { + "default_send_enabled": true, + "send_enabled": [] + }, + "supply": [ + { + "amount": "21000000000", + "denom": "ucosm" + }, + { + "amount": "42000000000", + "denom": "ustake" + } + ] + }, + "capability": { + "index": "1", + "owners": [] + }, + "crisis": { + "constant_fee": { + "amount": "1000", + "denom": "ustake" + } + }, + "distribution": { + "delegator_starting_infos": [], + "delegator_withdraw_infos": [], + "fee_pool": { + "community_pool": [] + }, + "outstanding_rewards": [], + "params": { + "base_proposer_reward": "0.010000000000000000", + "bonus_proposer_reward": "0.040000000000000000", + "community_tax": "0.020000000000000000", + "withdraw_addr_enabled": true + }, + "previous_proposer": "", + "validator_accumulated_commissions": [], + "validator_current_rewards": [], + "validator_historical_rewards": [], + "validator_slash_events": [] + }, + "evidence": { + "evidence": [] + }, + "genutil": { + "gen_txs": [ + { + "auth_info": { + "fee": { + "amount": [], + "gas_limit": "200000", + "granter": "", + "payer": "" + }, + "signer_infos": [ + { + "mode_info": { + "single": { + "mode": "SIGN_MODE_DIRECT" + } + }, + "public_key": { + "@type": "/cosmos.crypto.secp256k1.PubKey", + "key": "AtDcuH4cX1eaxZrJ5shheLG3tXPAoV4awoIZmNQtQxmf" + }, + "sequence": "0" + } + ] + }, + "body": { + "extension_options": [], + "memo": "ad7cdbcfe545eaaaea99378bc70bf22eef3401a4@172.17.0.2:26656", + "messages": [ + { + "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", + "commission": { + "max_change_rate": "0.010000000000000000", + "max_rate": "0.200000000000000000", + "rate": "0.100000000000000000" + }, + "delegator_address": "cosmos1urk9gy7cfws0ak9x5nu7lx4un9n6gqkry79679", + "description": { + "details": "", + "identity": "", + "moniker": "simd-moniker", + "security_contact": "", + "website": "" + }, + "min_self_delegation": "1", + "pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "cUJRDwHyty8ZMO3ctSqPvezcOP2SYp1SDCHd1/SpAuU=" + }, + "validator_address": "cosmosvaloper1urk9gy7cfws0ak9x5nu7lx4un9n6gqkrp230jk", + "value": { + "amount": "3000000", + "denom": "ustake" + } + } + ], + "non_critical_extension_options": [], + "timeout_height": "0" + }, + "signatures": [ + "XCvdrkjv/gl819FCH0rnfDiBm6xIc3Kj1EiN3c3tI/MSekAEEBqNT4FuFFtjVOgs5WT6RZTY75h1JxvHmMfm4g==" + ] + } + ] + }, + "gov": { + "deposit_params": { + "max_deposit_period": "172800s", + "min_deposit": [ + { + "amount": "10000000", + "denom": "ustake" + } + ] + }, + "deposits": [], + "proposals": [], + "starting_proposal_id": "1", + "tally_params": { + "quorum": "0.334000000000000000", + "threshold": "0.500000000000000000", + "veto_threshold": "0.334000000000000000" + }, + "votes": [], + "voting_params": { + "voting_period": "172800s" + } + }, + "ibc": { + "channel_genesis": { + "ack_sequences": [ + { + "channel_id": "channel-0", + "port_id": "transfer", + "sequence": "1" + } + ], + "acknowledgements": [], + "channels": [ + { + "channel_id": "channel-0", + "connection_hops": [ + "connection-0" + ], + "counterparty": { + "channel_id": "channel-0", + "port_id": "transfer" + }, + "ordering": "ORDER_UNORDERED", + "port_id": "transfer", + "state": "STATE_OPEN", + "version": "ics20-1" + } + ], + "commitments": [ + { + "channel_id": "channel-0", + "data": "hYz5Dx6o09DcSEWZR6xlJYwLgYUnLithsXMGtujic4I=", + "port_id": "transfer", + "sequence": "1" + } + ], + "next_channel_sequence": "0", + "receipts": [], + "recv_sequences": [ + { + "channel_id": "channel-0", + "port_id": "transfer", + "sequence": "1" + } + ], + "send_sequences": [ + { + "channel_id": "channel-0", + "port_id": "transfer", + "sequence": "2" + } + ] + }, + "client_genesis": { + "clients": [ + { + "client_id": "07-tendermint-0", + "client_state": { + "@type": "/ibc.lightclients.tendermint.v1.ClientState", + "allow_update_after_expiry": false, + "allow_update_after_misbehaviour": false, + "chain_id": "ibc-1", + "frozen_height": { + "revision_height": "0", + "revision_number": "0" + }, + "latest_height": { + "revision_height": "274", + "revision_number": "1" + }, + "max_clock_drift": "600s", + "proof_specs": [ + { + "inner_spec": { + "child_order": [ + 0, + 1 + ], + "child_size": 33, + "empty_child": null, + "hash": "SHA256", + "max_prefix_length": 12, + "min_prefix_length": 4 + }, + "leaf_spec": { + "hash": "SHA256", + "length": "VAR_PROTO", + "prefix": "AA==", + "prehash_key": "NO_HASH", + "prehash_value": "SHA256" + }, + "max_depth": 0, + "min_depth": 0 + }, + { + "inner_spec": { + "child_order": [ + 0, + 1 + ], + "child_size": 32, + "empty_child": null, + "hash": "SHA256", + "max_prefix_length": 1, + "min_prefix_length": 1 + }, + "leaf_spec": { + "hash": "SHA256", + "length": "VAR_PROTO", + "prefix": "AA==", + "prehash_key": "NO_HASH", + "prehash_value": "SHA256" + }, + "max_depth": 0, + "min_depth": 0 + } + ], + "trust_level": { + "denominator": "3", + "numerator": "1" + }, + "trusting_period": "1209600s", + "unbonding_period": "1814400s", + "upgrade_path": [ + "upgrade", + "upgradedIBCState" + ] + } + } + ], + "clients_consensus": [ + { + "client_id": "07-tendermint-0", + "consensus_states": [ + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "7PmRnufr0ItJMAtq3GOJEtupU93W9fh9utvgKL+2DX0=" + }, + "timestamp": "2021-01-11T11:02:53.837998Z" + }, + "height": { + "revision_height": "258", + "revision_number": "1" + } + }, + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "l4c9z7RZNTXk+tNM1BClb0MLnR5sWHdoofjPNyb2u7s=" + }, + "timestamp": "2021-01-11T11:02:56.184633Z" + }, + "height": { + "revision_height": "260", + "revision_number": "1" + } + }, + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "4Z4hxSmijgVvMR//if6aJFhYIBW6w9rYYtEqs+eIUcg=" + }, + "timestamp": "2021-01-11T11:03:02.268862Z" + }, + "height": { + "revision_height": "265", + "revision_number": "1" + } + }, + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "xFOoMvBw80wWTHqqrNpWb/Hv8+zKsTsbam8MFA9Gor4=" + }, + "timestamp": "2021-01-11T11:03:07.123191Z" + }, + "height": { + "revision_height": "269", + "revision_number": "1" + } + }, + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "0s6RbgtxLkZ51lJJCq1iZuhvSqn/DsAQs9jEMhShv3A=" + }, + "timestamp": "2021-01-11T11:03:13.075754Z" + }, + "height": { + "revision_height": "274", + "revision_number": "1" + } + } + ] + } + ], + "clients_metadata": [ + { + "client_id": "07-tendermint-0", + "client_metadata": [ + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjU4L3Byb2Nlc3NlZFRpbWU=", + "value": "FlkomBj7tMA=" + }, + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjYwL3Byb2Nlc3NlZFRpbWU=", + "value": "FlkomLBGmiA=" + }, + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjY1L3Byb2Nlc3NlZFRpbWU=", + "value": "FlkomhjrK/g=" + }, + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjY5L3Byb2Nlc3NlZFRpbWU=", + "value": "Flkomzng9Qg=" + }, + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjc0L3Byb2Nlc3NlZFRpbWU=", + "value": "FlkonJ5n5Gg=" + } + ] + } + ], + "create_localhost": false, + "next_client_sequence": "0", + "params": { + "allowed_clients": [ + "06-solomachine", + "07-tendermint" + ] + } + }, + "connection_genesis": { + "client_connection_paths": [ + { + "client_id": "07-tendermint-0", + "paths": [ + "connection-0" + ] + } + ], + "connections": [ + { + "client_id": "07-tendermint-0", + "counterparty": { + "client_id": "07-tendermint-0", + "connection_id": "connection-0", + "prefix": { + "key_prefix": "aWJj" + } + }, + "delay_period": "0", + "id": "connection-0", + "state": "STATE_OPEN", + "versions": [ + { + "features": [ + "ORDER_ORDERED", + "ORDER_UNORDERED" + ], + "identifier": "1" + } + ] + } + ], + "next_connection_sequence": "0" + } + }, + "mint": { + "minter": { + "annual_provisions": "0.000000000000000000", + "inflation": "0.130000000000000000" + }, + "params": { + "blocks_per_year": "6311520", + "goal_bonded": "0.670000000000000000", + "inflation_max": "0.200000000000000000", + "inflation_min": "0.070000000000000000", + "inflation_rate_change": "0.130000000000000000", + "mint_denom": "ustake" + } + }, + "params": null, + "slashing": { + "missed_blocks": [], + "params": { + "downtime_jail_duration": "600s", + "min_signed_per_window": "0.500000000000000000", + "signed_blocks_window": "100", + "slash_fraction_double_sign": "0.050000000000000000", + "slash_fraction_downtime": "0.010000000000000000" + }, + "signing_infos": [] + }, + "staking": { + "delegations": [], + "exported": false, + "last_total_power": "0", + "last_validator_powers": [], + "params": { + "bond_denom": "ustake", + "historical_entries": 10000, + "max_entries": 7, + "max_validators": 100, + "unbonding_time": "1814400s" + }, + "redelegations": [], + "unbonding_delegations": [], + "validators": [] + }, + "transfer": { + "denom_traces": [], + "params": { + "receive_enabled": true, + "send_enabled": true + }, + "port_id": "transfer" + }, + "upgrade": {}, + "vesting": {} + }, + "chain_id": "simd-testing", + "consensus_params": { + "block": { + "max_bytes": "22020096", + "max_gas": "-1", + "time_iota_ms": "1000" + }, + "evidence": { + "max_age_duration": "172800000000000", + "max_age_num_blocks": "100000", + "max_bytes": "1048576" + }, + "validator": { + "pub_key_types": [ + "ed25519" + ] + }, + "version": {} + }, + "genesis_time": "2021-07-27T15:14:14.2361126Z", + "initial_height": "1" +} diff --git a/scripts/simapp44/template/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json b/scripts/simapp44/template/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json new file mode 100644 index 0000000000..88c7c6131a --- /dev/null +++ b/scripts/simapp44/template/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json @@ -0,0 +1 @@ +{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgCreateValidator","description":{"moniker":"simd-moniker","identity":"","website":"","security_contact":"","details":""},"commission":{"rate":"0.100000000000000000","max_rate":"0.200000000000000000","max_change_rate":"0.010000000000000000"},"min_self_delegation":"1","delegator_address":"cosmos1urk9gy7cfws0ak9x5nu7lx4un9n6gqkry79679","validator_address":"cosmosvaloper1urk9gy7cfws0ak9x5nu7lx4un9n6gqkrp230jk","pubkey":{"@type":"/cosmos.crypto.ed25519.PubKey","key":"cUJRDwHyty8ZMO3ctSqPvezcOP2SYp1SDCHd1/SpAuU="},"value":{"denom":"ustake","amount":"3000000"}}],"memo":"ad7cdbcfe545eaaaea99378bc70bf22eef3401a4@172.17.0.2:26656","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDcuH4cX1eaxZrJ5shheLG3tXPAoV4awoIZmNQtQxmf"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"0"}],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":["XCvdrkjv/gl819FCH0rnfDiBm6xIc3Kj1EiN3c3tI/MSekAEEBqNT4FuFFtjVOgs5WT6RZTY75h1JxvHmMfm4g=="]} diff --git a/scripts/simapp44/template/.simapp/config/node_key.json b/scripts/simapp44/template/.simapp/config/node_key.json new file mode 100644 index 0000000000..8eb3f72f56 --- /dev/null +++ b/scripts/simapp44/template/.simapp/config/node_key.json @@ -0,0 +1 @@ +{"priv_key":{"type":"tendermint/PrivKeyEd25519","value":"VJWbZaD0jAkAh4VBLS9I2FDFwAKhbCYjs/ycVEDRNW6teVZgaxLnZ+mW3sMhvdIKY99DaD55h9L1MXkx8WsQ+g=="}} \ No newline at end of file diff --git a/scripts/simapp44/template/.simapp/config/priv_validator_key.json b/scripts/simapp44/template/.simapp/config/priv_validator_key.json new file mode 100644 index 0000000000..cbb56b7a87 --- /dev/null +++ b/scripts/simapp44/template/.simapp/config/priv_validator_key.json @@ -0,0 +1,11 @@ +{ + "address": "30AF3420A11D7357C54EB716B209D4C3707D1BF3", + "pub_key": { + "type": "tendermint/PubKeyEd25519", + "value": "cUJRDwHyty8ZMO3ctSqPvezcOP2SYp1SDCHd1/SpAuU=" + }, + "priv_key": { + "type": "tendermint/PrivKeyEd25519", + "value": "H/y/XQLnbLKzR3Ey6VCCw0tu87VbA3GO4goA+PPz7VRxQlEPAfK3Lxkw7dy1Ko+97Nw4/ZJinVIMId3X9KkC5Q==" + } +} \ No newline at end of file diff --git a/scripts/simapp44/template/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address b/scripts/simapp44/template/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address new file mode 100644 index 0000000000..e79a087bb7 --- /dev/null +++ b/scripts/simapp44/template/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address @@ -0,0 +1 @@ +eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMS0wNy0yNyAxNToxNDoxNC42ODc0MDc3ICswMDAwIFVUQyBtPSswLjIyNTIwMDMwMSIsImVuYyI6IkEyNTZHQ00iLCJwMmMiOjgxOTIsInAycyI6IjgtN0l6TXhWUmhrMGlBM2kifQ.9c48lG_ZZDrQ5esu0Tw45oacS4V22SLEIChtqW14z17rJtZuS7XYuw.aVNkJGer3Dv--lIR.ulhj65STVqG5ciBObgXc-oyYndKuOzvp03PH9wnh3WTg77SSjwxpEkIMwd9DpkcfBSL0qBvN7aXLAFEG59ydL5GamUTOU94xFISet6dKjxSWbkBmq4_zWmUbe0Qas4eVvPsb6U5w0PIyVTkZwAHDeMtdaEXthBU1JE4biOoi0uICCJkFyqO01q5nrbN7d45EE8vijdPusxfn-abtvSvXLUTcr50nt_w5_YbxsSZnG52Ty2TiV_fjn_Wq.Aj72rrWgBh9fHj1CIoJ7lA \ No newline at end of file diff --git a/scripts/simapp44/template/.simapp/keyhash b/scripts/simapp44/template/.simapp/keyhash new file mode 100755 index 0000000000..80f4992a5b --- /dev/null +++ b/scripts/simapp44/template/.simapp/keyhash @@ -0,0 +1 @@ +$2a$10$PUzdQ9WON1SgvDtewSKIUerA9LxW51qGoHj2EGZ5TT6oKfHXU7hcK \ No newline at end of file diff --git a/scripts/simapp44/template/.simapp/validator.info b/scripts/simapp44/template/.simapp/validator.info new file mode 100644 index 0000000000..5c2daa91b7 --- /dev/null +++ b/scripts/simapp44/template/.simapp/validator.info @@ -0,0 +1 @@ +eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMS0wNy0yNyAxNToxNDoxNC42Njk0MzQ3ICswMDAwIFVUQyBtPSswLjIwNzI1MDUwMSIsImVuYyI6IkEyNTZHQ00iLCJwMmMiOjgxOTIsInAycyI6IjB4YU1QYjR4RVVHS29JeW4ifQ.jLK0jNefYAdHELJr3MPhajfSFJfTAre0yBzqnvS1rhzxou2ZMyMJ3w.4h0CQ8NAekW0lshZ.Cusi2aIkUmPlVKdkzjK7SpgrN8xrFcm_L3mf1zTNFfS1GEKHIjMd7a-c7XVOM06hXF_MuIvdCrlHRsWAzX9HgSPQ_T4aQDx8dzdj6iRxv0rwAKjSVLMpuqT3ASSENuPkP21niOuPCnKohVYACq0hpsrYoEt0wMSqnUF7Smz7-hbYmp4EleCEcvwas4qs2LM_hZWvAEFnNdDGFWeyGrNTXXbwXBpCFnWXH-F9FHVtexlwo0OCTJscWFazn8LVGOepO4mQRnsQQ4XMG6WL18Yclz7TmPi3WKkOHOdyhydu7KX_tAISy-jVpMX41kb5OLABuxXYSM6Q1wnyY4SUHvExJ1b41lSER11tIopHbh_Au6ifRRtD.kbUtqwd5x8QH52nHddfwcA \ No newline at end of file diff --git a/scripts/simapp44/template/run_simd.sh b/scripts/simapp44/template/run_simd.sh new file mode 100755 index 0000000000..9334906b2a --- /dev/null +++ b/scripts/simapp44/template/run_simd.sh @@ -0,0 +1,7 @@ +#!/bin/sh +set -o errexit -o nounset -o pipefail +command -v shellcheck >/dev/null && shellcheck "$0" + +cp -R "/template/.simapp" /root +mkdir -p /root/log +simd start --rpc.laddr tcp://0.0.0.0:26657 --trace diff --git a/scripts/simapp44/template/setup.sh b/scripts/simapp44/template/setup.sh new file mode 100755 index 0000000000..23648554da --- /dev/null +++ b/scripts/simapp44/template/setup.sh @@ -0,0 +1,47 @@ +#!/bin/sh +set -o errexit -o nounset +command -v shellcheck >/dev/null && shellcheck "$0" + +gnused="$(command -v gsed || echo sed)" + +PASSWORD=${PASSWORD:-1234567890} +CHAIN_ID=${CHAIN_ID:-simd-testing} +MONIKER=${MONIKER:-simd-moniker} + +# The staking and the fee tokens. The supply of the staking token is low compared to the fee token (factor 100). +STAKE=${STAKE_TOKEN:-ustake} +FEE=${FEE_TOKEN:-ucosm} + +# 2000 STAKE and 1000 COSM +START_BALANCE="2000000000$STAKE,1000000000$FEE" + +echo "Creating genesis ..." +simd init --chain-id "$CHAIN_ID" "$MONIKER" +"$gnused" -i "s/\"stake\"/\"$STAKE\"/" "$HOME"/.simapp/config/genesis.json # staking/governance token is hardcoded in config, change this + +echo "Setting up validator ..." +if ! simd keys show validator 2>/dev/null; then + echo "Validator does not yet exist. Creating it ..." + ( + echo "$PASSWORD" + echo "$PASSWORD" + ) | simd keys add validator +fi +# hardcode the validator account for this instance +echo "$PASSWORD" | simd add-genesis-account validator "$START_BALANCE" + +echo "Setting up accounts ..." +# (optionally) add a few more genesis accounts +for addr in "$@"; do + echo "$addr" + simd add-genesis-account "$addr" "$START_BALANCE" +done + +echo "Creating genesis tx ..." +SELF_DELEGATION="3000000$STAKE" # 3 STAKE (leads to a voting power of 3) +( + echo "$PASSWORD" + echo "$PASSWORD" + echo "$PASSWORD" +) | simd gentx validator "$SELF_DELEGATION" --offline --chain-id "$CHAIN_ID" --moniker="$MONIKER" +simd collect-gentxs diff --git a/scripts/simapp44/template_slow/.simapp/config/app.toml b/scripts/simapp44/template_slow/.simapp/config/app.toml new file mode 100644 index 0000000000..4855c25048 --- /dev/null +++ b/scripts/simapp44/template_slow/.simapp/config/app.toml @@ -0,0 +1,152 @@ +# This is a TOML config file. +# For more information, see https://github.com/toml-lang/toml + +############################################################################### +### Base Configuration ### +############################################################################### + +# The minimum gas prices a validator is willing to accept for processing a +# transaction. A transaction's fees must meet the minimum of any denomination +# specified in this config (e.g. 0.25token1;0.0001token2). +minimum-gas-prices = "" + +# default: the last 100 states are kept in addition to every 500th state; pruning at 10 block intervals +# nothing: all historic states will be saved, nothing will be deleted (i.e. archiving node) +# everything: all saved states will be deleted, storing only the current state; pruning at 10 block intervals +# custom: allow pruning options to be manually specified through 'pruning-keep-recent', 'pruning-keep-every', and 'pruning-interval' +pruning = "default" + +# These are applied if and only if the pruning strategy is custom. +pruning-keep-recent = "0" +pruning-keep-every = "0" +pruning-interval = "0" + +# HaltHeight contains a non-zero block height at which a node will gracefully +# halt and shutdown that can be used to assist upgrades and testing. +# +# Note: Commitment of state will be attempted on the corresponding block. +halt-height = 0 + +# HaltTime contains a non-zero minimum block time (in Unix seconds) at which +# a node will gracefully halt and shutdown that can be used to assist upgrades +# and testing. +# +# Note: Commitment of state will be attempted on the corresponding block. +halt-time = 0 + +# MinRetainBlocks defines the minimum block height offset from the current +# block being committed, such that all blocks past this offset are pruned +# from Tendermint. It is used as part of the process of determining the +# ResponseCommit.RetainHeight value during ABCI Commit. A value of 0 indicates +# that no blocks should be pruned. +# +# This configuration value is only responsible for pruning Tendermint blocks. +# It has no bearing on application state pruning which is determined by the +# "pruning-*" configurations. +# +# Note: Tendermint block pruning is dependant on this parameter in conunction +# with the unbonding (safety threshold) period, state pruning and state sync +# snapshot parameters to determine the correct minimum value of +# ResponseCommit.RetainHeight. +min-retain-blocks = 0 + +# InterBlockCache enables inter-block caching. +inter-block-cache = true + +# IndexEvents defines the set of events in the form {eventType}.{attributeKey}, +# which informs Tendermint what to index. If empty, all events will be indexed. +# +# Example: +# ["message.sender", "message.recipient"] +index-events = [] + +############################################################################### +### Telemetry Configuration ### +############################################################################### + +[telemetry] + +# Prefixed with keys to separate services. +service-name = "" + +# Enabled enables the application telemetry functionality. When enabled, +# an in-memory sink is also enabled by default. Operators may also enabled +# other sinks such as Prometheus. +enabled = false + +# Enable prefixing gauge values with hostname. +enable-hostname = false + +# Enable adding hostname to labels. +enable-hostname-label = false + +# Enable adding service to labels. +enable-service-label = false + +# PrometheusRetentionTime, when positive, enables a Prometheus metrics sink. +prometheus-retention-time = 0 + +# GlobalLabels defines a global set of name/value label tuples applied to all +# metrics emitted using the wrapper functions defined in telemetry package. +# +# Example: +# [["chain_id", "cosmoshub-1"]] +global-labels = [ +] + +############################################################################### +### API Configuration ### +############################################################################### + +[api] + +# Enable defines if the API server should be enabled. +enable = true + +# Swagger defines if swagger documentation should automatically be registered. +swagger = false + +# Address defines the API server to listen on. +address = "tcp://0.0.0.0:1317" + +# MaxOpenConnections defines the number of maximum open connections. +max-open-connections = 1000 + +# RPCReadTimeout defines the Tendermint RPC read timeout (in seconds). +rpc-read-timeout = 10 + +# RPCWriteTimeout defines the Tendermint RPC write timeout (in seconds). +rpc-write-timeout = 0 + +# RPCMaxBodyBytes defines the Tendermint maximum response body (in bytes). +rpc-max-body-bytes = 1000000 + +# EnableUnsafeCORS defines if CORS should be enabled (unsafe - use it at your own risk). +enabled-unsafe-cors = true + +############################################################################### +### gRPC Configuration ### +############################################################################### + +[grpc] + +# Enable defines if the gRPC server should be enabled. +enable = true + +# Address defines the gRPC server address to bind to. +address = "0.0.0.0:9090" + +############################################################################### +### State Sync Configuration ### +############################################################################### + +# State sync snapshots allow other nodes to rapidly join the network without replaying historical +# blocks, instead downloading and applying a snapshot of the application state at a given height. +[state-sync] + +# snapshot-interval specifies the block interval at which local state sync snapshots are +# taken (0 to disable). Must be a multiple of pruning-keep-every. +snapshot-interval = 0 + +# snapshot-keep-recent specifies the number of recent snapshots to keep and serve (0 to keep all). +snapshot-keep-recent = 2 diff --git a/scripts/simapp44/template_slow/.simapp/config/config.toml b/scripts/simapp44/template_slow/.simapp/config/config.toml new file mode 100644 index 0000000000..f00db58fec --- /dev/null +++ b/scripts/simapp44/template_slow/.simapp/config/config.toml @@ -0,0 +1,393 @@ +# This is a TOML config file. +# For more information, see https://github.com/toml-lang/toml + +# NOTE: Any path below can be absolute (e.g. "/var/myawesomeapp/data") or +# relative to the home directory (e.g. "data"). The home directory is +# "$HOME/.tendermint" by default, but could be changed via $TMHOME env variable +# or --home cmd flag. + +####################################################################### +### Main Base Config Options ### +####################################################################### + +# TCP or UNIX socket address of the ABCI application, +# or the name of an ABCI application compiled in with the Tendermint binary +proxy_app = "tcp://127.0.0.1:26658" + +# A custom human readable name for this node +moniker = "simd-moniker" + +# If this node is many blocks behind the tip of the chain, FastSync +# allows them to catchup quickly by downloading blocks in parallel +# and verifying their commits +fast_sync = true + +# Database backend: goleveldb | cleveldb | boltdb | rocksdb | badgerdb +# * goleveldb (github.com/syndtr/goleveldb - most popular implementation) +# - pure go +# - stable +# * cleveldb (uses levigo wrapper) +# - fast +# - requires gcc +# - use cleveldb build tag (go build -tags cleveldb) +# * boltdb (uses etcd's fork of bolt - github.com/etcd-io/bbolt) +# - EXPERIMENTAL +# - may be faster is some use-cases (random reads - indexer) +# - use boltdb build tag (go build -tags boltdb) +# * rocksdb (uses github.com/tecbot/gorocksdb) +# - EXPERIMENTAL +# - requires gcc +# - use rocksdb build tag (go build -tags rocksdb) +# * badgerdb (uses github.com/dgraph-io/badger) +# - EXPERIMENTAL +# - use badgerdb build tag (go build -tags badgerdb) +db_backend = "goleveldb" + +# Database directory +db_dir = "data" + +# Output level for logging, including package level options +log_level = "info" + +# Output format: 'plain' (colored text) or 'json' +log_format = "plain" + +##### additional base config options ##### + +# Path to the JSON file containing the initial validator set and other meta data +genesis_file = "config/genesis.json" + +# Path to the JSON file containing the private key to use as a validator in the consensus protocol +priv_validator_key_file = "config/priv_validator_key.json" + +# Path to the JSON file containing the last sign state of a validator +priv_validator_state_file = "data/priv_validator_state.json" + +# TCP or UNIX socket address for Tendermint to listen on for +# connections from an external PrivValidator process +priv_validator_laddr = "" + +# Path to the JSON file containing the private key to use for node authentication in the p2p protocol +node_key_file = "config/node_key.json" + +# Mechanism to connect to the ABCI application: socket | grpc +abci = "socket" + +# If true, query the ABCI app on connecting to a new peer +# so the app can decide if we should keep the connection or not +filter_peers = false + + +####################################################################### +### Advanced Configuration Options ### +####################################################################### + +####################################################### +### RPC Server Configuration Options ### +####################################################### +[rpc] + +# TCP or UNIX socket address for the RPC server to listen on +laddr = "tcp://127.0.0.1:26657" + +# A list of origins a cross-domain request can be executed from +# Default value '[]' disables cors support +# Use '["*"]' to allow any origin +cors_allowed_origins = ["*"] + +# A list of methods the client is allowed to use with cross-domain requests +cors_allowed_methods = ["HEAD", "GET", "POST", ] + +# A list of non simple headers the client is allowed to use with cross-domain requests +cors_allowed_headers = ["Origin", "Accept", "Content-Type", "X-Requested-With", "X-Server-Time", ] + +# TCP or UNIX socket address for the gRPC server to listen on +# NOTE: This server only supports /broadcast_tx_commit +grpc_laddr = "" + +# Maximum number of simultaneous connections. +# Does not include RPC (HTTP&WebSocket) connections. See max_open_connections +# If you want to accept a larger number than the default, make sure +# you increase your OS limits. +# 0 - unlimited. +# Should be < {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files} +# 1024 - 40 - 10 - 50 = 924 = ~900 +grpc_max_open_connections = 900 + +# Activate unsafe RPC commands like /dial_seeds and /unsafe_flush_mempool +unsafe = false + +# Maximum number of simultaneous connections (including WebSocket). +# Does not include gRPC connections. See grpc_max_open_connections +# If you want to accept a larger number than the default, make sure +# you increase your OS limits. +# 0 - unlimited. +# Should be < {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files} +# 1024 - 40 - 10 - 50 = 924 = ~900 +max_open_connections = 900 + +# Maximum number of unique clientIDs that can /subscribe +# If you're using /broadcast_tx_commit, set to the estimated maximum number +# of broadcast_tx_commit calls per block. +max_subscription_clients = 100 + +# Maximum number of unique queries a given client can /subscribe to +# If you're using GRPC (or Local RPC client) and /broadcast_tx_commit, set to +# the estimated # maximum number of broadcast_tx_commit calls per block. +max_subscriptions_per_client = 5 + +# How long to wait for a tx to be committed during /broadcast_tx_commit. +# WARNING: Using a value larger than 10s will result in increasing the +# global HTTP write timeout, which applies to all connections and endpoints. +# See https://github.com/tendermint/tendermint/issues/3435 +timeout_broadcast_tx_commit = "1s" + +# Maximum size of request body, in bytes +max_body_bytes = 1000000 + +# Maximum size of request header, in bytes +max_header_bytes = 1048576 + +# The path to a file containing certificate that is used to create the HTTPS server. +# Might be either absolute path or path related to Tendermint's config directory. +# If the certificate is signed by a certificate authority, +# the certFile should be the concatenation of the server's certificate, any intermediates, +# and the CA's certificate. +# NOTE: both tls_cert_file and tls_key_file must be present for Tendermint to create HTTPS server. +# Otherwise, HTTP server is run. +tls_cert_file = "" + +# The path to a file containing matching private key that is used to create the HTTPS server. +# Might be either absolute path or path related to Tendermint's config directory. +# NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server. +# Otherwise, HTTP server is run. +tls_key_file = "" + +# pprof listen address (https://golang.org/pkg/net/http/pprof) +pprof_laddr = "localhost:6060" + +####################################################### +### P2P Configuration Options ### +####################################################### +[p2p] + +# Address to listen for incoming connections +laddr = "tcp://0.0.0.0:26656" + +# Address to advertise to peers for them to dial +# If empty, will use the same port as the laddr, +# and will introspect on the listener or use UPnP +# to figure out the address. +external_address = "" + +# Comma separated list of seed nodes to connect to +seeds = "" + +# Comma separated list of nodes to keep persistent connections to +persistent_peers = "" + +# UPNP port forwarding +upnp = false + +# Path to address book +addr_book_file = "config/addrbook.json" + +# Set true for strict address routability rules +# Set false for private or local networks +addr_book_strict = true + +# Maximum number of inbound peers +max_num_inbound_peers = 40 + +# Maximum number of outbound peers to connect to, excluding persistent peers +max_num_outbound_peers = 10 + +# List of node IDs, to which a connection will be (re)established ignoring any existing limits +unconditional_peer_ids = "" + +# Maximum pause when redialing a persistent peer (if zero, exponential backoff is used) +persistent_peers_max_dial_period = "0s" + +# Time to wait before flushing messages out on the connection +flush_throttle_timeout = "100ms" + +# Maximum size of a message packet payload, in bytes +max_packet_msg_payload_size = 1024 + +# Rate at which packets can be sent, in bytes/second +send_rate = 5120000 + +# Rate at which packets can be received, in bytes/second +recv_rate = 5120000 + +# Set true to enable the peer-exchange reactor +pex = true + +# Seed mode, in which node constantly crawls the network and looks for +# peers. If another node asks it for addresses, it responds and disconnects. +# +# Does not work if the peer-exchange reactor is disabled. +seed_mode = false + +# Comma separated list of peer IDs to keep private (will not be gossiped to other peers) +private_peer_ids = "" + +# Toggle to disable guard against peers connecting from the same ip. +allow_duplicate_ip = false + +# Peer connection configuration. +handshake_timeout = "20s" +dial_timeout = "3s" + +####################################################### +### Mempool Configuration Option ### +####################################################### +[mempool] + +recheck = true +broadcast = true +wal_dir = "" + +# Maximum number of transactions in the mempool +size = 5000 + +# Limit the total size of all txs in the mempool. +# This only accounts for raw transactions (e.g. given 1MB transactions and +# max_txs_bytes=5MB, mempool will only accept 5 transactions). +max_txs_bytes = 1073741824 + +# Size of the cache (used to filter transactions we saw earlier) in transactions +cache_size = 10000 + +# Do not remove invalid transactions from the cache (default: false) +# Set to true if it's not possible for any invalid transaction to become valid +# again in the future. +keep-invalid-txs-in-cache = false + +# Maximum size of a single transaction. +# NOTE: the max size of a tx transmitted over the network is {max_tx_bytes}. +max_tx_bytes = 1048576 + +# Maximum size of a batch of transactions to send to a peer +# Including space needed by encoding (one varint per transaction). +# XXX: Unused due to https://github.com/tendermint/tendermint/issues/5796 +max_batch_bytes = 0 + +####################################################### +### State Sync Configuration Options ### +####################################################### +[statesync] +# State sync rapidly bootstraps a new node by discovering, fetching, and restoring a state machine +# snapshot from peers instead of fetching and replaying historical blocks. Requires some peers in +# the network to take and serve state machine snapshots. State sync is not attempted if the node +# has any local state (LastBlockHeight > 0). The node will have a truncated block history, +# starting from the height of the snapshot. +enable = false + +# RPC servers (comma-separated) for light client verification of the synced state machine and +# retrieval of state data for node bootstrapping. Also needs a trusted height and corresponding +# header hash obtained from a trusted source, and a period during which validators can be trusted. +# +# For Cosmos SDK-based chains, trust_period should usually be about 2/3 of the unbonding time (~2 +# weeks) during which they can be financially punished (slashed) for misbehavior. +rpc_servers = "" +trust_height = 0 +trust_hash = "" +trust_period = "168h0m0s" + +# Time to spend discovering snapshots before initiating a restore. +discovery_time = "15s" + +# Temporary directory for state sync snapshot chunks, defaults to the OS tempdir (typically /tmp). +# Will create a new, randomly named directory within, and remove it when done. +temp_dir = "" + +####################################################### +### Fast Sync Configuration Connections ### +####################################################### +[fastsync] + +# Fast Sync version to use: +# 1) "v0" (default) - the legacy fast sync implementation +# 2) "v1" - refactor of v0 version for better testability +# 2) "v2" - complete redesign of v0, optimized for testability & readability +version = "v0" + +####################################################### +### Consensus Configuration Options ### +####################################################### +[consensus] + +wal_file = "data/cs.wal/wal" + +# How long we wait for a proposal block before prevoting nil +timeout_propose = "300ms" +# How much timeout_propose increases with each round +timeout_propose_delta = "100ms" +# How long we wait after receiving +2/3 prevotes for “anything” (ie. not a single block or nil) +timeout_prevote = "300ms" +# How much the timeout_prevote increases with each round +timeout_prevote_delta = "100ms" +# How long we wait after receiving +2/3 precommits for “anything” (ie. not a single block or nil) +timeout_precommit = "300ms" +# How much the timeout_precommit increases with each round +timeout_precommit_delta = "100ms" +# How long we wait after committing a block, before starting on the new +# height (this gives us a chance to receive some more precommits, even +# though we already have +2/3). +timeout_commit = "10s" + +# How many blocks to look back to check existence of the node's consensus votes before joining consensus +# When non-zero, the node will panic upon restart +# if the same consensus key was used to sign {double_sign_check_height} last blocks. +# So, validators should stop the state machine, wait for some blocks, and then restart the state machine to avoid panic. +double_sign_check_height = 0 + +# Make progress as soon as we have all the precommits (as if TimeoutCommit = 0) +skip_timeout_commit = false + +# EmptyBlocks mode and possible interval between empty blocks +create_empty_blocks = true +create_empty_blocks_interval = "0s" + +# Reactor sleep duration parameters +peer_gossip_sleep_duration = "100ms" +peer_query_maj23_sleep_duration = "2s" + +####################################################### +### Transaction Indexer Configuration Options ### +####################################################### +[tx_index] + +# What indexer to use for transactions +# +# The application will set which txs to index. In some cases a node operator will be able +# to decide which txs to index based on configuration set in the application. +# +# Options: +# 1) "null" +# 2) "kv" (default) - the simplest possible indexer, backed by key-value storage (defaults to levelDB; see DBBackend). +# - When "kv" is chosen "tx.height" and "tx.hash" will always be indexed. +indexer = "kv" + +####################################################### +### Instrumentation Configuration Options ### +####################################################### +[instrumentation] + +# When true, Prometheus metrics are served under /metrics on +# PrometheusListenAddr. +# Check out the documentation for the list of available metrics. +prometheus = false + +# Address to listen for Prometheus collector(s) connections +prometheus_listen_addr = ":26660" + +# Maximum number of simultaneous connections. +# If you want to accept a larger number than the default, make sure +# you increase your OS limits. +# 0 - unlimited. +max_open_connections = 3 + +# Instrumentation namespace +namespace = "tendermint" diff --git a/scripts/simapp44/template_slow/.simapp/config/genesis.json b/scripts/simapp44/template_slow/.simapp/config/genesis.json new file mode 100644 index 0000000000..e9c0fb4f17 --- /dev/null +++ b/scripts/simapp44/template_slow/.simapp/config/genesis.json @@ -0,0 +1,925 @@ +{ + "app_hash": "", + "app_state": { + "auth": { + "accounts": [ + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1urk9gy7cfws0ak9x5nu7lx4un9n6gqkry79679", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos10dyr9899g6t0pelew4nvf4j5c3jcgv0r73qga5", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1xy4yqngt0nlkdcenxymg8tenrghmek4nmqm28k", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos142u9fgcjdlycfcez3lw8x6x5h7rfjlnfhpw2lx", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1hsm76p4ahyhl5yh3ve9ur49r5kemhp2r0dcjvx", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1hhg2rlu9jscacku2wwckws7932qqqu8x3gfgw0", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1xv9tklw7d82sezh9haa573wufgy59vmwe6xxe5", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos17yg9mssjenmc3jkqth6ulcwj9cxujrxxzezwta", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1f7j7ryulwjfe9ljplvhtcaxa6wqgula3etktce", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1lvrwcvrqlc5ktzp2c4t22xgkx29q3y83lktgzl", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1vkv9sfwaak76weyamqx0flmng2vuquxqcuqukh", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos106jwym4s9aujcmes26myzzwqsccw09sdm0v5au", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1c7wpeen2uv8thayf7g8q2rgpm29clj0dgrdtzw", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1mjxpv9ft30wer7ma7kwfxhm42l379xutplrdk6", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1v75snhly7wfndk83ud4daygh397vcmkta8rlzq", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1h90ml36rcu7yegwduzgzderj2jmq49hcpfclw9", + "pub_key": null, + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "account_number": "0", + "address": "cosmos1d2mg2euvus3tu2tprfwrfzeal4xu7kygugjxjc", + "pub_key": null, + "sequence": "0" + } + ], + "params": { + "max_memo_characters": "256", + "sig_verify_cost_ed25519": "590", + "sig_verify_cost_secp256k1": "1000", + "tx_sig_limit": "7", + "tx_size_cost_per_byte": "10" + } + }, + "bank": { + "balances": [ + { + "address": "cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1xy4yqngt0nlkdcenxymg8tenrghmek4nmqm28k", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1xv9tklw7d82sezh9haa573wufgy59vmwe6xxe5", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1f7j7ryulwjfe9ljplvhtcaxa6wqgula3etktce", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1vkv9sfwaak76weyamqx0flmng2vuquxqcuqukh", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1v75snhly7wfndk83ud4daygh397vcmkta8rlzq", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1d2mg2euvus3tu2tprfwrfzeal4xu7kygugjxjc", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos10dyr9899g6t0pelew4nvf4j5c3jcgv0r73qga5", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos106jwym4s9aujcmes26myzzwqsccw09sdm0v5au", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos142u9fgcjdlycfcez3lw8x6x5h7rfjlnfhpw2lx", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1h90ml36rcu7yegwduzgzderj2jmq49hcpfclw9", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1hsm76p4ahyhl5yh3ve9ur49r5kemhp2r0dcjvx", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1hhg2rlu9jscacku2wwckws7932qqqu8x3gfgw0", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1c7wpeen2uv8thayf7g8q2rgpm29clj0dgrdtzw", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1mjxpv9ft30wer7ma7kwfxhm42l379xutplrdk6", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1urk9gy7cfws0ak9x5nu7lx4un9n6gqkry79679", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos17yg9mssjenmc3jkqth6ulcwj9cxujrxxzezwta", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + }, + { + "address": "cosmos1lvrwcvrqlc5ktzp2c4t22xgkx29q3y83lktgzl", + "coins": [ + { + "amount": "1000000000", + "denom": "ucosm" + }, + { + "amount": "2000000000", + "denom": "ustake" + } + ] + } + ], + "denom_metadata": [], + "params": { + "default_send_enabled": true, + "send_enabled": [] + }, + "supply": [ + { + "amount": "21000000000", + "denom": "ucosm" + }, + { + "amount": "42000000000", + "denom": "ustake" + } + ] + }, + "capability": { + "index": "1", + "owners": [] + }, + "crisis": { + "constant_fee": { + "amount": "1000", + "denom": "ustake" + } + }, + "distribution": { + "delegator_starting_infos": [], + "delegator_withdraw_infos": [], + "fee_pool": { + "community_pool": [] + }, + "outstanding_rewards": [], + "params": { + "base_proposer_reward": "0.010000000000000000", + "bonus_proposer_reward": "0.040000000000000000", + "community_tax": "0.020000000000000000", + "withdraw_addr_enabled": true + }, + "previous_proposer": "", + "validator_accumulated_commissions": [], + "validator_current_rewards": [], + "validator_historical_rewards": [], + "validator_slash_events": [] + }, + "evidence": { + "evidence": [] + }, + "genutil": { + "gen_txs": [ + { + "auth_info": { + "fee": { + "amount": [], + "gas_limit": "200000", + "granter": "", + "payer": "" + }, + "signer_infos": [ + { + "mode_info": { + "single": { + "mode": "SIGN_MODE_DIRECT" + } + }, + "public_key": { + "@type": "/cosmos.crypto.secp256k1.PubKey", + "key": "AtDcuH4cX1eaxZrJ5shheLG3tXPAoV4awoIZmNQtQxmf" + }, + "sequence": "0" + } + ] + }, + "body": { + "extension_options": [], + "memo": "ad7cdbcfe545eaaaea99378bc70bf22eef3401a4@172.17.0.2:26656", + "messages": [ + { + "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", + "commission": { + "max_change_rate": "0.010000000000000000", + "max_rate": "0.200000000000000000", + "rate": "0.100000000000000000" + }, + "delegator_address": "cosmos1urk9gy7cfws0ak9x5nu7lx4un9n6gqkry79679", + "description": { + "details": "", + "identity": "", + "moniker": "simd-moniker", + "security_contact": "", + "website": "" + }, + "min_self_delegation": "1", + "pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "cUJRDwHyty8ZMO3ctSqPvezcOP2SYp1SDCHd1/SpAuU=" + }, + "validator_address": "cosmosvaloper1urk9gy7cfws0ak9x5nu7lx4un9n6gqkrp230jk", + "value": { + "amount": "3000000", + "denom": "ustake" + } + } + ], + "non_critical_extension_options": [], + "timeout_height": "0" + }, + "signatures": [ + "XCvdrkjv/gl819FCH0rnfDiBm6xIc3Kj1EiN3c3tI/MSekAEEBqNT4FuFFtjVOgs5WT6RZTY75h1JxvHmMfm4g==" + ] + } + ] + }, + "gov": { + "deposit_params": { + "max_deposit_period": "172800s", + "min_deposit": [ + { + "amount": "10000000", + "denom": "ustake" + } + ] + }, + "deposits": [], + "proposals": [], + "starting_proposal_id": "1", + "tally_params": { + "quorum": "0.334000000000000000", + "threshold": "0.500000000000000000", + "veto_threshold": "0.334000000000000000" + }, + "votes": [], + "voting_params": { + "voting_period": "172800s" + } + }, + "ibc": { + "channel_genesis": { + "ack_sequences": [ + { + "channel_id": "channel-0", + "port_id": "transfer", + "sequence": "1" + } + ], + "acknowledgements": [], + "channels": [ + { + "channel_id": "channel-0", + "connection_hops": [ + "connection-0" + ], + "counterparty": { + "channel_id": "channel-0", + "port_id": "transfer" + }, + "ordering": "ORDER_UNORDERED", + "port_id": "transfer", + "state": "STATE_OPEN", + "version": "ics20-1" + } + ], + "commitments": [ + { + "channel_id": "channel-0", + "data": "hYz5Dx6o09DcSEWZR6xlJYwLgYUnLithsXMGtujic4I=", + "port_id": "transfer", + "sequence": "1" + } + ], + "next_channel_sequence": "0", + "receipts": [], + "recv_sequences": [ + { + "channel_id": "channel-0", + "port_id": "transfer", + "sequence": "1" + } + ], + "send_sequences": [ + { + "channel_id": "channel-0", + "port_id": "transfer", + "sequence": "2" + } + ] + }, + "client_genesis": { + "clients": [ + { + "client_id": "07-tendermint-0", + "client_state": { + "@type": "/ibc.lightclients.tendermint.v1.ClientState", + "allow_update_after_expiry": false, + "allow_update_after_misbehaviour": false, + "chain_id": "ibc-1", + "frozen_height": { + "revision_height": "0", + "revision_number": "0" + }, + "latest_height": { + "revision_height": "274", + "revision_number": "1" + }, + "max_clock_drift": "600s", + "proof_specs": [ + { + "inner_spec": { + "child_order": [ + 0, + 1 + ], + "child_size": 33, + "empty_child": null, + "hash": "SHA256", + "max_prefix_length": 12, + "min_prefix_length": 4 + }, + "leaf_spec": { + "hash": "SHA256", + "length": "VAR_PROTO", + "prefix": "AA==", + "prehash_key": "NO_HASH", + "prehash_value": "SHA256" + }, + "max_depth": 0, + "min_depth": 0 + }, + { + "inner_spec": { + "child_order": [ + 0, + 1 + ], + "child_size": 32, + "empty_child": null, + "hash": "SHA256", + "max_prefix_length": 1, + "min_prefix_length": 1 + }, + "leaf_spec": { + "hash": "SHA256", + "length": "VAR_PROTO", + "prefix": "AA==", + "prehash_key": "NO_HASH", + "prehash_value": "SHA256" + }, + "max_depth": 0, + "min_depth": 0 + } + ], + "trust_level": { + "denominator": "3", + "numerator": "1" + }, + "trusting_period": "1209600s", + "unbonding_period": "1814400s", + "upgrade_path": [ + "upgrade", + "upgradedIBCState" + ] + } + } + ], + "clients_consensus": [ + { + "client_id": "07-tendermint-0", + "consensus_states": [ + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "7PmRnufr0ItJMAtq3GOJEtupU93W9fh9utvgKL+2DX0=" + }, + "timestamp": "2021-01-11T11:02:53.837998Z" + }, + "height": { + "revision_height": "258", + "revision_number": "1" + } + }, + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "l4c9z7RZNTXk+tNM1BClb0MLnR5sWHdoofjPNyb2u7s=" + }, + "timestamp": "2021-01-11T11:02:56.184633Z" + }, + "height": { + "revision_height": "260", + "revision_number": "1" + } + }, + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "4Z4hxSmijgVvMR//if6aJFhYIBW6w9rYYtEqs+eIUcg=" + }, + "timestamp": "2021-01-11T11:03:02.268862Z" + }, + "height": { + "revision_height": "265", + "revision_number": "1" + } + }, + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "xFOoMvBw80wWTHqqrNpWb/Hv8+zKsTsbam8MFA9Gor4=" + }, + "timestamp": "2021-01-11T11:03:07.123191Z" + }, + "height": { + "revision_height": "269", + "revision_number": "1" + } + }, + { + "consensus_state": { + "@type": "/ibc.lightclients.tendermint.v1.ConsensusState", + "next_validators_hash": "3491D4ECEB5323868C3AB846A12E923151E12BC4CE69F84DE9E8B7AB1CD15075", + "root": { + "hash": "0s6RbgtxLkZ51lJJCq1iZuhvSqn/DsAQs9jEMhShv3A=" + }, + "timestamp": "2021-01-11T11:03:13.075754Z" + }, + "height": { + "revision_height": "274", + "revision_number": "1" + } + } + ] + } + ], + "clients_metadata": [ + { + "client_id": "07-tendermint-0", + "client_metadata": [ + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjU4L3Byb2Nlc3NlZFRpbWU=", + "value": "FlkomBj7tMA=" + }, + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjYwL3Byb2Nlc3NlZFRpbWU=", + "value": "FlkomLBGmiA=" + }, + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjY1L3Byb2Nlc3NlZFRpbWU=", + "value": "FlkomhjrK/g=" + }, + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjY5L3Byb2Nlc3NlZFRpbWU=", + "value": "Flkomzng9Qg=" + }, + { + "key": "Y29uc2Vuc3VzU3RhdGVzLzEtMjc0L3Byb2Nlc3NlZFRpbWU=", + "value": "FlkonJ5n5Gg=" + } + ] + } + ], + "create_localhost": false, + "next_client_sequence": "0", + "params": { + "allowed_clients": [ + "06-solomachine", + "07-tendermint" + ] + } + }, + "connection_genesis": { + "client_connection_paths": [ + { + "client_id": "07-tendermint-0", + "paths": [ + "connection-0" + ] + } + ], + "connections": [ + { + "client_id": "07-tendermint-0", + "counterparty": { + "client_id": "07-tendermint-0", + "connection_id": "connection-0", + "prefix": { + "key_prefix": "aWJj" + } + }, + "delay_period": "0", + "id": "connection-0", + "state": "STATE_OPEN", + "versions": [ + { + "features": [ + "ORDER_ORDERED", + "ORDER_UNORDERED" + ], + "identifier": "1" + } + ] + } + ], + "next_connection_sequence": "0" + } + }, + "mint": { + "minter": { + "annual_provisions": "0.000000000000000000", + "inflation": "0.130000000000000000" + }, + "params": { + "blocks_per_year": "6311520", + "goal_bonded": "0.670000000000000000", + "inflation_max": "0.200000000000000000", + "inflation_min": "0.070000000000000000", + "inflation_rate_change": "0.130000000000000000", + "mint_denom": "ustake" + } + }, + "params": null, + "slashing": { + "missed_blocks": [], + "params": { + "downtime_jail_duration": "600s", + "min_signed_per_window": "0.500000000000000000", + "signed_blocks_window": "100", + "slash_fraction_double_sign": "0.050000000000000000", + "slash_fraction_downtime": "0.010000000000000000" + }, + "signing_infos": [] + }, + "staking": { + "delegations": [], + "exported": false, + "last_total_power": "0", + "last_validator_powers": [], + "params": { + "bond_denom": "ustake", + "historical_entries": 10000, + "max_entries": 7, + "max_validators": 100, + "unbonding_time": "1814400s" + }, + "redelegations": [], + "unbonding_delegations": [], + "validators": [] + }, + "transfer": { + "denom_traces": [], + "params": { + "receive_enabled": true, + "send_enabled": true + }, + "port_id": "transfer" + }, + "upgrade": {}, + "vesting": {} + }, + "chain_id": "simd-testing", + "consensus_params": { + "block": { + "max_bytes": "22020096", + "max_gas": "-1", + "time_iota_ms": "1000" + }, + "evidence": { + "max_age_duration": "172800000000000", + "max_age_num_blocks": "100000", + "max_bytes": "1048576" + }, + "validator": { + "pub_key_types": [ + "ed25519" + ] + }, + "version": {} + }, + "genesis_time": "2021-07-27T15:14:14.2361126Z", + "initial_height": "1" +} diff --git a/scripts/simapp44/template_slow/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json b/scripts/simapp44/template_slow/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json new file mode 100644 index 0000000000..88c7c6131a --- /dev/null +++ b/scripts/simapp44/template_slow/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json @@ -0,0 +1 @@ +{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgCreateValidator","description":{"moniker":"simd-moniker","identity":"","website":"","security_contact":"","details":""},"commission":{"rate":"0.100000000000000000","max_rate":"0.200000000000000000","max_change_rate":"0.010000000000000000"},"min_self_delegation":"1","delegator_address":"cosmos1urk9gy7cfws0ak9x5nu7lx4un9n6gqkry79679","validator_address":"cosmosvaloper1urk9gy7cfws0ak9x5nu7lx4un9n6gqkrp230jk","pubkey":{"@type":"/cosmos.crypto.ed25519.PubKey","key":"cUJRDwHyty8ZMO3ctSqPvezcOP2SYp1SDCHd1/SpAuU="},"value":{"denom":"ustake","amount":"3000000"}}],"memo":"ad7cdbcfe545eaaaea99378bc70bf22eef3401a4@172.17.0.2:26656","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AtDcuH4cX1eaxZrJ5shheLG3tXPAoV4awoIZmNQtQxmf"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"0"}],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":["XCvdrkjv/gl819FCH0rnfDiBm6xIc3Kj1EiN3c3tI/MSekAEEBqNT4FuFFtjVOgs5WT6RZTY75h1JxvHmMfm4g=="]} diff --git a/scripts/simapp44/template_slow/.simapp/config/node_key.json b/scripts/simapp44/template_slow/.simapp/config/node_key.json new file mode 100644 index 0000000000..8eb3f72f56 --- /dev/null +++ b/scripts/simapp44/template_slow/.simapp/config/node_key.json @@ -0,0 +1 @@ +{"priv_key":{"type":"tendermint/PrivKeyEd25519","value":"VJWbZaD0jAkAh4VBLS9I2FDFwAKhbCYjs/ycVEDRNW6teVZgaxLnZ+mW3sMhvdIKY99DaD55h9L1MXkx8WsQ+g=="}} \ No newline at end of file diff --git a/scripts/simapp44/template_slow/.simapp/config/priv_validator_key.json b/scripts/simapp44/template_slow/.simapp/config/priv_validator_key.json new file mode 100644 index 0000000000..cbb56b7a87 --- /dev/null +++ b/scripts/simapp44/template_slow/.simapp/config/priv_validator_key.json @@ -0,0 +1,11 @@ +{ + "address": "30AF3420A11D7357C54EB716B209D4C3707D1BF3", + "pub_key": { + "type": "tendermint/PubKeyEd25519", + "value": "cUJRDwHyty8ZMO3ctSqPvezcOP2SYp1SDCHd1/SpAuU=" + }, + "priv_key": { + "type": "tendermint/PrivKeyEd25519", + "value": "H/y/XQLnbLKzR3Ey6VCCw0tu87VbA3GO4goA+PPz7VRxQlEPAfK3Lxkw7dy1Ko+97Nw4/ZJinVIMId3X9KkC5Q==" + } +} \ No newline at end of file diff --git a/scripts/simapp44/template_slow/.simapp/data/priv_validator_state.json b/scripts/simapp44/template_slow/.simapp/data/priv_validator_state.json new file mode 100644 index 0000000000..48f3b67e3f --- /dev/null +++ b/scripts/simapp44/template_slow/.simapp/data/priv_validator_state.json @@ -0,0 +1,5 @@ +{ + "height": "0", + "round": 0, + "step": 0 +} \ No newline at end of file diff --git a/scripts/simapp44/template_slow/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address b/scripts/simapp44/template_slow/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address new file mode 100644 index 0000000000..e79a087bb7 --- /dev/null +++ b/scripts/simapp44/template_slow/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address @@ -0,0 +1 @@ +eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMS0wNy0yNyAxNToxNDoxNC42ODc0MDc3ICswMDAwIFVUQyBtPSswLjIyNTIwMDMwMSIsImVuYyI6IkEyNTZHQ00iLCJwMmMiOjgxOTIsInAycyI6IjgtN0l6TXhWUmhrMGlBM2kifQ.9c48lG_ZZDrQ5esu0Tw45oacS4V22SLEIChtqW14z17rJtZuS7XYuw.aVNkJGer3Dv--lIR.ulhj65STVqG5ciBObgXc-oyYndKuOzvp03PH9wnh3WTg77SSjwxpEkIMwd9DpkcfBSL0qBvN7aXLAFEG59ydL5GamUTOU94xFISet6dKjxSWbkBmq4_zWmUbe0Qas4eVvPsb6U5w0PIyVTkZwAHDeMtdaEXthBU1JE4biOoi0uICCJkFyqO01q5nrbN7d45EE8vijdPusxfn-abtvSvXLUTcr50nt_w5_YbxsSZnG52Ty2TiV_fjn_Wq.Aj72rrWgBh9fHj1CIoJ7lA \ No newline at end of file diff --git a/scripts/simapp44/template_slow/.simapp/keyhash b/scripts/simapp44/template_slow/.simapp/keyhash new file mode 100755 index 0000000000..80f4992a5b --- /dev/null +++ b/scripts/simapp44/template_slow/.simapp/keyhash @@ -0,0 +1 @@ +$2a$10$PUzdQ9WON1SgvDtewSKIUerA9LxW51qGoHj2EGZ5TT6oKfHXU7hcK \ No newline at end of file diff --git a/scripts/simapp44/template_slow/.simapp/validator.info b/scripts/simapp44/template_slow/.simapp/validator.info new file mode 100644 index 0000000000..5c2daa91b7 --- /dev/null +++ b/scripts/simapp44/template_slow/.simapp/validator.info @@ -0,0 +1 @@ +eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMS0wNy0yNyAxNToxNDoxNC42Njk0MzQ3ICswMDAwIFVUQyBtPSswLjIwNzI1MDUwMSIsImVuYyI6IkEyNTZHQ00iLCJwMmMiOjgxOTIsInAycyI6IjB4YU1QYjR4RVVHS29JeW4ifQ.jLK0jNefYAdHELJr3MPhajfSFJfTAre0yBzqnvS1rhzxou2ZMyMJ3w.4h0CQ8NAekW0lshZ.Cusi2aIkUmPlVKdkzjK7SpgrN8xrFcm_L3mf1zTNFfS1GEKHIjMd7a-c7XVOM06hXF_MuIvdCrlHRsWAzX9HgSPQ_T4aQDx8dzdj6iRxv0rwAKjSVLMpuqT3ASSENuPkP21niOuPCnKohVYACq0hpsrYoEt0wMSqnUF7Smz7-hbYmp4EleCEcvwas4qs2LM_hZWvAEFnNdDGFWeyGrNTXXbwXBpCFnWXH-F9FHVtexlwo0OCTJscWFazn8LVGOepO4mQRnsQQ4XMG6WL18Yclz7TmPi3WKkOHOdyhydu7KX_tAISy-jVpMX41kb5OLABuxXYSM6Q1wnyY4SUHvExJ1b41lSER11tIopHbh_Au6ifRRtD.kbUtqwd5x8QH52nHddfwcA \ No newline at end of file diff --git a/scripts/simapp44/template_slow/run_simd.sh b/scripts/simapp44/template_slow/run_simd.sh new file mode 100755 index 0000000000..9334906b2a --- /dev/null +++ b/scripts/simapp44/template_slow/run_simd.sh @@ -0,0 +1,7 @@ +#!/bin/sh +set -o errexit -o nounset -o pipefail +command -v shellcheck >/dev/null && shellcheck "$0" + +cp -R "/template/.simapp" /root +mkdir -p /root/log +simd start --rpc.laddr tcp://0.0.0.0:26657 --trace diff --git a/scripts/simapp44/template_slow/setup.sh b/scripts/simapp44/template_slow/setup.sh new file mode 100755 index 0000000000..23648554da --- /dev/null +++ b/scripts/simapp44/template_slow/setup.sh @@ -0,0 +1,47 @@ +#!/bin/sh +set -o errexit -o nounset +command -v shellcheck >/dev/null && shellcheck "$0" + +gnused="$(command -v gsed || echo sed)" + +PASSWORD=${PASSWORD:-1234567890} +CHAIN_ID=${CHAIN_ID:-simd-testing} +MONIKER=${MONIKER:-simd-moniker} + +# The staking and the fee tokens. The supply of the staking token is low compared to the fee token (factor 100). +STAKE=${STAKE_TOKEN:-ustake} +FEE=${FEE_TOKEN:-ucosm} + +# 2000 STAKE and 1000 COSM +START_BALANCE="2000000000$STAKE,1000000000$FEE" + +echo "Creating genesis ..." +simd init --chain-id "$CHAIN_ID" "$MONIKER" +"$gnused" -i "s/\"stake\"/\"$STAKE\"/" "$HOME"/.simapp/config/genesis.json # staking/governance token is hardcoded in config, change this + +echo "Setting up validator ..." +if ! simd keys show validator 2>/dev/null; then + echo "Validator does not yet exist. Creating it ..." + ( + echo "$PASSWORD" + echo "$PASSWORD" + ) | simd keys add validator +fi +# hardcode the validator account for this instance +echo "$PASSWORD" | simd add-genesis-account validator "$START_BALANCE" + +echo "Setting up accounts ..." +# (optionally) add a few more genesis accounts +for addr in "$@"; do + echo "$addr" + simd add-genesis-account "$addr" "$START_BALANCE" +done + +echo "Creating genesis tx ..." +SELF_DELEGATION="3000000$STAKE" # 3 STAKE (leads to a voting power of 3) +( + echo "$PASSWORD" + echo "$PASSWORD" + echo "$PASSWORD" +) | simd gentx validator "$SELF_DELEGATION" --offline --chain-id "$CHAIN_ID" --moniker="$MONIKER" +simd collect-gentxs From 04c13cb880126a1597f56fe527cd6bd8a1a85a56 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Wed, 20 Oct 2021 15:14:06 +0200 Subject: [PATCH 02/11] Open GRPC port --- HACKING.md | 1 + scripts/simapp/start.sh | 3 +++ scripts/simapp44/start.sh | 3 +++ 3 files changed, 7 insertions(+) diff --git a/HACKING.md b/HACKING.md index ebead73d99..3b29adbd02 100644 --- a/HACKING.md +++ b/HACKING.md @@ -102,6 +102,7 @@ order to avoid conflicts. Here is an overview of the ports used: | 1319 | wasmd LCD API | Manual Stargate debugging | | 4444 | socketserver | @cosmjs/sockets tests | | 4445 | socketserver slow | @cosmjs/sockets tests | +| 9090 | simapp gRPC | Manual Stargate debugging | | 11133 | Tendermint 0.33 RPC | @cosmjs/tendermint-rpc tests | | 11134 | Tendermint 0.34 RPC | @cosmjs/tendermint-rpc tests | | 26658 | simapp Tendermint RPC | Stargate client tests | diff --git a/scripts/simapp/start.sh b/scripts/simapp/start.sh index 73d2ed02cb..5c1791cd2c 100755 --- a/scripts/simapp/start.sh +++ b/scripts/simapp/start.sh @@ -7,6 +7,8 @@ TENDERMINT_PORT_GUEST="26657" TENDERMINT_PORT_HOST="26658" API_PORT_GUEST="1317" API_PORT_HOST="1318" +GRPC_PORT_GUEST="9090" +GRPC_PORT_HOST="9090" SCRIPT_DIR="$(realpath "$(dirname "$0")")" # shellcheck source=./env @@ -25,6 +27,7 @@ docker run --rm \ --name "$CONTAINER_NAME" \ -p "$TENDERMINT_PORT_HOST":"$TENDERMINT_PORT_GUEST" \ -p "$API_PORT_HOST":"$API_PORT_GUEST" \ + -p "$GRPC_PORT_HOST":"$GRPC_PORT_GUEST" \ --mount type=bind,source="$SCRIPT_DIR/template",target=/template \ --mount type=volume,source=simapp_data,target=/root \ "$REPOSITORY:$VERSION" \ diff --git a/scripts/simapp44/start.sh b/scripts/simapp44/start.sh index 73d2ed02cb..5c1791cd2c 100755 --- a/scripts/simapp44/start.sh +++ b/scripts/simapp44/start.sh @@ -7,6 +7,8 @@ TENDERMINT_PORT_GUEST="26657" TENDERMINT_PORT_HOST="26658" API_PORT_GUEST="1317" API_PORT_HOST="1318" +GRPC_PORT_GUEST="9090" +GRPC_PORT_HOST="9090" SCRIPT_DIR="$(realpath "$(dirname "$0")")" # shellcheck source=./env @@ -25,6 +27,7 @@ docker run --rm \ --name "$CONTAINER_NAME" \ -p "$TENDERMINT_PORT_HOST":"$TENDERMINT_PORT_GUEST" \ -p "$API_PORT_HOST":"$API_PORT_GUEST" \ + -p "$GRPC_PORT_HOST":"$GRPC_PORT_GUEST" \ --mount type=bind,source="$SCRIPT_DIR/template",target=/template \ --mount type=volume,source=simapp_data,target=/root \ "$REPOSITORY:$VERSION" \ From 054acb7c8001e72b637c55704d770e07bd53d6e1 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Wed, 20 Oct 2021 15:15:14 +0200 Subject: [PATCH 03/11] Use query queryVerified key that works for 0.42 and 0.44 --- .../stargate/src/queries/queryclient.spec.ts | 38 ++++++++++++------- .../template/.simapp/config/genesis.json | 20 +++++++++- .../template/.simapp/config/genesis.json | 20 +++++++++- 3 files changed, 63 insertions(+), 15 deletions(-) diff --git a/packages/stargate/src/queries/queryclient.spec.ts b/packages/stargate/src/queries/queryclient.spec.ts index 160758af7a..db3f830a6c 100644 --- a/packages/stargate/src/queries/queryclient.spec.ts +++ b/packages/stargate/src/queries/queryclient.spec.ts @@ -1,33 +1,42 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { toAscii } from "@cosmjs/encoding"; import { Tendermint34Client } from "@cosmjs/tendermint-rpc"; +import { Metadata } from "cosmjs-types/cosmos/bank/v1beta1/bank"; import { QueryAllBalancesRequest, QueryAllBalancesResponse } from "cosmjs-types/cosmos/bank/v1beta1/query"; -import { Coin } from "cosmjs-types/cosmos/base/v1beta1/coin"; -import { nonNegativeIntegerMatcher, pendingWithoutSimapp, simapp, unused } from "../testutils.spec"; +import { pendingWithoutSimapp, simapp, unused } from "../testutils.spec"; import { QueryClient } from "./queryclient"; -import { toAccAddress } from "./utils"; async function makeClient(rpcUrl: string): Promise<[QueryClient, Tendermint34Client]> { const tmClient = await Tendermint34Client.connect(rpcUrl); return [QueryClient.withExtensions(tmClient), tmClient]; } +/** + * See + * - https://github.com/cosmos/cosmos-sdk/blob/v0.42.10/x/bank/types/key.go#L27 + * - https://github.com/cosmos/cosmos-sdk/blob/v0.44.2/x/bank/types/key.go#L28 + */ +const denomMetadataPrefix = new Uint8Array([0x01]); + describe("QueryClient", () => { describe("queryVerified", () => { it("works via WebSockets", async () => { pendingWithoutSimapp(); const [client, tmClient] = await makeClient(simapp.tendermintUrlWs); + // "keys before 0.45 had denom two times in the key" + // https://github.com/cosmos/cosmos-sdk/blob/10ad61a4dd/x/bank/migrations/v045/store_test.go#L91 const key = Uint8Array.from([ - ...toAscii("balances"), - ...toAccAddress(unused.address), + ...denomMetadataPrefix, + ...toAscii(simapp.denomFee), ...toAscii(simapp.denomFee), ]); const data = await client.queryVerified("bank", key); - const response = Coin.decode(data); - expect(response.amount).toMatch(nonNegativeIntegerMatcher); - expect(response.denom).toEqual(simapp.denomFee); + + const response = Metadata.decode(data); + expect(response.base).toEqual(simapp.denomFee); + expect(response.description).toEqual("The fee token of this test chain"); tmClient.disconnect(); }); @@ -36,15 +45,18 @@ describe("QueryClient", () => { pendingWithoutSimapp(); const [client, tmClient] = await makeClient(simapp.tendermintUrlHttp); + // "keys before 0.45 had denom two times in the key" + // https://github.com/cosmos/cosmos-sdk/blob/10ad61a4dd/x/bank/migrations/v045/store_test.go#L91 const key = Uint8Array.from([ - ...toAscii("balances"), - ...toAccAddress(unused.address), + ...denomMetadataPrefix, + ...toAscii(simapp.denomFee), ...toAscii(simapp.denomFee), ]); const data = await client.queryVerified("bank", key); - const response = Coin.decode(data); - expect(response.amount).toMatch(nonNegativeIntegerMatcher); - expect(response.denom).toEqual(simapp.denomFee); + + const response = Metadata.decode(data); + expect(response.base).toEqual(simapp.denomFee); + expect(response.description).toEqual("The fee token of this test chain"); tmClient.disconnect(); }); diff --git a/scripts/simapp/template/.simapp/config/genesis.json b/scripts/simapp/template/.simapp/config/genesis.json index e9c0fb4f17..b5cd768f31 100644 --- a/scripts/simapp/template/.simapp/config/genesis.json +++ b/scripts/simapp/template/.simapp/config/genesis.json @@ -435,7 +435,25 @@ ] } ], - "denom_metadata": [], + "denom_metadata": [ + { + "description": "The fee token of this test chain", + "denom_units": [ + { + "denom": "ucosm", + "exponent": 0, + "aliases": [] + }, + { + "denom": "COSM", + "exponent": 6, + "aliases": [] + } + ], + "base": "ucosm", + "display": "COSM" + } + ], "params": { "default_send_enabled": true, "send_enabled": [] diff --git a/scripts/simapp44/template/.simapp/config/genesis.json b/scripts/simapp44/template/.simapp/config/genesis.json index e9c0fb4f17..b5cd768f31 100644 --- a/scripts/simapp44/template/.simapp/config/genesis.json +++ b/scripts/simapp44/template/.simapp/config/genesis.json @@ -435,7 +435,25 @@ ] } ], - "denom_metadata": [], + "denom_metadata": [ + { + "description": "The fee token of this test chain", + "denom_units": [ + { + "denom": "ucosm", + "exponent": 0, + "aliases": [] + }, + { + "denom": "COSM", + "exponent": 6, + "aliases": [] + } + ], + "base": "ucosm", + "display": "COSM" + } + ], "params": { "default_send_enabled": true, "send_enabled": [] From 72509f5ba222390a94e6e47da4c0db4a1968c216 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Wed, 20 Oct 2021 16:42:10 +0200 Subject: [PATCH 04/11] Remove IBC settings from simapp44 --- scripts/simapp44/generate_template.sh | 3 +- scripts/simapp44/genesis-ibc.json | 277 ------------------ .../template/.simapp/config/genesis.json | 277 ------------------ 3 files changed, 1 insertion(+), 556 deletions(-) delete mode 100644 scripts/simapp44/genesis-ibc.json diff --git a/scripts/simapp44/generate_template.sh b/scripts/simapp44/generate_template.sh index 0ef73908fc..faa6908cb7 100755 --- a/scripts/simapp44/generate_template.sh +++ b/scripts/simapp44/generate_template.sh @@ -49,8 +49,7 @@ function inline_jq() { ( cd "$SCRIPT_DIR" - # shellcheck disable=SC2016 - inline_jq "template/.simapp/config/genesis.json" --argjson ibc "$( Date: Thu, 21 Oct 2021 23:17:16 +0200 Subject: [PATCH 05/11] Rename simapp -> simapp42 --- .circleci/config.yml | 32 +++++++++---------- packages/ledger-amino/README.md | 2 +- .../stargate/src/queries/ibctestdata.spec.ts | 6 ++-- packages/stargate/src/testutils.spec.ts | 12 +++---- scripts/{simapp => simapp42}/.gitignore | 0 scripts/{simapp => simapp42}/README.md | 0 scripts/{simapp => simapp42}/env | 0 .../{simapp => simapp42}/generate_template.sh | 0 .../generate_template_slow.sh | 0 scripts/{simapp => simapp42}/genesis-ibc.json | 0 scripts/{simapp => simapp42}/run_simd.sh | 0 scripts/{simapp => simapp42}/setup.sh | 0 scripts/{simapp => simapp42}/slow_start.sh | 0 scripts/{simapp => simapp42}/slow_stop.sh | 0 scripts/{simapp => simapp42}/start.sh | 0 scripts/{simapp => simapp42}/stop.sh | 0 .../template/.simapp/config/app.toml | 0 .../template/.simapp/config/config.toml | 0 .../template/.simapp/config/genesis.json | 0 ...cdbcfe545eaaaea99378bc70bf22eef3401a4.json | 0 .../template/.simapp/config/node_key.json | 0 .../.simapp/config/priv_validator_key.json | 0 .../.simapp/data/priv_validator_state.json | 0 ...13d84ba0fed8a6a4f9ef9abc9967a402c3.address | 0 .../template/.simapp/keyhash | 0 .../template/.simapp/validator.info | 0 .../{simapp => simapp42}/template/run_simd.sh | 0 .../{simapp => simapp42}/template/setup.sh | 0 .../template_slow/.simapp/config/app.toml | 0 .../template_slow/.simapp/config/config.toml | 0 .../template_slow/.simapp/config/genesis.json | 0 ...cdbcfe545eaaaea99378bc70bf22eef3401a4.json | 0 .../.simapp/config/node_key.json | 0 .../.simapp/config/priv_validator_key.json | 0 .../.simapp/data/priv_validator_state.json | 0 ...13d84ba0fed8a6a4f9ef9abc9967a402c3.address | 0 .../template_slow/.simapp/keyhash | 0 .../template_slow/.simapp/validator.info | 0 .../template_slow/run_simd.sh | 0 .../template_slow/setup.sh | 0 40 files changed, 26 insertions(+), 26 deletions(-) rename scripts/{simapp => simapp42}/.gitignore (100%) rename scripts/{simapp => simapp42}/README.md (100%) rename scripts/{simapp => simapp42}/env (100%) rename scripts/{simapp => simapp42}/generate_template.sh (100%) rename scripts/{simapp => simapp42}/generate_template_slow.sh (100%) rename scripts/{simapp => simapp42}/genesis-ibc.json (100%) rename scripts/{simapp => simapp42}/run_simd.sh (100%) rename scripts/{simapp => simapp42}/setup.sh (100%) rename scripts/{simapp => simapp42}/slow_start.sh (100%) rename scripts/{simapp => simapp42}/slow_stop.sh (100%) rename scripts/{simapp => simapp42}/start.sh (100%) rename scripts/{simapp => simapp42}/stop.sh (100%) rename scripts/{simapp => simapp42}/template/.simapp/config/app.toml (100%) rename scripts/{simapp => simapp42}/template/.simapp/config/config.toml (100%) rename scripts/{simapp => simapp42}/template/.simapp/config/genesis.json (100%) rename scripts/{simapp => simapp42}/template/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json (100%) rename scripts/{simapp => simapp42}/template/.simapp/config/node_key.json (100%) rename scripts/{simapp => simapp42}/template/.simapp/config/priv_validator_key.json (100%) rename scripts/{simapp => simapp42}/template/.simapp/data/priv_validator_state.json (100%) rename scripts/{simapp => simapp42}/template/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address (100%) rename scripts/{simapp => simapp42}/template/.simapp/keyhash (100%) rename scripts/{simapp => simapp42}/template/.simapp/validator.info (100%) rename scripts/{simapp => simapp42}/template/run_simd.sh (100%) rename scripts/{simapp => simapp42}/template/setup.sh (100%) rename scripts/{simapp => simapp42}/template_slow/.simapp/config/app.toml (100%) rename scripts/{simapp => simapp42}/template_slow/.simapp/config/config.toml (100%) rename scripts/{simapp => simapp42}/template_slow/.simapp/config/genesis.json (100%) rename scripts/{simapp => simapp42}/template_slow/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json (100%) rename scripts/{simapp => simapp42}/template_slow/.simapp/config/node_key.json (100%) rename scripts/{simapp => simapp42}/template_slow/.simapp/config/priv_validator_key.json (100%) rename scripts/{simapp => simapp42}/template_slow/.simapp/data/priv_validator_state.json (100%) rename scripts/{simapp => simapp42}/template_slow/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address (100%) rename scripts/{simapp => simapp42}/template_slow/.simapp/keyhash (100%) rename scripts/{simapp => simapp42}/template_slow/.simapp/validator.info (100%) rename scripts/{simapp => simapp42}/template_slow/run_simd.sh (100%) rename scripts/{simapp => simapp42}/template_slow/setup.sh (100%) diff --git a/.circleci/config.yml b/.circleci/config.yml index 194ee475f3..3243d28698 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -88,11 +88,11 @@ jobs: background: true - run: name: Start simapp - command: ./scripts/simapp/start.sh + command: ./scripts/simapp42/start.sh background: true - run: name: Start slow simapp - command: ./scripts/simapp/slow_start.sh + command: ./scripts/simapp42/slow_start.sh background: true - run: name: Start Tendermint blockchains @@ -176,8 +176,8 @@ jobs: command: | ./scripts/socketserver/stop.sh ./scripts/tendermint/all_stop.sh - ./scripts/simapp/stop.sh - ./scripts/simapp/slow_stop.sh + ./scripts/simapp42/stop.sh + ./scripts/simapp42/slow_stop.sh ./scripts/wasmd/stop.sh ./scripts/launchpad/stop.sh test-node-v14: @@ -208,11 +208,11 @@ jobs: background: true - run: name: Start simapp - command: ./scripts/simapp/start.sh + command: ./scripts/simapp42/start.sh background: true - run: name: Start slow simapp - command: ./scripts/simapp/slow_start.sh + command: ./scripts/simapp42/slow_start.sh background: true - run: name: Start Tendermint blockchains @@ -291,8 +291,8 @@ jobs: command: | ./scripts/socketserver/stop.sh ./scripts/tendermint/all_stop.sh - ./scripts/simapp/stop.sh - ./scripts/simapp/slow_stop.sh + ./scripts/simapp42/stop.sh + ./scripts/simapp42/slow_stop.sh ./scripts/wasmd/stop.sh ./scripts/launchpad/stop.sh test-chrome: @@ -324,11 +324,11 @@ jobs: background: true - run: name: Start simapp - command: ./scripts/simapp/start.sh + command: ./scripts/simapp42/start.sh background: true - run: name: Start slow simapp - command: ./scripts/simapp/slow_start.sh + command: ./scripts/simapp42/slow_start.sh background: true - run: name: Start Tendermint blockchains @@ -394,8 +394,8 @@ jobs: command: | ./scripts/socketserver/stop.sh ./scripts/tendermint/all_stop.sh - ./scripts/simapp/stop.sh - ./scripts/simapp/slow_stop.sh + ./scripts/simapp42/stop.sh + ./scripts/simapp42/slow_stop.sh ./scripts/wasmd/stop.sh ./scripts/launchpad/stop.sh coverage: @@ -426,11 +426,11 @@ jobs: background: true - run: name: Start simapp - command: ./scripts/simapp/start.sh + command: ./scripts/simapp42/start.sh background: true - run: name: Start slow simapp - command: ./scripts/simapp/slow_start.sh + command: ./scripts/simapp42/slow_start.sh background: true - run: name: Start Tendermint blockchains @@ -499,8 +499,8 @@ jobs: command: | ./scripts/socketserver/stop.sh ./scripts/tendermint/all_stop.sh - ./scripts/simapp/stop.sh - ./scripts/simapp/slow_stop.sh + ./scripts/simapp42/stop.sh + ./scripts/simapp42/slow_stop.sh ./scripts/wasmd/stop.sh ./scripts/launchpad/stop.sh docs-build: diff --git a/packages/ledger-amino/README.md b/packages/ledger-amino/README.md index b3adbbd79b..5abdf3d4d1 100644 --- a/packages/ledger-amino/README.md +++ b/packages/ledger-amino/README.md @@ -58,7 +58,7 @@ transactions. ### Stargate tests Start a local Stargate blockchain as described in -[scripts/simapp/README.md](https://github.com/cosmos/cosmjs/blob/main/scripts/simapp/README.md) +[scripts/simapp42/README.md](https://github.com/cosmos/cosmjs/blob/main/scripts/simapp42/README.md) and execute: ```sh diff --git a/packages/stargate/src/queries/ibctestdata.spec.ts b/packages/stargate/src/queries/ibctestdata.spec.ts index 59a0f2acac..88a6aa070d 100644 --- a/packages/stargate/src/queries/ibctestdata.spec.ts +++ b/packages/stargate/src/queries/ibctestdata.spec.ts @@ -17,7 +17,7 @@ import { } from "cosmjs-types/ibc/core/connection/v1/connection"; import Long from "long"; -// From scripts/simapp/genesis-ibc.json +// From scripts/simapp42/genesis-ibc.json export const portId = "transfer"; export const channelId = "channel-0"; @@ -50,7 +50,7 @@ export const identifiedChannel = IdentifiedChannel.fromPartial({ /** * ``` - * jq ".channel_genesis.commitments[0]" scripts/simapp/genesis-ibc.json + * jq ".channel_genesis.commitments[0]" scripts/simapp42/genesis-ibc.json * ``` */ export const commitment = { @@ -69,7 +69,7 @@ export const packetState = PacketState.fromPartial({ * Unfortunatly empty right now * * ``` - * jq ".channel_genesis.acknowledgements" scripts/simapp/genesis-ibc.json + * jq ".channel_genesis.acknowledgements" scripts/simapp42/genesis-ibc.json * ``` */ export const packetAcknowledgements: PacketState[] = []; diff --git a/packages/stargate/src/testutils.spec.ts b/packages/stargate/src/testutils.spec.ts index 510a99bd07..a32c4e076a 100644 --- a/packages/stargate/src/testutils.spec.ts +++ b/packages/stargate/src/testutils.spec.ts @@ -126,10 +126,10 @@ export const unused = { export const validator = { /** - * From first gentx's auth_info.signer_infos in scripts/simapp/template/.simapp/config/genesis.json + * From first gentx's auth_info.signer_infos in scripts/simapp42/template/.simapp/config/genesis.json * * ``` - * jq ".app_state.genutil.gen_txs[0].auth_info.signer_infos[0].public_key" scripts/simapp/template/.simapp/config/genesis.json + * jq ".app_state.genutil.gen_txs[0].auth_info.signer_infos[0].public_key" scripts/simapp42/template/.simapp/config/genesis.json * ``` */ pubkey: { @@ -137,18 +137,18 @@ export const validator = { value: "AtDcuH4cX1eaxZrJ5shheLG3tXPAoV4awoIZmNQtQxmf", }, /** - * delegator_address from /cosmos.staking.v1beta1.MsgCreateValidator in scripts/simapp/template/.simapp/config/genesis.json + * delegator_address from /cosmos.staking.v1beta1.MsgCreateValidator in scripts/simapp42/template/.simapp/config/genesis.json * * ``` - * jq ".app_state.genutil.gen_txs[0].body.messages[0].delegator_address" scripts/simapp/template/.simapp/config/genesis.json + * jq ".app_state.genutil.gen_txs[0].body.messages[0].delegator_address" scripts/simapp42/template/.simapp/config/genesis.json * ``` */ delegatorAddress: "cosmos1urk9gy7cfws0ak9x5nu7lx4un9n6gqkry79679", /** - * validator_address from /cosmos.staking.v1beta1.MsgCreateValidator in scripts/simapp/template/.simapp/config/genesis.json + * validator_address from /cosmos.staking.v1beta1.MsgCreateValidator in scripts/simapp42/template/.simapp/config/genesis.json * * ``` - * jq ".app_state.genutil.gen_txs[0].body.messages[0].validator_address" scripts/simapp/template/.simapp/config/genesis.json + * jq ".app_state.genutil.gen_txs[0].body.messages[0].validator_address" scripts/simapp42/template/.simapp/config/genesis.json * ``` */ validatorAddress: "cosmosvaloper1urk9gy7cfws0ak9x5nu7lx4un9n6gqkrp230jk", diff --git a/scripts/simapp/.gitignore b/scripts/simapp42/.gitignore similarity index 100% rename from scripts/simapp/.gitignore rename to scripts/simapp42/.gitignore diff --git a/scripts/simapp/README.md b/scripts/simapp42/README.md similarity index 100% rename from scripts/simapp/README.md rename to scripts/simapp42/README.md diff --git a/scripts/simapp/env b/scripts/simapp42/env similarity index 100% rename from scripts/simapp/env rename to scripts/simapp42/env diff --git a/scripts/simapp/generate_template.sh b/scripts/simapp42/generate_template.sh similarity index 100% rename from scripts/simapp/generate_template.sh rename to scripts/simapp42/generate_template.sh diff --git a/scripts/simapp/generate_template_slow.sh b/scripts/simapp42/generate_template_slow.sh similarity index 100% rename from scripts/simapp/generate_template_slow.sh rename to scripts/simapp42/generate_template_slow.sh diff --git a/scripts/simapp/genesis-ibc.json b/scripts/simapp42/genesis-ibc.json similarity index 100% rename from scripts/simapp/genesis-ibc.json rename to scripts/simapp42/genesis-ibc.json diff --git a/scripts/simapp/run_simd.sh b/scripts/simapp42/run_simd.sh similarity index 100% rename from scripts/simapp/run_simd.sh rename to scripts/simapp42/run_simd.sh diff --git a/scripts/simapp/setup.sh b/scripts/simapp42/setup.sh similarity index 100% rename from scripts/simapp/setup.sh rename to scripts/simapp42/setup.sh diff --git a/scripts/simapp/slow_start.sh b/scripts/simapp42/slow_start.sh similarity index 100% rename from scripts/simapp/slow_start.sh rename to scripts/simapp42/slow_start.sh diff --git a/scripts/simapp/slow_stop.sh b/scripts/simapp42/slow_stop.sh similarity index 100% rename from scripts/simapp/slow_stop.sh rename to scripts/simapp42/slow_stop.sh diff --git a/scripts/simapp/start.sh b/scripts/simapp42/start.sh similarity index 100% rename from scripts/simapp/start.sh rename to scripts/simapp42/start.sh diff --git a/scripts/simapp/stop.sh b/scripts/simapp42/stop.sh similarity index 100% rename from scripts/simapp/stop.sh rename to scripts/simapp42/stop.sh diff --git a/scripts/simapp/template/.simapp/config/app.toml b/scripts/simapp42/template/.simapp/config/app.toml similarity index 100% rename from scripts/simapp/template/.simapp/config/app.toml rename to scripts/simapp42/template/.simapp/config/app.toml diff --git a/scripts/simapp/template/.simapp/config/config.toml b/scripts/simapp42/template/.simapp/config/config.toml similarity index 100% rename from scripts/simapp/template/.simapp/config/config.toml rename to scripts/simapp42/template/.simapp/config/config.toml diff --git a/scripts/simapp/template/.simapp/config/genesis.json b/scripts/simapp42/template/.simapp/config/genesis.json similarity index 100% rename from scripts/simapp/template/.simapp/config/genesis.json rename to scripts/simapp42/template/.simapp/config/genesis.json diff --git a/scripts/simapp/template/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json b/scripts/simapp42/template/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json similarity index 100% rename from scripts/simapp/template/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json rename to scripts/simapp42/template/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json diff --git a/scripts/simapp/template/.simapp/config/node_key.json b/scripts/simapp42/template/.simapp/config/node_key.json similarity index 100% rename from scripts/simapp/template/.simapp/config/node_key.json rename to scripts/simapp42/template/.simapp/config/node_key.json diff --git a/scripts/simapp/template/.simapp/config/priv_validator_key.json b/scripts/simapp42/template/.simapp/config/priv_validator_key.json similarity index 100% rename from scripts/simapp/template/.simapp/config/priv_validator_key.json rename to scripts/simapp42/template/.simapp/config/priv_validator_key.json diff --git a/scripts/simapp/template/.simapp/data/priv_validator_state.json b/scripts/simapp42/template/.simapp/data/priv_validator_state.json similarity index 100% rename from scripts/simapp/template/.simapp/data/priv_validator_state.json rename to scripts/simapp42/template/.simapp/data/priv_validator_state.json diff --git a/scripts/simapp/template/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address b/scripts/simapp42/template/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address similarity index 100% rename from scripts/simapp/template/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address rename to scripts/simapp42/template/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address diff --git a/scripts/simapp/template/.simapp/keyhash b/scripts/simapp42/template/.simapp/keyhash similarity index 100% rename from scripts/simapp/template/.simapp/keyhash rename to scripts/simapp42/template/.simapp/keyhash diff --git a/scripts/simapp/template/.simapp/validator.info b/scripts/simapp42/template/.simapp/validator.info similarity index 100% rename from scripts/simapp/template/.simapp/validator.info rename to scripts/simapp42/template/.simapp/validator.info diff --git a/scripts/simapp/template/run_simd.sh b/scripts/simapp42/template/run_simd.sh similarity index 100% rename from scripts/simapp/template/run_simd.sh rename to scripts/simapp42/template/run_simd.sh diff --git a/scripts/simapp/template/setup.sh b/scripts/simapp42/template/setup.sh similarity index 100% rename from scripts/simapp/template/setup.sh rename to scripts/simapp42/template/setup.sh diff --git a/scripts/simapp/template_slow/.simapp/config/app.toml b/scripts/simapp42/template_slow/.simapp/config/app.toml similarity index 100% rename from scripts/simapp/template_slow/.simapp/config/app.toml rename to scripts/simapp42/template_slow/.simapp/config/app.toml diff --git a/scripts/simapp/template_slow/.simapp/config/config.toml b/scripts/simapp42/template_slow/.simapp/config/config.toml similarity index 100% rename from scripts/simapp/template_slow/.simapp/config/config.toml rename to scripts/simapp42/template_slow/.simapp/config/config.toml diff --git a/scripts/simapp/template_slow/.simapp/config/genesis.json b/scripts/simapp42/template_slow/.simapp/config/genesis.json similarity index 100% rename from scripts/simapp/template_slow/.simapp/config/genesis.json rename to scripts/simapp42/template_slow/.simapp/config/genesis.json diff --git a/scripts/simapp/template_slow/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json b/scripts/simapp42/template_slow/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json similarity index 100% rename from scripts/simapp/template_slow/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json rename to scripts/simapp42/template_slow/.simapp/config/gentx/gentx-ad7cdbcfe545eaaaea99378bc70bf22eef3401a4.json diff --git a/scripts/simapp/template_slow/.simapp/config/node_key.json b/scripts/simapp42/template_slow/.simapp/config/node_key.json similarity index 100% rename from scripts/simapp/template_slow/.simapp/config/node_key.json rename to scripts/simapp42/template_slow/.simapp/config/node_key.json diff --git a/scripts/simapp/template_slow/.simapp/config/priv_validator_key.json b/scripts/simapp42/template_slow/.simapp/config/priv_validator_key.json similarity index 100% rename from scripts/simapp/template_slow/.simapp/config/priv_validator_key.json rename to scripts/simapp42/template_slow/.simapp/config/priv_validator_key.json diff --git a/scripts/simapp/template_slow/.simapp/data/priv_validator_state.json b/scripts/simapp42/template_slow/.simapp/data/priv_validator_state.json similarity index 100% rename from scripts/simapp/template_slow/.simapp/data/priv_validator_state.json rename to scripts/simapp42/template_slow/.simapp/data/priv_validator_state.json diff --git a/scripts/simapp/template_slow/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address b/scripts/simapp42/template_slow/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address similarity index 100% rename from scripts/simapp/template_slow/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address rename to scripts/simapp42/template_slow/.simapp/e0ec5413d84ba0fed8a6a4f9ef9abc9967a402c3.address diff --git a/scripts/simapp/template_slow/.simapp/keyhash b/scripts/simapp42/template_slow/.simapp/keyhash similarity index 100% rename from scripts/simapp/template_slow/.simapp/keyhash rename to scripts/simapp42/template_slow/.simapp/keyhash diff --git a/scripts/simapp/template_slow/.simapp/validator.info b/scripts/simapp42/template_slow/.simapp/validator.info similarity index 100% rename from scripts/simapp/template_slow/.simapp/validator.info rename to scripts/simapp42/template_slow/.simapp/validator.info diff --git a/scripts/simapp/template_slow/run_simd.sh b/scripts/simapp42/template_slow/run_simd.sh similarity index 100% rename from scripts/simapp/template_slow/run_simd.sh rename to scripts/simapp42/template_slow/run_simd.sh diff --git a/scripts/simapp/template_slow/setup.sh b/scripts/simapp42/template_slow/setup.sh similarity index 100% rename from scripts/simapp/template_slow/setup.sh rename to scripts/simapp42/template_slow/setup.sh From f89d4903b7222fce50a64c471353fd2b6336fa8f Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 22 Oct 2021 00:03:07 +0200 Subject: [PATCH 06/11] Force-add ignored priv_validator_state.json to simapp44 --- .../simapp44/template/.simapp/data/priv_validator_state.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 scripts/simapp44/template/.simapp/data/priv_validator_state.json diff --git a/scripts/simapp44/template/.simapp/data/priv_validator_state.json b/scripts/simapp44/template/.simapp/data/priv_validator_state.json new file mode 100644 index 0000000000..4dfbafad53 --- /dev/null +++ b/scripts/simapp44/template/.simapp/data/priv_validator_state.json @@ -0,0 +1,5 @@ +{ + "height": "0", + "round": 0, + "step": 0 +} From a2b6e74524e4ac2551ed3ac8ff4aacf153102404 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 22 Oct 2021 00:08:06 +0200 Subject: [PATCH 07/11] Make env vars simapp42/simapp44 specific --- .circleci/config.yml | 16 ++--- packages/cli/run_examples.sh | 4 +- packages/faucet/src/faucet.spec.ts | 4 +- packages/ledger-amino/README.md | 2 +- packages/ledger-amino/src/testutils.spec.ts | 4 +- packages/stargate/src/queries/ibc.spec.ts | 70 +++++++++---------- .../src/signingstargateclient.spec.ts | 5 +- packages/stargate/src/testutils.spec.ts | 22 ++++-- packages/stargate/webpack.web.config.js | 7 +- 9 files changed, 77 insertions(+), 57 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3243d28698..cd00056313 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -146,8 +146,8 @@ jobs: environment: LAUNCHPAD_ENABLED: 1 ERC20_ENABLED: 1 - SIMAPP_ENABLED: 1 - SLOW_SIMAPP_ENABLED: 1 + SIMAPP42_ENABLED: 1 + SLOW_SIMAPP42_ENABLED: 1 TENDERMINT_ENABLED: 1 SOCKETSERVER_ENABLED: 1 SKIP_BUILD: 1 @@ -266,8 +266,8 @@ jobs: environment: LAUNCHPAD_ENABLED: 1 ERC20_ENABLED: 1 - SIMAPP_ENABLED: 1 - SLOW_SIMAPP_ENABLED: 1 + SIMAPP42_ENABLED: 1 + SLOW_SIMAPP42_ENABLED: 1 TENDERMINT_ENABLED: 1 SOCKETSERVER_ENABLED: 1 SKIP_BUILD: 1 @@ -382,8 +382,8 @@ jobs: environment: LAUNCHPAD_ENABLED: 1 ERC20_ENABLED: 1 - SIMAPP_ENABLED: 1 - SLOW_SIMAPP_ENABLED: 1 + SIMAPP42_ENABLED: 1 + SLOW_SIMAPP42_ENABLED: 1 TENDERMINT_ENABLED: 1 SOCKETSERVER_ENABLED: 1 SKIP_BUILD: 1 @@ -484,8 +484,8 @@ jobs: environment: LAUNCHPAD_ENABLED: 1 ERC20_ENABLED: 1 - SIMAPP_ENABLED: 1 - SLOW_SIMAPP_ENABLED: 1 + SIMAPP42_ENABLED: 1 + SLOW_SIMAPP42_ENABLED: 1 TENDERMINT_ENABLED: 1 SOCKETSERVER_ENABLED: 1 SKIP_BUILD: 1 diff --git a/packages/cli/run_examples.sh b/packages/cli/run_examples.sh index ae5ba58c58..b5a60f94b1 100755 --- a/packages/cli/run_examples.sh +++ b/packages/cli/run_examples.sh @@ -2,7 +2,7 @@ set -o errexit -o nounset -o pipefail command -v shellcheck >/dev/null && shellcheck "$0" -if [ -n "${SIMAPP_ENABLED:-}" ]; then +if [ -n "${SIMAPP42_ENABLED:-}" ]; then yarn node ./bin/cosmwasm-cli --init examples/cosmwasm.ts --code "process.exit(0)" fi if [ -n "${LAUNCHPAD_ENABLED:-}" ]; then @@ -13,6 +13,6 @@ yarn node ./bin/cosmwasm-cli --init examples/generate_address.ts --code "process yarn node ./bin/cosmwasm-cli --init examples/local_faucet.ts --code "process.exit(0)" yarn node ./bin/cosmwasm-cli --init examples/mask.ts --code "process.exit(0)" yarn node ./bin/cosmwasm-cli --init examples/multisig_address.ts --code "process.exit(0)" -if [ -n "${SIMAPP_ENABLED:-}" ]; then +if [ -n "${SIMAPP42_ENABLED:-}" ]; then yarn node ./bin/cosmwasm-cli --init examples/stargate.ts --code "process.exit(0)" fi diff --git a/packages/faucet/src/faucet.spec.ts b/packages/faucet/src/faucet.spec.ts index 1311534703..21b42b2fba 100644 --- a/packages/faucet/src/faucet.spec.ts +++ b/packages/faucet/src/faucet.spec.ts @@ -14,8 +14,8 @@ function pendingWithoutLaunchpad(): void { } function pendingWithoutSimapp(): void { - if (!process.env.SIMAPP_ENABLED) { - return pending("Set SIMAPP_ENABLED to enabled Stargate node-based tests"); + if (!process.env.SIMAPP42_ENABLED && !process.env.SIMAPP44_ENABLED) { + return pending("Set SIMAPP42_ENABLED or SIMAPP44_ENABLED to enabled Stargate node-based tests"); } } diff --git a/packages/ledger-amino/README.md b/packages/ledger-amino/README.md index 5abdf3d4d1..8660351e9b 100644 --- a/packages/ledger-amino/README.md +++ b/packages/ledger-amino/README.md @@ -63,7 +63,7 @@ and execute: ```sh export LEDGER_ENABLED=1 -export SIMAPP_ENABLED=1 +export SIMAPP42_ENABLED=1 yarn test ``` diff --git a/packages/ledger-amino/src/testutils.spec.ts b/packages/ledger-amino/src/testutils.spec.ts index 32b615124c..ce2d9151d9 100644 --- a/packages/ledger-amino/src/testutils.spec.ts +++ b/packages/ledger-amino/src/testutils.spec.ts @@ -29,12 +29,12 @@ export function pendingWithoutLaunchpad(): void { } export function simappEnabled(): boolean { - return !!process.env.SIMAPP_ENABLED; + return !!process.env.SIMAPP42_ENABLED || !!process.env.SIMAPP44_ENABLED; } export function pendingWithoutSimapp(): void { if (!simappEnabled()) { - return pending("Set SIMAPP_ENABLED to enable Simapp-based tests"); + return pending("Set SIMAPP42_ENABLED or SIMAPP44_ENABLED to enable Simapp-based tests"); } } diff --git a/packages/stargate/src/queries/ibc.spec.ts b/packages/stargate/src/queries/ibc.spec.ts index 3cbd832beb..5d425f6a78 100644 --- a/packages/stargate/src/queries/ibc.spec.ts +++ b/packages/stargate/src/queries/ibc.spec.ts @@ -1,7 +1,7 @@ import { Tendermint34Client } from "@cosmjs/tendermint-rpc"; import Long from "long"; -import { pendingWithoutSimapp, simapp } from "../testutils.spec"; +import { pendingWithoutSimapp42, simapp } from "../testutils.spec"; import { IbcExtension, setupIbcExtension } from "./ibc"; import * as ibcTest from "./ibctestdata.spec"; import { QueryClient } from "./queryclient"; @@ -15,7 +15,7 @@ describe("IbcExtension", () => { describe("channel", () => { describe("channel", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.channel(ibcTest.portId, ibcTest.channelId); @@ -29,7 +29,7 @@ describe("IbcExtension", () => { describe("channels", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.channels(); @@ -43,7 +43,7 @@ describe("IbcExtension", () => { describe("allChannels", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.allChannels(); @@ -55,7 +55,7 @@ describe("IbcExtension", () => { describe("connectionChannels", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.connectionChannels(ibcTest.connectionId); @@ -69,7 +69,7 @@ describe("IbcExtension", () => { describe("allConnectionChannels", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.allConnectionChannels(ibcTest.connectionId); @@ -81,7 +81,7 @@ describe("IbcExtension", () => { describe("clientState", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.clientState(ibcTest.portId, ibcTest.channelId); @@ -99,7 +99,7 @@ describe("IbcExtension", () => { describe("consensusState", () => { xit("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.consensusState( @@ -121,7 +121,7 @@ describe("IbcExtension", () => { describe("packetCommitment", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.packetCommitment( @@ -139,7 +139,7 @@ describe("IbcExtension", () => { describe("packetCommitments", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.packetCommitments(ibcTest.portId, ibcTest.channelId); @@ -153,7 +153,7 @@ describe("IbcExtension", () => { describe("allPacketCommitments", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.allPacketCommitments(ibcTest.portId, ibcTest.channelId); @@ -165,7 +165,7 @@ describe("IbcExtension", () => { describe("packetReceipt", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.packetReceipt(ibcTest.portId, ibcTest.channelId, 1); @@ -178,7 +178,7 @@ describe("IbcExtension", () => { describe("packetAcknowledgement", () => { it("works", async () => { pending("We don't have an acknowledgement for testing at the moment"); - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.packetAcknowledgement( @@ -196,7 +196,7 @@ describe("IbcExtension", () => { describe("packetAcknowledgements", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.packetAcknowledgements(ibcTest.portId, ibcTest.channelId); @@ -210,7 +210,7 @@ describe("IbcExtension", () => { describe("allPacketAcknowledgements", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.allPacketAcknowledgements( @@ -225,7 +225,7 @@ describe("IbcExtension", () => { describe("unreceivedPackets", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.unreceivedPackets( @@ -242,7 +242,7 @@ describe("IbcExtension", () => { describe("unreceivedAcks", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.unreceivedAcks( @@ -259,7 +259,7 @@ describe("IbcExtension", () => { describe("nextSequenceReceive", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.channel.nextSequenceReceive(ibcTest.portId, ibcTest.channelId); @@ -275,7 +275,7 @@ describe("IbcExtension", () => { describe("client", () => { describe("state", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.client.state(ibcTest.clientId); @@ -290,7 +290,7 @@ describe("IbcExtension", () => { describe("states", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.client.states(); @@ -311,7 +311,7 @@ describe("IbcExtension", () => { describe("allStates", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.client.allStates(); @@ -331,7 +331,7 @@ describe("IbcExtension", () => { describe("consensusState", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.client.consensusState(ibcTest.clientId); @@ -346,7 +346,7 @@ describe("IbcExtension", () => { describe("consensusStates", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.client.consensusStates(ibcTest.clientId); @@ -368,7 +368,7 @@ describe("IbcExtension", () => { describe("allConsensusStates", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.client.allConsensusStates(ibcTest.clientId); @@ -390,7 +390,7 @@ describe("IbcExtension", () => { describe("params", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.client.params(); @@ -404,7 +404,7 @@ describe("IbcExtension", () => { describe("stateTm", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.client.stateTm(ibcTest.clientId); @@ -417,7 +417,7 @@ describe("IbcExtension", () => { describe("statesTm", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.client.statesTm(); @@ -435,7 +435,7 @@ describe("IbcExtension", () => { describe("allStatesTm", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.client.allStatesTm(); @@ -453,7 +453,7 @@ describe("IbcExtension", () => { describe("consensusStateTm", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.client.consensusStateTm(ibcTest.clientId); @@ -468,7 +468,7 @@ describe("IbcExtension", () => { describe("connection", () => { describe("connection", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.connection.connection(ibcTest.connectionId); @@ -482,7 +482,7 @@ describe("IbcExtension", () => { describe("connections", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.connection.connections(); @@ -496,7 +496,7 @@ describe("IbcExtension", () => { describe("allConnections", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.connection.allConnections(); @@ -508,7 +508,7 @@ describe("IbcExtension", () => { describe("clientConnections", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.connection.clientConnections(ibcTest.clientId); @@ -522,7 +522,7 @@ describe("IbcExtension", () => { describe("clientState", () => { it("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); const response = await client.ibc.connection.clientState(ibcTest.connectionId); @@ -540,7 +540,7 @@ describe("IbcExtension", () => { describe("consensusState", () => { xit("works", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const [client, tmClient] = await makeClientWithIbc(simapp.tendermintUrl); // TODO: Find valid values diff --git a/packages/stargate/src/signingstargateclient.spec.ts b/packages/stargate/src/signingstargateclient.spec.ts index 5488151a32..8996a29f9b 100644 --- a/packages/stargate/src/signingstargateclient.spec.ts +++ b/packages/stargate/src/signingstargateclient.spec.ts @@ -23,6 +23,7 @@ import { ModifyingDirectSecp256k1HdWallet, ModifyingSecp256k1HdWallet, pendingWithoutSimapp, + pendingWithoutSimapp42, simapp, validator, } from "./testutils.spec"; @@ -117,7 +118,7 @@ describe("SigningStargateClient", () => { describe("sendIbcTokens", () => { it("works with direct signing", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic); const client = await SigningStargateClient.connectWithSigner( simapp.tendermintUrl, @@ -166,7 +167,7 @@ describe("SigningStargateClient", () => { }); it("works with Amino signing", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); const wallet = await Secp256k1HdWallet.fromMnemonic(faucet.mnemonic); const client = await SigningStargateClient.connectWithSigner( simapp.tendermintUrl, diff --git a/packages/stargate/src/testutils.spec.ts b/packages/stargate/src/testutils.spec.ts index a32c4e076a..5970efbb00 100644 --- a/packages/stargate/src/testutils.spec.ts +++ b/packages/stargate/src/testutils.spec.ts @@ -15,23 +15,37 @@ import { AuthInfo, SignDoc, TxBody } from "cosmjs-types/cosmos/tx/v1beta1/tx"; import { calculateFee, GasPrice } from "./fee"; import { SigningStargateClientOptions } from "./signingstargateclient"; +export function simapp42Enabled(): boolean { + return !!process.env.SIMAPP42_ENABLED; +} + +export function simapp44Enabled(): boolean { + return !!process.env.SIMAPP44_ENABLED; +} + export function simappEnabled(): boolean { - return !!process.env.SIMAPP_ENABLED; + return simapp42Enabled() || simapp44Enabled(); +} + +export function pendingWithoutSimapp42(): void { + if (!simapp42Enabled()) { + return pending("Set SIMAPP44_ENABLED to enable Simapp based tests"); + } } export function pendingWithoutSimapp(): void { if (!simappEnabled()) { - return pending("Set SIMAPP_ENABLED to enable Simapp based tests"); + return pending("Set SIMAPP42_ENABLED or SIMAPP44_ENABLED to enable Simapp based tests"); } } export function slowSimappEnabled(): boolean { - return !!process.env.SLOW_SIMAPP_ENABLED; + return !!process.env.SLOW_SIMAPP42_ENABLED || !!process.env.SLOW_SIMAPP44_ENABLED; } export function pendingWithoutSlowSimapp(): void { if (!slowSimappEnabled()) { - return pending("Set SLOW_SIMAPP_ENABLED to enable slow Simapp based tests"); + return pending("Set SLOW_SIMAPP42_ENABLED or SLOW_SIMAPP44_ENABLED to enable slow Simapp based tests"); } } diff --git a/packages/stargate/webpack.web.config.js b/packages/stargate/webpack.web.config.js index fc27f3e87e..838675a009 100644 --- a/packages/stargate/webpack.web.config.js +++ b/packages/stargate/webpack.web.config.js @@ -16,7 +16,12 @@ module.exports = [ filename: "tests.js", }, plugins: [ - new webpack.EnvironmentPlugin({ SIMAPP_ENABLED: "", SLOW_SIMAPP_ENABLED: "" }), + new webpack.EnvironmentPlugin({ + SIMAPP42_ENABLED: "", + SLOW_SIMAPP42_ENABLED: "", + SIMAPP44_ENABLED: "", + SLOW_SIMAPP44_ENABLED: "", + }), new webpack.ProvidePlugin({ Buffer: ["buffer", "Buffer"], }), From 7edc0d31960e73e9b87712db865c8a30ce077488 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 22 Oct 2021 11:47:37 +0200 Subject: [PATCH 08/11] Run tests against simapp44 in CI --- .circleci/config.yml | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index cd00056313..8614948386 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -26,6 +26,9 @@ workflows: - test: requires: - build + matrix: + parameters: + simapp: ["simapp42", "simapp44"] - test-node-v14: requires: - build @@ -61,6 +64,9 @@ jobs: paths: - packages/*/build/* test: + parameters: + simapp: + type: string machine: # We can't use a containerized environment since it requires remote docker to start custom containers. # However, we can't access the remote docker's network from the primary container. This is a @@ -88,11 +94,11 @@ jobs: background: true - run: name: Start simapp - command: ./scripts/simapp42/start.sh + command: ./scripts/<< parameters.simapp >>/start.sh background: true - run: name: Start slow simapp - command: ./scripts/simapp42/slow_start.sh + command: ./scripts/<< parameters.simapp >>/slow_start.sh background: true - run: name: Start Tendermint blockchains @@ -143,16 +149,18 @@ jobs: name: Start socket server command: ./scripts/socketserver/start.sh - run: + name: Run tests environment: LAUNCHPAD_ENABLED: 1 ERC20_ENABLED: 1 - SIMAPP42_ENABLED: 1 - SLOW_SIMAPP42_ENABLED: 1 TENDERMINT_ENABLED: 1 SOCKETSERVER_ENABLED: 1 SKIP_BUILD: 1 WASMD_ENABLED: 1 - command: yarn test --stream + command: | + [ "<< parameters.simapp >>" = "simapp42" ] && export SIMAPP42_ENABLED=1 SLOW_SIMAPP42_ENABLED=1 + [ "<< parameters.simapp >>" = "simapp44" ] && export SIMAPP44_ENABLED=1 SLOW_SIMAPP44_ENABLED=1 + yarn test --stream - run: name: Run CLI selftest working_directory: packages/cli @@ -176,8 +184,8 @@ jobs: command: | ./scripts/socketserver/stop.sh ./scripts/tendermint/all_stop.sh - ./scripts/simapp42/stop.sh - ./scripts/simapp42/slow_stop.sh + ./scripts/<< parameters.simapp >>/stop.sh + ./scripts/<< parameters.simapp >>/slow_stop.sh ./scripts/wasmd/stop.sh ./scripts/launchpad/stop.sh test-node-v14: From 64fecab2e5f2a33dd95d4b4a22b1a7594bb43ec2 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Sun, 24 Oct 2021 22:35:13 +0200 Subject: [PATCH 09/11] Format table in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a0563f8ec4..dcedc1ef98 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ Here are some of them to get an idea: | Package | Description | Latest | | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | -| [@cosmjs/stargate](packages/stargate) | A client library for the Cosmos SDK 0.40 (cosmoshub-4), 0.41 and 0.42 (Stargate) | [![npm version](https://img.shields.io/npm/v/@cosmjs/stargate.svg)](https://www.npmjs.com/package/@cosmjs/stargate) | +| [@cosmjs/stargate](packages/stargate) | A client library for the Cosmos SDK 0.40 (cosmoshub-4), 0.41 and 0.42 (Stargate) | [![npm version](https://img.shields.io/npm/v/@cosmjs/stargate.svg)](https://www.npmjs.com/package/@cosmjs/stargate) | | [@cosmjs/launchpad](packages/launchpad) | A client library for the Cosmos SDK 0.37 (cosmoshub-3), 0.38 and 0.39 (Launchpad) | [![npm version](https://img.shields.io/npm/v/@cosmjs/launchpad.svg)](https://www.npmjs.com/package/@cosmjs/launchpad) | | [@cosmjs/faucet](packages/faucet) | A faucet application for node.js | [![npm version](https://img.shields.io/npm/v/@cosmjs/faucet.svg)](https://www.npmjs.com/package/@cosmjs/faucet) | | [@cosmjs/cosmwasm-stargate](packages/cosmwasm-stargate) | Client for Stargate chains with the CosmWasm module enabled | [![npm version](https://img.shields.io/npm/v/@cosmjs/cosmwasm-stargate.svg)](https://www.npmjs.com/package/@cosmjs/cosmwasm-stargate) | From fbaf8d70688d372ea0c9a3f0a6aa33c7ae4b89a9 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Sun, 24 Oct 2021 22:35:45 +0200 Subject: [PATCH 10/11] Deprecate verified queries --- README.md | 10 ++++++++++ packages/stargate/src/queries/auth.spec.ts | 15 +++++++++++---- packages/stargate/src/queries/auth.ts | 5 +++++ packages/stargate/src/queries/bank.spec.ts | 7 ++++--- packages/stargate/src/queries/bank.ts | 5 +++++ packages/stargate/src/stargateclient.ts | 5 +++++ 6 files changed, 40 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index dcedc1ef98..8afa517597 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,16 @@ discussion please reach out to the team. ## Known limitations +### 0.26 + +1. When connecting to a Cosmos SDK 0.44+ backend, the verified queries from + `AuthExtension` and `BankExtension` as well as + `StargateClient.getAccountVerified` will fail because the storage keys are + not stable. Unverified queries can be used instead. Those queries are + deprecated now and will be removed in 0.27 ([#910]). + +[#910]: https://github.com/cosmos/cosmjs/pull/910 + ### 0.25 1. Decoding blocks of height 1 is unsupported. This is fixed in [#815] and will diff --git a/packages/stargate/src/queries/auth.spec.ts b/packages/stargate/src/queries/auth.spec.ts index b68ffc4476..9ca9b4549e 100644 --- a/packages/stargate/src/queries/auth.spec.ts +++ b/packages/stargate/src/queries/auth.spec.ts @@ -6,7 +6,14 @@ import { BaseAccount } from "cosmjs-types/cosmos/auth/v1beta1/auth"; import { Any } from "cosmjs-types/google/protobuf/any"; import Long from "long"; -import { nonExistentAddress, pendingWithoutSimapp, simapp, unused, validator } from "../testutils.spec"; +import { + nonExistentAddress, + pendingWithoutSimapp, + pendingWithoutSimapp42, + simapp, + unused, + validator, +} from "../testutils.spec"; import { AuthExtension, setupAuthExtension } from "./auth"; import { QueryClient } from "./queryclient"; @@ -68,7 +75,7 @@ describe("AuthExtension", () => { describe("verified", () => { describe("account", () => { it("works for unused account", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); // Not supported with 0.44, see "Known limitations" in README.md const [client, tmClient] = await makeClientWithAuth(simapp.tendermintUrl); const account = await client.auth.verified.account(unused.address); assert(account); @@ -85,7 +92,7 @@ describe("AuthExtension", () => { }); it("works for account with pubkey and non-zero sequence", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); // Not supported with 0.44, see "Known limitations" in README.md const [client, tmClient] = await makeClientWithAuth(simapp.tendermintUrl); const account = await client.auth.verified.account(validator.delegatorAddress); assert(account); @@ -102,7 +109,7 @@ describe("AuthExtension", () => { }); it("returns null for non-existent address", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); // Not supported with 0.44, see "Known limitations" in README.md const [client, tmClient] = await makeClientWithAuth(simapp.tendermintUrl); const account = await client.auth.verified.account(nonExistentAddress); diff --git a/packages/stargate/src/queries/auth.ts b/packages/stargate/src/queries/auth.ts index 0368b0ddba..d27f62f4d5 100644 --- a/packages/stargate/src/queries/auth.ts +++ b/packages/stargate/src/queries/auth.ts @@ -14,6 +14,11 @@ export interface AuthExtension { * `typeUrl` and decode the `value` using its own type decoder. */ readonly account: (address: string) => Promise; + /** + * @deprecated Verified queries are not supported with Cosmos SDK 0.44+. + * See "Known limitations" in README.md. + * Will be rmoved in CosmJS 0.27 (https://github.com/cosmos/cosmjs/pull/910). + */ readonly verified: { /** * Returns an account if it exists and `null` otherwise. diff --git a/packages/stargate/src/queries/bank.spec.ts b/packages/stargate/src/queries/bank.spec.ts index e6fdc1c97d..f6002e0095 100644 --- a/packages/stargate/src/queries/bank.spec.ts +++ b/packages/stargate/src/queries/bank.spec.ts @@ -4,6 +4,7 @@ import { nonExistentAddress, nonNegativeIntegerMatcher, pendingWithoutSimapp, + pendingWithoutSimapp42, simapp, unused, } from "../testutils.spec"; @@ -147,7 +148,7 @@ describe("BankExtension", () => { describe("verified", () => { describe("balance", () => { it("works for different existing balances", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); // Not supported with 0.44, see "Known limitations" in README.md const [client, tmClient] = await makeClientWithBank(simapp.tendermintUrl); const response1 = await client.bank.verified.balance(unused.address, simapp.denomFee); @@ -165,7 +166,7 @@ describe("BankExtension", () => { }); it("returns null for non-existent balance", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); // Not supported with 0.44, see "Known limitations" in README.md const [client, tmClient] = await makeClientWithBank(simapp.tendermintUrl); const response = await client.bank.verified.balance(unused.address, "gintonic"); @@ -175,7 +176,7 @@ describe("BankExtension", () => { }); it("returns null for non-existent address", async () => { - pendingWithoutSimapp(); + pendingWithoutSimapp42(); // Not supported with 0.44, see "Known limitations" in README.md const [client, tmClient] = await makeClientWithBank(simapp.tendermintUrl); const response = await client.bank.verified.balance(nonExistentAddress, simapp.denomFee); diff --git a/packages/stargate/src/queries/bank.ts b/packages/stargate/src/queries/bank.ts index 5ed5d1a50b..f1c747be72 100644 --- a/packages/stargate/src/queries/bank.ts +++ b/packages/stargate/src/queries/bank.ts @@ -13,6 +13,11 @@ export interface BankExtension { readonly allBalances: (address: string) => Promise; readonly totalSupply: () => Promise; readonly supplyOf: (denom: string) => Promise; + /** + * @deprecated Verified queries are not supported with Cosmos SDK 0.44+. + * See "Known limitations" in README.md. + * Will be rmoved in CosmJS 0.27 (https://github.com/cosmos/cosmjs/pull/910). + */ readonly verified: { readonly balance: (address: string, denom: string) => Promise; }; diff --git a/packages/stargate/src/stargateclient.ts b/packages/stargate/src/stargateclient.ts index a0ac1e59a2..969a3bbc03 100644 --- a/packages/stargate/src/stargateclient.ts +++ b/packages/stargate/src/stargateclient.ts @@ -218,6 +218,11 @@ export class StargateClient { } } + /** + * @deprecated Verified queries are not supported with Cosmos SDK 0.44+. + * See "Known limitations" in README.md. + * Will be rmoved in CosmJS 0.27 (https://github.com/cosmos/cosmjs/pull/910). + */ public async getAccountVerified(searchAddress: string): Promise { const account = await this.forceGetQueryClient().auth.verified.account(searchAddress); return account ? accountFromAny(account) : null; From 360506c58ea1c8831954ca32375eb8757d0fb9d4 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Mon, 25 Oct 2021 10:56:23 +0200 Subject: [PATCH 11/11] Add deprecation note for verified queries to CHANGELOG [skip ci] --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2b99d525d..b038ca0d2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,14 @@ and this project adheres to adding the fields `LaunchpadLedgerOptions.ledgerAppName` and `.minLedgerAppVersion`. +### Deprecated + +- @cosmjs/stargate: The verified queries from `AuthExtension` and + `BankExtension` as well as `StargateClient.getAccountVerified` are deprecated + and will be removed in 0.27 ([#910]). + +[#910]: https://github.com/cosmos/cosmjs/pull/910 + ## [0.26.2] - 2021-10-12 ### Fixed