Skip to content
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
3 changes: 3 additions & 0 deletions src/pages/guide/node/operate-validator.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ curl -s localhost:8002/metrics | grep consensus_engine_dkg_manager_ceremony_fail

If `how_often_dealer` or `how_often_player` is increasing, your node is actively participating in DKG ceremonies. After your validator has been added to the network, you should alert on these metrics, as they indicate that your validator is actively participating in the network.

If your validator is not connected to other peers, but at least 3 epochs have passed, please check that your node is properly configured - e.g. firewall settings are open to other peers. If you have reset your validator's state,
your validator might've been blocked due to double-signing a block. In that case, please reach out to the Tempo team.

### Consensus

#### Proposer
Expand Down
18 changes: 10 additions & 8 deletions src/pages/guide/node/validator.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,19 @@ description: Configure and run a Tempo validator node. Generate signing keys, pa

# Running a validator node

Validator nodes are responsible for securing the network by validating blocks and the transactions within them. Tempo uses [Threshold Simplex](https://docs.rs/commonware-consensus/0.0.61/commonware_consensus/threshold_simplex/index.html) to achieve consensus between validators.
:::info
The management of the active validator set is currently permissioned by the Tempo team. If you are interested in becoming a validator, please [get in touch](mailto:partners@tempo.xyz) with the Tempo team.
:::

Validator nodes secure Tempo by validating blocks and transactions, then using [Threshold Simplex](https://docs.rs/commonware-consensus/0.0.61/commonware_consensus/threshold_simplex/index.html) to reach consensus. They distribute signing shares among themselves to collectively sign block approvals and finalizations.

## Cryptographic key hierarchy

All validators have two kinds of keys:
* signing key - this is an ED25519 keypair used to identify your validator amongst others
* signing share - this is a share of a BLS12-381 keypair used to sign block notarizations and finalizations

The signing key is static and can only be rotated by removing and re-creating a validator on-chain. The signing share is dynamic and is updated periodically on each DKG ceremony. Once updated, it will be saved to disk. Currently, the DKG ceremony is scheduled to run on-chain every ~48 hours.
The signing key is static and can only be rotated by removing and re-creating a validator on-chain. The signing share is dynamic and is updated periodically on each DKG ceremony. Once updated, it will be saved to disk. Currently, the DKG ceremony is scheduled to run on-chain every ~3 hours.

## Generating a signing key

Expand All @@ -32,16 +36,14 @@ The public key should match the output of the `generate-private-key` command.

## Running the validator

:::info
The management of the active validator set is currently permissioned by the Tempo team. If you are interested in becoming a validator, please [get in touch](mailto:partners@tempo.xyz) with the Tempo team.
:::

The process for running a validator node is very similar to [running a full node](/guide/node/rpc).

You should start by downloading the latest snapshot using `tempo download` and then running the validator node as such:
You should start by downloading the latest snapshot using `tempo download --chain <moderato|mainnet>`. Downloading the snapshot allows your validator to start participating in consensus much faster.
Once you've downloaded the snapshot and have been whitelisted on-chain, you can proceed to run the validator node as such:

```bash
tempo node --datadir <datadir> \
--chain <moderato|mainnet> \
--port 30303 \
--discovery.addr 0.0.0.0 \
--discovery.port 30303 \
Expand All @@ -51,7 +53,7 @@ tempo node --datadir <datadir> \

The notable difference between RPC nodes and validator nodes is the omission of the `--follow` argument and the addition of the `--consensus.signing-key` and `--consensus.fee-recipient` arguments. The fee recipient is the address that will receive transaction fees in your validators' proposed blocks.

Once your node is up, it may not start syncing immediately. This is because your node might not be part of the active set. In most cases, your validator will enter the active set in 48-72 hours after the on-chain addition of the validator identity.
Once your node is up, it may not start syncing immediately. This is because your node might not be part of the active set. In most cases, your validator will enter the active set in under 6 hours after the on-chain addition of the validator identity.

## Troubleshooting

Expand Down