From 60cdda61d1c15a00c82c1db149f692b49a783c63 Mon Sep 17 00:00:00 2001 From: willclarktech Date: Thu, 2 Jul 2020 12:56:40 +0200 Subject: [PATCH] scripts: Add generated simapp template --- ...4fe96a5d63899b4a1c6971d5da08e56ff5.address | 1 + .../simapp/template/.simapp/config/app.toml | 102 ++++ .../template/.simapp/config/config.toml | 335 +++++++++++ .../template/.simapp/config/genesis.json | 545 ++++++++++++++++++ ...829b87c30fe2c35ec3ad9d955fd4acabdda8f.json | 1 + .../template/.simapp/config/node_key.json | 1 + .../.simapp/config/priv_validator_key.json | 11 + scripts/simapp/template/.simapp/keyhash | 1 + .../simapp/template/.simapp/validator.info | 1 + scripts/simapp/template/run_simd.sh | 7 + scripts/simapp/template/setup.sh | 25 + 11 files changed, 1030 insertions(+) create mode 100644 scripts/simapp/template/.simapp/2bb7a14fe96a5d63899b4a1c6971d5da08e56ff5.address create mode 100644 scripts/simapp/template/.simapp/config/app.toml create mode 100644 scripts/simapp/template/.simapp/config/config.toml create mode 100644 scripts/simapp/template/.simapp/config/genesis.json create mode 100644 scripts/simapp/template/.simapp/config/gentx/gentx-666829b87c30fe2c35ec3ad9d955fd4acabdda8f.json create mode 100644 scripts/simapp/template/.simapp/config/node_key.json create mode 100644 scripts/simapp/template/.simapp/config/priv_validator_key.json create mode 100755 scripts/simapp/template/.simapp/keyhash create mode 100644 scripts/simapp/template/.simapp/validator.info create mode 100755 scripts/simapp/template/run_simd.sh create mode 100755 scripts/simapp/template/setup.sh diff --git a/scripts/simapp/template/.simapp/2bb7a14fe96a5d63899b4a1c6971d5da08e56ff5.address b/scripts/simapp/template/.simapp/2bb7a14fe96a5d63899b4a1c6971d5da08e56ff5.address new file mode 100644 index 00000000..9592fdd2 --- /dev/null +++ b/scripts/simapp/template/.simapp/2bb7a14fe96a5d63899b4a1c6971d5da08e56ff5.address @@ -0,0 +1 @@ +eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMC0wNy0wMiAxMjowNzoyMy4xODYzNzMyMjMgKzAwMDAgVVRDIG09KzAuMTg4NzI3NzY0IiwiZW5jIjoiQTI1NkdDTSIsInAyYyI6ODE5MiwicDJzIjoiNGdMcVVEdlcyRGRaWk1NXyJ9.B-AuI5w3Sx51GG0g-VzBciHaWu8VpOvGfPJsWEMWZ3XpnOQib-6BeQ.ZrDU9r8QGYayFR1E.YtowOLcWfNA8bZmDvoJhVB_zrE1AWa-E5P2ShZV4hIAHBusrkyR-RwxEG4y7Kc4FHIXw5UCIuJvZaJy39z670xIhL6ktgTgZUmC4BTmHAnlC1oRDj_Ih0_J-oAsjTir8-Y0VXb1vyky1E4yo9jq-E3vTvqfxn3QCqHIBpnQ7dqoM8Zi3hCy9YxQoBGptEf9z5fimIszZMM1sXjqS7sEZPWoJO6jYmRUp9D5NvaY6zyTgOrEEWXF7JpqC.CTb3ibPIGwVtVIkziDg7GA \ No newline at end of file diff --git a/scripts/simapp/template/.simapp/config/app.toml b/scripts/simapp/template/.simapp/config/app.toml new file mode 100644 index 00000000..cff06fc3 --- /dev/null +++ b/scripts/simapp/template/.simapp/config/app.toml @@ -0,0 +1,102 @@ +# 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 + +# InterBlockCache enables inter-block caching. +inter-block-cache = true + +############################################################################### +### 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 = false + +# 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 = false diff --git a/scripts/simapp/template/.simapp/config/config.toml b/scripts/simapp/template/.simapp/config/config.toml new file mode 100644 index 00000000..d229a479 --- /dev/null +++ b/scripts/simapp/template/.simapp/config/config.toml @@ -0,0 +1,335 @@ +# 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 = "testing" + +# 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 +# * 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) +db_backend = "goleveldb" + +# Database directory +db_dir = "data" + +# Output level for logging, including package level options +log_level = "main:info,state:info,*:error" + +# 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" + +# TCP or UNIX socket address for the profiling server to listen on +prof_laddr = "localhost:6060" + +# 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. +# Migth 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. +# Migth 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 = "" + +##### peer to peer 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 options ##### +[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 + +# Maximum size of a single transaction. +# NOTE: the max size of a tx transmitted over the network is {max_tx_bytes} + {amino overhead}. +max_tx_bytes = 1048576 + +##### fast sync configuration options ##### +[fastsync] + +# Fast Sync version to use: +# 1) "v0" (default) - the legacy fast sync implementation +# 2) "v1" - refactor of v0 version for better testability +# 3) "v2" - refactor of v1 version for better usability +version = "v0" + +##### consensus configuration options ##### +[consensus] + +wal_file = "data/cs.wal/wal" + +timeout_propose = "3s" +timeout_propose_delta = "500ms" +timeout_prevote = "1s" +timeout_prevote_delta = "500ms" +timeout_precommit = "1s" +timeout_precommit_delta = "500ms" +timeout_commit = "5s" + +# 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" + +##### transactions indexer configuration options ##### +[tx_index] + +# What indexer to use for transactions +# +# Options: +# 1) "null" +# 2) "kv" (default) - the simplest possible indexer, backed by key-value storage (defaults to levelDB; see DBBackend). +indexer = "kv" + +# Comma-separated list of compositeKeys to index (by default the only key is "tx.hash") +# Remember that Event has the following structure: type.key +# type: [ +# key: value, +# ... +# ] +# +# You can also index transactions by height by adding "tx.height" key here. +# +# It's recommended to index only a subset of keys due to possible memory +# bloat. This is, of course, depends on the indexer's DB and the volume of +# transactions. +index_keys = "" + +# When set to true, tells indexer to index all compositeKeys (predefined keys: +# "tx.hash", "tx.height" and all keys from DeliverTx responses). +# +# Note this may be not desirable (see the comment above). IndexKeys has a +# precedence over IndexAllKeys (i.e. when given both, IndexKeys will be +# indexed). +index_all_keys = true + +##### 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/simapp/template/.simapp/config/genesis.json b/scripts/simapp/template/.simapp/config/genesis.json new file mode 100644 index 00000000..8b9a1e7a --- /dev/null +++ b/scripts/simapp/template/.simapp/config/genesis.json @@ -0,0 +1,545 @@ +{ + "genesis_time": "2020-07-02T12:07:22.868761784Z", + "chain_id": "testing", + "consensus_params": { + "block": { + "max_bytes": "22020096", + "max_gas": "-1", + "time_iota_ms": "1000" + }, + "evidence": { + "max_age_num_blocks": "100000", + "max_age_duration": "172800000000000" + }, + "validator": { + "pub_key_types": [ + "ed25519" + ] + } + }, + "app_hash": "", + "app_state": { + "auth": { + "params": { + "max_memo_characters": "256", + "tx_sig_limit": "7", + "tx_size_cost_per_byte": "10", + "sig_verify_cost_ed25519": "590", + "sig_verify_cost_secp256k1": "1000" + }, + "accounts": [ + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos19wm6znlfdfwk8zvmfgwxjuw4mgyw2ml4lxx9p7" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos10dyr9899g6t0pelew4nvf4j5c3jcgv0r73qga5" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos1xy4yqngt0nlkdcenxymg8tenrghmek4nmqm28k" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos142u9fgcjdlycfcez3lw8x6x5h7rfjlnfhpw2lx" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos1hsm76p4ahyhl5yh3ve9ur49r5kemhp2r0dcjvx" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos1hhg2rlu9jscacku2wwckws7932qqqu8x3gfgw0" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos1xv9tklw7d82sezh9haa573wufgy59vmwe6xxe5" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos17yg9mssjenmc3jkqth6ulcwj9cxujrxxzezwta" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos1f7j7ryulwjfe9ljplvhtcaxa6wqgula3etktce" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos1lvrwcvrqlc5ktzp2c4t22xgkx29q3y83lktgzl" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos1vkv9sfwaak76weyamqx0flmng2vuquxqcuqukh" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos106jwym4s9aujcmes26myzzwqsccw09sdm0v5au" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos1c7wpeen2uv8thayf7g8q2rgpm29clj0dgrdtzw" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos1mjxpv9ft30wer7ma7kwfxhm42l379xutplrdk6" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u" + } + }, + { + "type": "cosmos-sdk/BaseAccount", + "value": { + "address": "cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej" + } + } + ] + }, + "evidence": { + "evidence": [] + }, + "params": null, + "upgrade": {}, + "slashing": { + "params": { + "signed_blocks_window": "100", + "min_signed_per_window": "0.500000000000000000", + "downtime_jail_duration": "600000000000", + "slash_fraction_double_sign": "0.050000000000000000", + "slash_fraction_downtime": "0.010000000000000000" + }, + "signing_infos": {}, + "missed_blocks": {} + }, + "capability": { + "index": "1", + "owners": [] + }, + "mint": { + "minter": { + "inflation": "0.130000000000000000", + "annual_provisions": "0.000000000000000000" + }, + "params": { + "mint_denom": "ustake", + "inflation_rate_change": "0.130000000000000000", + "inflation_max": "0.200000000000000000", + "inflation_min": "0.070000000000000000", + "goal_bonded": "0.670000000000000000", + "blocks_per_year": "6311520" + } + }, + "ibc": { + "client_genesis": { + "clients": [], + "clients_consensus": [], + "create_localhost": true + }, + "connection_genesis": { + "connections": [], + "client_connection_paths": [] + }, + "channel_genesis": { + "channels": [], + "acknowledgements": [], + "commitments": [], + "send_sequences": [], + "recv_sequences": [], + "ack_sequences": [] + } + }, + "genutil": { + "gentxs": [ + { + "type": "cosmos-sdk/StdTx", + "value": { + "msg": [ + { + "type": "cosmos-sdk/MsgCreateValidator", + "value": { + "description": { + "moniker": "testing" + }, + "commission": { + "rate": "0.100000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.010000000000000000" + }, + "min_self_delegation": "1", + "delegator_address": "cosmos19wm6znlfdfwk8zvmfgwxjuw4mgyw2ml4lxx9p7", + "validator_address": "cosmosvaloper19wm6znlfdfwk8zvmfgwxjuw4mgyw2ml46jjsdd", + "pubkey": "cosmosvalconspub1zcjduepq97t76hzwgxnd6cj6tx6wuyv0d3llh8qr9uhdhdzjrurl5uvxjmcqhul8gk", + "value": { + "denom": "ustake", + "amount": "250000000" + } + } + } + ], + "fee": { + "amount": [], + "gas": "200000" + }, + "signatures": [ + { + "pub_key": "61rphyEDo5veugup1kp9T3NLAQiIk/eI21R0m82zpPRtj1y8GNQ=", + "signature": "QYjIsOmKs2aQAiEMFLd6X7viwHALp/lMonQi4wweMGU1lQGqztfV9xZncNXSJDljAqdj1BGjVxT9slAAaeMJgQ==" + } + ], + "memo": "666829b87c30fe2c35ec3ad9d955fd4acabdda8f@172.17.0.2:26656" + } + } + ] + }, + "bank": { + "send_enabled": true, + "balances": [ + { + "address": "cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos19wm6znlfdfwk8zvmfgwxjuw4mgyw2ml4lxx9p7", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos1xy4yqngt0nlkdcenxymg8tenrghmek4nmqm28k", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos1xv9tklw7d82sezh9haa573wufgy59vmwe6xxe5", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos1f7j7ryulwjfe9ljplvhtcaxa6wqgula3etktce", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos1vkv9sfwaak76weyamqx0flmng2vuquxqcuqukh", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos10dyr9899g6t0pelew4nvf4j5c3jcgv0r73qga5", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos106jwym4s9aujcmes26myzzwqsccw09sdm0v5au", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos14qemq0vw6y3gc3u3e0aty2e764u4gs5le3hada", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos142u9fgcjdlycfcez3lw8x6x5h7rfjlnfhpw2lx", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos1hsm76p4ahyhl5yh3ve9ur49r5kemhp2r0dcjvx", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos1hhg2rlu9jscacku2wwckws7932qqqu8x3gfgw0", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos1cjsxept9rkggzxztslae9ndgpdyt2408lk850u", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos1c7wpeen2uv8thayf7g8q2rgpm29clj0dgrdtzw", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos1mjxpv9ft30wer7ma7kwfxhm42l379xutplrdk6", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos17yg9mssjenmc3jkqth6ulcwj9cxujrxxzezwta", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos17d0jcz59jf68g52vq38tuuncmwwjk42u6mcxej", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + }, + { + "address": "cosmos1lvrwcvrqlc5ktzp2c4t22xgkx29q3y83lktgzl", + "coins": [ + { + "denom": "ucosm", + "amount": "1000000000" + }, + { + "denom": "ustake", + "amount": "1000000000" + } + ] + } + ], + "supply": [] + }, + "transfer": { + "port_id": "transfer" + }, + "gov": { + "starting_proposal_id": "1", + "deposits": null, + "votes": null, + "proposals": null, + "deposit_params": { + "min_deposit": [ + { + "denom": "ustake", + "amount": "10000000" + } + ], + "max_deposit_period": "172800000000000" + }, + "voting_params": { + "voting_period": "172800000000000" + }, + "tally_params": { + "quorum": "0.334000000000000000", + "threshold": "0.500000000000000000", + "veto": "0.334000000000000000" + } + }, + "distribution": { + "params": { + "community_tax": "0.020000000000000000", + "base_proposer_reward": "0.010000000000000000", + "bonus_proposer_reward": "0.040000000000000000", + "withdraw_addr_enabled": true + }, + "fee_pool": { + "community_pool": [] + }, + "delegator_withdraw_infos": [], + "previous_proposer": "", + "outstanding_rewards": [], + "validator_accumulated_commissions": [], + "validator_historical_rewards": [], + "validator_current_rewards": [], + "delegator_starting_infos": [], + "validator_slash_events": [] + }, + "crisis": { + "constant_fee": { + "denom": "ustake", + "amount": "1000" + } + }, + "staking": { + "params": { + "unbonding_time": "1814400000000000", + "max_validators": 100, + "max_entries": 7, + "historical_entries": 100, + "bond_denom": "ustake" + }, + "last_total_power": "0", + "last_validator_powers": null, + "validators": null, + "delegations": null, + "unbonding_delegations": null, + "redelegations": null, + "exported": false + } + } +} \ No newline at end of file diff --git a/scripts/simapp/template/.simapp/config/gentx/gentx-666829b87c30fe2c35ec3ad9d955fd4acabdda8f.json b/scripts/simapp/template/.simapp/config/gentx/gentx-666829b87c30fe2c35ec3ad9d955fd4acabdda8f.json new file mode 100644 index 00000000..53347d31 --- /dev/null +++ b/scripts/simapp/template/.simapp/config/gentx/gentx-666829b87c30fe2c35ec3ad9d955fd4acabdda8f.json @@ -0,0 +1 @@ +{"type":"cosmos-sdk/StdTx","value":{"msg":[{"type":"cosmos-sdk/MsgCreateValidator","value":{"description":{"moniker":"testing"},"commission":{"rate":"0.100000000000000000","max_rate":"0.200000000000000000","max_change_rate":"0.010000000000000000"},"min_self_delegation":"1","delegator_address":"cosmos19wm6znlfdfwk8zvmfgwxjuw4mgyw2ml4lxx9p7","validator_address":"cosmosvaloper19wm6znlfdfwk8zvmfgwxjuw4mgyw2ml46jjsdd","pubkey":"cosmosvalconspub1zcjduepq97t76hzwgxnd6cj6tx6wuyv0d3llh8qr9uhdhdzjrurl5uvxjmcqhul8gk","value":{"denom":"ustake","amount":"250000000"}}}],"fee":{"amount":[],"gas":"200000"},"signatures":[{"pub_key":"61rphyEDo5veugup1kp9T3NLAQiIk/eI21R0m82zpPRtj1y8GNQ=","signature":"QYjIsOmKs2aQAiEMFLd6X7viwHALp/lMonQi4wweMGU1lQGqztfV9xZncNXSJDljAqdj1BGjVxT9slAAaeMJgQ=="}],"memo":"666829b87c30fe2c35ec3ad9d955fd4acabdda8f@172.17.0.2:26656"}} diff --git a/scripts/simapp/template/.simapp/config/node_key.json b/scripts/simapp/template/.simapp/config/node_key.json new file mode 100644 index 00000000..59b1f8eb --- /dev/null +++ b/scripts/simapp/template/.simapp/config/node_key.json @@ -0,0 +1 @@ +{"priv_key":{"type":"tendermint/PrivKeyEd25519","value":"4nAO7LSVDv3A7aRFdKReCGFPG5bbn7N+HmOvD+yy5bD3n3CY+jsnSjhdzhp+Ei7XNS0AXNz6z/hjqq3gkPjbgQ=="}} \ No newline at end of file diff --git a/scripts/simapp/template/.simapp/config/priv_validator_key.json b/scripts/simapp/template/.simapp/config/priv_validator_key.json new file mode 100644 index 00000000..5dec82c2 --- /dev/null +++ b/scripts/simapp/template/.simapp/config/priv_validator_key.json @@ -0,0 +1,11 @@ +{ + "address": "440C0F8873E50FDB8DDEA8F836FBA828ACF221D6", + "pub_key": { + "type": "tendermint/PubKeyEd25519", + "value": "L5ftXE5Bpt1iWlm07hGPbH/7nAMvLtu0Uh8H+nGGlvA=" + }, + "priv_key": { + "type": "tendermint/PrivKeyEd25519", + "value": "RAznCBLeFaH1/OlbKzkB20pxTH+pv3LmC6mP6Pt2hM4vl+1cTkGm3WJaWbTuEY9sf/ucAy8u27RSHwf6cYaW8A==" + } +} \ No newline at end of file diff --git a/scripts/simapp/template/.simapp/keyhash b/scripts/simapp/template/.simapp/keyhash new file mode 100755 index 00000000..0dcb5b5c --- /dev/null +++ b/scripts/simapp/template/.simapp/keyhash @@ -0,0 +1 @@ +$2a$10$2AeLq0go9NVRoA5qsAyTUuBOfVILtn2ZqqYcwx8uuummZAMPa2wt. \ No newline at end of file diff --git a/scripts/simapp/template/.simapp/validator.info b/scripts/simapp/template/.simapp/validator.info new file mode 100644 index 00000000..34b4f3ad --- /dev/null +++ b/scripts/simapp/template/.simapp/validator.info @@ -0,0 +1 @@ +eyJhbGciOiJQQkVTMi1IUzI1NitBMTI4S1ciLCJjcmVhdGVkIjoiMjAyMC0wNy0wMiAxMjowNzoyMy4xNzQ5Nzc4NjMgKzAwMDAgVVRDIG09KzAuMTc3MzMyNDA0IiwiZW5jIjoiQTI1NkdDTSIsInAyYyI6ODE5MiwicDJzIjoicFBxLVd0emZtTGFISHRLNCJ9.hcGBhR2s8TUx0gx_4nkafYHdpp4dTNyIFq9Yuncd_wRE6jY01EcxmA.GA-GnezDkH3vxfGe.Qf1TGdR-mJkct-MLbjPTekI9xzIBpuetY81gx7ifVT5NxptOHDoT4y8lUi96rbOH6wkgI3xYzBg9ieIKFz4-mpSqSOrdwbM4wSy_mOZLLqVE05x2ld3ggSRqFhOVlq2WLydqxEgZQIlXjXRuYq5iEvB1N977bZa8QW6Rs2-8-ZjApboNxp0hkZVyanAXMF70yc0kt3HW_vFfLBbI4xKe9ENAzDhDZvNkK8bpqBJtPIL-HMoD71UYa8z58XN7HKvtozmuqYhU9iRlU6pRTov0HzvepWEFuQaVPo1yXHpmNwwF-8fP03H1wMJ_wTVuLOEjIC-PnvZuEk9KOIm9QFnIXQmw_kaTLSVb1qXfq83F-Hf-Mt4w.pmuxyqelY9tPbPDErVEjAg \ No newline at end of file diff --git a/scripts/simapp/template/run_simd.sh b/scripts/simapp/template/run_simd.sh new file mode 100755 index 00000000..7a66bbbb --- /dev/null +++ b/scripts/simapp/template/run_simd.sh @@ -0,0 +1,7 @@ +#!/bin/sh +set -o errexit -o nounset -o pipefail +command -v shellcheck > /dev/null && shellcheck "$0" + +mkdir -p /root/log + +simd start --rpc.laddr tcp://0.0.0.0:26657 --trace diff --git a/scripts/simapp/template/setup.sh b/scripts/simapp/template/setup.sh new file mode 100755 index 00000000..d274693c --- /dev/null +++ b/scripts/simapp/template/setup.sh @@ -0,0 +1,25 @@ +#!/bin/sh +set -o errexit -o nounset -o pipefail +command -v shellcheck > /dev/null && shellcheck "$0" + +PASSWORD=${PASSWORD:-1234567890} +STAKE=${STAKE_TOKEN:-ustake} +FEE=${FEE_TOKEN:-ucosm} +CHAIN_ID=${CHAIN_ID:-testing} + +simd init --chain-id="$CHAIN_ID" "$CHAIN_ID" +# staking/governance token is hardcoded in config, change this +sed -i "s/\"stake\"/\"$STAKE\"/" "$HOME"/.simapp/config/genesis.json +if ! simcli keys show validator; then + (echo "$PASSWORD"; echo "$PASSWORD") | simcli keys add validator +fi +# hardcode the validator account for this instance +echo "$PASSWORD" | simd add-genesis-account validator "1000000000$STAKE,1000000000$FEE" +# (optionally) add a few more genesis accounts +for addr in "$@"; do + echo $addr + simd add-genesis-account "$addr" "1000000000$STAKE,1000000000$FEE" +done +# submit a genesis validator tx +(echo "$PASSWORD"; echo "$PASSWORD"; echo "$PASSWORD") | simd gentx --name validator --amount "250000000$STAKE" +simd collect-gentxs