Add information about stake initialization, and a flow diagram about how staking can be achieved on Threshold.

pull/2888/head
derekpierre 2022-03-29 13:23:14 -04:00 committed by Kieran Prasch
parent 03c1154cdd
commit 3a57876bca
3 changed files with 2029 additions and 15 deletions

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 278 KiB

View File

@ -1,17 +1,41 @@
.. _pre-overview:
.. _Threshold Dashboard: https://dashboard.threshold.network/staking
Application Overview
====================
All Threshold Network Stakers (legacy KEEP, legacy NU, liquid T) are able to participate
in the PRE application. Threshold Staking can be performed and managed via
the `Threshold dashboard <https://dashboard.threshold.network/overview/network>`_.
the `Threshold Dashboard`_.
.. note::
The current minimum stake for running a PRE node is (or equivalent to) 40,000 T but is tunable via governance.
.. _stake-initialization:
Stake Initialization
--------------------
To be eligible to run a PRE node, there must be a stake on Threshold. This stake can take the following forms:
* Legacy NU stake migrated to T from the `NuCypher Dashboard <https://stake.nucypher.network/manage>`_.
* Legacy KEEP stake migrated to T from the `Keep Dashboard <https://dashboard.keep.network/applications/threshold>`_.
* T stake using liquid T created on the `Threshold Dashboard`_.
Once the stake is created, a PRE node can be set up to run on the Threshold Network.
Here is a summary of the overall process:
.. image:: ../.static/img/staking_initialization_process.svg
:target: ../.static/img/staking_initialization_process.svg
Staking Roles
-------------
For more information about the roles associated with the Threshold Staking contract,
see `here <https://github.com/threshold-network/solidity-contracts/blob/main/docs/rfc-1-staking-contract.adoc>`_.
@ -22,18 +46,18 @@ The PRE Application operations are divided into two roles:
Staking Provider
----------------
++++++++++++++++
The Staking Provider is a party authorized to operate in the network on behalf of a
given stake owner - it can be the owner itself for self-hosting. The staking provider handles
the everyday operations on the delegated stake without actually owning the staked tokens. A
staking provider cannot transfer delegated staked tokens, but the staking providers misbehavior may
result in slashing tokens and thus the entire staked amount is indeed at stake. A Staking Provider
can be specified on the `Threshold Dashboard <https://dashboard.threshold.network/overview/network>`_.
can be specified on the `Threshold Dashboard`_
Operator
--------
++++++++
The Operator (aka "Ursula") is the node, and associated Ethereum address, that provides PRE application service.
@ -46,17 +70,8 @@ of a Staking Provider. Nodes must remain online to provide uninterrupted service
with the new Threshold Network ``Operator`` term.
Authorizing the PRE Application
-------------------------------
Before the Staking Provider is eligible to participate in the PRE application,
the Authorizer appointed during the stake delegation needs to approve the PRE Application
to use the stake. From the moment of approval, the application is authorized to slash or seize the stake.
Authorization can be performed on the `Threshold Dashboard <https://dashboard.threshold.network/overview/network>`_.
Staking Provider Strategies & Responsibilities
----------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++
In order to provide the PRE service and receive rewards, there are three options for running a PRE node:

View File

@ -20,7 +20,7 @@ Running a PRE Node
automation tools such as Ansible and Docker to simplify the setup and management
of nodes running in the cloud. See :ref:`managing-cloud-nodes`.
After finding a server that meets the :ref:`requirements <node-requirements>`, running a PRE node entails the following:
After :ref:`staking on Threshold <stake-initialization>`, and finding a server that meets the :ref:`requirements <node-requirements>`, running a PRE node entails the following:
#. :ref:`bond-operator`
#. :ref:`configure-and-run-node`