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

rename random to prevRandao as per the kiln v2 specs #3787

Merged
merged 8 commits into from
Feb 28, 2022

Conversation

g11tech
Copy link
Contributor

@g11tech g11tech commented Feb 25, 2022

Motivation
Kiln v2 specs rename random to revRandao as per this consensus-specs PR: https://github.com/ethereum/consensus-specs/pull/2835/files

This PR implements the same in lodestar. Part of Kiln tracker
Description
Pending tasks (external dependency)

  • update the interop targets of ELs for CI
    • nethermind
    • geth

@codecov
Copy link

codecov bot commented Feb 25, 2022

Codecov Report

Merging #3787 (8efb01c) into master (53bf6c4) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3787   +/-   ##
=======================================
  Coverage   36.83%   36.83%           
=======================================
  Files         324      324           
  Lines        8865     8865           
  Branches     1384     1384           
=======================================
  Hits         3265     3265           
  Misses       5457     5457           
  Partials      143      143           

@github-actions
Copy link
Contributor

github-actions bot commented Feb 25, 2022

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: d7272f6 Previous: 53bf6c4 Ratio
BeaconState.hashTreeRoot - No change 550.00 ns/op 670.00 ns/op 0.82
BeaconState.hashTreeRoot - 1 full validator 79.684 us/op 103.74 us/op 0.77
BeaconState.hashTreeRoot - 32 full validator 1.1786 ms/op 1.4990 ms/op 0.79
BeaconState.hashTreeRoot - 512 full validator 14.715 ms/op 19.372 ms/op 0.76
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 77.463 us/op 101.98 us/op 0.76
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.3301 ms/op 1.9334 ms/op 0.69
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 17.462 ms/op 21.965 ms/op 0.80
BeaconState.hashTreeRoot - 1 balances 59.222 us/op 71.207 us/op 0.83
BeaconState.hashTreeRoot - 32 balances 493.82 us/op 622.99 us/op 0.79
BeaconState.hashTreeRoot - 512 balances 5.0346 ms/op 6.0673 ms/op 0.83
BeaconState.hashTreeRoot - 250000 balances 103.69 ms/op 109.64 ms/op 0.95
processSlot - 1 slots 42.826 us/op 59.091 us/op 0.72
processSlot - 32 slots 2.1433 ms/op 2.8008 ms/op 0.77
getCommitteeAssignments - req 1 vs - 250000 vc 5.3233 ms/op 5.5691 ms/op 0.96
getCommitteeAssignments - req 100 vs - 250000 vc 7.4051 ms/op 7.8603 ms/op 0.94
getCommitteeAssignments - req 1000 vs - 250000 vc 8.0141 ms/op 8.5876 ms/op 0.93
computeProposers - vc 250000 22.008 ms/op 26.784 ms/op 0.82
computeEpochShuffling - vc 250000 191.98 ms/op 204.20 ms/op 0.94
getNextSyncCommittee - vc 250000 358.02 ms/op 429.47 ms/op 0.83
altair processAttestation - 250000 vs - 7PWei normalcase 30.065 ms/op 40.503 ms/op 0.74
altair processAttestation - 250000 vs - 7PWei worstcase 35.618 ms/op 41.184 ms/op 0.86
altair processAttestation - setStatus - 1/6 committees join 12.402 ms/op 14.870 ms/op 0.83
altair processAttestation - setStatus - 1/3 committees join 25.084 ms/op 28.943 ms/op 0.87
altair processAttestation - setStatus - 1/2 committees join 38.919 ms/op 45.843 ms/op 0.85
altair processAttestation - setStatus - 2/3 committees join 52.184 ms/op 60.204 ms/op 0.87
altair processAttestation - setStatus - 4/5 committees join 61.506 ms/op 71.340 ms/op 0.86
altair processAttestation - setStatus - 100% committees join 81.701 ms/op 90.111 ms/op 0.91
altair processAttestation - updateEpochParticipants - 1/6 committees join 12.487 ms/op 15.445 ms/op 0.81
altair processAttestation - updateEpochParticipants - 1/3 committees join 28.538 ms/op 30.454 ms/op 0.94
altair processAttestation - updateEpochParticipants - 1/2 committees join 21.883 ms/op 25.675 ms/op 0.85
altair processAttestation - updateEpochParticipants - 2/3 committees join 24.675 ms/op 23.825 ms/op 1.04
altair processAttestation - updateEpochParticipants - 4/5 committees join 23.270 ms/op 25.227 ms/op 0.92
altair processAttestation - updateEpochParticipants - 100% committees join 25.341 ms/op 25.567 ms/op 0.99
altair processAttestation - updateAllStatus 19.481 ms/op 19.805 ms/op 0.98
altair processBlock - 250000 vs - 7PWei normalcase 34.985 ms/op 36.104 ms/op 0.97
altair processBlock - 250000 vs - 7PWei worstcase 109.68 ms/op 122.08 ms/op 0.90
altair processEpoch - mainnet_e81889 809.64 ms/op 894.67 ms/op 0.90
mainnet_e81889 - altair beforeProcessEpoch 335.24 ms/op 313.14 ms/op 1.07
mainnet_e81889 - altair processJustificationAndFinalization 52.159 us/op 81.876 us/op 0.64
mainnet_e81889 - altair processInactivityUpdates 18.506 ms/op 20.259 ms/op 0.91
mainnet_e81889 - altair processRewardsAndPenalties 97.514 ms/op 109.26 ms/op 0.89
mainnet_e81889 - altair processRegistryUpdates 6.3670 us/op 10.254 us/op 0.62
mainnet_e81889 - altair processSlashings 1.2710 us/op 2.4380 us/op 0.52
mainnet_e81889 - altair processEth1DataReset 1.1020 us/op 2.5140 us/op 0.44
mainnet_e81889 - altair processEffectiveBalanceUpdates 6.2911 ms/op 7.0414 ms/op 0.89
mainnet_e81889 - altair processSlashingsReset 10.228 us/op 18.246 us/op 0.56
mainnet_e81889 - altair processRandaoMixesReset 13.858 us/op 19.900 us/op 0.70
mainnet_e81889 - altair processHistoricalRootsUpdate 1.9570 us/op 3.0720 us/op 0.64
mainnet_e81889 - altair processParticipationFlagUpdates 74.688 ms/op 90.910 ms/op 0.82
mainnet_e81889 - altair processSyncCommitteeUpdates 1.4370 us/op 1.9330 us/op 0.74
mainnet_e81889 - altair afterProcessEpoch 239.05 ms/op 247.53 ms/op 0.97
altair processInactivityUpdates - 250000 normalcase 83.118 ms/op 90.154 ms/op 0.92
altair processInactivityUpdates - 250000 worstcase 91.356 ms/op 78.683 ms/op 1.16
altair processParticipationFlagUpdates - 250000 anycase 58.288 ms/op 75.245 ms/op 0.77
altair processRewardsAndPenalties - 250000 normalcase 87.194 ms/op 88.858 ms/op 0.98
altair processRewardsAndPenalties - 250000 worstcase 113.37 ms/op 109.50 ms/op 1.04
altair processSyncCommitteeUpdates - 250000 368.96 ms/op 431.91 ms/op 0.85
Tree 40 250000 create 809.53 ms/op 797.60 ms/op 1.01
Tree 40 250000 get(125000) 336.31 ns/op 350.86 ns/op 0.96
Tree 40 250000 set(125000) 2.7761 us/op 2.5246 us/op 1.10
Tree 40 250000 toArray() 45.899 ms/op 46.488 ms/op 0.99
Tree 40 250000 iterate all - toArray() + loop 46.039 ms/op 44.945 ms/op 1.02
Tree 40 250000 iterate all - get(i) 123.67 ms/op 134.44 ms/op 0.92
MutableVector 250000 create 22.858 ms/op 23.640 ms/op 0.97
MutableVector 250000 get(125000) 12.516 ns/op 15.760 ns/op 0.79
MutableVector 250000 set(125000) 752.85 ns/op 714.91 ns/op 1.05
MutableVector 250000 toArray() 9.4103 ms/op 9.3552 ms/op 1.01
MutableVector 250000 iterate all - toArray() + loop 9.0648 ms/op 9.5616 ms/op 0.95
MutableVector 250000 iterate all - get(i) 2.9324 ms/op 3.8344 ms/op 0.76
Array 250000 create 6.4345 ms/op 5.8708 ms/op 1.10
Array 250000 clone - spread 3.2230 ms/op 2.4766 ms/op 1.30
Array 250000 get(125000) 1.3830 ns/op 1.2840 ns/op 1.08
Array 250000 set(125000) 1.3940 ns/op 1.2490 ns/op 1.12
Array 250000 iterate all - loop 169.13 us/op 148.84 us/op 1.14
effectiveBalanceIncrements clone Uint8Array 300000 88.686 us/op 396.58 us/op 0.22
effectiveBalanceIncrements clone MutableVector 300000 983.00 ns/op 601.00 ns/op 1.64
effectiveBalanceIncrements rw all Uint8Array 300000 301.94 us/op 198.33 us/op 1.52
effectiveBalanceIncrements rw all MutableVector 300000 248.26 ms/op 212.41 ms/op 1.17
aggregationBits - 2048 els - readonlyValues 196.56 us/op 216.46 us/op 0.91
aggregationBits - 2048 els - zipIndexesInBitList 46.198 us/op 40.114 us/op 1.15
regular array get 100000 times 67.493 us/op 59.392 us/op 1.14
wrappedArray get 100000 times 67.442 us/op 59.083 us/op 1.14
arrayWithProxy get 100000 times 29.358 ms/op 40.451 ms/op 0.73
ssz.Root.equals 1.1400 us/op 1.2750 us/op 0.89
ssz.Root.equals with valueOf() 1.4620 us/op 1.5420 us/op 0.95
byteArrayEquals with valueOf() 1.3730 us/op 1.5060 us/op 0.91
phase0 processBlock - 250000 vs - 7PWei normalcase 8.3763 ms/op 10.131 ms/op 0.83
phase0 processBlock - 250000 vs - 7PWei worstcase 75.709 ms/op 91.582 ms/op 0.83
phase0 afterProcessEpoch - 250000 vs - 7PWei 225.75 ms/op 228.21 ms/op 0.99
phase0 beforeProcessEpoch - 250000 vs - 7PWei 569.52 ms/op 674.22 ms/op 0.84
phase0 processEpoch - mainnet_e58758 788.94 ms/op 933.75 ms/op 0.84
mainnet_e58758 - phase0 beforeProcessEpoch 491.31 ms/op 538.58 ms/op 0.91
mainnet_e58758 - phase0 processJustificationAndFinalization 52.992 us/op 75.823 us/op 0.70
mainnet_e58758 - phase0 processRewardsAndPenalties 85.797 ms/op 123.47 ms/op 0.69
mainnet_e58758 - phase0 processRegistryUpdates 38.045 us/op 54.123 us/op 0.70
mainnet_e58758 - phase0 processSlashings 2.0440 us/op 2.5330 us/op 0.81
mainnet_e58758 - phase0 processEth1DataReset 1.7710 us/op 2.1280 us/op 0.83
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 5.2027 ms/op 5.7983 ms/op 0.90
mainnet_e58758 - phase0 processSlashingsReset 11.847 us/op 14.689 us/op 0.81
mainnet_e58758 - phase0 processRandaoMixesReset 14.203 us/op 20.305 us/op 0.70
mainnet_e58758 - phase0 processHistoricalRootsUpdate 2.9090 us/op 2.6620 us/op 1.09
mainnet_e58758 - phase0 processParticipationRecordUpdates 10.474 us/op 14.066 us/op 0.74
mainnet_e58758 - phase0 afterProcessEpoch 187.73 ms/op 200.00 ms/op 0.94
phase0 processEffectiveBalanceUpdates - 250000 normalcase 5.9996 ms/op 6.7053 ms/op 0.89
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 6.2857 ms/op 7.2274 ms/op 0.87
phase0 processRegistryUpdates - 250000 normalcase 40.322 us/op 54.073 us/op 0.75
phase0 processRegistryUpdates - 250000 badcase_full_deposits 3.1625 ms/op 4.0657 ms/op 0.78
phase0 processRegistryUpdates - 250000 worstcase 0.5 1.8575 s/op 2.3156 s/op 0.80
phase0 getAttestationDeltas - 250000 normalcase 13.396 ms/op 14.151 ms/op 0.95
phase0 getAttestationDeltas - 250000 worstcase 16.270 ms/op 14.511 ms/op 1.12
phase0 processSlashings - 250000 worstcase 39.263 ms/op 42.970 ms/op 0.91
shuffle list - 16384 els 13.102 ms/op 14.421 ms/op 0.91
shuffle list - 250000 els 186.88 ms/op 203.47 ms/op 0.92
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 448.81 us/op 672.23 us/op 0.67
pass gossip attestations to forkchoice per slot 15.581 ms/op 18.986 ms/op 0.82
computeDeltas 3.8200 ms/op 3.8905 ms/op 0.98
computeProposerBoostScoreFromBalances 503.30 us/op 492.14 us/op 1.02
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.4468 ms/op 2.1143 ms/op 1.16
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 795.95 us/op 828.39 us/op 0.96
BLS verify - blst-native 1.8607 ms/op 2.2900 ms/op 0.81
BLS verifyMultipleSignatures 3 - blst-native 3.8165 ms/op 4.7102 ms/op 0.81
BLS verifyMultipleSignatures 8 - blst-native 8.2277 ms/op 10.314 ms/op 0.80
BLS verifyMultipleSignatures 32 - blst-native 29.898 ms/op 36.641 ms/op 0.82
BLS aggregatePubkeys 32 - blst-native 40.638 us/op 49.999 us/op 0.81
BLS aggregatePubkeys 128 - blst-native 154.56 us/op 192.18 us/op 0.80
getAttestationsForBlock 63.666 ms/op 66.537 ms/op 0.96
CheckpointStateCache - add get delete 18.760 us/op 22.158 us/op 0.85
validate gossip signedAggregateAndProof - struct 4.5205 ms/op 5.4714 ms/op 0.83
validate gossip signedAggregateAndProof - treeBacked 4.4260 ms/op 5.4563 ms/op 0.81
validate gossip attestation - struct 2.0913 ms/op 2.5985 ms/op 0.80
validate gossip attestation - treeBacked 2.1135 ms/op 2.6297 ms/op 0.80
pickEth1Vote - no votes 10.007 ms/op 10.123 ms/op 0.99
pickEth1Vote - max votes 52.678 ms/op 58.583 ms/op 0.90
pickEth1Vote - Eth1Data hashTreeRoot value x2048 23.265 ms/op 30.801 ms/op 0.76
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 9.3474 ms/op 11.161 ms/op 0.84
pickEth1Vote - Eth1Data fastSerialize value x2048 5.7287 ms/op 5.8834 ms/op 0.97
pickEth1Vote - Eth1Data fastSerialize tree x2048 25.644 ms/op 29.474 ms/op 0.87
bytes32 toHexString 1.9730 us/op 2.0690 us/op 0.95
bytes32 Buffer.toString(hex) 711.00 ns/op 789.00 ns/op 0.90
bytes32 Buffer.toString(hex) from Uint8Array 972.00 ns/op 1.1220 us/op 0.87
bytes32 Buffer.toString(hex) + 0x 712.00 ns/op 804.00 ns/op 0.89
Object access 1 prop 0.36900 ns/op 0.41000 ns/op 0.90
Map access 1 prop 0.29900 ns/op 0.34700 ns/op 0.86
Object get x1000 17.689 ns/op 16.905 ns/op 1.05
Map get x1000 1.1110 ns/op 0.98900 ns/op 1.12
Object set x1000 113.19 ns/op 115.50 ns/op 0.98
Map set x1000 69.709 ns/op 81.164 ns/op 0.86
Return object 10000 times 0.37920 ns/op 0.43790 ns/op 0.87
Throw Error 10000 times 5.8948 us/op 7.0622 us/op 0.83
enrSubnets - fastDeserialize 64 bits 1.3180 us/op 1.4290 us/op 0.92
enrSubnets - ssz BitVector 64 bits 17.233 us/op 19.406 us/op 0.89
enrSubnets - fastDeserialize 4 bits 480.00 ns/op 543.00 ns/op 0.88
enrSubnets - ssz BitVector 4 bits 3.0040 us/op 3.5920 us/op 0.84
RateTracker 1000000 limit, 1 obj count per request 186.62 ns/op 208.80 ns/op 0.89
RateTracker 1000000 limit, 2 obj count per request 140.90 ns/op 153.06 ns/op 0.92
RateTracker 1000000 limit, 4 obj count per request 117.66 ns/op 124.67 ns/op 0.94
RateTracker 1000000 limit, 8 obj count per request 106.55 ns/op 112.24 ns/op 0.95
RateTracker with prune 4.6160 us/op 4.7650 us/op 0.97
array of 16000 items push then shift 3.1750 us/op 5.4687 us/op 0.58
LinkedList of 16000 items push then shift 19.686 ns/op 19.231 ns/op 1.02
array of 16000 items push then pop 201.17 ns/op 230.99 ns/op 0.87
LinkedList of 16000 items push then pop 15.455 ns/op 18.143 ns/op 0.85
array of 24000 items push then shift 4.0529 us/op 8.3261 us/op 0.49
LinkedList of 24000 items push then shift 22.613 ns/op 18.798 ns/op 1.20
array of 24000 items push then pop 224.56 ns/op 231.81 ns/op 0.97
LinkedList of 24000 items push then pop 18.290 ns/op 18.433 ns/op 0.99

by benchmarkbot/action

Copy link
Contributor

@dapplion dapplion left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Happy to approve once ready

@g11tech g11tech marked this pull request as ready for review February 28, 2022 08:03
@g11tech
Copy link
Contributor Author

g11tech commented Feb 28, 2022

Looks good! Happy to approve once ready

❤️ rebased, ready for merge @dapplion

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

Successfully merging this pull request may close these issues.

3 participants