Add Unused Sub-stake Removal Function to StakingEscrow.sol
v5.4.4 -> v5.5.1
It’s time for NuCypher’s first official DAO-driven upgrade! Everyone currently staking NU is eligible to participate in the inaugural validation process. In other words, YOU decide if this proposal passes and the changes are enacted!
The upgrade in question is very uncontroversial – it’s almost boring – and so we expect it to be collectively validated without any issues or delays. Still, the first ever democratic exercise in a fledgling republic is always a big deal. In fact, depending on a certain president’s willingness to concede, we could get a result here before the Free World knows its next leader!
This upgrade will reduce the daily costs of node operation, and more specifically, sub-stake management. Currently, configuring or editing your sub-stakes can lead to inactive, or ‘unused’ sub-stakes remaining in your sub-stake array. This can occur when:
- Two sub-stakes are merged
- A sub-stake reaches its unlock date
- Tokens are added to a sub-stake, increasing its size
- A sub-stake is slashed
These actions, while very useful, create temporary sub-stakes which may become inactive. The presence of inactive sub-stakes means a greater sum of gas spent on making a commitment each period. You can check for inactive sub-stakes you may have by running
nucypher stake list --all.
The proposed upgrade will enable stakers to run a simple command –
nucypher stake remove-unused – that removes these inactive, unused sub-stakes one by one. For stakers who proactively edit their sub-stakes, this feature will significantly reduce overheads over the long-term.
This proposal has already been fully implemented. You can inspect and verify the exact changes to be enacted by heading to Etherscan and scrolling down to lines 1052-1073 within the contract
StakingEscrow.sol (File 1 of 15). Note that the source code at address 0xF6d5137CfA2C5f23530a0FCe66056B12B985554d also includes necessary changes to dependencies of
Having a look at the the corresponding Pull Request may also be helpful! A reminder that although the PR has been merged into the NuCypher codebase, the network’s public contracts have not yet been upgraded. That requires the DAO’s approval – i.e. we need you to validate the proposal!
To validate the proposal, please head over to the Aragon interface and connect your staker address via Metamask. This name of this proposal (#0) is Agent: Execute 'Upgrade target of this proxy contract to address 0xF6d5…554d ’ on 0xbbD3…b2e2.
This is an auto-generated title – we’re fixing this so it’ll be easier to tell future proposals apart – but you can verify that the target contract matches the aforementioned contract on Etherscan (0xF6d5137CfA2C5f23530a0FCe66056B12B985554d).
The validation period has already begun and will conclude in just under 14 days, on November 6th 2020 at around 5:30pm UTC.
If validating gets you all excited and you need to expend some energy, it would be wonderful if you encouraged other stakers to participate! Also, feel free to comment below.