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

fix: skip only proofs validation on individually validated gossip blobs #6066

Merged
merged 1 commit into from
Oct 25, 2023

Conversation

g11tech
Copy link
Contributor

@g11tech g11tech commented Oct 25, 2023

an issue uncovered by @marioevz in lodestar hive testing where gossiped blobs were index swapped and lodestar accepted them, this seems to be because lodestar skipped validation thinking gossip validated blobs don't require full validation. but as it turns out they can only skip proof checks because their proofs have already been validated individually

@g11tech g11tech requested a review from a team as a code owner October 25, 2023 18:37
@g11tech g11tech changed the title fix: skip only proofs validation on gossiped blobs fix: skip only proofs validation on individually validated gossiped blobs Oct 25, 2023
@g11tech g11tech changed the title fix: skip only proofs validation on individually validated gossiped blobs fix: skip only proofs validation on individually validated gossip blobs Oct 25, 2023
@g11tech g11tech enabled auto-merge (squash) October 25, 2023 18:42
@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 43984a2 Previous: 6985cd0 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 605.67 us/op 561.69 us/op 1.08
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 89.194 us/op 84.235 us/op 1.06
BLS verify - blst-native 1.3525 ms/op 1.3978 ms/op 0.97
BLS verifyMultipleSignatures 3 - blst-native 2.8483 ms/op 2.7643 ms/op 1.03
BLS verifyMultipleSignatures 8 - blst-native 6.2153 ms/op 6.0428 ms/op 1.03
BLS verifyMultipleSignatures 32 - blst-native 22.791 ms/op 22.213 ms/op 1.03
BLS verifyMultipleSignatures 64 - blst-native 45.018 ms/op 44.888 ms/op 1.00
BLS verifyMultipleSignatures 128 - blst-native 89.019 ms/op 86.540 ms/op 1.03
BLS deserializing 10000 signatures 917.45 ms/op 920.69 ms/op 1.00
BLS deserializing 100000 signatures 9.1666 s/op 9.2101 s/op 1.00
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3629 ms/op 1.3645 ms/op 1.00
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5314 ms/op 1.5519 ms/op 0.99
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.5752 ms/op 2.3481 ms/op 1.10
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.4745 ms/op 3.5129 ms/op 0.99
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.7151 ms/op 5.6987 ms/op 1.00
BLS aggregatePubkeys 32 - blst-native 26.142 us/op 26.047 us/op 1.00
BLS aggregatePubkeys 128 - blst-native 102.14 us/op 102.54 us/op 1.00
getAttestationsForBlock 41.566 ms/op 54.230 ms/op 0.77
isKnown best case - 1 super set check 277.00 ns/op 528.00 ns/op 0.52
isKnown normal case - 2 super set checks 267.00 ns/op 526.00 ns/op 0.51
isKnown worse case - 16 super set checks 263.00 ns/op 401.00 ns/op 0.66
CheckpointStateCache - add get delete 5.0500 us/op 6.0120 us/op 0.84
validate api signedAggregateAndProof - struct 2.8134 ms/op 2.8447 ms/op 0.99
validate gossip signedAggregateAndProof - struct 2.8193 ms/op 2.8586 ms/op 0.99
validate gossip attestation - vc 640000 1.3543 ms/op 1.4087 ms/op 0.96
batch validate gossip attestation - vc 640000 - chunk 32 159.75 us/op 169.75 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 64 138.05 us/op 147.07 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 128 132.76 us/op 142.11 us/op 0.93
batch validate gossip attestation - vc 640000 - chunk 256 128.72 us/op 138.68 us/op 0.93
pickEth1Vote - no votes 1.1339 ms/op 1.2520 ms/op 0.91
pickEth1Vote - max votes 11.090 ms/op 11.159 ms/op 0.99
pickEth1Vote - Eth1Data hashTreeRoot value x2048 15.938 ms/op 17.595 ms/op 0.91
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 25.166 ms/op 26.377 ms/op 0.95
pickEth1Vote - Eth1Data fastSerialize value x2048 567.57 us/op 618.42 us/op 0.92
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.1403 ms/op 5.3232 ms/op 0.97
bytes32 toHexString 470.00 ns/op 610.00 ns/op 0.77
bytes32 Buffer.toString(hex) 283.00 ns/op 308.00 ns/op 0.92
bytes32 Buffer.toString(hex) from Uint8Array 425.00 ns/op 508.00 ns/op 0.84
bytes32 Buffer.toString(hex) + 0x 287.00 ns/op 294.00 ns/op 0.98
Object access 1 prop 0.15000 ns/op 0.16500 ns/op 0.91
Map access 1 prop 0.14700 ns/op 0.14800 ns/op 0.99
Object get x1000 7.6890 ns/op 7.5760 ns/op 1.01
Map get x1000 0.56100 ns/op 0.67500 ns/op 0.83
Object set x1000 53.080 ns/op 55.763 ns/op 0.95
Map set x1000 40.466 ns/op 46.117 ns/op 0.88
Return object 10000 times 0.24110 ns/op 0.24780 ns/op 0.97
Throw Error 10000 times 3.8327 us/op 3.9036 us/op 0.98
fastMsgIdFn sha256 / 200 bytes 3.2550 us/op 3.4170 us/op 0.95
fastMsgIdFn h32 xxhash / 200 bytes 290.00 ns/op 301.00 ns/op 0.96
fastMsgIdFn h64 xxhash / 200 bytes 354.00 ns/op 363.00 ns/op 0.98
fastMsgIdFn sha256 / 1000 bytes 11.486 us/op 11.755 us/op 0.98
fastMsgIdFn h32 xxhash / 1000 bytes 435.00 ns/op 426.00 ns/op 1.02
fastMsgIdFn h64 xxhash / 1000 bytes 424.00 ns/op 438.00 ns/op 0.97
fastMsgIdFn sha256 / 10000 bytes 105.38 us/op 104.96 us/op 1.00
fastMsgIdFn h32 xxhash / 10000 bytes 1.9990 us/op 1.9770 us/op 1.01
fastMsgIdFn h64 xxhash / 10000 bytes 1.3630 us/op 1.3450 us/op 1.01
send data - 1000 256B messages 20.117 ms/op 20.319 ms/op 0.99
send data - 1000 512B messages 27.316 ms/op 27.452 ms/op 1.00
send data - 1000 1024B messages 41.660 ms/op 42.365 ms/op 0.98
send data - 1000 1200B messages 28.660 ms/op 32.876 ms/op 0.87
send data - 1000 2048B messages 33.205 ms/op 32.119 ms/op 1.03
send data - 1000 4096B messages 35.544 ms/op 36.665 ms/op 0.97
send data - 1000 16384B messages 80.367 ms/op 75.521 ms/op 1.06
send data - 1000 65536B messages 299.52 ms/op 318.69 ms/op 0.94
enrSubnets - fastDeserialize 64 bits 1.2310 us/op 1.3580 us/op 0.91
enrSubnets - ssz BitVector 64 bits 411.00 ns/op 460.00 ns/op 0.89
enrSubnets - fastDeserialize 4 bits 176.00 ns/op 200.00 ns/op 0.88
enrSubnets - ssz BitVector 4 bits 416.00 ns/op 476.00 ns/op 0.87
prioritizePeers score -10:0 att 32-0.1 sync 2-0 101.10 us/op 108.35 us/op 0.93
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 125.42 us/op 135.08 us/op 0.93
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 171.77 us/op 180.24 us/op 0.95
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 310.25 us/op 300.70 us/op 1.03
prioritizePeers score 0:0 att 64-1 sync 4-1 406.68 us/op 350.33 us/op 1.16
array of 16000 items push then shift 1.6321 us/op 1.6493 us/op 0.99
LinkedList of 16000 items push then shift 9.2540 ns/op 9.1500 ns/op 1.01
array of 16000 items push then pop 70.427 ns/op 91.462 ns/op 0.77
LinkedList of 16000 items push then pop 8.9220 ns/op 8.9490 ns/op 1.00
array of 24000 items push then shift 2.5681 us/op 2.4570 us/op 1.05
LinkedList of 24000 items push then shift 9.3850 ns/op 9.2210 ns/op 1.02
array of 24000 items push then pop 115.92 ns/op 122.76 ns/op 0.94
LinkedList of 24000 items push then pop 8.9450 ns/op 8.9750 ns/op 1.00
intersect bitArray bitLen 8 6.9860 ns/op 7.1040 ns/op 0.98
intersect array and set length 8 53.750 ns/op 56.307 ns/op 0.95
intersect bitArray bitLen 128 31.917 ns/op 32.640 ns/op 0.98
intersect array and set length 128 744.29 ns/op 779.54 ns/op 0.95
bitArray.getTrueBitIndexes() bitLen 128 1.3550 us/op 1.5280 us/op 0.89
bitArray.getTrueBitIndexes() bitLen 248 2.3170 us/op 2.5870 us/op 0.90
bitArray.getTrueBitIndexes() bitLen 512 4.5910 us/op 4.9200 us/op 0.93
Buffer.concat 32 items 918.00 ns/op 962.00 ns/op 0.95
Uint8Array.set 32 items 2.0030 us/op 1.9880 us/op 1.01
Set add up to 64 items then delete first 4.2564 us/op 4.4182 us/op 0.96
OrderedSet add up to 64 items then delete first 5.3412 us/op 5.5563 us/op 0.96
Set add up to 64 items then delete last 4.5817 us/op 4.7073 us/op 0.97
OrderedSet add up to 64 items then delete last 5.9253 us/op 5.7936 us/op 1.02
Set add up to 64 items then delete middle 4.6138 us/op 4.6449 us/op 0.99
OrderedSet add up to 64 items then delete middle 7.0845 us/op 7.0802 us/op 1.00
Set add up to 128 items then delete first 9.0714 us/op 9.6421 us/op 0.94
OrderedSet add up to 128 items then delete first 11.389 us/op 12.349 us/op 0.92
Set add up to 128 items then delete last 9.1036 us/op 9.2782 us/op 0.98
OrderedSet add up to 128 items then delete last 12.076 us/op 11.899 us/op 1.01
Set add up to 128 items then delete middle 9.0088 us/op 9.4615 us/op 0.95
OrderedSet add up to 128 items then delete middle 16.952 us/op 17.402 us/op 0.97
Set add up to 256 items then delete first 18.471 us/op 20.020 us/op 0.92
OrderedSet add up to 256 items then delete first 23.649 us/op 25.813 us/op 0.92
Set add up to 256 items then delete last 18.137 us/op 18.973 us/op 0.96
OrderedSet add up to 256 items then delete last 24.135 us/op 25.220 us/op 0.96
Set add up to 256 items then delete middle 18.180 us/op 19.357 us/op 0.94
OrderedSet add up to 256 items then delete middle 44.595 us/op 48.089 us/op 0.93
transfer serialized Status (84 B) 1.7710 us/op 1.8550 us/op 0.95
copy serialized Status (84 B) 1.4420 us/op 1.5650 us/op 0.92
transfer serialized SignedVoluntaryExit (112 B) 2.1690 us/op 1.9430 us/op 1.12
copy serialized SignedVoluntaryExit (112 B) 1.5620 us/op 1.6380 us/op 0.95
transfer serialized ProposerSlashing (416 B) 2.0250 us/op 2.2770 us/op 0.89
copy serialized ProposerSlashing (416 B) 1.9340 us/op 2.3440 us/op 0.83
transfer serialized Attestation (485 B) 2.0980 us/op 2.4370 us/op 0.86
copy serialized Attestation (485 B) 1.8850 us/op 2.1480 us/op 0.88
transfer serialized AttesterSlashing (33232 B) 2.1690 us/op 2.0990 us/op 1.03
copy serialized AttesterSlashing (33232 B) 4.6810 us/op 5.7040 us/op 0.82
transfer serialized Small SignedBeaconBlock (128000 B) 2.4170 us/op 2.4490 us/op 0.99
copy serialized Small SignedBeaconBlock (128000 B) 12.673 us/op 16.049 us/op 0.79
transfer serialized Avg SignedBeaconBlock (200000 B) 2.8070 us/op 2.8190 us/op 1.00
copy serialized Avg SignedBeaconBlock (200000 B) 19.562 us/op 22.597 us/op 0.87
transfer serialized BlobsSidecar (524380 B) 2.7730 us/op 2.9840 us/op 0.93
copy serialized BlobsSidecar (524380 B) 86.055 us/op 70.908 us/op 1.21
transfer serialized Big SignedBeaconBlock (1000000 B) 2.8990 us/op 2.9430 us/op 0.99
copy serialized Big SignedBeaconBlock (1000000 B) 157.83 us/op 163.38 us/op 0.97
pass gossip attestations to forkchoice per slot 3.8339 ms/op 3.7528 ms/op 1.02
forkChoice updateHead vc 100000 bc 64 eq 0 753.86 us/op 744.41 us/op 1.01
forkChoice updateHead vc 600000 bc 64 eq 0 4.4320 ms/op 5.0487 ms/op 0.88
forkChoice updateHead vc 1000000 bc 64 eq 0 7.2615 ms/op 7.2390 ms/op 1.00
forkChoice updateHead vc 600000 bc 320 eq 0 4.2892 ms/op 4.3669 ms/op 0.98
forkChoice updateHead vc 600000 bc 1200 eq 0 4.4027 ms/op 4.4148 ms/op 1.00
forkChoice updateHead vc 600000 bc 7200 eq 0 5.3430 ms/op 5.4067 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 1000 11.444 ms/op 11.518 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 10000 12.404 ms/op 12.413 ms/op 1.00
forkChoice updateHead vc 600000 bc 64 eq 300000 16.040 ms/op 16.294 ms/op 0.98
computeDeltas 500000 validators 300 proto nodes 6.3528 ms/op 6.4058 ms/op 0.99
computeDeltas 500000 validators 1200 proto nodes 6.3642 ms/op 6.3867 ms/op 1.00
computeDeltas 500000 validators 7200 proto nodes 6.3913 ms/op 6.4193 ms/op 1.00
computeDeltas 750000 validators 300 proto nodes 9.7195 ms/op 9.8418 ms/op 0.99
computeDeltas 750000 validators 1200 proto nodes 9.5996 ms/op 9.6865 ms/op 0.99
computeDeltas 750000 validators 7200 proto nodes 9.7691 ms/op 9.6063 ms/op 1.02
computeDeltas 1400000 validators 300 proto nodes 18.338 ms/op 18.279 ms/op 1.00
computeDeltas 1400000 validators 1200 proto nodes 18.699 ms/op 18.488 ms/op 1.01
computeDeltas 1400000 validators 7200 proto nodes 18.063 ms/op 18.891 ms/op 0.96
computeDeltas 2100000 validators 300 proto nodes 27.659 ms/op 29.097 ms/op 0.95
computeDeltas 2100000 validators 1200 proto nodes 27.069 ms/op 28.395 ms/op 0.95
computeDeltas 2100000 validators 7200 proto nodes 27.490 ms/op 28.611 ms/op 0.96
computeProposerBoostScoreFromBalances 500000 validators 3.3819 ms/op 3.4206 ms/op 0.99
computeProposerBoostScoreFromBalances 750000 validators 3.4689 ms/op 3.5803 ms/op 0.97
computeProposerBoostScoreFromBalances 1400000 validators 3.4425 ms/op 3.5867 ms/op 0.96
computeProposerBoostScoreFromBalances 2100000 validators 3.4698 ms/op 3.8137 ms/op 0.91
altair processAttestation - 250000 vs - 7PWei normalcase 5.0646 ms/op 3.6455 ms/op 1.39
altair processAttestation - 250000 vs - 7PWei worstcase 5.0101 ms/op 5.0208 ms/op 1.00
altair processAttestation - setStatus - 1/6 committees join 190.11 us/op 187.12 us/op 1.02
altair processAttestation - setStatus - 1/3 committees join 394.48 us/op 415.95 us/op 0.95
altair processAttestation - setStatus - 1/2 committees join 515.86 us/op 518.65 us/op 0.99
altair processAttestation - setStatus - 2/3 committees join 647.12 us/op 637.29 us/op 1.02
altair processAttestation - setStatus - 4/5 committees join 916.88 us/op 983.62 us/op 0.93
altair processAttestation - setStatus - 100% committees join 1.0316 ms/op 1.0515 ms/op 0.98
altair processBlock - 250000 vs - 7PWei normalcase 11.291 ms/op 11.850 ms/op 0.95
altair processBlock - 250000 vs - 7PWei normalcase hashState 38.653 ms/op 42.484 ms/op 0.91
altair processBlock - 250000 vs - 7PWei worstcase 47.287 ms/op 52.584 ms/op 0.90
altair processBlock - 250000 vs - 7PWei worstcase hashState 107.71 ms/op 113.20 ms/op 0.95
phase0 processBlock - 250000 vs - 7PWei normalcase 3.6611 ms/op 4.0947 ms/op 0.89
phase0 processBlock - 250000 vs - 7PWei worstcase 37.026 ms/op 40.788 ms/op 0.91
altair processEth1Data - 250000 vs - 7PWei normalcase 1.9445 ms/op 767.62 us/op 2.53
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 20.890 us/op 23.060 us/op 0.91
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 92.837 us/op 95.573 us/op 0.97
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 29.956 us/op 21.913 us/op 1.37
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 13.024 us/op 17.072 us/op 0.76
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 241.61 us/op 247.25 us/op 0.98
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.7970 ms/op 1.6355 ms/op 1.10
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.1998 ms/op 2.2468 ms/op 0.98
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.1113 ms/op 2.4977 ms/op 0.85
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.2832 ms/op 4.4306 ms/op 0.97
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.3280 ms/op 3.1137 ms/op 1.07
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.8999 ms/op 7.1136 ms/op 0.69
Tree 40 250000 create 483.96 ms/op 440.24 ms/op 1.10
Tree 40 250000 get(125000) 228.32 ns/op 217.08 ns/op 1.05
Tree 40 250000 set(125000) 1.3372 us/op 1.1559 us/op 1.16
Tree 40 250000 toArray() 23.646 ms/op 23.063 ms/op 1.03
Tree 40 250000 iterate all - toArray() + loop 23.189 ms/op 23.052 ms/op 1.01
Tree 40 250000 iterate all - get(i) 74.907 ms/op 79.973 ms/op 0.94
MutableVector 250000 create 16.791 ms/op 17.342 ms/op 0.97
MutableVector 250000 get(125000) 7.0690 ns/op 7.2830 ns/op 0.97
MutableVector 250000 set(125000) 295.94 ns/op 370.45 ns/op 0.80
MutableVector 250000 toArray() 3.5066 ms/op 4.5231 ms/op 0.78
MutableVector 250000 iterate all - toArray() + loop 3.4469 ms/op 4.5357 ms/op 0.76
MutableVector 250000 iterate all - get(i) 1.6128 ms/op 1.6516 ms/op 0.98
Array 250000 create 3.5844 ms/op 4.0883 ms/op 0.88
Array 250000 clone - spread 1.1260 ms/op 1.4278 ms/op 0.79
Array 250000 get(125000) 0.60000 ns/op 0.71700 ns/op 0.84
Array 250000 set(125000) 0.67600 ns/op 0.91600 ns/op 0.74
Array 250000 iterate all - loop 86.877 us/op 100.36 us/op 0.87
effectiveBalanceIncrements clone Uint8Array 300000 42.001 us/op 58.413 us/op 0.72
effectiveBalanceIncrements clone MutableVector 300000 350.00 ns/op 433.00 ns/op 0.81
effectiveBalanceIncrements rw all Uint8Array 300000 187.76 us/op 196.99 us/op 0.95
effectiveBalanceIncrements rw all MutableVector 300000 97.283 ms/op 123.77 ms/op 0.79
phase0 afterProcessEpoch - 250000 vs - 7PWei 129.53 ms/op 137.48 ms/op 0.94
phase0 beforeProcessEpoch - 250000 vs - 7PWei 44.621 ms/op 40.914 ms/op 1.09
altair processEpoch - mainnet_e81889 502.49 ms/op 519.28 ms/op 0.97
mainnet_e81889 - altair beforeProcessEpoch 71.008 ms/op 67.791 ms/op 1.05
mainnet_e81889 - altair processJustificationAndFinalization 21.913 us/op 25.757 us/op 0.85
mainnet_e81889 - altair processInactivityUpdates 6.2178 ms/op 6.9565 ms/op 0.89
mainnet_e81889 - altair processRewardsAndPenalties 58.373 ms/op 77.278 ms/op 0.76
mainnet_e81889 - altair processRegistryUpdates 3.3300 us/op 3.5390 us/op 0.94
mainnet_e81889 - altair processSlashings 596.00 ns/op 585.00 ns/op 1.02
mainnet_e81889 - altair processEth1DataReset 544.00 ns/op 1.1000 us/op 0.49
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.6213 ms/op 1.5603 ms/op 1.04
mainnet_e81889 - altair processSlashingsReset 3.2550 us/op 5.4190 us/op 0.60
mainnet_e81889 - altair processRandaoMixesReset 7.9500 us/op 10.140 us/op 0.78
mainnet_e81889 - altair processHistoricalRootsUpdate 1.0570 us/op 1.0650 us/op 0.99
mainnet_e81889 - altair processParticipationFlagUpdates 2.0240 us/op 3.2160 us/op 0.63
mainnet_e81889 - altair processSyncCommitteeUpdates 815.00 ns/op 854.00 ns/op 0.95
mainnet_e81889 - altair afterProcessEpoch 139.32 ms/op 148.47 ms/op 0.94
capella processEpoch - mainnet_e217614 1.5998 s/op 1.7051 s/op 0.94
mainnet_e217614 - capella beforeProcessEpoch 255.27 ms/op 282.07 ms/op 0.90
mainnet_e217614 - capella processJustificationAndFinalization 15.620 us/op 27.356 us/op 0.57
mainnet_e217614 - capella processInactivityUpdates 16.115 ms/op 20.397 ms/op 0.79
mainnet_e217614 - capella processRewardsAndPenalties 314.54 ms/op 349.50 ms/op 0.90
mainnet_e217614 - capella processRegistryUpdates 31.761 us/op 38.880 us/op 0.82
mainnet_e217614 - capella processSlashings 654.00 ns/op 1.3190 us/op 0.50
mainnet_e217614 - capella processEth1DataReset 751.00 ns/op 1.3050 us/op 0.58
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.2589 ms/op 4.8230 ms/op 0.88
mainnet_e217614 - capella processSlashingsReset 4.3560 us/op 6.7350 us/op 0.65
mainnet_e217614 - capella processRandaoMixesReset 5.3260 us/op 11.898 us/op 0.45
mainnet_e217614 - capella processHistoricalRootsUpdate 920.00 ns/op 1.2010 us/op 0.77
mainnet_e217614 - capella processParticipationFlagUpdates 2.0650 us/op 3.5850 us/op 0.58
mainnet_e217614 - capella afterProcessEpoch 332.03 ms/op 331.31 ms/op 1.00
phase0 processEpoch - mainnet_e58758 531.71 ms/op 513.46 ms/op 1.04
mainnet_e58758 - phase0 beforeProcessEpoch 173.56 ms/op 127.98 ms/op 1.36
mainnet_e58758 - phase0 processJustificationAndFinalization 30.701 us/op 21.763 us/op 1.41
mainnet_e58758 - phase0 processRewardsAndPenalties 72.802 ms/op 64.658 ms/op 1.13
mainnet_e58758 - phase0 processRegistryUpdates 16.486 us/op 16.161 us/op 1.02
mainnet_e58758 - phase0 processSlashings 966.00 ns/op 1.0210 us/op 0.95
mainnet_e58758 - phase0 processEth1DataReset 1.0760 us/op 699.00 ns/op 1.54
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2901 ms/op 1.2894 ms/op 1.00
mainnet_e58758 - phase0 processSlashingsReset 4.7750 us/op 2.4870 us/op 1.92
mainnet_e58758 - phase0 processRandaoMixesReset 6.8100 us/op 4.6000 us/op 1.48
mainnet_e58758 - phase0 processHistoricalRootsUpdate 632.00 ns/op 949.00 ns/op 0.67
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.3260 us/op 5.9120 us/op 0.73
mainnet_e58758 - phase0 afterProcessEpoch 113.25 ms/op 118.38 ms/op 0.96
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4390 ms/op 1.6182 ms/op 0.89
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.0052 ms/op 2.4558 ms/op 0.82
altair processInactivityUpdates - 250000 normalcase 30.334 ms/op 27.914 ms/op 1.09
altair processInactivityUpdates - 250000 worstcase 30.496 ms/op 26.023 ms/op 1.17
phase0 processRegistryUpdates - 250000 normalcase 14.109 us/op 12.623 us/op 1.12
phase0 processRegistryUpdates - 250000 badcase_full_deposits 473.45 us/op 455.17 us/op 1.04
phase0 processRegistryUpdates - 250000 worstcase 0.5 157.40 ms/op 145.14 ms/op 1.08
altair processRewardsAndPenalties - 250000 normalcase 80.640 ms/op 69.013 ms/op 1.17
altair processRewardsAndPenalties - 250000 worstcase 84.344 ms/op 60.073 ms/op 1.40
phase0 getAttestationDeltas - 250000 normalcase 9.5266 ms/op 9.7384 ms/op 0.98
phase0 getAttestationDeltas - 250000 worstcase 9.8853 ms/op 9.2288 ms/op 1.07
phase0 processSlashings - 250000 worstcase 2.6536 ms/op 2.9683 ms/op 0.89
altair processSyncCommitteeUpdates - 250000 165.01 ms/op 179.03 ms/op 0.92
BeaconState.hashTreeRoot - No change 285.00 ns/op 329.00 ns/op 0.87
BeaconState.hashTreeRoot - 1 full validator 148.65 us/op 156.48 us/op 0.95
BeaconState.hashTreeRoot - 32 full validator 1.8004 ms/op 2.1700 ms/op 0.83
BeaconState.hashTreeRoot - 512 full validator 22.576 ms/op 26.838 ms/op 0.84
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 225.49 us/op 444.73 us/op 0.51
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 3.0166 ms/op 3.6883 ms/op 0.82
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 36.830 ms/op 51.582 ms/op 0.71
BeaconState.hashTreeRoot - 1 balances 170.79 us/op 239.88 us/op 0.71
BeaconState.hashTreeRoot - 32 balances 1.3697 ms/op 2.7076 ms/op 0.51
BeaconState.hashTreeRoot - 512 balances 14.661 ms/op 25.090 ms/op 0.58
BeaconState.hashTreeRoot - 250000 balances 254.94 ms/op 397.42 ms/op 0.64
aggregationBits - 2048 els - zipIndexesInBitList 23.408 us/op 45.097 us/op 0.52
regular array get 100000 times 35.935 us/op 46.468 us/op 0.77
wrappedArray get 100000 times 36.249 us/op 50.537 us/op 0.72
arrayWithProxy get 100000 times 16.016 ms/op 16.454 ms/op 0.97
ssz.Root.equals 270.00 ns/op 368.00 ns/op 0.73
byteArrayEquals 265.00 ns/op 390.00 ns/op 0.68
shuffle list - 16384 els 7.2798 ms/op 8.1152 ms/op 0.90
shuffle list - 250000 els 107.67 ms/op 116.82 ms/op 0.92
processSlot - 1 slots 22.714 us/op 40.218 us/op 0.56
processSlot - 32 slots 4.4998 ms/op 7.5788 ms/op 0.59
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 60.825 ms/op 62.584 ms/op 0.97
getCommitteeAssignments - req 1 vs - 250000 vc 2.5780 ms/op 2.8296 ms/op 0.91
getCommitteeAssignments - req 100 vs - 250000 vc 3.7816 ms/op 4.1391 ms/op 0.91
getCommitteeAssignments - req 1000 vs - 250000 vc 4.2636 ms/op 4.4565 ms/op 0.96
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.0700 ns/op 5.5800 ns/op 0.91
state getBlockRootAtSlot - 250000 vs - 7PWei 931.90 ns/op 779.32 ns/op 1.20
computeProposers - vc 250000 9.2249 ms/op 10.833 ms/op 0.85
computeEpochShuffling - vc 250000 108.77 ms/op 117.88 ms/op 0.92
getNextSyncCommittee - vc 250000 165.77 ms/op 173.97 ms/op 0.95
computeSigningRoot for AttestationData 26.662 us/op 28.243 us/op 0.94
hash AttestationData serialized data then Buffer.toString(base64) 2.3706 us/op 2.6385 us/op 0.90
toHexString serialized data 1.2182 us/op 1.2488 us/op 0.98
Buffer.toString(base64) 238.90 ns/op 255.10 ns/op 0.94

by benchmarkbot/action

Copy link

@marioevz marioevz left a comment

Choose a reason for hiding this comment

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

Verified on hive test to be working 👍

Copy link
Contributor

@nazarhussain nazarhussain left a comment

Choose a reason for hiding this comment

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

LGTM. We may add more tests for individual blob verification in future.

@g11tech g11tech merged commit 629a84d into unstable Oct 25, 2023
16 of 17 checks passed
@g11tech g11tech deleted the fix-gossipblobs-val branch October 25, 2023 19:19
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.12.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.

4 participants