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

How to elect genesis proposer and validator set #44

Closed
zemyblue opened this issue Mar 25, 2020 · 1 comment
Closed

How to elect genesis proposer and validator set #44

zemyblue opened this issue Mar 25, 2020 · 1 comment
Assignees

Comments

@zemyblue
Copy link
Member

We need to check how to elect genesis propoer and validator set using VRF election.
Because it is difference with tendermint's way.

@zemyblue zemyblue self-assigned this Mar 25, 2020
@zemyblue
Copy link
Member Author

Tendermint receives a list of validators from the Applycation Layer, selects a proposer from among them, proposer propose block, and the validators vote to block. The first block is also treated as a list of validators delivered by the Application Layer.

In the application layer, validators can be added through genTx stored in the config in the first block, and then added through Create Validator. Tendermint can elect a proposer by passing the list of validators added at BeginBlock.

Then, in the consensus algorithm that selects only a part of the VRF, it is important to obtain the hash, the input value of the VRF. From the second block, not the first block, the previous block is not a problem because the hash can be obtained from the stored proof. In this case, when generating the first block, we can solve this issue as deliver the hash that anyone can know.

I suggest to use the result of hashing the genesis struct as the hash of the first block that anyone can know. Different chains will have different genesis struct, so. he same hash is less likely to be found, and the same genesis struct is used for the same chain.

seed_0 = hash(genesis struct) 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant