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

Conversation

@twoeths
Copy link
Contributor

@twoeths twoeths commented Sep 22, 2025

Motivation

  • reflect the in-progress PeerDAS dashboard to our source code

Description

  • PeerDAS dashboard was updated but we did not track it in our source code, need to sync it now and review/revise later

@twoeths twoeths requested a review from a team as a code owner September 22, 2025 07:59
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @twoeths, 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 updates the PeerDAS Grafana dashboard to reflect recent in-progress changes. The synchronization involves introducing new visualizations like a heatmap for data column delays, refining existing metric queries and display settings, and reorganizing the dashboard layout for better clarity and comprehensive monitoring of data column processing and engine_getBlobsV2 operations.

Highlights

  • Dashboard Sync: The PeerDAS Grafana dashboard has been synchronized with its latest in-progress version, incorporating recent updates and improvements.
  • New Heatmap Panel: A new heatmap panel has been introduced to visualize the 'Data columns receiving delay', providing a more granular view of latency.
  • Metric Refinements: Several existing panels have received updated descriptions, refined Prometheus query expressions, and adjusted display options (e.g., legend formats, fill opacity, gradient modes) for enhanced clarity and data representation.
  • Dashboard Layout Updates: Panel IDs and grid positions have been significantly adjusted across the dashboard, indicating a comprehensive reorganization of its visual layout for improved usability.
  • engine_getBlobsV2 Metrics Enhancement: The engine_getBlobsV2 section of the dashboard has been enhanced to combine requests and responses into a single panel, and the 'Unsuccessful requests rate' panel has been re-tuned and repositioned for better insights.
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 syncs an in-progress PeerDAS Grafana dashboard. The changes involve a major reorganization of the dashboard, with panels being added, removed, and modified. While the new dashboard structure looks reasonable, I've found a few issues. There's a minor typo in a legend and some extraneous whitespace in a query. More critically, several panels use Prometheus metrics that do not seem to be defined in the provided metrics files, or use incorrect prefixes (e.g., beacon_ for custom metrics). This will cause those panels to fail to display data. Please ensure all metrics are correctly named and implemented before this is merged.

Comment on lines 594 to 607
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"expr": "avg_over_time(\n (rate(beacon_data_column_sidecar_processing_requests_total[1m]) * 12 > 0)[$rate_interval:]\n)\n-\navg_over_time(\n (rate(beacon_data_column_sidecar_processing_successes_total[1m]) * 12 > 0)[$rate_interval:]\n) != 0",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
"legendFormat": "{{instance}}",
"expr": "rate(lodestar_gossip_data_column_received_to_gossip_validate_seconds_bucket[$rate_interval])",
"instant": false,
"legendFormat": "__auto",
"range": true,
"refId": "A"
}
],
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

The metric lodestar_gossip_data_column_received_to_gossip_validate_seconds_bucket used in this query is not defined in packages/beacon-node/src/metrics/metrics/lodestar.ts. This panel will likely fail to show data.

Copy link
Member

Choose a reason for hiding this comment

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

@twoeths this seems correct, the metric doesn't exist

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes I think we need to revise based on each of the comment here, all seems legit

Comment on lines 761 to 776
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "rate(beacon_engine_getBlobsV2_requests_total[$rate_interval])",
"format": "time_series",
"expr": "rate(beacon_data_column_sidecar_gossip_verification_seconds_bucket [$rate_interval])\n",
"format": "heatmap",
"instant": false,
"interval": "",
"intervalFactor": 1,
"legendFormat": "{{instance}}",
"range": true,
"refId": "A"
}
],
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

The query in this panel uses the metric beacon_data_column_sidecar_gossip_verification_seconds_bucket. This appears to be a custom Lodestar metric, but is prefixed with beacon_ which is for standard metrics. It should likely be lodestar_.... Also, this metric is not defined in packages/beacon-node/src/metrics/metrics/lodestar.ts. The panel will likely fail to show data.

"interval": "",
"intervalFactor": 1,
"legendFormat": "{{instance}}",
"legendFormat": "befor verification",
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

There's a typo in the legendFormat. "befor" should be "before".

Suggested change
"legendFormat": "befor verification",
"legendFormat": "before verification",

"exemplar": false,
"expr": "rate(beacon_engine_getBlobsV2_requests_total[$rate_interval])",
"format": "time_series",
"expr": "rate(beacon_data_column_sidecar_gossip_verification_seconds_bucket [$rate_interval])\n",
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

This PromQL query contains extra whitespace before [$rate_interval]. While Prometheus may handle this, it's best to remove it for clarity and consistency.

Suggested change
"expr": "rate(beacon_data_column_sidecar_gossip_verification_seconds_bucket [$rate_interval])\n",
"expr": "rate(beacon_data_column_sidecar_gossip_verification_seconds_bucket[$rate_interval])\n",

