Skip to content

Adopt standard blockchain genesis round implementation to simplify code #5481

@s8sato

Description

@s8sato

Change the genesis round to a standard blockchain implementation and simplify the code.

Current Design Proposed Design
Only the "genesis provider" that supplies the genesis block needs the config file All nodes require the config file
The genesis provider creates the genesis block from the config file, signs it, and provides it to the genesis broadcaster nodes No genesis provider
The genesis broadcaster nodes broadcast the genesis block All nodes generate the genesis block from the config file
Receiving nodes verify the genesis provider's signature No communication or signature verification during the genesis round (see note)
Each node validates and executes the genesis transactions Same as current design
Each node commits the genesis block without adding a signature Same as current design

Note

No signatures are needed to reach consensus on the genesis block.
If a node falsifies the genesis block hash and includes it in the next block header, that header hash will not match other nodes' and will be treated as a fork, effectively ejecting the node from the network.

Metadata

Metadata

Assignees

Labels

RefactorImprovement to overall code quality

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions