-
Notifications
You must be signed in to change notification settings - Fork 6
Undelegatebw resets the undelegation timer each time it has been reset #38
Comments
I propose the following new unstaking methods as an option. In order to prevent the increase of ram resources, unstaking is performed only to reflect the behavior at the time of final undelegation. This means that from the time of final unstaking, all unstaking is carried out over 72 hours. I would like to make this the default method, and I would like to propose a different unstaking method through options. The unstaking method through the option is as follows. However, the part about resource consumption is not a big problem because only the owner with the right to request additional unstaking. If onwer don't want to, onwer don't need to request it, and onwer don't need to unstak it with the traditional default method, because ram resources are not consumed. |
I would rather avoid the cognitive complexity of multiple alternative methods of unstaking. But I do agree that it is a frustrating problem to have the timer reset on each In my opinion, ideally there would be one method that gives you a guarantee of accessing your unstaked funds with a reasonable bound on both the time it takes from unstaking to liquid access and on the RAM usage required regardless of the frequency or pattern of So here is my alternative proposal and I'd like to hear what you think about it. The high-level summary points of the implications of this alternative proposal are:
If you are interested in the details of how it might be implemented continue reading. Rough design of the alternative unstaking mechanismA table record for each staked account would need to reserve 104 bytes to hold
A default constructed Any time an event occurs that either needs to modify the Processing the withdrawal queue consists of pulling out as many non-empty Adding a new unstaked event to the queue (which would be done on a
When sourcing new funds for staking (which would be done on a It is also possible (without breaking the intentions behind the delays to avoid double spending bandwidth resources) to track the amounts being withdrawn at a per-delegation level so that delegating funds back to an account could more efficiently come from the withdrawal queue before resorting to Also note that if it was not desirable to maintain the current behavior of sourcing the funds (while keeping network and CPU assets separate) for a |
@Fletch153 we are looking for some feedback on this issue before we implement it |
@gleehookie It would be useful to keep it how it is right now, but have the option to keep track of each additional undelegation and it's time. This would allow me to both undelegate as normal minimising ram costs, or pay for multiple undelegations at the cost of more ram |
Moving to the new eosio.system repo. This issue needs to be addressed as part of the deprecation of deferred transactions. |
If the undelegatebw action is called when funds are currently unstaking, then the unstaking period for both the new action and the original action are set to 72 hours.
Expected behaviour would be that the first action's unstaking period should not be reset by re-calling undelegatebw.
Whilst keeping track of each undelegate-period would use up more resources, it would be useful for dApps and users who need to undelegate on a regular basis.
A solution can be implemented where those who want to keep track of the undelegation-period can choose to spend extra resources doing this.
The text was updated successfully, but these errors were encountered: