Skip to content

chore: log missing payload in ExecutionPayloadEnvelopesByRoot#9435

Merged
nflaig merged 2 commits into
unstablefrom
te/log_missing_payload
Jun 1, 2026
Merged

chore: log missing payload in ExecutionPayloadEnvelopesByRoot#9435
nflaig merged 2 commits into
unstablefrom
te/log_missing_payload

Conversation

@twoeths
Copy link
Copy Markdown
Contributor

@twoeths twoeths commented Jun 1, 2026

Motivation

In glamsterdam-devnet-4, Prysm was not able to fetch an envelope by root from our node (https://discord.com/channels/595666850260713488/1508479832596418692/1509536577217626183). When a peer requests a payload by root that we don't serve, the handler drops it silently — no way to tell why or which peer.

Description

Add debug logs (with peer, client, root) when ExecutionPayloadEnvelopesByRoot serves nothing for a requested root, distinguishing the two cases:

  • block root not in fork choice or block archive (slot unresolved)
  • envelope not found despite a resolved slot

AI Assistance Disclosure

  • Used Claude Code to implement this change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
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 updates the ExecutionPayloadEnvelopesByRoot request handler to accept peerId and peerClient parameters and adds debug logging when a block root or envelope cannot be found. The review comments suggest making peerId and peerClient optional parameters to prevent compilation failures in existing unit tests and guarding the prettyPrintPeerId calls to avoid runtime TypeErrors if peerId is undefined.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 1, 2026

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 5e7ed11 Previous: 56839a6 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 847.69 us/op 872.65 us/op 0.97
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 37.775 us/op 37.457 us/op 1.01
BLS verify - blst 746.21 us/op 681.91 us/op 1.09
BLS verifyMultipleSignatures 3 - blst 1.3502 ms/op 1.2831 ms/op 1.05
BLS verifyMultipleSignatures 8 - blst 2.1382 ms/op 2.0381 ms/op 1.05
BLS verifyMultipleSignatures 32 - blst 6.7505 ms/op 6.3684 ms/op 1.06
BLS verifyMultipleSignatures 64 - blst 12.976 ms/op 12.403 ms/op 1.05
BLS verifyMultipleSignatures 128 - blst 25.638 ms/op 24.073 ms/op 1.07
BLS deserializing 10000 signatures 618.15 ms/op 614.21 ms/op 1.01
BLS deserializing 100000 signatures 6.2059 s/op 6.1241 s/op 1.01
BLS verifyMultipleSignatures - same message - 3 - blst 710.66 us/op 772.82 us/op 0.92
BLS verifyMultipleSignatures - same message - 8 - blst 919.05 us/op 894.85 us/op 1.03
BLS verifyMultipleSignatures - same message - 32 - blst 1.5771 ms/op 1.5004 ms/op 1.05
BLS verifyMultipleSignatures - same message - 64 - blst 2.4426 ms/op 2.3537 ms/op 1.04
BLS verifyMultipleSignatures - same message - 128 - blst 4.0809 ms/op 3.9088 ms/op 1.04
BLS aggregatePubkeys 32 - blst 17.830 us/op 17.012 us/op 1.05
BLS aggregatePubkeys 128 - blst 63.480 us/op 61.877 us/op 1.03
getSlashingsAndExits - default max 46.844 us/op 47.176 us/op 0.99
getSlashingsAndExits - 2k 353.80 us/op 330.17 us/op 1.07
proposeBlockBody type=full, size=empty 690.59 us/op 603.96 us/op 1.14
isKnown best case - 1 super set check 188.00 ns/op 168.00 ns/op 1.12
isKnown normal case - 2 super set checks 164.00 ns/op 160.00 ns/op 1.02
isKnown worse case - 16 super set checks 164.00 ns/op 159.00 ns/op 1.03
validate api signedAggregateAndProof - struct 1.5397 ms/op 1.4530 ms/op 1.06
validate gossip signedAggregateAndProof - struct 1.5328 ms/op 1.4518 ms/op 1.06
batch validate gossip attestation - vc 640000 - chunk 32 109.46 us/op 105.69 us/op 1.04
batch validate gossip attestation - vc 640000 - chunk 64 94.788 us/op 91.118 us/op 1.04
batch validate gossip attestation - vc 640000 - chunk 128 90.248 us/op 84.569 us/op 1.07
batch validate gossip attestation - vc 640000 - chunk 256 87.445 us/op 81.927 us/op 1.07
bytes32 toHexString 301.00 ns/op 275.00 ns/op 1.09
bytes32 Buffer.toString(hex) 168.00 ns/op 163.00 ns/op 1.03
bytes32 Buffer.toString(hex) from Uint8Array 223.00 ns/op 217.00 ns/op 1.03
bytes32 Buffer.toString(hex) + 0x 163.00 ns/op 157.00 ns/op 1.04
Return object 10000 times 0.21260 ns/op 0.21000 ns/op 1.01
Throw Error 10000 times 3.2738 us/op 3.2737 us/op 1.00
toHex 87.350 ns/op 91.614 ns/op 0.95
Buffer.from 78.669 ns/op 78.424 ns/op 1.00
shared Buffer 51.431 ns/op 49.909 ns/op 1.03
fastMsgIdFn sha256 / 200 bytes 1.4590 us/op 1.4190 us/op 1.03
fastMsgIdFn h32 xxhash / 200 bytes 153.00 ns/op 149.00 ns/op 1.03
fastMsgIdFn h64 xxhash / 200 bytes 212.00 ns/op 190.00 ns/op 1.12
fastMsgIdFn sha256 / 1000 bytes 4.8140 us/op 4.6380 us/op 1.04
fastMsgIdFn h32 xxhash / 1000 bytes 244.00 ns/op 236.00 ns/op 1.03
fastMsgIdFn h64 xxhash / 1000 bytes 255.00 ns/op 246.00 ns/op 1.04
fastMsgIdFn sha256 / 10000 bytes 42.576 us/op 40.500 us/op 1.05
fastMsgIdFn h32 xxhash / 10000 bytes 1.3040 us/op 1.2210 us/op 1.07
fastMsgIdFn h64 xxhash / 10000 bytes 853.00 ns/op 789.00 ns/op 1.08
send data - 1000 256B messages 4.4107 ms/op 4.0392 ms/op 1.09
send data - 1000 512B messages 4.4290 ms/op 4.1563 ms/op 1.07
send data - 1000 1024B messages 4.8491 ms/op 4.3466 ms/op 1.12
send data - 1000 1200B messages 4.8598 ms/op 4.8716 ms/op 1.00
send data - 1000 2048B messages 4.8401 ms/op 4.7882 ms/op 1.01
send data - 1000 4096B messages 5.9575 ms/op 5.4584 ms/op 1.09
send data - 1000 16384B messages 16.655 ms/op 14.358 ms/op 1.16
send data - 1000 65536B messages 231.96 ms/op 112.05 ms/op 2.07
enrSubnets - fastDeserialize 64 bits 779.00 ns/op 717.00 ns/op 1.09
enrSubnets - ssz BitVector 64 bits 263.00 ns/op 255.00 ns/op 1.03
enrSubnets - fastDeserialize 4 bits 106.00 ns/op 98.000 ns/op 1.08
enrSubnets - ssz BitVector 4 bits 259.00 ns/op 255.00 ns/op 1.02
prioritizePeers score -10:0 att 32-0.1 sync 2-0 220.35 us/op 195.58 us/op 1.13
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 239.70 us/op 237.33 us/op 1.01
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 348.63 us/op 342.22 us/op 1.02
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 611.33 us/op 599.15 us/op 1.02
prioritizePeers score 0:0 att 64-1 sync 4-1 732.31 us/op 673.99 us/op 1.09
array of 16000 items push then shift 1.3187 us/op 1.2009 us/op 1.10
LinkedList of 16000 items push then shift 7.6970 ns/op 7.2810 ns/op 1.06
array of 16000 items push then pop 74.677 ns/op 66.172 ns/op 1.13
LinkedList of 16000 items push then pop 6.1810 ns/op 5.7800 ns/op 1.07
array of 24000 items push then shift 1.9451 us/op 1.7827 us/op 1.09
LinkedList of 24000 items push then shift 7.0380 ns/op 6.7770 ns/op 1.04
array of 24000 items push then pop 102.23 ns/op 92.568 ns/op 1.10
LinkedList of 24000 items push then pop 6.1290 ns/op 5.8480 ns/op 1.05
intersect bitArray bitLen 8 4.8220 ns/op 4.5950 ns/op 1.05
intersect array and set length 8 30.111 ns/op 28.109 ns/op 1.07
intersect bitArray bitLen 128 24.673 ns/op 23.324 ns/op 1.06
intersect array and set length 128 506.91 ns/op 472.58 ns/op 1.07
bitArray.getTrueBitIndexes() bitLen 128 1.0760 us/op 983.00 ns/op 1.09
bitArray.getTrueBitIndexes() bitLen 248 1.7950 us/op 1.7030 us/op 1.05
bitArray.getTrueBitIndexes() bitLen 512 3.6900 us/op 3.4570 us/op 1.07
Full columns - reconstruct all 6 blobs 114.61 us/op 256.04 us/op 0.45
Full columns - reconstruct half of the blobs out of 6 64.819 us/op 135.35 us/op 0.48
Full columns - reconstruct single blob out of 6 32.011 us/op 29.407 us/op 1.09
Half columns - reconstruct all 6 blobs 401.06 ms/op 371.61 ms/op 1.08
Half columns - reconstruct half of the blobs out of 6 200.98 ms/op 187.12 ms/op 1.07
Half columns - reconstruct single blob out of 6 72.695 ms/op 66.939 ms/op 1.09
Full columns - reconstruct all 10 blobs 175.84 us/op 466.07 us/op 0.38
Full columns - reconstruct half of the blobs out of 10 94.339 us/op 146.78 us/op 0.64
Full columns - reconstruct single blob out of 10 31.397 us/op 28.551 us/op 1.10
Half columns - reconstruct all 10 blobs 658.41 ms/op 617.12 ms/op 1.07
Half columns - reconstruct half of the blobs out of 10 334.61 ms/op 311.98 ms/op 1.07
Half columns - reconstruct single blob out of 10 72.161 ms/op 66.794 ms/op 1.08
Full columns - reconstruct all 20 blobs 1.6970 ms/op 873.82 us/op 1.94
Full columns - reconstruct half of the blobs out of 20 201.47 us/op 278.26 us/op 0.72
Full columns - reconstruct single blob out of 20 28.602 us/op 28.628 us/op 1.00
Half columns - reconstruct all 20 blobs 1.3202 s/op 1.2391 s/op 1.07
Half columns - reconstruct half of the blobs out of 20 663.38 ms/op 622.17 ms/op 1.07
Half columns - reconstruct single blob out of 20 72.180 ms/op 66.899 ms/op 1.08
Set add up to 64 items then delete first 2.5806 us/op 2.0121 us/op 1.28
OrderedSet add up to 64 items then delete first 3.4014 us/op 3.1900 us/op 1.07
Set add up to 64 items then delete last 2.3954 us/op 2.0397 us/op 1.17
OrderedSet add up to 64 items then delete last 3.3237 us/op 3.1664 us/op 1.05
Set add up to 64 items then delete middle 2.1428 us/op 2.0267 us/op 1.06
OrderedSet add up to 64 items then delete middle 4.8251 us/op 4.5682 us/op 1.06
Set add up to 128 items then delete first 4.2758 us/op 4.3345 us/op 0.99
OrderedSet add up to 128 items then delete first 6.6349 us/op 7.3214 us/op 0.91
Set add up to 128 items then delete last 3.9647 us/op 3.8173 us/op 1.04
OrderedSet add up to 128 items then delete last 5.9247 us/op 5.6800 us/op 1.04
Set add up to 128 items then delete middle 3.8756 us/op 3.8697 us/op 1.00
OrderedSet add up to 128 items then delete middle 13.249 us/op 11.687 us/op 1.13
Set add up to 256 items then delete first 8.3163 us/op 8.7501 us/op 0.95
OrderedSet add up to 256 items then delete first 12.484 us/op 14.346 us/op 0.87
Set add up to 256 items then delete last 7.7492 us/op 7.4719 us/op 1.04
OrderedSet add up to 256 items then delete last 11.786 us/op 11.476 us/op 1.03
Set add up to 256 items then delete middle 7.7204 us/op 7.4081 us/op 1.04
OrderedSet add up to 256 items then delete middle 35.864 us/op 34.939 us/op 1.03
pass gossip attestations to forkchoice per slot 2.6223 ms/op 2.4907 ms/op 1.05
forkChoice updateHead vc 100000 bc 64 eq 0 400.19 us/op 379.29 us/op 1.06
forkChoice updateHead vc 600000 bc 64 eq 0 2.4032 ms/op 2.2627 ms/op 1.06
forkChoice updateHead vc 1000000 bc 64 eq 0 4.0999 ms/op 3.7867 ms/op 1.08
forkChoice updateHead vc 600000 bc 320 eq 0 2.4027 ms/op 2.2936 ms/op 1.05
forkChoice updateHead vc 600000 bc 1200 eq 0 2.4404 ms/op 2.3174 ms/op 1.05
forkChoice updateHead vc 600000 bc 7200 eq 0 3.0281 ms/op 3.4388 ms/op 0.88
forkChoice updateHead vc 600000 bc 64 eq 1000 3.1093 ms/op 2.8261 ms/op 1.10
forkChoice updateHead vc 600000 bc 64 eq 10000 3.2113 ms/op 2.9516 ms/op 1.09
forkChoice updateHead vc 600000 bc 64 eq 300000 7.0832 ms/op 7.3042 ms/op 0.97
computeDeltas 1400000 validators 0% inactive 13.691 ms/op 12.226 ms/op 1.12
computeDeltas 1400000 validators 10% inactive 12.748 ms/op 12.272 ms/op 1.04
computeDeltas 1400000 validators 20% inactive 11.585 ms/op 10.401 ms/op 1.11
computeDeltas 1400000 validators 50% inactive 8.8493 ms/op 8.0204 ms/op 1.10
computeDeltas 2100000 validators 0% inactive 20.454 ms/op 18.457 ms/op 1.11
computeDeltas 2100000 validators 10% inactive 19.223 ms/op 17.219 ms/op 1.12
computeDeltas 2100000 validators 20% inactive 17.497 ms/op 15.606 ms/op 1.12
computeDeltas 2100000 validators 50% inactive 13.198 ms/op 12.064 ms/op 1.09
altair processAttestation - 250000 vs - 7PWei normalcase 1.7224 ms/op 2.1723 ms/op 0.79
altair processAttestation - 250000 vs - 7PWei worstcase 2.4834 ms/op 3.2336 ms/op 0.77
altair processAttestation - setStatus - 1/6 committees join 99.820 us/op 94.694 us/op 1.05
altair processAttestation - setStatus - 1/3 committees join 204.26 us/op 194.51 us/op 1.05
altair processAttestation - setStatus - 1/2 committees join 292.14 us/op 280.53 us/op 1.04
altair processAttestation - setStatus - 2/3 committees join 369.09 us/op 357.40 us/op 1.03
altair processAttestation - setStatus - 4/5 committees join 514.85 us/op 492.19 us/op 1.05
altair processAttestation - setStatus - 100% committees join 622.64 us/op 573.78 us/op 1.09
altair processBlock - 250000 vs - 7PWei normalcase 3.1553 ms/op 3.9981 ms/op 0.79
altair processBlock - 250000 vs - 7PWei normalcase hashState 14.198 ms/op 15.998 ms/op 0.89
altair processBlock - 250000 vs - 7PWei worstcase 21.703 ms/op 21.074 ms/op 1.03
altair processBlock - 250000 vs - 7PWei worstcase hashState 41.596 ms/op 43.179 ms/op 0.96
phase0 processBlock - 250000 vs - 7PWei normalcase 1.4334 ms/op 1.4490 ms/op 0.99
phase0 processBlock - 250000 vs - 7PWei worstcase 17.336 ms/op 16.439 ms/op 1.05
altair processEth1Data - 250000 vs - 7PWei normalcase 292.65 us/op 280.29 us/op 1.04
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:16 5.3130 us/op 4.9240 us/op 1.08
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:220 19.900 us/op 19.470 us/op 1.02
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:43 5.7800 us/op 6.1850 us/op 0.93
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:19 5.0910 us/op 3.3470 us/op 1.52
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1021 90.739 us/op 87.345 us/op 1.04
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11778 1.3842 ms/op 1.3304 ms/op 1.04
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.8248 ms/op 1.7553 ms/op 1.04
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.7254 ms/op 1.7053 ms/op 1.01
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.6883 ms/op 3.4299 ms/op 1.08
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.0513 ms/op 1.9589 ms/op 1.05
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.8273 ms/op 3.8202 ms/op 1.00
Tree 40 250000 create 364.27 ms/op 316.63 ms/op 1.15
Tree 40 250000 get(125000) 89.910 ns/op 90.860 ns/op 0.99
Tree 40 250000 set(125000) 956.68 ns/op 967.03 ns/op 0.99
Tree 40 250000 toArray() 11.692 ms/op 16.000 ms/op 0.73
Tree 40 250000 iterate all - toArray() + loop 12.293 ms/op 13.602 ms/op 0.90
Tree 40 250000 iterate all - get(i) 36.010 ms/op 39.891 ms/op 0.90
Array 250000 create 2.0634 ms/op 2.0919 ms/op 0.99
Array 250000 clone - spread 643.64 us/op 646.93 us/op 0.99
Array 250000 get(125000) 0.27800 ns/op 0.28500 ns/op 0.98
Array 250000 set(125000) 0.30100 ns/op 0.29500 ns/op 1.02
Array 250000 iterate all - loop 55.367 us/op 55.665 us/op 0.99
phase0 afterProcessEpoch - 250000 vs - 7PWei 49.936 ms/op 40.517 ms/op 1.23
Array.fill - length 1000000 2.0325 ms/op 2.3933 ms/op 0.85
Array push - length 1000000 8.6422 ms/op 8.9329 ms/op 0.97
Array.get 0.19255 ns/op 0.19792 ns/op 0.97
Uint8Array.get 0.24602 ns/op 0.22183 ns/op 1.11
phase0 beforeProcessEpoch - 250000 vs - 7PWei 13.391 ms/op 13.360 ms/op 1.00
altair processEpoch - mainnet_e81889 304.20 ms/op 249.12 ms/op 1.22
mainnet_e81889 - altair beforeProcessEpoch 34.433 ms/op 14.388 ms/op 2.39
mainnet_e81889 - altair processJustificationAndFinalization 6.2620 us/op 5.1170 us/op 1.22
mainnet_e81889 - altair processInactivityUpdates 3.5550 ms/op 3.3033 ms/op 1.08
mainnet_e81889 - altair processRewardsAndPenalties 18.322 ms/op 18.788 ms/op 0.98
mainnet_e81889 - altair processRegistryUpdates 525.00 ns/op 536.00 ns/op 0.98
mainnet_e81889 - altair processSlashings 126.00 ns/op 137.00 ns/op 0.92
mainnet_e81889 - altair processEth1DataReset 127.00 ns/op 135.00 ns/op 0.94
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.7101 ms/op 1.5987 ms/op 1.07
mainnet_e81889 - altair processSlashingsReset 703.00 ns/op 676.00 ns/op 1.04
mainnet_e81889 - altair processRandaoMixesReset 1.2210 us/op 971.00 ns/op 1.26
mainnet_e81889 - altair processHistoricalRootsUpdate 132.00 ns/op 135.00 ns/op 0.98
mainnet_e81889 - altair processParticipationFlagUpdates 416.00 ns/op 416.00 ns/op 1.00
mainnet_e81889 - altair processSyncCommitteeUpdates 104.00 ns/op 110.00 ns/op 0.95
mainnet_e81889 - altair afterProcessEpoch 40.196 ms/op 40.582 ms/op 0.99
capella processEpoch - mainnet_e217614 940.71 ms/op 762.95 ms/op 1.23
mainnet_e217614 - capella beforeProcessEpoch 55.251 ms/op 62.239 ms/op 0.89
mainnet_e217614 - capella processJustificationAndFinalization 6.9380 us/op 5.6610 us/op 1.23
mainnet_e217614 - capella processInactivityUpdates 11.769 ms/op 12.885 ms/op 0.91
mainnet_e217614 - capella processRewardsAndPenalties 98.647 ms/op 79.295 ms/op 1.24
mainnet_e217614 - capella processRegistryUpdates 4.5240 us/op 4.3030 us/op 1.05
mainnet_e217614 - capella processSlashings 132.00 ns/op 141.00 ns/op 0.94
mainnet_e217614 - capella processEth1DataReset 127.00 ns/op 138.00 ns/op 0.92
mainnet_e217614 - capella processEffectiveBalanceUpdates 15.488 ms/op 12.008 ms/op 1.29
mainnet_e217614 - capella processSlashingsReset 672.00 ns/op 658.00 ns/op 1.02
mainnet_e217614 - capella processRandaoMixesReset 1.4160 us/op 1.0560 us/op 1.34
mainnet_e217614 - capella processHistoricalRootsUpdate 127.00 ns/op 136.00 ns/op 0.93
mainnet_e217614 - capella processParticipationFlagUpdates 434.00 ns/op 431.00 ns/op 1.01
mainnet_e217614 - capella afterProcessEpoch 109.22 ms/op 104.69 ms/op 1.04
phase0 processEpoch - mainnet_e58758 350.84 ms/op 288.19 ms/op 1.22
mainnet_e58758 - phase0 beforeProcessEpoch 65.479 ms/op 62.144 ms/op 1.05
mainnet_e58758 - phase0 processJustificationAndFinalization 6.3800 us/op 5.6130 us/op 1.14
mainnet_e58758 - phase0 processRewardsAndPenalties 16.001 ms/op 15.408 ms/op 1.04
mainnet_e58758 - phase0 processRegistryUpdates 2.3720 us/op 2.1640 us/op 1.10
mainnet_e58758 - phase0 processSlashings 138.00 ns/op 150.00 ns/op 0.92
mainnet_e58758 - phase0 processEth1DataReset 134.00 ns/op 140.00 ns/op 0.96
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 844.39 us/op 797.40 us/op 1.06
mainnet_e58758 - phase0 processSlashingsReset 883.00 ns/op 855.00 ns/op 1.03
mainnet_e58758 - phase0 processRandaoMixesReset 1.4100 us/op 1.0530 us/op 1.34
mainnet_e58758 - phase0 processHistoricalRootsUpdate 134.00 ns/op 139.00 ns/op 0.96
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.2810 us/op 947.00 ns/op 1.35
mainnet_e58758 - phase0 afterProcessEpoch 33.310 ms/op 33.806 ms/op 0.99
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.1155 ms/op 965.82 us/op 1.16
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.6199 ms/op 1.5056 ms/op 1.08
altair processInactivityUpdates - 250000 normalcase 12.006 ms/op 10.652 ms/op 1.13
altair processInactivityUpdates - 250000 worstcase 10.878 ms/op 10.576 ms/op 1.03
phase0 processRegistryUpdates - 250000 normalcase 3.9020 us/op 2.0140 us/op 1.94
phase0 processRegistryUpdates - 250000 badcase_full_deposits 152.88 us/op 137.20 us/op 1.11
phase0 processRegistryUpdates - 250000 worstcase 0.5 64.299 ms/op 61.159 ms/op 1.05
altair processRewardsAndPenalties - 250000 normalcase 15.812 ms/op 13.652 ms/op 1.16
altair processRewardsAndPenalties - 250000 worstcase 15.429 ms/op 13.252 ms/op 1.16
phase0 getAttestationDeltas - 250000 normalcase 5.3790 ms/op 5.1056 ms/op 1.05
phase0 getAttestationDeltas - 250000 worstcase 5.4106 ms/op 5.1291 ms/op 1.05
phase0 processSlashings - 250000 worstcase 62.194 us/op 57.202 us/op 1.09
altair processSyncCommitteeUpdates - 250000 10.049 ms/op 9.8811 ms/op 1.02
BeaconState.hashTreeRoot - No change 168.00 ns/op 172.00 ns/op 0.98
BeaconState.hashTreeRoot - 1 full validator 93.228 us/op 72.349 us/op 1.29
BeaconState.hashTreeRoot - 32 full validator 1.2135 ms/op 793.60 us/op 1.53
BeaconState.hashTreeRoot - 512 full validator 9.0207 ms/op 7.6858 ms/op 1.17
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 101.33 us/op 95.389 us/op 1.06
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.7488 ms/op 1.3450 ms/op 1.30
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 20.764 ms/op 16.148 ms/op 1.29
BeaconState.hashTreeRoot - 1 balances 103.19 us/op 70.887 us/op 1.46
BeaconState.hashTreeRoot - 32 balances 912.04 us/op 714.88 us/op 1.28
BeaconState.hashTreeRoot - 512 balances 6.6755 ms/op 6.0161 ms/op 1.11
BeaconState.hashTreeRoot - 250000 balances 212.58 ms/op 113.07 ms/op 1.88
aggregationBits - 2048 els - zipIndexesInBitList 20.045 us/op 18.931 us/op 1.06
regular array get 100000 times 23.234 us/op 22.354 us/op 1.04
wrappedArray get 100000 times 23.263 us/op 22.231 us/op 1.05
arrayWithProxy get 100000 times 16.629 ms/op 12.605 ms/op 1.32
ssz.Root.equals 74.831 ns/op 21.030 ns/op 3.56
byteArrayEquals 21.792 ns/op 20.909 ns/op 1.04
Buffer.compare 9.0680 ns/op 8.6640 ns/op 1.05
processSlot - 1 slots 11.246 us/op 8.3000 us/op 1.35
processSlot - 32 slots 2.4327 ms/op 1.9161 ms/op 1.27
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 5.5400 ms/op 3.2189 ms/op 1.72
getCommitteeAssignments - req 1 vs - 250000 vc 1.6620 ms/op 1.6428 ms/op 1.01
getCommitteeAssignments - req 100 vs - 250000 vc 3.3575 ms/op 3.3506 ms/op 1.00
getCommitteeAssignments - req 1000 vs - 250000 vc 3.6329 ms/op 3.5941 ms/op 1.01
findModifiedValidators - 10000 modified validators 883.62 ms/op 596.38 ms/op 1.48
findModifiedValidators - 1000 modified validators 473.77 ms/op 377.30 ms/op 1.26
findModifiedValidators - 100 modified validators 321.73 ms/op 272.21 ms/op 1.18
findModifiedValidators - 10 modified validators 221.56 ms/op 149.84 ms/op 1.48
findModifiedValidators - 1 modified validators 176.26 ms/op 163.32 ms/op 1.08
findModifiedValidators - no difference 167.31 ms/op 170.79 ms/op 0.98
migrate state 1500000 validators, 3400 modified, 2000 new 3.5449 s/op 2.7146 s/op 1.31
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 3.6600 ns/op 3.5800 ns/op 1.02
state getBlockRootAtSlot - 250000 vs - 7PWei 433.08 ns/op 333.67 ns/op 1.30
computeProposerIndex 100000 validators 1.3308 ms/op 1.2794 ms/op 1.04
getNextSyncCommitteeIndices 1000 validators 2.7954 ms/op 2.7445 ms/op 1.02
getNextSyncCommitteeIndices 10000 validators 24.788 ms/op 24.147 ms/op 1.03
getNextSyncCommitteeIndices 100000 validators 84.075 ms/op 84.220 ms/op 1.00
computeProposers - vc 250000 532.77 us/op 530.41 us/op 1.00
computeEpochShuffling - vc 250000 38.940 ms/op 38.483 ms/op 1.01
getNextSyncCommittee - vc 250000 9.1979 ms/op 9.1098 ms/op 1.01
nodejs block root to RootHex using toHex 87.532 ns/op 84.642 ns/op 1.03
nodejs block root to RootHex using toRootHex 50.357 ns/op 49.802 ns/op 1.01
nodejs fromHex(blob) 847.44 us/op 702.92 us/op 1.21
nodejs fromHexInto(blob) 626.62 us/op 624.69 us/op 1.00
nodejs block root to RootHex using the deprecated toHexString 353.68 ns/op 476.22 ns/op 0.74
nodejs byteArrayEquals 32 bytes (block root) 25.492 ns/op 25.658 ns/op 0.99
nodejs byteArrayEquals 48 bytes (pubkey) 36.380 ns/op 36.777 ns/op 0.99
nodejs byteArrayEquals 96 bytes (signature) 32.204 ns/op 33.076 ns/op 0.97
nodejs byteArrayEquals 1024 bytes 40.359 ns/op 40.910 ns/op 0.99
nodejs byteArrayEquals 131072 bytes (blob) 1.7221 us/op 1.7158 us/op 1.00
browser block root to RootHex using toHex 145.93 ns/op 141.73 ns/op 1.03
browser block root to RootHex using toRootHex 131.01 ns/op 127.54 ns/op 1.03
browser fromHex(blob) 1.6438 ms/op 1.4838 ms/op 1.11
browser fromHexInto(blob) 608.20 us/op 617.94 us/op 0.98
browser block root to RootHex using the deprecated toHexString 459.30 ns/op 325.11 ns/op 1.41
browser byteArrayEquals 32 bytes (block root) 27.216 ns/op 27.533 ns/op 0.99
browser byteArrayEquals 48 bytes (pubkey) 39.030 ns/op 39.187 ns/op 1.00
browser byteArrayEquals 96 bytes (signature) 72.718 ns/op 72.639 ns/op 1.00
browser byteArrayEquals 1024 bytes 728.00 ns/op 727.09 ns/op 1.00
browser byteArrayEquals 131072 bytes (blob) 92.150 us/op 91.670 us/op 1.01

by benchmarkbot/action

@twoeths twoeths marked this pull request as ready for review June 1, 2026 06:53
@twoeths twoeths requested a review from a team as a code owner June 1, 2026 06:53
@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 1, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 52.56%. Comparing base (e47e0bb) to head (46e8592).

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #9435   +/-   ##
=========================================
  Coverage     52.56%   52.56%           
=========================================
  Files           848      848           
  Lines         60937    60937           
  Branches       4485     4485           
=========================================
  Hits          32031    32031           
  Misses        28844    28844           
  Partials         62       62           
🚀 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 enabled auto-merge (squash) June 1, 2026 10:27
@nflaig nflaig merged commit a9a9fe2 into unstable Jun 1, 2026
19 checks passed
@nflaig nflaig deleted the te/log_missing_payload branch June 1, 2026 10:40
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.

2 participants