Move from gitbook to docusaurus, build docs in Travis CI (#10970)
* fix: ignore unknown fields in more RPC responses * Remove mdbook infrastructure * Delete gitattributes and other theme related items Move all docs to /docs folder to support Docusaurus * all docs need to be moved to /docs * can be changed in the future Add Docusaurus infrastructure * initialize docusaurus repo Remove trailing whitespace, add support for eslint Change Docusaurus configuration to support `src` * No need to rename the folder! Change a setting and we're all good to go. * Fixing rebase items * Remove unneccessary markdown file, fix type * Some fonts are hard to read. Others, not so much. Rubik, you've been sidelined. Roboto, into the limelight! * As much as we all love tutorials, I think we all can navigate around a markdown file. Say goodbye, `mdx.md`. * Setup deployment infrastructure * Move docs job from buildkite to travic * Fix travis config * Add vercel token to travis config * Only deploy docs after merge * Docker rust env * Revert "Docker rust env" This reverts commit f84bc208e807aab1c0d97c7588bbfada1fedfa7c. * Build CLI usage from docker * Pacify shellcheck * Run job on PR and new commits for publication * Update README * Fix svg image building * shellcheck Co-authored-by: Michael Vines <mvines@gmail.com> Co-authored-by: Ryan Shea <rmshea@users.noreply.github.com> Co-authored-by: publish-docs.sh <maintainers@solana.com>
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
# Running a Validator
|
||||
---
|
||||
title: Running a Validator
|
||||
---
|
||||
|
||||
This section describes how run a Solana validator node.
|
||||
|
||||
|
@@ -1,4 +1,6 @@
|
||||
# Publishing Validator Info
|
||||
---
|
||||
title: Publishing Validator Info
|
||||
---
|
||||
|
||||
You can publish your validator information to the chain to be publicly visible to other users.
|
||||
|
||||
@@ -10,7 +12,7 @@ Run the solana CLI to populate a validator info account:
|
||||
solana validator-info publish --keypair ~/validator-keypair.json <VALIDATOR_INFO_ARGS> <VALIDATOR_NAME>
|
||||
```
|
||||
|
||||
For details about optional fields for VALIDATOR\_INFO\_ARGS:
|
||||
For details about optional fields for VALIDATOR_INFO_ARGS:
|
||||
|
||||
```bash
|
||||
solana validator-info publish --help
|
||||
@@ -47,14 +49,16 @@ pubkey with Keybase:
|
||||
|
||||
1. Join [https://keybase.io/](https://keybase.io/) and complete the profile for your validator
|
||||
2. Add your validator **identity pubkey** to Keybase:
|
||||
* Create an empty file on your local computer called `validator-<PUBKEY>`
|
||||
* In Keybase, navigate to the Files section, and upload your pubkey file to
|
||||
|
||||
- Create an empty file on your local computer called `validator-<PUBKEY>`
|
||||
- In Keybase, navigate to the Files section, and upload your pubkey file to
|
||||
|
||||
a `solana` subdirectory in your public folder: `/keybase/public/<KEYBASE_USERNAME>/solana`
|
||||
|
||||
* To check your pubkey, ensure you can successfully browse to
|
||||
- To check your pubkey, ensure you can successfully browse to
|
||||
|
||||
`https://keybase.pub/<KEYBASE_USERNAME>/solana/validator-<PUBKEY>`
|
||||
|
||||
3. Add or update your `solana validator-info` with your Keybase username. The
|
||||
|
||||
CLI will verify the `validator-<PUBKEY>` file
|
||||
|
@@ -1,4 +1,6 @@
|
||||
# Monitoring a Validator
|
||||
---
|
||||
title: Monitoring a Validator
|
||||
---
|
||||
|
||||
## Check Gossip
|
||||
|
||||
@@ -44,7 +46,6 @@ curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1, "m
|
||||
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1, "method":"getEpochInfo"}' http://devnet.solana.com
|
||||
```
|
||||
|
||||
|
||||
## Validator Metrics
|
||||
|
||||
Metrics are available for local monitoring of your validator.
|
||||
|
@@ -1,46 +1,48 @@
|
||||
# Validator Requirements
|
||||
---
|
||||
title: Validator Requirements
|
||||
---
|
||||
|
||||
## Hardware
|
||||
|
||||
* 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
|
||||
* While a CPU-only node may be able to keep up with the initial idling network, once transaction throughput increases, GPUs will be necessary
|
||||
* 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.
|
||||
- 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
|
||||
- While a CPU-only node may be able to keep up with the initial idling network, once transaction throughput increases, GPUs will be necessary
|
||||
- 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.
|
||||
|
||||
### Preconfigured Setups
|
||||
|
||||
Here are our recommendations for low, medium, and high end machine specifications:
|
||||
|
||||
| | Low end | Medium end | High end | Notes |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| CPU | AMD Threadripper 1900x | AMD Threadripper 2920x | AMD Threadripper 2950x | Consider a 10Gb-capable motherboard with as many PCIe lanes and m.2 slots as possible. |
|
||||
| RAM | 16GB | 32GB | 64GB | |
|
||||
| OS Drive | Samsung 860 Evo 2TB | Samsung 860 Evo 4TB | Samsung 860 Evo 4TB | Or equivalent SSD |
|
||||
| Accounts Drive\(s\) | None | Samsung 970 Pro 1TB | 2x Samsung 970 Pro 1TB | |
|
||||
| GPU | 4x Nvidia 1070 or 2x Nvidia 1080 Ti or 2x Nvidia 2070 | 2x Nvidia 2080 Ti | 4x Nvidia 2080 Ti | Any number of cuda-capable GPUs are supported on Linux platforms. |
|
||||
| | Low end | Medium end | High end | Notes |
|
||||
| :------------------ | :---------------------------------------------------- | :--------------------- | :--------------------- | :------------------------------------------------------------------------------------- |
|
||||
| CPU | AMD Threadripper 1900x | AMD Threadripper 2920x | AMD Threadripper 2950x | Consider a 10Gb-capable motherboard with as many PCIe lanes and m.2 slots as possible. |
|
||||
| RAM | 16GB | 32GB | 64GB | |
|
||||
| OS Drive | Samsung 860 Evo 2TB | Samsung 860 Evo 4TB | Samsung 860 Evo 4TB | Or equivalent SSD |
|
||||
| Accounts Drive\(s\) | None | Samsung 970 Pro 1TB | 2x Samsung 970 Pro 1TB | |
|
||||
| GPU | 4x Nvidia 1070 or 2x Nvidia 1080 Ti or 2x Nvidia 2070 | 2x Nvidia 2080 Ti | 4x Nvidia 2080 Ti | Any number of cuda-capable GPUs are supported on Linux platforms. |
|
||||
|
||||
## Software
|
||||
|
||||
* We build and run on Ubuntu 18.04. Some users have had trouble when running on Ubuntu 16.04
|
||||
* See [Installing Solana](../cli/install-solana-cli-tools.md) for the current Solana software release.
|
||||
- We build and run on Ubuntu 18.04. Some users have had trouble when running on Ubuntu 16.04
|
||||
- See [Installing Solana](../cli/install-solana-cli-tools.md) for the current Solana software release.
|
||||
|
||||
Be sure to ensure that the machine used is not behind a residential NAT to avoid
|
||||
NAT traversal issues. A cloud-hosted machine works best. **Ensure that IP ports 8000 through 10000 are not blocked for Internet inbound and outbound traffic.**
|
||||
For more information on port forwarding with regards to residential networks,
|
||||
see [this document](http://www.mcs.sdsmt.edu/lpyeatt/courses/314/PortForwardingSetup.pdf).
|
||||
|
||||
Prebuilt binaries are available for Linux x86\_64 \(Ubuntu 18.04 recommended\).
|
||||
Prebuilt binaries are available for Linux x86_64 \(Ubuntu 18.04 recommended\).
|
||||
MacOS or WSL users may build from source.
|
||||
|
||||
## GPU Requirements
|
||||
|
@@ -1,4 +1,6 @@
|
||||
# Staking
|
||||
---
|
||||
title: Staking
|
||||
---
|
||||
|
||||
**By default your validator will have no stake.** This means it will be
|
||||
ineligible to become leader.
|
||||
@@ -81,19 +83,19 @@ 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] <VALIDATOR_IDENTITY_PUBKEY> 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 by running `solana validators`
|
||||
- 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] <VALIDATOR_IDENTITY_PUBKEY> 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 by running `solana 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:
|
||||
- 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
|
||||
@@ -105,9 +107,9 @@ Confirm your validator becomes a [leader](../terminology.md#leader)
|
||||
|
||||
Helpful JSON-RPC methods:
|
||||
|
||||
* `getEpochInfo`[An epoch](../terminology.md#epoch) is the time, i.e. number of [slots](../terminology.md#slot), for which a [leader schedule](../terminology.md#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#leader-rotation) is called the “leader”. This will return the complete leader schedule \(on a slot-by-slot basis\) for currently activated stake, the identity pubkey will show up 1 or more times here.
|
||||
- `getEpochInfo`[An epoch](../terminology.md#epoch) is the time, i.e. number of [slots](../terminology.md#slot), for which a [leader schedule](../terminology.md#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#leader-rotation) is called the “leader”. This will return the complete leader schedule \(on a slot-by-slot basis\) for currently activated stake, the identity pubkey will show up 1 or more times here.
|
||||
|
||||
## Deactivating Stake
|
||||
|
||||
@@ -119,7 +121,7 @@ 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
|
||||
as stake warm up. Your validator should remain attached to the cluster while
|
||||
the stake is cooling down. While cooling down, your stake will continue to earn
|
||||
rewards. Only after stake cooldown is it safe to turn off your validator or
|
||||
withdraw it from the network. Cooldown may take several epochs to complete,
|
||||
|
@@ -1,4 +1,6 @@
|
||||
# Starting a Validator
|
||||
---
|
||||
title: Starting a Validator
|
||||
---
|
||||
|
||||
## Configure Solana CLI
|
||||
|
||||
@@ -85,11 +87,12 @@ The corresponding identity public key can now be viewed by running:
|
||||
```bash
|
||||
solana-keygen pubkey ASK
|
||||
```
|
||||
|
||||
and then entering your seed phrase.
|
||||
|
||||
See [Paper Wallet Usage](../paper-wallet/paper-wallet-usage.md) for more info.
|
||||
|
||||
-------
|
||||
---
|
||||
|
||||
### Vanity Keypair
|
||||
|
||||
@@ -101,7 +104,7 @@ solana-keygen grind --starts-with e1v1s
|
||||
|
||||
Depending on the string requested, it may take days to find a match...
|
||||
|
||||
------
|
||||
---
|
||||
|
||||
Your validator identity keypair uniquely identifies your validator within the
|
||||
network. **It is crucial to back-up this information.**
|
||||
@@ -137,6 +140,7 @@ Airdrop yourself some SOL to get started:
|
||||
```bash
|
||||
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/README.md) program.
|
||||
|
||||
@@ -222,11 +226,11 @@ To force validator logging to the console add a `--log -` argument, otherwise
|
||||
the validator will automatically log to a file.
|
||||
|
||||
> Note: You can use a
|
||||
[paper wallet seed phrase](../paper-wallet/paper-wallet-usage.md)
|
||||
for your `--identity` and/or
|
||||
`--vote-account` keypairs. To use these, pass the respective argument as
|
||||
`solana-validator --identity ASK ... --vote-account ASK ...` and you will be
|
||||
prompted to enter your seed phrases and optional passphrase.
|
||||
> [paper wallet seed phrase](../paper-wallet/paper-wallet-usage.md)
|
||||
> for your `--identity` and/or
|
||||
> `--vote-account` keypairs. To use these, pass the respective argument as
|
||||
> `solana-validator --identity ASK ... --vote-account ASK ...` and you will be
|
||||
> prompted to enter your seed phrases and optional passphrase.
|
||||
|
||||
Confirm your validator connected to the network by opening a new terminal and
|
||||
running:
|
||||
|
@@ -1,19 +1,22 @@
|
||||
# Troubleshooting
|
||||
---
|
||||
title: Troubleshooting
|
||||
---
|
||||
|
||||
There is a **\#validator-support** Discord channel available to reach other
|
||||
testnet participants, [https://discord.gg/pquxPsq](https://discord.gg/pquxPsq).
|
||||
|
||||
## Useful Links & Discussion
|
||||
* [Network Explorer](http://explorer.solana.com/)
|
||||
* [Testnet Metrics Dashboard](https://metrics.solana.com:3000/d/monitor-edge/cluster-telemetry-edge?refresh=60s&orgId=2)
|
||||
* Validator chat channels
|
||||
* [\#validator-support](https://discord.gg/rZsenD) General support channel for any Validator related queries.
|
||||
* [\#tourdesol](https://discord.gg/BdujK2) Discussion and support channel for Tour de SOL participants ([What is Tour de SOL?](https://solana.com/tds/)).
|
||||
* [\#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)
|
||||
* [Tour de SOL Docs](https://docs.solana.com/tour-de-sol)
|
||||
* [TdS repo](https://github.com/solana-labs/tour-de-sol)
|
||||
* [TdS metrics dashboard](https://metrics.solana.com:3000/d/monitor-edge/cluster-telemetry-edge?refresh=1m&from=now-15m&to=now&var-testnet=tds)
|
||||
|
||||
- [Network Explorer](http://explorer.solana.com/)
|
||||
- [Testnet Metrics Dashboard](https://metrics.solana.com:3000/d/monitor-edge/cluster-telemetry-edge?refresh=60s&orgId=2)
|
||||
- Validator chat channels
|
||||
- [\#validator-support](https://discord.gg/rZsenD) General support channel for any Validator related queries.
|
||||
- [\#tourdesol](https://discord.gg/BdujK2) Discussion and support channel for Tour de SOL participants ([What is Tour de SOL?](https://solana.com/tds/)).
|
||||
- [\#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)
|
||||
- [Tour de SOL Docs](https://docs.solana.com/tour-de-sol)
|
||||
- [TdS repo](https://github.com/solana-labs/tour-de-sol)
|
||||
- [TdS metrics dashboard](https://metrics.solana.com:3000/d/monitor-edge/cluster-telemetry-edge?refresh=1m&from=now-15m&to=now&var-testnet=tds)
|
||||
|
||||
Can't find what you're looking for? Send an email to ryan@solana.com or reach out to @rshea\#2622 on Discord.
|
||||
|
Reference in New Issue
Block a user