oasisprotocol / oasisprotocol/oasis-core
Tool/mechanism for Entities to request escrow to be closed
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 369
- Forks
- 151
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 6
Description
Is your feature request related to a problem? Please describe.
When a compute node is to be decommissioned, it would be better to allow the Entity to ask for the escrow account to be closed, rather than a hack like moving the node's private key to a replacement machine (and there may not be a replacement). This might be a code path through the registry, since de-registration is also needed, but may require Stake to allow more than one address to close the account, perhaps marking it as closed until all in-jeopardy tokens have been released by consensus nodes.
This is not needed for when machines need temporary downtime, e.g., maintenance, reboot, etc, since that can be a de-registration/re-registration sequence with the registry, without closing the escrow account: the compute node is only going to be temporarily unavailable, and there is no sense in paying the gas costs to close the escrow account and then open another one.
Describe the solution you'd like
This might be just a method on the Registry contract that can be called from the Entity's user agent, e.g., metamask. We will probably need extra plumbing in the Stake contract, since immediate closing is not possible until in-jeopardy funds has been released by the Consensus contract (other feature to be implemented), in addition to allowing an additional address (Registry) to request account closure.
Describe alternatives you've considered
This could be a command-line tool or be part of the compute node's controller binary (command-line option). There will probably be command-line options to specify the amount of stake to escrow anyway, or to accept a pre-existing escrow account id to use. NB: it is unclear whether we want the Entity's user agent to have to be accessible from the controller binary (it certainly should not be persistent), so how the escrow account is initially to be established hasn't been figured out.
Additional context
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by mapping the Registry de-registration path and the Stake and Consensus contract interactions described in the issue. Clarify how an Entity user agent or controller CLI would request closure, how in-jeopardy funds affect timing, and which address may authorize it. Done means an agreed closure flow and defined behavior for temporary downtime and unreleased funds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- blockchain
- Domain
- blockchain
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100