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: spec/Dynamic-Validator.md
+12-2Lines changed: 12 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -48,7 +48,7 @@ The block that has a different generation hour from the parent block's is the la
48
48
CodeChain elects a new validator set after all rewards of the block is given.
49
49
50
50
## Nomination
51
-
Any account that is not banned or not in **CUSTODY_PERIOD** can nominate itself.
51
+
Any account that is neither banned nor in **CUSTODY_PERIOD** can nominate itself.
52
52
The nomination expires after **NOMINATION_EXPIRATION**; the account that wants to remain a candidate must nominate itself before the previous nomination expires.
53
53
The deposit reverts to the account when it becomes an eligible account.
54
54
@@ -61,6 +61,8 @@ The stakeholders have the right to choose validators in proportion to their shar
61
61
This is called delegation, and the stakeholders who have delegated are called delegators.
62
62
The delegation is valid only when the delegatee is neither in the eligible nor banned state.
63
63
The delegated stakes are returned when the account becomes an eligible account or a banned account.
64
+
The delegator can revoke or redelegate delegations from a delegatee.
65
+
When redelegating, the same restrictions apply to the new delegatee.
64
66
65
67
## Election
66
68
The election is a process that elects validators of a term according to the following rule:
@@ -76,7 +78,7 @@ The election is a process that elects validators of a term according to the foll
76
78
77
79
This process guarantees these things:
78
80
79
-
* Candidates who are deposited less than **MIN_DEPOSIT** cannot be validators. This prevents the *nothing-at-stake* problem.
81
+
* Candidates who deposited less than **MIN_DEPOSIT** cannot be validators. This prevents the *nothing-at-stake* problem.
80
82
* There are at least **MIN_NUM_OF_VALIDATORS** validators only if the number of candidates is larger than **MIN_NUM_OF_VALIDATORS**.
81
83
* The candidates that are not in **MIN_NUM_OF_VALIDATORS** and not receiving delegation of more than **DELEGATION_THRESHOLD** will not be validators.
82
84
@@ -212,6 +214,14 @@ The revoke occurs immediately, but the validator cannot be ousted before its ter
212
214
213
215
The transaction fails when the delegator revokes more than it delegates.
214
216
217
+
218
+
### REDELEGATE
219
+
* previous_delegatee
220
+
* next_delegatee
221
+
* quantity
222
+
223
+
This is an atomic version of `REVOKE (previous_delegatee, quantity)` + `DELEGATE (next_delegatee, quantity)`. It works as if two transactions are applied in a sequence, but the effect is atomic. The restrictions of the transaction are the same with both `REVOKE` and `DELGATE`.
0 commit comments