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

Proposal: stake top-up and partial unstake #19

Open
fed-franz opened this issue Dec 2, 2024 · 1 comment
Open

Proposal: stake top-up and partial unstake #19

fed-franz opened this issue Dec 2, 2024 · 1 comment

Comments

@fed-franz
Copy link
Collaborator

fed-franz commented Dec 2, 2024

Summary

Currently, stakes' amount is fixed to what set in the original stake operation. This amount is immutable (except when subject to hard slashing): to increase or reduce their stake, Provisioners have to first unstake, and stake the new amount.
This entails paying the cost of the unstake and stake transactions, and a waiting period between 1 and 2 epochs for the new stake to become eligible.

This DIP proposes to enable Provisioners to change their amount without needing to unstake and restake.

Detailed Description

This DIP modifies the Stake contract to allow stake operations on top of existing stakes (top-up), and unstake operations that withdraw less than the total Stake amount (partial unstake).

Partial unstakes should not allow a stake to go below the minimum amount. Such transactions should hence fail.

Considerations

An important aspect to consider when changing the staking system if the predictability of the Provisioners Set, which allows filtering out future-round messages.
However, this DIP would not affect this feature, since both topup and partial unstake would keep the Provisioner in the set.
(Note that, currently, unstake operations already take effect immediately).

@fed-franz
Copy link
Collaborator Author

Status: Merged
PR: dusk-network/rusk#3027

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant