diff --git a/README.md b/README.md index 85e3611..20fb55d 100644 --- a/README.md +++ b/README.md @@ -1,69 +1,70 @@ -# Validators School testnet +# Validators School Sputnik Testnet -## Cosmos Hub binaries installation (gaiad) +## Sputnik app-chain binaries installation (sputnikd) + +Sputnik app testnet binary repo +https://github.com/Distributed-Validators-Synctems/sputnik-app-chain-practice -For the sake of simplicity we decided to use Cosmos Hub service binary. In order to install it please follow steps from this [instruction](https://hub.cosmos.network/main/getting-started/installation.html). It is based on the `v7.0.2` version of `gaiad` binary. -Please check versiob of used bianry by running this command `gaiad version --long`. You should get big list of text and at the beginig of it you should have following lines: ``` -name: gaia -server_name: gaiad -version: v7.0.2 -commit: cd27aaaf39cc7819b5164e4baf3fd5aad23ec52a -build_tags: netgo ledger +commit: d3ed2906478c1558e4be1a2e0f98305f7be46832 +cosmos_sdk_version: v0.47.13-ics-lsm +go: go version go1.21.9 linux/amd64 +name: sputnik +server_name: sputnik +version: main-d3ed2906478c1558e4be1a2e0f98305f7be46832 ``` ## GenTx generation ### Init ```bash: -gaiad init "" --chain-id +sputnikd init "" --chain-id ``` ### Generate keys ```bash: # To create new keypair - make sure you save the mnemonics! -gaiad keys add +sputnikd keys add ``` or ``` # Restore existing odin wallet with mnemonic seed phrase. # You will be prompted to enter mnemonic seed. -gaiad keys add --recover +sputnikd keys add --recover ``` or ``` # Add keys using ledger -gaiad keys show --ledger +sputnikd keys show --ledger ``` Check your key: ``` # Query the keystore for your public address -gaiad keys show -a +sputnikd keys show -a ``` ### Create account to genesis ``` -gaiad add-genesis-account 1000000000uatom --keyring-backend +sputnikd add-genesis-account 10000000usputnik ``` ### Create GenTX ``` # Create the gentx. -# Note, your gentx will be rejected if you use any amount greater than 1000000000uatom. -gaiad gentx 1000000000uatom --output-document=gentx.json \ - --chain-id=dvs-protocol-v1 \ +# Note, your gentx will be rejected if you use any amount greater than 10000000usputnik. +sputnikd gentx 10000000usputnik \ + --chain-id= \ --moniker="" \ --website= \ --details= \ --commission-rate="0.10" \ --commission-max-rate="0.20" \ --commission-max-change-rate="0.01" \ - --min-self-delegation="1" \ - --keyring-backend + --min-self-delegation="1" ``` diff --git a/genesis.json b/genesis.json new file mode 100644 index 0000000..bc233dd --- /dev/null +++ b/genesis.json @@ -0,0 +1,597 @@ +{ + "genesis_time": "2024-04-26T16:00:00Z", + "chain_id": "sputnik-practice-1", + "initial_height": "1", + "consensus_params": { + "block": { + "max_bytes": "22020096", + "max_gas": "-1" + }, + "evidence": { + "max_age_num_blocks": "100000", + "max_age_duration": "172800000000000", + "max_bytes": "1048576" + }, + "validator": { + "pub_key_types": [ + "ed25519" + ] + }, + "version": { + "app": "0" + } + }, + "app_hash": "", + "app_state": { + "07-tendermint": null, + "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.auth.v1beta1.BaseAccount", + "address": "sputnik19jw2mrgmwj67suevq0ru55gaygtxvzjtt94stg", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik1sxy7lhpnls5czhqekfwlrury2gu3mk8a0r5yc0", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik19jlzlf66j87se3h56n3y2f3w4f4mk5xv7dnvj9", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik182srt4rz4q43jk60mpnqa2z4yqf07pkz5ej2uj", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik19quygp38u6r9yxnxd03de7c3tew3u9unv4qaa0", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik1adxlv98tncu2cxldv8hd7z78nd4e8ln454wtks", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik1sftzy0q705mgxyps6xp2w5pmxdk8hh5f78zalf", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik142eye7jqahcjtnalle4rgcvuh8suwtjj8qxvd3", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik16hjmsqvlm3f9rxwx59pmhf3x224g4lgdlq8nw5", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik1e5cg8rgm9tgucgam743wqwuyqaf3dg3j9xlghh", + "pub_key": null, + "account_number": "0", + "sequence": "0" + } + ] + }, + "authz": { + "authorization": [] + }, + "bank": { + "params": { + "send_enabled": [], + "default_send_enabled": true + }, + "balances": [ + { + "address": "sputnik19jw2mrgmwj67suevq0ru55gaygtxvzjtt94stg", + "coins": [ + { + "denom": "usputnik", + "amount": "3000000000000" + } + ] + }, + { + "address": "sputnik1sxy7lhpnls5czhqekfwlrury2gu3mk8a0r5yc0", + "coins": [ + { + "denom": "usputnik", + "amount": "11000000" + } + ] + }, + { + "address": "sputnik19jlzlf66j87se3h56n3y2f3w4f4mk5xv7dnvj9", + "coins": [ + { + "denom": "usputnik", + "amount": "1001000000" + } + ] + }, + { + "address": "sputnik182srt4rz4q43jk60mpnqa2z4yqf07pkz5ej2uj", + "coins": [ + { + "denom": "usputnik", + "amount": "11000000" + } + ] + }, + { + "address": "sputnik19quygp38u6r9yxnxd03de7c3tew3u9unv4qaa0", + "coins": [ + { + "denom": "usputnik", + "amount": "11000000" + } + ] + }, + { + "address": "sputnik1adxlv98tncu2cxldv8hd7z78nd4e8ln454wtks", + "coins": [ + { + "denom": "usputnik", + "amount": "11000000" + } + ] + }, + { + "address": "sputnik1sftzy0q705mgxyps6xp2w5pmxdk8hh5f78zalf", + "coins": [ + { + "denom": "usputnik", + "amount": "11000000" + } + ] + }, + { + "address": "sputnik142eye7jqahcjtnalle4rgcvuh8suwtjj8qxvd3", + "coins": [ + { + "denom": "usputnik", + "amount": "1001000000" + } + ] + }, + { + "address": "sputnik16hjmsqvlm3f9rxwx59pmhf3x224g4lgdlq8nw5", + "coins": [ + { + "denom": "usputnik", + "amount": "11000000" + } + ] + }, + { + "address": "sputnik1e5cg8rgm9tgucgam743wqwuyqaf3dg3j9xlghh", + "coins": [ + { + "denom": "usputnik", + "amount": "101000000" + } + ] + } + ], + "supply": [], + "denom_metadata": [], + "send_enabled": [] + }, + "capability": { + "index": "1", + "owners": [] + }, + "consensus": null, + "crisis": { + "constant_fee": { + "denom": "stake", + "amount": "1000" + } + }, + "distribution": { + "params": { + "community_tax": "0.020000000000000000", + "base_proposer_reward": "0.000000000000000000", + "bonus_proposer_reward": "0.000000000000000000", + "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": [] + }, + "evidence": { + "evidence": [] + }, + "feegrant": { + "allowances": [] + }, + "feeibc": { + "identified_fees": [], + "fee_enabled_channels": [], + "registered_payees": [], + "registered_counterparty_payees": [], + "forward_relayers": [] + }, + "genutil": { + "gen_txs": [ + { + "body": { + "messages": [ + { + "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", + "description": { + "moniker": "vbloher", + "identity": "", + "website": "", + "security_contact": "", + "details": "vbloher validator" + }, + "commission": { + "rate": "0.050000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.050000000000000000" + }, + "min_self_delegation": "0", + "delegator_address": "sputnik19jw2mrgmwj67suevq0ru55gaygtxvzjtt94stg", + "validator_address": "sputnikvaloper19jw2mrgmwj67suevq0ru55gaygtxvzjtsejsja", + "pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "cZWM4WFz7SvYwUvNOmQwxftlTSU+bxvlxfQk/q6t1Sw=" + }, + "value": { + "denom": "usputnik", + "amount": "1000000000" + } + } + ], + "memo": "745870cb265d8c3785da62317d46ecfaf7afa20a@95.217.164.96:26656", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [ + { + "public_key": { + "@type": "/cosmos.crypto.secp256k1.PubKey", + "key": "A3EETcwMRspeNcW2QKMUGniVoRxg3ueb2dL0pHp6R6eO" + }, + "mode_info": { + "single": { + "mode": "SIGN_MODE_DIRECT" + } + }, + "sequence": "0" + } + ], + "fee": { + "amount": [], + "gas_limit": "200000", + "payer": "", + "granter": "" + }, + "tip": null + }, + "signatures": [ + "tkhhnAZEqpIWuVgTw8CFCk51eVvfw/ofTj0zfv8pQUkAU/gAkorShLWyNYJ3A67A4Yg5asKM3gi119EmcGcbHA==" + ] + } + ] + }, + "globalfee": { + "params": { + "minimum_gas_prices": [], + "bypass_min_fee_msg_types": [ + "/ibc.core.channel.v1.MsgRecvPacket", + "/ibc.core.channel.v1.MsgAcknowledgement", + "/ibc.core.client.v1.MsgUpdateClient", + "/ibc.core.channel.v1.MsgTimeout", + "/ibc.core.channel.v1.MsgTimeoutOnClose" + ], + "max_total_bypass_min_fee_msg_gas_usage": "1000000" + } + }, + "gov": { + "starting_proposal_id": "1", + "deposits": [], + "votes": [], + "proposals": [], + "deposit_params": null, + "voting_params": null, + "tally_params": null, + "params": { + "min_deposit": [ + { + "denom": "usputnik", + "amount": "1000000" + } + ], + "max_deposit_period": "86400s", + "voting_period": "86400s", + "quorum": "0.334000000000000000", + "threshold": "0.500000000000000000", + "veto_threshold": "0.334000000000000000", + "min_initial_deposit_ratio": "0.000000000000000000", + "burn_vote_quorum": false, + "burn_proposal_deposit_prevote": false, + "burn_vote_veto": true, + "min_deposit_ratio": "0.010000000000000000" + } + }, + "ibc": { + "client_genesis": { + "clients": [], + "clients_consensus": [], + "clients_metadata": [], + "params": { + "allowed_clients": [ + "06-solomachine", + "07-tendermint", + "09-localhost" + ] + }, + "create_localhost": false, + "next_client_sequence": "0" + }, + "connection_genesis": { + "connections": [], + "client_connection_paths": [], + "next_connection_sequence": "0", + "params": { + "max_expected_time_per_block": "30000000000" + } + }, + "channel_genesis": { + "channels": [], + "acknowledgements": [], + "commitments": [], + "receipts": [], + "send_sequences": [], + "recv_sequences": [], + "ack_sequences": [], + "next_channel_sequence": "0" + } + }, + "interchainaccounts": { + "controller_genesis_state": { + "active_channels": [], + "interchain_accounts": [], + "ports": [], + "params": { + "controller_enabled": true + } + }, + "host_genesis_state": { + "active_channels": [], + "interchain_accounts": [], + "port": "icahost", + "params": { + "host_enabled": true, + "allow_messages": [ + "*" + ] + } + } + }, + "metaprotocols": {}, + "mint": { + "minter": { + "inflation": "0.100000000000000000", + "annual_provisions": "0.000000000000000000" + }, + "params": { + "mint_denom": "usputnik", + "inflation_rate_change": "0.130000000000000000", + "inflation_max": "0.200000000000000000", + "inflation_min": "0.070000000000000000", + "goal_bonded": "0.670000000000000000", + "blocks_per_year": "6311520" + } + }, + "packetfowardmiddleware": { + "params": { + "fee_percentage": "0.000000000000000000" + }, + "in_flight_packets": {} + }, + "params": null, + "provider": { + "valset_update_id": "1", + "consumer_states": [], + "unbonding_ops": [], + "mature_unbonding_ops": null, + "valset_update_id_to_height": [], + "consumer_addition_proposals": [], + "consumer_removal_proposals": [], + "params": { + "template_client": { + "chain_id": "", + "trust_level": { + "numerator": "1", + "denominator": "3" + }, + "trusting_period": "0s", + "unbonding_period": "0s", + "max_clock_drift": "10s", + "frozen_height": { + "revision_number": "0", + "revision_height": "0" + }, + "latest_height": { + "revision_number": "0", + "revision_height": "0" + }, + "proof_specs": [ + { + "leaf_spec": { + "hash": "SHA256", + "prehash_key": "NO_HASH", + "prehash_value": "SHA256", + "length": "VAR_PROTO", + "prefix": "AA==" + }, + "inner_spec": { + "child_order": [ + 0, + 1 + ], + "child_size": 33, + "min_prefix_length": 4, + "max_prefix_length": 12, + "empty_child": null, + "hash": "SHA256" + }, + "max_depth": 0, + "min_depth": 0, + "prehash_key_before_comparison": false + }, + { + "leaf_spec": { + "hash": "SHA256", + "prehash_key": "NO_HASH", + "prehash_value": "SHA256", + "length": "VAR_PROTO", + "prefix": "AA==" + }, + "inner_spec": { + "child_order": [ + 0, + 1 + ], + "child_size": 32, + "min_prefix_length": 1, + "max_prefix_length": 1, + "empty_child": null, + "hash": "SHA256" + }, + "max_depth": 0, + "min_depth": 0, + "prehash_key_before_comparison": false + } + ], + "upgrade_path": [ + "upgrade", + "upgradedIBCState" + ], + "allow_update_after_expiry": false, + "allow_update_after_misbehaviour": false + }, + "trusting_period_fraction": "0.66", + "ccv_timeout_period": "2419200s", + "init_timeout_period": "604800s", + "vsc_timeout_period": "3024000s", + "slash_meter_replenish_period": "3600s", + "slash_meter_replenish_fraction": "0.05", + "consumer_reward_denom_registration_fee": { + "denom": "stake", + "amount": "10000000" + }, + "blocks_per_epoch": "600" + }, + "validator_consumer_pubkeys": [], + "validators_by_consumer_addr": [], + "consumer_addrs_to_prune": [], + "init_timeout_timestamps": [], + "exported_vsc_send_timestamps": [] + }, + "ratelimit": { + "params": {}, + "rate_limits": [], + "whitelisted_address_pairs": [], + "blacklisted_denoms": [], + "pending_send_packet_sequence_numbers": [], + "hour_epoch": { + "epoch_number": "0", + "duration": "3600s", + "epoch_start_time": "0001-01-01T00:00:00Z", + "epoch_start_height": "0" + } + }, + "slashing": { + "params": { + "signed_blocks_window": "500", + "min_signed_per_window": "0.500000000000000000", + "downtime_jail_duration": "600s", + "slash_fraction_double_sign": "0.050000000000000000", + "slash_fraction_downtime": "0.010000000000000000" + }, + "signing_infos": [], + "missed_blocks": [] + }, + "staking": { + "params": { + "unbonding_time": "10s", + "max_validators": 100, + "max_entries": 7, + "historical_entries": 10000, + "bond_denom": "usputnik", + "min_commission_rate": "0.000000000000000000", + "validator_bond_factor": "-1.000000000000000000", + "global_liquid_staking_cap": "1.000000000000000000", + "validator_liquid_staking_cap": "1.000000000000000000" + }, + "last_total_power": "0", + "last_validator_powers": [], + "validators": [], + "delegations": [], + "unbonding_delegations": [], + "redelegations": [], + "exported": false, + "tokenize_share_records": [], + "last_tokenize_share_record_id": "0", + "total_liquid_staked_tokens": "0", + "tokenize_share_locks": [] + }, + "transfer": { + "port_id": "transfer", + "denom_traces": [], + "params": { + "send_enabled": true, + "receive_enabled": true + }, + "total_escrowed": [] + }, + "upgrade": {}, + "vesting": {} + } +} \ No newline at end of file diff --git a/gentx/BitKot-gentx.json b/gentx/BitKot-gentx.json new file mode 100644 index 0000000..ef8bf6f --- /dev/null +++ b/gentx/BitKot-gentx.json @@ -0,0 +1 @@ +{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgCreateValidator","description":{"moniker":"BitKot","identity":"","website":"","security_contact":"","details":""},"commission":{"rate":"0.100000000000000000","max_rate":"0.200000000000000000","max_change_rate":"0.010000000000000000"},"min_self_delegation":"0","delegator_address":"sputnik1sxy7lhpnls5czhqekfwlrury2gu3mk8a0r5yc0","validator_address":"sputnikvaloper1sxy7lhpnls5czhqekfwlrury2gu3mk8a5lnyp6","pubkey":{"@type":"/cosmos.crypto.ed25519.PubKey","key":"iiczP3cvLJWYb89OQXwFqX/9xQXTs2+sSHsKWnv42D4="},"value":{"denom":"usputnik","amount":"10000000"}}],"memo":"7413a980948bf2208876d8bb40bb76ea957b1d97@178.215.71.199:26656","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AjYYEmJxImmtlutcy3gecVzUi7Xh/ZbHtzVgVO4zkadW"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"0"}],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""},"tip":null},"signatures":["uwGW2fZoDEJDZKbGLotfH5TVrwFONZ+BX//+OpDayT1q9X7UUeNDrNw0JQj/XZ30a+jZK4tFeZeBlhT5nAu2uw=="]} diff --git a/gentx/asapov-gentx.json b/gentx/asapov-gentx.json new file mode 100644 index 0000000..6bcc2fc --- /dev/null +++ b/gentx/asapov-gentx.json @@ -0,0 +1 @@ +{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgCreateValidator","description":{"moniker":"Asapov","identity":"","website":"","security_contact":"","details":"Asapov validator"},"commission":{"rate":"0.050000000000000000","max_rate":"0.100000000000000000","max_change_rate":"0.100000000000000000"},"min_self_delegation":"0","delegator_address":"sputnik1e5cg8rgm9tgucgam743wqwuyqaf3dg3j9xlghh","validator_address":"sputnikvaloper1e5cg8rgm9tgucgam743wqwuyqaf3dg3j76cgwz","pubkey":{"@type":"/cosmos.crypto.ed25519.PubKey","key":"wVZZ++m2rBCVjg3ySUzJ8jzYkqJFGOEqA/Nim0YiWTk="},"value":{"denom":"usputnik","amount":"100000000"}}],"memo":"2c07a347bab360e5645298e2ad35a0487b19f7bd@62.171.145.87:26656","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AoG36ZTsWlNH6bWEiQmhZu3LC7TEZA8Iel6IhO0HZkkK"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"0"}],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""},"tip":null},"signatures":["k6pgDiy6WLl+rPvO5zVrYNP9TIq2RSWphPFzTEb07MNrGu36RWZLvSfJ2FImiKCFEnd7JezKmG9Jc76bNJ4iUw=="]} diff --git a/gentx/it.node.json b/gentx/it.node.json new file mode 100644 index 0000000..e810684 --- /dev/null +++ b/gentx/it.node.json @@ -0,0 +1 @@ +{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgCreateValidator","description":{"moniker":"it/node","identity":"","website":"","security_contact":"","details":"it/node validator"},"commission":{"rate":"0.050000000000000000","max_rate":"0.100000000000000000","max_change_rate":"0.100000000000000000"},"min_self_delegation":"0","delegator_address":"sputnik19jlzlf66j87se3h56n3y2f3w4f4mk5xv7dnvj9","validator_address":"sputnikvaloper19jlzlf66j87se3h56n3y2f3w4f4mk5xv935vts","pubkey":{"@type":"/cosmos.crypto.ed25519.PubKey","key":"qnHacwRp9nlI43hX2z9weiNRqNoD5tMWRkQJMyDbDu0="},"value":{"denom":"usputnik","amount":"1000000000"}}],"memo":"8e5fa4053df98c8212cbbe64b46891a79c96d4d4@162.55.160.57:26656","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AsoGxs2nEnE9Hvyajb++j/Xu6F7zvcIXgnunRtSiGxDl"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"0"}],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""},"tip":null},"signatures":["43hD/ixMxBWC8ScvrDzHfqKUoydXDqwSchJdsUJGgl4EdDKflMSqMFNfBjrzsBjOFQ75wSn1tb29hkmgoSKGGw=="]} diff --git a/gentx/nixem-gentx.json b/gentx/nixem-gentx.json new file mode 100644 index 0000000..9959372 --- /dev/null +++ b/gentx/nixem-gentx.json @@ -0,0 +1,62 @@ +{ + "body": { + "messages": [ + { + "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", + "description": { + "moniker": "nixem", + "identity": "", + "website": "", + "security_contact": "", + "details": "" + }, + "commission": { + "rate": "0.100000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.010000000000000000" + }, + "min_self_delegation": "0", + "delegator_address": "sputnik182srt4rz4q43jk60mpnqa2z4yqf07pkz5ej2uj", + "validator_address": "sputnikvaloper182srt4rz4q43jk60mpnqa2z4yqf07pkz094298", + "pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "h7lDwokcEUWeQH/uFIxMc9pdSRQK9PwPq97NvwGhWic=" + }, + "value": { + "denom": "usputnik", + "amount": "1000000" + } + } + ], + "memo": "b4211e378d36bf02818080d117603b37cee5e514@64.23.253.211:26656", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [ + { + "public_key": { + "@type": "/cosmos.crypto.secp256k1.PubKey", + "key": "A9daPtlb57S6LSXYT4DGeBHpvASjTxuEJPZv1tZy27BH" + }, + "mode_info": { + "single": { + "mode": "SIGN_MODE_DIRECT" + } + }, + "sequence": "0" + } + ], + "fee": { + "amount": [], + "gas_limit": "200000", + "payer": "", + "granter": "" + }, + "tip": null + }, + "signatures": [ + "on0hzrFZRBKLCjc/0wALgI0ondswraIx99PJEf3+4DE8zH0bV7UK7OR99B+KtByvL2oEUee8roRulxnodfIPAg==" + ] +} diff --git a/gentx/nodes-fortress-gentx.json b/gentx/nodes-fortress-gentx.json new file mode 100644 index 0000000..7c8963b --- /dev/null +++ b/gentx/nodes-fortress-gentx.json @@ -0,0 +1 @@ +{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgCreateValidator","description":{"moniker":"Nodes Fortress","identity":"","website":"","security_contact":"","details":"Nodes Fortress"},"commission":{"rate":"0.100000000000000000","max_rate":"0.100000000000000000","max_change_rate":"0.100000000000000000"},"min_self_delegation":"0","delegator_address":"sputnik19quygp38u6r9yxnxd03de7c3tew3u9unv4qaa0","validator_address":"sputnikvaloper19quygp38u6r9yxnxd03de7c3tew3u9unhf8ay6","pubkey":{"@type":"/cosmos.crypto.ed25519.PubKey","key":"nJKp1GVv+A4r2u/hGK7wCqgi4zJd6U7Xv8uWpPQ3AGo="},"value":{"denom":"usputnik","amount":"10000000"}}],"memo":"af6a8ce05b07dadf452fde8c645814c579d06142@88.218.60.250:26656","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AsdkL8ZvXrmQuiO0g7hNvwk7ccSp8OI6qNKSd9EEZ8Hn"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"0"}],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""},"tip":null},"signatures":["QcYDE1n0VlSCCISEgFqOeWuDWT7WJTl6PgL7PehV44ln0OYWUf4PzVPiE4p3IPdtYNMBhqgc2uPKZAWOWVeI1g=="]} diff --git a/gentx/pavel-gentx.json b/gentx/pavel-gentx.json new file mode 100644 index 0000000..615ac49 --- /dev/null +++ b/gentx/pavel-gentx.json @@ -0,0 +1,62 @@ +{ + "body": { + "messages": [ + { + "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", + "description": { + "moniker": "pavel", + "identity": "", + "website": "", + "security_contact": "", + "details": "" + }, + "commission": { + "rate": "0.100000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.010000000000000000" + }, + "min_self_delegation": "0", + "delegator_address": "sputnik1adxlv98tncu2cxldv8hd7z78nd4e8ln454wtks", + "validator_address": "sputnikvaloper1adxlv98tncu2cxldv8hd7z78nd4e8ln40fft09", + "pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "1YUbv9gEpx2AmvUmb+H5f1/sPLMrE/7/CgmZtrkhqyg=" + }, + "value": { + "denom": "usputnik", + "amount": "10000000" + } + } + ], + "memo": "d236c62edc593476ad79bb13b028ab80e1c15d3a@128.199.142.104:26656", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [ + { + "public_key": { + "@type": "/cosmos.crypto.secp256k1.PubKey", + "key": "A91CspwDo82R4WVPiVVUp9OQpijHhmS549u1B66E3hDZ" + }, + "mode_info": { + "single": { + "mode": "SIGN_MODE_DIRECT" + } + }, + "sequence": "0" + } + ], + "fee": { + "amount": [], + "gas_limit": "200000", + "payer": "", + "granter": "" + }, + "tip": null + }, + "signatures": [ + "41SCQOAx2ZlcXc6QMu0xhiyAfR2VwhgEphlxDp9cZAFfRb5ACxzt4vIKrtLsUNlklHVoI2uv7RHm6MehaxBBeg==" + ] +} diff --git a/gentx/plantree-gentx.json b/gentx/plantree-gentx.json new file mode 100644 index 0000000..bfbabc8 --- /dev/null +++ b/gentx/plantree-gentx.json @@ -0,0 +1 @@ +{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgCreateValidator","description":{"moniker":"plantree-validator","identity":"1F7E6B6D2AD62DCD","website":"plantree.org","security_contact":"","details":"Stake to reward the Nature!"},"commission":{"rate":"0.050000000000000000","max_rate":"0.100000000000000000","max_change_rate":"0.010000000000000000"},"min_self_delegation":"0","delegator_address":"sputnik1sftzy0q705mgxyps6xp2w5pmxdk8hh5f78zalf","validator_address":"sputnikvaloper1sftzy0q705mgxyps6xp2w5pmxdk8hh5f9m9axu","pubkey":{"@type":"/cosmos.crypto.ed25519.PubKey","key":"YgpFfn8FnpBUy6zVLA1d35sbAAVqiC1IIaFIvsHWh5I="},"value":{"denom":"usputnik","amount":"10000000"}}],"memo":"db0b3f18280de5ef4cb294912df6a3bf2c1a3f49@95.214.53.164:26656","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"A2jGolyHJkGLR71TH+vzB6++OiwnlnRTY/f1A4jWG94N"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"0"}],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""},"tip":null},"signatures":["q6f85S/TALn1eDg6aMDgn6zPKUgvEl3Qz9Gy5WApYb9e9EUY/rzYpI7h11s19uAc1UHArADs/gHUZWgQ3Dgdlg=="]} diff --git a/gentx/serebriakov_gentx.json b/gentx/serebriakov_gentx.json new file mode 100644 index 0000000..83322c8 --- /dev/null +++ b/gentx/serebriakov_gentx.json @@ -0,0 +1,63 @@ +{ + "body": { + "messages": [ + { + "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", + "description": { + "moniker": "5Dimension", + "identity": "", + "website": "", + "security_contact": "", + "details": "" + }, + "commission": { + "rate": "0.100000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.010000000000000000" + }, + "min_self_delegation": "0", + "delegator_address": "sputnik142eye7jqahcjtnalle4rgcvuh8suwtjj8qxvd3", + "validator_address": "sputnikvaloper142eye7jqahcjtnalle4rgcvuh8suwtjjuupv5y", + "pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "xb14Va/1QJa4M2Ka0ypgz6xxa8O7FhSoMSL4BH+/Wo0=" + }, + "value": { + "denom": "usputnik", + "amount": "1000000000" + } + } + ], + "memo": "828cae301a7025f23a953275fb30d00ccf8d91d8@170.64.145.180:26656", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [ + { + "public_key": { + "@type": "/cosmos.crypto.secp256k1.PubKey", + "key": "Atz90GjUw9E8maF4MWzrVIWfqRhesKig9Bzq2DZp2zTC" + }, + "mode_info": { + "single": { + "mode": "SIGN_MODE_DIRECT" + } + }, + "sequence": "0" + } + ], + "fee": { + "amount": [], + "gas_limit": "200000", + "payer": "", + "granter": "" + }, + "tip": null + }, + "signatures": [ + "Y4+V0iuHIiIqyAN+zoahlHN+F5ACApi4Tg3YyDks+cVHRvbny48M2sYKQEJ4zDg/n/2Sy7Xk4Pr3iJENB0Cj4w==" + ] + } + diff --git a/gentx/ssargiuz-gentx.json b/gentx/ssargiuz-gentx.json new file mode 100644 index 0000000..013ddd9 --- /dev/null +++ b/gentx/ssargiuz-gentx.json @@ -0,0 +1,62 @@ +{ + "body": { + "messages": [ + { + "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", + "description": { + "moniker": "ssargiuz", + "identity": "67AED17AE95645A8", + "website": "", + "security_contact": "", + "details": "" + }, + "commission": { + "rate": "0.070000000000000000", + "max_rate": "0.150000000000000000", + "max_change_rate": "0.100000000000000000" + }, + "min_self_delegation": "0", + "delegator_address": "sputnik16hjmsqvlm3f9rxwx59pmhf3x224g4lgdlq8nw5", + "validator_address": "sputnikvaloper16hjmsqvlm3f9rxwx59pmhf3x224g4lgdyuqnhp", + "pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "BV+NeJ67uxClXPs0woRwj7S3/5x/Zc7c3u25ORpm0Us=" + }, + "value": { + "denom": "usputnik", + "amount": "10000000" + } + } + ], + "memo": "3e4d12fcf5cf6c7e1ae0ced09755d1fe6e138e01@51.79.101.181:26656", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [ + { + "public_key": { + "@type": "/cosmos.crypto.secp256k1.PubKey", + "key": "AovgTX11M75wjqgpEHgAiJOIRilIaYXprhFeFjSV/is/" + }, + "mode_info": { + "single": { + "mode": "SIGN_MODE_DIRECT" + } + }, + "sequence": "0" + } + ], + "fee": { + "amount": [], + "gas_limit": "200000", + "payer": "", + "granter": "" + }, + "tip": null + }, + "signatures": [ + "O/f6sJpkm02z1BnhAFgn6m0L0NTbyRqKBMUTybmggtgfNIsr49Mhz8NtSB8Z8BCxzGsYJ4EnLcwya8MLqGLntg==" + ] +} diff --git a/gentx/vbloher-gentx.json b/gentx/vbloher-gentx.json new file mode 100644 index 0000000..43d1c7a --- /dev/null +++ b/gentx/vbloher-gentx.json @@ -0,0 +1,62 @@ +{ + "body": { + "messages": [ + { + "@type": "/cosmos.staking.v1beta1.MsgCreateValidator", + "description": { + "moniker": "vbloher", + "identity": "", + "website": "", + "security_contact": "", + "details": "" + }, + "commission": { + "rate": "0.100000000000000000", + "max_rate": "0.200000000000000000", + "max_change_rate": "0.010000000000000000" + }, + "min_self_delegation": "0", + "delegator_address": "sputnik19jw2mrgmwj67suevq0ru55gaygtxvzjtt94stg", + "validator_address": "sputnikvaloper19jw2mrgmwj67suevq0ru55gaygtxvzjtsejsja", + "pubkey": { + "@type": "/cosmos.crypto.ed25519.PubKey", + "key": "cZWM4WFz7SvYwUvNOmQwxftlTSU+bxvlxfQk/q6t1Sw=" + }, + "value": { + "denom": "usputnik", + "amount": "10000000" + } + } + ], + "memo": "745870cb265d8c3785da62317d46ecfaf7afa20a@95.217.164.96:26656", + "timeout_height": "0", + "extension_options": [], + "non_critical_extension_options": [] + }, + "auth_info": { + "signer_infos": [ + { + "public_key": { + "@type": "/cosmos.crypto.secp256k1.PubKey", + "key": "A3EETcwMRspeNcW2QKMUGniVoRxg3ueb2dL0pHp6R6eO" + }, + "mode_info": { + "single": { + "mode": "SIGN_MODE_DIRECT" + } + }, + "sequence": "0" + } + ], + "fee": { + "amount": [], + "gas_limit": "200000", + "payer": "", + "granter": "" + }, + "tip": null + }, + "signatures": [ + "BzKPrnDnAr6pKC/QKSWhL4oULFl4U+93KSfrOTxNjsEjxgjam2TR1T+Grgb2edDI+YDfWf7DoGTkzhtHlfUuPg==" + ] +} diff --git a/pre-genesis.json b/pre-genesis.json new file mode 100644 index 0000000..b1c0383 --- /dev/null +++ b/pre-genesis.json @@ -0,0 +1,534 @@ +{ + "genesis_time": "2024-04-26T16:00:00Z", + "chain_id": "sputnik-practice-1", + "initial_height": "1", + "consensus_params": { + "block": { + "max_bytes": "22020096", + "max_gas": "-1" + }, + "evidence": { + "max_age_num_blocks": "100000", + "max_age_duration": "172800000000000", + "max_bytes": "1048576" + }, + "validator": { + "pub_key_types": [ + "ed25519" + ] + }, + "version": { + "app": "0" + } + }, + "app_hash": "", + "app_state": { + "07-tendermint": null, + "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.auth.v1beta1.BaseAccount", + "address": "sputnik19jw2mrgmwj67suevq0ru55gaygtxvzjtt94stg", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik1sxy7lhpnls5czhqekfwlrury2gu3mk8a0r5yc0", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik19jlzlf66j87se3h56n3y2f3w4f4mk5xv7dnvj9", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik182srt4rz4q43jk60mpnqa2z4yqf07pkz5ej2uj", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik19quygp38u6r9yxnxd03de7c3tew3u9unv4qaa0", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik1adxlv98tncu2cxldv8hd7z78nd4e8ln454wtks", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik1sftzy0q705mgxyps6xp2w5pmxdk8hh5f78zalf", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik142eye7jqahcjtnalle4rgcvuh8suwtjj8qxvd3", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik16hjmsqvlm3f9rxwx59pmhf3x224g4lgdlq8nw5", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "sputnik1e5cg8rgm9tgucgam743wqwuyqaf3dg3j9xlghh", + "pub_key": null, + "account_number": "0", + "sequence": "0" + } + ] + }, + "authz": { + "authorization": [] + }, + "bank": { + "params": { + "send_enabled": [], + "default_send_enabled": true + }, + "balances": [ + { + "address": "sputnik19jw2mrgmwj67suevq0ru55gaygtxvzjtt94stg", + "coins": [ + { + "denom": "usputnik", + "amount": "3000000000000" + } + ] + }, + { + "address": "sputnik1sxy7lhpnls5czhqekfwlrury2gu3mk8a0r5yc0", + "coins": [ + { + "denom": "usputnik", + "amount": "11000000" + } + ] + }, + { + "address": "sputnik19jlzlf66j87se3h56n3y2f3w4f4mk5xv7dnvj9", + "coins": [ + { + "denom": "usputnik", + "amount": "1001000000" + } + ] + }, + { + "address": "sputnik182srt4rz4q43jk60mpnqa2z4yqf07pkz5ej2uj", + "coins": [ + { + "denom": "usputnik", + "amount": "11000000" + } + ] + }, + { + "address": "sputnik19quygp38u6r9yxnxd03de7c3tew3u9unv4qaa0", + "coins": [ + { + "denom": "usputnik", + "amount": "11000000" + } + ] + }, + { + "address": "sputnik1adxlv98tncu2cxldv8hd7z78nd4e8ln454wtks", + "coins": [ + { + "denom": "usputnik", + "amount": "11000000" + } + ] + }, + { + "address": "sputnik1sftzy0q705mgxyps6xp2w5pmxdk8hh5f78zalf", + "coins": [ + { + "denom": "usputnik", + "amount": "11000000" + } + ] + }, + { + "address": "sputnik142eye7jqahcjtnalle4rgcvuh8suwtjj8qxvd3", + "coins": [ + { + "denom": "usputnik", + "amount": "1001000000" + } + ] + }, + { + "address": "sputnik16hjmsqvlm3f9rxwx59pmhf3x224g4lgdlq8nw5", + "coins": [ + { + "denom": "usputnik", + "amount": "11000000" + } + ] + }, + { + "address": "sputnik1e5cg8rgm9tgucgam743wqwuyqaf3dg3j9xlghh", + "coins": [ + { + "denom": "usputnik", + "amount": "101000000" + } + ] + } + ], + "supply": [], + "denom_metadata": [], + "send_enabled": [] + }, + "capability": { + "index": "1", + "owners": [] + }, + "consensus": null, + "crisis": { + "constant_fee": { + "denom": "stake", + "amount": "1000" + } + }, + "distribution": { + "params": { + "community_tax": "0.020000000000000000", + "base_proposer_reward": "0.000000000000000000", + "bonus_proposer_reward": "0.000000000000000000", + "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": [] + }, + "evidence": { + "evidence": [] + }, + "feegrant": { + "allowances": [] + }, + "feeibc": { + "identified_fees": [], + "fee_enabled_channels": [], + "registered_payees": [], + "registered_counterparty_payees": [], + "forward_relayers": [] + }, + "genutil": { + "gen_txs": [] + }, + "globalfee": { + "params": { + "minimum_gas_prices": [], + "bypass_min_fee_msg_types": [ + "/ibc.core.channel.v1.MsgRecvPacket", + "/ibc.core.channel.v1.MsgAcknowledgement", + "/ibc.core.client.v1.MsgUpdateClient", + "/ibc.core.channel.v1.MsgTimeout", + "/ibc.core.channel.v1.MsgTimeoutOnClose" + ], + "max_total_bypass_min_fee_msg_gas_usage": "1000000" + } + }, + "gov": { + "starting_proposal_id": "1", + "deposits": [], + "votes": [], + "proposals": [], + "deposit_params": null, + "voting_params": null, + "tally_params": null, + "params": { + "min_deposit": [ + { + "denom": "usputnik", + "amount": "1000000" + } + ], + "max_deposit_period": "86400s", + "voting_period": "86400s", + "quorum": "0.334000000000000000", + "threshold": "0.500000000000000000", + "veto_threshold": "0.334000000000000000", + "min_initial_deposit_ratio": "0.000000000000000000", + "burn_vote_quorum": false, + "burn_proposal_deposit_prevote": false, + "burn_vote_veto": true, + "min_deposit_ratio": "0.010000000000000000" + } + }, + "ibc": { + "client_genesis": { + "clients": [], + "clients_consensus": [], + "clients_metadata": [], + "params": { + "allowed_clients": [ + "06-solomachine", + "07-tendermint", + "09-localhost" + ] + }, + "create_localhost": false, + "next_client_sequence": "0" + }, + "connection_genesis": { + "connections": [], + "client_connection_paths": [], + "next_connection_sequence": "0", + "params": { + "max_expected_time_per_block": "30000000000" + } + }, + "channel_genesis": { + "channels": [], + "acknowledgements": [], + "commitments": [], + "receipts": [], + "send_sequences": [], + "recv_sequences": [], + "ack_sequences": [], + "next_channel_sequence": "0" + } + }, + "interchainaccounts": { + "controller_genesis_state": { + "active_channels": [], + "interchain_accounts": [], + "ports": [], + "params": { + "controller_enabled": true + } + }, + "host_genesis_state": { + "active_channels": [], + "interchain_accounts": [], + "port": "icahost", + "params": { + "host_enabled": true, + "allow_messages": [ + "*" + ] + } + } + }, + "metaprotocols": {}, + "mint": { + "minter": { + "inflation": "0.100000000000000000", + "annual_provisions": "0.000000000000000000" + }, + "params": { + "mint_denom": "usputnik", + "inflation_rate_change": "0.130000000000000000", + "inflation_max": "0.200000000000000000", + "inflation_min": "0.070000000000000000", + "goal_bonded": "0.670000000000000000", + "blocks_per_year": "6311520" + } + }, + "packetfowardmiddleware": { + "params": { + "fee_percentage": "0.000000000000000000" + }, + "in_flight_packets": {} + }, + "params": null, + "provider": { + "valset_update_id": "1", + "consumer_states": [], + "unbonding_ops": [], + "mature_unbonding_ops": null, + "valset_update_id_to_height": [], + "consumer_addition_proposals": [], + "consumer_removal_proposals": [], + "params": { + "template_client": { + "chain_id": "", + "trust_level": { + "numerator": "1", + "denominator": "3" + }, + "trusting_period": "0s", + "unbonding_period": "0s", + "max_clock_drift": "10s", + "frozen_height": { + "revision_number": "0", + "revision_height": "0" + }, + "latest_height": { + "revision_number": "0", + "revision_height": "0" + }, + "proof_specs": [ + { + "leaf_spec": { + "hash": "SHA256", + "prehash_key": "NO_HASH", + "prehash_value": "SHA256", + "length": "VAR_PROTO", + "prefix": "AA==" + }, + "inner_spec": { + "child_order": [ + 0, + 1 + ], + "child_size": 33, + "min_prefix_length": 4, + "max_prefix_length": 12, + "empty_child": null, + "hash": "SHA256" + }, + "max_depth": 0, + "min_depth": 0, + "prehash_key_before_comparison": false + }, + { + "leaf_spec": { + "hash": "SHA256", + "prehash_key": "NO_HASH", + "prehash_value": "SHA256", + "length": "VAR_PROTO", + "prefix": "AA==" + }, + "inner_spec": { + "child_order": [ + 0, + 1 + ], + "child_size": 32, + "min_prefix_length": 1, + "max_prefix_length": 1, + "empty_child": null, + "hash": "SHA256" + }, + "max_depth": 0, + "min_depth": 0, + "prehash_key_before_comparison": false + } + ], + "upgrade_path": [ + "upgrade", + "upgradedIBCState" + ], + "allow_update_after_expiry": false, + "allow_update_after_misbehaviour": false + }, + "trusting_period_fraction": "0.66", + "ccv_timeout_period": "2419200s", + "init_timeout_period": "604800s", + "vsc_timeout_period": "3024000s", + "slash_meter_replenish_period": "3600s", + "slash_meter_replenish_fraction": "0.05", + "consumer_reward_denom_registration_fee": { + "denom": "stake", + "amount": "10000000" + }, + "blocks_per_epoch": "600" + }, + "validator_consumer_pubkeys": [], + "validators_by_consumer_addr": [], + "consumer_addrs_to_prune": [], + "init_timeout_timestamps": [], + "exported_vsc_send_timestamps": [] + }, + "ratelimit": { + "params": {}, + "rate_limits": [], + "whitelisted_address_pairs": [], + "blacklisted_denoms": [], + "pending_send_packet_sequence_numbers": [], + "hour_epoch": { + "epoch_number": "0", + "duration": "3600s", + "epoch_start_time": "0001-01-01T00:00:00Z", + "epoch_start_height": "0" + } + }, + "slashing": { + "params": { + "signed_blocks_window": "500", + "min_signed_per_window": "0.500000000000000000", + "downtime_jail_duration": "600s", + "slash_fraction_double_sign": "0.050000000000000000", + "slash_fraction_downtime": "0.010000000000000000" + }, + "signing_infos": [], + "missed_blocks": [] + }, + "staking": { + "params": { + "unbonding_time": "10s", + "max_validators": 100, + "max_entries": 7, + "historical_entries": 10000, + "bond_denom": "usputnik", + "min_commission_rate": "0.000000000000000000", + "validator_bond_factor": "-1.000000000000000000", + "global_liquid_staking_cap": "1.000000000000000000", + "validator_liquid_staking_cap": "1.000000000000000000" + }, + "last_total_power": "0", + "last_validator_powers": [], + "validators": [], + "delegations": [], + "unbonding_delegations": [], + "redelegations": [], + "exported": false, + "tokenize_share_records": [], + "last_tokenize_share_record_id": "0", + "total_liquid_staked_tokens": "0", + "tokenize_share_locks": [] + }, + "transfer": { + "port_id": "transfer", + "denom_traces": [], + "params": { + "send_enabled": true, + "receive_enabled": true + }, + "total_escrowed": [] + }, + "upgrade": {}, + "vesting": {} + } +} diff --git a/testnet_instructions.md b/testnet_instructions.md index 9d9caf0..6eaa798 100644 --- a/testnet_instructions.md +++ b/testnet_instructions.md @@ -2,13 +2,13 @@ ## **Quick Links** -Genesis: `link` +Genesis: `https://raw.githubusercontent.com/Distributed-Validators-Synctems/sputnik-school-testnet/master/genesis.json` -Block explorer: `TBA` +Block explorer: https://sputnik-testnet-explorer.nodejumper.io/sputnik-school-testnet/staking -Seeds: TBA +Peers: `745870cb265d8c3785da62317d46ecfaf7afa20a@95.217.164.96:26656,db0b3f18280de5ef4cb294912df6a3bf2c1a3f49@95.214.53.164:26656,7413a980948bf2208876d8bb40bb76ea957b1d97@178.215.71.199:26656,d236c62edc593476ad79bb13b028ab80e1c15d3a@128.199.142.104:26656,af6a8ce05b07dadf452fde8c645814c579d06142@88.218.60.250:26656` -Chain Id: TBA +Chain Id: `sputnik-practice-1` ## **Hardware Requirements** @@ -20,160 +20,203 @@ Here are the minimal hardware configs required for running a validator/sentry no ## **Software Requirements** -- Ubuntu 20.04+ or Debian 10+ -- [Go v1.18+](https://golang.org/doc/install) +- Ubuntu 22.04+ +- [Go v1.21](https://golang.org/doc/install) -## **Install Gaiad, Generate Wallet and Submit GenTx** +## **Install sputnikd, Generate Wallet and Submit GenTx** -### ****Cosmos Hub binaries installation (gaiad)**** +### ****Sputnik app-chain binaries installation (sputnikd)**** -For the sake of simplicity we decided to use Cosmos Hub service binary. In order to install it please follow steps from official Cosmos HUB [instructions](https://hub.cosmos.network/main/getting-started/installation.html). It is based on the `v7.0.2` version of `gaiad` binary. Please check version of used binary by running this command `gaiad version --long`. You should get big list of text and at the beginning of it you should have following lines: +Sputnik app testnet binary repo +https://github.com/Distributed-Validators-Synctems/sputnik-app-chain-practice ``` -name: gaia -server_name: gaiad -version: v7.0.2 -commit: cd27aaaf39cc7819b5164e4baf3fd5aad23ec52a -build_tags: netgo ledger +commit: d3ed2906478c1558e4be1a2e0f98305f7be46832 +cosmos_sdk_version: v0.47.13-ics-lsm +go: go version go1.21.9 linux/amd64 +name: sputnik +server_name: sputnik +version: main-d3ed2906478c1558e4be1a2e0f98305f7be46832 ``` ### Network init -`cd ~` -`gaiad init "" --chain-id ` +```bash +cd ~ +sputnikd init "" --chain-id sputnik-practice-1 +``` example: -`gaiad init course-participant-1 --chain-id dvs-course-testnet-1` +```bash +sputnikd init course-participant-1 --chain-id dvs-course-testnet +``` ### **Create Validator Key** It's very important that after you run this command that you save the seed phrase that is generated. If you do not save you phrase, you will not be able to recover this account. -`gaiad keys add ` +`sputnikd keys add ` or restore existing wallet with mnemonic seed phrase. You will be prompted to enter mnemonic seed. -`gaiad keys add --recover` +`sputnikd keys add --recover` or add keys using ledger -`gaiad keys add --ledger` +`sputnikd keys add --ledger` Check your key: -`gaiad keys show -a` +`sputnikd keys show -a` ### ****Create account to genesis**** -This command will help you to create account in your local genesis file. It will add funds to your address. Otherwise `gaiad getntx` command will fail because of lack of funds. +This command will help you to create account in your local genesis file. It will add funds to your address. Otherwise `sputnikd getntx` command will fail because of lack of funds. -`gaiad add-genesis-account 1000000000uatom` +`sputnikd add-genesis-account 1000000000usputnik` ### ****Create GenTX**** -Create the gentx file. Note, your gentx will be rejected if you use any amount greater than 1000000000uatom. +Create the gentx file. Note, your gentx will be rejected if you use any amount greater than 10000000usputnik. ``` -gaiad gentx 1000000000uatom --output-document=gentx.json \ - --chain-id=dvs-course-testnet-1 \ +sputnikd gentx 10000000usputnik \ + --chain-id=sputnik-practice-1 \ --moniker="" \ --website= \ --details= \ --commission-rate="0.10" \ --commission-max-rate="0.20" \ - --commission-max-change-rate="0.01" \ - --min-self-delegation="1" + --commission-max-change-rate="0.01" ``` -After gentx will be ready you can find it in the `~/.gaiad/config/gentx` directory. After that you will be required to upload it into `gentxs` directory of this repository. Please name it using following template `gentx-.json`. +After gentx will be ready you can find it in the `~/.sputnik/config/gentx` directory. After that you will be required to upload it into `gentxs` directory of this repository. Please name it using following template `gentx-.json`. In order to upload this file you will need to create fork of this repository. Please click on “Fork” button in the top right corner of this page, and name it somehow or leave repository name unchanged. - -![fork.png](https://raw.githubusercontent.com/kuraassh/school-testnet/master/fork.png) - After that you can upload `gentx` file into appropriate directory of your repository. Next, you will need to create a PR (Pull request) to add changes from your cloned repository into main repository. - Please go into root directory of your repository and click on “Contribute” button. - -![contribute.png](https://raw.githubusercontent.com/kuraassh/school-testnet/master/contribute.png) - You will see this popup window. -![popup.png](https://raw.githubusercontent.com/kuraassh/school-testnet/master/popup.png) - Please “Open pull request”, check data, put some description into text box field and click on “Create pull request” inside it. Congratulations you have created your first pull request! ### Create validator after genesis ``` -gaiad tx staking create-validator \ - --amount=1000000000uatom \ - --pubkey=$(gaiad tendermint show-validator) \ - --chain-id=dvs-course-testnet-1 \ +sputnikd tx staking create-validator \ + --amount=10000000usputnik \ + --pubkey=$(sputnikd tendermint show-validator) \ + --chain-id=sputnik-practice-1 \ --moniker="" \ - --website= \ + --website=""\ --commission-rate="0.10" \ --commission-max-rate="0.20" \ --commission-max-change-rate="0.01" \ - --min-self-delegation="1" \ --gas="auto" \ - --gas-prices="0.0025uatom" \ + --gas-adjustment=1.3 \ + --gas-prices="0.1usputnik" \ --from= ``` ## Run node -### ****Set Up Cosmovisor**** +Install `curl` +``` +sudo apt install curl -y +``` -Set up cosmovisor to ensure any future upgrades happen flawlessly. To install Cosmovisor: +### ****Download genesis**** -`go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@v1.0.0` +To download `genesis.json` file +``` +curl https://raw.githubusercontent.com/Distributed-Validators-Synctems/sputnik-school-testnet/master/genesis.json > ~/.sputnik/config/genesis.json +``` +After downloading you need to verify your `genesis.json` checksum -Create the required directories: +``` +sha256sum ~/.sputnik/config/genesis.json +``` +you should see `d416341bd5dd384bb78dc43c0a4413014827c54e82989df9fcc28d3d5df5e8ab` in the output. + +Set the peers +```bash +PEERS="745870cb265d8c3785da62317d46ecfaf7afa20a@95.217.164.96:26656,db0b3f18280de5ef4cb294912df6a3bf2c1a3f49@95.214.53.164:26656,7413a980948bf2208876d8bb40bb76ea957b1d97@178.215.71.199:26656,d236c62edc593476ad79bb13b028ab80e1c15d3a@128.199.142.104:26656,af6a8ce05b07dadf452fde8c645814c579d06142@88.218.60.250:26656" +sed -i 's|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.sputnik/config/config.toml ``` -mkdir -p ~/.gaiad/cosmovisor/genesis/bin -mkdir -p ~/.gaiad/cosmovisor/upgrades + +Set `minimum-gas-prices` to `.sputnik/config/app.toml` +```bash +MIN_GAS_PRICES=0.001usputnik +sed -i 's|^minimum-gas-prices *=.*|minimum-gas-prices = "'$MIN_GAS_PRICES'"|' $HOME/.sputnik/config/app.toml ``` -After directories will be ready please copy `gaiad` binaries created in the “Cosmos Hub binaries installation (gaiad)” section into `~/.gaiad/cosmovisor/genesis/bin` directory. You can do it using `cp ~/go/bin/gaiad ~/.gaiad/cosmovisor/genesis/bin/gaiad` command. +### ****Set Up Cosmovisor**** -### ****Set Up Gaiad Service**** +Set up cosmovisor to ensure any future upgrades happen flawlessly. To install Cosmovisor +``` +go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@v1.5.0 +``` -Set up a service to allow cosmovisor to run in the background as well as restart automatically if it runs into any problems: +Create the required directories and files +``` +mkdir -p ~/.sputnik/cosmovisor/genesis/bin +mkdir -p ~/.sputnik/cosmovisor/upgrades +``` + +After directories will be ready please copy `sputnikd` binaries created in the “Cosmos Hub binaries installation (sputnikd)” section into `~/.sputnikd/cosmovisor/genesis/bin` directory. You can do it using next command +``` +cp ~/go/bin/sputnikd ~/.sputnik/cosmovisor/genesis/bin/sputnikd +``` +### ****Set Up sputnikd Service**** + +Set up a service to allow cosmovisor to run in the background as well as restart automatically if it runs into any problems: ``` -echo "[Unit] -Description=Cosmos Hub daemon +sudo tee /etc/systemd/system/sputnikd.service > /dev/null << EOF +[Unit] +Description=Sputnik app chain daemon After=network-online.target [Service] -Environment="DAEMON_NAME=gaiad" -Environment="DAEMON_HOME=${HOME}/.gaiad" +Environment="DAEMON_NAME=sputnikd" +Environment="DAEMON_HOME=${HOME}/.sputnik" Environment="DAEMON_RESTART_AFTER_UPGRADE=true" Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false" Environment="DAEMON_LOG_BUFFER_SIZE=512" Environment="UNSAFE_SKIP_BACKUP=true" User=$USER -ExecStart=${HOME}/go/bin/cosmovisor start +ExecStart=${HOME}/go/bin/cosmovisor run start Restart=always RestartSec=3 LimitNOFILE=infinity LimitNPROC=infinity [Install] WantedBy=multi-user.target -" >cosmovisor.service +EOF ``` -Move this new file to the systemd directory: +And start service: +``` +sudo systemctl daemon-reload +sudo systemctl enable sputnikd +sudo systemctl restart sputnikd +``` -`sudo mv cosmovisor.service /lib/systemd/system/gaiad.service` +How you can check the logs +``` +sudo journalctl -u sputnikd -f +``` + +Set chain-id to `sputnik-practice-1` (for CLI) +``` +sputnikd config chain-id sputnik-practice-1 +``` ## **More about validators** Please refer to the Cosmos Hub documentation on validators for a general overview of running a validator. We are using the exact same validator model and software, but with slightly different parameters and other functionality specific to the Cosmic Horizon Network. -- [Run a Validator](https://hub.cosmos.network/main/validators/validator-setup.html) -- [Validators Overview](https://hub.cosmos.network/main/validators/overview.html) -- [Validator Security](https://hub.cosmos.network/main/validators/security.html) -- [Validator FAQ](https://hub.cosmos.network/main/validators/validator-faq.html) +- [Run a Validator](https://hub.cosmos.network/validators/validator-setup) +- [Validators Overview](https://hub.cosmos.network/validators/overview) +- [Validator Security](https://hub.cosmos.network/validators/security) +- [Validator FAQ](https://hub.cosmos.network/validators/validator-faq) diff --git a/testnet_planning.md b/testnet_planning.md index 8c30fbc..63ca266 100644 --- a/testnet_planning.md +++ b/testnet_planning.md @@ -2,7 +2,7 @@ ## **Disclaimer** -Everything is subject to change and as close as possible to the realities of testnets that take place in various projects, so at this stage you will learn many useful things in practice**.** Pay attention to the discord validator announcement channel for announcements. We are testing open source beta software. Expect something to break. If the documentation is not enough or you find some kind of bug, make a PR. +Everything is subject to change and as close as possible to the realities of testnets that take place in various projects, so at this stage you will learn many useful things in practice. Pay attention to the discord validator announcement channel for announcements. We are testing open source beta software. Expect something to break. If the documentation is not enough or you find some kind of bug, make a PR. ## **Overview** @@ -10,108 +10,75 @@ Everything is subject to change and as close as possible to the realities of tes - Governance proposals - Enable Transfers - Rewards: `To keep the competitive process going, we see the validators with the most points and they will be rewarded` -- Schedule: `date this` +- Schedule: `25.04.2024 - 03.05.2024` - For the Genesis and Celebrate sections please sign a transaction for each of the tasks and provide the txHash in a PR. ## **Phase - 1: Start chain (max 30 points)** -- GenTx Validator Address Submission : `date and time wiil be refined for a specific course`. Up to `70% of the flow` will be accepted. +- GenTx Validator Address Submission : `25.04.2023 - 26.04.2023 10:00 UTC`. Up to `100% of the flow` will be accepted. - `25 Points = 25 000 atom for successful wallet submissions.` + `25 Points = 25 000 sputnik for successful wallet submissions.` -- Network start time: `time start chain wiil be refined for a specific course` +- Network start time: `26.04.2024 16:00 UTC` -`20 Points = 20 000 atom for set up post genesis validators.` +`20 Points = 20 000 sputnik for set up post genesis validators.` - Provide peer -`5 points = 5000 atom for everyone who provides a peer.` +`5 points = 5000 sputnik for everyone who provides a peer.` --- ## **Phase - 2: Governance (max 30 points)** -Lead validator team will create a governance proposal on `date wiil be refined for a specific course`, to update the transfer parameter. You will need to study the proposals, find the correct one and vote. +Lead validator team will create a governance proposal on `29.04.2024 16:00 UTC`, to update the transfer parameter. You will need to study the proposals, find the correct one and vote. -In order to find correct proposal you will need to run query command using your network client binary (`gaiad` in our case). Please issue following command `gaiad query gov proposals`, and find proposal with `title:` ”Vote for me friend”. +In order to find correct proposal you will need to run query command using your network client binary (`sputnikd` in our case). Please issue following command `sputnikd query gov proposals`, and find proposal with `title:` ”Vote for me friend”. -**New to upgrades?** Read [this](https://docs.cosmos.network/master/modules/gov) +**New to governance module?** Read [this](https://docs.cosmos.network/main/modules/gov) -**Update Schedule:** +**Voting Schedule:** -- Proposal: `date and time wiil be refined for a specific course` -- Voting Period: `date and time proposal wiil be refined for a specific course` -- Upgrade Height: `TBD` +- Proposal: `Vote for me friend` +- Voting Period: `29.04.2024 16:00 UTC - 30.04.2024 16:00 UTC` **What should validators do?** - Review the parameter change proposal and cast your vote before voting period endtime. -`25 Points = 25 000 atom for successful wallet submissions.` +`25 Points = 25 000 sputnik for successful wallet submissions.` **Bonus challenge** -- Make a detailed thread on Twitter about incorrect props, what number you missed, what does it mean and make a PR to the appropriate directory. +- Make a detailed thread on Twitter about incorrect props, what number you missed, what does it mean and make a PR to the `tweets` directory of this repo. -`5 points = 5000 atom for everyone who provides a peer.` - - +`5 points = 5000 sputnik for everyone who provides a tweet url.` --- -## P**hase-3: Transactions (max 30 points)** - -- Send 1atom to DVS validator +## **Phase-3: Transactions (max 30 points)** -`5 points = 5000 atom for everyone who do this task.` +- Send 1sputnik to DVS validator -- Delegate some DVS to others and redelegate to DVS validator- 10 points +`5 points = 5000 sputnik for everyone who do this task.` -`5 points = 5000 atom for everyone who do this task.` +- Delegate some DVS to others and redelegate to DVS validator -- Claim reward \ commision and redelegate to DVS validator - +`5 points = 5000 sputnik for everyone who do this task.` -`5 points = 5000 atom for everyone do this task.` +- Claim reward \ commission and redelegate to DVS validator -- Tweet url linked in a memo (Come up with something cool to say about DVS Validator Schoo and experience in Testnet) +`5 points = 5000 sputnik for everyone do this task.` -`5 points = 5000 atom for everyone who provides a peer.` +- Tweet url linked in a memo (Come up with something cool to say about DVS Validator School and experience in Testnet) -- Tweet url linked in a memo (Leave your detailed feedback in a thread (from 3 tweets) about the School of Validators. With mark @synctems @POSTHUMAN_DVS @kuraassh. The review must be valid, not just praise. This will be used as a starting point for your twitter accounts and student feedback.) - -`5 points = 5000 atom for everyone who do this task.` +`5 points = 5000 sputnik for everyone do this task.` --- @@ -123,21 +90,23 @@ cp sample.json .json - 80% <= uptime >= 90% - 70% ≤ uptime ≥ 80% -`20 points = 20000 atom for everyone who have 90+% uptime` -`10 points = 10000 atom for everyone who have 80-90% uptime` -`5 points = 5000 atom for everyone who have 70-80% uptime` +`20 points = 20000 sputnik for everyone who have 90+% uptime` + +`10 points = 10000 sputnik for everyone who have 80-90% uptime` + +`5 points = 5000 sputnik for everyone who have 70-80% uptime` - Never jailed validator : -`20 points = 20000 atom.` +`20 points = 20000 sputnik.` - Top - 10 teams/individuals will receive points each for their contributions for the community. technical docs, helping/resolving community issues, etc. -`max 10 points = 10000 atom.` +`max 10 points = 10000 sputnik.` - Send one transaction to two addresses at once and provide txHash -`max 5 points = 5000 atom.` +`max 5 points = 5000 sputnik.` ## **NOTE:** diff --git a/transactions/serebriakov_txs.txt b/transactions/serebriakov_txs.txt new file mode 100644 index 0000000..dac2d5a --- /dev/null +++ b/transactions/serebriakov_txs.txt @@ -0,0 +1,6 @@ +13BE3245FD5C2718A8B5B854E91E0004DACD4712DCAE44C3B060893C5CE150D3 - Send 1 Sputnik. +BE59A870DBF1CF4FDF7954CB9771E02FB0D1B91588DCCB0AEBDDA43080C1202C - Delegate 1 Sputnik. +4856E9FFAA66588CE45807972A28B0C3DF2FAA92DF619C2B4E8CCE487A099FD7 - Redelegate 1 Sputnik. +5D877F95F1EC269F5C0D38AB0226B0DA901ADAB1FD1C81607864977EE5FE6C37 - Claim rewards. +AA0D3831FE61CCBFB16759A6885331570E45D2CDBB7407F965C52EAFA4B4281D - Two messages in one transaction. +8C06D557B492C03585A9E25375717D729CA57494BFAB7C00B876D8B73865B1D6 - TX with a link to Twitter. diff --git a/transactions/vbloher-txs.txt b/transactions/vbloher-txs.txt new file mode 100644 index 0000000..42c9771 --- /dev/null +++ b/transactions/vbloher-txs.txt @@ -0,0 +1,3 @@ +62CFD9A6AF7BED50CBE3733A5E81C72223F2895AC9158F7B786887AD46745BD9 - redelegte +62CFD9A6AF7BED50CBE3733A5E81C72223F2895AC9158F7B786887AD46745BD9 - send +62CFD9A6AF7BED50CBE3733A5E81C72223F2895AC9158F7B786887AD46745BD9 - something