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

Enable proposerBoostEnabled #3960

Merged
merged 1 commit into from
May 6, 2022
Merged

Enable proposerBoostEnabled #3960

merged 1 commit into from
May 6, 2022

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Apr 29, 2022

Motivation

Start testing proposer boost in prater and see how it goes regarding:

  • Validator profit
  • Correct head percentage of attestations

Description

Change the default proposerBoostEnabled flag to true

@twoeths twoeths requested a review from a team as a code owner April 29, 2022 10:10
@codecov
Copy link

codecov bot commented Apr 29, 2022

Codecov Report

Merging #3960 (bf993bf) into master (2b9fe2a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3960   +/-   ##
=======================================
  Coverage   36.26%   36.26%           
=======================================
  Files         324      324           
  Lines        9099     9099           
  Branches     1465     1465           
=======================================
  Hits         3300     3300           
  Misses       5626     5626           
  Partials      173      173           

@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 9840428 Previous: 2b9fe2a Ratio
BeaconState.hashTreeRoot - No change 486.00 ns/op 654.00 ns/op 0.74
BeaconState.hashTreeRoot - 1 full validator 64.303 us/op 71.666 us/op 0.90
BeaconState.hashTreeRoot - 32 full validator 629.68 us/op 647.19 us/op 0.97
BeaconState.hashTreeRoot - 512 full validator 6.8611 ms/op 6.9920 ms/op 0.98
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 79.332 us/op 82.053 us/op 0.97
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.1103 ms/op 1.1269 ms/op 0.99
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 14.798 ms/op 15.066 ms/op 0.98
BeaconState.hashTreeRoot - 1 balances 61.781 us/op 62.614 us/op 0.99
BeaconState.hashTreeRoot - 32 balances 542.52 us/op 565.33 us/op 0.96
BeaconState.hashTreeRoot - 512 balances 5.2748 ms/op 5.4235 ms/op 0.97
BeaconState.hashTreeRoot - 250000 balances 114.62 ms/op 113.45 ms/op 1.01
processSlot - 1 slots 11.209 us/op 11.269 us/op 0.99
processSlot - 32 slots 1.7846 ms/op 1.8476 ms/op 0.97
getCommitteeAssignments - req 1 vs - 250000 vc 6.3615 ms/op 6.3099 ms/op 1.01
getCommitteeAssignments - req 100 vs - 250000 vc 9.2413 ms/op 8.7769 ms/op 1.05
getCommitteeAssignments - req 1000 vs - 250000 vc 9.2772 ms/op 9.4504 ms/op 0.98
computeProposers - vc 250000 20.023 ms/op 19.223 ms/op 1.04
computeEpochShuffling - vc 250000 189.97 ms/op 190.35 ms/op 1.00
getNextSyncCommittee - vc 250000 329.82 ms/op 320.13 ms/op 1.03
altair processAttestation - 250000 vs - 7PWei normalcase 4.2683 ms/op 4.2059 ms/op 1.01
altair processAttestation - 250000 vs - 7PWei worstcase 6.2236 ms/op 6.1358 ms/op 1.01
altair processAttestation - setStatus - 1/6 committees join 225.63 us/op 242.16 us/op 0.93
altair processAttestation - setStatus - 1/3 committees join 435.90 us/op 464.57 us/op 0.94
altair processAttestation - setStatus - 1/2 committees join 598.27 us/op 655.65 us/op 0.91
altair processAttestation - setStatus - 2/3 committees join 782.67 us/op 847.17 us/op 0.92
altair processAttestation - setStatus - 4/5 committees join 1.0946 ms/op 1.1532 ms/op 0.95
altair processAttestation - setStatus - 100% committees join 1.3236 ms/op 1.3790 ms/op 0.96
altair processBlock - 250000 vs - 7PWei normalcase 30.471 ms/op 28.164 ms/op 1.08
altair processBlock - 250000 vs - 7PWei normalcase hashState 38.366 ms/op 38.852 ms/op 0.99
altair processBlock - 250000 vs - 7PWei worstcase 84.370 ms/op 83.241 ms/op 1.01
altair processBlock - 250000 vs - 7PWei worstcase hashState 124.50 ms/op 127.02 ms/op 0.98
altair processEth1Data - 250000 vs - 7PWei normalcase 875.69 us/op 853.84 us/op 1.03
altair processEpoch - mainnet_e81889 635.46 ms/op 640.95 ms/op 0.99
mainnet_e81889 - altair beforeProcessEpoch 165.02 ms/op 167.22 ms/op 0.99
mainnet_e81889 - altair processJustificationAndFinalization 46.402 us/op 32.850 us/op 1.41
mainnet_e81889 - altair processInactivityUpdates 13.009 ms/op 12.836 ms/op 1.01
mainnet_e81889 - altair processRewardsAndPenalties 92.579 ms/op 95.928 ms/op 0.97
mainnet_e81889 - altair processRegistryUpdates 9.1830 us/op 8.2590 us/op 1.11
mainnet_e81889 - altair processSlashings 3.4640 us/op 3.0590 us/op 1.13
mainnet_e81889 - altair processEth1DataReset 3.4160 us/op 3.3140 us/op 1.03
mainnet_e81889 - altair processEffectiveBalanceUpdates 7.5074 ms/op 7.8963 ms/op 0.95
mainnet_e81889 - altair processSlashingsReset 10.513 us/op 14.184 us/op 0.74
mainnet_e81889 - altair processRandaoMixesReset 12.615 us/op 12.383 us/op 1.02
mainnet_e81889 - altair processHistoricalRootsUpdate 5.9730 us/op 3.5200 us/op 1.70
mainnet_e81889 - altair processParticipationFlagUpdates 9.5940 us/op 9.4390 us/op 1.02
mainnet_e81889 - altair processSyncCommitteeUpdates 3.8830 us/op 2.5070 us/op 1.55
mainnet_e81889 - altair afterProcessEpoch 216.91 ms/op 219.62 ms/op 0.99
altair processInactivityUpdates - 250000 normalcase 37.259 ms/op 37.990 ms/op 0.98
altair processInactivityUpdates - 250000 worstcase 31.913 ms/op 32.423 ms/op 0.98
altair processRewardsAndPenalties - 250000 normalcase 92.266 ms/op 91.459 ms/op 1.01
altair processRewardsAndPenalties - 250000 worstcase 133.48 ms/op 93.808 ms/op 1.42
altair processSyncCommitteeUpdates - 250000 330.95 ms/op 336.03 ms/op 0.98
Tree 40 250000 create 713.26 ms/op 713.32 ms/op 1.00
Tree 40 250000 get(125000) 329.09 ns/op 336.20 ns/op 0.98
Tree 40 250000 set(125000) 2.2846 us/op 2.2400 us/op 1.02
Tree 40 250000 toArray() 33.951 ms/op 35.100 ms/op 0.97
Tree 40 250000 iterate all - toArray() + loop 34.537 ms/op 35.284 ms/op 0.98
Tree 40 250000 iterate all - get(i) 126.80 ms/op 127.54 ms/op 0.99
MutableVector 250000 create 17.259 ms/op 16.380 ms/op 1.05
MutableVector 250000 get(125000) 17.259 ns/op 17.780 ns/op 0.97
MutableVector 250000 set(125000) 600.82 ns/op 586.59 ns/op 1.02
MutableVector 250000 toArray() 6.8326 ms/op 7.2099 ms/op 0.95
MutableVector 250000 iterate all - toArray() + loop 7.3056 ms/op 7.1678 ms/op 1.02
MutableVector 250000 iterate all - get(i) 3.9484 ms/op 3.9363 ms/op 1.00
Array 250000 create 6.5809 ms/op 6.2857 ms/op 1.05
Array 250000 clone - spread 2.8555 ms/op 2.6289 ms/op 1.09
Array 250000 get(125000) 1.3590 ns/op 1.2740 ns/op 1.07
Array 250000 set(125000) 1.3560 ns/op 1.2830 ns/op 1.06
Array 250000 iterate all - loop 191.45 us/op 201.53 us/op 0.95
effectiveBalanceIncrements clone Uint8Array 300000 80.438 us/op 80.790 us/op 1.00
effectiveBalanceIncrements clone MutableVector 300000 962.00 ns/op 611.00 ns/op 1.57
effectiveBalanceIncrements rw all Uint8Array 300000 345.75 us/op 362.30 us/op 0.95
effectiveBalanceIncrements rw all MutableVector 300000 197.43 ms/op 169.56 ms/op 1.16
aggregationBits - 2048 els - zipIndexesInBitList 32.250 us/op 27.269 us/op 1.18
regular array get 100000 times 78.975 us/op 80.944 us/op 0.98
wrappedArray get 100000 times 79.599 us/op 80.967 us/op 0.98
arrayWithProxy get 100000 times 38.350 ms/op 39.870 ms/op 0.96
ssz.Root.equals 533.00 ns/op 510.00 ns/op 1.05
byteArrayEquals 477.00 ns/op 511.00 ns/op 0.93
phase0 processBlock - 250000 vs - 7PWei normalcase 3.8693 ms/op 3.8563 ms/op 1.00
phase0 processBlock - 250000 vs - 7PWei worstcase 53.067 ms/op 52.793 ms/op 1.01
phase0 afterProcessEpoch - 250000 vs - 7PWei 208.76 ms/op 207.84 ms/op 1.00
phase0 beforeProcessEpoch - 250000 vs - 7PWei 95.773 ms/op 80.548 ms/op 1.19
phase0 processEpoch - mainnet_e58758 571.64 ms/op 583.44 ms/op 0.98
mainnet_e58758 - phase0 beforeProcessEpoch 240.39 ms/op 238.95 ms/op 1.01
mainnet_e58758 - phase0 processJustificationAndFinalization 47.829 us/op 30.899 us/op 1.55
mainnet_e58758 - phase0 processRewardsAndPenalties 147.56 ms/op 81.640 ms/op 1.81
mainnet_e58758 - phase0 processRegistryUpdates 22.338 us/op 16.878 us/op 1.32
mainnet_e58758 - phase0 processSlashings 4.1620 us/op 3.3660 us/op 1.24
mainnet_e58758 - phase0 processEth1DataReset 3.6700 us/op 3.1950 us/op 1.15
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 6.8811 ms/op 6.4117 ms/op 1.07
mainnet_e58758 - phase0 processSlashingsReset 11.615 us/op 11.344 us/op 1.02
mainnet_e58758 - phase0 processRandaoMixesReset 15.661 us/op 11.554 us/op 1.36
mainnet_e58758 - phase0 processHistoricalRootsUpdate 5.3790 us/op 4.0780 us/op 1.32
mainnet_e58758 - phase0 processParticipationRecordUpdates 14.800 us/op 10.242 us/op 1.45
mainnet_e58758 - phase0 afterProcessEpoch 185.94 ms/op 183.09 ms/op 1.02
phase0 processEffectiveBalanceUpdates - 250000 normalcase 8.1814 ms/op 7.5612 ms/op 1.08
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 8.1212 ms/op 8.2232 ms/op 0.99
phase0 processRegistryUpdates - 250000 normalcase 21.441 us/op 13.977 us/op 1.53
phase0 processRegistryUpdates - 250000 badcase_full_deposits 572.92 us/op 549.87 us/op 1.04
phase0 processRegistryUpdates - 250000 worstcase 0.5 248.42 ms/op 282.87 ms/op 0.88
phase0 getAttestationDeltas - 250000 normalcase 17.262 ms/op 16.566 ms/op 1.04
phase0 getAttestationDeltas - 250000 worstcase 18.716 ms/op 16.788 ms/op 1.11
phase0 processSlashings - 250000 worstcase 6.5066 ms/op 6.5783 ms/op 0.99
shuffle list - 16384 els 12.507 ms/op 12.777 ms/op 0.98
shuffle list - 250000 els 182.01 ms/op 184.78 ms/op 0.99
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 437.48 us/op 458.91 us/op 0.95
pass gossip attestations to forkchoice per slot 3.8899 ms/op 3.9999 ms/op 0.97
computeDeltas 3.6749 ms/op 3.8112 ms/op 0.96
computeProposerBoostScoreFromBalances 591.28 us/op 603.73 us/op 0.98
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.7719 ms/op 2.2909 ms/op 0.77
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 93.928 us/op 84.129 us/op 1.12
BLS verify - blst-native 2.1622 ms/op 2.2302 ms/op 0.97
BLS verifyMultipleSignatures 3 - blst-native 4.3895 ms/op 4.5672 ms/op 0.96
BLS verifyMultipleSignatures 8 - blst-native 9.7063 ms/op 9.8387 ms/op 0.99
BLS verifyMultipleSignatures 32 - blst-native 34.283 ms/op 35.586 ms/op 0.96
BLS aggregatePubkeys 32 - blst-native 47.292 us/op 47.833 us/op 0.99
BLS aggregatePubkeys 128 - blst-native 175.99 us/op 187.99 us/op 0.94
getAttestationsForBlock 65.624 ms/op 67.017 ms/op 0.98
CheckpointStateCache - add get delete 12.196 us/op 12.518 us/op 0.97
validate gossip signedAggregateAndProof - struct 5.1617 ms/op 5.1118 ms/op 1.01
validate gossip attestation - struct 2.5180 ms/op 2.4410 ms/op 1.03
pickEth1Vote - no votes 2.6190 ms/op 2.5880 ms/op 1.01
pickEth1Vote - max votes 21.155 ms/op 21.173 ms/op 1.00
pickEth1Vote - Eth1Data hashTreeRoot value x2048 12.538 ms/op 12.534 ms/op 1.00
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 23.362 ms/op 22.849 ms/op 1.02
pickEth1Vote - Eth1Data fastSerialize value x2048 1.9009 ms/op 1.9782 ms/op 0.96
pickEth1Vote - Eth1Data fastSerialize tree x2048 14.282 ms/op 14.427 ms/op 0.99
bytes32 toHexString 1.1060 us/op 1.0870 us/op 1.02
bytes32 Buffer.toString(hex) 842.00 ns/op 798.00 ns/op 1.06
bytes32 Buffer.toString(hex) from Uint8Array 1.0650 us/op 1.0360 us/op 1.03
bytes32 Buffer.toString(hex) + 0x 831.00 ns/op 811.00 ns/op 1.02
Object access 1 prop 0.39800 ns/op 0.38900 ns/op 1.02
Map access 1 prop 0.35000 ns/op 0.34500 ns/op 1.01
Object get x1000 19.917 ns/op 20.722 ns/op 0.96
Map get x1000 1.2590 ns/op 1.2560 ns/op 1.00
Object set x1000 119.80 ns/op 122.37 ns/op 0.98
Map set x1000 71.752 ns/op 74.114 ns/op 0.97
Return object 10000 times 0.43210 ns/op 0.44920 ns/op 0.96
Throw Error 10000 times 6.8432 us/op 7.0308 us/op 0.97
enrSubnets - fastDeserialize 64 bits 3.0160 us/op 3.0080 us/op 1.00
enrSubnets - ssz BitVector 64 bits 823.00 ns/op 839.00 ns/op 0.98
enrSubnets - fastDeserialize 4 bits 493.00 ns/op 449.00 ns/op 1.10
enrSubnets - ssz BitVector 4 bits 857.00 ns/op 847.00 ns/op 1.01
RateTracker 1000000 limit, 1 obj count per request 208.36 ns/op 220.28 ns/op 0.95
RateTracker 1000000 limit, 2 obj count per request 157.96 ns/op 161.36 ns/op 0.98
RateTracker 1000000 limit, 4 obj count per request 127.65 ns/op 135.29 ns/op 0.94
RateTracker 1000000 limit, 8 obj count per request 115.27 ns/op 118.49 ns/op 0.97
RateTracker with prune 4.1800 us/op 4.5060 us/op 0.93
array of 16000 items push then shift 3.7019 us/op 3.7389 us/op 0.99
LinkedList of 16000 items push then shift 19.525 ns/op 18.819 ns/op 1.04
array of 16000 items push then pop 249.45 ns/op 235.90 ns/op 1.06
LinkedList of 16000 items push then pop 19.452 ns/op 19.150 ns/op 1.02
array of 24000 items push then shift 5.4069 us/op 5.4482 us/op 0.99
LinkedList of 24000 items push then shift 21.565 ns/op 21.377 ns/op 1.01
array of 24000 items push then pop 215.33 ns/op 231.58 ns/op 0.93
LinkedList of 24000 items push then pop 19.833 ns/op 20.484 ns/op 0.97

by benchmarkbot/action

@dapplion
Copy link
Contributor

dapplion commented May 4, 2022

@tuyennhv Please share how it's going in our testnet deployments and merge if all good

@twoeths twoeths added the status-do-not-merge Merging this issue will break the build. Do not merge! label May 5, 2022
@twoeths
Copy link
Contributor Author

twoeths commented May 5, 2022

I've just deployed this branch to contabo-0 and contabo-20, let's see how it works

@twoeths twoeths removed the status-do-not-merge Merging this issue will break the build. Do not merge! label May 6, 2022
@twoeths
Copy link
Contributor Author

twoeths commented May 6, 2022

The test of this branch on contabo-0 and contabo-20 went well in terms of validator performance, wrong head ratio and forkchoice metrics so we can merge it now

@twoeths twoeths merged commit 81a4b0c into master May 6, 2022
@twoeths twoeths deleted the tuyen/enable-proposer-boost branch May 6, 2022 10:57
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