Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: warn if engine / builder failed to produce block within cutoff time #7305

Merged
merged 1 commit into from
Dec 17, 2024

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Dec 16, 2024

Motivation

Noticed we don't log any warning if engine or builder failed to produce block within cutoff time. In this case the status will be "pending" and the other block (if resolved) will be picked.

This scenario is pretty rare but can happen in some cases, eg. if block production is started late into the slot due to event loop lag or other reasons.

I have not seen this happen for engine blocks but noticed one case where we did not pick the builder block due to this (see logs)

Description

Log a warning if engine / builder failed to produce block within cutoff time

@nflaig nflaig requested a review from a team as a code owner December 16, 2024 14:15
Copy link

codecov bot commented Dec 16, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 48.76%. Comparing base (ba1d41b) to head (89902de).
Report is 2 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #7305    /-   ##
=========================================
  Coverage     48.76%   48.76%           
=========================================
  Files           601      601           
  Lines         40203    40203           
  Branches       2061     2061           
=========================================
  Hits          19607    19607           
  Misses        20558    20558           
  Partials         38       38           

Copy link
Contributor

github-actions bot commented Dec 16, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: d4d26ec Previous: ba1d41b Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.7903 ms/op 1.7607 ms/op 1.58
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 41.911 us/op 37.655 us/op 1.11
BLS verify - blst 909.67 us/op 876.12 us/op 1.04
BLS verifyMultipleSignatures 3 - blst 1.3943 ms/op 1.6657 ms/op 0.84
BLS verifyMultipleSignatures 8 - blst 2.1365 ms/op 2.1395 ms/op 1.00
BLS verifyMultipleSignatures 32 - blst 5.0339 ms/op 4.4744 ms/op 1.13
BLS verifyMultipleSignatures 64 - blst 8.5086 ms/op 8.1407 ms/op 1.05
BLS verifyMultipleSignatures 128 - blst 16.440 ms/op 15.629 ms/op 1.05
BLS deserializing 10000 signatures 636.34 ms/op 565.57 ms/op 1.13
BLS deserializing 100000 signatures 6.2738 s/op 5.9869 s/op 1.05
BLS verifyMultipleSignatures - same message - 3 - blst 949.27 us/op 913.33 us/op 1.04
BLS verifyMultipleSignatures - same message - 8 - blst 1.0810 ms/op 1.0418 ms/op 1.04
BLS verifyMultipleSignatures - same message - 32 - blst 1.7122 ms/op 1.6477 ms/op 1.04
BLS verifyMultipleSignatures - same message - 64 - blst 2.5645 ms/op 2.4209 ms/op 1.06
BLS verifyMultipleSignatures - same message - 128 - blst 4.2664 ms/op 4.1633 ms/op 1.02
BLS aggregatePubkeys 32 - blst 18.504 us/op 16.818 us/op 1.10
BLS aggregatePubkeys 128 - blst 65.008 us/op 58.227 us/op 1.12
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 92.367 ms/op 90.254 ms/op 1.02
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 64.961 ms/op 60.488 ms/op 1.07
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 43.751 ms/op 36.256 ms/op 1.21
getSlashingsAndExits - default max 162.93 us/op 64.382 us/op 2.53
getSlashingsAndExits - 2k 414.32 us/op 220.26 us/op 1.88
proposeBlockBody type=full, size=empty 6.8282 ms/op 4.8843 ms/op 1.40
isKnown best case - 1 super set check 626.00 ns/op 466.00 ns/op 1.34
isKnown normal case - 2 super set checks 582.00 ns/op 460.00 ns/op 1.27
isKnown worse case - 16 super set checks 529.00 ns/op 460.00 ns/op 1.15
InMemoryCheckpointStateCache - add get delete 4.4120 us/op 2.4720 us/op 1.78
validate api signedAggregateAndProof - struct 1.6376 ms/op 1.7801 ms/op 0.92
validate gossip signedAggregateAndProof - struct 1.6302 ms/op 1.8973 ms/op 0.86
batch validate gossip attestation - vc 640000 - chunk 32 149.66 us/op 116.40 us/op 1.29
batch validate gossip attestation - vc 640000 - chunk 64 120.00 us/op 103.97 us/op 1.15
batch validate gossip attestation - vc 640000 - chunk 128 113.06 us/op 93.027 us/op 1.22
batch validate gossip attestation - vc 640000 - chunk 256 107.64 us/op 90.153 us/op 1.19
pickEth1Vote - no votes 998.60 us/op 888.11 us/op 1.12
pickEth1Vote - max votes 6.4488 ms/op 4.4351 ms/op 1.45
pickEth1Vote - Eth1Data hashTreeRoot value x2048 13.992 ms/op 9.5468 ms/op 1.47
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 22.402 ms/op 12.810 ms/op 1.75
pickEth1Vote - Eth1Data fastSerialize value x2048 443.93 us/op 380.73 us/op 1.17
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.5048 ms/op 1.9922 ms/op 1.76
bytes32 toHexString 780.00 ns/op 609.00 ns/op 1.28
bytes32 Buffer.toString(hex) 428.00 ns/op 430.00 ns/op 1.00
bytes32 Buffer.toString(hex) from Uint8Array 615.00 ns/op 526.00 ns/op 1.17
bytes32 Buffer.toString(hex) 0x 463.00 ns/op 426.00 ns/op 1.09
Object access 1 prop 0.36000 ns/op 0.32000 ns/op 1.13
Map access 1 prop 0.30600 ns/op 0.32200 ns/op 0.95
Object get x1000 5.0070 ns/op 5.5120 ns/op 0.91
Map get x1000 5.6770 ns/op 6.1200 ns/op 0.93
Object set x1000 26.576 ns/op 22.518 ns/op 1.18
Map set x1000 25.200 ns/op 18.814 ns/op 1.34
Return object 10000 times 0.29900 ns/op 0.29580 ns/op 1.01
Throw Error 10000 times 2.7125 us/op 2.6289 us/op 1.03
toHex 125.97 ns/op 112.70 ns/op 1.12
Buffer.from 117.61 ns/op 105.06 ns/op 1.12
shared Buffer 75.209 ns/op 70.159 ns/op 1.07
fastMsgIdFn sha256 / 200 bytes 2.1500 us/op 2.0130 us/op 1.07
fastMsgIdFn h32 xxhash / 200 bytes 476.00 ns/op 401.00 ns/op 1.19
fastMsgIdFn h64 xxhash / 200 bytes 449.00 ns/op 437.00 ns/op 1.03
fastMsgIdFn sha256 / 1000 bytes 6.0200 us/op 5.8980 us/op 1.02
fastMsgIdFn h32 xxhash / 1000 bytes 597.00 ns/op 521.00 ns/op 1.15
fastMsgIdFn h64 xxhash / 1000 bytes 517.00 ns/op 507.00 ns/op 1.02
fastMsgIdFn sha256 / 10000 bytes 48.132 us/op 49.368 us/op 0.97
fastMsgIdFn h32 xxhash / 10000 bytes 1.9780 us/op 1.8700 us/op 1.06
fastMsgIdFn h64 xxhash / 10000 bytes 1.3390 us/op 1.3160 us/op 1.02
send data - 1000 256B messages 11.903 ms/op 9.4730 ms/op 1.26
send data - 1000 512B messages 15.814 ms/op 12.599 ms/op 1.26
send data - 1000 1024B messages 28.145 ms/op 20.328 ms/op 1.38
send data - 1000 1200B messages 25.256 ms/op 21.737 ms/op 1.16
send data - 1000 2048B messages 28.343 ms/op 28.768 ms/op 0.99
send data - 1000 4096B messages 26.630 ms/op 26.073 ms/op 1.02
send data - 1000 16384B messages 66.070 ms/op 60.155 ms/op 1.10
send data - 1000 65536B messages 268.15 ms/op 221.23 ms/op 1.21
enrSubnets - fastDeserialize 64 bits 1.1200 us/op 1.1630 us/op 0.96
enrSubnets - ssz BitVector 64 bits 557.00 ns/op 495.00 ns/op 1.13
enrSubnets - fastDeserialize 4 bits 349.00 ns/op 316.00 ns/op 1.10
enrSubnets - ssz BitVector 4 bits 581.00 ns/op 494.00 ns/op 1.18
prioritizePeers score -10:0 att 32-0.1 sync 2-0 125.40 us/op 141.74 us/op 0.88
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 152.30 us/op 118.03 us/op 1.29
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 291.96 us/op 248.67 us/op 1.17
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 500.96 us/op 480.84 us/op 1.04
prioritizePeers score 0:0 att 64-1 sync 4-1 766.50 us/op 651.16 us/op 1.18
array of 16000 items push then shift 1.2717 us/op 1.2920 us/op 0.98
LinkedList of 16000 items push then shift 6.9190 ns/op 6.3350 ns/op 1.09
array of 16000 items push then pop 115.59 ns/op 78.048 ns/op 1.48
LinkedList of 16000 items push then pop 6.4150 ns/op 6.2110 ns/op 1.03
array of 24000 items push then shift 1.9464 us/op 1.8845 us/op 1.03
LinkedList of 24000 items push then shift 6.5480 ns/op 6.3760 ns/op 1.03
array of 24000 items push then pop 124.28 ns/op 108.27 ns/op 1.15
LinkedList of 24000 items push then pop 6.4570 ns/op 6.3100 ns/op 1.02
intersect bitArray bitLen 8 5.4360 ns/op 5.3150 ns/op 1.02
intersect array and set length 8 38.269 ns/op 40.612 ns/op 0.94
intersect bitArray bitLen 128 26.923 ns/op 26.401 ns/op 1.02
intersect array and set length 128 585.66 ns/op 591.42 ns/op 0.99
bitArray.getTrueBitIndexes() bitLen 128 2.2430 us/op 2.2920 us/op 0.98
bitArray.getTrueBitIndexes() bitLen 248 3.0800 us/op 3.5980 us/op 0.86
bitArray.getTrueBitIndexes() bitLen 512 5.8130 us/op 6.9360 us/op 0.84
Buffer.concat 32 items 1.0800 us/op 1.0130 us/op 1.07
Uint8Array.set 32 items 1.6220 us/op 1.5590 us/op 1.04
Buffer.copy 1.8860 us/op 1.8520 us/op 1.02
Uint8Array.set - with subarray 2.5420 us/op 2.3250 us/op 1.09
Uint8Array.set - without subarray 1.7670 us/op 1.6390 us/op 1.08
getUint32 - dataview 473.00 ns/op 398.00 ns/op 1.19
getUint32 - manual 353.00 ns/op 336.00 ns/op 1.05
Set add up to 64 items then delete first 1.8448 us/op 1.7544 us/op 1.05
OrderedSet add up to 64 items then delete first 2.8825 us/op 2.7372 us/op 1.05
Set add up to 64 items then delete last 2.0678 us/op 2.0175 us/op 1.02
OrderedSet add up to 64 items then delete last 3.1181 us/op 3.1587 us/op 0.99
Set add up to 64 items then delete middle 2.0620 us/op 2.0466 us/op 1.01
OrderedSet add up to 64 items then delete middle 4.5898 us/op 4.5461 us/op 1.01
Set add up to 128 items then delete first 4.0923 us/op 3.9369 us/op 1.04
OrderedSet add up to 128 items then delete first 6.3422 us/op 5.8804 us/op 1.08
Set add up to 128 items then delete last 3.9414 us/op 3.9299 us/op 1.00
OrderedSet add up to 128 items then delete last 5.9658 us/op 6.1137 us/op 0.98
Set add up to 128 items then delete middle 4.0767 us/op 3.9181 us/op 1.04
OrderedSet add up to 128 items then delete middle 12.530 us/op 11.581 us/op 1.08
Set add up to 256 items then delete first 7.7298 us/op 7.7004 us/op 1.00
OrderedSet add up to 256 items then delete first 13.904 us/op 11.595 us/op 1.20
Set add up to 256 items then delete last 7.7802 us/op 7.6905 us/op 1.01
OrderedSet add up to 256 items then delete last 12.001 us/op 12.045 us/op 1.00
Set add up to 256 items then delete middle 9.0335 us/op 7.6572 us/op 1.18
OrderedSet add up to 256 items then delete middle 37.325 us/op 34.531 us/op 1.08
transfer serialized Status (84 B) 1.2870 us/op 1.4910 us/op 0.86
copy serialized Status (84 B) 1.2140 us/op 1.3010 us/op 0.93
transfer serialized SignedVoluntaryExit (112 B) 1.3480 us/op 1.6620 us/op 0.81
copy serialized SignedVoluntaryExit (112 B) 1.4190 us/op 1.3670 us/op 1.04
transfer serialized ProposerSlashing (416 B) 2.5160 us/op 2.1740 us/op 1.16
copy serialized ProposerSlashing (416 B) 2.5340 us/op 2.2130 us/op 1.15
transfer serialized Attestation (485 B) 2.4540 us/op 1.9420 us/op 1.26
copy serialized Attestation (485 B) 2.5490 us/op 1.8440 us/op 1.38
transfer serialized AttesterSlashing (33232 B) 2.5560 us/op 2.0390 us/op 1.25
copy serialized AttesterSlashing (33232 B) 5.2050 us/op 4.1490 us/op 1.25
transfer serialized Small SignedBeaconBlock (128000 B) 2.9610 us/op 2.5710 us/op 1.15
copy serialized Small SignedBeaconBlock (128000 B) 10.374 us/op 9.2250 us/op 1.12
transfer serialized Avg SignedBeaconBlock (200000 B) 3.1470 us/op 2.7750 us/op 1.13
copy serialized Avg SignedBeaconBlock (200000 B) 14.118 us/op 12.577 us/op 1.12
transfer serialized BlobsSidecar (524380 B) 2.9900 us/op 3.2220 us/op 0.93
copy serialized BlobsSidecar (524380 B) 75.561 us/op 68.508 us/op 1.10
transfer serialized Big SignedBeaconBlock (1000000 B) 3.1660 us/op 3.4240 us/op 0.92
copy serialized Big SignedBeaconBlock (1000000 B) 136.28 us/op 199.75 us/op 0.68
pass gossip attestations to forkchoice per slot 2.3562 ms/op 2.2961 ms/op 1.03
forkChoice updateHead vc 100000 bc 64 eq 0 331.99 us/op 355.99 us/op 0.93
forkChoice updateHead vc 600000 bc 64 eq 0 2.1709 ms/op 2.0388 ms/op 1.06
forkChoice updateHead vc 1000000 bc 64 eq 0 3.8417 ms/op 3.8750 ms/op 0.99
forkChoice updateHead vc 600000 bc 320 eq 0 2.1614 ms/op 2.3905 ms/op 0.90
forkChoice updateHead vc 600000 bc 1200 eq 0 2.3310 ms/op 2.0613 ms/op 1.13
forkChoice updateHead vc 600000 bc 7200 eq 0 2.7197 ms/op 2.6537 ms/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 1000 9.3397 ms/op 8.4602 ms/op 1.10
forkChoice updateHead vc 600000 bc 64 eq 10000 9.3191 ms/op 9.2299 ms/op 1.01
forkChoice updateHead vc 600000 bc 64 eq 300000 11.511 ms/op 11.265 ms/op 1.02
computeDeltas 500000 validators 300 proto nodes 3.2910 ms/op 3.1993 ms/op 1.03
computeDeltas 500000 validators 1200 proto nodes 3.3144 ms/op 3.2458 ms/op 1.02
computeDeltas 500000 validators 7200 proto nodes 3.2514 ms/op 3.1807 ms/op 1.02
computeDeltas 750000 validators 300 proto nodes 4.7525 ms/op 4.8855 ms/op 0.97
computeDeltas 750000 validators 1200 proto nodes 4.9639 ms/op 4.8379 ms/op 1.03
computeDeltas 750000 validators 7200 proto nodes 4.8239 ms/op 4.7751 ms/op 1.01
computeDeltas 1400000 validators 300 proto nodes 8.8865 ms/op 8.6338 ms/op 1.03
computeDeltas 1400000 validators 1200 proto nodes 9.2769 ms/op 8.6900 ms/op 1.07
computeDeltas 1400000 validators 7200 proto nodes 9.0222 ms/op 8.5877 ms/op 1.05
computeDeltas 2100000 validators 300 proto nodes 14.183 ms/op 13.422 ms/op 1.06
computeDeltas 2100000 validators 1200 proto nodes 14.268 ms/op 13.574 ms/op 1.05
computeDeltas 2100000 validators 7200 proto nodes 14.586 ms/op 13.370 ms/op 1.09
altair processAttestation - 250000 vs - 7PWei normalcase 1.4841 ms/op 1.4296 ms/op 1.04
altair processAttestation - 250000 vs - 7PWei worstcase 2.2571 ms/op 2.1342 ms/op 1.06
altair processAttestation - setStatus - 1/6 committees join 68.353 us/op 64.088 us/op 1.07
altair processAttestation - setStatus - 1/3 committees join 149.10 us/op 143.60 us/op 1.04
altair processAttestation - setStatus - 1/2 committees join 215.13 us/op 176.08 us/op 1.22
altair processAttestation - setStatus - 2/3 committees join 302.76 us/op 235.72 us/op 1.28
altair processAttestation - setStatus - 4/5 committees join 442.71 us/op 368.62 us/op 1.20
altair processAttestation - setStatus - 100% committees join 498.10 us/op 426.67 us/op 1.17
altair processBlock - 250000 vs - 7PWei normalcase 3.8225 ms/op 3.1448 ms/op 1.22
altair processBlock - 250000 vs - 7PWei normalcase hashState 23.474 ms/op 25.216 ms/op 0.93
altair processBlock - 250000 vs - 7PWei worstcase 37.306 ms/op 37.172 ms/op 1.00
altair processBlock - 250000 vs - 7PWei worstcase hashState 70.355 ms/op 72.035 ms/op 0.98
phase0 processBlock - 250000 vs - 7PWei normalcase 2.1511 ms/op 1.7886 ms/op 1.20
phase0 processBlock - 250000 vs - 7PWei worstcase 25.011 ms/op 21.866 ms/op 1.14
altair processEth1Data - 250000 vs - 7PWei normalcase 337.31 us/op 282.91 us/op 1.19
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 5.1460 us/op 5.1590 us/op 1.00
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 30.726 us/op 17.515 us/op 1.75
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 8.0320 us/op 8.5710 us/op 0.94
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 4.8620 us/op 5.4520 us/op 0.89
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 125.43 us/op 64.321 us/op 1.95
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 841.86 us/op 1.3461 ms/op 0.63
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.1688 ms/op 1.2180 ms/op 0.96
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.1431 ms/op 1.1567 ms/op 0.99
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.0534 ms/op 2.8185 ms/op 1.08
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.1795 ms/op 1.0497 ms/op 1.12
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.0481 ms/op 2.5519 ms/op 1.19
Tree 40 250000 create 181.62 ms/op 184.58 ms/op 0.98
Tree 40 250000 get(125000) 105.58 ns/op 113.19 ns/op 0.93
Tree 40 250000 set(125000) 537.59 ns/op 562.02 ns/op 0.96
Tree 40 250000 toArray() 15.086 ms/op 9.7692 ms/op 1.54
Tree 40 250000 iterate all - toArray() loop 14.322 ms/op 9.8879 ms/op 1.45
Tree 40 250000 iterate all - get(i) 43.734 ms/op 40.862 ms/op 1.07
Array 250000 create 2.9099 ms/op 2.3547 ms/op 1.24
Array 250000 clone - spread 1.2922 ms/op 1.3536 ms/op 0.95
Array 250000 get(125000) 0.59800 ns/op 0.57700 ns/op 1.04
Array 250000 set(125000) 0.60200 ns/op 0.58300 ns/op 1.03
Array 250000 iterate all - loop 78.138 us/op 77.369 us/op 1.01
phase0 afterProcessEpoch - 250000 vs - 7PWei 43.034 ms/op 41.600 ms/op 1.03
Array.fill - length 1000000 2.6600 ms/op 2.6117 ms/op 1.02
Array push - length 1000000 14.312 ms/op 14.089 ms/op 1.02
Array.get 0.26659 ns/op 0.23607 ns/op 1.13
Uint8Array.get 0.34391 ns/op 0.31300 ns/op 1.10
phase0 beforeProcessEpoch - 250000 vs - 7PWei 14.077 ms/op 17.116 ms/op 0.82
altair processEpoch - mainnet_e81889 215.72 ms/op 268.07 ms/op 0.80
mainnet_e81889 - altair beforeProcessEpoch 17.130 ms/op 16.048 ms/op 1.07
mainnet_e81889 - altair processJustificationAndFinalization 16.585 us/op 5.7720 us/op 2.87
mainnet_e81889 - altair processInactivityUpdates 4.6610 ms/op 3.8625 ms/op 1.21
mainnet_e81889 - altair processRewardsAndPenalties 52.750 ms/op 60.311 ms/op 0.87
mainnet_e81889 - altair processRegistryUpdates 2.1710 us/op 1.8850 us/op 1.15
mainnet_e81889 - altair processSlashings 748.00 ns/op 737.00 ns/op 1.01
mainnet_e81889 - altair processEth1DataReset 744.00 ns/op 714.00 ns/op 1.04
mainnet_e81889 - altair processEffectiveBalanceUpdates 997.94 us/op 1.5505 ms/op 0.64
mainnet_e81889 - altair processSlashingsReset 2.4920 us/op 2.4260 us/op 1.03
mainnet_e81889 - altair processRandaoMixesReset 6.8270 us/op 2.9320 us/op 2.33
mainnet_e81889 - altair processHistoricalRootsUpdate 967.00 ns/op 708.00 ns/op 1.37
mainnet_e81889 - altair processParticipationFlagUpdates 2.3930 us/op 1.8930 us/op 1.26
mainnet_e81889 - altair processSyncCommitteeUpdates 1.1470 us/op 436.00 ns/op 2.63
mainnet_e81889 - altair afterProcessEpoch 41.356 ms/op 42.181 ms/op 0.98
capella processEpoch - mainnet_e217614 1.0040 s/op 985.13 ms/op 1.02
mainnet_e217614 - capella beforeProcessEpoch 68.636 ms/op 65.607 ms/op 1.05
mainnet_e217614 - capella processJustificationAndFinalization 15.965 us/op 7.9580 us/op 2.01
mainnet_e217614 - capella processInactivityUpdates 15.795 ms/op 14.102 ms/op 1.12
mainnet_e217614 - capella processRewardsAndPenalties 247.30 ms/op 223.21 ms/op 1.11
mainnet_e217614 - capella processRegistryUpdates 12.573 us/op 11.436 us/op 1.10
mainnet_e217614 - capella processSlashings 817.00 ns/op 727.00 ns/op 1.12
mainnet_e217614 - capella processEth1DataReset 763.00 ns/op 709.00 ns/op 1.08
mainnet_e217614 - capella processEffectiveBalanceUpdates 6.5194 ms/op 12.206 ms/op 0.53
mainnet_e217614 - capella processSlashingsReset 3.7580 us/op 3.4070 us/op 1.10
mainnet_e217614 - capella processRandaoMixesReset 3.0360 us/op 7.6770 us/op 0.40
mainnet_e217614 - capella processHistoricalRootsUpdate 700.00 ns/op 825.00 ns/op 0.85
mainnet_e217614 - capella processParticipationFlagUpdates 4.8560 us/op 2.0430 us/op 2.38
mainnet_e217614 - capella afterProcessEpoch 104.11 ms/op 101.19 ms/op 1.03
phase0 processEpoch - mainnet_e58758 300.09 ms/op 319.24 ms/op 0.94
mainnet_e58758 - phase0 beforeProcessEpoch 63.282 ms/op 81.139 ms/op 0.78
mainnet_e58758 - phase0 processJustificationAndFinalization 16.542 us/op 14.665 us/op 1.13
mainnet_e58758 - phase0 processRewardsAndPenalties 30.586 ms/op 29.741 ms/op 1.03
mainnet_e58758 - phase0 processRegistryUpdates 6.6620 us/op 6.7520 us/op 0.99
mainnet_e58758 - phase0 processSlashings 882.00 ns/op 760.00 ns/op 1.16
mainnet_e58758 - phase0 processEth1DataReset 710.00 ns/op 702.00 ns/op 1.01
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3606 ms/op 1.4134 ms/op 0.96
mainnet_e58758 - phase0 processSlashingsReset 2.3840 us/op 5.0550 us/op 0.47
mainnet_e58758 - phase0 processRandaoMixesReset 3.9440 us/op 3.6870 us/op 1.07
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.0060 us/op 726.00 ns/op 1.39
mainnet_e58758 - phase0 processParticipationRecordUpdates 2.9620 us/op 3.2430 us/op 0.91
mainnet_e58758 - phase0 afterProcessEpoch 36.824 ms/op 35.798 ms/op 1.03
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4779 ms/op 1.0347 ms/op 1.43
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.8617 ms/op 1.7198 ms/op 1.08
altair processInactivityUpdates - 250000 normalcase 15.814 ms/op 16.636 ms/op 0.95
altair processInactivityUpdates - 250000 worstcase 15.745 ms/op 15.536 ms/op 1.01
phase0 processRegistryUpdates - 250000 normalcase 4.8680 us/op 6.1970 us/op 0.79
phase0 processRegistryUpdates - 250000 badcase_full_deposits 310.34 us/op 170.59 us/op 1.82
phase0 processRegistryUpdates - 250000 worstcase 0.5 117.39 ms/op 116.59 ms/op 1.01
altair processRewardsAndPenalties - 250000 normalcase 45.865 ms/op 42.943 ms/op 1.07
altair processRewardsAndPenalties - 250000 worstcase 39.605 ms/op 34.620 ms/op 1.14
phase0 getAttestationDeltas - 250000 normalcase 6.1992 ms/op 6.6629 ms/op 0.93
phase0 getAttestationDeltas - 250000 worstcase 5.9125 ms/op 5.8653 ms/op 1.01
phase0 processSlashings - 250000 worstcase 98.831 us/op 96.582 us/op 1.02
altair processSyncCommitteeUpdates - 250000 105.69 ms/op 99.577 ms/op 1.06
BeaconState.hashTreeRoot - No change 443.00 ns/op 424.00 ns/op 1.04
BeaconState.hashTreeRoot - 1 full validator 117.25 us/op 82.275 us/op 1.43
BeaconState.hashTreeRoot - 32 full validator 1.2627 ms/op 941.80 us/op 1.34
BeaconState.hashTreeRoot - 512 full validator 10.179 ms/op 7.8018 ms/op 1.30
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 143.59 us/op 118.32 us/op 1.21
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.4613 ms/op 1.4421 ms/op 1.01
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 21.847 ms/op 20.079 ms/op 1.09
BeaconState.hashTreeRoot - 1 balances 123.93 us/op 87.438 us/op 1.42
BeaconState.hashTreeRoot - 32 balances 988.99 us/op 832.97 us/op 1.19
BeaconState.hashTreeRoot - 512 balances 6.5252 ms/op 6.2785 ms/op 1.04
BeaconState.hashTreeRoot - 250000 balances 193.22 ms/op 140.30 ms/op 1.38
aggregationBits - 2048 els - zipIndexesInBitList 20.317 us/op 19.622 us/op 1.04
byteArrayEquals 32 47.873 ns/op 48.282 ns/op 0.99
Buffer.compare 32 14.941 ns/op 16.047 ns/op 0.93
byteArrayEquals 1024 1.2181 us/op 1.2744 us/op 0.96
Buffer.compare 1024 22.925 ns/op 24.772 ns/op 0.93
byteArrayEquals 16384 19.913 us/op 20.267 us/op 0.98
Buffer.compare 16384 204.08 ns/op 168.22 ns/op 1.21
byteArrayEquals 123687377 152.47 ms/op 152.88 ms/op 1.00
Buffer.compare 123687377 3.7514 ms/op 4.0266 ms/op 0.93
byteArrayEquals 32 - diff last byte 47.044 ns/op 47.470 ns/op 0.99
Buffer.compare 32 - diff last byte 15.826 ns/op 16.177 ns/op 0.98
byteArrayEquals 1024 - diff last byte 1.2604 us/op 1.2578 us/op 1.00
Buffer.compare 1024 - diff last byte 23.961 ns/op 24.941 ns/op 0.96
byteArrayEquals 16384 - diff last byte 19.951 us/op 20.101 us/op 0.99
Buffer.compare 16384 - diff last byte 182.49 ns/op 198.15 ns/op 0.92
byteArrayEquals 123687377 - diff last byte 150.59 ms/op 151.42 ms/op 0.99
Buffer.compare 123687377 - diff last byte 4.5310 ms/op 4.7521 ms/op 0.95
byteArrayEquals 32 - random bytes 4.8940 ns/op 4.9890 ns/op 0.98
Buffer.compare 32 - random bytes 15.853 ns/op 16.173 ns/op 0.98
byteArrayEquals 1024 - random bytes 4.9330 ns/op 4.9500 ns/op 1.00
Buffer.compare 1024 - random bytes 16.225 ns/op 16.049 ns/op 1.01
byteArrayEquals 16384 - random bytes 4.9800 ns/op 4.8930 ns/op 1.02
Buffer.compare 16384 - random bytes 16.253 ns/op 16.047 ns/op 1.01
byteArrayEquals 123687377 - random bytes 7.7500 ns/op 7.8700 ns/op 0.98
Buffer.compare 123687377 - random bytes 19.330 ns/op 18.950 ns/op 1.02
regular array get 100000 times 30.751 us/op 31.092 us/op 0.99
wrappedArray get 100000 times 30.737 us/op 31.111 us/op 0.99
arrayWithProxy get 100000 times 9.7359 ms/op 9.8035 ms/op 0.99
ssz.Root.equals 43.304 ns/op 40.307 ns/op 1.07
byteArrayEquals 43.491 ns/op 42.621 ns/op 1.02
Buffer.compare 9.1280 ns/op 9.2320 ns/op 0.99
processSlot - 1 slots 15.040 us/op 15.588 us/op 0.96
processSlot - 32 slots 2.0334 ms/op 2.0459 ms/op 0.99
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 34.426 ms/op 37.009 ms/op 0.93
getCommitteeAssignments - req 1 vs - 250000 vc 1.7388 ms/op 1.8106 ms/op 0.96
getCommitteeAssignments - req 100 vs - 250000 vc 3.4603 ms/op 3.4733 ms/op 1.00
getCommitteeAssignments - req 1000 vs - 250000 vc 3.7286 ms/op 3.7418 ms/op 1.00
findModifiedValidators - 10000 modified validators 232.66 ms/op 230.59 ms/op 1.01
findModifiedValidators - 1000 modified validators 155.66 ms/op 148.75 ms/op 1.05
findModifiedValidators - 100 modified validators 156.82 ms/op 142.53 ms/op 1.10
findModifiedValidators - 10 modified validators 143.11 ms/op 140.58 ms/op 1.02
findModifiedValidators - 1 modified validators 132.16 ms/op 131.24 ms/op 1.01
findModifiedValidators - no difference 150.24 ms/op 137.34 ms/op 1.09
compare ViewDUs 2.9967 s/op 3.0442 s/op 0.98
compare each validator Uint8Array 1.0683 s/op 1.4692 s/op 0.73
compare ViewDU to Uint8Array 851.17 ms/op 690.88 ms/op 1.23
migrate state 1000000 validators, 24 modified, 0 new 764.42 ms/op 686.73 ms/op 1.11
migrate state 1000000 validators, 1700 modified, 1000 new 1.0868 s/op 924.08 ms/op 1.18
migrate state 1000000 validators, 3400 modified, 2000 new 1.2138 s/op 1.1342 s/op 1.07
migrate state 1500000 validators, 24 modified, 0 new 702.42 ms/op 702.53 ms/op 1.00
migrate state 1500000 validators, 1700 modified, 1000 new 838.62 ms/op 935.46 ms/op 0.90
migrate state 1500000 validators, 3400 modified, 2000 new 1.0671 s/op 1.1418 s/op 0.93
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.8600 ns/op 5.9400 ns/op 0.99
state getBlockRootAtSlot - 250000 vs - 7PWei 607.72 ns/op 661.70 ns/op 0.92
computeProposers - vc 250000 5.7356 ms/op 5.7746 ms/op 0.99
computeEpochShuffling - vc 250000 33.522 ms/op 34.654 ms/op 0.97
getNextSyncCommittee - vc 250000 103.21 ms/op 103.33 ms/op 1.00
computeSigningRoot for AttestationData 22.093 us/op 24.347 us/op 0.91
hash AttestationData serialized data then Buffer.toString(base64) 1.1738 us/op 1.2092 us/op 0.97
toHexString serialized data 763.71 ns/op 774.12 ns/op 0.99
Buffer.toString(base64) 142.50 ns/op 143.13 ns/op 1.00
nodejs block root to RootHex using toHex 120.66 ns/op 119.99 ns/op 1.01
nodejs block root to RootHex using toRootHex 76.082 ns/op 76.216 ns/op 1.00
browser block root to RootHex using the deprecated toHexString 215.25 ns/op 207.31 ns/op 1.04
browser block root to RootHex using toHex 163.93 ns/op 163.71 ns/op 1.00
browser block root to RootHex using toRootHex 144.69 ns/op 141.92 ns/op 1.02

