Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Protocol 7 changes #1060

Merged
merged 2 commits into from
Sep 27, 2024
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
24 changes: 17 additions & 7 deletions source/mainnet/net/concepts/concepts-baker.rst
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,23 @@ Time concepts

The Concordium blockchain divides time into :term:`epochs<epoch>`.

When considering the rewards and other validation-related concepts, the concept of an *epoch* is used as a unit of time that defines a period in which the set of current validators and stakes are fixed. Epochs have a duration of 1 hour and the duration is fixed at the :term:`Genesis block`. Each epoch has a nominal ending, and when a block is finalized after this nominal ending then epoch transition occurs.

Epochs are subdivided into :term:`rounds<round>`. In each round either a block is produced by the elected leader and validated by (2/3 of) the other validators, or a timeout is produced if the timeout time is reached before a block and its :term:`quorum certificate` are produced. In the case of a timeout, a :term:`timeout certificate` is produced for the block. The timeout time for the next round may shrink or grow depending on whether a block was finalized or a timeout occurred in the previous round. Using :term:`consensus protocol<Concordium Byzantine Fault Tolerance (BFT) protocol>`, a validator has to add the new block after the block from the previous round, unless a timeout occurred in the previous round, in which case they can add their block to an older round. The list of lottery winners that are :term:`elected to be the leader for every round in that epoch<Leader Election>` is established at the beginning of the epoch.

A :term:`pay day` is the point at which new CCDs are minted and rewards are distributed to validators and delegators. The stakes of validators and delegators are updated each pay day (but the changes for each pay day are fixed one epoch before). Pay day is thus when new validators begin producing blocks, and updates to delegation and validation take effect, such as increasing stake, restaking preferences, adding delegation. In the case of decreasing stake or removing delegation or validation, there is a longer cool-down period, after which the change is executed at the **next pay day after the cool-down period ends**. The cool-down period is 3 weeks. Pay day is every 24 hours (i.e., 24 epochs) at approximately 09:00 UTC on Mainnet and approximately 12:00 UTC on Testnet.

A :term:`cool-down period` describes a period of time during which certain activities or transactions are frozen. For example, if you decrease a valiator's stake, the stake will be decreased at the first pay day after the cool-down period ends. The cool-down period is 3 weeks. During the cool-down period, you’ll not be able update the stake. After the cool-down period, the amount by which you decreased your stake is returned to your disposable balance at the next :term:`pay day` and your stake is reduced to the amount you specified. (This also means that any rewards that are earned in this period, if restaking earnings is enabled, will also be unstaked after the cool-down period.)
When considering the rewards and other validation-related concepts, the concept of an *epoch* is used as a unit of time that defines a period in which the set of current validators and stakes are fixed.
Epochs have a duration of 1 hour and the duration is fixed at the :term:`Genesis block`. Each epoch has a nominal ending, and when a block is finalized after this nominal ending then epoch transition occurs.

Epochs are subdivided into :term:`rounds<round>`. In each round either a block is produced by the elected leader and validated by (2/3 of) the other validators,
or a timeout is produced if the timeout time is reached before a block and its :term:`quorum certificate` are produced.
In the case of a timeout, a :term:`timeout certificate` is produced for the block. The timeout time for the next round may shrink or grow depending on whether a block was finalized or a timeout occurred in the previous round.
Using :term:`consensus protocol<Concordium Byzantine Fault Tolerance (BFT) protocol>`, a validator has to add the new block after the block from the previous round,
unless a timeout occurred in the previous round, in which case they can add their block to an older round.
The list of lottery winners that are :term:`elected to be the leader for every round in that epoch<Leader Election>` is established at the beginning of the epoch.

A :term:`pay day` is the point at which new CCDs are minted and rewards are distributed to validators and delegators.
The stakes of validators and delegators are updated each pay day (but the changes for each pay day are fixed one epoch before).
Pay day is thus when new validators begin producing blocks, and updates to delegation and validation take effect.
Pay day is every 24 hours (i.e., 24 epochs) at approximately 09:00 UTC on Mainnet and approximately 12:00 UTC on Testnet.

In the case of decreasing stake or removing delegation or validation there is a :term:`cool-down period` of three weeks during which the unstaked funds are frozen.
For example, if you decrease a valiator's stake, the stake will be decreased at the first pay day but the funds will not be released to your disposable balance until after the cool-down period ends.

Validator keys
==============
Expand Down
5 changes: 3 additions & 2 deletions source/mainnet/net/concepts/concepts-delegation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,10 @@ The commission rates for passive delegation are fixed at 25% for both block comm
Time and cool-downs
===================

Changes to the pools take effect every 24 hours at :term:`pay day`. So opening a pool, increasing the stake, moving the stake between pools or between passive delegation and a stakiing pool all take effect at the :term:`pay day`. At pay day, rewards gathered over a 24 hour period are distributed at the same time. If, however, you make a change in delegation in the last :term:`epoch` before pay day, then the change has to wait until the second pay day.
Changes to the pools take effect every 24 hours at :term:`pay day`. So opening a pool, changing the stake, moving the stake between pools or between passive delegation and a stakiing pool all take effect at the :term:`pay day`.
At pay day, rewards gathered over a 24 hour period are distributed at the same time. If, however, you make a change in delegation in the last :term:`epoch` before pay day, then the change has to wait until the second pay day.

