The fullnode identity keypair can now be provided via --identity (#4228)

automerge
This commit is contained in:
Michael Vines
2019-05-09 07:51:45 -07:00
committed by Grimes
parent 5dc14658e6
commit bd1e989b11
3 changed files with 40 additions and 23 deletions

View File

@ -104,25 +104,31 @@ $ solana-gossip --network testnet.solana.com:8001 spy
# Press ^C to exit # Press ^C to exit
``` ```
Then the following command will start a new validator node. Now configure a key pair for your validator by running:
```bash
$ solana-keygen -o fullnode-keypair.json
```
Then use one of the following commands, depending on your installation
choice, to start the node:
If this is a `solana-install`-installation: If this is a `solana-install`-installation:
```bash ```bash
$ clear-fullnode-config.sh $ clear-fullnode-config.sh
$ fullnode.sh --poll-for-new-genesis-block testnet.solana.com $ fullnode.sh --identity fullnode-keypair.json --poll-for-new-genesis-block testnet.solana.com
``` ```
Alternatively, the `solana-install run` command can be used to run the validator Alternatively, the `solana-install run` command can be used to run the validator
node while periodically checking for and applying software updates: node while periodically checking for and applying software updates:
```bash ```bash
$ clear-fullnode-config.sh $ clear-fullnode-config.sh
$ solana-install run fullnode.sh -- --poll-for-new-genesis-block testnet.solana.com $ solana-install run fullnode.sh -- --identity fullnode-keypair.json --poll-for-new-genesis-block testnet.solana.com
``` ```
If you built from source: If you built from source:
```bash ```bash
$ USE_INSTALL=1 ./multinode-demo/clear-fullnode-config.sh $ USE_INSTALL=1 ./multinode-demo/clear-fullnode-config.sh
$ USE_INSTALL=1 ./multinode-demo/fullnode.sh --poll-for-new-genesis-block testnet.solana.com $ USE_INSTALL=1 ./multinode-demo/fullnode.sh --identity fullnode-keypair.json --poll-for-new-genesis-block testnet.solana.com
``` ```
#### Controlling local network port allocation #### Controlling local network port allocation
@ -132,35 +138,40 @@ example, `fullnode.sh --dynamic-port-range 11000-11010 ...` will restrict the
validator to ports 11000-11011. validator to ports 11000-11011.
### Validator Monitoring ### Validator Monitoring
When `fullnode.sh` starts, it will output a fullnode configuration that looks
similar to:
```bash
======================[ Fullnode configuration ]======================
node pubkey: 4ceWXsL3UJvn7NYZiRkw7NsryMpviaKBDYr8GK7J61Dm
vote pubkey: 2ozWvfaXQd1X6uKh8jERoRGApDqSqcEy6fF1oN13LL2G
ledger: ...
accounts: ...
======================================================================
```
The **node pubkey** for your validator can also be found by running:
```bash
$ solana-keygen pubkey fullnode-keypair.json
```
From another console, confirm the IP address of your validator is visible in the From another console, confirm the IP address of your validator is visible in the
gossip network by running: gossip network by running:
```bash ```bash
$ solana-gossip --network testnet.solana.com:8001 spy $ solana-gossip --network testnet.solana.com:8001 spy
``` ```
When `fullnode.sh` starts, it will output a fullnode configuration that looks Provide the **vote pubkey** to the `solana-wallet show-vote-account` command to view
similar to:
```bash
======================[ Fullnode configuration ]======================
node id: 4ceWXsL3UJvn7NYZiRkw7NsryMpviaKBDYr8GK7J61Dm
vote id: 2ozWvfaXQd1X6uKh8jERoRGApDqSqcEy6fF1oN13LL2G
ledger: ...
accounts: ...
======================================================================
```
Provide the **vote id** pubkey to the `solana-wallet show-vote-account` command to view
the recent voting activity from your validator: the recent voting activity from your validator:
```bash ```bash
$ solana-wallet -n testnet.solana.com show-vote-account 2ozWvfaXQd1X6uKh8jERoRGApDqSqcEy6fF1oN13LL2G $ solana-wallet -n testnet.solana.com show-vote-account 2ozWvfaXQd1X6uKh8jERoRGApDqSqcEy6fF1oN13LL2G
``` ```
The vote id for the validator can also be found by running: The vote pubkey for the validator can also be found by running:
```bash ```bash
# If this is a `solana-install`-installation run: # If this is a `solana-install`-installation run:
$ solana-keygen pubkey ~/.local/share/solana/install/active_release/config-local/fullnode-vote-id.json $ solana-keygen pubkey ~/.local/share/solana/install/active_release/config-local/fullnode-vote-keypair.json
# Otherwise run: # Otherwise run:
$ solana-keygen pubkey ./config-local/fullnode-vote-id.json $ solana-keygen pubkey ./config-local/fullnode-vote-keypair.json
``` ```
### Sharing Metrics From Your Validator ### Sharing Metrics From Your Validator

View File

@ -16,6 +16,7 @@ extra_fullnode_args=()
stake=43 # number of lamports to assign as stake (plus transaction fee to setup the stake) stake=43 # number of lamports to assign as stake (plus transaction fee to setup the stake)
poll_for_new_genesis_block=0 poll_for_new_genesis_block=0
label= label=
fullnode_id_path=
while [[ ${1:0:1} = - ]]; do while [[ ${1:0:1} = - ]]; do
if [[ $1 = --label ]]; then if [[ $1 = --label ]]; then
@ -28,6 +29,10 @@ while [[ ${1:0:1} = - ]]; do
stake=0 stake=0
extra_fullnode_args+=("$1" "$2") extra_fullnode_args+=("$1" "$2")
shift 2 shift 2
elif [[ $1 = --identity ]]; then
fullnode_id_path=$2
args+=("$1" "$2")
shift 2
elif [[ $1 = --enable-rpc-exit ]]; then elif [[ $1 = --enable-rpc-exit ]]; then
extra_fullnode_args+=("$1") extra_fullnode_args+=("$1")
shift shift

View File

@ -9,6 +9,7 @@ source "$here"/common.sh
# shellcheck source=scripts/oom-score-adj.sh # shellcheck source=scripts/oom-score-adj.sh
source "$here"/../scripts/oom-score-adj.sh source "$here"/../scripts/oom-score-adj.sh
# shellcheck source=multinode-demo/extra-fullnode-args.sh # shellcheck source=multinode-demo/extra-fullnode-args.sh
source "$here"/extra-fullnode-args.sh source "$here"/extra-fullnode-args.sh
@ -41,8 +42,8 @@ else
program=$solana_fullnode program=$solana_fullnode
fi fi
fullnode_id_path=$SOLANA_CONFIG_DIR/fullnode-id$label.json : "${fullnode_id_path:=$SOLANA_CONFIG_DIR/fullnode-keypair$label.json}"
fullnode_vote_id_path=$SOLANA_CONFIG_DIR/fullnode-vote-id$label.json fullnode_vote_id_path=$SOLANA_CONFIG_DIR/fullnode-vote-keypair$label.json
ledger_config_dir=$SOLANA_CONFIG_DIR/fullnode-ledger$label ledger_config_dir=$SOLANA_CONFIG_DIR/fullnode-ledger$label
accounts_config_dir=$SOLANA_CONFIG_DIR/fullnode-accounts$label accounts_config_dir=$SOLANA_CONFIG_DIR/fullnode-accounts$label
@ -55,8 +56,8 @@ fullnode_vote_id=$($solana_keygen pubkey "$fullnode_vote_id_path")
cat <<EOF cat <<EOF
======================[ Fullnode configuration ]====================== ======================[ Fullnode configuration ]======================
node id: $fullnode_id node pubkey: $fullnode_id
vote id: $fullnode_vote_id vote pubkey: $fullnode_vote_id
ledger: $ledger_config_dir ledger: $ledger_config_dir
accounts: $accounts_config_dir accounts: $accounts_config_dir
====================================================================== ======================================================================