Dry Run Instructions

Announcing the instructions for the Namada Dry Run! It should be exactly like the mainnet launch, only with shortened epochs (2hrs instead of 6hrs).

All genesis Namada validators should be prepared to launch Namada.

  • Sirouk (TuDudes) will be our validator sherpa, Spork (Knowable) & Fraccaman (Heliax) will provide operator support
  • Brent (Heliax) will be guiding everything protocol related, and
  • Gavin (Knowable) & Gregory (Regen) will be guiding the governance processes.

Chain-ID: namada-dryrun.abaaeaf7b78cb3ac

Network info: https://testnet.namada-dryrun.tududes.com

Operator Guide: Namada Public Dryrun testnet instructions - HackMD - by Spork (Knowable)

Set up your validator now, and have it ready to make blocks.

When: Tuesday November 12 at 15:00 UTC ideally we will start making blocks

Source of truth: this forum topic

Real-time coordination will take place in the Namada Discord in #dry-run-chatter and announcements will be in #validator-alerts.

Note: only those with mainnet validator role will be able to write messages in #dry-run-chatter. Please tag 0xGolden if you or a colleague need the role.

We’re doing this to simulate the Namada mainnet launch. Let’s get all of the kinks out here so that everything goes smoothly during prime time :slightly_smiling_face:

Phases of Dry Run

  1. Phase 1 - begins at launch and ideally lasts 12 epochs (24 hours), we’re just making blocks

    1. Vote on Phase 2 governance proposal to turn on staking & PGF inflation
    2. ensure tools & infra support are running
    3. test staking and other simple validator actions
  2. Phase 2 - ideally lasts ~12 epochs (~24 hours, depending on governance constraints)

    1. Launch and vote on Phase 3 Governance Proposal: to activate IBC rate limit for OSMO
    2. Measure staking rewards; test claims; test PGF spending; elect a steward; test steward proposals; measure PGF recipient allocations
    3. Ensure that MASP and IBC are not usable yet
    4. Open IBC channel for OSMO
  3. Phase 3 & 4 - ideally lasts 24 epochs (~48 hours)

    1. Test IBC transfers and MASP transactions
    2. Launch and vote on Phase 4 Governance Proposal
      • Increase IBC rate limit for OSMO again (if desired)
      • Incentives for OSMO
    3. Measure shielded set rewards
    4. Launch and vote on Phase 5 Governance Proposal: enable NAM transfers
  4. Phase 5 - lasts until end of dry-run

    1. Decide mainnet launch date/time
    2. Test various NAM-related activities

Governance

  • Validators have 16 hours to vote on a proposal (delegators have 24)
  • Each proposal will end after approximately 24 hours, and execute after 26 hours

If you will be providing tooling or infra support, we’d greatly appreciate it! Please post below.

More relevant information will be added in reply to this forum thread, stay tuned and get ready for the start of the dry run tomorrow!

11 Likes

I’ve added some documentation here in case anybody wants to run in parallel with an existing validator on the same machine Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

5 Likes

We have our infrastructure services ready for the launch!

Namada (Dry-run) - Mandragora’s infrastructure services

  • RPC endpoint (state-sync snapshots enabled)
  • REST API endpoint (Undexer)
  • Seed and peer nodes
  • Add peers/seeds (ask if you want your seed to be added)
  • Download addrbook
  • Full snaphots (updated every 4h; tx indexing on)

Namada (Dry-run) - Mandragora’s infrastructure services - HackMD

2 Likes

Let’s go! ready to try thing’s out

TuDudes is hosting infra: https://testnet.namada-dryrun.tududes.com

1 Like

We have created a tool to run a Namada Node/Validator with out-of-box Grafana dashboards using Docker compose

Detailed Docs:

2 Likes

The governance proposals will be hosted in the following github repo: GitHub - anoma/namada-governance-upgrades

When we start discussion for each gov proposal of dry-run, a dedicated forum topic will be created under the Mainnet Ops section

1 Like

Nodes Guru has a basic explorer: [NG] Explorer | Namada | Validators

ITRocket services for namada-dryrun.abaaeaf7b78cb3ac

  • Public endpoints (archive)
  • Peer, Live Peers (upd. every 10 sec)
  • Seed node
  • Snapshot (updated every 4h)
  • Installation guide
  • Cheat Sheet
  • Monitoring script
3 Likes

Fully featured explorer by alx (bitszn): https://testnet.namada.valopers.com

2 Likes

Validator and staking stats: https://votingpower.stakepool.dev.br/

1 Like

fully featured explorer by Daniel (Mandragora): https://shielded.live

2 Likes

Hello Andrei,
Sharing your health check script and its preview, in case anyone needs it :wink:
Thank you for it !

2 Likes

