diff --git a/.github/ISSUE_TEMPLATE/register-validator.yml b/.github/ISSUE_TEMPLATE/register-validator.yml index 42f0be45..4eb60966 100644 --- a/.github/ISSUE_TEMPLATE/register-validator.yml +++ b/.github/ISSUE_TEMPLATE/register-validator.yml @@ -15,7 +15,7 @@ body: description: Choose the Axone network you want to join multiple: false options: - - drunemeton-1 + - dentrite-1 validations: required: true - type: textarea diff --git a/README.md b/README.md index bf6bb755..a0c4b16b 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ For a complete description about nodes and validators, check out the [Axone Docu Below is a list of available networks, organized from the most recent to the oldest: +- [`dentrite-1`](./chains/dentrite-1/README.md) - [`drunemeton-1`](./chains/drunemeton-1/README.md) - [`nemeton-1`](./chains/nemeton-1/README.md) - [`nemeton`](./chains/nemeton/README.md) diff --git a/chains/dentrite-1/README.md b/chains/dentrite-1/README.md new file mode 100644 index 00000000..4d52a01b --- /dev/null +++ b/chains/dentrite-1/README.md @@ -0,0 +1,42 @@ + +# 🔗 `axone-dentrite-1` + +![chain-id](https://img.shields.io/badge/chain%20id-axone--dentrite--1-blue?style=for-the-badge) +[![stability-beta](https://img.shields.io/badge/stability-beta-33bbff.svg?style=for-the-badge)](https://github.com/mkenney/software-guides/blob/master/STABILITY-BADGES.md#beta) +![audience](https://img.shields.io/badge/audience-public-white.svg?style=for-the-badge) +![incentivized-✖️](https://img.shields.io/badge/incentivized-✖️-29220A.svg?style=for-the-badge) +![genesis-time](https://img.shields.io/badge/%E2%8F%B0%20genesis%20time-2024--09--10T12%3A00%3A00Z-red?style=for-the-badge) + +## Register in the Genesis + +To register your validator node in the `genesis.json` you just need to provide a signed `gentx` with an initial delegation of `1000000000000uaxone` in a [⚖️ Register Validator issue](https://github.com/axone-protocol/networks/issues). + +The gentx generation can be done as follow (this is an example script, adapt it to your needs) with the [axoned](https://github.com/axone-protocol/axoned/releases) binary matching the [network's version](/chains/dentrite-1/version.txt): + +```sh +# Init node +axoned --home mynode init your-moniker --chain-id axone-dentrite-1 + +# Create keys, be careful with the mnemonic 👀 +axoned --home mynode keys add your-key-name + +# Set account necessary balance +axoned --home mynode genesis add-genesis-account your-key-name 1000000000000uaxone +``` + +Then create your own genesis transaction (`gentx`). You will have to choose the following parameters for your validator: `commission-rate`, `commission-max-rate`, `commission-max-change-rate`, `min-self-delegation` (>=1), `website` (optional), `details` (optional), `identity` ([keybase](https://keybase.io) key hash, used to get validator logos in block explorers - optional), `security-contact` (email - optional). + +```sh +# Create the gentx +axoned --home mynode genesis gentx your-key-name 1000000000000uaxone \ + --node-id $(axoned --home mynode comet show-node-id) \ + --chain-id axone-dentrite-1 \ + --commission-rate 0.05 \ + --commission-max-rate 0.2 \ + --commission-max-change-rate 0.01 \ + --min-self-delegation 1 \ + --website "https://foo.network" \ + --details "My validator" \ + --identity "6C36E7C076BFDCE4" \ + --security-contact "validator@foo.network" +``` diff --git a/chains/dentrite-1/README.md.gtpl b/chains/dentrite-1/README.md.gtpl new file mode 100644 index 00000000..84f43593 --- /dev/null +++ b/chains/dentrite-1/README.md.gtpl @@ -0,0 +1,71 @@ + +# 🔗 `{{ (datasource "genesis").chain_id }}` + +![chain-id](https://img.shields.io/badge/chain%20id-{{ (datasource "genesis").chain_id | urlquery | strings.ReplaceAll "-" "--" }}-blue?style=for-the-badge) +[![stability-beta](https://img.shields.io/badge/stability-beta-33bbff.svg?style=for-the-badge)](https://github.com/mkenney/software-guides/blob/master/STABILITY-BADGES.md#beta) +![audience](https://img.shields.io/badge/audience-public-white.svg?style=for-the-badge) +![incentivized-✖️](https://img.shields.io/badge/incentivized-✖️-29220A.svg?style=for-the-badge) +![genesis-time](https://img.shields.io/badge/{{ "⏰" | urlquery }}%20genesis%20time-{{ (datasource "genesis").genesis_time | urlquery | strings.ReplaceAll "-" "--" }}-red?style=for-the-badge) + +## Register in the Genesis + +To register your validator node in the `genesis.json` you just need to provide a signed `gentx` with an initial delegation of `1000000000000uaxone` in a [⚖️ Register Validator issue](https://github.com/axone-protocol/networks/issues). + +The gentx generation can be done as follow (this is an example script, adapt it to your needs) with the [axoned](https://github.com/axone-protocol/axoned/releases) binary matching the [network's version](/chains/dentrite-1/version.txt): + +```sh +# Init node +axoned --home mynode init your-moniker --chain-id {{ (datasource "genesis").chain_id }} + +# Create keys, be careful with the mnemonic 👀 +axoned --home mynode keys add your-key-name + +# Set account necessary balance +axoned --home mynode genesis add-genesis-account your-key-name 1000000000000uaxone +``` + +Then create your own genesis transaction (`gentx`). You will have to choose the following parameters for your validator: `commission-rate`, `commission-max-rate`, `commission-max-change-rate`, `min-self-delegation` (>=1), `website` (optional), `details` (optional), `identity` ([keybase](https://keybase.io) key hash, used to get validator logos in block explorers - optional), `security-contact` (email - optional). + +```sh +# Create the gentx +axoned --home mynode genesis gentx your-key-name 1000000000000uaxone \ + --node-id $(axoned --home mynode comet show-node-id) \ + --chain-id axone-dentrite-1 \ + --commission-rate 0.05 \ + --commission-max-rate 0.2 \ + --commission-max-change-rate 0.01 \ + --min-self-delegation 1 \ + --website "https://foo.network" \ + --details "My validator" \ + --identity "6C36E7C076BFDCE4" \ + --security-contact "validator@foo.network" +``` + +## Genesis validators + + + + + + + + +{{- $txs := (datasource "genesis") | jsonpath "$..messages[?(@.min_self_delegation)]" -}} +{{- range $key, $value := $txs }} +{{- $url := "" -}} +{{- if $value.description.website | strings.HasPrefix "http" -}} +{{- $url = $value.description.website -}} +{{- else if $value.description.website -}} +{{- $url = printf "%s%s" "https://" $value.description.website -}} +{{- end -}} +{{- $userInfo := $value.description.identity | index (datasource "usersInfo") }} + + + + + +{{- end }} +
MonikerDetailsIdentitySite
{{ $value.description.moniker | html }}
{{ $value.description.details | html }}{{ if (and $value.description.identity $userInfo) }} +

+ {{ $value.description.identity }}{{ end }}
{{ if $url }}{{ $url }}{{ end -}} +
diff --git a/chains/dentrite-1/genesis.json b/chains/dentrite-1/genesis.json new file mode 100644 index 00000000..d6eb6116 --- /dev/null +++ b/chains/dentrite-1/genesis.json @@ -0,0 +1,334 @@ +{ + "app_name": "axoned", + "app_version": "10.0.0", + "genesis_time": "2024-09-10T12:00:00Z", + "chain_id": "axone-dentrite-1", + "initial_height": 1, + "app_hash": null, + "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": "axone14pjwgekpxtuwfkpr0nvj8eek49llfy607ckgjt", + "pub_key": null, + "account_number": "0", + "sequence": "0" + } + ] + }, + "authz": { + "authorization": [] + }, + "bank": { + "params": { + "send_enabled": [], + "default_send_enabled": true + }, + "balances": [ + { + "address": "axone14pjwgekpxtuwfkpr0nvj8eek49llfy607ckgjt", + "coins": [ + { + "denom": "uaxone", + "amount": "475000000000000" + } + ] + } + ], + "supply": [ + { + "denom": "uaxone", + "amount": "475000000000000" + } + ], + "denom_metadata": [], + "send_enabled": [] + }, + "capability": { + "index": "1", + "owners": [] + }, + "circuit": { + "account_permissions": [], + "disabled_type_urls": [] + }, + "consensus": null, + "crisis": { + "constant_fee": { + "denom": "uaxone", + "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": [] + }, + "gov": { + "starting_proposal_id": "1", + "deposits": [], + "votes": [], + "proposals": [], + "deposit_params": null, + "voting_params": null, + "tally_params": null, + "params": { + "min_deposit": [ + { + "denom": "uaxone", + "amount": "10000000" + } + ], + "max_deposit_period": "172800s", + "voting_period": "86400s", + "quorum": "0.334000000000000000", + "threshold": "0.500000000000000000", + "veto_threshold": "0.334000000000000000", + "min_initial_deposit_ratio": "0.000000000000000000", + "proposal_cancel_ratio": "0.500000000000000000", + "proposal_cancel_dest": "", + "expedited_voting_period": "43200s", + "expedited_threshold": "0.667000000000000000", + "expedited_min_deposit": [ + { + "denom": "uaxone", + "amount": "50000000" + } + ], + "burn_vote_quorum": false, + "burn_proposal_deposit_prevote": false, + "burn_vote_veto": true, + "min_deposit_ratio": "0.010000000000000000" + }, + "constitution": "" + }, + "group": { + "group_seq": "0", + "groups": [], + "group_members": [], + "group_policy_seq": "0", + "group_policies": [], + "proposal_seq": "0", + "proposals": [], + "votes": [] + }, + "ibc": { + "client_genesis": { + "clients": [], + "clients_consensus": [], + "clients_metadata": [], + "params": { + "allowed_clients": [ + "*" + ] + }, + "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", + "params": { + "upgrade_timeout": { + "height": { + "revision_number": "0", + "revision_height": "0" + }, + "timestamp": "600000000000" + } + } + } + }, + "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": [ + "*" + ] + } + } + }, + "logic": { + "params": { + "interpreter": { + "predicates_filter": { + "whitelist": [], + "blacklist": [] + }, + "bootstrap": "", + "virtual_files_filter": { + "whitelist": [], + "blacklist": [] + } + }, + "limits": { + "max_size": "5000", + "max_result_count": "3", + "max_user_output_size": null, + "max_variables": "100000" + }, + "gas_policy": { + "weighting_factor": null, + "default_predicate_cost": null, + "predicate_costs": [] + } + } + }, + "mint": { + "minter": { + "inflation": "0.000000000000000000", + "annual_provisions": "0.000000000000000000" + }, + "params": { + "mint_denom": "uaxone", + "inflation_coef": "0.030000000000000000", + "blocks_per_year": "6311520", + "inflation_max": "0.200000000000000000", + "inflation_min": null + } + }, + "params": null, + "slashing": { + "params": { + "signed_blocks_window": "100", + "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": "172800s", + "max_validators": 35, + "max_entries": 7, + "historical_entries": 10000, + "bond_denom": "uaxone", + "min_commission_rate": "0.000000000000000000" + }, + "last_total_power": "0", + "last_validator_powers": [], + "validators": [], + "delegations": [], + "unbonding_delegations": [], + "redelegations": [], + "exported": false + }, + "transfer": { + "port_id": "transfer", + "denom_traces": [], + "params": { + "send_enabled": true, + "receive_enabled": true + }, + "total_escrowed": [] + }, + "upgrade": {}, + "vesting": {}, + "wasm": { + "params": { + "code_upload_access": { + "permission": "AnyOfAddresses", + "addresses": [ + "axone14pjwgekpxtuwfkpr0nvj8eek49llfy607ckgjt" + ] + }, + "instantiate_default_permission": "Everybody" + }, + "codes": [], + "contracts": [], + "sequences": [] + } + }, + "consensus": { + "params": { + "block": { + "max_bytes": "22020096", + "max_gas": "30000000" + }, + "evidence": { + "max_age_num_blocks": "100000", + "max_age_duration": "172800000000000", + "max_bytes": "1048576" + }, + "validator": { + "pub_key_types": [ + "ed25519" + ] + }, + "version": { + "app": "0" + }, + "abci": { + "vote_extensions_enable_height": "0" + } + } + } +} \ No newline at end of file diff --git a/chains/dentrite-1/peers.txt b/chains/dentrite-1/peers.txt new file mode 100644 index 00000000..e69de29b diff --git a/chains/dentrite-1/register-config.json b/chains/dentrite-1/register-config.json new file mode 100644 index 00000000..73aa0741 --- /dev/null +++ b/chains/dentrite-1/register-config.json @@ -0,0 +1,8 @@ +{ + "start-date": "2024-08-28 00:00:00Z", + "end-date": "2024-09-06 00:00:00Z", + "delegation": { + "amount": "1000000000000", + "denom": "uaxone" + } +} diff --git a/chains/dentrite-1/seeds.txt b/chains/dentrite-1/seeds.txt new file mode 100644 index 00000000..e69de29b diff --git a/chains/dentrite-1/version.txt b/chains/dentrite-1/version.txt new file mode 100644 index 00000000..95c4e8d2 --- /dev/null +++ b/chains/dentrite-1/version.txt @@ -0,0 +1 @@ +10.0.0 \ No newline at end of file