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 blob sidecar index check #7313

Merged
merged 1 commit into from
Dec 19, 2024
Merged

Conversation

ensi321
Copy link
Contributor

@ensi321 ensi321 commented Dec 18, 2024

@ensi321 ensi321 requested a review from a team as a code owner December 18, 2024 22:13
Copy link

codecov bot commented Dec 18, 2024

Codecov Report

Attention: Patch coverage is 12.50000% with 7 lines in your changes missing coverage. Please review.

Project coverage is 48.75%. Comparing base (7cd296b) to head (0e56fc8).
Report is 1 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #7313      +/-   ##
============================================
- Coverage     48.75%   48.75%   -0.01%     
============================================
  Files           601      601              
  Lines         40214    40222       +8     
  Branches       2061     2061              
============================================
+ Hits          19608    19609       +1     
- Misses        20568    20575       +7     
  Partials         38       38              

Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: c34b9d6 Previous: 7cd296b Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.1514 ms/op 2.1593 ms/op 1.00
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 67.141 us/op 51.437 us/op 1.31
BLS verify - blst 869.82 us/op 868.65 us/op 1.00
BLS verifyMultipleSignatures 3 - blst 1.3993 ms/op 1.2328 ms/op 1.14
BLS verifyMultipleSignatures 8 - blst 2.0715 ms/op 1.7059 ms/op 1.21
BLS verifyMultipleSignatures 32 - blst 4.7695 ms/op 5.0259 ms/op 0.95
BLS verifyMultipleSignatures 64 - blst 8.2468 ms/op 9.2350 ms/op 0.89
BLS verifyMultipleSignatures 128 - blst 15.549 ms/op 17.540 ms/op 0.89
BLS deserializing 10000 signatures 638.67 ms/op 701.23 ms/op 0.91
BLS deserializing 100000 signatures 6.4504 s/op 6.8895 s/op 0.94
BLS verifyMultipleSignatures - same message - 3 - blst 1.0224 ms/op 839.24 us/op 1.22
BLS verifyMultipleSignatures - same message - 8 - blst 1.0592 ms/op 978.62 us/op 1.08
BLS verifyMultipleSignatures - same message - 32 - blst 1.7820 ms/op 1.6613 ms/op 1.07
BLS verifyMultipleSignatures - same message - 64 - blst 2.5678 ms/op 2.5770 ms/op 1.00
BLS verifyMultipleSignatures - same message - 128 - blst 4.1795 ms/op 4.3364 ms/op 0.96
BLS aggregatePubkeys 32 - blst 18.160 us/op 19.713 us/op 0.92
BLS aggregatePubkeys 128 - blst 64.171 us/op 70.356 us/op 0.91
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 93.972 ms/op 50.963 ms/op 1.84
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 66.507 ms/op 46.474 ms/op 1.43
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 42.396 ms/op 43.698 ms/op 0.97
getSlashingsAndExits - default max 85.638 us/op 95.463 us/op 0.90
getSlashingsAndExits - 2k 271.71 us/op 260.06 us/op 1.04
proposeBlockBody type=full, size=empty 5.4612 ms/op 5.9088 ms/op 0.92
isKnown best case - 1 super set check 620.00 ns/op 276.00 ns/op 2.25
isKnown normal case - 2 super set checks 512.00 ns/op 265.00 ns/op 1.93
isKnown worse case - 16 super set checks 493.00 ns/op 267.00 ns/op 1.85
InMemoryCheckpointStateCache - add get delete 2.9060 us/op 2.8490 us/op 1.02
validate api signedAggregateAndProof - struct 1.6429 ms/op 1.3695 ms/op 1.20
validate gossip signedAggregateAndProof - struct 1.5972 ms/op 1.3907 ms/op 1.15
batch validate gossip attestation - vc 640000 - chunk 32 122.62 us/op 124.18 us/op 0.99
batch validate gossip attestation - vc 640000 - chunk 64 108.73 us/op 108.14 us/op 1.01
batch validate gossip attestation - vc 640000 - chunk 128 100.81 us/op 105.10 us/op 0.96
batch validate gossip attestation - vc 640000 - chunk 256 100.97 us/op 103.07 us/op 0.98
pickEth1Vote - no votes 874.29 us/op 1.0461 ms/op 0.84
pickEth1Vote - max votes 4.8878 ms/op 5.8839 ms/op 0.83
pickEth1Vote - Eth1Data hashTreeRoot value x2048 12.499 ms/op 19.592 ms/op 0.64
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 23.193 ms/op 18.837 ms/op 1.23
pickEth1Vote - Eth1Data fastSerialize value x2048 359.51 us/op 445.26 us/op 0.81
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.6296 ms/op 3.1976 ms/op 0.82
bytes32 toHexString 586.00 ns/op 421.00 ns/op 1.39
bytes32 Buffer.toString(hex) 476.00 ns/op 250.00 ns/op 1.90
bytes32 Buffer.toString(hex) from Uint8Array 543.00 ns/op 358.00 ns/op 1.52
bytes32 Buffer.toString(hex) + 0x 443.00 ns/op 246.00 ns/op 1.80
Object access 1 prop 0.35800 ns/op 0.13100 ns/op 2.73
Map access 1 prop 0.32500 ns/op 0.13000 ns/op 2.50
Object get x1000 5.1280 ns/op 6.0890 ns/op 0.84
Map get x1000 6.1160 ns/op 6.2860 ns/op 0.97
Object set x1000 36.327 ns/op 31.731 ns/op 1.14
Map set x1000 20.635 ns/op 21.883 ns/op 0.94
Return object 10000 times 0.29610 ns/op 0.28510 ns/op 1.04
Throw Error 10000 times 2.6944 us/op 3.3725 us/op 0.80
toHex 117.67 ns/op 156.85 ns/op 0.75
Buffer.from 106.03 ns/op 135.90 ns/op 0.78
shared Buffer 69.440 ns/op 93.813 ns/op 0.74
fastMsgIdFn sha256 / 200 bytes 2.1510 us/op 2.2660 us/op 0.95
fastMsgIdFn h32 xxhash / 200 bytes 474.00 ns/op 228.00 ns/op 2.08
fastMsgIdFn h64 xxhash / 200 bytes 528.00 ns/op 262.00 ns/op 2.02
fastMsgIdFn sha256 / 1000 bytes 6.1250 us/op 7.3390 us/op 0.83
fastMsgIdFn h32 xxhash / 1000 bytes 615.00 ns/op 359.00 ns/op 1.71
fastMsgIdFn h64 xxhash / 1000 bytes 591.00 ns/op 341.00 ns/op 1.73
fastMsgIdFn sha256 / 10000 bytes 51.521 us/op 63.281 us/op 0.81
fastMsgIdFn h32 xxhash / 10000 bytes 2.0410 us/op 1.7940 us/op 1.14
fastMsgIdFn h64 xxhash / 10000 bytes 1.4120 us/op 1.1690 us/op 1.21
send data - 1000 256B messages 10.529 ms/op 12.098 ms/op 0.87
send data - 1000 512B messages 14.760 ms/op 16.784 ms/op 0.88
send data - 1000 1024B messages 21.102 ms/op 26.458 ms/op 0.80
send data - 1000 1200B messages 23.424 ms/op 25.042 ms/op 0.94
send data - 1000 2048B messages 30.523 ms/op 30.710 ms/op 0.99
send data - 1000 4096B messages 26.548 ms/op 30.865 ms/op 0.86
send data - 1000 16384B messages 73.889 ms/op 73.317 ms/op 1.01
send data - 1000 65536B messages 278.79 ms/op 207.05 ms/op 1.35
enrSubnets - fastDeserialize 64 bits 1.1590 us/op 1.1040 us/op 1.05
enrSubnets - ssz BitVector 64 bits 587.00 ns/op 361.00 ns/op 1.63
enrSubnets - fastDeserialize 4 bits 369.00 ns/op 150.00 ns/op 2.46
enrSubnets - ssz BitVector 4 bits 589.00 ns/op 370.00 ns/op 1.59
prioritizePeers score -10:0 att 32-0.1 sync 2-0 136.68 us/op 169.52 us/op 0.81
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 159.90 us/op 147.80 us/op 1.08
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 342.25 us/op 242.83 us/op 1.41
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 543.03 us/op 394.65 us/op 1.38
prioritizePeers score 0:0 att 64-1 sync 4-1 511.86 us/op 599.96 us/op 0.85
array of 16000 items push then shift 1.3871 us/op 1.6364 us/op 0.85
LinkedList of 16000 items push then shift 6.6900 ns/op 7.0750 ns/op 0.95
array of 16000 items push then pop 92.550 ns/op 124.80 ns/op 0.74
LinkedList of 16000 items push then pop 6.5300 ns/op 7.2270 ns/op 0.90
array of 24000 items push then shift 1.9925 us/op 2.4329 us/op 0.82
LinkedList of 24000 items push then shift 6.6210 ns/op 7.0940 ns/op 0.93
array of 24000 items push then pop 141.04 ns/op 129.96 ns/op 1.09
LinkedList of 24000 items push then pop 6.4820 ns/op 7.4620 ns/op 0.87
intersect bitArray bitLen 8 5.6380 ns/op 6.1910 ns/op 0.91
intersect array and set length 8 40.267 ns/op 44.832 ns/op 0.90
intersect bitArray bitLen 128 29.490 ns/op 28.234 ns/op 1.04
intersect array and set length 128 771.51 ns/op 682.41 ns/op 1.13
bitArray.getTrueBitIndexes() bitLen 128 2.5000 us/op 1.7940 us/op 1.39
bitArray.getTrueBitIndexes() bitLen 248 3.5110 us/op 2.9970 us/op 1.17
bitArray.getTrueBitIndexes() bitLen 512 9.1230 us/op 6.6270 us/op 1.38
Buffer.concat 32 items 1.2060 us/op 877.00 ns/op 1.38
Uint8Array.set 32 items 1.9860 us/op 1.4980 us/op 1.33
Buffer.copy 2.0880 us/op 1.7250 us/op 1.21
Uint8Array.set - with subarray 2.7940 us/op 2.6390 us/op 1.06
Uint8Array.set - without subarray 1.6010 us/op 1.5540 us/op 1.03
getUint32 - dataview 469.00 ns/op 227.00 ns/op 2.07
getUint32 - manual 406.00 ns/op 150.00 ns/op 2.71
Set add up to 64 items then delete first 1.8357 us/op 2.1812 us/op 0.84
OrderedSet add up to 64 items then delete first 2.8002 us/op 3.3461 us/op 0.84
Set add up to 64 items then delete last 2.5339 us/op 2.4431 us/op 1.04
OrderedSet add up to 64 items then delete last 3.8135 us/op 3.8514 us/op 0.99
Set add up to 64 items then delete middle 2.3417 us/op 2.5350 us/op 0.92
OrderedSet add up to 64 items then delete middle 4.8256 us/op 5.2368 us/op 0.92
Set add up to 128 items then delete first 4.2213 us/op 4.9522 us/op 0.85
OrderedSet add up to 128 items then delete first 7.9420 us/op 7.3530 us/op 1.08
Set add up to 128 items then delete last 5.0207 us/op 4.9989 us/op 1.00
OrderedSet add up to 128 items then delete last 7.3824 us/op 7.7791 us/op 0.95
Set add up to 128 items then delete middle 4.8662 us/op 4.9431 us/op 0.98
OrderedSet add up to 128 items then delete middle 14.038 us/op 13.504 us/op 1.04
Set add up to 256 items then delete first 10.721 us/op 10.130 us/op 1.06
OrderedSet add up to 256 items then delete first 18.101 us/op 15.078 us/op 1.20
Set add up to 256 items then delete last 10.445 us/op 9.8837 us/op 1.06
OrderedSet add up to 256 items then delete last 17.182 us/op 15.599 us/op 1.10
Set add up to 256 items then delete middle 10.072 us/op 9.9349 us/op 1.01
OrderedSet add up to 256 items then delete middle 40.462 us/op 40.327 us/op 1.00
transfer serialized Status (84 B) 1.6410 us/op 1.3670 us/op 1.20
copy serialized Status (84 B) 1.4050 us/op 1.1550 us/op 1.22
transfer serialized SignedVoluntaryExit (112 B) 1.9290 us/op 1.4970 us/op 1.29
copy serialized SignedVoluntaryExit (112 B) 1.6080 us/op 1.1740 us/op 1.37
transfer serialized ProposerSlashing (416 B) 2.9770 us/op 2.2110 us/op 1.35
copy serialized ProposerSlashing (416 B) 2.9670 us/op 1.8540 us/op 1.60
transfer serialized Attestation (485 B) 3.0440 us/op 1.5990 us/op 1.90
copy serialized Attestation (485 B) 2.8270 us/op 1.8230 us/op 1.55
transfer serialized AttesterSlashing (33232 B) 3.0370 us/op 2.5300 us/op 1.20
copy serialized AttesterSlashing (33232 B) 10.494 us/op 5.2980 us/op 1.98
transfer serialized Small SignedBeaconBlock (128000 B) 4.1130 us/op 3.0270 us/op 1.36
copy serialized Small SignedBeaconBlock (128000 B) 27.491 us/op 14.373 us/op 1.91
transfer serialized Avg SignedBeaconBlock (200000 B) 3.6350 us/op 3.5590 us/op 1.02
copy serialized Avg SignedBeaconBlock (200000 B) 36.408 us/op 20.133 us/op 1.81
transfer serialized BlobsSidecar (524380 B) 4.0760 us/op 3.2310 us/op 1.26
copy serialized BlobsSidecar (524380 B) 148.20 us/op 79.338 us/op 1.87
transfer serialized Big SignedBeaconBlock (1000000 B) 4.7720 us/op 3.0660 us/op 1.56
copy serialized Big SignedBeaconBlock (1000000 B) 257.93 us/op 150.18 us/op 1.72
pass gossip attestations to forkchoice per slot 2.7730 ms/op 2.8181 ms/op 0.98
forkChoice updateHead vc 100000 bc 64 eq 0 528.65 us/op 453.06 us/op 1.17
forkChoice updateHead vc 600000 bc 64 eq 0 2.4447 ms/op 2.7395 ms/op 0.89
forkChoice updateHead vc 1000000 bc 64 eq 0 4.2934 ms/op 4.8228 ms/op 0.89
forkChoice updateHead vc 600000 bc 320 eq 0 2.5600 ms/op 2.7927 ms/op 0.92
forkChoice updateHead vc 600000 bc 1200 eq 0 2.5153 ms/op 2.8485 ms/op 0.88
forkChoice updateHead vc 600000 bc 7200 eq 0 3.5522 ms/op 3.4471 ms/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 1000 9.8084 ms/op 10.306 ms/op 0.95
forkChoice updateHead vc 600000 bc 64 eq 10000 9.6032 ms/op 10.648 ms/op 0.90
forkChoice updateHead vc 600000 bc 64 eq 300000 12.246 ms/op 13.456 ms/op 0.91
computeDeltas 500000 validators 300 proto nodes 3.2949 ms/op 3.8810 ms/op 0.85
computeDeltas 500000 validators 1200 proto nodes 3.3811 ms/op 3.8846 ms/op 0.87
computeDeltas 500000 validators 7200 proto nodes 3.4220 ms/op 3.9146 ms/op 0.87
computeDeltas 750000 validators 300 proto nodes 5.0736 ms/op 5.7342 ms/op 0.88
computeDeltas 750000 validators 1200 proto nodes 5.0558 ms/op 5.7394 ms/op 0.88
computeDeltas 750000 validators 7200 proto nodes 4.8812 ms/op 5.7522 ms/op 0.85
computeDeltas 1400000 validators 300 proto nodes 8.9533 ms/op 10.890 ms/op 0.82
computeDeltas 1400000 validators 1200 proto nodes 8.9154 ms/op 11.237 ms/op 0.79
computeDeltas 1400000 validators 7200 proto nodes 9.4521 ms/op 11.447 ms/op 0.83
computeDeltas 2100000 validators 300 proto nodes 14.472 ms/op 17.096 ms/op 0.85
computeDeltas 2100000 validators 1200 proto nodes 14.320 ms/op 17.219 ms/op 0.83
computeDeltas 2100000 validators 7200 proto nodes 14.512 ms/op 16.359 ms/op 0.89
altair processAttestation - 250000 vs - 7PWei normalcase 1.8978 ms/op 1.6332 ms/op 1.16
altair processAttestation - 250000 vs - 7PWei worstcase 2.5289 ms/op 2.5388 ms/op 1.00
altair processAttestation - setStatus - 1/6 committees join 104.13 us/op 85.035 us/op 1.22
altair processAttestation - setStatus - 1/3 committees join 193.57 us/op 171.28 us/op 1.13
altair processAttestation - setStatus - 1/2 committees join 292.05 us/op 243.55 us/op 1.20
altair processAttestation - setStatus - 2/3 committees join 370.54 us/op 322.27 us/op 1.15
altair processAttestation - setStatus - 4/5 committees join 506.44 us/op 456.60 us/op 1.11
altair processAttestation - setStatus - 100% committees join 602.23 us/op 538.38 us/op 1.12
altair processBlock - 250000 vs - 7PWei normalcase 4.3050 ms/op 3.8267 ms/op 1.12
altair processBlock - 250000 vs - 7PWei normalcase hashState 28.617 ms/op 27.789 ms/op 1.03
altair processBlock - 250000 vs - 7PWei worstcase 36.890 ms/op 33.917 ms/op 1.09
altair processBlock - 250000 vs - 7PWei worstcase hashState 70.203 ms/op 65.694 ms/op 1.07
phase0 processBlock - 250000 vs - 7PWei normalcase 1.7177 ms/op 1.6941 ms/op 1.01
phase0 processBlock - 250000 vs - 7PWei worstcase 22.984 ms/op 19.970 ms/op 1.15
altair processEth1Data - 250000 vs - 7PWei normalcase 300.61 us/op 284.67 us/op 1.06
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.3680 us/op 4.9730 us/op 1.28
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 34.927 us/op 27.218 us/op 1.28
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 8.7040 us/op 7.8320 us/op 1.11
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.6340 us/op 5.2560 us/op 1.07
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 137.38 us/op 112.73 us/op 1.22
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 874.33 us/op 1.1225 ms/op 0.78
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.2662 ms/op 1.5925 ms/op 0.80
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.2138 ms/op 1.5876 ms/op 0.76
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.8679 ms/op 3.7245 ms/op 1.04
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.3787 ms/op 1.6464 ms/op 0.84
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.3196 ms/op 3.6636 ms/op 0.91
Tree 40 250000 create 207.26 ms/op 206.24 ms/op 1.00
Tree 40 250000 get(125000) 126.86 ns/op 138.66 ns/op 0.91
Tree 40 250000 set(125000) 562.54 ns/op 622.26 ns/op 0.90
Tree 40 250000 toArray() 13.459 ms/op 15.471 ms/op 0.87
Tree 40 250000 iterate all - toArray() + loop 12.729 ms/op 15.536 ms/op 0.82
Tree 40 250000 iterate all - get(i) 47.834 ms/op 50.289 ms/op 0.95
Array 250000 create 2.5901 ms/op 2.8420 ms/op 0.91
Array 250000 clone - spread 1.3853 ms/op 1.4081 ms/op 0.98
Array 250000 get(125000) 0.63300 ns/op 0.40700 ns/op 1.56
Array 250000 set(125000) 0.66200 ns/op 0.42500 ns/op 1.56
Array 250000 iterate all - loop 80.321 us/op 108.02 us/op 0.74
phase0 afterProcessEpoch - 250000 vs - 7PWei 45.482 ms/op 49.478 ms/op 0.92
Array.fill - length 1000000 3.0976 ms/op 3.4760 ms/op 0.89
Array push - length 1000000 17.044 ms/op 16.520 ms/op 1.03
Array.get 0.26182 ns/op 0.27098 ns/op 0.97
Uint8Array.get 0.35349 ns/op 0.43169 ns/op 0.82
phase0 beforeProcessEpoch - 250000 vs - 7PWei 15.342 ms/op 17.611 ms/op 0.87
altair processEpoch - mainnet_e81889 276.90 ms/op 267.97 ms/op 1.03
mainnet_e81889 - altair beforeProcessEpoch 18.435 ms/op 17.905 ms/op 1.03
mainnet_e81889 - altair processJustificationAndFinalization 14.903 us/op 12.314 us/op 1.21
mainnet_e81889 - altair processInactivityUpdates 4.8811 ms/op 5.0480 ms/op 0.97
mainnet_e81889 - altair processRewardsAndPenalties 50.585 ms/op 42.383 ms/op 1.19
mainnet_e81889 - altair processRegistryUpdates 1.8950 us/op 1.7240 us/op 1.10
mainnet_e81889 - altair processSlashings 733.00 ns/op 407.00 ns/op 1.80
mainnet_e81889 - altair processEth1DataReset 690.00 ns/op 270.00 ns/op 2.56
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.6476 ms/op 1.9404 ms/op 0.85
mainnet_e81889 - altair processSlashingsReset 2.2660 us/op 3.8820 us/op 0.58
mainnet_e81889 - altair processRandaoMixesReset 2.8420 us/op 4.2130 us/op 0.67
mainnet_e81889 - altair processHistoricalRootsUpdate 798.00 ns/op 470.00 ns/op 1.70
mainnet_e81889 - altair processParticipationFlagUpdates 1.5500 us/op 2.0320 us/op 0.76
mainnet_e81889 - altair processSyncCommitteeUpdates 683.00 ns/op 414.00 ns/op 1.65
mainnet_e81889 - altair afterProcessEpoch 45.376 ms/op 48.728 ms/op 0.93
capella processEpoch - mainnet_e217614 1.0571 s/op 1.0293 s/op 1.03
mainnet_e217614 - capella beforeProcessEpoch 77.223 ms/op 66.293 ms/op 1.16
mainnet_e217614 - capella processJustificationAndFinalization 8.0700 us/op 14.509 us/op 0.56
mainnet_e217614 - capella processInactivityUpdates 14.670 ms/op 16.404 ms/op 0.89
mainnet_e217614 - capella processRewardsAndPenalties 237.27 ms/op 224.07 ms/op 1.06
mainnet_e217614 - capella processRegistryUpdates 11.754 us/op 12.199 us/op 0.96
mainnet_e217614 - capella processSlashings 738.00 ns/op 390.00 ns/op 1.89
mainnet_e217614 - capella processEth1DataReset 766.00 ns/op 299.00 ns/op 2.56
mainnet_e217614 - capella processEffectiveBalanceUpdates 8.2846 ms/op 11.978 ms/op 0.69
mainnet_e217614 - capella processSlashingsReset 3.3030 us/op 2.3720 us/op 1.39
mainnet_e217614 - capella processRandaoMixesReset 3.1610 us/op 7.0040 us/op 0.45
mainnet_e217614 - capella processHistoricalRootsUpdate 774.00 ns/op 467.00 ns/op 1.66
mainnet_e217614 - capella processParticipationFlagUpdates 1.3290 us/op 1.9490 us/op 0.68
mainnet_e217614 - capella afterProcessEpoch 106.27 ms/op 121.43 ms/op 0.88
phase0 processEpoch - mainnet_e58758 319.91 ms/op 322.95 ms/op 0.99
mainnet_e58758 - phase0 beforeProcessEpoch 93.049 ms/op 65.813 ms/op 1.41
mainnet_e58758 - phase0 processJustificationAndFinalization 12.353 us/op 13.517 us/op 0.91
mainnet_e58758 - phase0 processRewardsAndPenalties 19.890 ms/op 28.646 ms/op 0.69
mainnet_e58758 - phase0 processRegistryUpdates 5.7130 us/op 8.0350 us/op 0.71
mainnet_e58758 - phase0 processSlashings 818.00 ns/op 382.00 ns/op 2.14
mainnet_e58758 - phase0 processEth1DataReset 835.00 ns/op 281.00 ns/op 2.97
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.4328 ms/op 1.1657 ms/op 1.23
mainnet_e58758 - phase0 processSlashingsReset 4.9780 us/op 3.1790 us/op 1.57
mainnet_e58758 - phase0 processRandaoMixesReset 4.0660 us/op 3.5130 us/op 1.16
mainnet_e58758 - phase0 processHistoricalRootsUpdate 933.00 ns/op 334.00 ns/op 2.79
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.0220 us/op 2.8290 us/op 1.07
mainnet_e58758 - phase0 afterProcessEpoch 36.740 ms/op 41.768 ms/op 0.88
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.0015 ms/op 1.3966 ms/op 0.72
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.6690 ms/op 2.2918 ms/op 0.73
altair processInactivityUpdates - 250000 normalcase 19.312 ms/op 13.855 ms/op 1.39
altair processInactivityUpdates - 250000 worstcase 16.553 ms/op 14.153 ms/op 1.17
phase0 processRegistryUpdates - 250000 normalcase 8.9100 us/op 6.7530 us/op 1.32
phase0 processRegistryUpdates - 250000 badcase_full_deposits 279.71 us/op 241.59 us/op 1.16
phase0 processRegistryUpdates - 250000 worstcase 0.5 131.38 ms/op 114.94 ms/op 1.14
altair processRewardsAndPenalties - 250000 normalcase 45.680 ms/op 36.020 ms/op 1.27
altair processRewardsAndPenalties - 250000 worstcase 39.146 ms/op 34.768 ms/op 1.13
phase0 getAttestationDeltas - 250000 normalcase 6.7796 ms/op 7.5755 ms/op 0.89
phase0 getAttestationDeltas - 250000 worstcase 6.4229 ms/op 7.1731 ms/op 0.90
phase0 processSlashings - 250000 worstcase 95.130 us/op 76.235 us/op 1.25
altair processSyncCommitteeUpdates - 250000 99.201 ms/op 118.09 ms/op 0.84
BeaconState.hashTreeRoot - No change 520.00 ns/op 217.00 ns/op 2.40
BeaconState.hashTreeRoot - 1 full validator 84.771 us/op 101.16 us/op 0.84
BeaconState.hashTreeRoot - 32 full validator 1.2917 ms/op 1.3882 ms/op 0.93
BeaconState.hashTreeRoot - 512 full validator 7.7294 ms/op 10.513 ms/op 0.74
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 200.88 us/op 133.52 us/op 1.50
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.3942 ms/op 1.7057 ms/op 0.82
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 16.552 ms/op 22.304 ms/op 0.74
BeaconState.hashTreeRoot - 1 balances 103.24 us/op 111.30 us/op 0.93
BeaconState.hashTreeRoot - 32 balances 883.40 us/op 1.1204 ms/op 0.79
BeaconState.hashTreeRoot - 512 balances 7.9738 ms/op 8.8098 ms/op 0.91
BeaconState.hashTreeRoot - 250000 balances 141.61 ms/op 179.77 ms/op 0.79
aggregationBits - 2048 els - zipIndexesInBitList 20.179 us/op 22.243 us/op 0.91
byteArrayEquals 32 49.682 ns/op 51.490 ns/op 0.96
Buffer.compare 32 16.425 ns/op 16.503 ns/op 1.00
byteArrayEquals 1024 1.3009 us/op 1.5230 us/op 0.85
Buffer.compare 1024 24.541 ns/op 24.620 ns/op 1.00
byteArrayEquals 16384 20.657 us/op 24.259 us/op 0.85
Buffer.compare 16384 187.84 ns/op 197.40 ns/op 0.95
byteArrayEquals 123687377 152.88 ms/op 183.82 ms/op 0.83
Buffer.compare 123687377 4.4627 ms/op 6.1821 ms/op 0.72
byteArrayEquals 32 - diff last byte 45.952 ns/op 50.491 ns/op 0.91
Buffer.compare 32 - diff last byte 15.178 ns/op 16.498 ns/op 0.92
byteArrayEquals 1024 - diff last byte 1.2242 us/op 1.5231 us/op 0.80
Buffer.compare 1024 - diff last byte 24.096 ns/op 24.185 ns/op 1.00
byteArrayEquals 16384 - diff last byte 19.606 us/op 24.225 us/op 0.81
Buffer.compare 16384 - diff last byte 156.76 ns/op 199.47 ns/op 0.79
byteArrayEquals 123687377 - diff last byte 153.26 ms/op 183.26 ms/op 0.84
Buffer.compare 123687377 - diff last byte 4.2792 ms/op 6.2660 ms/op 0.68
byteArrayEquals 32 - random bytes 4.8900 ns/op 4.9480 ns/op 0.99
Buffer.compare 32 - random bytes 15.984 ns/op 16.548 ns/op 0.97
byteArrayEquals 1024 - random bytes 4.9480 ns/op 4.9430 ns/op 1.00
Buffer.compare 1024 - random bytes 15.908 ns/op 16.556 ns/op 0.96
byteArrayEquals 16384 - random bytes 4.9030 ns/op 4.9460 ns/op 0.99
Buffer.compare 16384 - random bytes 15.883 ns/op 16.508 ns/op 0.96
byteArrayEquals 123687377 - random bytes 7.7400 ns/op 6.2000 ns/op 1.25
Buffer.compare 123687377 - random bytes 18.830 ns/op 17.790 ns/op 1.06
regular array get 100000 times 30.756 us/op 31.852 us/op 0.97
wrappedArray get 100000 times 30.751 us/op 31.747 us/op 0.97
arrayWithProxy get 100000 times 9.8024 ms/op 12.573 ms/op 0.78
ssz.Root.equals 43.698 ns/op 44.087 ns/op 0.99
byteArrayEquals 38.754 ns/op 43.442 ns/op 0.89
Buffer.compare 9.3170 ns/op 10.019 ns/op 0.93
processSlot - 1 slots 9.9950 us/op 14.549 us/op 0.69
processSlot - 32 slots 1.8369 ms/op 2.8234 ms/op 0.65
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 40.472 ms/op 35.720 ms/op 1.13
getCommitteeAssignments - req 1 vs - 250000 vc 1.7548 ms/op 2.0919 ms/op 0.84
getCommitteeAssignments - req 100 vs - 250000 vc 3.4747 ms/op 4.0451 ms/op 0.86
getCommitteeAssignments - req 1000 vs - 250000 vc 3.6888 ms/op 4.2613 ms/op 0.87
findModifiedValidators - 10000 modified validators 259.88 ms/op 255.77 ms/op 1.02
findModifiedValidators - 1000 modified validators 180.88 ms/op 192.16 ms/op 0.94
findModifiedValidators - 100 modified validators 210.20 ms/op 158.04 ms/op 1.33
findModifiedValidators - 10 modified validators 160.97 ms/op 152.86 ms/op 1.05
findModifiedValidators - 1 modified validators 153.66 ms/op 149.13 ms/op 1.03
findModifiedValidators - no difference 195.94 ms/op 164.02 ms/op 1.19
compare ViewDUs 3.1976 s/op 2.9447 s/op 1.09
compare each validator Uint8Array 1.8679 s/op 1.1038 s/op 1.69
compare ViewDU to Uint8Array 987.99 ms/op 1.0276 s/op 0.96
migrate state 1000000 validators, 24 modified, 0 new 603.18 ms/op 737.26 ms/op 0.82
migrate state 1000000 validators, 1700 modified, 1000 new 904.83 ms/op 982.13 ms/op 0.92
migrate state 1000000 validators, 3400 modified, 2000 new 1.1333 s/op 1.1578 s/op 0.98
migrate state 1500000 validators, 24 modified, 0 new 670.95 ms/op 682.64 ms/op 0.98
migrate state 1500000 validators, 1700 modified, 1000 new 831.51 ms/op 920.34 ms/op 0.90
migrate state 1500000 validators, 3400 modified, 2000 new 990.39 ms/op 1.2039 s/op 0.82
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 6.3500 ns/op 4.5900 ns/op 1.38
state getBlockRootAtSlot - 250000 vs - 7PWei 394.87 ns/op 491.91 ns/op 0.80
computeProposers - vc 250000 5.4321 ms/op 6.9508 ms/op 0.78
computeEpochShuffling - vc 250000 36.140 ms/op 42.145 ms/op 0.86
getNextSyncCommittee - vc 250000 97.275 ms/op 125.18 ms/op 0.78
computeSigningRoot for AttestationData 19.098 us/op 23.094 us/op 0.83
hash AttestationData serialized data then Buffer.toString(base64) 1.2490 us/op 1.6075 us/op 0.78
toHexString serialized data 770.56 ns/op 905.27 ns/op 0.85
Buffer.toString(base64) 136.34 ns/op 176.86 ns/op 0.77
nodejs block root to RootHex using toHex 117.52 ns/op 155.06 ns/op 0.76
nodejs block root to RootHex using toRootHex 76.562 ns/op 92.678 ns/op 0.83
browser block root to RootHex using the deprecated toHexString 205.93 ns/op 228.94 ns/op 0.90
browser block root to RootHex using toHex 167.31 ns/op 182.56 ns/op 0.92
browser block root to RootHex using toRootHex 146.40 ns/op 164.75 ns/op 0.89

by benchmarkbot/action

Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

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

Good catch, although seems bit redundant considering the subnet check below but I guess that's how the spec states it.

@ensi321 ensi321 merged commit bfe54d2 into unstable Dec 19, 2024
18 of 20 checks passed
@ensi321 ensi321 deleted the nc/blob-sidecar-validation branch December 19, 2024 00:45
@@ -18,6 +18,15 @@ export async function validateGossipBlobSidecar(
): Promise<void> {
const blobSlot = blobSidecar.signedBlockHeader.message.slot;

// [REJECT] The sidecar's index is consistent with `MAX_BLOBS_PER_BLOCK` -- i.e. `blob_sidecar.index < MAX_BLOBS_PER_BLOCK`.
if (blobSidecar.index < chain.config.MAX_BLOBS_PER_BLOCK) {
Copy link
Member

Choose a reason for hiding this comment

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

just noticed the check is incorrect, this should be

blobSidecar.index >= chain.config.MAX_BLOBS_PER_BLOCK

Copy link
Contributor Author

@ensi321 ensi321 Dec 19, 2024

Choose a reason for hiding this comment

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

Oops gonna open another PR

wemeetagain added a commit that referenced this pull request Dec 20, 2024
* feat: add keymanager endpoint to retrieve proposer config (#7210)

* feat: add keymanager endpoint to retrieve proposer config

* Do not return empty builder config

* Check all builder proposer config values

* Fix settings builder config if undefined

* Fix builder config parsing

* Use ssz type to handle json serialization

Default parsing can't handle BigInt

* Revert "Use ssz type to handle json serialization"

This reverts commit 01fcea7.

* Fix boost factor json serialization

* Remove unused import

* Update test data

* Update proposer config test

* feat: add mekong network option (#7212)

* chore: fix import order with biome syntax (#7211)

Fix import order

* fix: consistently validate pubkey and throw 404 if not found (#7214)

* Throw error if pubkey is unknown when getting graffiti

* Consistently validate pubkey and throw 404 if not found

* fix: only return local keys from /eth/v1/keystores (#7215)

* fix: only return local keys from /eth/v1/keystores

* Fix fetching remote keys in node assertion

* feat: add and use getBlobsV1 to expedite gossip import (#7134)

* hookup the getblobs api to get bob and proof data from el

remove unused

fix import

metrics overhault, test, debugging testing, some feeback

fix

add nethermind bug dicussion link

fix

resolve conflicts

* deblobs timeout

* fix metric

* chore: revert async aggregate with randomness (#7218)

Revert "feat: asyncAggregateWithRandomness (#7204)"

This reverts commit e31d535.

* fix: update config for relaunched mekong network (#7220)

* fix: light client generating `LightClientUpdate` with wrong length of branches (#7187)

* initial commit

* Rewrite SyncCommitteeWitnessRepository

* Fix finality branch

* Update unit test

* fix e2e

* Review PR

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* fix: archive finalized state when shutting down beacon node (#7221)

* Fix typo

* feat: remove unfinalized pubkey cache (#7230)

* Remove unfinalized pubkey cache

* lint

* Fix unit test

* chore: skip web3_provider unit tests (#7252)

* fix: prune checkpoint states at syncing time (#7241)

* fix: prune checkpoint states at syncing time

* fix: lint

* fix: check-types in test

* fix: sync cached isCompoundingValidatorArr at epoch transition (#7247)

* fix: handle outOfRangeData when range sync Deneb (#7249)

* fix: handle outOfRangeData for beaconBlocksMaybeBlobsByRange()

* fix: lint

* fix: archiveBlocks - handle deneb outOfRangeData block

* fix: sync cached balance when adding new validator to registry (#7255)

* fix: sync cached balance when adding new validator to registry

* chore: add more comments

* fix: remove persisted checkpoint states from the previous run at startup

* fix: do not throw error when trying to prune missing directory (#7257)

* docs: update documentation Oct 2024 (#7178)

* docs update oct 2024 init

* Reconfig quickstart nav and minor fixes

* fix lint

* spelling fixes

* minor fixes and add to wordlist

* prettier fix

* add to wordlist

* sort wordlist

* modify dominance to include lighthouse

* fix typescript casing and add recommendation

* add selection and boost_factor with keymanager notice

* update wordlist

* remove builder enabled and add keymanager api

* spelling

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /docs (#7268)

Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](moxystudio/node-cross-spawn@v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: add error log to notifier if execution client auth failed (#7239)

* feat: add error log to notifier if execution client auth failed

* Update packages/beacon-node/src/node/notifier.ts

---------

Co-authored-by: NC <17676176+ensi321@users.noreply.github.com>

* docs: display rcConfig flag on CLI reference page (#7270)

* docs: display rcConfig flag on CLI reference page

* Update word list

* chore: remove prettier as default formatter for all file types (#7275)

* chore: unhide flags relevant for devnets / testing (#7271)

* feat: debug too many shuffling promises (#7251)

* feat: add asyncShufflingCalculation to StateTransitionOpts

* feat: add asyncShufflingCalculation to all regen / processSlots consumers

* fix: default to false for async shuffling and remove unnecessary props

* fix: remove unnecessary flags from stateTransition

* feat: implement conditional build of shuffling for prepareNextSlot

* fix: spec test bug where shufflingCache is present from BeaconChain constructor

* feat: sync build next shuffling if not queued async

* fix: use getSync to pull next shuffling correctly

* docs: add comment to prepareNextSlot

* refactor: rename StateCloneOpts to StateRegenerationOpts

* feat: pass asyncShufflingCalculation through to afterProcessEpoch and refactor conditional to run purely sync

* docs: add issue number to comment

* chore: lint

* chore: unpin nodejs version from 22.4 (#6982)

* Revert "chore: pin nodejs version to 22.4 (#6964)"

This reverts commit f20484b.

* Don't revert formatting changes

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
Co-authored-by: Cayman <caymannava@gmail.com>

* chore: update bootnodes file url for holesky and sepolia (#7276)

* feat: add `debug_getHistoricalSummaries` endpoint (#7245)

* feat: add new getHistoricalSummaries endpoint to debug namespace

* Add JSON response

* Restructure to use stateId and add proof to response

* add test scaffolding

* Address feedback

* Move getHistoricalSummaries to lodestar namespace

* add lodestar namespace unit test

* update route name to lodestar namespace

* cast state object as Capella state

* Lint

* json properties need to be lower case

* Make it v1 since it's now part of lodestar namespace

* Group with other /lodestar endpoints

* Simplify beacon node impl

* Rename return type

* Update test description

* Fix variable name

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: log sync committee signature errors as `error` (#7283)

* fix: update engine_getClientVersionV1 commit encoding (#7282)

* fix: check pubkey or validator index known to a state (#7284)

* fix: check pubkey or validator index known to a state

* chore: add more comments

* feat: lodestar script setup (#7254)

* feat: lodestar_setup

* feat: script_updates + docs

* feat: script_addition_in_docs + command_update

* Remove duplicate script from docs folder

* Minor script updates

* Update script to prepare docs and ignore copied file

* Update installation page

* Wording

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* feat: add terminal-sized Electra giraffe banner (#7286)

* Create giraffeBanners.ts

* Wire in banner

* Fix file name

* lint

* Address @nflaig's comment

---------

Co-authored-by: NC <17676176+ensi321@users.noreply.github.com>

* chore: pin nodejs version to 22.4 (#7291)

Revert "chore: unpin nodejs version from 22.4 (#6982)"

This reverts commit 69ae688.

* feat: expose `DOMAIN_APPLICATION_MASK` in config/spec api (#7296)

* feat: expose DOMAIN_APPLICATION_MASK in config/spec api

* Lint

* feat: make `MAX_REQUEST_BLOB_SIDECARS` and `MAX_BLOBS_PER_BLOCK` configurable (#7294)

* Init commit

* Fix check-types

* Add comment on how MAX_REQUEST_BLOB_SIDECARS is calculated

* Ensure proper config object is passed

* Address comment

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* feat: use `BLOB_SIDECAR_SUBNET_COUNT` to configure blob subnets (#7297)

feat: use BLOB_SIDECAR_SUBNET_COUNT to configure blob subnets

* chore: log sync aggregate participants when producing beacon block body (#7300)

* chore: log sync aggregate participants when producing beacon block body

* Use isForkLightClient instead of ForkSeq

* Fix produce block unit tests

* chore: print graffiti when producing beacon block body (#7303)

* fix: warn if engine / builder failed to produce block within cutoff time (#7305)

* feat: add kzg commitment length check when validating gossip blocks (#7302)

* feat: add blob sidecar index check (#7313)

Validate blobSidecar index

* fix: fix blob sidecar index check (#7315)

Fix index check

* chore: fix format of printed graffiti from hex to utf-8 (#7306)

* chore: fix format of printed graffiti from hex to utf-8

* Use Buffer.from no copy with offset

* docs: batch commit typos and update contributor readme (#7312)

* batch commit typos and update contributor readme

* update donation text

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* correct spelling

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: remove trailing null bytes from printed graffiti (#7320)

* chore: remove trailing null bytes from printed graffiti

* Use replaceAll instead of regex

* chore: unpin nodejs version from 22.4 (#7324)

Revert "chore: pin nodejs version to 22.4 (#7291)"

This reverts commit 99794d3.

* chore: bump package versions to 1.24.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Nico Flaig <nflaig@protonmail.com>
Co-authored-by: Nazar Hussain <nazarhussain@gmail.com>
Co-authored-by: g11tech <develop@g11tech.io>
Co-authored-by: Matthew Keil <me@matthewkeil.com>
Co-authored-by: NC <17676176+ensi321@users.noreply.github.com>
Co-authored-by: twoeths <tuyen@chainsafe.io>
Co-authored-by: Phil Ngo <58080811+philknows@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: acolytec3 <17355484+acolytec3@users.noreply.github.com>
Co-authored-by: Varun Guleria <152203177+varunguleriaCodes@users.noreply.github.com>
Co-authored-by: ClockworkYuzu <yvetteheh@gmail.com>
@wemeetagain
Copy link
Member

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