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

Use genesis role designations for autodeploy #2643

Closed
roman-khimov opened this issue Nov 13, 2023 · 1 comment
Closed

Use genesis role designations for autodeploy #2643

roman-khimov opened this issue Nov 13, 2023 · 1 comment
Assignees
Labels
config Configuration format update or breaking change enhancement Improving existing functionality
Milestone

Comments

@roman-khimov
Copy link
Member

NeoGo can designate roles in block 0 from 0.103.0: https://github.com/nspcc-dev/neo-go/blob/master/docs/node-configuration.md#Genesis-Configuration

Which means we can have notary (and alphabet role) enabled for IR nodes right from the beginning. That's the way we should set up our new networks, old ones don't care much, but new ones can rely on this and drop another very annoying step from the autodeploy with signature exchange via NNS.

I don't think we need old role setup code at all, while theoretically we can set up a network without it and try running a node in this setting, practically it won't happen, we will create new networks with internal CNs using this new configuration. But this needs to be controlled for internal CN config, because CN itself can be used both on old and new networks. A simple "set_roles_in_genesis" config can be used in this case (expanding to appropriate keys automatically, they're the same as validators).

@roman-khimov roman-khimov added this to the v0.39.0 milestone Nov 13, 2023
@roman-khimov roman-khimov added enhancement Improving existing functionality config Configuration format update or breaking change labels Nov 13, 2023
cthulhu-rider added a commit that referenced this issue Nov 17, 2023
The roles are required to be set for the validators in almost all NeoFS
environments. Previously, this required dedicated transaction signed by
the committee majority. Starting from release v0.103.0, Neo Go support
protocol extension that allows to designate various roles to the various
accounts on blockchain genesis (zero height). With this feature, Inner
Ring running in local consensus may  be at the configuration level.

Add `set_roles_in_genesis` value to `morph.consensus` section providing
option to Inner Ring to start blockchain with P2PNotary and
NeoFSAlphabet roles designated to the genesis block's validators.

Closes #2643.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit that referenced this issue Nov 17, 2023
The roles are required to be set for the validators in almost all NeoFS
environments. Previously, this required dedicated transaction signed by
the committee majority. Starting from release v0.103.0, Neo Go support
protocol extension that allows to designate various roles to the various
accounts on blockchain genesis (zero height). With this feature, Inner
Ring running in local consensus may  be at the configuration level.

Add `set_roles_in_genesis` value to `morph.consensus` section providing
option to Inner Ring to start blockchain with P2PNotary and
NeoFSAlphabet roles designated to the genesis block's validators.

Closes #2643.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
@cthulhu-rider
Copy link
Contributor

cthulhu-rider commented Nov 26, 2023

@cthulhu-rider cthulhu-rider added the blocked Can't be done because of something label Nov 26, 2023
@roman-khimov roman-khimov removed the blocked Can't be done because of something label Nov 28, 2023
cthulhu-rider added a commit that referenced this issue Dec 2, 2023
The roles are required to be set for the validators in almost all NeoFS
environments. Previously, this required dedicated transaction signed by
the committee majority. Starting from release v0.103.0, Neo Go support
protocol extension that allows to designate various roles to the various
accounts on blockchain genesis (zero height). With this feature, Inner
Ring running in local consensus may  be at the configuration level.

Add `set_roles_in_genesis` value to `morph.consensus` section providing
option to Inner Ring to start blockchain with P2PNotary and
NeoFSAlphabet roles designated to the genesis block's validators.

Closes #2643.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit that referenced this issue Dec 2, 2023
The roles are required to be set for the validators in almost all NeoFS
environments. Previously, this required dedicated transaction signed by
the committee majority. Starting from release v0.103.0, Neo Go support
protocol extension that allows to designate various roles to the various
accounts on blockchain genesis (zero height). With this feature, Inner
Ring running in local consensus may  be at the configuration level.

Add `set_roles_in_genesis` value to `morph.consensus` section providing
option to Inner Ring to start blockchain with P2PNotary and
NeoFSAlphabet roles designated to the genesis block's validators.

Closes #2643.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit that referenced this issue Dec 4, 2023
The roles are required to be set for the validators in almost all NeoFS
environments. Previously, this required dedicated transaction signed by
the committee majority. Starting from release v0.103.0, Neo Go support
protocol extension that allows to designate various roles to the various
accounts on blockchain genesis (zero height). With this feature, Inner
Ring running in local consensus may  be at the configuration level.

Add `set_roles_in_genesis` value to `morph.consensus` section providing
option to Inner Ring to start blockchain with P2PNotary and
NeoFSAlphabet roles designated to the genesis block's validators.

Closes #2643.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit that referenced this issue Dec 4, 2023
The roles are required to be set for the validators in almost all NeoFS
environments. Previously, this required dedicated transaction signed by
the committee majority. Starting from release v0.103.0, Neo Go support
protocol extension that allows to designate various roles to the various
accounts on blockchain genesis (zero height). With this feature, Inner
Ring running in local consensus may  be at the configuration level.

Add `set_roles_in_genesis` value to `morph.consensus` section providing
option to Inner Ring to start blockchain with P2PNotary and
NeoFSAlphabet roles designated to the genesis block's validators.

Closes #2643.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
cthulhu-rider added a commit that referenced this issue Dec 6, 2023
The roles are required to be set for the validators in almost all NeoFS
environments. Previously, this required dedicated transaction signed by
the committee majority. Starting from release v0.103.0, Neo Go support
protocol extension that allows to designate various roles to the various
accounts on blockchain genesis (zero height). With this feature, Inner
Ring running in local consensus may  be at the configuration level.

Add `set_roles_in_genesis` value to `morph.consensus` section providing
option to Inner Ring to start blockchain with P2PNotary and
NeoFSAlphabet roles designated to the genesis block's validators.

Closes #2643.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
config Configuration format update or breaking change enhancement Improving existing functionality
Projects
None yet
Development

No branches or pull requests

2 participants