Skip to content

feat: evict invalid payloads from cache#9661

Draft
twoeths wants to merge 1 commit into
unstablefrom
te/unstable_evict_payload
Draft

feat: evict invalid payloads from cache#9661
twoeths wants to merge 1 commit into
unstablefrom
te/unstable_evict_payload

Conversation

@twoeths

@twoeths twoeths commented Jul 15, 2026

Copy link
Copy Markdown
Member

Motivation

Description

  • track verified: boolean in the cache when populating it, right now only gossipHandler has this as true, otherwise it's false
  • if later on we fail to verify payload envelope, we remove it
  • otherwise, we mark it as "verified" and we don't have to remove it again

Closes #9660

AI Assistance Disclosure

  • created with the help of Claude

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

Copy link
Copy Markdown
Contributor

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 introduces a mechanism to detach unverified payload envelopes from the cache upon verification or execution engine failures, allowing subsequent sync attempts to download fresh bytes instead of repeatedly failing on cached bad bytes. Envelopes verified via gossip or API are marked as verified and are not detached. Feedback suggests refining the eviction logic in importExecutionPayload.ts to only remove the unverified envelope on specific validation errors (such as signature or verification failures) rather than unconditionally on any error, preventing unnecessary re-downloads during transient execution engine errors.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines +227 to 230
} catch (e) {
this.seenPayloadEnvelopeInputCache.removeUnverifiedPayloadEnvelope(blockRootHex);
throw e;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

high

Unconditionally evicting the unverified payload envelope on any error caught during import can lead to unnecessary re-downloads and sync stalls. For example, if a transient error occurs (such as PayloadErrorCode.EXECUTION_ENGINE_ERROR due to ELERROR or UNAVAILABLE, or setup errors like PayloadErrorCode.BLOCK_NOT_IN_FORK_CHOICE / PayloadErrorCode.MISS_BLOCK_STATE), the envelope itself is still valid. We should only evict the envelope when we are certain it is invalid (i.e., for ENVELOPE_VERIFICATION_ERROR, INVALID_SIGNATURE, or EXECUTION_ENGINE_INVALID).

Suggested change
} catch (e) {
this.seenPayloadEnvelopeInputCache.removeUnverifiedPayloadEnvelope(blockRootHex);
throw e;
}
} catch (e) {
if (
e instanceof PayloadError &&
(e.type.code === PayloadErrorCode.ENVELOPE_VERIFICATION_ERROR ||
e.type.code === PayloadErrorCode.INVALID_SIGNATURE ||
e.type.code === PayloadErrorCode.EXECUTION_ENGINE_INVALID)
) {
this.seenPayloadEnvelopeInputCache.removeUnverifiedPayloadEnvelope(blockRootHex);
}
throw e;
}

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Performance Alert ⚠️

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

Benchmark suite Current: 01e3cbe Previous: ea1ba2d Ratio
isKnown best case - 1 super set check 502.00 ns/op 163.00 ns/op 3.08
Full benchmark results
Benchmark suite Current: 01e3cbe Previous: ea1ba2d Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.0851 ms/op 1.9443 ms/op 0.56
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 41.682 us/op 45.800 us/op 0.91
BLS verify - blst 786.15 us/op 769.01 us/op 1.02
BLS verifyMultipleSignatures 3 - blst 1.4131 ms/op 1.3775 ms/op 1.03
BLS verifyMultipleSignatures 8 - blst 2.2536 ms/op 2.2079 ms/op 1.02
BLS verifyMultipleSignatures 32 - blst 7.0697 ms/op 7.3129 ms/op 0.97
BLS verifyMultipleSignatures 64 - blst 13.909 ms/op 13.846 ms/op 1.00
BLS verifyMultipleSignatures 128 - blst 26.822 ms/op 26.387 ms/op 1.02
BLS deserializing 10000 signatures 676.83 ms/op 653.82 ms/op 1.04
BLS deserializing 100000 signatures 6.8612 s/op 6.4407 s/op 1.07
BLS verifyMultipleSignatures - same message - 3 - blst 802.68 us/op 812.29 us/op 0.99
BLS verifyMultipleSignatures - same message - 8 - blst 942.62 us/op 941.51 us/op 1.00
BLS verifyMultipleSignatures - same message - 32 - blst 1.5272 ms/op 1.5040 ms/op 1.02
BLS verifyMultipleSignatures - same message - 64 - blst 2.5385 ms/op 2.3712 ms/op 1.07
BLS verifyMultipleSignatures - same message - 128 - blst 4.2502 ms/op 4.0764 ms/op 1.04
BLS aggregatePubkeys 32 - blst 18.594 us/op 17.787 us/op 1.05
BLS aggregatePubkeys 128 - blst 66.575 us/op 63.452 us/op 1.05
getSlashingsAndExits - default max 53.434 us/op 56.158 us/op 0.95
getSlashingsAndExits - 2k 444.32 us/op 383.98 us/op 1.16
proposeBlockBody type=full, size=empty 709.56 us/op 677.34 us/op 1.05
isKnown best case - 1 super set check 502.00 ns/op 163.00 ns/op 3.08
isKnown normal case - 2 super set checks 166.00 ns/op 162.00 ns/op 1.02
isKnown worse case - 16 super set checks 168.00 ns/op 162.00 ns/op 1.04
validate api signedAggregateAndProof - struct 1.6123 ms/op 1.5232 ms/op 1.06
validate gossip signedAggregateAndProof - struct 1.6141 ms/op 1.5203 ms/op 1.06
batch validate gossip attestation - vc 640000 - chunk 32 123.37 us/op 109.17 us/op 1.13
batch validate gossip attestation - vc 640000 - chunk 64 113.10 us/op 94.840 us/op 1.19
batch validate gossip attestation - vc 640000 - chunk 128 95.169 us/op 89.233 us/op 1.07
batch validate gossip attestation - vc 640000 - chunk 256 100.40 us/op 88.745 us/op 1.13
bytes32 toHexString 296.00 ns/op 292.00 ns/op 1.01
bytes32 Buffer.toString(hex) 182.00 ns/op 163.00 ns/op 1.12
bytes32 Buffer.toString(hex) from Uint8Array 249.00 ns/op 237.00 ns/op 1.05
bytes32 Buffer.toString(hex) + 0x 182.00 ns/op 166.00 ns/op 1.10
Return object 10000 times 0.22520 ns/op 0.21220 ns/op 1.06
Throw Error 10000 times 3.6147 us/op 3.3829 us/op 1.07
toHex 102.07 ns/op 98.014 ns/op 1.04
Buffer.from 93.544 ns/op 89.752 ns/op 1.04
shared Buffer 62.097 ns/op 63.822 ns/op 0.97
fastMsgIdFn sha256 / 200 bytes 1.5500 us/op 1.4600 us/op 1.06
fastMsgIdFn h32 xxhash / 200 bytes 165.00 ns/op 150.00 ns/op 1.10
fastMsgIdFn h64 xxhash / 200 bytes 218.00 ns/op 209.00 ns/op 1.04
fastMsgIdFn sha256 / 1000 bytes 4.9800 us/op 4.7100 us/op 1.06
fastMsgIdFn h32 xxhash / 1000 bytes 256.00 ns/op 241.00 ns/op 1.06
fastMsgIdFn h64 xxhash / 1000 bytes 267.00 ns/op 256.00 ns/op 1.04
fastMsgIdFn sha256 / 10000 bytes 43.893 us/op 41.641 us/op 1.05
fastMsgIdFn h32 xxhash / 10000 bytes 1.3330 us/op 1.2780 us/op 1.04
fastMsgIdFn h64 xxhash / 10000 bytes 862.00 ns/op 841.00 ns/op 1.02
send data - 1000 256B messages 4.4061 ms/op 4.5833 ms/op 0.96
send data - 1000 512B messages 5.7595 ms/op 5.4926 ms/op 1.05
send data - 1000 1024B messages 6.1349 ms/op 5.7289 ms/op 1.07
send data - 1000 1200B messages 7.0070 ms/op 6.3928 ms/op 1.10
send data - 1000 2048B messages 18.204 ms/op 12.096 ms/op 1.50
send data - 1000 4096B messages 67.908 ms/op 53.073 ms/op 1.28
send data - 1000 16384B messages 463.95 ms/op 337.64 ms/op 1.37
send data - 1000 65536B messages 1.6312 s/op 1.1146 s/op 1.46
enrSubnets - fastDeserialize 64 bits 782.00 ns/op 751.00 ns/op 1.04
enrSubnets - ssz BitVector 64 bits 284.00 ns/op 267.00 ns/op 1.06
enrSubnets - fastDeserialize 4 bits 103.00 ns/op 101.00 ns/op 1.02
enrSubnets - ssz BitVector 4 bits 282.00 ns/op 268.00 ns/op 1.05
prioritizePeers score -10:0 att 32-0.1 sync 2-0 223.55 us/op 206.41 us/op 1.08
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 255.15 us/op 235.44 us/op 1.08
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 373.01 us/op 340.19 us/op 1.10
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 680.67 us/op 602.94 us/op 1.13
prioritizePeers score 0:0 att 64-1 sync 4-1 799.61 us/op 695.72 us/op 1.15
array of 16000 items push then shift 1.3599 us/op 1.2866 us/op 1.06
LinkedList of 16000 items push then shift 8.4420 ns/op 6.8730 ns/op 1.23
array of 16000 items push then pop 77.558 ns/op 66.622 ns/op 1.16
LinkedList of 16000 items push then pop 6.6760 ns/op 5.9440 ns/op 1.12
array of 24000 items push then shift 2.0388 us/op 1.9030 us/op 1.07
LinkedList of 24000 items push then shift 7.6080 ns/op 6.6690 ns/op 1.14
array of 24000 items push then pop 109.12 ns/op 94.775 ns/op 1.15
LinkedList of 24000 items push then pop 6.6580 ns/op 5.9750 ns/op 1.11
intersect bitArray bitLen 8 4.9760 ns/op 4.6960 ns/op 1.06
intersect array and set length 8 30.911 ns/op 29.546 ns/op 1.05
intersect bitArray bitLen 128 24.936 ns/op 23.934 ns/op 1.04
intersect array and set length 128 533.09 ns/op 495.62 ns/op 1.08
bitArray.getTrueBitIndexes() bitLen 128 1.1530 us/op 971.00 ns/op 1.19
bitArray.getTrueBitIndexes() bitLen 248 1.9480 us/op 1.7240 us/op 1.13
bitArray.getTrueBitIndexes() bitLen 512 3.9830 us/op 3.5660 us/op 1.12
Full columns - reconstruct all 6 blobs 132.55 us/op 112.06 us/op 1.18
Full columns - reconstruct half of the blobs out of 6 100.46 us/op 62.559 us/op 1.61
Full columns - reconstruct single blob out of 6 37.089 us/op 36.690 us/op 1.01
Half columns - reconstruct all 6 blobs 418.25 ms/op 392.39 ms/op 1.07
Half columns - reconstruct half of the blobs out of 6 210.62 ms/op 194.85 ms/op 1.08
Half columns - reconstruct single blob out of 6 73.964 ms/op 68.553 ms/op 1.08
Set add up to 64 items then delete first 1.7183 us/op 1.6743 us/op 1.03
OrderedSet add up to 64 items then delete first 2.6353 us/op 2.5369 us/op 1.04
Set add up to 64 items then delete last 1.9738 us/op 1.9367 us/op 1.02
OrderedSet add up to 64 items then delete last 2.9715 us/op 2.8008 us/op 1.06
Set add up to 64 items then delete middle 1.9696 us/op 1.9200 us/op 1.03
OrderedSet add up to 64 items then delete middle 4.4731 us/op 4.2991 us/op 1.04
Set add up to 128 items then delete first 3.9441 us/op 3.8459 us/op 1.03
OrderedSet add up to 128 items then delete first 6.1125 us/op 5.7834 us/op 1.06
Set add up to 128 items then delete last 3.7754 us/op 3.7476 us/op 1.01
OrderedSet add up to 128 items then delete last 5.6921 us/op 5.4552 us/op 1.04
Set add up to 128 items then delete middle 3.7831 us/op 3.6696 us/op 1.03
OrderedSet add up to 128 items then delete middle 11.680 us/op 11.253 us/op 1.04
Set add up to 256 items then delete first 8.2890 us/op 7.5473 us/op 1.10
OrderedSet add up to 256 items then delete first 13.142 us/op 11.925 us/op 1.10
Set add up to 256 items then delete last 7.5545 us/op 7.4801 us/op 1.01
OrderedSet add up to 256 items then delete last 11.838 us/op 11.336 us/op 1.04
Set add up to 256 items then delete middle 7.7562 us/op 7.2424 us/op 1.07
OrderedSet add up to 256 items then delete middle 36.274 us/op 34.757 us/op 1.04
runFastConfirmationRules vc:100000 bc:96 eq:0 5.2497 ms/op 4.9622 ms/op 1.06
runFastConfirmationRules vc:600000 bc:96 eq:0 36.589 ms/op 34.829 ms/op 1.05
runFastConfirmationRules vc:1000000 bc:96 eq:0 60.522 ms/op 57.172 ms/op 1.06
runFastConfirmationRules vc:600000 bc:320 eq:0 36.237 ms/op 34.692 ms/op 1.04
runFastConfirmationRules vc:100000 bc:96 eq:1000 1.3587 s/op 1.0897 s/op 1.25
pass gossip attestations to forkchoice per slot 2.5497 ms/op 2.5593 ms/op 1.00
forkChoice updateHead vc 100000 bc 64 eq 0 474.69 us/op 447.85 us/op 1.06
forkChoice updateHead vc 600000 bc 64 eq 0 2.7936 ms/op 2.6317 ms/op 1.06
forkChoice updateHead vc 1000000 bc 64 eq 0 4.6361 ms/op 4.3943 ms/op 1.06
forkChoice updateHead vc 600000 bc 320 eq 0 2.8381 ms/op 2.6803 ms/op 1.06
forkChoice updateHead vc 600000 bc 1200 eq 0 2.9897 ms/op 2.7279 ms/op 1.10
forkChoice updateHead vc 600000 bc 7200 eq 0 3.1081 ms/op 3.0089 ms/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 1000 2.8166 ms/op 2.7078 ms/op 1.04
forkChoice updateHead vc 600000 bc 64 eq 10000 2.9820 ms/op 2.7550 ms/op 1.08
forkChoice updateHead vc 600000 bc 64 eq 300000 6.9481 ms/op 6.6388 ms/op 1.05
computeDeltas 1400000 validators 0% inactive 13.997 ms/op 13.290 ms/op 1.05
computeDeltas 1400000 validators 10% inactive 12.782 ms/op 12.482 ms/op 1.02
computeDeltas 1400000 validators 20% inactive 12.010 ms/op 11.619 ms/op 1.03
computeDeltas 1400000 validators 50% inactive 9.7657 ms/op 9.3103 ms/op 1.05
computeDeltas 2100000 validators 0% inactive 20.090 ms/op 19.561 ms/op 1.03
computeDeltas 2100000 validators 10% inactive 19.148 ms/op 17.988 ms/op 1.06
computeDeltas 2100000 validators 20% inactive 18.036 ms/op 17.535 ms/op 1.03
computeDeltas 2100000 validators 50% inactive 14.638 ms/op 13.680 ms/op 1.07
altair processAttestation - 250000 vs - 7PWei normalcase 1.6750 ms/op 1.7050 ms/op 0.98
altair processAttestation - 250000 vs - 7PWei worstcase 2.4481 ms/op 2.4994 ms/op 0.98
altair processAttestation - setStatus - 1/6 committees join 106.56 us/op 101.16 us/op 1.05
altair processAttestation - setStatus - 1/3 committees join 208.65 us/op 202.16 us/op 1.03
altair processAttestation - setStatus - 1/2 committees join 295.46 us/op 281.06 us/op 1.05
altair processAttestation - setStatus - 2/3 committees join 383.38 us/op 370.19 us/op 1.04
altair processAttestation - setStatus - 4/5 committees join 529.70 us/op 512.44 us/op 1.03
altair processAttestation - setStatus - 100% committees join 633.74 us/op 601.54 us/op 1.05
altair processBlock - 250000 vs - 7PWei normalcase 3.1764 ms/op 2.8397 ms/op 1.12
altair processBlock - 250000 vs - 7PWei normalcase hashState 15.196 ms/op 11.314 ms/op 1.34
altair processBlock - 250000 vs - 7PWei worstcase 21.676 ms/op 18.742 ms/op 1.16
altair processBlock - 250000 vs - 7PWei worstcase hashState 41.748 ms/op 38.269 ms/op 1.09
phase0 processBlock - 250000 vs - 7PWei normalcase 1.3674 ms/op 1.2984 ms/op 1.05
phase0 processBlock - 250000 vs - 7PWei worstcase 17.981 ms/op 17.332 ms/op 1.04
altair processEth1Data - 250000 vs - 7PWei normalcase 315.32 us/op 294.38 us/op 1.07
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:16 5.9080 us/op 3.6070 us/op 1.64
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:220 28.734 us/op 23.045 us/op 1.25
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:43 7.6140 us/op 6.1350 us/op 1.24
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:19 5.2740 us/op 3.6150 us/op 1.46
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1021 96.762 us/op 98.315 us/op 0.98
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11778 1.4127 ms/op 1.3511 ms/op 1.05
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.8784 ms/op 1.8043 ms/op 1.04
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.8653 ms/op 1.7746 ms/op 1.05
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.7952 ms/op 3.5217 ms/op 1.08
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.1244 ms/op 2.0242 ms/op 1.05
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.0629 ms/op 3.8673 ms/op 1.05
Tree 40 250000 create 324.47 ms/op 308.72 ms/op 1.05
Tree 40 250000 get(125000) 106.80 ns/op 99.066 ns/op 1.08
Tree 40 250000 set(125000) 1.0855 us/op 1.0680 us/op 1.02
Tree 40 250000 toArray() 9.8718 ms/op 9.4700 ms/op 1.04
Tree 40 250000 iterate all - toArray() + loop 9.8169 ms/op 10.071 ms/op 0.97
Tree 40 250000 iterate all - get(i) 35.275 ms/op 33.897 ms/op 1.04
Array 250000 create 2.2257 ms/op 2.0171 ms/op 1.10
Array 250000 clone - spread 692.24 us/op 648.03 us/op 1.07
Array 250000 get(125000) 0.29600 ns/op 0.28800 ns/op 1.03
Array 250000 set(125000) 0.29700 ns/op 0.30100 ns/op 0.99
Array 250000 iterate all - loop 58.109 us/op 55.464 us/op 1.05
phase0 afterProcessEpoch - 250000 vs - 7PWei 38.839 ms/op 37.797 ms/op 1.03
Array.fill - length 1000000 2.0927 ms/op 1.8990 ms/op 1.10
Array push - length 1000000 8.5637 ms/op 7.1925 ms/op 1.19
Array.get 0.20928 ns/op 0.20054 ns/op 1.04
Uint8Array.get 0.25797 ns/op 0.25027 ns/op 1.03
phase0 beforeProcessEpoch - 250000 vs - 7PWei 12.301 ms/op 13.033 ms/op 0.94
altair processEpoch - mainnet_e81889 272.16 ms/op 245.85 ms/op 1.11
mainnet_e81889 - altair beforeProcessEpoch 23.046 ms/op 14.053 ms/op 1.64
mainnet_e81889 - altair processJustificationAndFinalization 5.1470 us/op 4.9080 us/op 1.05
mainnet_e81889 - altair processInactivityUpdates 3.7358 ms/op 3.5498 ms/op 1.05
mainnet_e81889 - altair processRewardsAndPenalties 18.957 ms/op 17.134 ms/op 1.11
mainnet_e81889 - altair processRegistryUpdates 550.00 ns/op 512.00 ns/op 1.07
mainnet_e81889 - altair processSlashings 137.00 ns/op 134.00 ns/op 1.02
mainnet_e81889 - altair processEth1DataReset 132.00 ns/op 124.00 ns/op 1.06
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2239 ms/op 1.7247 ms/op 0.71
mainnet_e81889 - altair processSlashingsReset 717.00 ns/op 691.00 ns/op 1.04
mainnet_e81889 - altair processRandaoMixesReset 1.0970 us/op 1.0580 us/op 1.04
mainnet_e81889 - altair processHistoricalRootsUpdate 130.00 ns/op 126.00 ns/op 1.03
mainnet_e81889 - altair processParticipationFlagUpdates 433.00 ns/op 508.00 ns/op 0.85
mainnet_e81889 - altair processSyncCommitteeUpdates 111.00 ns/op 103.00 ns/op 1.08
mainnet_e81889 - altair afterProcessEpoch 41.832 ms/op 40.252 ms/op 1.04
capella processEpoch - mainnet_e217614 793.25 ms/op 835.54 ms/op 0.95
mainnet_e217614 - capella beforeProcessEpoch 69.351 ms/op 58.158 ms/op 1.19
mainnet_e217614 - capella processJustificationAndFinalization 5.4650 us/op 5.5080 us/op 0.99
mainnet_e217614 - capella processInactivityUpdates 11.943 ms/op 13.590 ms/op 0.88
mainnet_e217614 - capella processRewardsAndPenalties 92.893 ms/op 94.604 ms/op 0.98
mainnet_e217614 - capella processRegistryUpdates 4.5270 us/op 4.4830 us/op 1.01
mainnet_e217614 - capella processSlashings 133.00 ns/op 133.00 ns/op 1.00
mainnet_e217614 - capella processEth1DataReset 128.00 ns/op 128.00 ns/op 1.00
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.9757 ms/op 7.0944 ms/op 0.84
mainnet_e217614 - capella processSlashingsReset 676.00 ns/op 689.00 ns/op 0.98
mainnet_e217614 - capella processRandaoMixesReset 1.2450 us/op 1.1910 us/op 1.05
mainnet_e217614 - capella processHistoricalRootsUpdate 132.00 ns/op 128.00 ns/op 1.03
mainnet_e217614 - capella processParticipationFlagUpdates 426.00 ns/op 432.00 ns/op 0.99
mainnet_e217614 - capella afterProcessEpoch 108.47 ms/op 111.73 ms/op 0.97
phase0 processEpoch - mainnet_e58758 258.97 ms/op 281.80 ms/op 0.92
mainnet_e58758 - phase0 beforeProcessEpoch 54.806 ms/op 54.915 ms/op 1.00
mainnet_e58758 - phase0 processJustificationAndFinalization 5.3600 us/op 5.5380 us/op 0.97
mainnet_e58758 - phase0 processRewardsAndPenalties 16.286 ms/op 15.622 ms/op 1.04
mainnet_e58758 - phase0 processRegistryUpdates 2.2730 us/op 2.2700 us/op 1.00
mainnet_e58758 - phase0 processSlashings 134.00 ns/op 136.00 ns/op 0.99
mainnet_e58758 - phase0 processEth1DataReset 128.00 ns/op 125.00 ns/op 1.02
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.0140 ms/op 1.0019 ms/op 1.01
mainnet_e58758 - phase0 processSlashingsReset 1.3300 us/op 884.00 ns/op 1.50
mainnet_e58758 - phase0 processRandaoMixesReset 1.0470 us/op 1.1550 us/op 0.91
mainnet_e58758 - phase0 processHistoricalRootsUpdate 145.00 ns/op 129.00 ns/op 1.12
mainnet_e58758 - phase0 processParticipationRecordUpdates 990.00 ns/op 1.1870 us/op 0.83
mainnet_e58758 - phase0 afterProcessEpoch 33.024 ms/op 34.342 ms/op 0.96
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.2198 ms/op 1.0179 ms/op 1.20
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.6429 ms/op 1.6334 ms/op 1.01
altair processInactivityUpdates - 250000 normalcase 10.634 ms/op 10.675 ms/op 1.00
altair processInactivityUpdates - 250000 worstcase 10.699 ms/op 11.357 ms/op 0.94
phase0 processRegistryUpdates - 250000 normalcase 2.2360 us/op 2.5520 us/op 0.88
phase0 processRegistryUpdates - 250000 badcase_full_deposits 152.80 us/op 147.03 us/op 1.04
phase0 processRegistryUpdates - 250000 worstcase 0.5 51.746 ms/op 62.244 ms/op 0.83
altair processRewardsAndPenalties - 250000 normalcase 14.416 ms/op 13.869 ms/op 1.04
altair processRewardsAndPenalties - 250000 worstcase 14.520 ms/op 15.337 ms/op 0.95
phase0 getAttestationDeltas - 250000 normalcase 5.4950 ms/op 5.4385 ms/op 1.01
phase0 getAttestationDeltas - 250000 worstcase 5.5496 ms/op 5.9912 ms/op 0.93
phase0 processSlashings - 250000 worstcase 63.073 us/op 62.355 us/op 1.01
altair processSyncCommitteeUpdates - 250000 10.080 ms/op 10.387 ms/op 0.97
BeaconState.hashTreeRoot - No change 173.00 ns/op 172.00 ns/op 1.01
BeaconState.hashTreeRoot - 1 full validator 77.737 us/op 72.347 us/op 1.07
BeaconState.hashTreeRoot - 32 full validator 750.61 us/op 850.03 us/op 0.88
BeaconState.hashTreeRoot - 512 full validator 7.5171 ms/op 7.6666 ms/op 0.98
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 90.562 us/op 87.817 us/op 1.03
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.2498 ms/op 1.1324 ms/op 1.10
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 15.722 ms/op 16.611 ms/op 0.95
BeaconState.hashTreeRoot - 1 balances 64.678 us/op 86.681 us/op 0.75
BeaconState.hashTreeRoot - 32 balances 619.20 us/op 805.91 us/op 0.77
BeaconState.hashTreeRoot - 512 balances 5.7132 ms/op 5.9733 ms/op 0.96
BeaconState.hashTreeRoot - 250000 balances 122.91 ms/op 108.51 ms/op 1.13
aggregationBits - 2048 els - zipIndexesInBitList 20.761 us/op 19.879 us/op 1.04
regular array get 100000 times 23.030 us/op 23.404 us/op 0.98
wrappedArray get 100000 times 22.983 us/op 23.335 us/op 0.98
arrayWithProxy get 100000 times 13.890 ms/op 10.712 ms/op 1.30
ssz.Root.equals 21.782 ns/op 21.686 ns/op 1.00
byteArrayEquals 21.515 ns/op 21.530 ns/op 1.00
Buffer.compare 9.3180 ns/op 8.9580 ns/op 1.04
processSlot - 1 slots 8.6630 us/op 7.9750 us/op 1.09
processSlot - 32 slots 1.7158 ms/op 1.8668 ms/op 0.92
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 4.4305 ms/op 3.9693 ms/op 1.12
getCommitteeAssignments - req 1 vs - 250000 vc 1.7012 ms/op 1.6799 ms/op 1.01
getCommitteeAssignments - req 100 vs - 250000 vc 3.4526 ms/op 3.4313 ms/op 1.01
getCommitteeAssignments - req 1000 vs - 250000 vc 3.6966 ms/op 3.6797 ms/op 1.00
findModifiedValidators - 10000 modified validators 798.55 ms/op 744.57 ms/op 1.07
findModifiedValidators - 1000 modified validators 478.79 ms/op 646.44 ms/op 0.74
findModifiedValidators - 100 modified validators 354.31 ms/op 299.67 ms/op 1.18
findModifiedValidators - 10 modified validators 297.99 ms/op 245.77 ms/op 1.21
findModifiedValidators - 1 modified validators 164.93 ms/op 212.26 ms/op 0.78
findModifiedValidators - no difference 148.31 ms/op 200.97 ms/op 0.74
migrate state 1500000 validators, 3400 modified, 2000 new 2.7486 s/op 2.6453 s/op 1.04
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 3.4400 ns/op 3.8000 ns/op 0.91
state getBlockRootAtSlot - 250000 vs - 7PWei 279.21 ns/op 359.27 ns/op 0.78
computeProposerIndex 100000 validators 1.3494 ms/op 1.3134 ms/op 1.03
getNextSyncCommitteeIndices 1000 validators 2.8872 ms/op 2.8707 ms/op 1.01
getNextSyncCommitteeIndices 10000 validators 25.512 ms/op 25.065 ms/op 1.02
getNextSyncCommitteeIndices 100000 validators 87.074 ms/op 82.997 ms/op 1.05
computeProposers - vc 250000 547.51 us/op 560.33 us/op 0.98
computeEpochShuffling - vc 250000 39.383 ms/op 41.287 ms/op 0.95
getNextSyncCommittee - vc 250000 9.4061 ms/op 9.5593 ms/op 0.98
nodejs block root to RootHex using toHex 109.14 ns/op 102.74 ns/op 1.06
nodejs block root to RootHex using toRootHex 64.103 ns/op 65.219 ns/op 0.98
nodejs fromHex(blob) 796.41 us/op 745.88 us/op 1.07
nodejs fromHexInto(blob) 666.44 us/op 661.40 us/op 1.01
nodejs block root to RootHex using the deprecated toHexString 510.13 ns/op 540.41 ns/op 0.94
nodejs byteArrayEquals 32 bytes (block root) 25.709 ns/op 25.925 ns/op 0.99
nodejs byteArrayEquals 48 bytes (pubkey) 37.025 ns/op 37.255 ns/op 0.99
nodejs byteArrayEquals 96 bytes (signature) 38.516 ns/op 37.709 ns/op 1.02
nodejs byteArrayEquals 1024 bytes 44.823 ns/op 47.529 ns/op 0.94
nodejs byteArrayEquals 131072 bytes (blob) 1.7902 us/op 1.7672 us/op 1.01
browser block root to RootHex using toHex 146.82 ns/op 145.83 ns/op 1.01
browser block root to RootHex using toRootHex 131.08 ns/op 131.28 ns/op 1.00
browser fromHex(blob) 1.6119 ms/op 1.6866 ms/op 0.96
browser fromHexInto(blob) 666.96 us/op 656.61 us/op 1.02
browser block root to RootHex using the deprecated toHexString 511.77 ns/op 367.07 ns/op 1.39
browser byteArrayEquals 32 bytes (block root) 27.867 ns/op 27.928 ns/op 1.00
browser byteArrayEquals 48 bytes (pubkey) 39.274 ns/op 39.410 ns/op 1.00
browser byteArrayEquals 96 bytes (signature) 73.327 ns/op 73.994 ns/op 0.99
browser byteArrayEquals 1024 bytes 749.68 ns/op 756.61 ns/op 0.99
browser byteArrayEquals 131072 bytes (blob) 94.610 us/op 94.782 us/op 1.00

by benchmarkbot/action

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.

glamsterdam-devnet-5: sync stalled due to invalid payload cached forever

2 participants