From 5b8d963ee26700521bd954807fd60a49def0c2cf Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Tue, 21 Apr 2020 16:59:09 -0700 Subject: [PATCH] Clean up TdS/validator docs (#9638) --- docs/src/SUMMARY.md | 27 ++-- docs/src/cli/choose-a-cluster.md | 71 +---------- docs/src/cluster/bench-tps.md | 2 +- docs/src/clusters.md | 119 ++++++++++++++++++ docs/src/running-validator/README.md | 31 +---- docs/src/running-validator/validator-stake.md | 2 +- docs/src/running-validator/validator-start.md | 31 ++--- docs/src/tour-de-sol/participation/README.md | 4 - .../tour-de-sol/participation/dry-run-6.md | 30 ----- .../steps-to-create-a-validator.md | 9 ++ .../steps-to-create-a-validator/README.md | 12 -- .../confirm-the-solana-network-is-running.md | 23 ---- .../connect-to-the-solana-network.md | 41 ------ .../connecting-your-validator.md | 43 ------- .../delegating-stake.md | 82 ------------ .../install-the-solana-software.md | 21 ---- .../monitoring-your-validator.md | 12 -- ...ishing-information-about-your-validator.md | 23 ---- .../validator-public-key-registration.md | 11 +- .../validator-technical-requirements.md | 19 +-- docs/src/tour-de-sol/submitting-bugs.md | 2 +- docs/src/tour-de-sol/useful-links.md | 7 +- 22 files changed, 172 insertions(+), 450 deletions(-) create mode 100644 docs/src/clusters.md delete mode 100644 docs/src/tour-de-sol/participation/dry-run-6.md create mode 100644 docs/src/tour-de-sol/participation/steps-to-create-a-validator.md delete mode 100644 docs/src/tour-de-sol/participation/steps-to-create-a-validator/README.md delete mode 100644 docs/src/tour-de-sol/participation/steps-to-create-a-validator/confirm-the-solana-network-is-running.md delete mode 100644 docs/src/tour-de-sol/participation/steps-to-create-a-validator/connect-to-the-solana-network.md delete mode 100644 docs/src/tour-de-sol/participation/steps-to-create-a-validator/connecting-your-validator.md delete mode 100644 docs/src/tour-de-sol/participation/steps-to-create-a-validator/delegating-stake.md delete mode 100644 docs/src/tour-de-sol/participation/steps-to-create-a-validator/install-the-solana-software.md delete mode 100644 docs/src/tour-de-sol/participation/steps-to-create-a-validator/monitoring-your-validator.md delete mode 100644 docs/src/tour-de-sol/participation/steps-to-create-a-validator/publishing-information-about-your-validator.md rename docs/src/tour-de-sol/participation/{steps-to-create-a-validator => }/validator-public-key-registration.md (79%) diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md index 549a1aa33f..35b5b54799 100644 --- a/docs/src/SUMMARY.md +++ b/docs/src/SUMMARY.md @@ -22,6 +22,7 @@ * [Offline Signing](offline-signing/README.md) * [Durable Transaction Nonces](offline-signing/durable-nonce.md) * [Command-line Reference](cli/usage.md) +* [Solana Clusters](clusters.md) * [Develop Applications](apps/README.md) * [Example: Web Wallet](apps/webwallet.md) * [Example: Tic-Tac-Toe](apps/tictactoe.md) @@ -29,6 +30,13 @@ * [Anatomy of a Transaction](transaction.md) * [JSON RPC API](apps/jsonrpc-api.md) * [JavaScript API](apps/javascript-api.md) +* [Run a Validator](running-validator/README.md) + * [Validator Requirements](running-validator/validator-reqs.md) + * [Start a Validator](running-validator/validator-start.md) + * [Stake](running-validator/validator-stake.md) + * [Monitor a Validator](running-validator/validator-monitor.md) + * [Publish Validator Info](running-validator/validator-info.md) + * [Troubleshoot](running-validator/validator-troubleshoot.md) * [Participate in Tour de SOL](tour-de-sol/README.md) * [Useful Links & Discussion](tour-de-sol/useful-links.md) * [Registration](tour-de-sol/registration/README.md) @@ -39,24 +47,9 @@ * [Registration FAQ](tour-de-sol/registration/validator-registration-and-rewards-faq.md) * [Participation](tour-de-sol/participation/README.md) * [Requirements to run a validator](tour-de-sol/participation/validator-technical-requirements.md) - * [Steps to create a validator](tour-de-sol/participation/steps-to-create-a-validator/README.md) - * [Install the Solana software](tour-de-sol/participation/steps-to-create-a-validator/install-the-solana-software.md) - * [Create a validator public key](tour-de-sol/participation/steps-to-create-a-validator/validator-public-key-registration.md) - * [Create and configure a Solana validator](tour-de-sol/participation/steps-to-create-a-validator/connecting-your-validator.md) - * [Confirm the Solana network is running](tour-de-sol/participation/steps-to-create-a-validator/confirm-the-solana-network-is-running.md) - * [Connect to the Solana network](tour-de-sol/participation/steps-to-create-a-validator/connect-to-the-solana-network.md) - * [Validator catch-up](tour-de-sol/participation/steps-to-create-a-validator/monitoring-your-validator.md) - * [Staking](tour-de-sol/participation/steps-to-create-a-validator/delegating-stake.md) - * [Publish information about your validator](tour-de-sol/participation/steps-to-create-a-validator/publishing-information-about-your-validator.md) - * [Dry Run 6](tour-de-sol/participation/dry-run-6.md) + * [Create a validator public key](tour-de-sol/participation/validator-public-key-registration.md) + * [Steps to create a validator](tour-de-sol/participation/steps-to-create-a-validator.md) * [Submit Bug Reports](tour-de-sol/submitting-bugs.md) -* [Run a Validator](running-validator/README.md) - * [Validator Requirements](running-validator/validator-reqs.md) - * [Start a Validator](running-validator/validator-start.md) - * [Stake](running-validator/validator-stake.md) - * [Monitor a Validator](running-validator/validator-monitor.md) - * [Publish Validator Info](running-validator/validator-info.md) - * [Troubleshoot](running-validator/validator-troubleshoot.md) * [Benchmark a Cluster](cluster/bench-tps.md) * [Performance Metrics](cluster/performance-metrics.md) * [Solana's Architecture](cluster/README.md) diff --git a/docs/src/cli/choose-a-cluster.md b/docs/src/cli/choose-a-cluster.md index 550e3368e6..3c5d998da1 100644 --- a/docs/src/cli/choose-a-cluster.md +++ b/docs/src/cli/choose-a-cluster.md @@ -1,60 +1,9 @@ # Connecting to a Cluster +See [Solana Clusters](../clusters.md) for general information about the +available clusters. -Solana maintains several different clusters with different purposes. Each -cluster features a Solana-run gossip node that serves as an entrypoint to the -cluster. - -## Before you Begin - - - Make sure you have first -[installed the Solana command line tools](install-solana-cli-tools.md) - -## Choose a Cluster - -#### Mainnet Beta -A permissionless, persistent cluster for early token holders and launch partners. -No smart contracts or inflation. - * Tokens that are issued on Mainnet Beta are **real** SOL - * If you have paid money to purchase/be issued tokens, such as through our - CoinList auction, these tokens will be transferred on Mainnet Beta. - * Note: If you are using a non-command-line wallet such as - [Trust Wallet](../wallet/trust-wallet.md), - the wallet will always be connecting to Mainnet Beta. - * Gossip entrypoint for Mainnet Beta: `mainnet-beta.solana.com:8001` - * RPC URL for Mainnet Beta: `https://api.mainnet-beta.solana.com` - -#### Devnet -* Devnet serves as a playground for anyone who wants to take Solana for a -test drive, as a user, token holder, app developer, or validator. -* Application developers should target Devnet. -* Potential validators should first target Devnet. -* Key differences between Devnet and Mainnet Beta: - * Devnet tokens are **not real** - * Devnet includes a token faucet for airdrops for application testing - * Devnet may be subject to ledger resets - * Devnet typically runs a newer software version than Mainnet Beta - * Devnet may be maintained by different validators than Mainnet Beta - * Gossip entrypoint for Devnet: `devnet.solana.com:8001` - * RPC URL for Devnet: `https://devnet.solana.com` - -#### Testnet (Tour de SOL Cluster) -* Testnet is where we stress test recent release features on a live -cluster, particularly focused on network performance, stability and validator -behavior. -* [Tour de SOL](../tour-de-sol/README.md) initiative runs on Testnet, where we -encourage malicious behavior and attacks on the network to help us find and -squash bugs or network vulnerabilities. -* Testnet tokens are **not real** -* Testnet may be subject to ledger resets. -* Testnet typically runs a newer software release than both Devnet and -Mainnet Beta -* Testnet may be maintained by different validators than Mainnet Beta -* Gossip entrypoint for Testnet: `testnet.solana.com:8001` -* RPC URL for Testnet: `https://testnet.solana.com` - -## Configure the Command-line - -You can check what cluster the Solana CLI is currently targeting by +## Configure the command-line tool +You can check what cluster the Solana command-line tool (CLI) is currently targeting by running the following command: ```bash @@ -65,21 +14,11 @@ Use `solana config set` command to target a particular cluster. After setting a cluster target, any future subcommands will send/receive information from that cluster. -##### Targetting Mainnet Beta -```bash -solana config set --url https://api.mainnet-beta.solana.com -``` - -##### Targetting Devnet +For example to target the Devnet cluster, run: ```bash solana config set --url https://devnet.solana.com ``` -##### Targetting Testnet -```bash -solana config set --url https://testnet.solana.com -``` - ## Ensure Versions Match Though not strictly necessary, the CLI will generally work best when its version diff --git a/docs/src/cluster/bench-tps.md b/docs/src/cluster/bench-tps.md index 102c3928dc..eb65c47049 100644 --- a/docs/src/cluster/bench-tps.md +++ b/docs/src/cluster/bench-tps.md @@ -129,4 +129,4 @@ In this example the client connects to our public testnet. To run validators on $ NDEBUG=1 ./multinode-demo/bench-tps.sh --entrypoint devnet.solana.com:8001 --faucet devnet.solana.com:9900 --duration 60 --tx_count 50 ``` -You can observe the effects of your client's transactions on our [dashboard](https://metrics.solana.com:3000/d/testnet/testnet-hud?orgId=2&from=now-30m&to=now&refresh=5s&var-testnet=testnet) +You can observe the effects of your client's transactions on our [metrics dashboard](https://metrics.solana.com:3000/d/monitor/cluster-telemetry?var-testnet=devnet) diff --git a/docs/src/clusters.md b/docs/src/clusters.md new file mode 100644 index 0000000000..532c3f7813 --- /dev/null +++ b/docs/src/clusters.md @@ -0,0 +1,119 @@ +# Solana Clusters +Solana maintains several different clusters with different purposes. + +Before you begin make sure you have first +[installed the Solana command line tools](cli/install-solana-cli-tools.md) + +Explorers: +* [http://explorer.solana.com/](https://explorer.solana.com/). +* [http://solanabeach.io/](http://solanabeach.io/). + +## Devnet +* Devnet serves as a playground for anyone who wants to take Solana for a +test drive, as a user, token holder, app developer, or validator. +* Application developers should target Devnet. +* Potential validators should first target Devnet. +* Key differences between Devnet and Mainnet Beta: + * Devnet tokens are **not real** + * Devnet includes a token faucet for airdrops for application testing + * Devnet may be subject to ledger resets + * Devnet typically runs a newer software version than Mainnet Beta + * Devnet may be maintained by different validators than Mainnet Beta + * Gossip entrypoint for Devnet: `devnet.solana.com:8001` + * RPC URL for Devnet: `https://devnet.solana.com` + + +##### Example `solana` command-line configuration +```bash +solana config set --url https://devnet.solana.com +``` + +##### Example `solana-validator` command-line +```bash +$ solana-validator \ + --identity ~/validator-keypair.json \ + --vote-account ~/vote-account-keypair.json \ + --trusted-validator 47Sbuv6jL7CViK9F2NMW51aQGhfdpUu7WNvKyH645Rfi \ + --no-untrusted-rpc \ + --ledger ~/validator-ledger \ + --rpc-port 8899 \ + --dynamic-port-range 8000-8010 + --entrypoint devnet.solana.com:8001 \ + --expected-genesis-hash HzyuivuNXMHJKjM6q6BE2qBsR3etqW21BSvuJTpJFj9A \ + --expected-shred-version 61357 \ + --limit-ledger-size +``` + + +## Testnet +* Testnet is where we stress test recent release features on a live +cluster, particularly focused on network performance, stability and validator +behavior. +* [Tour de SOL](../tour-de-sol/README.md) initiative runs on Testnet, where we +encourage malicious behavior and attacks on the network to help us find and +squash bugs or network vulnerabilities. +* Testnet tokens are **not real** +* Testnet may be subject to ledger resets. +* Testnet typically runs a newer software release than both Devnet and +Mainnet Beta +* Testnet may be maintained by different validators than Mainnet Beta +* Gossip entrypoint for Testnet: `35.203.170.30:8001` +* RPC URL for Testnet: `https://testnet.solana.com` + + +##### Example `solana` command-line configuration +```bash +solana config set --url https://testnet.solana.com +``` + +##### Example `solana-validator` command-line +```bash +$ solana-validator \ + --identity ~/validator-keypair.json \ + --vote-account ~/vote-account-keypair.json \ + --trusted-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on \ + --no-untrusted-rpc \ + --ledger ~/validator-ledger \ + --rpc-port 8899 \ + --dynamic-port-range 8000-8010 + --entrypoint 35.203.170.30:8001 \ + --expected-genesis-hash 4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY \ + --expected-shred-version 56419 \ + --limit-ledger-size +``` + +## Mainnet Beta +A permissionless, persistent cluster for early token holders and launch partners. +Currently smart contracts, rewards, and inflation are disabled. + * Tokens that are issued on Mainnet Beta are **real** SOL + * If you have paid money to purchase/be issued tokens, such as through our + CoinList auction, these tokens will be transferred on Mainnet Beta. + * Note: If you are using a non-command-line wallet such as + [Trust Wallet](../wallet/trust-wallet.md), + the wallet will always be connecting to Mainnet Beta. + * Gossip entrypoint for Mainnet Beta: `mainnet-beta.solana.com:8001` + * RPC URL for Mainnet Beta: `https://api.mainnet-beta.solana.com` + +##### Example `solana` command-line configuration +```bash +solana config set --url https://api.mainnet-beta.solana.com +``` + +##### Example `solana-validator` command-line +```bash +$ solana-validator \ + --identity ~/validator-keypair.json \ + --vote-account ~/vote-account-keypair.json \ + --trusted-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \ + --trusted-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \ + --trusted-validator DE1bawNcRJB9rVm3buyMVfr8mBEoyyu73NBovf2oXJsJ \ + --trusted-validator CakcnaRDHka2gXyfbEd2d3xsvkJkqsLw2akB3zsN1D2S \ + --no-untrusted-rpc \ + --ledger ~/validator-ledger \ + --rpc-port 8899 \ + --dynamic-port-range 8000-8010 + --entrypoint mainnet-beta.solana.com:8001 \ + --expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \ + --expected-shred-version 54208 \ + --limit-ledger-size +``` diff --git a/docs/src/running-validator/README.md b/docs/src/running-validator/README.md index 55d5b9eeef..c8dff594d7 100644 --- a/docs/src/running-validator/README.md +++ b/docs/src/running-validator/README.md @@ -1,32 +1,5 @@ # Running a Validator -This document describes how to participate in the Solana testnet as a validator -node. +This section describes how run a Solana validator node. -Please note some of the information and instructions described here may change -in future releases, and documentation will be updated for mainnet participation. - -## Overview - -Solana currently maintains several testnets, each featuring a validator that can -serve as the entrypoint to the cluster for your validator. - -Current testnet entrypoints: - -* Developer testnet, devnet.solana.com - -Solana may launch special testnets for validator participation; we will provide -you with a specific entrypoint URL to use. - -Prior to mainnet, the testnets may be running different versions of solana -software, which may feature breaking changes. For information on choosing a -testnet and finding software version info, jump to [Choosing a Testnet](validator-testnet.md). - -The testnets are configured to reset the ledger daily, or sooner, should the -hourly automated cluster sanity test fail. - -There is a network explorer that shows the status of solana testnets available -at [http://explorer.solana.com/](https://explorer.solana.com/). - -Also we'd love it if you choose to register your validator node with us at -[https://forms.gle/LfFscZqJELbuUP139](https://forms.gle/LfFscZqJELbuUP139). +There are several clusters available to connect to, see [choosing a Cluster](../cli/choose-a-cluster.md) for an overview of each. diff --git a/docs/src/running-validator/validator-stake.md b/docs/src/running-validator/validator-stake.md index a28dab0c6f..f8485a0a61 100644 --- a/docs/src/running-validator/validator-stake.md +++ b/docs/src/running-validator/validator-stake.md @@ -86,7 +86,7 @@ To monitor your validator during its warmup period: * `solana validators` displays the current active stake of all validators, including yours * `solana stake-history ` shows the history of stake warming up and cooling down over recent epochs * Look for log messages on your validator indicating your next leader slot: `[2019-09-27T20:16:00.319721164Z INFO solana_core::replay_stage] voted and reset PoH at tick height ####. My next leader slot is ####` -* Once your stake is warmed up, you will see a stake balance listed for your validator on the [Solana Network Explorer](http://explorer.solana.com/validators) +* Once your stake is warmed up, you will see a stake balance listed for your validator by running `solana validators` ## Monitor Your Staked Validator diff --git a/docs/src/running-validator/validator-start.md b/docs/src/running-validator/validator-start.md index 5a92127507..3dcda373bb 100644 --- a/docs/src/running-validator/validator-start.md +++ b/docs/src/running-validator/validator-start.md @@ -9,10 +9,10 @@ set the `--url` argument for cli commands. For example: solana config set --url http://devnet.solana.com ``` -\(You can always override the set configuration by explicitly passing the -`--url` argument with a command, eg: `solana --url http://tds.solana.com balance`\) +While this section demonstrates how to connect to the Devnet cluster, the steps +are similar for the other [Solana Clusters](../clusters.md). -## Confirm The Testnet Is Reachable +## Confirm The Cluster Is Reachable Before attaching a validator node, sanity check that the cluster is accessible to your machine by fetching the transaction count: @@ -21,9 +21,6 @@ to your machine by fetching the transaction count: solana transaction-count ``` -Inspect the network explorer at -[https://explorer.solana.com/](https://explorer.solana.com/) for activity. - View the [metrics dashboard](https://metrics.solana.com:3000/d/monitor/cluster-telemetry) for more detail on cluster activity. @@ -111,7 +108,7 @@ network. **It is crucial to back-up this information.** If you don’t back up this information, you WILL NOT BE ABLE TO RECOVER YOUR VALIDATOR if you lose access to it. If this happens, YOU WILL LOSE YOUR -ALLOCATION OF LAMPORTS TOO. +ALLOCATION OF SOL TOO. To back-up your validator identify keypair, **back-up your "validator-keypair.json” file or your seed phrase to a secure location.** @@ -138,8 +135,10 @@ Wallet Config Updated: /home/solana/.config/solana/wallet/config.yml Airdrop yourself some SOL to get started: ```bash -solana airdrop 1000 +solana airdrop 10 ``` +Note that airdrops are only available on Devnet. Testnet SOL can be obtained by +participating in the [Tour de SOL](../tour-de-sol) program. To view your current balance: @@ -187,12 +186,16 @@ account state divergence. ## Connect Your Validator -Connect to a testnet cluster by running: +Connect to the cluster by running: ```bash -solana-validator --identity ~/validator-keypair.json --vote-account ~/vote-account-keypair.json \ - --ledger ~/validator-ledger --rpc-port 8899 --entrypoint devnet.solana.com:8001 \ - --limit-ledger-size +solana-validator \ + --identity ~/validator-keypair.json \ + --vote-account ~/vote-account-keypair.json \ + --ledger ~/validator-ledger \ + --rpc-port 8899 \ + --entrypoint devnet.solana.com:8001 \ + --limit-ledger-size ``` To force validator logging to the console add a `--log -` argument, otherwise @@ -219,9 +222,9 @@ If your validator is connected, its public key and IP address will appear in the By default the validator will dynamically select available network ports in the 8000-10000 range, and may be overridden with `--dynamic-port-range`. For example, `solana-validator --dynamic-port-range 11000-11010 ...` will restrict -the validator to ports 11000-11011. +the validator to ports 11000-11010. ### Limiting ledger size to conserve disk space -The `--limit-ledger-size` arg will instruct the validator to only retain the +The `--limit-ledger-size` argument will instruct the validator to only retain the last couple hours of ledger. To retain the full ledger, simply remove that arg. diff --git a/docs/src/tour-de-sol/participation/README.md b/docs/src/tour-de-sol/participation/README.md index 16d44b7f26..60e27ea9d1 100644 --- a/docs/src/tour-de-sol/participation/README.md +++ b/docs/src/tour-de-sol/participation/README.md @@ -1,5 +1 @@ ---- -description: Setup configuration ---- - # Participation diff --git a/docs/src/tour-de-sol/participation/dry-run-6.md b/docs/src/tour-de-sol/participation/dry-run-6.md deleted file mode 100644 index dbee72e4c2..0000000000 --- a/docs/src/tour-de-sol/participation/dry-run-6.md +++ /dev/null @@ -1,30 +0,0 @@ -# Dry Run 6 - -Dry Run 6 will test the performance of a heterogeneous cluster of validators under heavier transaction load. It will be structured as a series of increasing rounds of transactions per second \(TPS\). At the end of each round the validators that survive and produce a block in at least 80% of their leader slots will receive additional stake for the next round. The rounds will continue until the cluster stops making progress. - -![Ramp TPS rounds visualized](../../.gitbook/assets/ramp-tps-rounds.png) - -## Cluster Parameters: - -* GPUs optional -* Solana software version: v0.22.2 -* Target transaction rate of first round: 2,000 TPS -* Transaction rate round increment: 2,000 TPS -* Epoch duration: 4096 slots \(approximately 27 minutes\) -* Transaction signature fee: 0 lamport -* Genesis allotment to each validator: 2 SOL \(1 SOL for initial delegation, 1 SOL for transaction fees\) -* Round duration: 20 minutes of transactions, followed by 2-3 epochs for stake warm up - -## Timeline - -### 24 hour onboarding period: Connect, delegate, stake warmup \(approximately 24 hours\) - -When the cluster boots, validators will have over 24 hours to connect and delegate 1 SOL of stake to themselves - -### Ramp TPS rounds begin! \(approx. 1-2 hours per round\) - -Now that all validator stake is active, the Ramp TPS program will begin running the rounds of increasing transactions-per-second until the cluster fails to maintain consensus or TPS cannot be pushed any higher. Each round starts with of 20 minutes of solid transactions. After 20 minutes all validators that remain with the cluster will receive an additional stake delegation. This new stake will also take 3-4 epochs to warm up, and once warm up is complete the next round commences with an increased transaction rate. - -## References - -* [Ramp TPS program](https://github.com/solana-labs/tour-de-sol/tree/master/ramp-tps) diff --git a/docs/src/tour-de-sol/participation/steps-to-create-a-validator.md b/docs/src/tour-de-sol/participation/steps-to-create-a-validator.md new file mode 100644 index 0000000000..5584c73ce0 --- /dev/null +++ b/docs/src/tour-de-sol/participation/steps-to-create-a-validator.md @@ -0,0 +1,9 @@ +# Steps to create a validator + +To create a Solana validator, follow the normal [validator workflow](../../running-validator/validator-start.md) +targeting the [Testnet cluster](../../clusters.md). + +Note that Testnet validators are automatically staked by a process that runs +every Epoch. If your validator is running correctly then in a couple of days it +will be staked (and automatically destaked if offline for a prolonged period of +time). diff --git a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/README.md b/docs/src/tour-de-sol/participation/steps-to-create-a-validator/README.md deleted file mode 100644 index 871b1a6760..0000000000 --- a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Steps to create a validator - -To create a Solana validator, complete the following steps, using the instructions that follow this section. - -* [Install the Solana software](install-the-solana-software.md) -* [Create your validator public key](validator-public-key-registration.md) -* [Create and configure your validator](connecting-your-validator.md) -* [Confirm the Solana network is running](confirm-the-solana-network-is-running.md) -* [Connect your validator to the Solana network](connect-to-the-solana-network.md) -* [Validator catch-up](monitoring-your-validator.md) -* [Execute core validator functions](delegating-stake.md) -* [Publish validator info \(optional\)](publishing-information-about-your-validator.md) diff --git a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/confirm-the-solana-network-is-running.md b/docs/src/tour-de-sol/participation/steps-to-create-a-validator/confirm-the-solana-network-is-running.md deleted file mode 100644 index b53152894a..0000000000 --- a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/confirm-the-solana-network-is-running.md +++ /dev/null @@ -1,23 +0,0 @@ -# Confirm the Solana network is running - -Before you connect your validator to the Solana network, confirm the network is running. To do this, view the existing nodes in the network using: - -```bash -solana-gossip spy --entrypoint tds.solana.com:8001 -``` - -If you see more than 1 node listed in the output of the above command, the network is running. - -To view the current active stake of all validators, run: - -```bash -solana show-validators -``` - -Finally the `ping` command can be used to check that the cluster is able to process transactions: - -```bash -solana ping -``` - -This command sends a tiny transaction every 2 seconds and reports how long it takes to confirm it. diff --git a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/connect-to-the-solana-network.md b/docs/src/tour-de-sol/participation/steps-to-create-a-validator/connect-to-the-solana-network.md deleted file mode 100644 index e336ac55b3..0000000000 --- a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/connect-to-the-solana-network.md +++ /dev/null @@ -1,41 +0,0 @@ -# Connect to the Solana network - -## Create Vote Account - -Once you’ve confirmed the network is running, it’s time to connect your validator to the network. - -If you haven’t already done so, create a vote-account keypair and create the vote account on the network. If you have completed this step, you should see the “vote-account-keypair.json” in your Solana runtime directory: - -```bash -solana-keygen new -o ~/vote-account-keypair.json -``` - -Create your vote account on the blockchain: - -```bash -solana create-vote-account ~/vote-account-keypair.json ~/validator-keypair.json -``` - -## Connect Your Validator - -Connect to the Tour de SOL cluster by running: - -```bash -export SOLANA_METRICS_CONFIG="host=https://metrics.solana.com:8086,db=tds,u=tds_writer,p=dry_run" -``` - -```bash -solana-validator --identity ~/validator-keypair.json --vote-account ~/vote-account-keypair.json \ - --ledger ~/validator-ledger --rpc-port 8899 --entrypoint tds.solana.com:8001 \ - --limit-ledger-size -``` - -To force validator logging to the console add a `--log -` argument, otherwise the validator will automatically log to a file. - -Confirm your validator connected to the network by running: - -```bash -solana-gossip spy --entrypoint tds.solana.com:8001 -``` - -This command will display all the nodes that are visible to the TdS network’s entrypoint. If your validator is connected, its public key and IP address will appear in the list. diff --git a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/connecting-your-validator.md b/docs/src/tour-de-sol/participation/steps-to-create-a-validator/connecting-your-validator.md deleted file mode 100644 index 434df69107..0000000000 --- a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/connecting-your-validator.md +++ /dev/null @@ -1,43 +0,0 @@ -# Create and configure a Solana validator - -The validator identity keypair [you created](validator-public-key-registration.md) identifies your validator. Your validator public key, which you registered for the TdS, will receive an allotment of lamports in the genesis block that can be used to start your validator node. _Note that airdrops have been disabled so the `solana airdrop` command will fail._ - -## Configure Solana - -Configure solana for your validator identity and Tour de SOL: - -```bash -solana config set --url http://tds.solana.com --keypair ~/validator-keypair.json -``` - -You should see the following output: - -```text -Wallet Config Updated: /home/solana/.config/solana/wallet/config.yml -* url: http://tds.solana.com -* keypair: /home/solana/validator-keypair.json -``` - -You can see the wallet configuration at any time by running: - -```text -solana config get -``` - -## Check Validator Balance - -To view your current balance: - -```text -solana balance -``` - -Or to see in finer detail: - -```text -solana balance --lamports -``` - -If your validator identity keypair is created and the above command shows a non-zero balance, your validator is created and configured for TdS. - -Your starting balance will be 500 SOL. Read more about the [difference between SOL and lamports here](../../../introduction.md#what-are-sols). diff --git a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/delegating-stake.md b/docs/src/tour-de-sol/participation/steps-to-create-a-validator/delegating-stake.md deleted file mode 100644 index 4f6bb61c07..0000000000 --- a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/delegating-stake.md +++ /dev/null @@ -1,82 +0,0 @@ -# Staking - -**By default your validator will have no stake.** This means it will be ineligible to become leader. -To delegate stake, first make sure your validator is running and has [caught up to the cluster](monitoring-your-validator.md#validator-catch-up). - -More information about staking on solana can be found [here](../../../running-validator/validator-stake.md). - -## Create Stake Keypair - -If you haven’t already done so, create a staking keypair. If you have completed this step, you should see the “validator-stake-keypair.json” in your Solana runtime directory. - -```bash -solana-keygen new -o ~/validator-stake-keypair.json -``` - -## Delegate Stake - -Now delegate 1 SOL to your validator by first creating your stake account: - -```bash -solana create-stake-account ~/validator-stake-keypair.json 1 -``` - -and then delegating that stake to your validator: - -```bash -solana delegate-stake ~/validator-stake-keypair.json ~/vote-account-keypair.json -``` - -{% hint style="warning" %} -Don’t delegate all your SOL as your validator identity account requires some to submit votes. -{% endhint %} - -At the end of each slot, a validator is expected to send a vote transaction. These vote transactions are paid for by lamports from a validator's identity account. - -This is a normal transaction so the standard transaction fee will apply. The transaction fee range is defined by the genesis block. The actual fee will fluctuate based on transaction load. You can determine the current fee via the [RPC API “getRecentBlockhash”](../../../apps/jsonrpc-api.md#getrecentblockhash) before submitting a transaction. - -Learn more about [transaction fees here](../../../implemented-proposals/transaction-fees.md). - -## Validator Stake Warm-up - -Stakes need to warm up, and warmup increments are applied at Epoch boundaries, so it can take an hour or more for stake to come fully online. - -To monitor your validator during its warmup period: - -* View your vote account:`solana vote-account ~/vote-account-keypair.json` This displays the current state of all the votes the validator has submitted to the network. -* View your stake account, the delegation preference and details of your stake:`solana stake-account ~/validator-stake-keypair.json` -* `solana validators` displays the current active stake of all validators, including yours -* `solana stake-history ` shows the history of stake warming up and cooling down over recent epochs -* Look for log messages on your validator indicating your next leader slot: `[2019-09-27T20:16:00.319721164Z INFO solana_core::replay_stage] voted and reset PoH at tick height ####. My next leader slot is ####` -* Once your stake is warmed up, you will see a stake balance listed for your validator on the [Solana Network Explorer](http://explorer.solana.com/validators) - -## Monitor Your Staked Validator - -Confirm your validator becomes a [leader](../../../terminology.md#leader) - -* After your validator is caught up, use the `$ solana balance` command to monitor the earnings as your validator is selected as leader and collects transaction fees -* Solana nodes offer a number of useful JSON-RPC methods to return information about the network and your validator's participation. Make a request by using curl \(or another http client of your choosing\), specifying the desired method in JSON-RPC-formatted data. For example: - -```bash - // Request - curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1, "method":"getEpochInfo"}' http://localhost:8899 - - // Result - {"jsonrpc":"2.0","result":{"epoch":3,"slotIndex":126,"slotsInEpoch":256},"id":1} -``` - -Helpful JSON-RPC methods: - -* `getEpochInfo`[ An epoch](../../../terminology.md#epoch) is the time, i.e. number of [slots](../../../terminology.md?highlight=epoch#slot), for which a [leader schedule](../../../terminology.md?highlight=epoch#leader-schedule) is valid. This will tell you what the current epoch is and how far into it the cluster is. -* `getVoteAccounts` This will tell you how much active stake your validator currently has. A % of the validator's stake is activated on an epoch boundary. You can learn more about staking on Solana [here](../../../cluster/stake-delegation-and-rewards.md). -* `getLeaderSchedule` At any given moment, the network expects only one validator to produce ledger entries. The [validator currently selected to produce ledger entries](../../../cluster/leader-rotation.md) is called the “leader”. This will return the complete leader schedule \(on a slot-by-slot basis\) for the current epoch. If you validator is scheduled to be leader based on its currently activated stake, the identity pubkey will show up 1 or more times here. - -## Deactivating Stake - -Before detaching your validator from the TdS cluster, you should deactivate the stake that was previously delegated by running: - -```bash -solana deactivate-stake ~/validator-stake-keypair.json -``` - -Stake is not deactivated immediately and instead cools down in a similar fashion as stake warm up. Your validator should remain attached to the cluster while the stake is cooling down. More information about the stake cool down can be found [here](../../../running-validator/validator-stake.md) diff --git a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/install-the-solana-software.md b/docs/src/tour-de-sol/participation/steps-to-create-a-validator/install-the-solana-software.md deleted file mode 100644 index 161cbe74ca..0000000000 --- a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/install-the-solana-software.md +++ /dev/null @@ -1,21 +0,0 @@ -# Install the Solana software - -Before attempting to connect your validator to the Tour de SOL cluster, be familiar with connecting a validator to the Public Testnet as described [here](../../../running-validator/README.md). - -You can confirm the version running on the cluster entrypoint by running: - -```text -curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0","id":1,"method":"getVersion"}' tds.solana.com:8899 -``` - -Note the version number - -## Install Software - -Install the Solana release [LATEST_SOLANA_RELEASE_VERSION](https://github.com/solana-labs/solana/releases/tag/LATEST_SOLANA_RELEASE_VERSION) on your machine by running: - -```bash -curl -sSf https://raw.githubusercontent.com/solana-labs/solana/v1.0.0/install/solana-install-init.sh | sh -s - LATEST_SOLANA_RELEASE_VERSION -``` - -then run `solana --version` to confirm the expected version number. diff --git a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/monitoring-your-validator.md b/docs/src/tour-de-sol/participation/steps-to-create-a-validator/monitoring-your-validator.md deleted file mode 100644 index 322d4ad5ae..0000000000 --- a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/monitoring-your-validator.md +++ /dev/null @@ -1,12 +0,0 @@ -# Validator catch-up - -Once your validator is connected and voting, it should appear on the [Solana Network Explorer](http://explorer.solana.com/validators). \(Switch to the Tour de SOL network in the top right\) - -But your validator may take some time to catch up with the cluster. Use the `catchup` command to monitor this process: -```bash -solana catchup ~/validator-keypair.json -``` - -Until your validator has caught up, it will not be able to vote successfully and stake cannot be delegated to it. - -Also if you find the network's slot advancing faster than yours, you will likely never catch up. This typically implies some kind of networking issue between your validator and the rest of the network. diff --git a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/publishing-information-about-your-validator.md b/docs/src/tour-de-sol/participation/steps-to-create-a-validator/publishing-information-about-your-validator.md deleted file mode 100644 index e25f81ed87..0000000000 --- a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/publishing-information-about-your-validator.md +++ /dev/null @@ -1,23 +0,0 @@ -# Publish information about your validator - -See [here](../../../running-validator/validator-info.md) for background: - -Example publish command: - -```bash -solana validator-info publish "Elvis Validator" -n elvis -w "https://elvis-validates.com" -``` - -Example query command: - -```bash -solana validator-info get -``` - -which outputs - -```text -Validator info from 8WdJvDz6obhADdxpGCiJKZsDYwTLNEDFizayqziDc9ah - Validator pubkey: 6dMH3u76qZ7XG4bVboVRnBHR2FfrxEqTTTyj4xmyDMWo - Info: {"keybaseUsername":"elvis","name":"Elvis Validator","website":"https://elvis-validates.com"} -``` diff --git a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/validator-public-key-registration.md b/docs/src/tour-de-sol/participation/validator-public-key-registration.md similarity index 79% rename from docs/src/tour-de-sol/participation/steps-to-create-a-validator/validator-public-key-registration.md rename to docs/src/tour-de-sol/participation/validator-public-key-registration.md index a5db2cdf86..a852498d2d 100644 --- a/docs/src/tour-de-sol/participation/steps-to-create-a-validator/validator-public-key-registration.md +++ b/docs/src/tour-de-sol/participation/validator-public-key-registration.md @@ -1,12 +1,9 @@ # Create a validator public key -In order to participate in any Tour de SOL dry-runs or stages, you need to register for the Tour de SOL. +In order to participate you need to first register. See [Registration info](../registration/how-to-register.md). -See [Registration info](../../registration/README.md). - -In order to obtain your allotment of lamports at the start of a Tour de SOL stage or dry run, you need to publish your validator's identity public key under your keybase.io account. - -**If these steps are not completed by the cut-off time you will not be able to participate.** +In order to obtain your allotment of SOL you need to publish your +validator's identity public key under your keybase.io account. ## **Generate Keypair** @@ -28,7 +25,7 @@ Note: The "validator-keypair.json” file is also your \(ed25519\) private key. Your validator identity keypair uniquely identifies your validator within the network. **It is crucial to back-up this information.** -If you don’t back up this information, you WILL NOT BE ABLE TO RECOVER YOUR VALIDATOR, if you lose access to it. If this happens, YOU WILL LOSE YOUR ALLOCATION OF LAMPORTS TOO. +If you don’t back up this information, you WILL NOT BE ABLE TO RECOVER YOUR VALIDATOR, if you lose access to it. If this happens, YOU WILL LOSE YOUR ALLOCATION OF SOL TOO. To back-up your validator identify keypair, **back-up your "validator-keypair.json” file to a secure location.** diff --git a/docs/src/tour-de-sol/participation/validator-technical-requirements.md b/docs/src/tour-de-sol/participation/validator-technical-requirements.md index 54ce4a1b27..17d0fc7143 100644 --- a/docs/src/tour-de-sol/participation/validator-technical-requirements.md +++ b/docs/src/tour-de-sol/participation/validator-technical-requirements.md @@ -4,23 +4,6 @@ See [suggested hardware configuration here](../../running-validator/validator-reqs.md). -* CPU Recommendations - * We recommend a CPU with the highest number of cores as possible. AMD Threadripper or Intel Server \(Xeon\) CPUs are fine. - * We recommend AMD Threadripper as you get a larger number of cores for parallelization compared to Intel. - * Threadripper also has a cost-per-core advantage and a greater number of PCIe lanes compared to the equivalent Intel part. PoH \(Proof of History\) is based on sha256 and Threadripper also supports sha256 hardware instructions. -* SSD size and I/O style \(SATA vs NVMe/M.2\)
 for a validator - * Minimum example - Samsung 860 Evo 2TB - * Mid-range example - Samsung 860 Evo 4TB - * High-end example - Samsung 860 Evo 4TB -* GPUs - * **Validator** nodes will be required to run with GPUs starting at Stage 1 of Tour de SOL. Without GPUs, a validator will not be able to catch up to the ledger once the network is launched. GPUs are NOT required for validators during Stage 0/Dry Runs of Tour de SOL. - * What kind of GPU? - * We recommend Nvidia 2080Ti or 1080Ti series consumer GPU or Tesla series server GPUs. - * We do not currently support OpenCL and therefore do not support AMD GPUs. We have a bounty out for someone to port us to OpenCL. Interested? [Check out our GitHub.](https://github.com/solana-labs/solana) -* Power Consumption - * Approximate power consumption for a validator node running an AMD Threadripper 2950W and 2x 2080Ti GPUs is 800-1000W. - -## **Software** +## Software * We build and run on Ubuntu 18.04. Some users have had trouble when running on Ubuntu 16.04 -* See [Connecting Your Validator](steps-to-create-a-validator/connecting-your-validator.md#install-software) for the current Solana software release. diff --git a/docs/src/tour-de-sol/submitting-bugs.md b/docs/src/tour-de-sol/submitting-bugs.md index ac9df92de7..0770c470c9 100644 --- a/docs/src/tour-de-sol/submitting-bugs.md +++ b/docs/src/tour-de-sol/submitting-bugs.md @@ -1,5 +1,5 @@ # Submitting Bugs -Please submit all bugs and feedback as [issues in this Github repo](https://github.com/solana-labs/tour-de-sol/issues). +Please submit all bugs and feedback as [issues in this Github repo](https://github.com/solana-labs/solana/issues). Given the fast pace of communication in the [Discord channels](useful-links.md), it’s likely issues reported in them may be lost in the information flow. Filing the issues in the Github repo is the only way to ensure the issues get logged and addressed. diff --git a/docs/src/tour-de-sol/useful-links.md b/docs/src/tour-de-sol/useful-links.md index b8616249ba..3c3cd2824e 100644 --- a/docs/src/tour-de-sol/useful-links.md +++ b/docs/src/tour-de-sol/useful-links.md @@ -4,17 +4,14 @@ description: Where to go after you've read this guide # Useful Links & Discussion -* [Solana Docs](https://docs.solana.com/) * [Network Explorer](http://explorer.solana.com/) * [TdS metrics dashboard](https://metrics.solana.com:3000/d/monitor-edge/cluster-telemetry-edge?refresh=1m&from=now-15m&to=now&var-testnet=tds) * Validator chat channels * [\#validator-support](https://discord.gg/rZsenD) General support channel for any Validator related queries that don’t fall under Tour de SOL. - * [\#tourdesol](https://discord.gg/BdujK2) Discussion and support channel for Tour de SOL participants. + * [\#tourdesol-validators](https://discord.gg/BdujK2) Discussion and support channel for Tour de SOL participants. * [\#tourdesol-announcements](https://discord.gg/Q5TxEC) The single source of truth for critical information relating to Tour de SOL - * [\#tourdesol-stage0](https://discord.gg/Xf8tES) Discussion for events within Tour de SOL Stage 0. Stage 0 includes all the dry-run * [Core software repo](https://github.com/solana-labs/solana) -* [Current Testnet/TdS repo](https://github.com/solana-labs/tour-de-sol) -* [Submit bugs and feedback in this repo](https://github.com/solana-labs/tour-de-sol/issues) +* [Submit bugs and feedback in this repo](https://github.com/solana-labs/solana/issues) {% hint style="info" %} Can't find what you're looking for? Send an email to ryan@solana.com or reach out to @rshea\#2622 on Discord.