by benchmarkbot/action

@twoeths twoeths merged commit c290469 into unstable Dec 17, 2024
19 of 20 checks passed
@twoeths twoeths deleted the nflaig/log-warning-if-pending branch December 17, 2024 01:24
wemeetagain added a commit that referenced this pull request Dec 20, 2024
* feat: add keymanager endpoint to retrieve proposer config (#7210)

* feat: add keymanager endpoint to retrieve proposer config

* Do not return empty builder config

* Check all builder proposer config values

* Fix settings builder config if undefined

* Fix builder config parsing

* Use ssz type to handle json serialization

Default parsing can't handle BigInt

* Revert "Use ssz type to handle json serialization"

This reverts commit 01fcea7.

* Fix boost factor json serialization

* Remove unused import

* Update test data

* Update proposer config test

* feat: add mekong network option (#7212)

* chore: fix import order with biome syntax (#7211)

Fix import order

* fix: consistently validate pubkey and throw 404 if not found (#7214)

* Throw error if pubkey is unknown when getting graffiti

* Consistently validate pubkey and throw 404 if not found

* fix: only return local keys from /eth/v1/keystores (#7215)

* fix: only return local keys from /eth/v1/keystores

* Fix fetching remote keys in node assertion

* feat: add and use getBlobsV1 to expedite gossip import (#7134)

* hookup the getblobs api to get bob and proof data from el

remove unused

fix import

metrics overhault, test, debugging testing, some feeback

fix

add nethermind bug dicussion link

fix

resolve conflicts

* deblobs timeout

* fix metric

* chore: revert async aggregate with randomness (#7218)

Revert "feat: asyncAggregateWithRandomness (#7204)"

This reverts commit e31d535.

* fix: update config for relaunched mekong network (#7220)

* fix: light client generating `LightClientUpdate` with wrong length of branches (#7187)

* initial commit

* Rewrite SyncCommitteeWitnessRepository

* Fix finality branch

* Update unit test

* fix e2e

* Review PR

---------

Co-authored-by: Nico Flaig <[email protected]>

* fix: archive finalized state when shutting down beacon node (#7221)

* Fix typo

* feat: remove unfinalized pubkey cache (#7230)

* Remove unfinalized pubkey cache

* lint

* Fix unit test

* chore: skip web3_provider unit tests (#7252)

* fix: prune checkpoint states at syncing time (#7241)

* fix: prune checkpoint states at syncing time

* fix: lint

* fix: check-types in test

* fix: sync cached isCompoundingValidatorArr at epoch transition (#7247)

* fix: handle outOfRangeData when range sync Deneb (#7249)

* fix: handle outOfRangeData for beaconBlocksMaybeBlobsByRange()

* fix: lint

* fix: archiveBlocks - handle deneb outOfRangeData block

* fix: sync cached balance when adding new validator to registry (#7255)

* fix: sync cached balance when adding new validator to registry

* chore: add more comments

* fix: remove persisted checkpoint states from the previous run at startup

* fix: do not throw error when trying to prune missing directory (#7257)

* docs: update documentation Oct 2024 (#7178)

* docs update oct 2024 init

* Reconfig quickstart nav and minor fixes

* fix lint

* spelling fixes

* minor fixes and add to wordlist

* prettier fix

* add to wordlist

* sort wordlist

* modify dominance to include lighthouse

* fix typescript casing and add recommendation

* add selection and boost_factor with keymanager notice

* update wordlist

* remove builder enabled and add keymanager api

* spelling

---------

Co-authored-by: Nico Flaig <[email protected]>

* chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /docs (#7268)

Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](moxystudio/node-cross-spawn@v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333 dependabot[bot]@users.noreply.github.com>

* feat: add error log to notifier if execution client auth failed (#7239)

* feat: add error log to notifier if execution client auth failed

* Update packages/beacon-node/src/node/notifier.ts

---------

Co-authored-by: NC <17676176 [email protected]>

* docs: display rcConfig flag on CLI reference page (#7270)

* docs: display rcConfig flag on CLI reference page

* Update word list

* chore: remove prettier as default formatter for all file types (#7275)

* chore: unhide flags relevant for devnets / testing (#7271)

* feat: debug too many shuffling promises (#7251)

* feat: add asyncShufflingCalculation to StateTransitionOpts

* feat: add asyncShufflingCalculation to all regen / processSlots consumers

* fix: default to false for async shuffling and remove unnecessary props

* fix: remove unnecessary flags from stateTransition

* feat: implement conditional build of shuffling for prepareNextSlot

* fix: spec test bug where shufflingCache is present from BeaconChain constructor

* feat: sync build next shuffling if not queued async

* fix: use getSync to pull next shuffling correctly

* docs: add comment to prepareNextSlot

* refactor: rename StateCloneOpts to StateRegenerationOpts

* feat: pass asyncShufflingCalculation through to afterProcessEpoch and refactor conditional to run purely sync

* docs: add issue number to comment

* chore: lint

* chore: unpin nodejs version from 22.4 (#6982)

* Revert "chore: pin nodejs version to 22.4 (#6964)"

This reverts commit f20484b.

* Don't revert formatting changes

---------

Co-authored-by: Nico Flaig <[email protected]>
Co-authored-by: Cayman <[email protected]>

* chore: update bootnodes file url for holesky and sepolia (#7276)

* feat: add `debug_getHistoricalSummaries` endpoint (#7245)

* feat: add new getHistoricalSummaries endpoint to debug namespace

* Add JSON response

* Restructure to use stateId and add proof to response

* add test scaffolding

* Address feedback

* Move getHistoricalSummaries to lodestar namespace

* add lodestar namespace unit test

* update route name to lodestar namespace

* cast state object as Capella state

* Lint

* json properties need to be lower case

* Make it v1 since it's now part of lodestar namespace

* Group with other /lodestar endpoints

* Simplify beacon node impl

* Rename return type

* Update test description

* Fix variable name

---------

Co-authored-by: Nico Flaig <[email protected]>

* chore: log sync committee signature errors as `error` (#7283)

* fix: update engine_getClientVersionV1 commit encoding (#7282)

* fix: check pubkey or validator index known to a state (#7284)

* fix: check pubkey or validator index known to a state

* chore: add more comments

* feat: lodestar script setup (#7254)

* feat: lodestar_setup

* feat: script_updates   docs

* feat: script_addition_in_docs   command_update

* Remove duplicate script from docs folder

* Minor script updates

* Update script to prepare docs and ignore copied file

* Update installation page

* Wording

---------

Co-authored-by: Nico Flaig <[email protected]>

* feat: add terminal-sized Electra giraffe banner (#7286)

* Create giraffeBanners.ts

* Wire in banner

* Fix file name

* lint

* Address @nflaig's comment

---------

Co-authored-by: NC <17676176 [email protected]>

* chore: pin nodejs version to 22.4 (#7291)

Revert "chore: unpin nodejs version from 22.4 (#6982)"

This reverts commit 69ae688.

* feat: expose `DOMAIN_APPLICATION_MASK` in config/spec api (#7296)

* feat: expose DOMAIN_APPLICATION_MASK in config/spec api

* Lint

* feat: make `MAX_REQUEST_BLOB_SIDECARS` and `MAX_BLOBS_PER_BLOCK` configurable (#7294)

* Init commit

* Fix check-types

* Add comment on how MAX_REQUEST_BLOB_SIDECARS is calculated

* Ensure proper config object is passed

* Address comment

---------

Co-authored-by: Nico Flaig <[email protected]>

* feat: use `BLOB_SIDECAR_SUBNET_COUNT` to configure blob subnets (#7297)

feat: use BLOB_SIDECAR_SUBNET_COUNT to configure blob subnets

* chore: log sync aggregate participants when producing beacon block body (#7300)

* chore: log sync aggregate participants when producing beacon block body

* Use isForkLightClient instead of ForkSeq

* Fix produce block unit tests

* chore: print graffiti when producing beacon block body (#7303)

* fix: warn if engine / builder failed to produce block within cutoff time (#7305)

* feat: add kzg commitment length check when validating gossip blocks (#7302)

* feat: add blob sidecar index check (#7313)

Validate blobSidecar index

* fix: fix blob sidecar index check (#7315)

Fix index check

* chore: fix format of printed graffiti from hex to utf-8 (#7306)

* chore: fix format of printed graffiti from hex to utf-8

* Use Buffer.from no copy with offset

* docs: batch commit typos and update contributor readme (#7312)

* batch commit typos and update contributor readme

* update donation text

Co-authored-by: Nico Flaig <[email protected]>

* correct spelling

Co-authored-by: Nico Flaig <[email protected]>

---------

Co-authored-by: Nico Flaig <[email protected]>

* chore: remove trailing null bytes from printed graffiti (#7320)

* chore: remove trailing null bytes from printed graffiti

* Use replaceAll instead of regex

* chore: unpin nodejs version from 22.4 (#7324)

Revert "chore: pin nodejs version to 22.4 (#7291)"

This reverts commit 99794d3.

* chore: bump package versions to 1.24.0

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Nico Flaig <[email protected]>
Co-authored-by: Nazar Hussain <[email protected]>
Co-authored-by: g11tech <[email protected]>
Co-authored-by: Matthew Keil <[email protected]>
Co-authored-by: NC <17676176 [email protected]>
Co-authored-by: twoeths <[email protected]>
Co-authored-by: Phil Ngo <58080811 [email protected]>
Co-authored-by: dependabot[bot] <49699333 dependabot[bot]@users.noreply.github.com>
Co-authored-by: acolytec3 <17355484 [email protected]>
Co-authored-by: Varun Guleria <152203177 [email protected]>
Co-authored-by: ClockworkYuzu <[email protected]>
@wemeetagain
Copy link
Member

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