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

feat: add proposer boost reorg flag to enable it in block production #6652

Open
wants to merge 4 commits into
base: unstable
Choose a base branch
from

Conversation

ensi321
Copy link
Contributor

@ensi321 ensi321 commented Apr 8, 2024

Motivation

Wire the existed proposer boost reorg functionality to block production.

Description

  • Call getProposerHead() in block production
  • Call predictProposerHead() in prepareForNextSlot()
  • Introduce proposerBoostReorgEnabled flag. Default to be false for now as this is seen as an experimental feature
  • Add proposerBoostReorg e2e test thanks to @tuyennhv
  • Add related metrics

Closes #5125

@ensi321 ensi321 requested a review from a team as a code owner April 8, 2024 16:13
Copy link

codecov bot commented Apr 8, 2024

Codecov Report

Merging #6652 (1fab30d) into unstable (f2ec0d4) will increase coverage by 0.10%.
Report is 18 commits behind head on unstable.
The diff coverage is 59.34%.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #6652      +/-   ##
============================================
+ Coverage     61.69%   61.79%   +0.10%     
============================================
  Files           556      556              
  Lines         58820    59148     +328     
  Branches       1887     1899      +12     
============================================
+ Hits          36287    36549     +262     
- Misses        22492    22556      +64     
- Partials         41       43       +2     

Copy link
Contributor

github-actions bot commented Apr 8, 2024

⚠️ Performance Alert ⚠️

Possible performance regression was detected for some benchmarks.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold.

