这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@matthewkeil
Copy link
Member

@matthewkeil matthewkeil commented Sep 23, 2025

Motivation

closes #8196

Need to move over some comment fixes from #7947 that got closed and the work was merged via separate PR.

Comments addressed are:
#7947 (comment)
#7947 (comment)

@matthewkeil matthewkeil requested a review from a team as a code owner September 23, 2025 18:02
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @matthewkeil, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a technical debt item by porting specific comment and naming convention fixes from a previously closed PR (#7947). The core change involves refactoring Bucket enum names and their usage in related repository classes to be more explicit about the blockchain fork they pertain to (Deneb and Fulu), thereby enhancing code readability and maintainability.

Highlights

  • Bucket Enum Renaming: Renamed several Bucket enum members within packages/beacon-node/src/db/buckets.ts to improve clarity and align with specific blockchain forks. Specifically, allForks_blobSidecars and allForks_blobSidecarsArchive were updated to deneb_ prefixed names, and allForks_dataColumnSidecars and allForks_dataColumnSidecarsArchive were updated to fulu_ prefixed names.
  • Repository Constructor Updates: Updated the constructors of BlobSidecarsRepository, BlobSidecarsArchiveRepository, DataColumnSidecarRepository, and DataColumnSidecarArchiveRepository to reflect the new deneb_ and fulu_ prefixed Bucket enum names, ensuring consistency across the codebase.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request refactors several database bucket names to be more specific, changing the allForks_ prefix to deneb_ and fulu_ for buckets related to blob sidecars and data column sidecars. The changes are applied consistently across the enum definition and its usages in various repository classes. This improves code clarity and maintainability by accurately reflecting that these buckets are specific to certain forks. The changes are correct and well-implemented.

@codecov
Copy link

codecov bot commented Sep 23, 2025

Codecov Report

❌ Patch coverage is 70.00000% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 52.22%. Comparing base (47c570a) to head (424cdc0).
⚠️ Report is 2 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #8456   +/-   ##
=========================================
  Coverage     52.22%   52.22%           
=========================================
  Files           853      853           
  Lines         64898    64898           
  Branches       4766     4766           
=========================================
  Hits          33890    33890           
  Misses        30938    30938           
  Partials         70       70           
🚀 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.

nflaig
nflaig previously approved these changes Sep 23, 2025
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.

this will change the label of the metrics but that seems acceptable

@nflaig nflaig changed the title feat: move comments from PR7947 that got closed but code was merged via separate refactor PR chore: update blob and data column sidecars db bucket names Sep 23, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Sep 23, 2025

⚠️ Performance Alert ⚠️

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

Benchmark suite Current: 8c80ce3 Previous: 09716b4 Ratio
BLS verifyMultipleSignatures 64 - blst 48.124 ms/op 12.669 ms/op 3.80
BLS verifyMultipleSignatures 128 - blst 89.450 ms/op 21.001 ms/op 4.26
BLS verifyMultipleSignatures - same message - 64 - blst 10.254 ms/op 2.9620 ms/op 3.46
BLS aggregatePubkeys 128 - blst 226.29 us/op 74.154 us/op 3.05
validate api signedAggregateAndProof - struct 4.6628 ms/op 1.4045 ms/op 3.32
validate gossip signedAggregateAndProof - struct 4.7388 ms/op 1.4915 ms/op 3.18
pickEth1Vote - max votes 23.128 ms/op 6.5814 ms/op 3.51
bytes32 Buffer.toString(hex) from Uint8Array 1.0450 us/op 328.00 ns/op 3.19
Map set x1000 66.543 ns/op 20.253 ns/op 3.29
fastMsgIdFn h32 xxhash / 200 bytes 764.00 ns/op 216.00 ns/op 3.54
fastMsgIdFn h64 xxhash / 200 bytes 865.00 ns/op 260.00 ns/op 3.33
fastMsgIdFn sha256 / 1000 bytes 24.341 us/op 7.3080 us/op 3.33
fastMsgIdFn h32 xxhash / 1000 bytes 1.1870 us/op 347.00 ns/op 3.42
fastMsgIdFn h64 xxhash / 1000 bytes 1.4570 us/op 331.00 ns/op 4.40
fastMsgIdFn sha256 / 10000 bytes 276.79 us/op 64.139 us/op 4.32
fastMsgIdFn h32 xxhash / 10000 bytes 6.3760 us/op 1.8170 us/op 3.51
fastMsgIdFn h64 xxhash / 10000 bytes 4.1100 us/op 1.2010 us/op 3.42
send data - 1000 256B messages 63.987 ms/op 17.210 ms/op 3.72
send data - 1000 512B messages 67.088 ms/op 20.246 ms/op 3.31
send data - 1000 1200B messages 80.937 ms/op 24.528 ms/op 3.30
send data - 1000 2048B messages 85.173 ms/op 26.869 ms/op 3.17
send data - 1000 4096B messages 97.504 ms/op 28.717 ms/op 3.40
send data - 1000 16384B messages 168.61 ms/op 50.140 ms/op 3.36
send data - 1000 65536B messages 370.50 ms/op 121.17 ms/op 3.06
enrSubnets - fastDeserialize 64 bits 3.1460 us/op 892.00 ns/op 3.53
enrSubnets - ssz BitVector 64 bits 1.1360 us/op 334.00 ns/op 3.40
enrSubnets - fastDeserialize 4 bits 476.00 ns/op 136.00 ns/op 3.50
enrSubnets - ssz BitVector 4 bits 1.1470 us/op 333.00 ns/op 3.44
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 937.63 us/op 259.28 us/op 3.62
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 2.1875 ms/op 700.06 us/op 3.12
prioritizePeers score 0:0 att 64-1 sync 4-1 2.5482 ms/op 838.34 us/op 3.04
bitArray.getTrueBitIndexes() bitLen 128 3.5090 us/op 1.0360 us/op 3.39
bitArray.getTrueBitIndexes() bitLen 248 7.3780 us/op 1.8010 us/op 4.10
Buffer.concat 32 items 3.0500 us/op 788.00 ns/op 3.87
Uint8Array.set 32 items 4.4710 us/op 1.0380 us/op 4.31
Uint8Array.set - with subarray 7.3420 us/op 1.6170 us/op 4.54
Uint8Array.set - without subarray 3.3310 us/op 1.0710 us/op 3.11
Set add up to 64 items then delete first 7.4082 us/op 2.1948 us/op 3.38
OrderedSet add up to 64 items then delete first 12.362 us/op 3.3619 us/op 3.68
OrderedSet add up to 64 items then delete last 12.212 us/op 3.7766 us/op 3.23
Set add up to 64 items then delete middle 9.8156 us/op 2.6252 us/op 3.74
OrderedSet add up to 64 items then delete middle 17.505 us/op 5.6137 us/op 3.12
Set add up to 128 items then delete middle 21.038 us/op 4.9682 us/op 4.23
OrderedSet add up to 128 items then delete middle 56.867 us/op 14.677 us/op 3.87
OrderedSet add up to 256 items then delete first 53.869 us/op 17.070 us/op 3.16
forkChoice updateHead vc 1000000 bc 64 eq 0 14.540 ms/op 4.7373 ms/op 3.07
forkChoice updateHead vc 600000 bc 320 eq 0 8.9158 ms/op 2.8398 ms/op 3.14
forkChoice updateHead vc 600000 bc 1200 eq 0 10.731 ms/op 2.8239 ms/op 3.80
forkChoice updateHead vc 600000 bc 7200 eq 0 10.141 ms/op 3.1141 ms/op 3.26
forkChoice updateHead vc 600000 bc 64 eq 10000 30.800 ms/op 10.153 ms/op 3.03
forkChoice updateHead vc 600000 bc 64 eq 300000 58.038 ms/op 13.328 ms/op 4.35
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 13.810 ns/op 4.1600 ns/op 3.32
computeProposerIndex 100000 validators 5.6302 ms/op 1.5009 ms/op 3.75
cached computeShuffledIndex 2000000 validators 177.30 s/op 29.208 s/op 6.07
computeProposers - vc 250000 4.4820 ms/op 618.53 us/op 7.25
computeEpochShuffling - vc 250000 225.12 ms/op 40.998 ms/op 5.49
getNextSyncCommittee - vc 250000 64.480 ms/op 9.9116 ms/op 6.51
computeSigningRoot for AttestationData 213.91 us/op 19.985 us/op 10.70
hash AttestationData serialized data then Buffer.toString(base64) 12.089 us/op 1.5615 us/op 7.74
toHexString serialized data 20.430 us/op 1.0785 us/op 18.94
Buffer.toString(base64) 784.29 ns/op 138.17 ns/op 5.68
nodejs block root to RootHex using toHex 650.00 ns/op 140.45 ns/op 4.63
nodejs block root to RootHex using toRootHex 407.77 ns/op 88.301 ns/op 4.62
nodejs fromhex(blob) 520.40 ms/op 105.50 ms/op 4.93
nodejs fromHexInto(blob) 538.88 ms/op 92.089 ms/op 5.85
browser block root to RootHex using the deprecated toHexString 7.3420 us/op 204.68 ns/op 35.87
browser block root to RootHex using toHex 5.8905 us/op 158.61 ns/op 37.14
browser block root to RootHex using toRootHex 1.2969 us/op 147.93 ns/op 8.77
browser fromHexInto(blob) 4.8488 ms/op 761.24 us/op 6.37
browser fromHex(blob) 3.3480 s/op 773.08 ms/op 4.33
Full benchmark results
Benchmark suite Current: 8c80ce3 Previous: 09716b4 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 3.7759 ms/op 1.1710 ms/op 3.22
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 129.23 us/op 44.872 us/op 2.88
BLS verify - blst 2.7784 ms/op 1.0140 ms/op 2.74
BLS verifyMultipleSignatures 3 - blst 4.4452 ms/op 1.4882 ms/op 2.99
BLS verifyMultipleSignatures 8 - blst 6.2209 ms/op 2.4715 ms/op 2.52
BLS verifyMultipleSignatures 32 - blst 18.781 ms/op 7.4498 ms/op 2.52
BLS verifyMultipleSignatures 64 - blst 48.124 ms/op 12.669 ms/op 3.80
BLS verifyMultipleSignatures 128 - blst 89.450 ms/op 21.001 ms/op 4.26
BLS deserializing 10000 signatures 1.5307 s/op 830.86 ms/op 1.84
BLS deserializing 100000 signatures 13.817 s/op 8.1305 s/op 1.70
BLS verifyMultipleSignatures - same message - 3 - blst 2.6639 ms/op 1.1322 ms/op 2.35
BLS verifyMultipleSignatures - same message - 8 - blst 2.6160 ms/op 1.5057 ms/op 1.74
BLS verifyMultipleSignatures - same message - 32 - blst 5.5359 ms/op 2.2501 ms/op 2.46
BLS verifyMultipleSignatures - same message - 64 - blst 10.254 ms/op 2.9620 ms/op 3.46
BLS verifyMultipleSignatures - same message - 128 - blst 16.117 ms/op 5.5261 ms/op 2.92
BLS aggregatePubkeys 32 - blst 62.889 us/op 22.196 us/op 2.83
BLS aggregatePubkeys 128 - blst 226.29 us/op 74.154 us/op 3.05
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 146.84 ms/op 65.407 ms/op 2.24
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 104.78 ms/op 64.924 ms/op 1.61
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 61.729 ms/op 46.990 ms/op 1.31
getSlashingsAndExits - default max 277.86 us/op 112.59 us/op 2.47
getSlashingsAndExits - 2k 526.94 us/op 329.45 us/op 1.60
isKnown best case - 1 super set check 523.00 ns/op 203.00 ns/op 2.58
isKnown normal case - 2 super set checks 405.00 ns/op 202.00 ns/op 2.00
isKnown worse case - 16 super set checks 366.00 ns/op 204.00 ns/op 1.79
InMemoryCheckpointStateCache - add get delete 4.5810 us/op 2.4360 us/op 1.88
validate api signedAggregateAndProof - struct 4.6628 ms/op 1.4045 ms/op 3.32
validate gossip signedAggregateAndProof - struct 4.7388 ms/op 1.4915 ms/op 3.18
batch validate gossip attestation - vc 640000 - chunk 32 272.28 us/op 115.67 us/op 2.35
batch validate gossip attestation - vc 640000 - chunk 64 291.29 us/op 102.16 us/op 2.85
batch validate gossip attestation - vc 640000 - chunk 128 157.87 us/op 95.489 us/op 1.65
batch validate gossip attestation - vc 640000 - chunk 256 250.13 us/op 97.066 us/op 2.58
pickEth1Vote - no votes 2.5629 ms/op 934.88 us/op 2.74
pickEth1Vote - max votes 23.128 ms/op 6.5814 ms/op 3.51
pickEth1Vote - Eth1Data hashTreeRoot value x2048 20.480 ms/op 11.089 ms/op 1.85
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 49.258 ms/op 20.372 ms/op 2.42
pickEth1Vote - Eth1Data fastSerialize value x2048 1.1727 ms/op 451.37 us/op 2.60
pickEth1Vote - Eth1Data fastSerialize tree x2048 8.1169 ms/op 3.6623 ms/op 2.22
bytes32 toHexString 1.1850 us/op 430.00 ns/op 2.76
bytes32 Buffer.toString(hex) 661.00 ns/op 251.00 ns/op 2.63
bytes32 Buffer.toString(hex) from Uint8Array 1.0450 us/op 328.00 ns/op 3.19
bytes32 Buffer.toString(hex) + 0x 540.00 ns/op 270.00 ns/op 2.00
Object access 1 prop 0.25200 ns/op 0.11900 ns/op 2.12
Map access 1 prop 0.24200 ns/op 0.12600 ns/op 1.92
Object get x1000 10.281 ns/op 5.6910 ns/op 1.81
Map get x1000 13.089 ns/op 6.4110 ns/op 2.04
Object set x1000 50.656 ns/op 29.312 ns/op 1.73
Map set x1000 66.543 ns/op 20.253 ns/op 3.29
Return object 10000 times 0.73900 ns/op 0.28810 ns/op 2.57
Throw Error 10000 times 12.647 us/op 4.3914 us/op 2.88
toHex 351.92 ns/op 148.53 ns/op 2.37
Buffer.from 224.65 ns/op 126.56 ns/op 1.78
shared Buffer 210.61 ns/op 81.181 ns/op 2.59
fastMsgIdFn sha256 / 200 bytes 4.9490 us/op 2.2000 us/op 2.25
fastMsgIdFn h32 xxhash / 200 bytes 764.00 ns/op 216.00 ns/op 3.54
fastMsgIdFn h64 xxhash / 200 bytes 865.00 ns/op 260.00 ns/op 3.33
fastMsgIdFn sha256 / 1000 bytes 24.341 us/op 7.3080 us/op 3.33
fastMsgIdFn h32 xxhash / 1000 bytes 1.1870 us/op 347.00 ns/op 3.42
fastMsgIdFn h64 xxhash / 1000 bytes 1.4570 us/op 331.00 ns/op 4.40
fastMsgIdFn sha256 / 10000 bytes 276.79 us/op 64.139 us/op 4.32
fastMsgIdFn h32 xxhash / 10000 bytes 6.3760 us/op 1.8170 us/op 3.51
fastMsgIdFn h64 xxhash / 10000 bytes 4.1100 us/op 1.2010 us/op 3.42
send data - 1000 256B messages 63.987 ms/op 17.210 ms/op 3.72
send data - 1000 512B messages 67.088 ms/op 20.246 ms/op 3.31
send data - 1000 1024B messages 69.159 ms/op 27.947 ms/op 2.47
send data - 1000 1200B messages 80.937 ms/op 24.528 ms/op 3.30
send data - 1000 2048B messages 85.173 ms/op 26.869 ms/op 3.17
send data - 1000 4096B messages 97.504 ms/op 28.717 ms/op 3.40
send data - 1000 16384B messages 168.61 ms/op 50.140 ms/op 3.36
send data - 1000 65536B messages 370.50 ms/op 121.17 ms/op 3.06
enrSubnets - fastDeserialize 64 bits 3.1460 us/op 892.00 ns/op 3.53
enrSubnets - ssz BitVector 64 bits 1.1360 us/op 334.00 ns/op 3.40
enrSubnets - fastDeserialize 4 bits 476.00 ns/op 136.00 ns/op 3.50
enrSubnets - ssz BitVector 4 bits 1.1470 us/op 333.00 ns/op 3.44
prioritizePeers score -10:0 att 32-0.1 sync 2-0 596.06 us/op 234.65 us/op 2.54
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 937.63 us/op 259.28 us/op 3.62
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 1.1110 ms/op 377.75 us/op 2.94
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 2.1875 ms/op 700.06 us/op 3.12
prioritizePeers score 0:0 att 64-1 sync 4-1 2.5482 ms/op 838.34 us/op 3.04
array of 16000 items push then shift 5.9741 us/op 1.6020 us/op 3.73
LinkedList of 16000 items push then shift 15.435 ns/op 7.1110 ns/op 2.17
array of 16000 items push then pop 211.24 ns/op 74.543 ns/op 2.83
LinkedList of 16000 items push then pop 15.876 ns/op 7.2010 ns/op 2.20
array of 24000 items push then shift 8.3193 us/op 2.3669 us/op 3.51
LinkedList of 24000 items push then shift 46.169 ns/op 7.1420 ns/op 6.46
array of 24000 items push then pop 349.27 ns/op 106.03 ns/op 3.29
LinkedList of 24000 items push then pop 25.477 ns/op 7.0630 ns/op 3.61
intersect bitArray bitLen 8 26.269 ns/op 6.3960 ns/op 4.11
intersect array and set length 8 179.53 ns/op 37.393 ns/op 4.80
intersect bitArray bitLen 128 106.99 ns/op 29.478 ns/op 3.63
intersect array and set length 128 2.1382 us/op 616.23 ns/op 3.47
bitArray.getTrueBitIndexes() bitLen 128 3.5090 us/op 1.0360 us/op 3.39
bitArray.getTrueBitIndexes() bitLen 248 7.3780 us/op 1.8010 us/op 4.10
bitArray.getTrueBitIndexes() bitLen 512 11.210 us/op 3.7390 us/op 3.00
Buffer.concat 32 items 3.0500 us/op 788.00 ns/op 3.87
Uint8Array.set 32 items 4.4710 us/op 1.0380 us/op 4.31
Buffer.copy 6.5600 us/op 2.2170 us/op 2.96
Uint8Array.set - with subarray 7.3420 us/op 1.6170 us/op 4.54
Uint8Array.set - without subarray 3.3310 us/op 1.0710 us/op 3.11
getUint32 - dataview 554.00 ns/op 214.00 ns/op 2.59
getUint32 - manual 163.00 ns/op 124.00 ns/op 1.31
Set add up to 64 items then delete first 7.4082 us/op 2.1948 us/op 3.38
OrderedSet add up to 64 items then delete first 12.362 us/op 3.3619 us/op 3.68
Set add up to 64 items then delete last 6.7123 us/op 2.5438 us/op 2.64
OrderedSet add up to 64 items then delete last 12.212 us/op 3.7766 us/op 3.23
Set add up to 64 items then delete middle 9.8156 us/op 2.6252 us/op 3.74
OrderedSet add up to 64 items then delete middle 17.505 us/op 5.6137 us/op 3.12
Set add up to 128 items then delete first 14.493 us/op 5.2153 us/op 2.78
OrderedSet add up to 128 items then delete first 21.706 us/op 8.4298 us/op 2.57
Set add up to 128 items then delete last 14.552 us/op 5.3382 us/op 2.73
OrderedSet add up to 128 items then delete last 20.596 us/op 7.7593 us/op 2.65
Set add up to 128 items then delete middle 21.038 us/op 4.9682 us/op 4.23
OrderedSet add up to 128 items then delete middle 56.867 us/op 14.677 us/op 3.87
Set add up to 256 items then delete first 26.159 us/op 11.044 us/op 2.37
OrderedSet add up to 256 items then delete first 53.869 us/op 17.070 us/op 3.16
Set add up to 256 items then delete last 24.145 us/op 9.8114 us/op 2.46
OrderedSet add up to 256 items then delete last 35.524 us/op 15.213 us/op 2.34
Set add up to 256 items then delete middle 19.722 us/op 9.8868 us/op 1.99
OrderedSet add up to 256 items then delete middle 81.020 us/op 44.554 us/op 1.82
transfer serialized Status (84 B) 4.0590 us/op 2.2260 us/op 1.82
copy serialized Status (84 B) 2.2830 us/op 1.2300 us/op 1.86
transfer serialized SignedVoluntaryExit (112 B) 4.7530 us/op 2.3480 us/op 2.02
copy serialized SignedVoluntaryExit (112 B) 2.3380 us/op 1.2680 us/op 1.84
transfer serialized ProposerSlashing (416 B) 6.4390 us/op 2.2950 us/op 2.81
copy serialized ProposerSlashing (416 B) 4.3180 us/op 1.2670 us/op 3.41
transfer serialized Attestation (485 B) 6.8120 us/op 2.2880 us/op 2.98
copy serialized Attestation (485 B) 3.0840 us/op 1.2650 us/op 2.44
transfer serialized AttesterSlashing (33232 B) 5.0270 us/op 2.3660 us/op 2.12
copy serialized AttesterSlashing (33232 B) 6.7570 us/op 3.9800 us/op 1.70
transfer serialized Small SignedBeaconBlock (128000 B) 6.7330 us/op 3.2480 us/op 2.07
copy serialized Small SignedBeaconBlock (128000 B) 18.973 us/op 40.526 us/op 0.47
transfer serialized Avg SignedBeaconBlock (200000 B) 7.2080 us/op 3.6820 us/op 1.96
copy serialized Avg SignedBeaconBlock (200000 B) 31.517 us/op 14.504 us/op 2.17
transfer serialized BlobsSidecar (524380 B) 9.3160 us/op 3.9630 us/op 2.35
copy serialized BlobsSidecar (524380 B) 77.726 us/op 92.806 us/op 0.84
transfer serialized Big SignedBeaconBlock (1000000 B) 8.0390 us/op 4.2140 us/op 1.91
copy serialized Big SignedBeaconBlock (1000000 B) 145.81 us/op 118.04 us/op 1.24
pass gossip attestations to forkchoice per slot 5.9486 ms/op 2.7583 ms/op 2.16
forkChoice updateHead vc 100000 bc 64 eq 0 900.97 us/op 446.91 us/op 2.02
forkChoice updateHead vc 600000 bc 64 eq 0 5.5923 ms/op 2.8068 ms/op 1.99
forkChoice updateHead vc 1000000 bc 64 eq 0 14.540 ms/op 4.7373 ms/op 3.07
forkChoice updateHead vc 600000 bc 320 eq 0 8.9158 ms/op 2.8398 ms/op 3.14
forkChoice updateHead vc 600000 bc 1200 eq 0 10.731 ms/op 2.8239 ms/op 3.80
forkChoice updateHead vc 600000 bc 7200 eq 0 10.141 ms/op 3.1141 ms/op 3.26
forkChoice updateHead vc 600000 bc 64 eq 1000 30.686 ms/op 10.385 ms/op 2.95
forkChoice updateHead vc 600000 bc 64 eq 10000 30.800 ms/op 10.153 ms/op 3.03
forkChoice updateHead vc 600000 bc 64 eq 300000 58.038 ms/op 13.328 ms/op 4.35
computeDeltas 500000 validators 300 proto nodes 8.1022 ms/op 3.9298 ms/op 2.06
computeDeltas 500000 validators 1200 proto nodes 7.3002 ms/op 3.8352 ms/op 1.90
computeDeltas 500000 validators 7200 proto nodes 6.2516 ms/op 3.8403 ms/op 1.63
computeDeltas 750000 validators 300 proto nodes 10.199 ms/op 5.8282 ms/op 1.75
computeDeltas 750000 validators 1200 proto nodes 6.8984 ms/op 5.8794 ms/op 1.17
computeDeltas 750000 validators 7200 proto nodes 6.9962 ms/op 6.0280 ms/op 1.16
computeDeltas 1400000 validators 300 proto nodes 14.893 ms/op 10.988 ms/op 1.36
computeDeltas 1400000 validators 1200 proto nodes 21.648 ms/op 11.101 ms/op 1.95
computeDeltas 1400000 validators 7200 proto nodes 23.690 ms/op 11.205 ms/op 2.11
computeDeltas 2100000 validators 300 proto nodes 31.809 ms/op 17.425 ms/op 1.83
computeDeltas 2100000 validators 1200 proto nodes 25.661 ms/op 17.324 ms/op 1.48
computeDeltas 2100000 validators 7200 proto nodes 25.812 ms/op 16.989 ms/op 1.52
altair processAttestation - 250000 vs - 7PWei normalcase 2.8675 ms/op 2.2506 ms/op 1.27
altair processAttestation - 250000 vs - 7PWei worstcase 4.1873 ms/op 3.9039 ms/op 1.07
altair processAttestation - setStatus - 1/6 committees join 178.94 us/op 146.91 us/op 1.22
altair processAttestation - setStatus - 1/3 committees join 334.85 us/op 285.01 us/op 1.17
altair processAttestation - setStatus - 1/2 committees join 604.04 us/op 379.43 us/op 1.59
altair processAttestation - setStatus - 2/3 committees join 615.03 us/op 483.93 us/op 1.27
altair processAttestation - setStatus - 4/5 committees join 996.31 us/op 687.27 us/op 1.45
altair processAttestation - setStatus - 100% committees join 1.5860 ms/op 789.81 us/op 2.01
altair processBlock - 250000 vs - 7PWei normalcase 6.6035 ms/op 5.6813 ms/op 1.16
altair processBlock - 250000 vs - 7PWei normalcase hashState 35.608 ms/op 32.061 ms/op 1.11
altair processBlock - 250000 vs - 7PWei worstcase 47.735 ms/op 40.639 ms/op 1.17
altair processBlock - 250000 vs - 7PWei worstcase hashState 84.518 ms/op 84.897 ms/op 1.00
phase0 processBlock - 250000 vs - 7PWei normalcase 1.8901 ms/op 1.9957 ms/op 0.95
phase0 processBlock - 250000 vs - 7PWei worstcase 26.788 ms/op 26.070 ms/op 1.03
altair processEth1Data - 250000 vs - 7PWei normalcase 409.10 us/op 350.10 us/op 1.17
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.3950 us/op 7.7030 us/op 0.83
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 41.029 us/op 47.621 us/op 0.86
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 11.336 us/op 13.707 us/op 0.83
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 7.1130 us/op 8.4310 us/op 0.84
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 144.89 us/op 226.06 us/op 0.64
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 2.1157 ms/op 2.1980 ms/op 0.96
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.9186 ms/op 3.0456 ms/op 0.96
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.9257 ms/op 2.4710 ms/op 1.18
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 9.3738 ms/op 5.4001 ms/op 1.74
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.9144 ms/op 2.4873 ms/op 1.17
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 7.5945 ms/op 5.5267 ms/op 1.37
Tree 40 250000 create 575.22 ms/op 536.42 ms/op 1.07
Tree 40 250000 get(125000) 182.69 ns/op 146.62 ns/op 1.25
Tree 40 250000 set(125000) 2.0969 us/op 1.6746 us/op 1.25
Tree 40 250000 toArray() 22.320 ms/op 21.118 ms/op 1.06
Tree 40 250000 iterate all - toArray() + loop 29.957 ms/op 21.852 ms/op 1.37
Tree 40 250000 iterate all - get(i) 70.357 ms/op 59.181 ms/op 1.19
Array 250000 create 4.5626 ms/op 2.6394 ms/op 1.73
Array 250000 clone - spread 1.7523 ms/op 838.87 us/op 2.09
Array 250000 get(125000) 0.50700 ns/op 0.41100 ns/op 1.23
Array 250000 set(125000) 0.52900 ns/op 0.43200 ns/op 1.22
Array 250000 iterate all - loop 104.04 us/op 84.696 us/op 1.23
phase0 afterProcessEpoch - 250000 vs - 7PWei 61.235 ms/op 43.611 ms/op 1.40
Array.fill - length 1000000 5.0192 ms/op 3.8921 ms/op 1.29
Array push - length 1000000 17.829 ms/op 15.497 ms/op 1.15
Array.get 0.38595 ns/op 0.28854 ns/op 1.34
Uint8Array.get 0.59485 ns/op 0.45361 ns/op 1.31
phase0 beforeProcessEpoch - 250000 vs - 7PWei 21.305 ms/op 17.991 ms/op 1.18
altair processEpoch - mainnet_e81889 390.31 ms/op 264.13 ms/op 1.48
mainnet_e81889 - altair beforeProcessEpoch 23.728 ms/op 17.416 ms/op 1.36
mainnet_e81889 - altair processJustificationAndFinalization 8.9890 us/op 6.3060 us/op 1.43
mainnet_e81889 - altair processInactivityUpdates 7.3271 ms/op 4.5379 ms/op 1.61
mainnet_e81889 - altair processRewardsAndPenalties 59.981 ms/op 44.487 ms/op 1.35
mainnet_e81889 - altair processRegistryUpdates 2.2410 us/op 709.00 ns/op 3.16
mainnet_e81889 - altair processSlashings 429.00 ns/op 194.00 ns/op 2.21
mainnet_e81889 - altair processEth1DataReset 358.00 ns/op 176.00 ns/op 2.03
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.1371 ms/op 1.2873 ms/op 1.66
mainnet_e81889 - altair processSlashingsReset 1.5130 us/op 984.00 ns/op 1.54
mainnet_e81889 - altair processRandaoMixesReset 2.8400 us/op 1.2490 us/op 2.27
mainnet_e81889 - altair processHistoricalRootsUpdate 424.00 ns/op 194.00 ns/op 2.19
mainnet_e81889 - altair processParticipationFlagUpdates 1.6250 us/op 532.00 ns/op 3.05
mainnet_e81889 - altair processSyncCommitteeUpdates 341.00 ns/op 150.00 ns/op 2.27
mainnet_e81889 - altair afterProcessEpoch 116.40 ms/op 46.277 ms/op 2.52
capella processEpoch - mainnet_e217614 1.2671 s/op 1.0900 s/op 1.16
mainnet_e217614 - capella beforeProcessEpoch 99.276 ms/op 67.642 ms/op 1.47
mainnet_e217614 - capella processJustificationAndFinalization 8.2660 us/op 5.9970 us/op 1.38
mainnet_e217614 - capella processInactivityUpdates 21.263 ms/op 15.869 ms/op 1.34
mainnet_e217614 - capella processRewardsAndPenalties 238.94 ms/op 210.11 ms/op 1.14
mainnet_e217614 - capella processRegistryUpdates 9.0530 us/op 7.4740 us/op 1.21
mainnet_e217614 - capella processSlashings 388.00 ns/op 204.00 ns/op 1.90
mainnet_e217614 - capella processEth1DataReset 309.00 ns/op 181.00 ns/op 1.71
mainnet_e217614 - capella processEffectiveBalanceUpdates 7.1614 ms/op 4.4206 ms/op 1.62
mainnet_e217614 - capella processSlashingsReset 1.5410 us/op 1.2160 us/op 1.27
mainnet_e217614 - capella processRandaoMixesReset 1.9980 us/op 1.3270 us/op 1.51
mainnet_e217614 - capella processHistoricalRootsUpdate 299.00 ns/op 197.00 ns/op 1.52
mainnet_e217614 - capella processParticipationFlagUpdates 931.00 ns/op 544.00 ns/op 1.71
mainnet_e217614 - capella afterProcessEpoch 165.99 ms/op 121.48 ms/op 1.37
phase0 processEpoch - mainnet_e58758 414.51 ms/op 345.26 ms/op 1.20
mainnet_e58758 - phase0 beforeProcessEpoch 179.30 ms/op 87.018 ms/op 2.06
mainnet_e58758 - phase0 processJustificationAndFinalization 16.097 us/op 6.2070 us/op 2.59
mainnet_e58758 - phase0 processRewardsAndPenalties 87.758 ms/op 41.632 ms/op 2.11
mainnet_e58758 - phase0 processRegistryUpdates 13.303 us/op 4.2250 us/op 3.15
mainnet_e58758 - phase0 processSlashings 519.00 ns/op 177.00 ns/op 2.93
mainnet_e58758 - phase0 processEth1DataReset 370.00 ns/op 180.00 ns/op 2.06
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.7266 ms/op 1.2511 ms/op 2.18
mainnet_e58758 - phase0 processSlashingsReset 1.5020 us/op 932.00 ns/op 1.61
mainnet_e58758 - phase0 processRandaoMixesReset 2.2110 us/op 1.4740 us/op 1.50
mainnet_e58758 - phase0 processHistoricalRootsUpdate 432.00 ns/op 217.00 ns/op 1.99
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.6400 us/op 1.0530 us/op 1.56
mainnet_e58758 - phase0 afterProcessEpoch 60.802 ms/op 37.253 ms/op 1.63
phase0 processEffectiveBalanceUpdates - 250000 normalcase 3.1891 ms/op 1.4368 ms/op 2.22
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.2336 ms/op 2.1904 ms/op 1.48
altair processInactivityUpdates - 250000 normalcase 23.290 ms/op 20.582 ms/op 1.13
altair processInactivityUpdates - 250000 worstcase 24.536 ms/op 20.892 ms/op 1.17
phase0 processRegistryUpdates - 250000 normalcase 6.5710 us/op 7.6150 us/op 0.86
phase0 processRegistryUpdates - 250000 badcase_full_deposits 267.06 us/op 333.54 us/op 0.80
phase0 processRegistryUpdates - 250000 worstcase 0.5 131.10 ms/op 135.29 ms/op 0.97
altair processRewardsAndPenalties - 250000 normalcase 28.875 ms/op 29.304 ms/op 0.99
altair processRewardsAndPenalties - 250000 worstcase 29.244 ms/op 30.302 ms/op 0.97
phase0 getAttestationDeltas - 250000 normalcase 6.7605 ms/op 10.372 ms/op 0.65
phase0 getAttestationDeltas - 250000 worstcase 8.5993 ms/op 6.7555 ms/op 1.27
phase0 processSlashings - 250000 worstcase 89.827 us/op 143.72 us/op 0.63
altair processSyncCommitteeUpdates - 250000 12.205 ms/op 15.252 ms/op 0.80
BeaconState.hashTreeRoot - No change 281.00 ns/op 247.00 ns/op 1.14
BeaconState.hashTreeRoot - 1 full validator 105.22 us/op 108.25 us/op 0.97
BeaconState.hashTreeRoot - 32 full validator 1.0525 ms/op 1.3122 ms/op 0.80
BeaconState.hashTreeRoot - 512 full validator 20.147 ms/op 14.785 ms/op 1.36
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 183.52 us/op 135.66 us/op 1.35
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.7235 ms/op 2.4680 ms/op 0.70
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 29.897 ms/op 28.759 ms/op 1.04
BeaconState.hashTreeRoot - 1 balances 105.47 us/op 111.12 us/op 0.95
BeaconState.hashTreeRoot - 32 balances 832.20 us/op 1.1141 ms/op 0.75
BeaconState.hashTreeRoot - 512 balances 9.0257 ms/op 9.0189 ms/op 1.00
BeaconState.hashTreeRoot - 250000 balances 202.20 ms/op 198.91 ms/op 1.02
aggregationBits - 2048 els - zipIndexesInBitList 27.255 us/op 24.877 us/op 1.10
byteArrayEquals 32 160.69 ns/op 57.589 ns/op 2.79
Buffer.compare 32 43.262 ns/op 18.822 ns/op 2.30
byteArrayEquals 1024 3.0532 us/op 1.6638 us/op 1.84
Buffer.compare 1024 56.861 ns/op 26.450 ns/op 2.15
byteArrayEquals 16384 49.326 us/op 26.532 us/op 1.86
Buffer.compare 16384 414.79 ns/op 183.45 ns/op 2.26
byteArrayEquals 123687377 281.37 ms/op 195.76 ms/op 1.44
Buffer.compare 123687377 7.1967 ms/op 7.4560 ms/op 0.97
byteArrayEquals 32 - diff last byte 79.488 ns/op 53.933 ns/op 1.47
Buffer.compare 32 - diff last byte 28.194 ns/op 17.898 ns/op 1.58
byteArrayEquals 1024 - diff last byte 2.0164 us/op 1.6296 us/op 1.24
Buffer.compare 1024 - diff last byte 30.358 ns/op 26.262 ns/op 1.16
byteArrayEquals 16384 - diff last byte 30.029 us/op 25.213 us/op 1.19
Buffer.compare 16384 - diff last byte 218.72 ns/op 186.71 ns/op 1.17
byteArrayEquals 123687377 - diff last byte 238.81 ms/op 200.42 ms/op 1.19
Buffer.compare 123687377 - diff last byte 7.1892 ms/op 10.442 ms/op 0.69
byteArrayEquals 32 - random bytes 10.083 ns/op 5.4910 ns/op 1.84
Buffer.compare 32 - random bytes 27.512 ns/op 19.034 ns/op 1.45
byteArrayEquals 1024 - random bytes 6.5260 ns/op 5.3020 ns/op 1.23
Buffer.compare 1024 - random bytes 21.970 ns/op 18.790 ns/op 1.17
byteArrayEquals 16384 - random bytes 6.6300 ns/op 5.4860 ns/op 1.21
Buffer.compare 16384 - random bytes 23.505 ns/op 23.219 ns/op 1.01
byteArrayEquals 123687377 - random bytes 7.7700 ns/op 6.6200 ns/op 1.17
Buffer.compare 123687377 - random bytes 21.260 ns/op 19.730 ns/op 1.08
regular array get 100000 times 41.580 us/op 47.905 us/op 0.87
wrappedArray get 100000 times 41.584 us/op 46.285 us/op 0.90
arrayWithProxy get 100000 times 15.014 ms/op 13.602 ms/op 1.10
ssz.Root.equals 56.909 ns/op 49.659 ns/op 1.15
byteArrayEquals 56.066 ns/op 48.601 ns/op 1.15
Buffer.compare 12.743 ns/op 11.228 ns/op 1.13
processSlot - 1 slots 11.977 us/op 11.320 us/op 1.06
processSlot - 32 slots 2.4066 ms/op 3.0683 ms/op 0.78
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.3054 ms/op 3.8576 ms/op 0.86
getCommitteeAssignments - req 1 vs - 250000 vc 2.5325 ms/op 2.3184 ms/op 1.09
getCommitteeAssignments - req 100 vs - 250000 vc 4.9389 ms/op 4.3823 ms/op 1.13
getCommitteeAssignments - req 1000 vs - 250000 vc 5.3239 ms/op 4.8834 ms/op 1.09
findModifiedValidators - 10000 modified validators 784.71 ms/op 843.71 ms/op 0.93
findModifiedValidators - 1000 modified validators 758.94 ms/op 751.43 ms/op 1.01
findModifiedValidators - 100 modified validators 315.38 ms/op 317.20 ms/op 0.99
findModifiedValidators - 10 modified validators 207.60 ms/op 189.07 ms/op 1.10
findModifiedValidators - 1 modified validators 154.81 ms/op 207.49 ms/op 0.75
findModifiedValidators - no difference 161.07 ms/op 170.08 ms/op 0.95
compare ViewDUs 6.3987 s/op 7.4195 s/op 0.86
compare each validator Uint8Array 1.8613 s/op 1.9008 s/op 0.98
compare ViewDU to Uint8Array 1.1666 s/op 1.3377 s/op 0.87
migrate state 1000000 validators, 24 modified, 0 new 976.94 ms/op 902.49 ms/op 1.08
migrate state 1000000 validators, 1700 modified, 1000 new 1.3208 s/op 1.1878 s/op 1.11
migrate state 1000000 validators, 3400 modified, 2000 new 1.9729 s/op 1.2718 s/op 1.55
migrate state 1500000 validators, 24 modified, 0 new 1.4678 s/op 937.77 ms/op 1.57
migrate state 1500000 validators, 1700 modified, 1000 new 2.1094 s/op 1.1149 s/op 1.89
migrate state 1500000 validators, 3400 modified, 2000 new 2.9522 s/op 1.2844 s/op 2.30
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 13.810 ns/op 4.1600 ns/op 3.32
state getBlockRootAtSlot - 250000 vs - 7PWei 1.5406 us/op 700.58 ns/op 2.20
naive computeProposerIndex 100000 validators 140.54 ms/op 52.637 ms/op 2.67
computeProposerIndex 100000 validators 5.6302 ms/op 1.5009 ms/op 3.75
naiveGetNextSyncCommitteeIndices 1000 validators 16.103 s/op 7.2299 s/op 2.23
getNextSyncCommitteeIndices 1000 validators 244.60 ms/op 114.62 ms/op 2.13
naiveGetNextSyncCommitteeIndices 10000 validators 11.907 s/op 8.1215 s/op 1.47
getNextSyncCommitteeIndices 10000 validators 155.18 ms/op 122.22 ms/op 1.27
naiveGetNextSyncCommitteeIndices 100000 validators 13.885 s/op 8.1775 s/op 1.70
getNextSyncCommitteeIndices 100000 validators 145.70 ms/op 113.57 ms/op 1.28
naive computeShuffledIndex 100000 validators 28.904 s/op 24.019 s/op 1.20
cached computeShuffledIndex 100000 validators 870.52 ms/op 548.79 ms/op 1.59
naive computeShuffledIndex 2000000 validators 1466.2 s/op 519.74 s/op 2.82
cached computeShuffledIndex 2000000 validators 177.30 s/op 29.208 s/op 6.07
computeProposers - vc 250000 4.4820 ms/op 618.53 us/op 7.25
computeEpochShuffling - vc 250000 225.12 ms/op 40.998 ms/op 5.49
getNextSyncCommittee - vc 250000 64.480 ms/op 9.9116 ms/op 6.51
computeSigningRoot for AttestationData 213.91 us/op 19.985 us/op 10.70
hash AttestationData serialized data then Buffer.toString(base64) 12.089 us/op 1.5615 us/op 7.74
toHexString serialized data 20.430 us/op 1.0785 us/op 18.94
Buffer.toString(base64) 784.29 ns/op 138.17 ns/op 5.68
nodejs block root to RootHex using toHex 650.00 ns/op 140.45 ns/op 4.63
nodejs block root to RootHex using toRootHex 407.77 ns/op 88.301 ns/op 4.62
nodejs fromhex(blob) 520.40 ms/op 105.50 ms/op 4.93
nodejs fromHexInto(blob) 538.88 ms/op 92.089 ms/op 5.85
browser block root to RootHex using the deprecated toHexString 7.3420 us/op 204.68 ns/op 35.87
browser block root to RootHex using toHex 5.8905 us/op 158.61 ns/op 37.14
browser block root to RootHex using toRootHex 1.2969 us/op 147.93 ns/op 8.77
browser fromHexInto(blob) 4.8488 ms/op 761.24 us/op 6.37
browser fromHex(blob) 3.3480 s/op 773.08 ms/op 4.33

by benchmarkbot/action

@matthewkeil matthewkeil changed the title chore: update blob and data column sidecars db bucket names chore: move PR comments from #7947 that got closed Sep 23, 2025
@matthewkeil matthewkeil requested a review from nflaig September 23, 2025 19:21
nflaig
nflaig previously approved these changes Sep 23, 2025
@matthewkeil matthewkeil merged commit 83de5b8 into unstable Sep 23, 2025
23 of 27 checks passed
@matthewkeil matthewkeil deleted the mkeil/moving-pr7947-comments branch September 23, 2025 20:40
@wemeetagain
Copy link
Member

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

Need to move PR comments from #7947 over to unstable

4 participants