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

feature: Add VRF based committee elections #4248

Merged
merged 11 commits into from
Dec 8, 2021
Merged

Conversation

Yawning
Copy link
Contributor

@Yawning Yawning commented Sep 8, 2021

  • Bump the curve25519-voi import
  • Implement TupleHash
  • Make common/crypto/signature VRF aware
  • Generate/Load the VRF signing key as part of the node identity
  • Add the VRF signing key to the node descriptor
  • Validate the VRF signing key contained in the node descriptor if present
  • Add back deterministic epochs
  • Consensus support for VRF submissions
  • Nodes submit VRF proofs each epoch
  • Use VRF proofs to select from an eligible entity's validator nodes
  • Use VRF proofs + sortition to do elections
  • Unbreak the tests
  • Unfuck the byzantine node somehow
  • Rip out the old PVSS code
  • Rip out the old deterministic seed based election code.
  • Add the relevant fixgenesis stuff

Testing:

Documentation:

  • Update/edit the ADR to match reality.

Post upgrade steps for the next breaking upgrade:

@Yawning Yawning force-pushed the yawning/feature/vrf branch 3 times, most recently from 3e191e7 to 70f5628 Compare September 8, 2021 15:58
@codecov
Copy link

codecov bot commented Sep 8, 2021

Codecov Report

Merging #4248 (d510d42) into master (81fa2dd) will decrease coverage by 0.08%.
The diff coverage is 69.50%.

❗ Current head d510d42 differs from pull request most recent head 0a0873c. Consider uploading reports for the commit 0a0873c to get more accurate results
Impacted file tree graph

@@            Coverage Diff             @@
##           master    #4248      +/-   ##
==========================================
- Coverage   69.15%   69.07%   -0.09%     
==========================================
  Files         411      413       +2     
  Lines       47510    46910     -600     
==========================================
- Hits        32857    32401     -456     
+ Misses      10615    10551      -64     
+ Partials     4038     3958      -80     
Impacted Files Coverage Δ
go/beacon/api/grpc.go 20.57% <ø> (+2.29%) ⬆️
go/common/crypto/signature/signers/remote/grpc.go 31.29% <0.00%> (-6.32%) ⬇️
go/common/node/node.go 73.40% <ø> (ø)
go/consensus/tendermint/apps/beacon/beacon.go 73.77% <ø> (ø)
.../consensus/tendermint/apps/roothash/state/state.go 73.84% <ø> (+1.81%) ⬆️
go/staking/api/slashing.go 100.00% <ø> (+22.22%) ⬆️
...o/common/crypto/signature/signers/plugin/plugin.go 57.62% <14.28%> (-2.74%) ⬇️
go/beacon/api/api.go 50.00% <25.00%> (+7.89%) ⬆️
...n/crypto/signature/signers/memory/memory_signer.go 61.81% <33.33%> (-3.49%) ⬇️
go/consensus/tendermint/apps/roothash/roothash.go 73.87% <33.33%> (-0.62%) ⬇️
... and 90 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 81fa2dd...0a0873c. Read the comment docs.

@Yawning Yawning force-pushed the yawning/feature/vrf branch 4 times, most recently from b031537 to b438702 Compare September 9, 2021 14:15
@kostko kostko added the c:breaking/consensus Category: breaking consensus changes label Sep 10, 2021
@kostko kostko added this to Planned in Core Future via automation Sep 10, 2021
@kostko kostko moved this from Planned to In Progress in Core Future Sep 10, 2021
@Yawning Yawning force-pushed the yawning/feature/vrf branch 10 times, most recently from 9c12fc8 to e247452 Compare September 30, 2021 12:47
go/beacon/api/vrf.go Outdated Show resolved Hide resolved
@Yawning Yawning force-pushed the yawning/feature/vrf branch 6 times, most recently from 2f81860 to 26f386f Compare October 11, 2021 10:15
@Yawning Yawning force-pushed the yawning/feature/vrf branch 4 times, most recently from 3f448a1 to a6c56d8 Compare December 7, 2021 10:47
@Yawning Yawning force-pushed the yawning/feature/vrf branch 4 times, most recently from b94684f to d510d42 Compare December 7, 2021 13:00
Yawning and others added 7 commits December 7, 2021 13:25
Not being able to see test runner debug spew makes trying to diagnose CI
failures incredibly more annoying than it already is to begin with.
Exactly what it says on the tin.  Something is broken with bwrap on
Fedora, and this lets me get work done.
This test is rather odd, and it shouldn't work without this change,
but appears to pass.  Since timekeeping is going to be dramatically
altered again, appy the fixes.
@Yawning Yawning force-pushed the yawning/feature/vrf branch 2 times, most recently from f532560 to ac393bc Compare December 8, 2021 11:45
@Yawning Yawning mentioned this pull request Dec 8, 2021
@Yawning Yawning force-pushed the yawning/feature/vrf branch 2 times, most recently from 7236578 to 875684d Compare December 8, 2021 11:53
@Yawning Yawning merged commit 9b98fdc into master Dec 8, 2021
Core Future automation moved this from In Progress to Done Dec 8, 2021
@Yawning Yawning deleted the yawning/feature/vrf branch December 8, 2021 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c:breaking/consensus Category: breaking consensus changes
Projects
Development

Successfully merging this pull request may close these issues.

None yet

2 participants