Benchmark suite Current: debb994 Previous: 2dae605 Ratio
getSlashingsAndExits - default max 634.97 us/op 174.36 us/op 3.64
Full benchmark results
Benchmark suite Current: debb994 Previous: 2dae605 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 598.63 us/op 1.0150 ms/op 0.59
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 109.00 us/op 96.065 us/op 1.13
BLS verify - blst-native 1.3311 ms/op 1.5204 ms/op 0.88
BLS verifyMultipleSignatures 3 - blst-native 3.0740 ms/op 3.1984 ms/op 0.96
BLS verifyMultipleSignatures 8 - blst-native 6.2945 ms/op 6.9859 ms/op 0.90
BLS verifyMultipleSignatures 32 - blst-native 24.626 ms/op 26.728 ms/op 0.92
BLS verifyMultipleSignatures 64 - blst-native 51.178 ms/op 51.190 ms/op 1.00
BLS verifyMultipleSignatures 128 - blst-native 101.37 ms/op 104.13 ms/op 0.97
BLS deserializing 10000 signatures 975.62 ms/op 1.0891 s/op 0.90
BLS deserializing 100000 signatures 9.5823 s/op 10.512 s/op 0.91
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.4548 ms/op 1.6456 ms/op 0.88
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.7143 ms/op 1.7367 ms/op 0.99
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.6186 ms/op 2.6032 ms/op 1.01
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.8411 ms/op 3.9652 ms/op 0.97
BLS verifyMultipleSignatures - same message - 128 - blst-native 6.1883 ms/op 6.3191 ms/op 0.98
BLS aggregatePubkeys 32 - blst-native 29.226 us/op 27.822 us/op 1.05
BLS aggregatePubkeys 128 - blst-native 120.06 us/op 117.11 us/op 1.03
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 84.846 ms/op 69.618 ms/op 1.22
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 98.416 ms/op 65.155 ms/op 1.51
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 66.708 ms/op 58.821 ms/op 1.13
getSlashingsAndExits - default max 634.97 us/op 174.36 us/op 3.64
getSlashingsAndExits - 2k 952.32 us/op 442.95 us/op 2.15
proposeBlockBody type=full, size=empty 9.4848 ms/op 8.5465 ms/op 1.11
isKnown best case - 1 super set check 911.00 ns/op 507.00 ns/op 1.80
isKnown normal case - 2 super set checks 975.00 ns/op 494.00 ns/op 1.97
isKnown worse case - 16 super set checks 994.00 ns/op 472.00 ns/op 2.11
InMemoryCheckpointStateCache - add get delete 19.369 us/op 6.1220 us/op 3.16
validate api signedAggregateAndProof - struct 3.3397 ms/op 2.9111 ms/op 1.15
validate gossip signedAggregateAndProof - struct 3.5567 ms/op 3.2857 ms/op 1.08
validate gossip attestation - vc 640000 1.5797 ms/op 1.6321 ms/op 0.97
batch validate gossip attestation - vc 640000 - chunk 32 206.87 us/op 181.01 us/op 1.14
batch validate gossip attestation - vc 640000 - chunk 64 170.66 us/op 166.35 us/op 1.03
batch validate gossip attestation - vc 640000 - chunk 128 173.13 us/op 159.27 us/op 1.09
batch validate gossip attestation - vc 640000 - chunk 256 178.07 us/op 175.93 us/op 1.01
pickEth1Vote - no votes 1.9241 ms/op 1.4227 ms/op 1.35
pickEth1Vote - max votes 15.677 ms/op 10.550 ms/op 1.49
pickEth1Vote - Eth1Data hashTreeRoot value x2048 29.594 ms/op 22.341 ms/op 1.32
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 49.980 ms/op 34.028 ms/op 1.47
pickEth1Vote - Eth1Data fastSerialize value x2048 986.87 us/op 903.90 us/op 1.09
pickEth1Vote - Eth1Data fastSerialize tree x2048 8.3458 ms/op 5.9811 ms/op 1.40
bytes32 toHexString 1.4420 us/op 754.00 ns/op 1.91
bytes32 Buffer.toString(hex) 414.00 ns/op 400.00 ns/op 1.03
bytes32 Buffer.toString(hex) from Uint8Array 695.00 ns/op 613.00 ns/op 1.13
bytes32 Buffer.toString(hex) + 0x 371.00 ns/op 359.00 ns/op 1.03
Object access 1 prop 0.30400 ns/op 0.24700 ns/op 1.23
Map access 1 prop 0.19500 ns/op 0.17800 ns/op 1.10
Object get x1000 10.399 ns/op 8.5440 ns/op 1.22
Map get x1000 1.0580 ns/op 0.94800 ns/op 1.12
Object set x1000 92.925 ns/op 63.211 ns/op 1.47
Map set x1000 66.366 ns/op 48.132 ns/op 1.38
Return object 10000 times 0.34680 ns/op 0.27110 ns/op 1.28
Throw Error 10000 times 4.5520 us/op 4.7553 us/op 0.96
fastMsgIdFn sha256 / 200 bytes 4.1720 us/op 5.6090 us/op 0.74
fastMsgIdFn h32 xxhash / 200 bytes 451.00 ns/op 531.00 ns/op 0.85
fastMsgIdFn h64 xxhash / 200 bytes 479.00 ns/op 606.00 ns/op 0.79
fastMsgIdFn sha256 / 1000 bytes 12.790 us/op 21.365 us/op 0.60
fastMsgIdFn h32 xxhash / 1000 bytes 548.00 ns/op 815.00 ns/op 0.67
fastMsgIdFn h64 xxhash / 1000 bytes 567.00 ns/op 1.0990 us/op 0.52
fastMsgIdFn sha256 / 10000 bytes 132.14 us/op 165.69 us/op 0.80
fastMsgIdFn h32 xxhash / 10000 bytes 2.2900 us/op 3.1860 us/op 0.72
fastMsgIdFn h64 xxhash / 10000 bytes 1.7950 us/op 1.7150 us/op 1.05
send data - 1000 256B messages 25.610 ms/op 26.598 ms/op 0.96
send data - 1000 512B messages 36.841 ms/op 56.860 ms/op 0.65
send data - 1000 1024B messages 55.073 ms/op 78.640 ms/op 0.70
send data - 1000 1200B messages 47.314 ms/op 50.884 ms/op 0.93
send data - 1000 2048B messages 57.797 ms/op 66.506 ms/op 0.87
send data - 1000 4096B messages 54.397 ms/op 57.605 ms/op 0.94
send data - 1000 16384B messages 132.83 ms/op 142.12 ms/op 0.93
send data - 1000 65536B messages 485.52 ms/op 514.81 ms/op 0.94
enrSubnets - fastDeserialize 64 bits 1.6520 us/op 1.6880 us/op 0.98
enrSubnets - ssz BitVector 64 bits 536.00 ns/op 645.00 ns/op 0.83
enrSubnets - fastDeserialize 4 bits 240.00 ns/op 262.00 ns/op 0.92
enrSubnets - ssz BitVector 4 bits 542.00 ns/op 610.00 ns/op 0.89
prioritizePeers score -10:0 att 32-0.1 sync 2-0 226.92 us/op 263.96 us/op 0.86
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 318.91 us/op 414.16 us/op 0.77
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 395.17 us/op 500.15 us/op 0.79
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 579.30 us/op 831.29 us/op 0.70
prioritizePeers score 0:0 att 64-1 sync 4-1 818.51 us/op 985.31 us/op 0.83
array of 16000 items push then shift 1.6524 us/op 2.0290 us/op 0.81
LinkedList of 16000 items push then shift 8.9780 ns/op 10.853 ns/op 0.83
array of 16000 items push then pop 103.84 ns/op 123.11 ns/op 0.84
LinkedList of 16000 items push then pop 8.8640 ns/op 10.493 ns/op 0.84
array of 24000 items push then shift 2.4970 us/op 3.3183 us/op 0.75
LinkedList of 24000 items push then shift 9.0170 ns/op 12.620 ns/op 0.71
array of 24000 items push then pop 143.32 ns/op 174.40 ns/op 0.82
LinkedList of 24000 items push then pop 9.1180 ns/op 11.093 ns/op 0.82
intersect bitArray bitLen 8 6.2750 ns/op 7.2830 ns/op 0.86
intersect array and set length 8 70.945 ns/op 88.935 ns/op 0.80
intersect bitArray bitLen 128 35.844 ns/op 43.968 ns/op 0.82
intersect array and set length 128 1.0494 us/op 1.3205 us/op 0.79
bitArray.getTrueBitIndexes() bitLen 128 1.7910 us/op 2.3680 us/op 0.76
bitArray.getTrueBitIndexes() bitLen 248 2.7240 us/op 3.6410 us/op 0.75
bitArray.getTrueBitIndexes() bitLen 512 5.8910 us/op 7.1860 us/op 0.82
Buffer.concat 32 items 1.0820 us/op 1.3940 us/op 0.78
Uint8Array.set 32 items 2.4200 us/op 2.5700 us/op 0.94
Set add up to 64 items then delete first 4.7022 us/op 6.0638 us/op 0.78
OrderedSet add up to 64 items then delete first 6.0731 us/op 8.5510 us/op 0.71
Set add up to 64 items then delete last 5.1034 us/op 6.0770 us/op 0.84
OrderedSet add up to 64 items then delete last 6.8651 us/op 7.8513 us/op 0.87
Set add up to 64 items then delete middle 5.4736 us/op 5.7263 us/op 0.96
OrderedSet add up to 64 items then delete middle 8.0489 us/op 9.3414 us/op 0.86
Set add up to 128 items then delete first 10.208 us/op 11.726 us/op 0.87
OrderedSet add up to 128 items then delete first 13.401 us/op 16.755 us/op 0.80
Set add up to 128 items then delete last 10.202 us/op 12.055 us/op 0.85
OrderedSet add up to 128 items then delete last 13.058 us/op 16.737 us/op 0.78
Set add up to 128 items then delete middle 10.363 us/op 11.795 us/op 0.88
OrderedSet add up to 128 items then delete middle 18.770 us/op 21.980 us/op 0.85
Set add up to 256 items then delete first 19.654 us/op 24.904 us/op 0.79
OrderedSet add up to 256 items then delete first 26.151 us/op 33.159 us/op 0.79
Set add up to 256 items then delete last 20.731 us/op 26.453 us/op 0.78
OrderedSet add up to 256 items then delete last 27.311 us/op 33.354 us/op 0.82
Set add up to 256 items then delete middle 19.789 us/op 24.836 us/op 0.80
OrderedSet add up to 256 items then delete middle 50.607 us/op 60.362 us/op 0.84
transfer serialized Status (84 B) 1.8170 us/op 2.0340 us/op 0.89
copy serialized Status (84 B) 1.3800 us/op 1.6180 us/op 0.85
transfer serialized SignedVoluntaryExit (112 B) 2.1530 us/op 2.4160 us/op 0.89
copy serialized SignedVoluntaryExit (112 B) 1.4780 us/op 1.7420 us/op 0.85
transfer serialized ProposerSlashing (416 B) 2.6920 us/op 4.0120 us/op 0.67
copy serialized ProposerSlashing (416 B) 2.4560 us/op 3.4060 us/op 0.72
transfer serialized Attestation (485 B) 2.3630 us/op 3.5300 us/op 0.67
copy serialized Attestation (485 B) 2.2110 us/op 2.9710 us/op 0.74
transfer serialized AttesterSlashing (33232 B) 2.7260 us/op 3.0150 us/op 0.90
copy serialized AttesterSlashing (33232 B) 6.2670 us/op 10.062 us/op 0.62
transfer serialized Small SignedBeaconBlock (128000 B) 2.7030 us/op 3.5420 us/op 0.76
copy serialized Small SignedBeaconBlock (128000 B) 16.224 us/op 27.523 us/op 0.59
transfer serialized Avg SignedBeaconBlock (200000 B) 3.1970 us/op 3.7110 us/op 0.86
copy serialized Avg SignedBeaconBlock (200000 B) 29.611 us/op 32.143 us/op 0.92
transfer serialized BlobsSidecar (524380 B) 3.2280 us/op 4.1660 us/op 0.77
copy serialized BlobsSidecar (524380 B) 96.812 us/op 104.21 us/op 0.93
transfer serialized Big SignedBeaconBlock (1000000 B) 3.6310 us/op 3.9180 us/op 0.93
copy serialized Big SignedBeaconBlock (1000000 B) 190.66 us/op 185.93 us/op 1.03
pass gossip attestations to forkchoice per slot 3.9832 ms/op 5.7482 ms/op 0.69
forkChoice updateHead vc 100000 bc 64 eq 0 784.52 us/op 1.0062 ms/op 0.78
forkChoice updateHead vc 600000 bc 64 eq 0 4.6944 ms/op 5.2902 ms/op 0.89
forkChoice updateHead vc 1000000 bc 64 eq 0 7.0790 ms/op 8.9346 ms/op 0.79
forkChoice updateHead vc 600000 bc 320 eq 0 4.2420 ms/op 6.6889 ms/op 0.63
forkChoice updateHead vc 600000 bc 1200 eq 0 4.3770 ms/op 5.7342 ms/op 0.76
forkChoice updateHead vc 600000 bc 7200 eq 0 5.6648 ms/op 7.9181 ms/op 0.72
forkChoice updateHead vc 600000 bc 64 eq 1000 11.257 ms/op 16.578 ms/op 0.68
forkChoice updateHead vc 600000 bc 64 eq 10000 11.935 ms/op 15.482 ms/op 0.77
forkChoice updateHead vc 600000 bc 64 eq 300000 16.558 ms/op 19.611 ms/op 0.84
computeDeltas 500000 validators 300 proto nodes 6.8547 ms/op 7.4105 ms/op 0.93
computeDeltas 500000 validators 1200 proto nodes 6.7045 ms/op 7.4659 ms/op 0.90
computeDeltas 500000 validators 7200 proto nodes 6.6383 ms/op 7.4208 ms/op 0.89
computeDeltas 750000 validators 300 proto nodes 9.9357 ms/op 11.870 ms/op 0.84
computeDeltas 750000 validators 1200 proto nodes 10.298 ms/op 10.689 ms/op 0.96
computeDeltas 750000 validators 7200 proto nodes 10.721 ms/op 10.646 ms/op 1.01
computeDeltas 1400000 validators 300 proto nodes 20.013 ms/op 21.929 ms/op 0.91
computeDeltas 1400000 validators 1200 proto nodes 20.158 ms/op 22.379 ms/op 0.90
computeDeltas 1400000 validators 7200 proto nodes 19.243 ms/op 22.564 ms/op 0.85
computeDeltas 2100000 validators 300 proto nodes 30.661 ms/op 34.405 ms/op 0.89
computeDeltas 2100000 validators 1200 proto nodes 28.504 ms/op 33.082 ms/op 0.86
computeDeltas 2100000 validators 7200 proto nodes 28.918 ms/op 32.476 ms/op 0.89
altair processAttestation - 250000 vs - 7PWei normalcase 3.0959 ms/op 2.5186 ms/op 1.23
altair processAttestation - 250000 vs - 7PWei worstcase 4.6176 ms/op 3.4951 ms/op 1.32
altair processAttestation - setStatus - 1/6 committees join 158.69 us/op 227.82 us/op 0.70
altair processAttestation - setStatus - 1/3 committees join 302.35 us/op 405.16 us/op 0.75
altair processAttestation - setStatus - 1/2 committees join 413.38 us/op 551.76 us/op 0.75
altair processAttestation - setStatus - 2/3 committees join 527.96 us/op 648.62 us/op 0.81
altair processAttestation - setStatus - 4/5 committees join 808.42 us/op 833.23 us/op 0.97
altair processAttestation - setStatus - 100% committees join 950.77 us/op 1.0023 ms/op 0.95
altair processBlock - 250000 vs - 7PWei normalcase 8.9540 ms/op 8.4441 ms/op 1.06
altair processBlock - 250000 vs - 7PWei normalcase hashState 43.004 ms/op 35.832 ms/op 1.20
altair processBlock - 250000 vs - 7PWei worstcase 49.235 ms/op 44.437 ms/op 1.11
altair processBlock - 250000 vs - 7PWei worstcase hashState 107.84 ms/op 104.12 ms/op 1.04
phase0 processBlock - 250000 vs - 7PWei normalcase 3.2230 ms/op 2.7845 ms/op 1.16
phase0 processBlock - 250000 vs - 7PWei worstcase 33.312 ms/op 30.920 ms/op 1.08
altair processEth1Data - 250000 vs - 7PWei normalcase 684.47 us/op 499.87 us/op 1.37
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 18.915 us/op 17.225 us/op 1.10
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 47.392 us/op 96.998 us/op 0.49
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 21.293 us/op 15.655 us/op 1.36
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 23.673 us/op 9.9430 us/op 2.38
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 256.76 us/op 287.11 us/op 0.89
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.7397 ms/op 2.3363 ms/op 0.74
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.9485 ms/op 2.8221 ms/op 0.69
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.1322 ms/op 2.8476 ms/op 0.75
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.9835 ms/op 3.2481 ms/op 1.23
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.1190 ms/op 2.3481 ms/op 1.33
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 6.5548 ms/op 5.5503 ms/op 1.18
Tree 40 250000 create 568.34 ms/op 381.18 ms/op 1.49
Tree 40 250000 get(125000) 225.97 ns/op 214.27 ns/op 1.05
Tree 40 250000 set(125000) 1.7507 us/op 1.0639 us/op 1.65
Tree 40 250000 toArray() 27.797 ms/op 19.710 ms/op 1.41
Tree 40 250000 iterate all - toArray() + loop 26.060 ms/op 20.286 ms/op 1.28
Tree 40 250000 iterate all - get(i) 81.204 ms/op 71.670 ms/op 1.13
MutableVector 250000 create 20.902 ms/op 18.243 ms/op 1.15
MutableVector 250000 get(125000) 6.8250 ns/op 6.7540 ns/op 1.01
MutableVector 250000 set(125000) 356.93 ns/op 264.76 ns/op 1.35
MutableVector 250000 toArray() 4.4234 ms/op 3.4884 ms/op 1.27
MutableVector 250000 iterate all - toArray() + loop 5.1075 ms/op 3.9021 ms/op 1.31
MutableVector 250000 iterate all - get(i) 1.6399 ms/op 1.6354 ms/op 1.00
Array 250000 create 4.4647 ms/op 3.3386 ms/op 1.34
Array 250000 clone - spread 1.5524 ms/op 1.3772 ms/op 1.13
Array 250000 get(125000) 1.9930 ns/op 1.1390 ns/op 1.75
Array 250000 set(125000) 5.6410 ns/op 4.2810 ns/op 1.32
Array 250000 iterate all - loop 177.31 us/op 186.57 us/op 0.95
effectiveBalanceIncrements clone Uint8Array 300000 68.578 us/op 43.168 us/op 1.59
effectiveBalanceIncrements clone MutableVector 300000 458.00 ns/op 481.00 ns/op 0.95
effectiveBalanceIncrements rw all Uint8Array 300000 207.04 us/op 241.03 us/op 0.86
effectiveBalanceIncrements rw all MutableVector 300000 101.50 ms/op 109.23 ms/op 0.93
phase0 afterProcessEpoch - 250000 vs - 7PWei 122.66 ms/op 131.85 ms/op 0.93
phase0 beforeProcessEpoch - 250000 vs - 7PWei 65.678 ms/op 62.078 ms/op 1.06
altair processEpoch - mainnet_e81889 604.36 ms/op 599.07 ms/op 1.01
mainnet_e81889 - altair beforeProcessEpoch 104.45 ms/op 104.56 ms/op 1.00
mainnet_e81889 - altair processJustificationAndFinalization 23.400 us/op 33.639 us/op 0.70
mainnet_e81889 - altair processInactivityUpdates 8.9911 ms/op 9.3013 ms/op 0.97
mainnet_e81889 - altair processRewardsAndPenalties 78.884 ms/op 75.536 ms/op 1.04
mainnet_e81889 - altair processRegistryUpdates 4.6970 us/op 5.3300 us/op 0.88
mainnet_e81889 - altair processSlashings 765.00 ns/op 1.0830 us/op 0.71
mainnet_e81889 - altair processEth1DataReset 727.00 ns/op 947.00 ns/op 0.77
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.7160 ms/op 2.0591 ms/op 0.83
mainnet_e81889 - altair processSlashingsReset 4.0190 us/op 5.7430 us/op 0.70
mainnet_e81889 - altair processRandaoMixesReset 10.508 us/op 5.1950 us/op 2.02
mainnet_e81889 - altair processHistoricalRootsUpdate 1.2280 us/op 1.3070 us/op 0.94
mainnet_e81889 - altair processParticipationFlagUpdates 3.3860 us/op 4.1830 us/op 0.81
mainnet_e81889 - altair processSyncCommitteeUpdates 1.3570 us/op 1.2070 us/op 1.12
mainnet_e81889 - altair afterProcessEpoch 129.88 ms/op 160.60 ms/op 0.81
capella processEpoch - mainnet_e217614 2.4421 s/op 3.8050 s/op 0.64
mainnet_e217614 - capella beforeProcessEpoch 653.01 ms/op 910.47 ms/op 0.72
mainnet_e217614 - capella processJustificationAndFinalization 33.086 us/op 40.597 us/op 0.81
mainnet_e217614 - capella processInactivityUpdates 30.556 ms/op 40.853 ms/op 0.75
mainnet_e217614 - capella processRewardsAndPenalties 725.49 ms/op 1.0767 s/op 0.67
mainnet_e217614 - capella processRegistryUpdates 34.498 us/op 40.287 us/op 0.86
mainnet_e217614 - capella processSlashings 840.00 ns/op 1.2280 us/op 0.68
mainnet_e217614 - capella processEth1DataReset 854.00 ns/op 979.00 ns/op 0.87
mainnet_e217614 - capella processEffectiveBalanceUpdates 6.2706 ms/op 7.4595 ms/op 0.84
mainnet_e217614 - capella processSlashingsReset 6.1750 us/op 8.3230 us/op 0.74
mainnet_e217614 - capella processRandaoMixesReset 8.6790 us/op 13.754 us/op 0.63
mainnet_e217614 - capella processHistoricalRootsUpdate 1.1790 us/op 1.6280 us/op 0.72
mainnet_e217614 - capella processParticipationFlagUpdates 3.8050 us/op 6.1610 us/op 0.62
mainnet_e217614 - capella afterProcessEpoch 365.78 ms/op 643.05 ms/op 0.57
phase0 processEpoch - mainnet_e58758 674.31 ms/op 601.25 ms/op 1.12
mainnet_e58758 - phase0 beforeProcessEpoch 206.57 ms/op 179.14 ms/op 1.15
mainnet_e58758 - phase0 processJustificationAndFinalization 39.128 us/op 23.191 us/op 1.69
mainnet_e58758 - phase0 processRewardsAndPenalties 86.887 ms/op 89.238 ms/op 0.97
mainnet_e58758 - phase0 processRegistryUpdates 24.785 us/op 22.553 us/op 1.10
mainnet_e58758 - phase0 processSlashings 1.1980 us/op 1.2240 us/op 0.98
mainnet_e58758 - phase0 processEth1DataReset 1.1390 us/op 1.2140 us/op 0.94
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.4274 ms/op 2.0296 ms/op 0.70
mainnet_e58758 - phase0 processSlashingsReset 6.6190 us/op 6.3360 us/op 1.04
mainnet_e58758 - phase0 processRandaoMixesReset 9.8380 us/op 15.414 us/op 0.64
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.1480 us/op 2.0920 us/op 0.55
mainnet_e58758 - phase0 processParticipationRecordUpdates 6.2940 us/op 7.6050 us/op 0.83
mainnet_e58758 - phase0 afterProcessEpoch 117.15 ms/op 171.18 ms/op 0.68
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4411 ms/op 2.2512 ms/op 0.64
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5439 ms/op 3.7693 ms/op 0.41
altair processInactivityUpdates - 250000 normalcase 39.782 ms/op 47.850 ms/op 0.83
altair processInactivityUpdates - 250000 worstcase 43.145 ms/op 57.509 ms/op 0.75
phase0 processRegistryUpdates - 250000 normalcase 14.235 us/op 19.589 us/op 0.73
phase0 processRegistryUpdates - 250000 badcase_full_deposits 634.69 us/op 815.68 us/op 0.78
phase0 processRegistryUpdates - 250000 worstcase 0.5 177.35 ms/op 350.19 ms/op 0.51
altair processRewardsAndPenalties - 250000 normalcase 70.644 ms/op 128.19 ms/op 0.55
altair processRewardsAndPenalties - 250000 worstcase 80.854 ms/op 141.87 ms/op 0.57
phase0 getAttestationDeltas - 250000 normalcase 15.862 ms/op 19.168 ms/op 0.83
phase0 getAttestationDeltas - 250000 worstcase 13.344 ms/op 18.380 ms/op 0.73
phase0 processSlashings - 250000 worstcase 133.81 us/op 151.19 us/op 0.89
altair processSyncCommitteeUpdates - 250000 193.36 ms/op 360.98 ms/op 0.54
BeaconState.hashTreeRoot - No change 880.00 ns/op 1.0510 us/op 0.84
BeaconState.hashTreeRoot - 1 full validator 184.42 us/op 272.93 us/op 0.68
BeaconState.hashTreeRoot - 32 full validator 1.6575 ms/op 2.6845 ms/op 0.62
BeaconState.hashTreeRoot - 512 full validator 18.352 ms/op 26.730 ms/op 0.69
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 204.20 us/op 277.42 us/op 0.74
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.5869 ms/op 3.9716 ms/op 0.65
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 32.493 ms/op 55.088 ms/op 0.59
BeaconState.hashTreeRoot - 1 balances 159.48 us/op 272.57 us/op 0.59
BeaconState.hashTreeRoot - 32 balances 1.4745 ms/op 2.0705 ms/op 0.71
BeaconState.hashTreeRoot - 512 balances 17.763 ms/op 15.385 ms/op 1.15
BeaconState.hashTreeRoot - 250000 balances 270.79 ms/op 300.66 ms/op 0.90
aggregationBits - 2048 els - zipIndexesInBitList 45.181 us/op 51.637 us/op 0.87
byteArrayEquals 32 82.449 ns/op 129.92 ns/op 0.63
Buffer.compare 32 65.250 ns/op 97.843 ns/op 0.67
byteArrayEquals 1024 2.3385 us/op 2.5461 us/op 0.92
Buffer.compare 1024 78.271 ns/op 107.50 ns/op 0.73
byteArrayEquals 16384 37.541 us/op 43.840 us/op 0.86
Buffer.compare 16384 331.05 ns/op 434.59 ns/op 0.76
byteArrayEquals 123687377 344.98 ms/op 333.89 ms/op 1.03
Buffer.compare 123687377 22.119 ms/op 9.0505 ms/op 2.44
byteArrayEquals 32 - diff last byte 103.89 ns/op 137.83 ns/op 0.75
Buffer.compare 32 - diff last byte 77.455 ns/op 104.17 ns/op 0.74
byteArrayEquals 1024 - diff last byte 3.3135 us/op 3.2307 us/op 1.03
Buffer.compare 1024 - diff last byte 97.026 ns/op 99.016 ns/op 0.98
byteArrayEquals 16384 - diff last byte 52.779 us/op 40.872 us/op 1.29
Buffer.compare 16384 - diff last byte 404.57 ns/op 290.68 ns/op 1.39
byteArrayEquals 123687377 - diff last byte 364.83 ms/op 329.83 ms/op 1.11
Buffer.compare 123687377 - diff last byte 16.943 ms/op 8.8040 ms/op 1.92
byteArrayEquals 32 - random bytes 12.340 ns/op 7.0580 ns/op 1.75
Buffer.compare 32 - random bytes 73.330 ns/op 80.322 ns/op 0.91
byteArrayEquals 1024 - random bytes 7.6000 ns/op 8.0610 ns/op 0.94
Buffer.compare 1024 - random bytes 67.542 ns/op 99.319 ns/op 0.68
byteArrayEquals 16384 - random bytes 7.2600 ns/op 8.6240 ns/op 0.84
Buffer.compare 16384 - random bytes 70.068 ns/op 101.94 ns/op 0.69
byteArrayEquals 123687377 - random bytes 17.760 ns/op 12.120 ns/op 1.47
Buffer.compare 123687377 - random bytes 78.910 ns/op 103.32 ns/op 0.76
regular array get 100000 times 49.319 us/op 72.116 us/op 0.68
wrappedArray get 100000 times 49.757 us/op 57.728 us/op 0.86
arrayWithProxy get 100000 times 16.659 ms/op 18.671 ms/op 0.89
ssz.Root.equals 62.808 ns/op 81.232 ns/op 0.77
byteArrayEquals 58.189 ns/op 89.944 ns/op 0.65
Buffer.compare 14.073 ns/op 18.338 ns/op 0.77
shuffle list - 16384 els 9.5659 ms/op 10.981 ms/op 0.87
shuffle list - 250000 els 139.09 ms/op 178.82 ms/op 0.78
processSlot - 1 slots 22.222 us/op 24.851 us/op 0.89
processSlot - 32 slots 4.0854 ms/op 5.3111 ms/op 0.77
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 69.742 ms/op 73.044 ms/op 0.95
getCommitteeAssignments - req 1 vs - 250000 vc 2.7472 ms/op 4.2270 ms/op 0.65
getCommitteeAssignments - req 100 vs - 250000 vc 4.0404 ms/op 5.2073 ms/op 0.78
getCommitteeAssignments - req 1000 vs - 250000 vc 4.3901 ms/op 6.3540 ms/op 0.69
findModifiedValidators - 10000 modified validators 431.34 ms/op 499.09 ms/op 0.86
findModifiedValidators - 1000 modified validators 286.46 ms/op 269.74 ms/op 1.06
findModifiedValidators - 100 modified validators 255.62 ms/op 231.46 ms/op 1.10
findModifiedValidators - 10 modified validators 264.14 ms/op 252.66 ms/op 1.05
findModifiedValidators - 1 modified validators 302.64 ms/op 278.10 ms/op 1.09
findModifiedValidators - no difference 304.44 ms/op 271.88 ms/op 1.12
compare ViewDUs 5.9438 s/op 5.7213 s/op 1.04
compare each validator Uint8Array 1.9838 s/op 2.1696 s/op 0.91
compare ViewDU to Uint8Array 1.5571 s/op 1.5887 s/op 0.98
migrate state 1000000 validators, 24 modified, 0 new 776.64 ms/op 984.51 ms/op 0.79
migrate state 1000000 validators, 1700 modified, 1000 new 1.0914 s/op 1.4267 s/op 0.76
migrate state 1000000 validators, 3400 modified, 2000 new 1.3159 s/op 1.4867 s/op 0.89
migrate state 1500000 validators, 24 modified, 0 new 848.72 ms/op 924.52 ms/op 0.92
migrate state 1500000 validators, 1700 modified, 1000 new 1.2789 s/op 1.2331 s/op 1.04
migrate state 1500000 validators, 3400 modified, 2000 new 1.4592 s/op 1.6931 s/op 0.86
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.0900 ns/op 5.8800 ns/op 0.87
state getBlockRootAtSlot - 250000 vs - 7PWei 810.58 ns/op 980.59 ns/op 0.83
computeProposers - vc 250000 10.005 ms/op 14.842 ms/op 0.67
computeEpochShuffling - vc 250000 130.00 ms/op 248.15 ms/op 0.52
getNextSyncCommittee - vc 250000 179.25 ms/op 275.81 ms/op 0.65
computeSigningRoot for AttestationData 30.017 us/op 50.665 us/op 0.59
hash AttestationData serialized data then Buffer.toString(base64) 2.3901 us/op 3.6679 us/op 0.65
toHexString serialized data 1.2400 us/op 2.2941 us/op 0.54
Buffer.toString(base64) 281.39 ns/op 414.19 ns/op 0.68

by benchmarkbot/action

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.

Proposer boost reorg
2 participants