Skip to content

fix: split getBlobs into V1 and V2 implementations#8140

Merged
wemeetagain merged 3 commits into
unstablefrom
mkeil/clean-up-get-blobs-conditionals
Aug 12, 2025
Merged

fix: split getBlobs into V1 and V2 implementations#8140
wemeetagain merged 3 commits into
unstablefrom
mkeil/clean-up-get-blobs-conditionals

Conversation

@matthewkeil

Copy link
Copy Markdown
Member

Motivation

Addresses peerDAS PR comment
#6353 (comment)

@matthewkeil matthewkeil requested a review from a team as a code owner August 7, 2025 19:25
@matthewkeil matthewkeil marked this pull request as draft August 7, 2025 19:25
@matthewkeil matthewkeil added the status-do-not-merge Merging this issue will break the build. Do not merge! label Aug 7, 2025
@codecov

codecov Bot commented Aug 7, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 7.40741% with 25 lines in your changes missing coverage. Please review.
✅ Project coverage is 54.24%. Comparing base (aac4d9d) to head (0928a94).
⚠️ Report is 3 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #8140      +/-   ##
============================================
+ Coverage     54.22%   54.24%   +0.02%     
============================================
  Files           843      843              
  Lines         63365    63343      -22     
  Branches       4795     4796       +1     
============================================
+ Hits          34361    34362       +1     
+ Misses        28928    28905      -23     
  Partials         76       76              
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Comment thread packages/beacon-node/src/execution/engine/http.ts Outdated
Comment thread packages/beacon-node/src/execution/engine/http.ts Outdated
Comment thread packages/beacon-node/src/execution/engine/http.ts Outdated
@wemeetagain

Copy link
Copy Markdown
Member

generally looks good, what is missing to convert from draft?

@nflaig

nflaig commented Aug 11, 2025

Copy link
Copy Markdown
Member

generally looks good, what is missing to convert from draft?

would like that we remove the retry mechanism, this will simplify things a bit

@matthewkeil

Copy link
Copy Markdown
Member Author

generally looks good, what is missing to convert from draft?

Need to incorporate the research Katya found and remove the retry that nico suggested. Will handle this after the EF call

@matthewkeil matthewkeil marked this pull request as ready for review August 11, 2025 16:59
@matthewkeil matthewkeil removed the status-do-not-merge Merging this issue will break the build. Do not merge! label Aug 11, 2025
Base automatically changed from peerDAS to unstable August 11, 2025 18:02
@github-actions

