-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
Rename revoke/unrevoke to jail/unjail #1305
Comments
hmm okay let's think of a better name, however |
Here are some more ideas: Thoughts? CC: @cwgoes @jackzampolin |
Hmm, how about |
haha yeah I'm good with jailed - it's nice and intuitive. Also then we can turn the CLI into a monopoly game. |
+100 for CLI monopoly. Lets take this to |
i don't understand what you guys are talking about. could someone elaborate the use case for this soon-to-be-decided verb? |
Renaming an existing state ("revoked") to a new name: "jailed" - and updating the CLI/API to match. |
ah ok - we're talking about the validator states. but i still don't understand the use case. why do we ever have to say "unrevoke" or "unjail"? is that a tx type or something? once a validator is revoked or in jail - what are their options / what are the actions required / what will they do about it? and how does this affect their delegators? |
@jbibla you are correct - getting out of jail requires a transaction (currently
delegators will be begin unbonding with their validators once jailed. The delegators can wait for their validator to unjail and join the validator set again, OR a delegator could choose to instantaneously re-delegate to another validator. Note that currently (and probably for a while post launch), delegators can only redelegate once per unbonding period, so if the delegator delegated to a new validator which then ALSO gets slashed, they would lose out double and just have to wait for the new validator to come back online |
thanks @rigelrozanski that's very helpful. is being revoked fundamentally separate / different from being slashed? since this relates to uptime - i would suggest using |
is being revoked fundamentally separate / different from being slashed? interesting - well they are actually tightly coupled. If I'm not mistaken every instance of being slashed also comes with some jail time, although this is configurable and doesn't necessarily need to be this way. Fundamentally, being slashed is having bonded stake burned, while as being jailed is just being forced out of the bonded validator group (shifting your tokens to the unbonding state) independent of whether you have had any tokens burned simultaneously. - There may be a common subset concept here... not sure though (CC @cwgoes )
Being jailed applies much more broadly then when you have a liviness fault - if you double sign for instance, you also are jailed (and I think for a considerably longer period) - thus I think we should keep |
They're not necessarily tied - at the moment, for both currently instantiated slashing conditions (downtime & double-signing), we both burn tokens and jail the offender. We could elect to only burn tokens or only jail if desired. |
@cwgoes yeah I mean the concepts are clearly distinct but do they really need to be? Do you have any (/many) particular circumstances in mind where we would really want to only one or the other? If I'm not mistake the most cases (and the only case we're currently using) includes slashing and jailing simultaneously. - I think there may be a few edge cases which only includes one or the other, in which case, if we did decide to couple jailing and slashing into a single "thing" we could always include logic for those edge cases to still allow for jailing without slashing or vise versa. I'm starting to form the opinion that reducing the number of distinct concepts required at the highest level will be beneficial for dev comprehension. For instance we could just call this common object a Just a thought |
I want to +100 this. I think that a |
sorry for accidentally closing this issue 😄 |
I think we want to retain the flexibility of separate concepts in the state machine, as they have different effects on validator incentives and fee distribution, but if we want to summarize them as a "penalty" in the UX/docs level that seems fine. |
Let's do that |
Reopening pending implementation |
Thanks, a minor case of overenthusiastic Github automation I think. |
unrevoke
sounds extremely confusing, since you areunbonded
and notrevoked
. Alsounrevoke
needs documentation in the--help
.The text was updated successfully, but these errors were encountered: