Skip to content

Conversation

@nflaig
Copy link
Member

@nflaig nflaig commented Feb 14, 2025

Motivation

This gives us more relevant test coverage

Description

  • schedule electra in config (as fork is determined by slot in data)
  • update test data to use default values of electra containers
  • run against latest beacon api spec release v3.0.0

Part of #6987

@github-actions
Copy link
Contributor

github-actions bot commented Feb 14, 2025

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 550e68d Previous: a25ea77 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 986.47 us/op 933.03 us/op 1.06
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 36.930 us/op 34.747 us/op 1.06
BLS verify - blst 931.01 us/op 835.49 us/op 1.11
BLS verifyMultipleSignatures 3 - blst 1.2179 ms/op 1.1567 ms/op 1.05
BLS verifyMultipleSignatures 8 - blst 1.6735 ms/op 1.6187 ms/op 1.03
BLS verifyMultipleSignatures 32 - blst 4.9974 ms/op 4.7793 ms/op 1.05
BLS verifyMultipleSignatures 64 - blst 9.0783 ms/op 8.8093 ms/op 1.03
BLS verifyMultipleSignatures 128 - blst 17.400 ms/op 17.335 ms/op 1.00
BLS deserializing 10000 signatures 700.32 ms/op 690.46 ms/op 1.01
BLS deserializing 100000 signatures 6.9454 s/op 6.7867 s/op 1.02
BLS verifyMultipleSignatures - same message - 3 - blst 809.21 us/op 892.13 us/op 0.91
BLS verifyMultipleSignatures - same message - 8 - blst 1.0145 ms/op 1.0113 ms/op 1.00
BLS verifyMultipleSignatures - same message - 32 - blst 1.6857 ms/op 1.6716 ms/op 1.01
BLS verifyMultipleSignatures - same message - 64 - blst 2.5693 ms/op 2.5566 ms/op 1.00
BLS verifyMultipleSignatures - same message - 128 - blst 4.3149 ms/op 4.2973 ms/op 1.00
BLS aggregatePubkeys 32 - blst 19.303 us/op 19.308 us/op 1.00
BLS aggregatePubkeys 128 - blst 69.170 us/op 69.038 us/op 1.00
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 48.030 ms/op 45.287 ms/op 1.06
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 46.145 ms/op 43.546 ms/op 1.06
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 33.250 ms/op 34.312 ms/op 0.97
getSlashingsAndExits - default max 73.153 us/op 74.971 us/op 0.98
getSlashingsAndExits - 2k 277.86 us/op 281.01 us/op 0.99
proposeBlockBody type=full, size=empty 4.6623 ms/op 4.5967 ms/op 1.01
isKnown best case - 1 super set check 198.00 ns/op 200.00 ns/op 0.99
isKnown normal case - 2 super set checks 194.00 ns/op 196.00 ns/op 0.99
isKnown worse case - 16 super set checks 195.00 ns/op 200.00 ns/op 0.97
InMemoryCheckpointStateCache - add get delete 2.3580 us/op 2.1860 us/op 1.08
validate api signedAggregateAndProof - struct 1.3467 ms/op 1.3180 ms/op 1.02
validate gossip signedAggregateAndProof - struct 1.3277 ms/op 1.3189 ms/op 1.01
batch validate gossip attestation - vc 640000 - chunk 32 117.38 us/op 116.91 us/op 1.00
batch validate gossip attestation - vc 640000 - chunk 64 103.14 us/op 101.94 us/op 1.01
batch validate gossip attestation - vc 640000 - chunk 128 94.017 us/op 92.293 us/op 1.02
batch validate gossip attestation - vc 640000 - chunk 256 98.711 us/op 95.599 us/op 1.03
pickEth1Vote - no votes 935.24 us/op 919.80 us/op 1.02
pickEth1Vote - max votes 5.5400 ms/op 5.6717 ms/op 0.98
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.535 ms/op 18.106 ms/op 0.80
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 15.703 ms/op 22.152 ms/op 0.71
pickEth1Vote - Eth1Data fastSerialize value x2048 419.42 us/op 400.99 us/op 1.05
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.9848 ms/op 4.0191 ms/op 0.74
bytes32 toHexString 346.00 ns/op 344.00 ns/op 1.01
bytes32 Buffer.toString(hex) 227.00 ns/op 218.00 ns/op 1.04
bytes32 Buffer.toString(hex) from Uint8Array 322.00 ns/op 315.00 ns/op 1.02
bytes32 Buffer.toString(hex) + 0x 229.00 ns/op 227.00 ns/op 1.01
Object access 1 prop 0.11400 ns/op 0.11300 ns/op 1.01
Map access 1 prop 0.12000 ns/op 0.11200 ns/op 1.07
Object get x1000 5.8990 ns/op 5.4360 ns/op 1.09
Map get x1000 6.6450 ns/op 6.0930 ns/op 1.09
Object set x1000 28.196 ns/op 26.164 ns/op 1.08
Map set x1000 19.414 ns/op 18.255 ns/op 1.06
Return object 10000 times 0.28810 ns/op 0.26730 ns/op 1.08
Throw Error 10000 times 4.2954 us/op 4.0226 us/op 1.07
toHex 136.18 ns/op 124.10 ns/op 1.10
Buffer.from 122.50 ns/op 115.24 ns/op 1.06
shared Buffer 77.965 ns/op 71.837 ns/op 1.09
fastMsgIdFn sha256 / 200 bytes 2.1900 us/op 2.0640 us/op 1.06
fastMsgIdFn h32 xxhash / 200 bytes 216.00 ns/op 197.00 ns/op 1.10
fastMsgIdFn h64 xxhash / 200 bytes 287.00 ns/op 262.00 ns/op 1.10
fastMsgIdFn sha256 / 1000 bytes 7.2050 us/op 6.8940 us/op 1.05
fastMsgIdFn h32 xxhash / 1000 bytes 354.00 ns/op 317.00 ns/op 1.12
fastMsgIdFn h64 xxhash / 1000 bytes 365.00 ns/op 321.00 ns/op 1.14
fastMsgIdFn sha256 / 10000 bytes 64.278 us/op 61.031 us/op 1.05
fastMsgIdFn h32 xxhash / 10000 bytes 1.8480 us/op 1.8000 us/op 1.03
fastMsgIdFn h64 xxhash / 10000 bytes 1.2440 us/op 1.2350 us/op 1.01
send data - 1000 256B messages 13.297 ms/op 12.803 ms/op 1.04
send data - 1000 512B messages 17.145 ms/op 15.261 ms/op 1.12
send data - 1000 1024B messages 25.643 ms/op 21.994 ms/op 1.17
send data - 1000 1200B messages 20.563 ms/op 19.952 ms/op 1.03
send data - 1000 2048B messages 24.447 ms/op 21.143 ms/op 1.16
send data - 1000 4096B messages 27.523 ms/op 24.735 ms/op 1.11
send data - 1000 16384B messages 51.541 ms/op 74.224 ms/op 0.69
send data - 1000 65536B messages 210.54 ms/op 205.50 ms/op 1.02
enrSubnets - fastDeserialize 64 bits 893.00 ns/op 1.6730 us/op 0.53
enrSubnets - ssz BitVector 64 bits 350.00 ns/op 303.00 ns/op 1.16
enrSubnets - fastDeserialize 4 bits 149.00 ns/op 118.00 ns/op 1.26
enrSubnets - ssz BitVector 4 bits 352.00 ns/op 302.00 ns/op 1.17
prioritizePeers score -10:0 att 32-0.1 sync 2-0 117.50 us/op 113.66 us/op 1.03
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 139.27 us/op 130.46 us/op 1.07
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 200.19 us/op 191.02 us/op 1.05
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 375.53 us/op 361.77 us/op 1.04
prioritizePeers score 0:0 att 64-1 sync 4-1 461.33 us/op 440.79 us/op 1.05
array of 16000 items push then shift 1.6430 us/op 1.5342 us/op 1.07
LinkedList of 16000 items push then shift 7.1130 ns/op 6.7330 ns/op 1.06
array of 16000 items push then pop 77.781 ns/op 71.326 ns/op 1.09
LinkedList of 16000 items push then pop 6.8680 ns/op 6.5300 ns/op 1.05
array of 24000 items push then shift 2.3555 us/op 2.2609 us/op 1.04
LinkedList of 24000 items push then shift 6.9470 ns/op 6.6000 ns/op 1.05
array of 24000 items push then pop 99.652 ns/op 96.225 ns/op 1.04
LinkedList of 24000 items push then pop 6.7620 ns/op 6.4830 ns/op 1.04
intersect bitArray bitLen 8 6.2900 ns/op 6.1290 ns/op 1.03
intersect array and set length 8 37.200 ns/op 36.398 ns/op 1.02
intersect bitArray bitLen 128 29.284 ns/op 28.176 ns/op 1.04
intersect array and set length 128 610.17 ns/op 586.23 ns/op 1.04
bitArray.getTrueBitIndexes() bitLen 128 1.0060 us/op 958.00 ns/op 1.05
bitArray.getTrueBitIndexes() bitLen 248 1.7540 us/op 1.6890 us/op 1.04
bitArray.getTrueBitIndexes() bitLen 512 3.5440 us/op 3.4970 us/op 1.01
Buffer.concat 32 items 609.00 ns/op 564.00 ns/op 1.08
Uint8Array.set 32 items 1.9960 us/op 1.7430 us/op 1.15
Buffer.copy 3.1200 us/op 1.9570 us/op 1.59
Uint8Array.set - with subarray 2.2990 us/op 1.6110 us/op 1.43
Uint8Array.set - without subarray 1.3970 us/op 994.00 ns/op 1.41
getUint32 - dataview 218.00 ns/op 184.00 ns/op 1.18
getUint32 - manual 137.00 ns/op 110.00 ns/op 1.25
Set add up to 64 items then delete first 1.9880 us/op 2.1152 us/op 0.94
OrderedSet add up to 64 items then delete first 3.1680 us/op 3.1288 us/op 1.01
Set add up to 64 items then delete last 2.3004 us/op 2.3885 us/op 0.96
OrderedSet add up to 64 items then delete last 3.7328 us/op 3.5115 us/op 1.06
Set add up to 64 items then delete middle 2.4871 us/op 2.3505 us/op 1.06
OrderedSet add up to 64 items then delete middle 5.1688 us/op 4.9953 us/op 1.03
Set add up to 128 items then delete first 4.8660 us/op 4.7941 us/op 1.02
OrderedSet add up to 128 items then delete first 7.2074 us/op 7.6348 us/op 0.94
Set add up to 128 items then delete last 4.9309 us/op 4.8067 us/op 1.03
OrderedSet add up to 128 items then delete last 7.4802 us/op 7.0201 us/op 1.07
Set add up to 128 items then delete middle 4.8197 us/op 4.7284 us/op 1.02
OrderedSet add up to 128 items then delete middle 13.444 us/op 13.414 us/op 1.00
Set add up to 256 items then delete first 9.8602 us/op 9.5220 us/op 1.04
OrderedSet add up to 256 items then delete first 14.681 us/op 14.981 us/op 0.98
Set add up to 256 items then delete last 9.8873 us/op 9.8720 us/op 1.00
OrderedSet add up to 256 items then delete last 15.380 us/op 13.700 us/op 1.12
Set add up to 256 items then delete middle 10.263 us/op 9.0776 us/op 1.13
OrderedSet add up to 256 items then delete middle 42.843 us/op 39.940 us/op 1.07
transfer serialized Status (84 B) 2.3170 us/op 2.1570 us/op 1.07
copy serialized Status (84 B) 1.3970 us/op 1.2660 us/op 1.10
transfer serialized SignedVoluntaryExit (112 B) 2.5580 us/op 2.1860 us/op 1.17
copy serialized SignedVoluntaryExit (112 B) 1.6740 us/op 1.3290 us/op 1.26
transfer serialized ProposerSlashing (416 B) 2.4240 us/op 3.4810 us/op 0.70
copy serialized ProposerSlashing (416 B) 1.9190 us/op 2.0210 us/op 0.95
transfer serialized Attestation (485 B) 2.5110 us/op 2.3320 us/op 1.08
copy serialized Attestation (485 B) 1.9890 us/op 1.4210 us/op 1.40
transfer serialized AttesterSlashing (33232 B) 2.8980 us/op 2.6870 us/op 1.08
copy serialized AttesterSlashing (33232 B) 3.8630 us/op 3.7410 us/op 1.03
transfer serialized Small SignedBeaconBlock (128000 B) 3.4420 us/op 3.0600 us/op 1.12
copy serialized Small SignedBeaconBlock (128000 B) 9.7410 us/op 9.4900 us/op 1.03
transfer serialized Avg SignedBeaconBlock (200000 B) 3.9380 us/op 3.5770 us/op 1.10
copy serialized Avg SignedBeaconBlock (200000 B) 12.990 us/op 12.498 us/op 1.04
transfer serialized BlobsSidecar (524380 B) 3.8630 us/op 3.9300 us/op 0.98
copy serialized BlobsSidecar (524380 B) 58.066 us/op 69.816 us/op 0.83
transfer serialized Big SignedBeaconBlock (1000000 B) 3.9070 us/op 4.3400 us/op 0.90
copy serialized Big SignedBeaconBlock (1000000 B) 252.26 us/op 109.54 us/op 2.30
pass gossip attestations to forkchoice per slot 2.7453 ms/op 2.6257 ms/op 1.05
forkChoice updateHead vc 100000 bc 64 eq 0 470.67 us/op 429.28 us/op 1.10
forkChoice updateHead vc 600000 bc 64 eq 0 2.8327 ms/op 2.7654 ms/op 1.02
forkChoice updateHead vc 1000000 bc 64 eq 0 4.7572 ms/op 4.5420 ms/op 1.05
forkChoice updateHead vc 600000 bc 320 eq 0 2.7888 ms/op 2.6517 ms/op 1.05
forkChoice updateHead vc 600000 bc 1200 eq 0 2.8271 ms/op 2.6898 ms/op 1.05
forkChoice updateHead vc 600000 bc 7200 eq 0 3.1080 ms/op 2.9975 ms/op 1.04
forkChoice updateHead vc 600000 bc 64 eq 1000 10.565 ms/op 10.114 ms/op 1.04
forkChoice updateHead vc 600000 bc 64 eq 10000 10.539 ms/op 10.058 ms/op 1.05
forkChoice updateHead vc 600000 bc 64 eq 300000 13.914 ms/op 13.322 ms/op 1.04
computeDeltas 500000 validators 300 proto nodes 3.9581 ms/op 3.7647 ms/op 1.05
computeDeltas 500000 validators 1200 proto nodes 4.0059 ms/op 3.7847 ms/op 1.06
computeDeltas 500000 validators 7200 proto nodes 4.0227 ms/op 3.7794 ms/op 1.06
computeDeltas 750000 validators 300 proto nodes 5.8729 ms/op 5.5783 ms/op 1.05
computeDeltas 750000 validators 1200 proto nodes 5.7462 ms/op 5.6610 ms/op 1.02
computeDeltas 750000 validators 7200 proto nodes 5.6752 ms/op 5.6830 ms/op 1.00
computeDeltas 1400000 validators 300 proto nodes 10.867 ms/op 10.501 ms/op 1.03
computeDeltas 1400000 validators 1200 proto nodes 10.948 ms/op 10.472 ms/op 1.05
computeDeltas 1400000 validators 7200 proto nodes 10.774 ms/op 10.474 ms/op 1.03
computeDeltas 2100000 validators 300 proto nodes 16.015 ms/op 15.713 ms/op 1.02
computeDeltas 2100000 validators 1200 proto nodes 16.031 ms/op 15.921 ms/op 1.01
computeDeltas 2100000 validators 7200 proto nodes 16.047 ms/op 15.801 ms/op 1.02
altair processAttestation - 250000 vs - 7PWei normalcase 1.9787 ms/op 2.0502 ms/op 0.97
altair processAttestation - 250000 vs - 7PWei worstcase 2.9322 ms/op 2.9770 ms/op 0.98
altair processAttestation - setStatus - 1/6 committees join 120.76 us/op 122.69 us/op 0.98
altair processAttestation - setStatus - 1/3 committees join 235.86 us/op 234.09 us/op 1.01
altair processAttestation - setStatus - 1/2 committees join 331.25 us/op 329.87 us/op 1.00
altair processAttestation - setStatus - 2/3 committees join 426.21 us/op 419.48 us/op 1.02
altair processAttestation - setStatus - 4/5 committees join 593.78 us/op 583.81 us/op 1.02
altair processAttestation - setStatus - 100% committees join 702.27 us/op 682.51 us/op 1.03
altair processBlock - 250000 vs - 7PWei normalcase 4.2008 ms/op 4.2563 ms/op 0.99
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.790 ms/op 36.920 ms/op 0.81
altair processBlock - 250000 vs - 7PWei worstcase 34.182 ms/op 35.212 ms/op 0.97
altair processBlock - 250000 vs - 7PWei worstcase hashState 85.123 ms/op 90.525 ms/op 0.94
phase0 processBlock - 250000 vs - 7PWei normalcase 1.5606 ms/op 1.6322 ms/op 0.96
phase0 processBlock - 250000 vs - 7PWei worstcase 21.649 ms/op 21.018 ms/op 1.03
altair processEth1Data - 250000 vs - 7PWei normalcase 345.23 us/op 318.88 us/op 1.08
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 4.5770 us/op 4.4830 us/op 1.02
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 25.473 us/op 26.795 us/op 0.95
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 7.3360 us/op 7.0800 us/op 1.04
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.0980 us/op 4.5230 us/op 1.13
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 106.84 us/op 98.738 us/op 1.08
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 986.49 us/op 941.54 us/op 1.05
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.3924 ms/op 1.3417 ms/op 1.04
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.4091 ms/op 1.2845 ms/op 1.10
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.3560 ms/op 3.1711 ms/op 1.06
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.4124 ms/op 1.3353 ms/op 1.06
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.4533 ms/op 3.1892 ms/op 1.08
Tree 40 250000 create 400.36 ms/op 419.83 ms/op 0.95
Tree 40 250000 get(125000) 142.69 ns/op 142.75 ns/op 1.00
Tree 40 250000 set(125000) 1.4081 us/op 1.3691 us/op 1.03
Tree 40 250000 toArray() 15.923 ms/op 15.283 ms/op 1.04
Tree 40 250000 iterate all - toArray() + loop 15.947 ms/op 16.466 ms/op 0.97
Tree 40 250000 iterate all - get(i) 52.463 ms/op 51.046 ms/op 1.03
Array 250000 create 2.3683 ms/op 2.3576 ms/op 1.00
Array 250000 clone - spread 797.99 us/op 790.44 us/op 1.01
Array 250000 get(125000) 0.40600 ns/op 0.39600 ns/op 1.03
Array 250000 set(125000) 0.42700 ns/op 0.40600 ns/op 1.05
Array 250000 iterate all - loop 100.17 us/op 77.175 us/op 1.30
phase0 afterProcessEpoch - 250000 vs - 7PWei 48.499 ms/op 45.106 ms/op 1.08
Array.fill - length 1000000 3.4329 ms/op 3.2494 ms/op 1.06
Array push - length 1000000 12.156 ms/op 12.401 ms/op 0.98
Array.get 0.26634 ns/op 0.26809 ns/op 0.99
Uint8Array.get 0.43088 ns/op 0.43030 ns/op 1.00
phase0 beforeProcessEpoch - 250000 vs - 7PWei 16.360 ms/op 15.487 ms/op 1.06
altair processEpoch - mainnet_e81889 283.54 ms/op 274.36 ms/op 1.03
mainnet_e81889 - altair beforeProcessEpoch 18.936 ms/op 17.177 ms/op 1.10
mainnet_e81889 - altair processJustificationAndFinalization 5.4150 us/op 5.2970 us/op 1.02
mainnet_e81889 - altair processInactivityUpdates 4.0127 ms/op 3.9610 ms/op 1.01
mainnet_e81889 - altair processRewardsAndPenalties 39.549 ms/op 38.353 ms/op 1.03
mainnet_e81889 - altair processRegistryUpdates 677.00 ns/op 697.00 ns/op 0.97
mainnet_e81889 - altair processSlashings 178.00 ns/op 171.00 ns/op 1.04
mainnet_e81889 - altair processEth1DataReset 173.00 ns/op 168.00 ns/op 1.03
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2240 ms/op 1.2214 ms/op 1.00
mainnet_e81889 - altair processSlashingsReset 889.00 ns/op 858.00 ns/op 1.04
mainnet_e81889 - altair processRandaoMixesReset 1.1200 us/op 1.1410 us/op 0.98
mainnet_e81889 - altair processHistoricalRootsUpdate 171.00 ns/op 173.00 ns/op 0.99
mainnet_e81889 - altair processParticipationFlagUpdates 504.00 ns/op 495.00 ns/op 1.02
mainnet_e81889 - altair processSyncCommitteeUpdates 131.00 ns/op 132.00 ns/op 0.99
mainnet_e81889 - altair afterProcessEpoch 49.959 ms/op 47.095 ms/op 1.06
capella processEpoch - mainnet_e217614 934.63 ms/op 903.25 ms/op 1.03
mainnet_e217614 - capella beforeProcessEpoch 61.881 ms/op 59.125 ms/op 1.05
mainnet_e217614 - capella processJustificationAndFinalization 5.2950 us/op 5.3070 us/op 1.00
mainnet_e217614 - capella processInactivityUpdates 16.271 ms/op 15.454 ms/op 1.05
mainnet_e217614 - capella processRewardsAndPenalties 179.23 ms/op 173.09 ms/op 1.04
mainnet_e217614 - capella processRegistryUpdates 6.3460 us/op 6.1750 us/op 1.03
mainnet_e217614 - capella processSlashings 175.00 ns/op 170.00 ns/op 1.03
mainnet_e217614 - capella processEth1DataReset 173.00 ns/op 168.00 ns/op 1.03
mainnet_e217614 - capella processEffectiveBalanceUpdates 10.692 ms/op 13.965 ms/op 0.77
mainnet_e217614 - capella processSlashingsReset 874.00 ns/op 835.00 ns/op 1.05
mainnet_e217614 - capella processRandaoMixesReset 1.1270 us/op 1.1460 us/op 0.98
mainnet_e217614 - capella processHistoricalRootsUpdate 177.00 ns/op 172.00 ns/op 1.03
mainnet_e217614 - capella processParticipationFlagUpdates 508.00 ns/op 504.00 ns/op 1.01
mainnet_e217614 - capella afterProcessEpoch 126.08 ms/op 117.79 ms/op 1.07
phase0 processEpoch - mainnet_e58758 290.06 ms/op 285.33 ms/op 1.02
mainnet_e58758 - phase0 beforeProcessEpoch 71.795 ms/op 74.140 ms/op 0.97
mainnet_e58758 - phase0 processJustificationAndFinalization 5.4890 us/op 5.4720 us/op 1.00
mainnet_e58758 - phase0 processRewardsAndPenalties 33.826 ms/op 35.972 ms/op 0.94
mainnet_e58758 - phase0 processRegistryUpdates 5.5680 us/op 2.9950 us/op 1.86
mainnet_e58758 - phase0 processSlashings 180.00 ns/op 168.00 ns/op 1.07
mainnet_e58758 - phase0 processEth1DataReset 172.00 ns/op 170.00 ns/op 1.01
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.0264 ms/op 980.43 us/op 1.05
mainnet_e58758 - phase0 processSlashingsReset 935.00 ns/op 854.00 ns/op 1.09
mainnet_e58758 - phase0 processRandaoMixesReset 1.1650 us/op 1.1530 us/op 1.01
mainnet_e58758 - phase0 processHistoricalRootsUpdate 177.00 ns/op 171.00 ns/op 1.04
mainnet_e58758 - phase0 processParticipationRecordUpdates 881.00 ns/op 852.00 ns/op 1.03
mainnet_e58758 - phase0 afterProcessEpoch 42.157 ms/op 40.040 ms/op 1.05
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3610 ms/op 1.3118 ms/op 1.04
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.1687 ms/op 1.9836 ms/op 1.09
altair processInactivityUpdates - 250000 normalcase 16.589 ms/op 16.168 ms/op 1.03
altair processInactivityUpdates - 250000 worstcase 17.757 ms/op 16.120 ms/op 1.10
phase0 processRegistryUpdates - 250000 normalcase 5.3180 us/op 6.5290 us/op 0.81
phase0 processRegistryUpdates - 250000 badcase_full_deposits 272.70 us/op 229.19 us/op 1.19
phase0 processRegistryUpdates - 250000 worstcase 0.5 98.919 ms/op 109.31 ms/op 0.90
altair processRewardsAndPenalties - 250000 normalcase 43.647 ms/op 42.434 ms/op 1.03
altair processRewardsAndPenalties - 250000 worstcase 32.595 ms/op 34.066 ms/op 0.96
phase0 getAttestationDeltas - 250000 normalcase 8.2700 ms/op 5.8578 ms/op 1.41
phase0 getAttestationDeltas - 250000 worstcase 13.396 ms/op 6.6448 ms/op 2.02
phase0 processSlashings - 250000 worstcase 86.109 us/op 83.265 us/op 1.03
altair processSyncCommitteeUpdates - 250000 119.14 ms/op 120.27 ms/op 0.99
BeaconState.hashTreeRoot - No change 205.00 ns/op 204.00 ns/op 1.00
BeaconState.hashTreeRoot - 1 full validator 72.813 us/op 81.680 us/op 0.89
BeaconState.hashTreeRoot - 32 full validator 771.08 us/op 976.72 us/op 0.79
BeaconState.hashTreeRoot - 512 full validator 8.6316 ms/op 11.021 ms/op 0.78
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 88.778 us/op 98.870 us/op 0.90
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.2326 ms/op 2.2343 ms/op 0.55
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 19.274 ms/op 21.447 ms/op 0.90
BeaconState.hashTreeRoot - 1 balances 71.152 us/op 72.732 us/op 0.98
BeaconState.hashTreeRoot - 32 balances 663.11 us/op 827.62 us/op 0.80
BeaconState.hashTreeRoot - 512 balances 6.7515 ms/op 8.2272 ms/op 0.82
BeaconState.hashTreeRoot - 250000 balances 150.23 ms/op 185.16 ms/op 0.81
aggregationBits - 2048 els - zipIndexesInBitList 22.218 us/op 20.477 us/op 1.09
byteArrayEquals 32 54.541 ns/op 61.083 ns/op 0.89
Buffer.compare 32 17.432 ns/op 16.511 ns/op 1.06
byteArrayEquals 1024 1.6152 us/op 1.5153 us/op 1.07
Buffer.compare 1024 25.053 ns/op 23.686 ns/op 1.06
byteArrayEquals 16384 25.728 us/op 24.220 us/op 1.06
Buffer.compare 16384 210.20 ns/op 193.58 ns/op 1.09
byteArrayEquals 123687377 190.76 ms/op 183.24 ms/op 1.04
Buffer.compare 123687377 6.5191 ms/op 6.4495 ms/op 1.01
byteArrayEquals 32 - diff last byte 52.586 ns/op 52.440 ns/op 1.00
Buffer.compare 32 - diff last byte 17.221 ns/op 17.007 ns/op 1.01
byteArrayEquals 1024 - diff last byte 1.5930 us/op 1.5996 us/op 1.00
Buffer.compare 1024 - diff last byte 25.047 ns/op 24.976 ns/op 1.00
byteArrayEquals 16384 - diff last byte 25.628 us/op 25.293 us/op 1.01
Buffer.compare 16384 - diff last byte 181.03 ns/op 187.46 ns/op 0.97
byteArrayEquals 123687377 - diff last byte 190.41 ms/op 189.07 ms/op 1.01
Buffer.compare 123687377 - diff last byte 7.5431 ms/op 6.7773 ms/op 1.11
byteArrayEquals 32 - random bytes 5.1350 ns/op 5.0250 ns/op 1.02
Buffer.compare 32 - random bytes 17.055 ns/op 16.812 ns/op 1.01
byteArrayEquals 1024 - random bytes 5.1400 ns/op 5.0100 ns/op 1.03
Buffer.compare 1024 - random bytes 17.401 ns/op 16.713 ns/op 1.04
byteArrayEquals 16384 - random bytes 5.2100 ns/op 5.0560 ns/op 1.03
Buffer.compare 16384 - random bytes 17.404 ns/op 16.737 ns/op 1.04
byteArrayEquals 123687377 - random bytes 6.5300 ns/op 6.2900 ns/op 1.04
Buffer.compare 123687377 - random bytes 18.140 ns/op 18.200 ns/op 1.00
regular array get 100000 times 41.481 us/op 43.431 us/op 0.96
wrappedArray get 100000 times 33.317 us/op 32.528 us/op 1.02
arrayWithProxy get 100000 times 13.149 ms/op 14.008 ms/op 0.94
ssz.Root.equals 46.762 ns/op 45.652 ns/op 1.02
byteArrayEquals 45.895 ns/op 44.781 ns/op 1.02
Buffer.compare 10.474 ns/op 10.236 ns/op 1.02
processSlot - 1 slots 10.578 us/op 10.246 us/op 1.03
processSlot - 32 slots 2.5578 ms/op 2.2142 ms/op 1.16
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 54.086 ms/op 51.062 ms/op 1.06
getCommitteeAssignments - req 1 vs - 250000 vc 2.1297 ms/op 2.0328 ms/op 1.05
getCommitteeAssignments - req 100 vs - 250000 vc 4.1615 ms/op 3.9307 ms/op 1.06
getCommitteeAssignments - req 1000 vs - 250000 vc 4.4275 ms/op 4.2010 ms/op 1.05
findModifiedValidators - 10000 modified validators 757.54 ms/op 746.89 ms/op 1.01
findModifiedValidators - 1000 modified validators 697.43 ms/op 686.47 ms/op 1.02
findModifiedValidators - 100 modified validators 240.33 ms/op 283.88 ms/op 0.85
findModifiedValidators - 10 modified validators 239.64 ms/op 215.46 ms/op 1.11
findModifiedValidators - 1 modified validators 144.04 ms/op 142.91 ms/op 1.01
findModifiedValidators - no difference 203.66 ms/op 143.37 ms/op 1.42
compare ViewDUs 6.4113 s/op 5.8657 s/op 1.09
compare each validator Uint8Array 1.2702 s/op 1.6456 s/op 0.77
compare ViewDU to Uint8Array 986.23 ms/op 976.28 ms/op 1.01
migrate state 1000000 validators, 24 modified, 0 new 828.25 ms/op 846.08 ms/op 0.98
migrate state 1000000 validators, 1700 modified, 1000 new 1.1304 s/op 1.1242 s/op 1.01
migrate state 1000000 validators, 3400 modified, 2000 new 1.1966 s/op 1.1703 s/op 1.02
migrate state 1500000 validators, 24 modified, 0 new 778.09 ms/op 870.53 ms/op 0.89
migrate state 1500000 validators, 1700 modified, 1000 new 1.1184 s/op 999.79 ms/op 1.12
migrate state 1500000 validators, 3400 modified, 2000 new 1.1598 s/op 1.3190 s/op 0.88
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.2200 ns/op 4.1900 ns/op 1.01
state getBlockRootAtSlot - 250000 vs - 7PWei 575.09 ns/op 471.58 ns/op 1.22
naive computeProposerIndex 100000 validators 50.662 ms/op 50.887 ms/op 1.00
computeProposerIndex 100000 validators 9.3300 ms/op 7.9855 ms/op 1.17
naiveGetNextSyncCommitteeIndices 1000 validators 8.3102 s/op 7.3477 s/op 1.13
getNextSyncCommitteeIndices 1000 validators 263.65 ms/op 232.21 ms/op 1.14
naiveGetNextSyncCommitteeIndices 10000 validators 7.8147 s/op 7.2344 s/op 1.08
getNextSyncCommitteeIndices 10000 validators 252.82 ms/op 230.94 ms/op 1.09
naiveGetNextSyncCommitteeIndices 100000 validators 8.6618 s/op 6.7864 s/op 1.28
getNextSyncCommitteeIndices 100000 validators 259.66 ms/op 222.39 ms/op 1.17
naive computeShuffledIndex 100000 validators 27.599 s/op 24.039 s/op 1.15
cached computeShuffledIndex 100000 validators 594.33 ms/op 522.05 ms/op 1.14
naive computeShuffledIndex 2000000 validators 508.33 s/op 486.99 s/op 1.04
cached computeShuffledIndex 2000000 validators 30.969 s/op 33.512 s/op 0.92
computeProposers - vc 250000 9.1323 ms/op 9.3335 ms/op 0.98
computeEpochShuffling - vc 250000 42.133 ms/op 40.504 ms/op 1.04
getNextSyncCommittee - vc 250000 138.02 ms/op 143.51 ms/op 0.96
computeSigningRoot for AttestationData 18.530 us/op 24.808 us/op 0.75
hash AttestationData serialized data then Buffer.toString(base64) 1.5506 us/op 1.5066 us/op 1.03
toHexString serialized data 1.0876 us/op 1.0118 us/op 1.07
Buffer.toString(base64) 162.68 ns/op 165.54 ns/op 0.98
nodejs block root to RootHex using toHex 131.66 ns/op 126.32 ns/op 1.04
nodejs block root to RootHex using toRootHex 83.501 ns/op 77.581 ns/op 1.08
browser block root to RootHex using the deprecated toHexString 207.67 ns/op 199.73 ns/op 1.04
browser block root to RootHex using toHex 170.72 ns/op 162.91 ns/op 1.05
browser block root to RootHex using toRootHex 159.00 ns/op 156.18 ns/op 1.02

by benchmarkbot/action

@nflaig nflaig marked this pull request as ready for review February 17, 2025 10:36
@nflaig nflaig requested a review from a team as a code owner February 17, 2025 10:36
@nflaig
Copy link
Member Author

nflaig commented Feb 17, 2025

Ready for review but need to merge #7472 to pass spec tests

@nflaig nflaig changed the title chore: activate electra fork in beacon api spec tests chore: activate electra fork and run against latest beacon api spec Feb 17, 2025
@codecov
Copy link

codecov bot commented Feb 18, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 50.46%. Comparing base (a25ea77) to head (453c741).
Report is 1 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #7470      +/-   ##
============================================
- Coverage     50.48%   50.46%   -0.02%     
============================================
  Files           602      602              
  Lines         40606    40606              
  Branches       2230     2225       -5     
============================================
- Hits          20499    20493       -6     
- Misses        20067    20073       +6     
  Partials         40       40              

@nflaig nflaig mentioned this pull request Feb 18, 2025
21 tasks
@wemeetagain wemeetagain merged commit 32186d0 into unstable Feb 18, 2025
21 checks passed
@wemeetagain wemeetagain deleted the nflaig/beacon-api-electra branch February 18, 2025 14:34
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.28.0 🎉

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