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

NeoFS governance by mainnet Committee #2267

Closed
realloc opened this issue Jan 27, 2021 · 5 comments
Closed

NeoFS governance by mainnet Committee #2267

realloc opened this issue Jan 27, 2021 · 5 comments
Labels
Discussion Initial issue state - proposed but not yet accepted

Comments

@realloc
Copy link

realloc commented Jan 27, 2021

Summary or problem description

NeoFS has a number of nodes responsible for overall storage network management, the Inner Ring nodes. Anyone can register as Inner Ring node candidate and become one when the storage network load will require more Inner Ring nodes to run. It's an autonomous and fully automated process, nodes will vote between themselves to accept a new candidate or to promote/demote a candidate when needed, based on technical parameters, without human intervention.

First seven Inner Ring nodes, called Alphabet Inner Ring node, control NeoFS sidechain consensus and do actual voting. There has to be some mechanism to allow mainnet Committee to change the Alphabet inner Ring nodes list to prevent loss of synchronization in case of emergency, but without breaking the automated inner Ring self-regulation

.

Do you have any solution you want to propose?

We propose to let mainnet Committee set the desired priority list of Alphabet Inner Ring nodes using the Designation native contract. Inner Ring nodes will make sure the nodes listed there will be promoted to Alphabet nodes. If the list is not big enough to cover seven nodes, the regular candidate will be used.

The detailed process description can be found in NeoFS Techinical Specification. The section on governance is in the attached PDF: neofs-gov.pdf

Neo Version

  • Neo 3

Where in the software does this update applies to?

  • CLI
  • Ledger
@Tommo-L
Copy link
Contributor

Tommo-L commented Jan 29, 2021

Anyone can register as Inner Ring node candidate and become one when the storage network load will require more Inner Ring nodes to run

There has to be some mechanism to allow mainnet Committee to change the Alphabet inner Ring nodes list to prevent loss of synchronization in case of emergency, but without breaking the automated inner Ring self-regulation

If so, one node want to be a Inner Ring node, it has two ways: one is to register by itself, another is to be elected by committee, right?

@realloc
Copy link
Author

realloc commented Jan 29, 2021

If so, one node want to be a Inner Ring node, it has two ways: one is to register by itself, another is to be elected by committee, right?

In both cases, the one has to register the node in the Inner Ring candidate list. On entering the list it has to pass some basic sanity checks. Then it may be elected by committee, or promoted by other Inner Ring nodes.

@ioannistsil
Copy link

if inner ring candidate can be promoted by other Inner Ring nodes. then the election commitee is insignificant and this can hurt decentralization

@realloc
Copy link
Author

realloc commented Feb 2, 2021

if inner ring candidate can be promoted by other Inner Ring nodes. then the election commitee is insignificant and this can hurt decentralization

Committee candidates have the highest priority to become Alphabet Inner Ring nodes. It means that if the list provided by the committee is not big enough, or there are not enough nodes alive from that list, the rest of the list will be chosen from the regular IR candidates. In all other cases, the Alphabet Inner Ring nodes list will be formed from the list agreed by the Committee in the Designation contract.

This behavior doesn't hurt decentralization in any way, but allows the NeoFS network to self-heal and function without regular attention from the committee's side.

@roman-khimov
Copy link
Contributor

The role was added in #2377, NeoFS sidechain works fine, this one is done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Discussion Initial issue state - proposed but not yet accepted
Projects
None yet
Development

No branches or pull requests

4 participants