Thank you for sharing it here as well!

I’ll probably clean it up and add it to GitHub - andreidavid/namada-tools: A collection of tools for interacting with the Namada blockchain. over the weekend.

1 Like

Safe interactions with the validator

To submit transactions from the validator, like voting on proposals, you need the keypair that was used to create the pre-genesis validator. It is safer to do that from a secure local computer than from the validator node itself.

The validator-wallet.toml (which includes the consensus keys) and the operator wallet (the wallet that was used to initialize the validator) should be kept separate from each other. Because if someone steals your consensus keys, you can rotate them with your operator keys. But if the operator keys are stolen, the validator is completely compromised.

This guide assumes that you have followed the official instructions and you copied validator-wallet.toml to the validator server.

Join the network locally

If you participated in the pre-genesis process and you still have the pre-genesis folder (~/.local/share/namada/pre-genesis/), then you can simply join the network and the keypair will be added to the wallet automatically:

export NAMADA_NETWORK_CONFIGS_SERVER="https://testnet.namada-dryrun.tududes.com/configs"
export CHAIN_ID=namada-dryrun.abaaeaf7b78cb3ac
export NODE="--node https://rpc.namada-dryrun.tududes.com"

You can run those lines from the terminal or add those lines to ~/.profile to apply them whenever you log in.

namadac utils join-network --chain-id $CHAIN_ID

Import the keypair from the mnemonic code

If you do not have the pre-genesis folder anymore, but saved the mnemonic code, then after joining the network you can import the keypair:

namadac derive --alias your-validator-imp

The keypair and implicit address will be added to your wallet. Check:

$ namadaw list
Known transparent keys:
  Alias "your-validator-imp" (encrypted):
    Public key hash: ABCDEFABCDEFABCDEFABCDEFABCDEF
    Public key: tpknam1abcdefabcdefabcdefabcdef
Known transparent addresses:
  "your-validator-imp": Implicit: tnam1abcdefabcdefabcdefabcdef

Add the validator address

The next step is adding the established address of the validator:

namadaw add --alias validator --value tnam1abcdef...

Interact with the validator locally

Now you can vote and claim rewards with the validator! If you participated in the pre-genesis process, the implicit address has been airdropped 1 NAM. The transaction fee for voting once is 0.05 NAM.

namadac vote-proposal --proposal-id 0 --vote nay|yay|abstain  --address validator $NODE
1 Like

Setting up a post-genesis validator

If you did not participate in the pre-genesis process, you can still run a validator, but because token transfers are disabled until phase 5, you will have to pay transaction fees from an address that has NAM. If you received an airdrop, participated in the Shielded Expedition, or if you are a Community Builder or Core Contributor, you should have an address with a positive balance. It should be listed in balances.toml.

Security

Because NAM cannot be transferred until phase 5, wallet.toml has to be present on the validator node. That poses a security risk, which we mitigated in the previous guide by separating the wallets, but that is not an (easy) option here. After initializing the validator you can either move wallet.toml from the validator node to a local computer, or figure out how to sign an offline transaction :sweat_smile:

Join the network

Like before, join the network:

export NAMADA_NETWORK_CONFIGS_SERVER="https://testnet.namada-dryrun.tududes.com/configs"
export CHAIN_ID=namada-dryrun.abaaeaf7b78cb3ac
export NODE="--node https://rpc.namada-dryrun.tududes.com"

namadac utils join-network --chain-id $CHAIN_ID

Option A: Add validator to user account

The simplest way is to initialize the validator from your funded account (“my-user-account”).

namadac init-validator \
--commission-rate 0.05 \
--max-commission-rate-change 0.01 \
--alias post-gen-established \
--account-keys my-user-account \
--signing-keys my-user-account \
--threshold 1 \
--email your@email.com \
$NODE

Option B: Separate validator and user accounts

I prefer to keep my validator and user accounts separate. Instead of the command above, I first make a new keypair and implicit address:

namadaw gen --alias post-gen-implicit

Now I can initialize a validator, using --gas-payer to pay the fees with the funded account:

namadac init-validator \
--commission-rate 0.05 \
--max-commission-rate-change 0.01 \
--alias post-gen-established \
--account-keys post-gen-implicit \
--signing-keys post-gen-implicit \
--threshold 1 \
--email your@email.com \
--gas-payer my-user-account \
$NODE

Remember, with option B, whenever you want to submit a transaction from the validator, you have to add --gas-payer my-user-account.

Delegating to the validator

To get the validator in the active set, it needs delegations. You can delegate NAM from your funded account to the validator.

namadac bond \ 
--validator post-gen-established \
--amount 1000 \
--source my-user-account \
$NODE
1 Like

Amazing attempt, I will take on the challenge