You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: components/Starknet/modules/architecture-and-concepts/pages/staking.adoc
+3-11Lines changed: 3 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,11 +19,11 @@ If you are only interested in learning how to stake on Starknet, feel free to sk
19
19
20
20
== Roadmap
21
21
22
-
Naturally, handing over the responsibility for maintaining and securing Starknet to validators in one day is neither feasible nor desirable. Instead, the staking protocol is implemented in incremental phases, with each phase bringing additional requirements from validators until they fully maintain and secure the network. The protocol is currently in the first (on Mainnet) and second (on Sepolia) of four phases, illustrated in following figure:
22
+
Naturally, handing over the responsibility for maintaining and securing Starknet to validators in one day is neither feasible nor desirable. Instead, the staking protocol is implemented in incremental phases, with each phase bringing additional requirements from validators until they fully maintain and secure the network. The protocol is currently in the second of four phases, illustrated in following figure:
23
23
24
24
[IMPORTANT]
25
25
====
26
-
The staking protocol is currently in its first phase on Mainnet and in its second phase on Sepolia.
26
+
The staking protocol is currently in its second phase on both Sepolia and Mainnet.
27
27
====
28
28
29
29
image::staking-roadmap.png[]
@@ -98,11 +98,6 @@ The protocol uses a hierarchical approach between the staking and rewards addres
98
98
99
99
Starting from its second phase, the staking protocol introduces the notion of _epochs_ (similarly to many other protocols). Epochs represent checkpoints where validators' stakes are set, such that changes made in epoch stem:[i] are applied in epoch stem:[i+k], where stem:[k] is a new latency parameter. For example, the following figure illustrates a scenario where in epoch stem:[i] validator stem:[A] has 50K STRK staked and someone delegates an additional 10K STRK to them, and in epoch stem:[i+1] someone undelegates 30K STRK from stem:[A]:
100
100
101
-
// [NOTE]
102
-
// ====
103
-
// As long as validators are not yet producing blocks, stem:[k] may be equal to 1. When validators also produce blocks, stem:[k] will have to be greater than 1, as the producer of the first block of epoch stem:[j] will have to be known before the last block of epoch stem:[j-1].
104
-
// ====
105
-
106
101
image::epochs-example.png[]
107
102
108
103
=== Responsibilities
@@ -158,8 +153,6 @@ In the second phase of the protocol, each Validator is required to perform only
158
153
159
154
The `attest` transaction includes the block hash of the attested block, ensuring validators actively use full nodes, as they need to continuously track block hashes. Additionally, the attestation is publicly verifiable, ensuring validators' reliability is publicly tested — a crucial prerequisite before handing them any core responsibilities.
160
155
161
-
// Note that each validator is required to perform only one attestation per epoch, and therefore the work is identical for all validators. This is done in the interest of simplifying the implementation of the protocol's second phase, saving time and effort for the later phases. In any case, the main cost and effort is running a full node, which is obligatory for all validators.
162
-
163
156
=== Rewards
164
157
165
158
Rewards are distributed based on the amount staked and the commission policy constant stem:[CP] set by the validator, with yearly reward percentages calculated using the following formulas:
@@ -280,8 +273,7 @@ a| * `amount` should be denominated in FRI (i.e., 1*10^18^ = 1 STRK)
280
273
| Updating commission
281
274
| Invoke the staking contract's https://github.com/starkware-libs/starknet-staking/blob/main/docs/spec.md#update_commission[`update_commission`^] function
282
275
a| * `commission` should be entered as a percentage with precision, where 10000 represents 100% (e.g., to set a 5% commission, you enter 500)
283
-
* In the first phase of the staking protocol (currently on Mainnet), commissions can only be decreased
284
-
* In the second phase of the staking protocol (currently on Sepolia), commissions can be increased only after xref:commissions[committing to a maximum commission] using https://github.com/starkware-libs/starknet-staking/blob/main/docs/spec.md#set_commission_commitment[`set_commission_commitment`^]
276
+
* Commissions can be increased only after xref:commissions[committing to a maximum commission] using https://github.com/starkware-libs/starknet-staking/blob/main/docs/spec.md#set_commission_commitment[`set_commission_commitment`^]
285
277
286
278
| Changing reward address
287
279
| Invoke the staking contract's https://github.com/starkware-libs/starknet-staking/blob/main/docs/spec.md#change_reward_address[`change_reward_address`^] function
0 commit comments