Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add beta testnet genesis #8

Merged
merged 7 commits into from
Nov 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
184 changes: 183 additions & 1 deletion shannon/testnet/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,186 @@
# Pocket Network Shannon Testnet
# Pocket Network Shannon Testnet <!-- omit in toc -->

TODO(@olshansk, @okdas): This document is a work in progress and intended to keep
track of things we'll need in the genesis files along with supporting details.

- [Accounts](#accounts)
- [Private keys](#private-keys)
- [Ignite config.yaml](#ignite-configyaml)

## Accounts

- **DAO/PNF**: `pokt1f0c9y7mahf2ya8tymy8g4rr75ezh3pkklu4c3e`
- **Faucet**: `pokt1fpxstscnqtzc9tq0u0nlvg69hqt6zhaxyka2mj`
- **Validator1**: `pokt1kq2ecszhhrn0z3nwqgqkegeqhr9ftslu5t4ya5`
- **Validator2**: `pokt15ux823wusfvvkw7y4nnqqx5s95ag5p8xwmj02z`
- **Validator3**: `pokt17mgzg2wrq248yu5gpvp5adqgwl6s6xg47jdtm0`
- **Validator4**: `pokt1a5f5hxgaxg83y6s5w8k47dpwylkms4jjjrl9l6`
- **Validator5**: `pokt19csy3xzhpnzk8eu9ykjjzxk3vzma8gxz5rx3dy`

## Private keys

The TestNet is currently maintained by Grove.

Information on how to get access to keys can be found [on Notion here](https://www.notion.so/buildwithgrove/Beta-TestNet-144a36edfff6802597a1fa4c39ef3fcb?pvs=4). Please request access if you
believe you need it.

## Ignite config.yaml

The following [Ignite CLI](https://github.com/ignite/cli) config was used to
generate the genesis file for the Shannon Beta TestNet.

```yaml
version: 1
build:
main: cmd/poktrolld
accounts:
- name: pnf
address: pokt1f0c9y7mahf2ya8tymy8g4rr75ezh3pkklu4c3e
coins:
- 69420000000upokt
- name: validator1
coins:
- 1000000001000000upokt
- name: validator2
coins:
- 1000000001000000upokt
- name: validator3
coins:
- 1000000001000000upokt
- name: validator4
coins:
- 1000000001000000upokt
- name: validator5
coins:
- 1000000001000000upokt
- name: faucet
coins:
- 9999999999999999999999999999999999999999999999999999999999999999upokt
client:
typescript:
path: ts-client
hooks:
path: react/src/hooks
openapi:
path: docs/static/openapi.yml
validators:
# Multi-validator support is ready but not released yet https://github.com/ignite/cli/issues/4374, https://github.com/ignite/cli/pull/4409#issue-2659096643
- name: validator1
bonded: 1000000000000000upokt
app:
telemetry:
enabled: true
prometheus-retention-time: "1800" # seconds
config:
moniker: "validator1"
consensus:
timeout_commit: "300s"
timeout_propose: "300s"
instrumentation:
prometheus: true
log_level: "info"
client:
chain-id: pocket-beta
gentx:
chain-id: pocket-beta

# We can persist arbitrary genesis values via 1 to 1 mapping to genesis.json
genesis:
chain_id: pocket-beta
app_state:
# https://docs.cosmos.network/main/build/modules/mint
mint:
params:
mint_denom: upokt
# Note that in Pocket Network, the majority of the inflation/deflation
# comes from the utility of network, not just the validators that
# secure it. Therefore, the inflation params of x/mint are set to 0.
# See x/tokenomics for all details related to token inflation.
inflation_rate_change: "0.0"
inflation_max: "0.0"
inflation_min: "0.0"
# These parameters are included for posterity but commented out for clarity
# goal_bonded: "NA"
# blocks_per_year: "NA"
# max_supply: "NA"
staking:
params:
bond_denom: upokt
# TODO_BETA(@okdas): Update this to 10 for Beta TestNet.
max_validators: 10
crisis:
constant_fee:
amount: "10000"
denom: upokt
gov:
params:
min_deposit:
- amount: "10000"
denom: upokt
application:
params:
max_delegated_gateways: "7"
min_stake:
# TODO_BETA(@bryanchriswhite): Determine realistic amount for minimum application stake amount.
amount: "100000000" # 100 POKT
denom: upokt
applicationList: []
supplier:
params:
# TODO_BETA(@bryanchriswhite): Determine realistic amount for minimum gateway stake amount.
min_stake:
amount: "1000000" # 1 POKT
denom: upokt
supplierList: []
gateway:
params:
# TODO_BETA(@bryanchriswhite): Determine realistic amount for minimum gateway stake amount.
min_stake:
amount: "1000000" # 1 POKT
denom: upokt
gatewayList: []
service:
params:
add_service_fee:
amount: "1000000000"
denom: upokt
serviceList: []
proof:
params:
proof_request_probability: "0.25"
proof_requirement_threshold:
amount: "20000000"
denom: upokt
proof_missing_penalty:
amount: "320000000"
denom: upokt
proof_submission_fee:
amount: "1000000"
denom: upokt
session:
params:
num_suppliers_per_session: 15
tokenomics:
params:
mint_allocation_percentages:
dao: 0.1
proposer: 0.05
supplier: 0.7
source_owner: 0.15
application: 0.0
# The dao reward address SHOULD match that of the "pnf" below (i.e. `make poktrolld_addr ACC_NAME=pnf`).
# This is the address that will receive the dao/foundation rewards during claim settlement (global mint TLM).
# TODO_MAINNET(@olshansk): Consolidate the usage of DAO/PNF throughout the configs & codebase.
dao_reward_address: "pokt1f0c9y7mahf2ya8tymy8g4rr75ezh3pkklu4c3e"
shared:
params:
num_blocks_per_session: 10
grace_period_end_offset_blocks: 1
claim_window_open_offset_blocks: 1
claim_window_close_offset_blocks: 4
proof_window_open_offset_blocks: 0
proof_window_close_offset_blocks: 4
supplier_unbonding_period_sessions: 1
application_unbonding_period_sessions: 1
compute_units_to_tokens_multiplier: 42
```
66 changes: 66 additions & 0 deletions shannon/testnet/app.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
app-db-backend = ""
halt-height = 0
halt-time = 0
iavl-cache-size = 781250
iavl-disable-fastnode = false
index-events = []
inter-block-cache = true
min-retain-blocks = 0
minimum-gas-prices = "0.000000001upokt"
pruning = "nothing"
pruning-interval = "0"
pruning-keep-recent = "0"
query-gas-limit = "0"

[api]
address = "tcp://0.0.0.0:1317"
enable = true
enabled-unsafe-cors = true
max-open-connections = 1000
rpc-max-body-bytes = 1000000
rpc-read-timeout = 10
rpc-write-timeout = 0
swagger = false

[grpc]
address = "localhost:9090"
enable = true
max-recv-msg-size = "10485760"
max-send-msg-size = "2147483647"

[grpc-web]
enable = true

[mempool]
max-txs = 10000

[poktroll]

[poktroll.telemetry]
cardinality-level = "medium"

[rpc]
cors_allowed_origins = ["*"]

[state-sync]
snapshot-interval = 0
snapshot-keep-recent = 2

[streaming]

[streaming.abci]
keys = []
plugin = ""
stop-node-on-err = true

[telemetry]
datadog-hostname = ""
enable-hostname = false
enable-hostname-label = false
enable-service-label = false
enabled = true
global-labels = []
metrics-sink = "mem"
prometheus-retention-time = "1800"
service-name = ""
statsd-addr = ""
5 changes: 5 additions & 0 deletions shannon/testnet/client.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
broadcast-mode = "sync"
chain-id = "pocket-beta"
keyring-backend = "test"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thoughts on renaming this to beta?

Sounds cool but I'm afraid it'll force us to change all our docs. If my assumption is correct, let's leave it as is.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changing keyring backend indeed will require us changing the docs (even replacing it with file like morse). I'm not sure if we should do it.

  1. Regular users won't care as they use different wallets;
  2. Production deployments will opt in to use a different backend: https://docs.cosmos.network/main/user/run-node/keyring#the-pass-backend

node = "tcp://localhost:26657"
output = "text"
Loading