Skip to content

Commit

Permalink
Merge pull request #1022 from oasisprotocol/matevz/docs/stake-require…
Browse files Browse the repository at this point in the history
…ments

docs: Add Oasis CLI commands to stake requirements
  • Loading branch information
matevz authored Nov 20, 2024
2 parents 579d065 + 9f9a988 commit 8740906
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 59 deletions.
109 changes: 51 additions & 58 deletions docs/node/run-your-node/prerequisites/stake-requirements.md
Original file line number Diff line number Diff line change
@@ -1,82 +1,75 @@
# Stake Requirements

This page provides an overview of the stake requirements to become a validator
on the consensus layer, to run a ParaTime compute nodes and to run observer
nodes on the Oasis Network.

## Registering an Entity

To register an entity you are going to need at least:

| | Mainnet | Testnet |
| --------------------------- | -------- | -------- |
| Entity Registration | 100 ROSE | 100 TEST |
| Each Node Registration | 100 ROSE | 100 TEST |
:::tip

To check the balance of your account, use one of the blockchain explorers like
the [Oasis Scan] or the [`oasis account show`] command part of the Oasis CLI.

## Validator Node
:::

To become a validator on the consensus layer, you will need to have enough ROSE
for **registering your entity**, **registering your validator node**, and be among
the top entities by stake to be included in the **validator set**.
| | Mainnet | Testnet |
|---------------------------------------------------------|----------------------------------------------------------:|---------------------------:|
| Registration of entity[^entity-reg] | 100 ROSE | 100 TEST |
| Registration of node | 100 ROSE | 100 TEST |
| Size of the validator set[^validator-set] | 120[^validator-set-mainnet] | 110[^validator-set-testnet] |
| Run Sapphire or Emerald compute node[^compute-node] | 5,000,000 ROSE<br/>+ member of the validator set[^member] | / |
| Run Cipher compute node[^compute-node] | member of the validator set[^member] | / |
| Create ROFL app on Sapphire or Cipher[^rofl-app-create] | 10,000 ROSE[^rofl-app-create-amount] | 10,000 TEST[^rofl-app-create-amount] |
| Create a ParaTime | 50,000 ROSE | 10,000 TEST |

You can check the current top validators on the blockchain explorers like the [Oasis Scan].
[^entity-reg]: You can fetch the latest entity registration stake requirements
by running [`oasis network show native-token`].

