Skip to content

chore: rank and identify builder bid candidates in log - #9966

Draft
nflaig wants to merge 12 commits into
unstablefrom
nflaig/log-builder-index-in-bid-ranking
Draft

chore: rank and identify builder bid candidates in log#9966
nflaig wants to merge 12 commits into
unstablefrom
nflaig/log-builder-index-in-bid-ranking

Conversation

@nflaig

@nflaig nflaig commented Sep 1, 2026

Copy link
Copy Markdown
Member

Ranked builder bid candidates prints the candidates in the order the bid requests resolved, not ranked, and does not say which builder each bid came from

  • sort the candidates and take the best from the front, replacing selectBestBid
  • log the builderIndex and boosted total of each candidate
  • render each candidate as braced key=value fields, the colon separator collides with the url scheme
  • sanitize the url with toPrintableUrl as done in all other builder logs
  • drop bidSource, it is the first ranked candidate now and Selected builder block already logs the block source
Ranked builder bid candidates slot=138857, candidates={source=https://devnet8-builder-api.bombora.workers.dev, builder=10002, total=0.14813 ETH, boost=1000, boosted=1.48130 ETH, received=483ms}, {source=p2p, builder=1889, total=0.17441 ETH, boost=90, boosted=0.15696 ETH, received=-312ms}, ...

Ranking compares the unscaled boostFactor * totalGwei as before, only the log scales down to print ETH.

ranks builder bids without truncating boosted values used two structurally identical bids so the assertion matched either one, give them distinct builder indices and cover the max boost paths.

@nflaig
nflaig marked this pull request as ready for review September 1, 2026 17:35
@nflaig
nflaig requested a review from a team as a code owner September 1, 2026 17:35
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 1, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-01T17:38:13.610120Z 4a4b0ad Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4a4b0ada8c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/beacon-node/src/api/impl/validator/index.ts Outdated
@nflaig
nflaig marked this pull request as draft September 1, 2026 17:46
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 7eef3f8 Previous: 9ba9a5c Ratio
getPubkeys - native cache - req 1000 vs - 250000 vc 408.88 us/op 432.48 us/op 0.95
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 40.346 us/op 37.683 us/op 1.07
BLS verify - blst 893.03 us/op 860.71 us/op 1.04
BLS verifyMultipleSignatures 3 - blst 1.3929 ms/op 1.2936 ms/op 1.08
BLS verifyMultipleSignatures 8 - blst 2.2492 ms/op 2.1446 ms/op 1.05
BLS verifyMultipleSignatures 32 - blst 7.4068 ms/op 6.9955 ms/op 1.06
BLS verifyMultipleSignatures 64 - blst 14.250 ms/op 13.416 ms/op 1.06
BLS verifyMultipleSignatures 128 - blst 27.045 ms/op 25.528 ms/op 1.06
BLS deserializing 10000 signatures 630.57 ms/op 611.69 ms/op 1.03
BLS deserializing 100000 signatures 6.3526 s/op 6.2327 s/op 1.02
BLS verifyMultipleSignatures - same message - 3 - blst 942.59 us/op 928.34 us/op 1.02
BLS verifyMultipleSignatures - same message - 8 - blst 1.0679 ms/op 1.0667 ms/op 1.00
BLS verifyMultipleSignatures - same message - 32 - blst 1.6735 ms/op 1.6822 ms/op 0.99
BLS verifyMultipleSignatures - same message - 64 - blst 2.4827 ms/op 2.5004 ms/op 0.99
BLS verifyMultipleSignatures - same message - 128 - blst 4.0880 ms/op 4.1416 ms/op 0.99
BLS aggregatePubkeys 32 - blst 19.313 us/op 19.339 us/op 1.00
BLS aggregatePubkeys 128 - blst 70.504 us/op 70.015 us/op 1.01
getSlashingsAndExits - default max 40.873 us/op 35.297 us/op 1.16
getSlashingsAndExits - 2k 341.13 us/op 356.74 us/op 0.96
proposeBlockBody type=full, size=empty 706.60 us/op 634.41 us/op 1.11
isKnown best case - 1 super set check 169.00 ns/op 152.00 ns/op 1.11
isKnown normal case - 2 super set checks 167.00 ns/op 152.00 ns/op 1.10
isKnown worse case - 16 super set checks 165.00 ns/op 153.00 ns/op 1.08
validate api signedAggregateAndProof - struct 1.5396 ms/op 1.4646 ms/op 1.05
validate gossip signedAggregateAndProof - struct 1.5369 ms/op 1.4411 ms/op 1.07
batch validate gossip attestation - vc 640000 - chunk 32 122.03 us/op 121.23 us/op 1.01
batch validate gossip attestation - vc 640000 - chunk 64 103.66 us/op 103.07 us/op 1.01
batch validate gossip attestation - vc 640000 - chunk 128 94.451 us/op 94.053 us/op 1.00
batch validate gossip attestation - vc 640000 - chunk 256 95.581 us/op 93.361 us/op 1.02
bytes32 toHexString 297.00 ns/op 272.00 ns/op 1.09
bytes32 Buffer.toString(hex) 171.00 ns/op 158.00 ns/op 1.08
bytes32 Buffer.toString(hex) from Uint8Array 243.00 ns/op 230.00 ns/op 1.06
bytes32 Buffer.toString(hex) + 0x 173.00 ns/op 157.00 ns/op 1.10
Return object 10000 times 0.21170 ns/op 0.20720 ns/op 1.02
Throw Error 10000 times 3.2924 us/op 3.1956 us/op 1.03
toHex 100.50 ns/op 99.307 ns/op 1.01
Buffer.from 89.168 ns/op 84.652 ns/op 1.05
shared Buffer 61.721 ns/op 57.224 ns/op 1.08
fastMsgIdFn sha256 / 200 bytes 1.5100 us/op 1.4540 us/op 1.04
fastMsgIdFn h32 xxhash / 200 bytes 155.00 ns/op 148.00 ns/op 1.05
fastMsgIdFn h64 xxhash / 200 bytes 210.00 ns/op 197.00 ns/op 1.07
fastMsgIdFn sha256 / 1000 bytes 4.8910 us/op 4.6240 us/op 1.06
fastMsgIdFn h32 xxhash / 1000 bytes 244.00 ns/op 238.00 ns/op 1.03
fastMsgIdFn h64 xxhash / 1000 bytes 261.00 ns/op 247.00 ns/op 1.06
fastMsgIdFn sha256 / 10000 bytes 42.991 us/op 40.818 us/op 1.05
fastMsgIdFn h32 xxhash / 10000 bytes 1.2700 us/op 1.2460 us/op 1.02
fastMsgIdFn h64 xxhash / 10000 bytes 830.00 ns/op 802.00 ns/op 1.03
send data - 1000 256B messages 3.9462 ms/op 4.1909 ms/op 0.94
send data - 1000 512B messages 4.8578 ms/op 5.2720 ms/op 0.92
send data - 1000 1024B messages 5.1144 ms/op 5.4533 ms/op 0.94
send data - 1000 1200B messages 6.0261 ms/op 6.0602 ms/op 0.99
send data - 1000 2048B messages 10.768 ms/op 13.418 ms/op 0.80
send data - 1000 4096B messages 101.78 ms/op 116.91 ms/op 0.87
send data - 1000 16384B messages 381.41 ms/op 363.44 ms/op 1.05
send data - 1000 65536B messages 1.8452 s/op 1.5614 s/op 1.18
enrSubnets - fastDeserialize 64 bits 736.00 ns/op 712.00 ns/op 1.03
enrSubnets - ssz BitVector 64 bits 269.00 ns/op 253.00 ns/op 1.06
enrSubnets - fastDeserialize 4 bits 104.00 ns/op 94.000 ns/op 1.11
enrSubnets - ssz BitVector 4 bits 261.00 ns/op 249.00 ns/op 1.05
prioritizePeers score -10:0 att 32-0.1 sync 2-0 209.90 us/op 193.76 us/op 1.08
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 236.88 us/op 220.87 us/op 1.07
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 343.98 us/op 320.42 us/op 1.07
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 611.46 us/op 569.60 us/op 1.07
prioritizePeers score 0:0 att 64-1 sync 4-1 707.48 us/op 666.56 us/op 1.06
array of 16000 items push then shift 1.3089 us/op 1.2310 us/op 1.06
LinkedList of 16000 items push then shift 6.7050 ns/op 7.3240 ns/op 0.92
array of 16000 items push then pop 77.553 ns/op 78.020 ns/op 0.99
LinkedList of 16000 items push then pop 6.0540 ns/op 5.7940 ns/op 1.04
array of 24000 items push then shift 1.9294 us/op 1.8281 us/op 1.06
LinkedList of 24000 items push then shift 6.2880 ns/op 6.9090 ns/op 0.91
array of 24000 items push then pop 108.32 ns/op 111.42 ns/op 0.97
LinkedList of 24000 items push then pop 5.9970 ns/op 5.8960 ns/op 1.02
intersect bitArray bitLen 8 3.8250 ns/op 3.7800 ns/op 1.01
intersect array and set length 8 30.596 ns/op 28.194 ns/op 1.09
intersect bitArray bitLen 128 23.071 ns/op 22.711 ns/op 1.02
intersect array and set length 128 508.19 ns/op 481.61 ns/op 1.06
bitArray.getTrueBitIndexes() bitLen 128 900.00 ns/op 912.00 ns/op 0.99
bitArray.getTrueBitIndexes() bitLen 248 1.6340 us/op 1.6590 us/op 0.98
bitArray.getTrueBitIndexes() bitLen 512 3.3910 us/op 3.4640 us/op 0.98
Full columns - reconstruct all 6 blobs 177.30 us/op 142.34 us/op 1.25
Full columns - reconstruct half of the blobs out of 6 83.888 us/op 79.745 us/op 1.05
Full columns - reconstruct single blob out of 6 30.859 us/op 31.671 us/op 0.97
Half columns - reconstruct all 6 blobs 381.92 ms/op 376.35 ms/op 1.01
Half columns - reconstruct half of the blobs out of 6 188.47 ms/op 186.31 ms/op 1.01
Half columns - reconstruct single blob out of 6 67.282 ms/op 66.065 ms/op 1.02
Set add up to 64 items then delete first 1.7228 us/op 1.5667 us/op 1.10
OrderedSet add up to 64 items then delete first 2.6217 us/op 2.3614 us/op 1.11
Set add up to 64 items then delete last 1.9607 us/op 1.7567 us/op 1.12
OrderedSet add up to 64 items then delete last 2.8638 us/op 2.6449 us/op 1.08
Set add up to 64 items then delete middle 1.9303 us/op 1.7360 us/op 1.11
OrderedSet add up to 64 items then delete middle 4.3078 us/op 4.0236 us/op 1.07
Set add up to 128 items then delete first 3.8451 us/op 3.4758 us/op 1.11
OrderedSet add up to 128 items then delete first 5.8287 us/op 5.4237 us/op 1.07
Set add up to 128 items then delete last 3.7642 us/op 3.3797 us/op 1.11
OrderedSet add up to 128 items then delete last 5.5184 us/op 5.1101 us/op 1.08
Set add up to 128 items then delete middle 3.7590 us/op 3.3924 us/op 1.11
OrderedSet add up to 128 items then delete middle 11.338 us/op 11.334 us/op 1.00
Set add up to 256 items then delete first 7.7114 us/op 7.3275 us/op 1.05
OrderedSet add up to 256 items then delete first 11.983 us/op 11.568 us/op 1.04
Set add up to 256 items then delete last 7.4120 us/op 6.7388 us/op 1.10
OrderedSet add up to 256 items then delete last 11.337 us/op 11.092 us/op 1.02
Set add up to 256 items then delete middle 7.4090 us/op 7.1452 us/op 1.04
OrderedSet add up to 256 items then delete middle 34.608 us/op 34.158 us/op 1.01
runFastConfirmationRules vc:100000 bc:96 eq:0 5.1534 ms/op 4.3143 ms/op 1.19
runFastConfirmationRules vc:600000 bc:96 eq:0 35.137 ms/op 34.587 ms/op 1.02
runFastConfirmationRules vc:1000000 bc:96 eq:0 58.495 ms/op 56.143 ms/op 1.04
runFastConfirmationRules vc:600000 bc:320 eq:0 35.365 ms/op 34.997 ms/op 1.01
runFastConfirmationRules vc:100000 bc:96 eq:1000 1.1288 s/op 1.1021 s/op 1.02
pass gossip attestations to forkchoice per slot 2.5421 ms/op 2.4884 ms/op 1.02
forkChoice updateHead vc 100000 bc 64 eq 0 486.51 us/op 392.23 us/op 1.24
forkChoice updateHead vc 600000 bc 64 eq 0 2.8738 ms/op 2.3492 ms/op 1.22
forkChoice updateHead vc 1000000 bc 64 eq 0 4.6631 ms/op 3.8607 ms/op 1.21
forkChoice updateHead vc 600000 bc 320 eq 0 2.8256 ms/op 2.3798 ms/op 1.19
forkChoice updateHead vc 600000 bc 1200 eq 0 3.0569 ms/op 2.3772 ms/op 1.29
forkChoice updateHead vc 600000 bc 7200 eq 0 3.3006 ms/op 2.9408 ms/op 1.12
forkChoice updateHead vc 600000 bc 64 eq 1000 2.9328 ms/op 2.3276 ms/op 1.26
forkChoice updateHead vc 600000 bc 64 eq 10000 2.9975 ms/op 2.4104 ms/op 1.24
forkChoice updateHead vc 600000 bc 64 eq 300000 7.3102 ms/op 6.8732 ms/op 1.06
forkChoice updateHead vc 600000 bc 64 eq 0 gloas boosted 2.7830 ms/op 2.3991 ms/op 1.16
computeDeltas 1400000 validators 0% inactive 13.383 ms/op 11.825 ms/op 1.13
computeDeltas 1400000 validators 10% inactive 12.602 ms/op 11.190 ms/op 1.13
computeDeltas 1400000 validators 20% inactive 11.893 ms/op 10.579 ms/op 1.12
computeDeltas 1400000 validators 50% inactive 9.6833 ms/op 8.6567 ms/op 1.12
computeDeltas 2100000 validators 0% inactive 19.869 ms/op 17.875 ms/op 1.11
computeDeltas 2100000 validators 10% inactive 18.911 ms/op 16.859 ms/op 1.12
computeDeltas 2100000 validators 20% inactive 17.784 ms/op 15.762 ms/op 1.13
computeDeltas 2100000 validators 50% inactive 14.531 ms/op 10.459 ms/op 1.39
altair processAttestation - 250000 vs - 7PWei normalcase 1.6264 ms/op 1.8469 ms/op 0.88
altair processAttestation - 250000 vs - 7PWei worstcase 2.4483 ms/op 3.0621 ms/op 0.80
altair processAttestation - setStatus - 1/6 committees join 104.65 us/op 96.500 us/op 1.08
altair processAttestation - setStatus - 1/3 committees join 211.77 us/op 198.38 us/op 1.07
altair processAttestation - setStatus - 1/2 committees join 297.21 us/op 277.03 us/op 1.07
altair processAttestation - setStatus - 2/3 committees join 383.75 us/op 360.76 us/op 1.06
altair processAttestation - setStatus - 4/5 committees join 535.12 us/op 531.92 us/op 1.01
altair processAttestation - setStatus - 100% committees join 625.95 us/op 621.68 us/op 1.01
altair processBlock - 250000 vs - 7PWei normalcase 3.3876 ms/op 5.1251 ms/op 0.66
altair processBlock - 250000 vs - 7PWei normalcase hashState 19.574 ms/op 23.672 ms/op 0.83
altair processBlock - 250000 vs - 7PWei worstcase 22.402 ms/op 26.677 ms/op 0.84
altair processBlock - 250000 vs - 7PWei worstcase hashState 50.343 ms/op 57.030 ms/op 0.88
phase0 processBlock - 250000 vs - 7PWei normalcase 1.2987 ms/op 1.3634 ms/op 0.95
phase0 processBlock - 250000 vs - 7PWei worstcase 19.862 ms/op 21.286 ms/op 0.93
altair processEth1Data - 250000 vs - 7PWei normalcase 308.24 us/op 293.80 us/op 1.05
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:16 3.6580 us/op 3.2570 us/op 1.12
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:220 21.940 us/op 20.258 us/op 1.08
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:43 5.9260 us/op 5.6870 us/op 1.04
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:19 4.0140 us/op 3.6070 us/op 1.11
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1021 100.99 us/op 87.911 us/op 1.15
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11778 1.4359 ms/op 1.4277 ms/op 1.01
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.8849 ms/op 1.8848 ms/op 1.00
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.8588 ms/op 1.8902 ms/op 0.98
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.7081 ms/op 4.1691 ms/op 0.89
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.1185 ms/op 2.1263 ms/op 1.00
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.9750 ms/op 4.3989 ms/op 0.90
Tree 40 250000 create 324.12 ms/op 354.93 ms/op 0.91
Tree 40 250000 get(125000) 98.890 ns/op 92.795 ns/op 1.07
Tree 40 250000 set(125000) 1.0797 us/op 999.97 ns/op 1.08
Tree 40 250000 toArray() 10.478 ms/op 16.810 ms/op 0.62
Tree 40 250000 iterate all - toArray() + loop 10.579 ms/op 16.475 ms/op 0.64
Tree 40 250000 iterate all - get(i) 34.573 ms/op 39.764 ms/op 0.87
Array 250000 create 2.4030 ms/op 2.5827 ms/op 0.93
Array 250000 clone - spread 752.65 us/op 796.50 us/op 0.94
Array 250000 get(125000) 0.29300 ns/op 0.29600 ns/op 0.99
Array 250000 set(125000) 0.29300 ns/op 0.29500 ns/op 0.99
Array 250000 iterate all - loop 55.798 us/op 58.139 us/op 0.96
phase0 afterProcessEpoch - 250000 vs - 7PWei 37.987 ms/op 52.257 ms/op 0.73
Array.fill - length 1000000 4.2143 ms/op 5.0020 ms/op 0.84
Array push - length 1000000 14.371 ms/op 15.904 ms/op 0.90
Array.get 0.20175 ns/op 0.21055 ns/op 0.96
Uint8Array.get 0.27195 ns/op 0.25788 ns/op 1.05
phase0 beforeProcessEpoch - 250000 vs - 7PWei 14.401 ms/op 19.676 ms/op 0.73
altair processEpoch - mainnet_e81889 196.71 ms/op 255.80 ms/op 0.77
mainnet_e81889 - altair beforeProcessEpoch 37.903 ms/op 39.344 ms/op 0.96
mainnet_e81889 - altair processJustificationAndFinalization 4.2890 us/op 5.5510 us/op 0.77
mainnet_e81889 - altair processInactivityUpdates 3.7149 ms/op 6.0660 ms/op 0.61
mainnet_e81889 - altair processRewardsAndPenalties 17.505 ms/op 19.144 ms/op 0.91
mainnet_e81889 - altair processRegistryUpdates 556.00 ns/op 574.00 ns/op 0.97
mainnet_e81889 - altair processSlashings 145.00 ns/op 148.00 ns/op 0.98
mainnet_e81889 - altair processEth1DataReset 141.00 ns/op 144.00 ns/op 0.98
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.6782 ms/op 5.3636 ms/op 0.31
mainnet_e81889 - altair processSlashingsReset 682.00 ns/op 725.00 ns/op 0.94
mainnet_e81889 - altair processRandaoMixesReset 879.00 ns/op 1.0030 us/op 0.88
mainnet_e81889 - altair processHistoricalRootsUpdate 140.00 ns/op 141.00 ns/op 0.99
mainnet_e81889 - altair processParticipationFlagUpdates 438.00 ns/op 462.00 ns/op 0.95
mainnet_e81889 - altair processSyncCommitteeUpdates 113.00 ns/op 113.00 ns/op 1.00
mainnet_e81889 - altair afterProcessEpoch 41.019 ms/op 43.164 ms/op 0.95
capella processEpoch - mainnet_e217614 610.83 ms/op 760.42 ms/op 0.80
mainnet_e217614 - capella beforeProcessEpoch 63.253 ms/op 62.908 ms/op 1.01
mainnet_e217614 - capella processJustificationAndFinalization 4.3690 us/op 5.6050 us/op 0.78
mainnet_e217614 - capella processInactivityUpdates 11.934 ms/op 16.037 ms/op 0.74
mainnet_e217614 - capella processRewardsAndPenalties 91.017 ms/op 94.734 ms/op 0.96
mainnet_e217614 - capella processRegistryUpdates 4.5290 us/op 4.6340 us/op 0.98
mainnet_e217614 - capella processSlashings 144.00 ns/op 150.00 ns/op 0.96
mainnet_e217614 - capella processEth1DataReset 136.00 ns/op 149.00 ns/op 0.91
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.6541 ms/op 17.218 ms/op 0.33
mainnet_e217614 - capella processSlashingsReset 684.00 ns/op 697.00 ns/op 0.98
mainnet_e217614 - capella processRandaoMixesReset 921.00 ns/op 1.0590 us/op 0.87
mainnet_e217614 - capella processHistoricalRootsUpdate 148.00 ns/op 156.00 ns/op 0.95
mainnet_e217614 - capella processParticipationFlagUpdates 443.00 ns/op 472.00 ns/op 0.94
mainnet_e217614 - capella afterProcessEpoch 111.02 ms/op 110.35 ms/op 1.01
phase0 processEpoch - mainnet_e58758 189.22 ms/op 223.48 ms/op 0.85
mainnet_e58758 - phase0 beforeProcessEpoch 38.210 ms/op 53.345 ms/op 0.72
mainnet_e58758 - phase0 processJustificationAndFinalization 4.3270 us/op 4.9560 us/op 0.87
mainnet_e58758 - phase0 processRewardsAndPenalties 15.865 ms/op 16.867 ms/op 0.94
mainnet_e58758 - phase0 processRegistryUpdates 2.2290 us/op 2.2770 us/op 0.98
mainnet_e58758 - phase0 processSlashings 147.00 ns/op 158.00 ns/op 0.93
mainnet_e58758 - phase0 processEth1DataReset 145.00 ns/op 150.00 ns/op 0.97
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 953.32 us/op 1.7766 ms/op 0.54
mainnet_e58758 - phase0 processSlashingsReset 794.00 ns/op 880.00 ns/op 0.90
mainnet_e58758 - phase0 processRandaoMixesReset 1.9290 us/op 973.00 ns/op 1.98
mainnet_e58758 - phase0 processHistoricalRootsUpdate 145.00 ns/op 155.00 ns/op 0.94
mainnet_e58758 - phase0 processParticipationRecordUpdates 918.00 ns/op 979.00 ns/op 0.94
mainnet_e58758 - phase0 afterProcessEpoch 33.029 ms/op 34.269 ms/op 0.96
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.0194 ms/op 1.1690 ms/op 0.87
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.6525 ms/op 1.2142 ms/op 1.36
altair processInactivityUpdates - 250000 normalcase 10.566 ms/op 12.930 ms/op 0.82
altair processInactivityUpdates - 250000 worstcase 10.642 ms/op 13.036 ms/op 0.82
phase0 processRegistryUpdates - 250000 normalcase 2.4860 us/op 2.2620 us/op 1.10
phase0 processRegistryUpdates - 250000 badcase_full_deposits 153.61 us/op 143.04 us/op 1.07
phase0 processRegistryUpdates - 250000 worstcase 0.5 53.570 ms/op 67.329 ms/op 0.80
altair processRewardsAndPenalties - 250000 normalcase 13.918 ms/op 14.800 ms/op 0.94
altair processRewardsAndPenalties - 250000 worstcase 13.986 ms/op 14.211 ms/op 0.98
phase0 getAttestationDeltas - 250000 normalcase 5.5732 ms/op 5.5756 ms/op 1.00
phase0 getAttestationDeltas - 250000 worstcase 5.5971 ms/op 6.4748 ms/op 0.86
phase0 processSlashings - 250000 worstcase 58.845 us/op 61.418 us/op 0.96
altair processSyncCommitteeUpdates - 250000 9.6985 ms/op 11.512 ms/op 0.84
BeaconState.hashTreeRoot - No change 174.00 ns/op 193.00 ns/op 0.90
BeaconState.hashTreeRoot - 1 full validator 58.622 us/op 78.797 us/op 0.74
BeaconState.hashTreeRoot - 32 full validator 645.25 us/op 973.72 us/op 0.66
BeaconState.hashTreeRoot - 512 full validator 6.2142 ms/op 9.3543 ms/op 0.66
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 70.228 us/op 104.54 us/op 0.67
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.0579 ms/op 1.5442 ms/op 0.69
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 13.173 ms/op 21.141 ms/op 0.62
BeaconState.hashTreeRoot - 1 balances 57.085 us/op 91.123 us/op 0.63
BeaconState.hashTreeRoot - 32 balances 556.43 us/op 839.87 us/op 0.66
BeaconState.hashTreeRoot - 512 balances 4.7938 ms/op 7.1313 ms/op 0.67
BeaconState.hashTreeRoot - 250000 balances 92.677 ms/op 143.46 ms/op 0.65
aggregationBits - 2048 els - zipIndexesInBitList 19.614 us/op 20.355 us/op 0.96
regular array get 100000 times 22.663 us/op 23.563 us/op 0.96
wrappedArray get 100000 times 22.680 us/op 23.669 us/op 0.96
arrayWithProxy get 100000 times 10.223 ms/op 9.8188 ms/op 1.04
ssz.Root.equals 21.480 ns/op 21.679 ns/op 0.99
byteArrayEquals 21.253 ns/op 21.437 ns/op 0.99
Buffer.compare 9.4360 ns/op 8.9420 ns/op 1.06
processSlot - 1 slots 8.0730 us/op 10.461 us/op 0.77
processSlot - 32 slots 1.5771 ms/op 2.3814 ms/op 0.66
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.4845 ms/op 6.1148 ms/op 0.57
getCommitteeAssignments - req 1 vs - 250000 vc 1.6890 ms/op 1.7031 ms/op 0.99
getCommitteeAssignments - req 100 vs - 250000 vc 3.3979 ms/op 3.4565 ms/op 0.98
getCommitteeAssignments - req 1000 vs - 250000 vc 3.6502 ms/op 3.7047 ms/op 0.99
findModifiedValidators - 10000 modified validators 768.99 ms/op 798.08 ms/op 0.96
findModifiedValidators - 1000 modified validators 622.98 ms/op 580.55 ms/op 1.07
findModifiedValidators - 100 modified validators 418.83 ms/op 359.85 ms/op 1.16
findModifiedValidators - 10 modified validators 314.87 ms/op 340.16 ms/op 0.93
findModifiedValidators - 1 modified validators 287.73 ms/op 236.12 ms/op 1.22
findModifiedValidators - no difference 194.42 ms/op 200.35 ms/op 0.97
migrate state 1500000 validators, 3400 modified, 2000 new 2.6736 s/op 3.4067 s/op 0.78
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 3.4600 ns/op 3.4700 ns/op 1.00
state getBlockRootAtSlot - 250000 vs - 7PWei 291.21 ns/op 440.79 ns/op 0.66
computeProposerIndex 100000 validators 1.3553 ms/op 1.4879 ms/op 0.91
getNextSyncCommitteeIndices 1000 validators 2.8860 ms/op 2.9451 ms/op 0.98
getNextSyncCommitteeIndices 10000 validators 26.042 ms/op 26.698 ms/op 0.98
getNextSyncCommitteeIndices 100000 validators 88.231 ms/op 91.723 ms/op 0.96
computeProposers - vc 250000 573.50 us/op 603.49 us/op 0.95
computeEpochShuffling - vc 250000 38.707 ms/op 41.545 ms/op 0.93
getNextSyncCommittee - vc 250000 9.5128 ms/op 10.917 ms/op 0.87
nodejs block root to RootHex using toHex 104.21 ns/op 96.470 ns/op 1.08
nodejs block root to RootHex using toRootHex 68.597 ns/op 62.325 ns/op 1.10
nodejs fromHex(blob) 859.05 us/op 840.37 us/op 1.02
nodejs fromHexInto(blob) 659.51 us/op 625.54 us/op 1.05
nodejs block root to RootHex using the deprecated toHexString 617.93 ns/op 586.95 ns/op 1.05
nodejs byteArrayEquals 32 bytes (block root) 25.617 ns/op 26.471 ns/op 0.97
nodejs byteArrayEquals 48 bytes (pubkey) 36.908 ns/op 38.224 ns/op 0.97
nodejs byteArrayEquals 96 bytes (signature) 40.263 ns/op 34.830 ns/op 1.16
nodejs byteArrayEquals 1024 bytes 43.789 ns/op 42.057 ns/op 1.04
nodejs byteArrayEquals 131072 bytes (blob) 1.7640 us/op 1.7964 us/op 0.98
browser block root to RootHex using toHex 146.95 ns/op 147.88 ns/op 0.99
browser block root to RootHex using toRootHex 131.37 ns/op 132.22 ns/op 0.99
browser fromHex(blob) 1.7563 ms/op 1.7807 ms/op 0.99
browser fromHexInto(blob) 676.81 us/op 635.70 us/op 1.06
browser block root to RootHex using the deprecated toHexString 413.99 ns/op 394.19 ns/op 1.05
browser byteArrayEquals 32 bytes (block root) 28.064 ns/op 27.761 ns/op 1.01
browser byteArrayEquals 48 bytes (pubkey) 41.949 ns/op 39.256 ns/op 1.07
browser byteArrayEquals 96 bytes (signature) 73.940 ns/op 71.969 ns/op 1.03
browser byteArrayEquals 1024 bytes 757.56 ns/op 742.44 ns/op 1.02
browser byteArrayEquals 131072 bytes (blob) 95.114 us/op 94.499 us/op 1.01

by benchmarkbot/action

@nflaig
nflaig force-pushed the nflaig/log-builder-index-in-bid-ranking branch from a3de2eb to 887ca89 Compare September 1, 2026 22:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

1 participant