But decreasing the stake (whether for delegators or validators) is subject to a cool-down period. In other words, once the transaction has been included in a block the cool-down period starts. Unstaking takes effect at the pay day event after the cool-down has elapsed, and the party's stake will be unlocked. During the cool down, the stake is still invested in the pool and earns rewards as before.
When decreasing or removing the stake (whether for delegators or validators), the unstaked funds are not released until after a :term:`cool-down period`.

Where delegation is available
=============================
Expand Down
6 changes: 1 addition & 5 deletions source/mainnet/net/guides/remove-delegation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Remove delegation to a staking pool or passive delegation

You can remove the delegation on an account to stop delegating.

If you remove the delegation, there is a :term:`cool-down period` before the delegation is stopped. During this period, you continue to earn rewards; you cannot change the delegation amount, but you can change other delegation settings. The delegation stop is not effective until the next pay day after cool-down period ends. At that time the amount you had delegated is returned to your disposable balance.
If you remove the delegation, there is a :term:`cool-down period` before the amount you had delegated is returned to your disposable balance.

.. Note::

Expand Down Expand Up @@ -205,10 +205,6 @@ If you remove the delegation, there is a :term:`cool-down period` before the del
:width: 40%
:alt: screen showing the transaction submitted to the chain and finish button

.. Note::

Removing your stake in any pool results in a longer :term:`cool-down period`. The delegation amount will be locked during this period and cannot be increased or decreased; you can still change targets or restaking preferences during cool-down. The delegation stop is not effective until the next :term:`pay day` after cool-down period ends. During the cool-down period the staked amount continues earning rewards.

.. |earn| image:: ../images/earn.png
:alt: Hand receiving money
:width: 50px
Expand Down
6 changes: 2 additions & 4 deletions source/mainnet/net/guides/update-delegation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ Update delegation to a staking pool or passive delegation

You can change the delegation amount, target, and preferences on an account. You do not have to change all selections. For example, you might only want to change if rewards are restaked or not.

If you increase the delegation, the new amount will be applied at the start of the next :term:`pay day`. There is one pay day approximately every 24 hours. However, if you decrease the delegation, there is a :term:`cool-down period` before the new stake is applied. During this period, you cannot stop delegation or change the amount, but you can change other delegation settings. After the cool-down period, the amount you’ve decreased the delegation by is returned to your disposable balance at the next pay day after the end of the cool-down period.
If you change the delegation, the new amount will be applied at the start of the next :term:`pay day`. There is one pay day approximately every 24 hours.
Note that if you decrease or remove the delegation, there is a :term:`cool-down period` before the amount you’ve decreased the delegation by is returned to your disposable balance.

Before delegating stake to a staking pool, it is important to research the pool using :ref:`CCDScan<ccd-scan>`. You can only have one delegation per account.

Expand Down Expand Up @@ -254,9 +255,6 @@ Before delegating stake to a staking pool, it is important to research the pool

Once the transaction is finalized, the delegation update is effective from the next pay day for most transactions, except reducing your stake.

.. Note::

Reducing your stake in any pool results in a longer :term:`cool-down period`. The delegation amount will be locked during this period and no changes can be made to the amount. The reduction in stake is not effective until the first pay day after the cool-down period ends. During the cool-down period the staked amount continues earning rewards.

.. |earn| image:: ../images/earn.png
:alt: Hand receiving money
Expand Down
17 changes: 6 additions & 11 deletions source/mainnet/net/mobile-wallet/update-baker-mw.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,10 @@ Once you access the validator settings for your wallet, you have four options:
Update validator stake and restaking preference
===============================================

You can change the :ref:`staked amount <concepts-baker-stake>` on a validator account except during a :term:`cool-down period`. If you increase the stake, the new stake takes effect at the next :term:`pay day`. If the change is made in the last epoch before pay day, then the change will not occur until the following pay day. However, if you decrease the stake, there is a longer cool-down period of three weeks before the new stake is applied. During this period, you'll not be able to remove the validator account or further update the stake. After the cool-down period, the amount you’ve decreased the stake with is returned to your disposable balance at the next pay day.
You can change the :ref:`staked amount <concepts-baker-stake>` on a validator account. Changes will take effect at the next :term:`pay day`.
If the change is made in the last epoch before pay day, then the change will not occur until the following pay day.
However, if you decrease the stake, there is a cool-down period of three weeks.
After the cool-down period, the amount you’ve decreased the stake with is returned to your disposable balance at the next pay day.

When you change the stake it can influence your :term:`chance of being selected to produce a block<winning probability>` and receive block rewards. If you decrease the stake, you decrease your chances of producing blocks. Likewise, if you increase the stake, you increase your chances of producing a block.