For the Testnet, you can receive a limited number of TEST tokens by using our [Oasis Network Testnet Faucet][faucet-testnet].
For more tokens please contact us on our official [Discord in the #testnet channel][discord].
[^validator-set]: The size of the consensus committee (i.e. the validator set)
is configured by the [**max_validators** committee-scheduler parameter]. You can
view the current value by running [`oasis network show parameters`].

:::tip
[^validator-set-mainnet]: To determine if you are eligible to receive a
delegation from the Oasis Protocol Foundation, see the [Delegation Policy]
document.

You can use the Oasis CLI to check your account and the network parameters. Use
the [`oasis account show`] command to check your entity's account and
[`oasis network show native-token`] to see the current values used by the network.
[^validator-set-testnet]: For the Testnet, you can receive a limited number of
TEST tokens by using our [Oasis Network Testnet Faucet][faucet-testnet]. For
more tokens please contact us on our official [Discord in the #testnet channel][discord].

:::
[^member]: You can check the current top validators on the blockchain explorers
like the [Oasis Scan] or by running [`oasis network show validators`].

[^compute-node]: You can fetch the latest ParaTime-specific stake requirements
by running [`oasis network show`] and specifying the ParaTime ID ([Mainnet], [Testnet]).

:::info
[^rofl-app-create]: You can fetch current ParaTime application-specific stake
requirements by running [`oasis paratime show parameters`].

To determine if you are eligible to receive a delegation from the Oasis Protocol
Foundation, see the [Delegation Policy] document.
[^rofl-app-create-amount]: The amount must be staked inside the ParaTime.

:::
## Stake requirements by a specific role of the node

:::info
The table below shows required stake-related steps you need to make, if you
want to set up a working node from scratch.

The size of the consensus committee (i.e. the validator set) is configured by
the [**max_validators** consensus parameter][**max_validators** consensus parameter].
| Node role | Requirement |
|------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Validator node] | 1. Registration of entity<br/>2. Registration of the validator node<br/>3. Member of the validator set |
| [Non-validator node] | / |
| [ParaTime node] | 1. Registration of entity<br/>2. Registration of the compute node<br/>3. Extra ParaTime-specific compute node stake<br/>4. Member of the validator set (Mainnet only) |
| [ParaTime client node] | 1. Registration of entity<br/>2. Registration of the observer node |

:::
[Validator node]: ../validator-node.mdx
[Non-validator node]: ../non-validator-node.mdx
[ParaTime node]: ../paratime-node.mdx
[ParaTime client node]: ../paratime-client-node.mdx

[Oasis Scan]: https://www.oasisscan.com/validators
[`oasis account show`]: ../../../general/manage-tokens/cli/account.md#show
[`oasis network show native-token`]: ../../../general/manage-tokens/cli/network.md#show-native-token
[`oasis network show validators`]: ../../../general/manage-tokens/cli/network.md#show-validators
[`oasis network show parameters`]: ../../../general/manage-tokens/cli/network.md#show-parameters
[Delegation Policy]: ../../../get-involved/delegation-policy.md
[**max_validators** consensus parameter]: ../../genesis-doc.md#consensus
[**max_validators** committee-scheduler parameter]: ../../genesis-doc.md#committee-scheduler
[faucet-testnet]: https://faucet.testnet.oasis.io/
[discord]: https://oasis.io/discord

## ParaTime Compute Node

To run a ParaTime compute node you will need to have a minimum stake which
currently is:

| | Mainnet | Testnet |
| -------- | -------------- | -------- |
| Sapphire | 5,000,100 ROSE | 100 TEST |
| Emerald | 5,000,100 ROSE | 100 TEST |
| Cipher | 100 ROSE | 100 TEST |

To run a ParaTime compute node, on Mainnet you will also have to be in the
validator set:

| | Mainnet - Validator Set | Testnet - Validator Set |
| -------- | ----------------------- | ----------------------- |
| Sapphire | Yes | No |
| Emerald | Yes | No |
| Cipher | Yes | No |

## ParaTime Observer Node

To run a ParaTime observer nodes, you will need to register an entity and add
your observer nodes to the entity descriptor.
[`oasis network show`]: ../../../general/manage-tokens/cli/network.md#show-id
[Mainnet]: ../../mainnet/README.md#paratimes
[Testnet]: ../../testnet/README.md#paratimes
[`oasis paratime show parameters`]: ../../../general/manage-tokens/cli/paratime.md#show-parameters
2 changes: 1 addition & 1 deletion external/cli
Submodule cli updated 45 files
+2 −2 .github/workflows/ci-lint.yml
+15 −5 cmd/account/account.go
+31 −11 cmd/account/transfer.go
+14 −2 cmd/account/withdraw.go
+63 −0 cmd/common/json.go
+1 −1 cmd/common/selector.go
+133 −134 cmd/common/transaction.go
+27 −7 cmd/network/add.go
+22 −4 cmd/network/set_chain_context.go
+3 −27 cmd/network/show.go
+28 −1 cmd/network/status.go
+270 −183 cmd/paratime/show.go
+1 −1 cmd/rofl/build.go
+24 −0 docs/account.md
+52 −23 docs/network.md
+18 −2 docs/paratime.md
+1 −1 examples/account/allow-paratime.y.out
+1 −1 examples/account/allow.y.out
+1 −1 examples/account/amend-commission-schedule.y.out
+1 −1 examples/account/burn.y.out
+1 −1 examples/account/delegate.y.out
+1 −1 examples/account/entity-deregister.y.out
+1 −1 examples/account/entity-register.y.out
+1 −1 examples/account/node-unfreeze.y.out
+1 −1 examples/account/transfer-named-no-paratime.y.out
+1 −0 examples/account/transfer-subtract-fee.y.in
+17 −0 examples/account/transfer-subtract-fee.y.out
+1 −1 examples/account/undelegate.y.out
+0 −0 examples/network/05-set-chain-context-ctx.in
+0 −0 examples/network/05-set-chain-context-ctx.out
+1 −0 examples/network/add-tcpip-ctx.in.static
+3 −0 examples/network/add-tcpip-ctx.out.static
+1 −1 examples/network/add-tcpip.in.static
+1 −0 examples/network/add-unix-ctx.in.static
+0 −0 examples/network/add-unix-ctx.out.static
+0 −1 examples/network/add-unix.in.static
+1 −0 examples/network/set-chain-context.in.static
+0 −0 examples/network/set-chain-context.out.static
+119 −0 examples/paratime-show/config/cli.toml
+1 −0 examples/paratime-show/show-parameters.in
+8 −0 examples/paratime-show/show-parameters.out
+1 −1 examples/transaction/sign.y.out
+7 −7 go.mod
+14 −14 go.sum
+1 −1 metadata/oasisscan.go

0 comments on commit 8740906

Please sign in to comment.