Copy link
Copy Markdown
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 0a0aadd Previous: aac4d9d Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.0235 ms/op 968.82 us/op 1.06
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 36.541 us/op 38.231 us/op 0.96
BLS verify - blst 1.2332 ms/op 767.79 us/op 1.61
BLS verifyMultipleSignatures 3 - blst 1.6621 ms/op 1.2140 ms/op 1.37
BLS verifyMultipleSignatures 8 - blst 1.8598 ms/op 2.3211 ms/op 0.80
BLS verifyMultipleSignatures 32 - blst 5.8540 ms/op 4.8064 ms/op 1.22
BLS verifyMultipleSignatures 64 - blst 11.493 ms/op 8.9261 ms/op 1.29
BLS verifyMultipleSignatures 128 - blst 18.769 ms/op 17.292 ms/op 1.09
BLS deserializing 10000 signatures 716.60 ms/op 697.37 ms/op 1.03
BLS deserializing 100000 signatures 6.9404 s/op 6.8758 s/op 1.01
BLS verifyMultipleSignatures - same message - 3 - blst 994.00 us/op 823.84 us/op 1.21
BLS verifyMultipleSignatures - same message - 8 - blst 1.0676 ms/op 983.85 us/op 1.09
BLS verifyMultipleSignatures - same message - 32 - blst 1.7520 ms/op 1.6343 ms/op 1.07
BLS verifyMultipleSignatures - same message - 64 - blst 2.6540 ms/op 2.5132 ms/op 1.06
BLS verifyMultipleSignatures - same message - 128 - blst 4.4267 ms/op 4.2020 ms/op 1.05
BLS aggregatePubkeys 32 - blst 20.014 us/op 19.044 us/op 1.05
BLS aggregatePubkeys 128 - blst 69.701 us/op 68.608 us/op 1.02
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 60.053 ms/op 46.102 ms/op 1.30
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 51.289 ms/op 42.154 ms/op 1.22
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 43.041 ms/op 32.974 ms/op 1.31
getSlashingsAndExits - default max 73.089 us/op 74.374 us/op 0.98
getSlashingsAndExits - 2k 324.58 us/op 274.81 us/op 1.18
proposeBlockBody type=full, size=empty 5.4486 ms/op 5.4391 ms/op 1.00
isKnown best case - 1 super set check 219.00 ns/op 207.00 ns/op 1.06
isKnown normal case - 2 super set checks 213.00 ns/op 204.00 ns/op 1.04
isKnown worse case - 16 super set checks 215.00 ns/op 204.00 ns/op 1.05
InMemoryCheckpointStateCache - add get delete 2.4310 us/op 2.3440 us/op 1.04
validate api signedAggregateAndProof - struct 2.5762 ms/op 1.3351 ms/op 1.93
validate gossip signedAggregateAndProof - struct 2.5936 ms/op 1.3340 ms/op 1.94
batch validate gossip attestation - vc 640000 - chunk 32 116.58 us/op 111.29 us/op 1.05
batch validate gossip attestation - vc 640000 - chunk 64 100.62 us/op 98.923 us/op 1.02
batch validate gossip attestation - vc 640000 - chunk 128 94.216 us/op 92.581 us/op 1.02
batch validate gossip attestation - vc 640000 - chunk 256 95.843 us/op 92.251 us/op 1.04
pickEth1Vote - no votes 943.74 us/op 915.84 us/op 1.03
pickEth1Vote - max votes 6.7963 ms/op 6.6687 ms/op 1.02
pickEth1Vote - Eth1Data hashTreeRoot value x2048 11.828 ms/op 11.558 ms/op 1.02
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 17.433 ms/op 14.308 ms/op 1.22
pickEth1Vote - Eth1Data fastSerialize value x2048 445.59 us/op 413.72 us/op 1.08
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.8897 ms/op 3.8636 ms/op 0.75
bytes32 toHexString 364.00 ns/op 347.00 ns/op 1.05
bytes32 Buffer.toString(hex) 244.00 ns/op 239.00 ns/op 1.02
bytes32 Buffer.toString(hex) from Uint8Array 472.00 ns/op 327.00 ns/op 1.44
bytes32 Buffer.toString(hex) + 0x 240.00 ns/op 243.00 ns/op 0.99
Object access 1 prop 0.11600 ns/op 0.11700 ns/op 0.99
Map access 1 prop 0.12500 ns/op 0.12000 ns/op 1.04
Object get x1000 5.6930 ns/op 5.5780 ns/op 1.02
Map get x1000 6.1640 ns/op 5.9570 ns/op 1.03
Object set x1000 27.607 ns/op 27.112 ns/op 1.02
Map set x1000 19.022 ns/op 18.213 ns/op 1.04
Return object 10000 times 0.28280 ns/op 0.27280 ns/op 1.04
Throw Error 10000 times 4.3798 us/op 4.2205 us/op 1.04
toHex 139.21 ns/op 131.55 ns/op 1.06
Buffer.from 118.97 ns/op 117.17 ns/op 1.02
shared Buffer 84.089 ns/op 80.197 ns/op 1.05
fastMsgIdFn sha256 / 200 bytes 2.1700 us/op 2.0990 us/op 1.03
fastMsgIdFn h32 xxhash / 200 bytes 201.00 ns/op 207.00 ns/op 0.97
fastMsgIdFn h64 xxhash / 200 bytes 263.00 ns/op 251.00 ns/op 1.05
fastMsgIdFn sha256 / 1000 bytes 7.0180 us/op 6.9820 us/op 1.01
fastMsgIdFn h32 xxhash / 1000 bytes 326.00 ns/op 335.00 ns/op 0.97
fastMsgIdFn h64 xxhash / 1000 bytes 337.00 ns/op 325.00 ns/op 1.04
fastMsgIdFn sha256 / 10000 bytes 63.358 us/op 63.084 us/op 1.00
fastMsgIdFn h32 xxhash / 10000 bytes 1.7950 us/op 1.8160 us/op 0.99
fastMsgIdFn h64 xxhash / 10000 bytes 1.1980 us/op 1.1720 us/op 1.02
send data - 1000 256B messages 15.896 ms/op 15.196 ms/op 1.05
send data - 1000 512B messages 19.482 ms/op 18.376 ms/op 1.06
send data - 1000 1024B messages 26.295 ms/op 25.653 ms/op 1.03
send data - 1000 1200B messages 24.336 ms/op 23.906 ms/op 1.02
send data - 1000 2048B messages 25.042 ms/op 24.624 ms/op 1.02
send data - 1000 4096B messages 28.538 ms/op 28.642 ms/op 1.00
send data - 1000 16384B messages 43.742 ms/op 44.195 ms/op 0.99
send data - 1000 65536B messages 113.91 ms/op 112.01 ms/op 1.02
enrSubnets - fastDeserialize 64 bits 887.00 ns/op 892.00 ns/op 0.99
enrSubnets - ssz BitVector 64 bits 325.00 ns/op 323.00 ns/op 1.01
enrSubnets - fastDeserialize 4 bits 137.00 ns/op 140.00 ns/op 0.98
enrSubnets - ssz BitVector 4 bits 333.00 ns/op 321.00 ns/op 1.04
prioritizePeers score -10:0 att 32-0.1 sync 2-0 229.89 us/op 117.73 us/op 1.95
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 247.96 us/op 173.36 us/op 1.43
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 320.42 us/op 194.31 us/op 1.65
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 487.23 us/op 363.57 us/op 1.34
prioritizePeers score 0:0 att 64-1 sync 4-1 475.82 us/op 439.04 us/op 1.08
array of 16000 items push then shift 1.6237 us/op 1.5291 us/op 1.06
LinkedList of 16000 items push then shift 6.9860 ns/op 6.6410 ns/op 1.05
array of 16000 items push then pop 75.713 ns/op 73.740 ns/op 1.03
LinkedList of 16000 items push then pop 6.8980 ns/op 6.5930 ns/op 1.05
array of 24000 items push then shift 2.3396 us/op 2.3619 us/op 0.99
LinkedList of 24000 items push then shift 6.8590 ns/op 6.9120 ns/op 0.99
array of 24000 items push then pop 102.06 ns/op 101.67 ns/op 1.00
LinkedList of 24000 items push then pop 6.8990 ns/op 6.7860 ns/op 1.02
intersect bitArray bitLen 8 6.4470 ns/op 6.3300 ns/op 1.02
intersect array and set length 8 38.049 ns/op 37.609 ns/op 1.01
intersect bitArray bitLen 128 30.571 ns/op 29.956 ns/op 1.02
intersect array and set length 128 631.50 ns/op 622.22 ns/op 1.01
bitArray.getTrueBitIndexes() bitLen 128 1.4940 us/op 1.0220 us/op 1.46
bitArray.getTrueBitIndexes() bitLen 248 2.1900 us/op 1.7950 us/op 1.22
bitArray.getTrueBitIndexes() bitLen 512 6.0570 us/op 3.6750 us/op 1.65
Buffer.concat 32 items 644.00 ns/op 619.00 ns/op 1.04
Uint8Array.set 32 items 1.7130 us/op 1.1710 us/op 1.46
Buffer.copy 3.0810 us/op 2.1430 us/op 1.44
Uint8Array.set - with subarray 2.8250 us/op 2.4500 us/op 1.15
Uint8Array.set - without subarray 1.7290 us/op 1.1930 us/op 1.45
getUint32 - dataview 197.00 ns/op 198.00 ns/op 0.99
getUint32 - manual 127.00 ns/op 127.00 ns/op 1.00
Set add up to 64 items then delete first 2.0896 us/op 2.2142 us/op 0.94
OrderedSet add up to 64 items then delete first 3.5227 us/op 3.2530 us/op 1.08
Set add up to 64 items then delete last 2.4539 us/op 2.3414 us/op 1.05
OrderedSet add up to 64 items then delete last 3.8129 us/op 3.8972 us/op 0.98
Set add up to 64 items then delete middle 2.5546 us/op 2.5370 us/op 1.01
OrderedSet add up to 64 items then delete middle 5.6327 us/op 5.1373 us/op 1.10
Set add up to 128 items then delete first 4.9284 us/op 4.9105 us/op 1.00
OrderedSet add up to 128 items then delete first 7.6942 us/op 7.6695 us/op 1.00
Set add up to 128 items then delete last 5.1394 us/op 4.9460 us/op 1.04
OrderedSet add up to 128 items then delete last 7.6305 us/op 7.4419 us/op 1.03
Set add up to 128 items then delete middle 4.8976 us/op 4.7930 us/op 1.02
OrderedSet add up to 128 items then delete middle 14.876 us/op 13.987 us/op 1.06
Set add up to 256 items then delete first 10.116 us/op 9.9569 us/op 1.02
OrderedSet add up to 256 items then delete first 15.196 us/op 15.825 us/op 0.96
Set add up to 256 items then delete last 10.783 us/op 9.7977 us/op 1.10
OrderedSet add up to 256 items then delete last 15.705 us/op 15.734 us/op 1.00
Set add up to 256 items then delete middle 9.8320 us/op 10.283 us/op 0.96
OrderedSet add up to 256 items then delete middle 42.565 us/op 42.986 us/op 0.99
transfer serialized Status (84 B) 2.6020 us/op 2.1450 us/op 1.21
copy serialized Status (84 B) 1.2700 us/op 1.1000 us/op 1.15
transfer serialized SignedVoluntaryExit (112 B) 2.6260 us/op 2.1510 us/op 1.22
copy serialized SignedVoluntaryExit (112 B) 1.2670 us/op 1.0970 us/op 1.15
transfer serialized ProposerSlashing (416 B) 2.8170 us/op 2.1430 us/op 1.31
copy serialized ProposerSlashing (416 B) 1.3820 us/op 1.1610 us/op 1.19
transfer serialized Attestation (485 B) 3.1730 us/op 2.1860 us/op 1.45
copy serialized Attestation (485 B) 1.9940 us/op 1.1680 us/op 1.71
transfer serialized AttesterSlashing (33232 B) 2.9180 us/op 2.2970 us/op 1.27
copy serialized AttesterSlashing (33232 B) 4.3600 us/op 3.4450 us/op 1.27
transfer serialized Small SignedBeaconBlock (128000 B) 3.4770 us/op 3.0610 us/op 1.14
copy serialized Small SignedBeaconBlock (128000 B) 10.122 us/op 8.6950 us/op 1.16
transfer serialized Avg SignedBeaconBlock (200000 B) 3.9390 us/op 3.4720 us/op 1.13
copy serialized Avg SignedBeaconBlock (200000 B) 14.610 us/op 12.819 us/op 1.14
transfer serialized BlobsSidecar (524380 B) 4.9400 us/op 3.6330 us/op 1.36
copy serialized BlobsSidecar (524380 B) 74.884 us/op 75.535 us/op 0.99
transfer serialized Big SignedBeaconBlock (1000000 B) 4.4660 us/op 3.9880 us/op 1.12
copy serialized Big SignedBeaconBlock (1000000 B) 117.24 us/op 129.38 us/op 0.91
pass gossip attestations to forkchoice per slot 2.8193 ms/op 2.7877 ms/op 1.01
forkChoice updateHead vc 100000 bc 64 eq 0 469.84 us/op 454.99 us/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 0 3.0704 ms/op 2.8013 ms/op 1.10
forkChoice updateHead vc 1000000 bc 64 eq 0 5.2225 ms/op 4.8237 ms/op 1.08
forkChoice updateHead vc 600000 bc 320 eq 0 2.9736 ms/op 2.7589 ms/op 1.08
forkChoice updateHead vc 600000 bc 1200 eq 0 3.1147 ms/op 2.8504 ms/op 1.09
forkChoice updateHead vc 600000 bc 7200 eq 0 3.4655 ms/op 3.3764 ms/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 1000 10.717 ms/op 10.548 ms/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 10000 10.719 ms/op 10.248 ms/op 1.05
forkChoice updateHead vc 600000 bc 64 eq 300000 13.821 ms/op 13.722 ms/op 1.01
computeDeltas 500000 validators 300 proto nodes 4.0055 ms/op 4.0153 ms/op 1.00
computeDeltas 500000 validators 1200 proto nodes 4.0506 ms/op 3.9722 ms/op 1.02
computeDeltas 500000 validators 7200 proto nodes 4.1549 ms/op 4.1512 ms/op 1.00
computeDeltas 750000 validators 300 proto nodes 5.9171 ms/op 5.8825 ms/op 1.01
computeDeltas 750000 validators 1200 proto nodes 5.8238 ms/op 5.8436 ms/op 1.00
computeDeltas 750000 validators 7200 proto nodes 6.0672 ms/op 5.9301 ms/op 1.02
computeDeltas 1400000 validators 300 proto nodes 11.014 ms/op 11.156 ms/op 0.99
computeDeltas 1400000 validators 1200 proto nodes 11.193 ms/op 11.161 ms/op 1.00
computeDeltas 1400000 validators 7200 proto nodes 11.089 ms/op 11.312 ms/op 0.98
computeDeltas 2100000 validators 300 proto nodes 16.777 ms/op 18.258 ms/op 0.92
computeDeltas 2100000 validators 1200 proto nodes 16.966 ms/op 17.900 ms/op 0.95
computeDeltas 2100000 validators 7200 proto nodes 17.004 ms/op 17.307 ms/op 0.98
altair processAttestation - 250000 vs - 7PWei normalcase 2.1729 ms/op 2.3707 ms/op 0.92
altair processAttestation - 250000 vs - 7PWei worstcase 3.1021 ms/op 3.4574 ms/op 0.90
altair processAttestation - setStatus - 1/6 committees join 136.36 us/op 141.39 us/op 0.96
altair processAttestation - setStatus - 1/3 committees join 272.68 us/op 264.80 us/op 1.03
altair processAttestation - setStatus - 1/2 committees join 359.23 us/op 369.82 us/op 0.97
altair processAttestation - setStatus - 2/3 committees join 498.09 us/op 475.22 us/op 1.05
altair processAttestation - setStatus - 4/5 committees join 625.28 us/op 619.80 us/op 1.01
altair processAttestation - setStatus - 100% committees join 783.65 us/op 741.04 us/op 1.06
altair processBlock - 250000 vs - 7PWei normalcase 10.313 ms/op 5.0060 ms/op 2.06
altair processBlock - 250000 vs - 7PWei normalcase hashState 38.550 ms/op 29.020 ms/op 1.33
altair processBlock - 250000 vs - 7PWei worstcase 45.245 ms/op 35.368 ms/op 1.28
altair processBlock - 250000 vs - 7PWei worstcase hashState 91.050 ms/op 69.066 ms/op 1.32
phase0 processBlock - 250000 vs - 7PWei normalcase 2.0043 ms/op 1.5163 ms/op 1.32
phase0 processBlock - 250000 vs - 7PWei worstcase 25.590 ms/op 21.607 ms/op 1.18
altair processEth1Data - 250000 vs - 7PWei normalcase 347.15 us/op 332.28 us/op 1.04
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.7890 us/op 6.7480 us/op 1.01
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 56.285 us/op 46.577 us/op 1.21
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 15.264 us/op 12.711 us/op 1.20
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.8710 us/op 7.6230 us/op 0.90
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 212.61 us/op 174.93 us/op 1.22
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 2.1467 ms/op 1.9341 ms/op 1.11
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.8772 ms/op 2.4370 ms/op 1.18
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.4070 ms/op 2.4403 ms/op 0.99
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.6932 ms/op 4.9411 ms/op 0.95
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.5712 ms/op 2.5169 ms/op 1.02
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.8858 ms/op 4.8008 ms/op 1.02
Tree 40 250000 create 459.89 ms/op 444.20 ms/op 1.04
Tree 40 250000 get(125000) 142.99 ns/op 142.52 ns/op 1.00
Tree 40 250000 set(125000) 1.6302 us/op 1.4825 us/op 1.10
Tree 40 250000 toArray() 20.610 ms/op 16.938 ms/op 1.22
Tree 40 250000 iterate all - toArray() + loop 20.583 ms/op 18.512 ms/op 1.11
Tree 40 250000 iterate all - get(i) 57.383 ms/op 55.133 ms/op 1.04
Array 250000 create 2.5124 ms/op 2.4740 ms/op 1.02
Array 250000 clone - spread 831.93 us/op 814.72 us/op 1.02
Array 250000 get(125000) 0.42300 ns/op 0.42000 ns/op 1.01
Array 250000 set(125000) 0.44700 ns/op 0.44000 ns/op 1.02
Array 250000 iterate all - loop 111.74 us/op 82.789 us/op 1.35
phase0 afterProcessEpoch - 250000 vs - 7PWei 42.072 ms/op 42.138 ms/op 1.00
Array.fill - length 1000000 3.7992 ms/op 3.5576 ms/op 1.07
Array push - length 1000000 15.432 ms/op 15.920 ms/op 0.97
Array.get 0.27190 ns/op 0.28262 ns/op 0.96
Uint8Array.get 0.43759 ns/op 0.45162 ns/op 0.97
phase0 beforeProcessEpoch - 250000 vs - 7PWei 20.052 ms/op 18.964 ms/op 1.06
altair processEpoch - mainnet_e81889 262.68 ms/op 242.40 ms/op 1.08
mainnet_e81889 - altair beforeProcessEpoch 17.284 ms/op 19.290 ms/op 0.90
mainnet_e81889 - altair processJustificationAndFinalization 10.466 us/op 6.9300 us/op 1.51
mainnet_e81889 - altair processInactivityUpdates 4.4675 ms/op 4.9466 ms/op 0.90
mainnet_e81889 - altair processRewardsAndPenalties 36.794 ms/op 35.076 ms/op 1.05
mainnet_e81889 - altair processRegistryUpdates 697.00 ns/op 695.00 ns/op 1.00
mainnet_e81889 - altair processSlashings 219.00 ns/op 184.00 ns/op 1.19
mainnet_e81889 - altair processEth1DataReset 185.00 ns/op 178.00 ns/op 1.04
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2403 ms/op 1.3257 ms/op 0.94
mainnet_e81889 - altair processSlashingsReset 946.00 ns/op 880.00 ns/op 1.07
mainnet_e81889 - altair processRandaoMixesReset 1.6590 us/op 1.1460 us/op 1.45
mainnet_e81889 - altair processHistoricalRootsUpdate 182.00 ns/op 182.00 ns/op 1.00
mainnet_e81889 - altair processParticipationFlagUpdates 538.00 ns/op 531.00 ns/op 1.01
mainnet_e81889 - altair processSyncCommitteeUpdates 163.00 ns/op 142.00 ns/op 1.15
mainnet_e81889 - altair afterProcessEpoch 43.814 ms/op 46.060 ms/op 0.95
capella processEpoch - mainnet_e217614 1.0985 s/op 956.21 ms/op 1.15
mainnet_e217614 - capella beforeProcessEpoch 65.336 ms/op 62.167 ms/op 1.05
mainnet_e217614 - capella processJustificationAndFinalization 5.3340 us/op 5.3850 us/op 0.99
mainnet_e217614 - capella processInactivityUpdates 14.842 ms/op 14.769 ms/op 1.00
mainnet_e217614 - capella processRewardsAndPenalties 214.58 ms/op 164.16 ms/op 1.31
mainnet_e217614 - capella processRegistryUpdates 7.3380 us/op 6.3390 us/op 1.16
mainnet_e217614 - capella processSlashings 203.00 ns/op 175.00 ns/op 1.16
mainnet_e217614 - capella processEth1DataReset 195.00 ns/op 175.00 ns/op 1.11
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.2846 ms/op 4.3110 ms/op 0.99
mainnet_e217614 - capella processSlashingsReset 1.1490 us/op 831.00 ns/op 1.38
mainnet_e217614 - capella processRandaoMixesReset 1.1800 us/op 1.1420 us/op 1.03
mainnet_e217614 - capella processHistoricalRootsUpdate 195.00 ns/op 174.00 ns/op 1.12
mainnet_e217614 - capella processParticipationFlagUpdates 565.00 ns/op 521.00 ns/op 1.08
mainnet_e217614 - capella afterProcessEpoch 121.80 ms/op 111.09 ms/op 1.10
phase0 processEpoch - mainnet_e58758 337.83 ms/op 243.15 ms/op 1.39
mainnet_e58758 - phase0 beforeProcessEpoch 86.473 ms/op 66.098 ms/op 1.31
mainnet_e58758 - phase0 processJustificationAndFinalization 6.6570 us/op 5.5750 us/op 1.19
mainnet_e58758 - phase0 processRewardsAndPenalties 43.596 ms/op 33.527 ms/op 1.30
mainnet_e58758 - phase0 processRegistryUpdates 3.4620 us/op 3.1280 us/op 1.11
mainnet_e58758 - phase0 processSlashings 205.00 ns/op 176.00 ns/op 1.16
mainnet_e58758 - phase0 processEth1DataReset 184.00 ns/op 175.00 ns/op 1.05
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3020 ms/op 1.1978 ms/op 1.09
mainnet_e58758 - phase0 processSlashingsReset 1.0690 us/op 884.00 ns/op 1.21
mainnet_e58758 - phase0 processRandaoMixesReset 1.2760 us/op 1.1390 us/op 1.12
mainnet_e58758 - phase0 processHistoricalRootsUpdate 216.00 ns/op 178.00 ns/op 1.21
mainnet_e58758 - phase0 processParticipationRecordUpdates 967.00 ns/op 878.00 ns/op 1.10
mainnet_e58758 - phase0 afterProcessEpoch 35.514 ms/op 34.444 ms/op 1.03
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4912 ms/op 1.3552 ms/op 1.10
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.9093 ms/op 1.9406 ms/op 1.50
altair processInactivityUpdates - 250000 normalcase 21.668 ms/op 17.261 ms/op 1.26
altair processInactivityUpdates - 250000 worstcase 21.264 ms/op 17.216 ms/op 1.24
phase0 processRegistryUpdates - 250000 normalcase 6.8080 us/op 6.4840 us/op 1.05
phase0 processRegistryUpdates - 250000 badcase_full_deposits 316.27 us/op 219.67 us/op 1.44
phase0 processRegistryUpdates - 250000 worstcase 0.5 113.98 ms/op 99.958 ms/op 1.14
altair processRewardsAndPenalties - 250000 normalcase 29.759 ms/op 26.810 ms/op 1.11
altair processRewardsAndPenalties - 250000 worstcase 26.905 ms/op 25.850 ms/op 1.04
phase0 getAttestationDeltas - 250000 normalcase 8.9087 ms/op 7.6927 ms/op 1.16
phase0 getAttestationDeltas - 250000 worstcase 6.2268 ms/op 6.0289 ms/op 1.03
phase0 processSlashings - 250000 worstcase 83.437 us/op 79.326 us/op 1.05
altair processSyncCommitteeUpdates - 250000 11.382 ms/op 10.962 ms/op 1.04
BeaconState.hashTreeRoot - No change 224.00 ns/op 210.00 ns/op 1.07
BeaconState.hashTreeRoot - 1 full validator 92.608 us/op 71.028 us/op 1.30
BeaconState.hashTreeRoot - 32 full validator 890.83 us/op 854.87 us/op 1.04
BeaconState.hashTreeRoot - 512 full validator 10.489 ms/op 9.1101 ms/op 1.15
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 90.848 us/op 100.35 us/op 0.91
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.5690 ms/op 1.3277 ms/op 1.18
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 23.323 ms/op 24.136 ms/op 0.97
BeaconState.hashTreeRoot - 1 balances 74.091 us/op 67.565 us/op 1.10
BeaconState.hashTreeRoot - 32 balances 692.44 us/op 776.57 us/op 0.89
BeaconState.hashTreeRoot - 512 balances 8.4434 ms/op 7.7798 ms/op 1.09
BeaconState.hashTreeRoot - 250000 balances 170.28 ms/op 160.99 ms/op 1.06
aggregationBits - 2048 els - zipIndexesInBitList 23.442 us/op 21.752 us/op 1.08
byteArrayEquals 32 56.696 ns/op 52.776 ns/op 1.07
Buffer.compare 32 17.929 ns/op 16.882 ns/op 1.06
byteArrayEquals 1024 1.6352 us/op 1.5814 us/op 1.03
Buffer.compare 1024 26.409 ns/op 25.159 ns/op 1.05
byteArrayEquals 16384 25.639 us/op 24.762 us/op 1.04
Buffer.compare 16384 191.97 ns/op 170.24 ns/op 1.13
byteArrayEquals 123687377 215.09 ms/op 188.42 ms/op 1.14
Buffer.compare 123687377 9.5260 ms/op 6.8643 ms/op 1.39
byteArrayEquals 32 - diff last byte 59.855 ns/op 51.601 ns/op 1.16
Buffer.compare 32 - diff last byte 19.517 ns/op 16.821 ns/op 1.16
byteArrayEquals 1024 - diff last byte 1.7448 us/op 1.5573 us/op 1.12
Buffer.compare 1024 - diff last byte 28.859 ns/op 24.579 ns/op 1.17
byteArrayEquals 16384 - diff last byte 29.148 us/op 24.818 us/op 1.17
Buffer.compare 16384 - diff last byte 234.93 ns/op 195.59 ns/op 1.20
byteArrayEquals 123687377 - diff last byte 223.63 ms/op 186.87 ms/op 1.20
Buffer.compare 123687377 - diff last byte 8.7052 ms/op 6.0433 ms/op 1.44
byteArrayEquals 32 - random bytes 5.4210 ns/op 4.9250 ns/op 1.10
Buffer.compare 32 - random bytes 18.924 ns/op 16.422 ns/op 1.15
byteArrayEquals 1024 - random bytes 5.3500 ns/op 5.2880 ns/op 1.01
Buffer.compare 1024 - random bytes 19.216 ns/op 17.949 ns/op 1.07
byteArrayEquals 16384 - random bytes 5.3830 ns/op 4.9140 ns/op 1.10
Buffer.compare 16384 - random bytes 19.184 ns/op 16.420 ns/op 1.17
byteArrayEquals 123687377 - random bytes 7.6400 ns/op 6.3500 ns/op 1.20
Buffer.compare 123687377 - random bytes 23.980 ns/op 18.190 ns/op 1.32
regular array get 100000 times 41.107 us/op 32.605 us/op 1.26
wrappedArray get 100000 times 34.669 us/op 32.580 us/op 1.06
arrayWithProxy get 100000 times 12.504 ms/op 13.464 ms/op 0.93
ssz.Root.equals 48.394 ns/op 45.633 ns/op 1.06
byteArrayEquals 47.418 ns/op 44.761 ns/op 1.06
Buffer.compare 10.741 ns/op 10.210 ns/op 1.05
processSlot - 1 slots 12.277 us/op 9.9780 us/op 1.23
processSlot - 32 slots 2.1800 ms/op 2.3944 ms/op 0.91
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.3421 ms/op 2.9531 ms/op 1.13
getCommitteeAssignments - req 1 vs - 250000 vc 2.4292 ms/op 2.0978 ms/op 1.16
getCommitteeAssignments - req 100 vs - 250000 vc 4.5133 ms/op 4.0789 ms/op 1.11
getCommitteeAssignments - req 1000 vs - 250000 vc 4.7580 ms/op 4.3273 ms/op 1.10
findModifiedValidators - 10000 modified validators 788.28 ms/op 724.56 ms/op 1.09
findModifiedValidators - 1000 modified validators 730.12 ms/op 676.68 ms/op 1.08
findModifiedValidators - 100 modified validators 303.88 ms/op 250.06 ms/op 1.22
findModifiedValidators - 10 modified validators 147.05 ms/op 190.32 ms/op 0.77
findModifiedValidators - 1 modified validators 206.50 ms/op 156.83 ms/op 1.32
findModifiedValidators - no difference 170.33 ms/op 175.02 ms/op 0.97
compare ViewDUs 6.8662 s/op 6.1472 s/op 1.12
compare each validator Uint8Array 1.7748 s/op 1.8286 s/op 0.97
compare ViewDU to Uint8Array 1.2768 s/op 954.51 ms/op 1.34
migrate state 1000000 validators, 24 modified, 0 new 1.0747 s/op 730.88 ms/op 1.47
migrate state 1000000 validators, 1700 modified, 1000 new 1.4033 s/op 1.1762 s/op 1.19
migrate state 1000000 validators, 3400 modified, 2000 new 1.4611 s/op 1.2561 s/op 1.16
migrate state 1500000 validators, 24 modified, 0 new 913.64 ms/op 769.14 ms/op 1.19
migrate state 1500000 validators, 1700 modified, 1000 new 1.1607 s/op 1.1347 s/op 1.02
migrate state 1500000 validators, 3400 modified, 2000 new 1.3877 s/op 1.2365 s/op 1.12
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.3100 ns/op 4.3800 ns/op 0.98
state getBlockRootAtSlot - 250000 vs - 7PWei 627.57 ns/op 553.89 ns/op 1.13
naive computeProposerIndex 100000 validators 49.648 ms/op 58.414 ms/op 0.85
computeProposerIndex 100000 validators 1.4511 ms/op 1.5317 ms/op 0.95
naiveGetNextSyncCommitteeIndices 1000 validators 7.5166 s/op 8.1231 s/op 0.93
getNextSyncCommitteeIndices 1000 validators 106.50 ms/op 119.88 ms/op 0.89
naiveGetNextSyncCommitteeIndices 10000 validators 7.5724 s/op 11.164 s/op 0.68
getNextSyncCommitteeIndices 10000 validators 106.75 ms/op 184.10 ms/op 0.58
naiveGetNextSyncCommitteeIndices 100000 validators 7.5641 s/op 13.494 s/op 0.56
getNextSyncCommitteeIndices 100000 validators 107.31 ms/op 123.44 ms/op 0.87
naive computeShuffledIndex 100000 validators 23.478 s/op 23.233 s/op 1.01
cached computeShuffledIndex 100000 validators 543.97 ms/op 563.79 ms/op 0.96
naive computeShuffledIndex 2000000 validators 509.74 s/op 496.30 s/op 1.03
cached computeShuffledIndex 2000000 validators 33.669 s/op 33.802 s/op 1.00
computeProposers - vc 250000 609.49 us/op 618.65 us/op 0.99
computeEpochShuffling - vc 250000 40.647 ms/op 42.000 ms/op 0.97
getNextSyncCommittee - vc 250000 10.153 ms/op 10.439 ms/op 0.97
computeSigningRoot for AttestationData 20.636 us/op 19.023 us/op 1.08
hash AttestationData serialized data then Buffer.toString(base64) 1.5610 us/op 1.6070 us/op 0.97
toHexString serialized data 1.1818 us/op 1.2391 us/op 0.95
Buffer.toString(base64) 144.98 ns/op 145.76 ns/op 0.99
nodejs block root to RootHex using toHex 134.51 ns/op 141.85 ns/op 0.95
nodejs block root to RootHex using toRootHex 84.521 ns/op 90.742 ns/op 0.93
browser block root to RootHex using the deprecated toHexString 213.15 ns/op 214.72 ns/op 0.99
browser block root to RootHex using toHex 171.18 ns/op 174.41 ns/op 0.98
browser block root to RootHex using toRootHex 157.71 ns/op 159.04 ns/op 0.99

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 25bf0b6 into unstable Aug 12, 2025
29 of 34 checks passed
@wemeetagain wemeetagain deleted the mkeil/clean-up-get-blobs-conditionals branch August 12, 2025 13:49
Comment on lines +536 to +537
this.logger.error(error);
throw Error(error);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

why do we need to log and throw? isn't it logged upstream already?

@wemeetagain

Copy link
Copy Markdown
Member

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