Expand All @@ -68,10 +71,6 @@ When you change the stake it can influence your :term:`chance of being selected

Once the transaction is submitted you see a confirmation screen. Tap **Finish** to complete the action.

.. Note::

Reducing your stake results in a longer :term:`cool-down period`. The staked amount will be locked during this period and cannot be increased or decreased; you can still change restaking preferences during cool-down. The stake reduction is not effective until the next :term:`pay day` after cool-down period ends. During the cool-down period the staked amount continues earning rewards.

.. dropdown:: |bw|

#. Click |earn| on the navigation bar. Use the left and right arrow to locate the button if necessary. Use the Accounts drop-down at the top of the window to select the account.
Expand Down Expand Up @@ -135,8 +134,6 @@ When you change the stake it can influence your :term:`chance of being selected
:alt: screen to update validator stake and restake preference options
:width: 50%

.. Note::
If you reduce the staked amount, a :term:`cool-down<cool-down period>` period applies.

5. A message says **Waiting for device. Please connect your Ledger**. Connect the LEDGER device to the computer and enter your PIN on the LEDGER device.

Expand Down Expand Up @@ -671,7 +668,8 @@ If you believe your validator keys have been compromised or lost, you can genera
Stop validation
===============

If you remove a validator, the node that is configured with the :term:`validator keys<private keys>` will stop producing blocks after a :term:`cool-down period` of three weeks. During this period, you'll not be able update the stake. After the cool-down period, the amount that you previously staked is returned to your disposable balance at the next :term:`pay day`. When you've removed the validator, it is recommended that you also remove the keys from the node. If you want to use the node for validation at a later point in time, you'll then have to create a new set of validator keys.
If you remove a validator, the node that is configured with the :term:`validator keys<private keys>` will stop producing blocks after the next :term:`pay day`.
After the :term:`cool-down period`, the amount that you previously staked is returned to your disposable balance at the next pay day. When you've removed the validator, it is recommended that you also remove the keys from the node. If you want to use the node for validation at a later point in time, you'll then have to create a new set of validator keys.
TinaKT marked this conversation as resolved.
Show resolved Hide resolved

If you no longer wish to produce blocks on this account, you can stop validation.

Expand Down Expand Up @@ -819,9 +817,6 @@ If you no longer wish to produce blocks on this account, you can stop validation

#. Select **Finish** to leave the page.

.. Note::

When you stop as a validator, there is a longer :term:`cool-down period` before the transaction takes effect. During the cool-down period, your stake continues to earn rewards.

.. Note::

Expand Down
2 changes: 1 addition & 1 deletion source/mainnet/net/resources/glossary.rst
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ Also see the Concordium `Whitepaper <https://developer.concordium.software/gover

Cool-down period

A period of time during which a transaction is frozen. Examples of when cool-down periods apply include removing a validator and updating stake. The length of a cool-down period varies between transactions.
A period of time during which a transaction is frozen.
TinaKT marked this conversation as resolved.
Show resolved Hide resolved

Concordium Byzantine Fault Tolerance (BFT) protocol

Expand Down
14 changes: 6 additions & 8 deletions source/mainnet/net/snippets/delegation-faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ For delegators

.. dropdown:: Is there a “cool-down” period when delegating and how does it work?

Yes, for certain changes there is a :term:`cool-down<cool-down period>` period built into the pool system. The cool-down period is three weeks. During the cool-down period it is not possible to change the delegated amount or move the delegated amount to a different staking pool. The cool-down period is activated when you decrease the delegated amount or stop delegation entirely.
If you decrease or remove delegations, the funds are not released to your account until after a :term:`cool-down<cool-down period>` period.
The cool-down period is three weeks. The cool-down period is activated when you decrease the delegated amount or stop delegation entirely.

.. dropdown:: Why is there a cool-down when I decrease / stop my delegation?

Expand All @@ -53,11 +54,7 @@ For delegators

.. dropdown:: Can I change the delegated amount if I am in a cool-down period?

No, if you are in a :term:`cool-down<cool-down period>` period, you cannot change the delegated amount until the cool-down period ends. The cool-down period is three weeks.

.. dropdown:: I want to update my delegation amount, but the input is locked. Why is that?

The amount is locked because you are in a :term:`cool-down<cool-down period>` period and the delegation amount cannot be changed. The cool-down period is three weeks when decreasing your delegation amount or stopping delegation.
Yes, you can.

.. dropdown:: Where can I see a list of all the staking pools I can delegate to?

Expand Down Expand Up @@ -142,11 +139,12 @@ For validators

.. dropdown:: Is there a cool-down period for validators?

Yes, the :term:`cool-down<cool-down period>` period for validators is three weeks when reducing stake or stopping validation. The stake is locked during the cool-down period and cannot be changed. The stake continues to earn rewards until the end of the cool-down period. The cool-down period is there to provide stability to the blockchain.
If you decrease stake or remove validation, the funds are not released to your account until after a :term:`cool-down<cool-down period>` period.
The cool-down period is three weeks. The cool-down period is activated when you decrease the staked amount or stop validation entirely.

.. dropdown:: Can I change my restaking preference if I am in a cool-down period?

Yes, you can. Note that anything that is restaked during the :term:`cool-down<cool-down period>` period will be unstaked after the stake reduction takes effect.
Yes, you can.

.. dropdown:: How much does it cost to become a validator?

Expand Down
Loading