oasisprotocol / oasisprotocol/oasis-core

Tool/mechanism for Entities to request escrow to be closed

Open
#527 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

c:apps c:roothash p:2
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.