@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: c8dfe66 Previous: feed916 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 961.36 us/op 1.0171 ms/op 0.95
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 34.222 us/op 37.361 us/op 0.92
BLS verify - blst 1.4274 ms/op 863.21 us/op 1.65
BLS verifyMultipleSignatures 3 - blst 2.2436 ms/op 1.2661 ms/op 1.77
BLS verifyMultipleSignatures 8 - blst 2.4974 ms/op 1.9167 ms/op 1.30
BLS verifyMultipleSignatures 32 - blst 7.5850 ms/op 5.6415 ms/op 1.34
BLS verifyMultipleSignatures 64 - blst 10.515 ms/op 10.860 ms/op 0.97
BLS verifyMultipleSignatures 128 - blst 17.005 ms/op 17.584 ms/op 0.97
BLS deserializing 10000 signatures 649.39 ms/op 710.77 ms/op 0.91
BLS deserializing 100000 signatures 6.8639 s/op 7.1602 s/op 0.96
BLS verifyMultipleSignatures - same message - 3 - blst 897.95 us/op 956.30 us/op 0.94
BLS verifyMultipleSignatures - same message - 8 - blst 1.0079 ms/op 1.2327 ms/op 0.82
BLS verifyMultipleSignatures - same message - 32 - blst 1.7106 ms/op 1.7587 ms/op 0.97
BLS verifyMultipleSignatures - same message - 64 - blst 2.6147 ms/op 2.6545 ms/op 0.98
BLS verifyMultipleSignatures - same message - 128 - blst 4.3860 ms/op 4.5207 ms/op 0.97
BLS aggregatePubkeys 32 - blst 19.540 us/op 19.875 us/op 0.98
BLS aggregatePubkeys 128 - blst 70.208 us/op 70.841 us/op 0.99
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 61.674 ms/op 59.818 ms/op 1.03
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 52.529 ms/op 55.045 ms/op 0.95
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 45.183 ms/op 39.644 ms/op 1.14
getSlashingsAndExits - default max 74.236 us/op 75.264 us/op 0.99
getSlashingsAndExits - 2k 320.21 us/op 350.21 us/op 0.91
isKnown best case - 1 super set check 203.00 ns/op 224.00 ns/op 0.91
isKnown normal case - 2 super set checks 198.00 ns/op 214.00 ns/op 0.93
isKnown worse case - 16 super set checks 194.00 ns/op 217.00 ns/op 0.89
InMemoryCheckpointStateCache - add get delete 2.2220 us/op 2.4790 us/op 0.90
validate api signedAggregateAndProof - struct 2.8971 ms/op 1.8987 ms/op 1.53
validate gossip signedAggregateAndProof - struct 2.7086 ms/op 1.4548 ms/op 1.86
batch validate gossip attestation - vc 640000 - chunk 32 112.60 us/op 121.40 us/op 0.93
batch validate gossip attestation - vc 640000 - chunk 64 101.80 us/op 108.82 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 128 95.914 us/op 101.03 us/op 0.95
batch validate gossip attestation - vc 640000 - chunk 256 100.62 us/op 107.08 us/op 0.94
pickEth1Vote - no votes 989.13 us/op 1.0685 ms/op 0.93
pickEth1Vote - max votes 7.2723 ms/op 7.8945 ms/op 0.92
pickEth1Vote - Eth1Data hashTreeRoot value x2048 11.069 ms/op 14.372 ms/op 0.77
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 18.736 ms/op 22.212 ms/op 0.84
pickEth1Vote - Eth1Data fastSerialize value x2048 448.12 us/op 453.67 us/op 0.99
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.0571 ms/op 4.4694 ms/op 0.46
bytes32 toHexString 371.00 ns/op 374.00 ns/op 0.99
bytes32 Buffer.toString(hex) 277.00 ns/op 269.00 ns/op 1.03
bytes32 Buffer.toString(hex) from Uint8Array 392.00 ns/op 325.00 ns/op 1.21
bytes32 Buffer.toString(hex) + 0x 267.00 ns/op 295.00 ns/op 0.91
Object access 1 prop 0.14300 ns/op 0.13900 ns/op 1.03
Map access 1 prop 0.12400 ns/op 0.13100 ns/op 0.95
Object get x1000 5.7290 ns/op 6.1500 ns/op 0.93
Map get x1000 6.4570 ns/op 6.6480 ns/op 0.97
Object set x1000 29.601 ns/op 31.131 ns/op 0.95
Map set x1000 19.809 ns/op 21.374 ns/op 0.93
Return object 10000 times 0.29050 ns/op 0.29920 ns/op 0.97
Throw Error 10000 times 4.5329 us/op 4.6789 us/op 0.97
toHex 132.48 ns/op 150.70 ns/op 0.88
Buffer.from 122.58 ns/op 134.16 ns/op 0.91
shared Buffer 83.470 ns/op 86.486 ns/op 0.97
fastMsgIdFn sha256 / 200 bytes 2.1600 us/op 2.2840 us/op 0.95
fastMsgIdFn h32 xxhash / 200 bytes 217.00 ns/op 232.00 ns/op 0.94
fastMsgIdFn h64 xxhash / 200 bytes 300.00 ns/op 301.00 ns/op 1.00
fastMsgIdFn sha256 / 1000 bytes 7.4560 us/op 8.1230 us/op 0.92
fastMsgIdFn h32 xxhash / 1000 bytes 337.00 ns/op 378.00 ns/op 0.89
fastMsgIdFn h64 xxhash / 1000 bytes 348.00 ns/op 380.00 ns/op 0.92
fastMsgIdFn sha256 / 10000 bytes 65.080 us/op 68.993 us/op 0.94
fastMsgIdFn h32 xxhash / 10000 bytes 1.8110 us/op 1.8540 us/op 0.98
fastMsgIdFn h64 xxhash / 10000 bytes 1.1920 us/op 1.3360 us/op 0.89
send data - 1000 256B messages 15.474 ms/op 19.113 ms/op 0.81
send data - 1000 512B messages 18.669 ms/op 22.571 ms/op 0.83
send data - 1000 1024B messages 26.268 ms/op 30.502 ms/op 0.86
send data - 1000 1200B messages 23.011 ms/op 28.167 ms/op 0.82
send data - 1000 2048B messages 25.849 ms/op 27.648 ms/op 0.93
send data - 1000 4096B messages 26.289 ms/op 30.816 ms/op 0.85
send data - 1000 16384B messages 43.614 ms/op 48.940 ms/op 0.89
send data - 1000 65536B messages 114.30 ms/op 128.05 ms/op 0.89
enrSubnets - fastDeserialize 64 bits 897.00 ns/op 932.00 ns/op 0.96
enrSubnets - ssz BitVector 64 bits 394.00 ns/op 369.00 ns/op 1.07
enrSubnets - fastDeserialize 4 bits 127.00 ns/op 160.00 ns/op 0.79
enrSubnets - ssz BitVector 4 bits 322.00 ns/op 335.00 ns/op 0.96
prioritizePeers score -10:0 att 32-0.1 sync 2-0 236.48 us/op 248.11 us/op 0.95
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 258.31 us/op 282.95 us/op 0.91
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 382.00 us/op 401.90 us/op 0.95
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 716.83 us/op 757.43 us/op 0.95
prioritizePeers score 0:0 att 64-1 sync 4-1 861.36 us/op 915.38 us/op 0.94
array of 16000 items push then shift 1.6180 us/op 1.6707 us/op 0.97
LinkedList of 16000 items push then shift 7.3710 ns/op 9.1490 ns/op 0.81
array of 16000 items push then pop 77.443 ns/op 85.822 ns/op 0.90
LinkedList of 16000 items push then pop 7.1790 ns/op 8.6020 ns/op 0.83
array of 24000 items push then shift 2.3758 us/op 2.4616 us/op 0.97
LinkedList of 24000 items push then shift 7.5120 ns/op 9.6990 ns/op 0.77
array of 24000 items push then pop 105.26 ns/op 119.21 ns/op 0.88
LinkedList of 24000 items push then pop 7.1590 ns/op 8.4330 ns/op 0.85
intersect bitArray bitLen 8 6.3980 ns/op 6.5010 ns/op 0.98
intersect array and set length 8 38.417 ns/op 40.821 ns/op 0.94
intersect bitArray bitLen 128 30.414 ns/op 30.432 ns/op 1.00
intersect array and set length 128 630.25 ns/op 643.92 ns/op 0.98
bitArray.getTrueBitIndexes() bitLen 128 1.0040 us/op 1.0270 us/op 0.98
bitArray.getTrueBitIndexes() bitLen 248 1.7580 us/op 1.9080 us/op 0.92
bitArray.getTrueBitIndexes() bitLen 512 3.6340 us/op 3.9280 us/op 0.93
Buffer.concat 32 items 824.00 ns/op 694.00 ns/op 1.19
Uint8Array.set 32 items 887.00 ns/op 1.0180 us/op 0.87
Buffer.copy 1.9410 us/op 2.0770 us/op 0.93
Uint8Array.set - with subarray 1.5550 us/op 1.6840 us/op 0.92
Uint8Array.set - without subarray 831.00 ns/op 1.0100 us/op 0.82
getUint32 - dataview 184.00 ns/op 219.00 ns/op 0.84
getUint32 - manual 136.00 ns/op 131.00 ns/op 1.04
Set add up to 64 items then delete first 2.2846 us/op 2.0925 us/op 1.09
OrderedSet add up to 64 items then delete first 3.6437 us/op 3.5337 us/op 1.03
Set add up to 64 items then delete last 2.5517 us/op 2.5690 us/op 0.99
OrderedSet add up to 64 items then delete last 4.0797 us/op 5.4131 us/op 0.75
Set add up to 64 items then delete middle 2.6097 us/op 2.4632 us/op 1.06
OrderedSet add up to 64 items then delete middle 5.4207 us/op 7.1417 us/op 0.76
Set add up to 128 items then delete first 6.8207 us/op 7.2003 us/op 0.95
OrderedSet add up to 128 items then delete first 11.528 us/op 11.934 us/op 0.97
Set add up to 128 items then delete last 5.3562 us/op 7.1051 us/op 0.75
OrderedSet add up to 128 items then delete last 7.9800 us/op 11.572 us/op 0.69
Set add up to 128 items then delete middle 5.5438 us/op 6.9516 us/op 0.80
OrderedSet add up to 128 items then delete middle 15.105 us/op 18.325 us/op 0.82
Set add up to 256 items then delete first 11.388 us/op 14.598 us/op 0.78
OrderedSet add up to 256 items then delete first 17.512 us/op 23.374 us/op 0.75
Set add up to 256 items then delete last 11.210 us/op 14.073 us/op 0.80
OrderedSet add up to 256 items then delete last 20.381 us/op 21.720 us/op 0.94
Set add up to 256 items then delete middle 11.105 us/op 13.898 us/op 0.80
OrderedSet add up to 256 items then delete middle 47.005 us/op 51.492 us/op 0.91
transfer serialized Status (84 B) 2.3790 us/op 2.2390 us/op 1.06
copy serialized Status (84 B) 1.2580 us/op 1.2120 us/op 1.04
transfer serialized SignedVoluntaryExit (112 B) 2.6080 us/op 2.2070 us/op 1.18
copy serialized SignedVoluntaryExit (112 B) 1.3330 us/op 1.1550 us/op 1.15
transfer serialized ProposerSlashing (416 B) 2.6510 us/op 2.4420 us/op 1.09
copy serialized ProposerSlashing (416 B) 1.9690 us/op 1.4300 us/op 1.38
transfer serialized Attestation (485 B) 2.6130 us/op 2.3190 us/op 1.13
copy serialized Attestation (485 B) 1.9420 us/op 1.4330 us/op 1.36
transfer serialized AttesterSlashing (33232 B) 3.2120 us/op 2.3070 us/op 1.39
copy serialized AttesterSlashing (33232 B) 5.2080 us/op 4.1910 us/op 1.24
transfer serialized Small SignedBeaconBlock (128000 B) 3.5050 us/op 2.9060 us/op 1.21
copy serialized Small SignedBeaconBlock (128000 B) 11.237 us/op 13.202 us/op 0.85
transfer serialized Avg SignedBeaconBlock (200000 B) 3.9500 us/op 3.4080 us/op 1.16
copy serialized Avg SignedBeaconBlock (200000 B) 16.973 us/op 20.047 us/op 0.85
transfer serialized BlobsSidecar (524380 B) 4.2000 us/op 3.9270 us/op 1.07
copy serialized BlobsSidecar (524380 B) 65.939 us/op 71.285 us/op 0.93
transfer serialized Big SignedBeaconBlock (1000000 B) 4.3120 us/op 3.9930 us/op 1.08
copy serialized Big SignedBeaconBlock (1000000 B) 120.55 us/op 120.09 us/op 1.00
pass gossip attestations to forkchoice per slot 2.8268 ms/op 2.9264 ms/op 0.97
forkChoice updateHead vc 100000 bc 64 eq 0 464.84 us/op 482.04 us/op 0.96
forkChoice updateHead vc 600000 bc 64 eq 0 3.0173 ms/op 3.7556 ms/op 0.80
forkChoice updateHead vc 1000000 bc 64 eq 0 5.0394 ms/op 5.6089 ms/op 0.90
forkChoice updateHead vc 600000 bc 320 eq 0 2.8539 ms/op 3.3334 ms/op 0.86
forkChoice updateHead vc 600000 bc 1200 eq 0 2.9440 ms/op 3.4249 ms/op 0.86
forkChoice updateHead vc 600000 bc 7200 eq 0 3.4205 ms/op 3.4553 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 1000 10.568 ms/op 10.833 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 10000 10.599 ms/op 10.956 ms/op 0.97
forkChoice updateHead vc 600000 bc 64 eq 300000 13.979 ms/op 40.195 ms/op 0.35
computeDeltas 500000 validators 300 proto nodes 4.0290 ms/op 4.1146 ms/op 0.98
computeDeltas 500000 validators 1200 proto nodes 4.2885 ms/op 4.1245 ms/op 1.04
computeDeltas 500000 validators 7200 proto nodes 4.1672 ms/op 4.1381 ms/op 1.01
computeDeltas 750000 validators 300 proto nodes 6.0775 ms/op 6.1319 ms/op 0.99
computeDeltas 750000 validators 1200 proto nodes 6.3941 ms/op 6.1703 ms/op 1.04
computeDeltas 750000 validators 7200 proto nodes 6.1629 ms/op 6.0755 ms/op 1.01
computeDeltas 1400000 validators 300 proto nodes 11.870 ms/op 11.467 ms/op 1.04
computeDeltas 1400000 validators 1200 proto nodes 12.041 ms/op 11.400 ms/op 1.06
computeDeltas 1400000 validators 7200 proto nodes 11.672 ms/op 11.561 ms/op 1.01
computeDeltas 2100000 validators 300 proto nodes 17.901 ms/op 17.342 ms/op 1.03
computeDeltas 2100000 validators 1200 proto nodes 17.340 ms/op 17.299 ms/op 1.00
computeDeltas 2100000 validators 7200 proto nodes 18.005 ms/op 17.151 ms/op 1.05
altair processAttestation - 250000 vs - 7PWei normalcase 2.3721 ms/op 2.2016 ms/op 1.08
altair processAttestation - 250000 vs - 7PWei worstcase 4.1335 ms/op 3.0831 ms/op 1.34
altair processAttestation - setStatus - 1/6 committees join 139.37 us/op 137.19 us/op 1.02
altair processAttestation - setStatus - 1/3 committees join 258.91 us/op 243.62 us/op 1.06
altair processAttestation - setStatus - 1/2 committees join 349.78 us/op 322.45 us/op 1.08
altair processAttestation - setStatus - 2/3 committees join 455.80 us/op 424.21 us/op 1.07
altair processAttestation - setStatus - 4/5 committees join 649.60 us/op 579.57 us/op 1.12
altair processAttestation - setStatus - 100% committees join 749.33 us/op 680.55 us/op 1.10
altair processBlock - 250000 vs - 7PWei normalcase 7.5572 ms/op 6.2051 ms/op 1.22
altair processBlock - 250000 vs - 7PWei normalcase hashState 33.418 ms/op 27.952 ms/op 1.20
altair processBlock - 250000 vs - 7PWei worstcase 39.834 ms/op 41.515 ms/op 0.96
altair processBlock - 250000 vs - 7PWei worstcase hashState 87.832 ms/op 88.186 ms/op 1.00
phase0 processBlock - 250000 vs - 7PWei normalcase 2.0537 ms/op 2.5123 ms/op 0.82
phase0 processBlock - 250000 vs - 7PWei worstcase 26.204 ms/op 24.715 ms/op 1.06
altair processEth1Data - 250000 vs - 7PWei normalcase 332.80 us/op 379.24 us/op 0.88
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.7540 us/op 5.8510 us/op 1.15
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 49.954 us/op 42.266 us/op 1.18
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 12.603 us/op 9.8930 us/op 1.27
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 7.3880 us/op 9.4940 us/op 0.78
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 205.28 us/op 152.78 us/op 1.34
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.9333 ms/op 1.9004 ms/op 1.02
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.5421 ms/op 2.4067 ms/op 1.06
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.4745 ms/op 2.4349 ms/op 1.02
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 5.9385 ms/op 4.9024 ms/op 1.21
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.5790 ms/op 2.4294 ms/op 1.06
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.5877 ms/op 4.9302 ms/op 1.13
Tree 40 250000 create 545.44 ms/op 437.51 ms/op 1.25
Tree 40 250000 get(125000) 147.88 ns/op 149.21 ns/op 0.99
Tree 40 250000 set(125000) 2.8706 us/op 1.4801 us/op 1.94
Tree 40 250000 toArray() 22.033 ms/op 15.690 ms/op 1.40
Tree 40 250000 iterate all - toArray() + loop 22.915 ms/op 16.105 ms/op 1.42
Tree 40 250000 iterate all - get(i) 62.280 ms/op 60.667 ms/op 1.03
Array 250000 create 2.6768 ms/op 2.4855 ms/op 1.08
Array 250000 clone - spread 1.6562 ms/op 826.81 us/op 2.00
Array 250000 get(125000) 0.41500 ns/op 0.42700 ns/op 0.97
Array 250000 set(125000) 0.49800 ns/op 0.45600 ns/op 1.09
Array 250000 iterate all - loop 87.665 us/op 85.993 us/op 1.02
phase0 afterProcessEpoch - 250000 vs - 7PWei 43.550 ms/op 44.816 ms/op 0.97
Array.fill - length 1000000 3.6353 ms/op 3.7504 ms/op 0.97
Array push - length 1000000 15.582 ms/op 14.760 ms/op 1.06
Array.get 0.28510 ns/op 0.29748 ns/op 0.96
Uint8Array.get 0.44482 ns/op 0.45037 ns/op 0.99
phase0 beforeProcessEpoch - 250000 vs - 7PWei 15.554 ms/op 17.748 ms/op 0.88
altair processEpoch - mainnet_e81889 289.52 ms/op 281.89 ms/op 1.03
mainnet_e81889 - altair beforeProcessEpoch 20.986 ms/op 18.983 ms/op 1.11
mainnet_e81889 - altair processJustificationAndFinalization 5.7060 us/op 5.6110 us/op 1.02
mainnet_e81889 - altair processInactivityUpdates 4.2601 ms/op 4.3490 ms/op 0.98
mainnet_e81889 - altair processRewardsAndPenalties 43.789 ms/op 45.242 ms/op 0.97
mainnet_e81889 - altair processRegistryUpdates 757.00 ns/op 798.00 ns/op 0.95
mainnet_e81889 - altair processSlashings 181.00 ns/op 185.00 ns/op 0.98
mainnet_e81889 - altair processEth1DataReset 197.00 ns/op 179.00 ns/op 1.10
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2238 ms/op 1.2225 ms/op 1.00
mainnet_e81889 - altair processSlashingsReset 1.0090 us/op 995.00 ns/op 1.01
mainnet_e81889 - altair processRandaoMixesReset 1.2190 us/op 1.2840 us/op 0.95
mainnet_e81889 - altair processHistoricalRootsUpdate 202.00 ns/op 200.00 ns/op 1.01
mainnet_e81889 - altair processParticipationFlagUpdates 564.00 ns/op 538.00 ns/op 1.05
mainnet_e81889 - altair processSyncCommitteeUpdates 137.00 ns/op 141.00 ns/op 0.97
mainnet_e81889 - altair afterProcessEpoch 44.974 ms/op 46.016 ms/op 0.98
capella processEpoch - mainnet_e217614 953.47 ms/op 926.75 ms/op 1.03
mainnet_e217614 - capella beforeProcessEpoch 61.781 ms/op 66.433 ms/op 0.93
mainnet_e217614 - capella processJustificationAndFinalization 6.5270 us/op 6.6150 us/op 0.99
mainnet_e217614 - capella processInactivityUpdates 14.347 ms/op 14.425 ms/op 0.99
mainnet_e217614 - capella processRewardsAndPenalties 215.51 ms/op 201.05 ms/op 1.07
mainnet_e217614 - capella processRegistryUpdates 6.1070 us/op 6.9760 us/op 0.88
mainnet_e217614 - capella processSlashings 169.00 ns/op 180.00 ns/op 0.94
mainnet_e217614 - capella processEth1DataReset 186.00 ns/op 178.00 ns/op 1.04
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.2440 ms/op 5.4153 ms/op 0.78
mainnet_e217614 - capella processSlashingsReset 879.00 ns/op 1.1250 us/op 0.78
mainnet_e217614 - capella processRandaoMixesReset 1.1540 us/op 1.2590 us/op 0.92
mainnet_e217614 - capella processHistoricalRootsUpdate 195.00 ns/op 196.00 ns/op 0.99
mainnet_e217614 - capella processParticipationFlagUpdates 542.00 ns/op 655.00 ns/op 0.83
mainnet_e217614 - capella afterProcessEpoch 118.48 ms/op 123.93 ms/op 0.96
phase0 processEpoch - mainnet_e58758 296.60 ms/op 294.79 ms/op 1.01
mainnet_e58758 - phase0 beforeProcessEpoch 84.778 ms/op 71.326 ms/op 1.19
mainnet_e58758 - phase0 processJustificationAndFinalization 5.3110 us/op 5.7320 us/op 0.93
mainnet_e58758 - phase0 processRewardsAndPenalties 40.481 ms/op 41.077 ms/op 0.99
mainnet_e58758 - phase0 processRegistryUpdates 3.1980 us/op 3.2900 us/op 0.97
mainnet_e58758 - phase0 processSlashings 189.00 ns/op 192.00 ns/op 0.98
mainnet_e58758 - phase0 processEth1DataReset 186.00 ns/op 176.00 ns/op 1.06
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3604 ms/op 1.2178 ms/op 1.12
mainnet_e58758 - phase0 processSlashingsReset 952.00 ns/op 1.0510 us/op 0.91
mainnet_e58758 - phase0 processRandaoMixesReset 1.2980 us/op 1.4290 us/op 0.91
mainnet_e58758 - phase0 processHistoricalRootsUpdate 195.00 ns/op 206.00 ns/op 0.95
mainnet_e58758 - phase0 processParticipationRecordUpdates 937.00 ns/op 1.0220 us/op 0.92
mainnet_e58758 - phase0 afterProcessEpoch 35.675 ms/op 36.911 ms/op 0.97
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3074 ms/op 2.6004 ms/op 0.50
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.9915 ms/op 1.9453 ms/op 1.54
altair processInactivityUpdates - 250000 normalcase 22.848 ms/op 19.438 ms/op 1.18
altair processInactivityUpdates - 250000 worstcase 18.572 ms/op 22.724 ms/op 0.82
phase0 processRegistryUpdates - 250000 normalcase 6.5440 us/op 6.0080 us/op 1.09
phase0 processRegistryUpdates - 250000 badcase_full_deposits 372.40 us/op 344.64 us/op 1.08
phase0 processRegistryUpdates - 250000 worstcase 0.5 108.35 ms/op 113.67 ms/op 0.95
altair processRewardsAndPenalties - 250000 normalcase 29.774 ms/op 28.658 ms/op 1.04
altair processRewardsAndPenalties - 250000 worstcase 28.002 ms/op 27.691 ms/op 1.01
phase0 getAttestationDeltas - 250000 normalcase 7.2311 ms/op 7.9372 ms/op 0.91
phase0 getAttestationDeltas - 250000 worstcase 7.0447 ms/op 6.2981 ms/op 1.12
phase0 processSlashings - 250000 worstcase 86.897 us/op 81.700 us/op 1.06
altair processSyncCommitteeUpdates - 250000 11.353 ms/op 11.298 ms/op 1.00
BeaconState.hashTreeRoot - No change 233.00 ns/op 257.00 ns/op 0.91
BeaconState.hashTreeRoot - 1 full validator 78.552 us/op 97.676 us/op 0.80
BeaconState.hashTreeRoot - 32 full validator 1.1500 ms/op 853.37 us/op 1.35
BeaconState.hashTreeRoot - 512 full validator 12.401 ms/op 10.564 ms/op 1.17
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 100.17 us/op 106.51 us/op 0.94
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.4144 ms/op 1.5601 ms/op 0.91
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 21.176 ms/op 28.137 ms/op 0.75
BeaconState.hashTreeRoot - 1 balances 84.453 us/op 83.129 us/op 1.02
BeaconState.hashTreeRoot - 32 balances 1.1509 ms/op 1.0514 ms/op 1.09
BeaconState.hashTreeRoot - 512 balances 9.7876 ms/op 8.9011 ms/op 1.10
BeaconState.hashTreeRoot - 250000 balances 195.13 ms/op 184.95 ms/op 1.06
aggregationBits - 2048 els - zipIndexesInBitList 23.320 us/op 22.640 us/op 1.03
byteArrayEquals 32 56.671 ns/op 54.596 ns/op 1.04
Buffer.compare 32 18.145 ns/op 17.503 ns/op 1.04
byteArrayEquals 1024 1.6510 us/op 1.6203 us/op 1.02
Buffer.compare 1024 25.681 ns/op 26.120 ns/op 0.98
byteArrayEquals 16384 26.254 us/op 26.142 us/op 1.00
Buffer.compare 16384 210.76 ns/op 265.83 ns/op 0.79
byteArrayEquals 123687377 202.00 ms/op 197.23 ms/op 1.02
Buffer.compare 123687377 7.0158 ms/op 6.7971 ms/op 1.03
byteArrayEquals 32 - diff last byte 54.315 ns/op 54.037 ns/op 1.01
Buffer.compare 32 - diff last byte 17.782 ns/op 17.502 ns/op 1.02
byteArrayEquals 1024 - diff last byte 1.6438 us/op 1.6267 us/op 1.01
Buffer.compare 1024 - diff last byte 26.046 ns/op 25.484 ns/op 1.02
byteArrayEquals 16384 - diff last byte 29.034 us/op 25.947 us/op 1.12
Buffer.compare 16384 - diff last byte 204.02 ns/op 205.94 ns/op 0.99
byteArrayEquals 123687377 - diff last byte 195.86 ms/op 194.49 ms/op 1.01
Buffer.compare 123687377 - diff last byte 7.0023 ms/op 6.7294 ms/op 1.04
byteArrayEquals 32 - random bytes 6.5990 ns/op 5.2210 ns/op 1.26
Buffer.compare 32 - random bytes 17.144 ns/op 17.404 ns/op 0.99
byteArrayEquals 1024 - random bytes 5.1710 ns/op 5.2440 ns/op 0.99
Buffer.compare 1024 - random bytes 17.043 ns/op 17.471 ns/op 0.98
byteArrayEquals 16384 - random bytes 5.0930 ns/op 5.2400 ns/op 0.97
Buffer.compare 16384 - random bytes 16.944 ns/op 17.469 ns/op 0.97
byteArrayEquals 123687377 - random bytes 6.2800 ns/op 6.6500 ns/op 0.94
Buffer.compare 123687377 - random bytes 18.020 ns/op 18.740 ns/op 0.96
regular array get 100000 times 33.384 us/op 33.753 us/op 0.99
wrappedArray get 100000 times 40.998 us/op 33.683 us/op 1.22
arrayWithProxy get 100000 times 13.500 ms/op 12.276 ms/op 1.10
ssz.Root.equals 47.346 ns/op 46.907 ns/op 1.01
byteArrayEquals 46.455 ns/op 46.257 ns/op 1.00
Buffer.compare 10.510 ns/op 10.457 ns/op 1.01
processSlot - 1 slots 10.816 us/op 13.868 us/op 0.78
processSlot - 32 slots 2.6791 ms/op 2.1723 ms/op 1.23
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.2083 ms/op 3.0323 ms/op 1.06
getCommitteeAssignments - req 1 vs - 250000 vc 2.1903 ms/op 2.1883 ms/op 1.00
getCommitteeAssignments - req 100 vs - 250000 vc 4.2952 ms/op 4.1685 ms/op 1.03
getCommitteeAssignments - req 1000 vs - 250000 vc 4.5684 ms/op 4.4051 ms/op 1.04
findModifiedValidators - 10000 modified validators 738.59 ms/op 712.44 ms/op 1.04
findModifiedValidators - 1000 modified validators 727.18 ms/op 699.61 ms/op 1.04
findModifiedValidators - 100 modified validators 275.57 ms/op 291.65 ms/op 0.94
findModifiedValidators - 10 modified validators 148.87 ms/op 136.06 ms/op 1.09
findModifiedValidators - 1 modified validators 150.47 ms/op 215.37 ms/op 0.70
findModifiedValidators - no difference 174.25 ms/op 256.09 ms/op 0.68
compare ViewDUs 6.2981 s/op 6.1927 s/op 1.02
compare each validator Uint8Array 1.8081 s/op 1.7608 s/op 1.03
compare ViewDU to Uint8Array 1.0427 s/op 1.0366 s/op 1.01
migrate state 1000000 validators, 24 modified, 0 new 935.14 ms/op 858.47 ms/op 1.09
migrate state 1000000 validators, 1700 modified, 1000 new 1.2005 s/op 1.1354 s/op 1.06
migrate state 1000000 validators, 3400 modified, 2000 new 1.4366 s/op 1.2630 s/op 1.14
migrate state 1500000 validators, 24 modified, 0 new 901.60 ms/op 895.08 ms/op 1.01
migrate state 1500000 validators, 1700 modified, 1000 new 1.2026 s/op 1.1197 s/op 1.07
migrate state 1500000 validators, 3400 modified, 2000 new 1.3087 s/op 1.2631 s/op 1.04
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.2700 ns/op 4.2800 ns/op 1.00
state getBlockRootAtSlot - 250000 vs - 7PWei 371.33 ns/op 664.18 ns/op 0.56
naive computeProposerIndex 100000 validators 48.625 ms/op 48.142 ms/op 1.01
computeProposerIndex 100000 validators 1.5355 ms/op 1.5235 ms/op 1.01
naiveGetNextSyncCommitteeIndices 1000 validators 7.8126 s/op 6.9417 s/op 1.13
getNextSyncCommitteeIndices 1000 validators 124.81 ms/op 113.17 ms/op 1.10
naiveGetNextSyncCommitteeIndices 10000 validators 7.9824 s/op 6.9375 s/op 1.15
getNextSyncCommitteeIndices 10000 validators 110.43 ms/op 112.17 ms/op 0.98
naiveGetNextSyncCommitteeIndices 100000 validators 7.6709 s/op 6.9501 s/op 1.10
getNextSyncCommitteeIndices 100000 validators 114.57 ms/op 112.52 ms/op 1.02
naive computeShuffledIndex 100000 validators 23.719 s/op 23.369 s/op 1.01
cached computeShuffledIndex 100000 validators 549.32 ms/op 550.39 ms/op 1.00
naive computeShuffledIndex 2000000 validators 516.18 s/op 458.80 s/op 1.13
cached computeShuffledIndex 2000000 validators 38.627 s/op 31.805 s/op 1.21
computeProposers - vc 250000 614.11 us/op 644.62 us/op 0.95
computeEpochShuffling - vc 250000 42.389 ms/op 42.954 ms/op 0.99
getNextSyncCommittee - vc 250000 10.549 ms/op 10.668 ms/op 0.99
computeSigningRoot for AttestationData 20.150 us/op 21.805 us/op 0.92
hash AttestationData serialized data then Buffer.toString(base64) 1.6191 us/op 1.6194 us/op 1.00
toHexString serialized data 1.1601 us/op 1.1956 us/op 0.97
Buffer.toString(base64) 151.06 ns/op 156.54 ns/op 0.97
nodejs block root to RootHex using toHex 148.80 ns/op 145.47 ns/op 1.02
nodejs block root to RootHex using toRootHex 93.065 ns/op 85.679 ns/op 1.09
nodejs fromhex(blob) 123.43 ms/op 113.30 ms/op 1.09
nodejs fromHexInto(blob) 106.43 ms/op 96.556 ms/op 1.10
browser block root to RootHex using the deprecated toHexString 228.26 ns/op 212.56 ns/op 1.07
browser block root to RootHex using toHex 178.05 ns/op 172.10 ns/op 1.03
browser block root to RootHex using toRootHex 167.70 ns/op 160.99 ns/op 1.04
browser fromHexInto(blob) 897.89 us/op 827.84 us/op 1.08
browser fromHex(blob) 888.84 ms/op 796.65 ms/op 1.12

by benchmarkbot/action

@codecov
Copy link

codecov bot commented Sep 22, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 52.25%. Comparing base (feed916) to head (42b75e6).
⚠️ Report is 1 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #8443   +/-   ##
=========================================
  Coverage     52.24%   52.25%           
=========================================
  Files           853      853           
  Lines         64770    64770           
  Branches       4766     4766           
=========================================
+ Hits          33841    33844    +3     
+ Misses        30859    30856    -3     
  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.

@wemeetagain wemeetagain merged commit 092cc39 into unstable Sep 22, 2025
30 of 34 checks passed
@wemeetagain wemeetagain deleted the te/peerdas_dashboard branch September 22, 2025 11:18
@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.

4 participants