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
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