Skip to content

fix: unknown sync to verify downloaded block before retain - #10092

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

twoeths wants to merge 1 commit into
unstablefrom
te/unknown_sync_verify_block_before_retain

Conversation

@twoeths

@twoeths twoeths commented Sep 15, 2026

Copy link
Copy Markdown
Member

Motivation

Description

  • in unknown sync, add more validation to downloaded block, including the proposer signature check, before retain
  • if it fails these new checks, terminate the download and penalize peers (downloaded peers + forwarded peers)

blocked by #10091 (need to fix removeAndDownScoreAllDescendants() first)

AI Assistance Disclosure

  • created with the help of Claude

@github-actions

Copy link
Copy Markdown
Contributor

Performance Report

馃殌馃殌 Significant benchmark improvement detected

Benchmark suite Current: 879f451 Previous: f63ac74 Ratio
send data - 1000 4096B messages 33.854 ms/op 101.85 ms/op 0.33
send data - 1000 16384B messages 125.52 ms/op 498.99 ms/op 0.25
send data - 1000 65536B messages 292.44 ms/op 2.2423 s/op 0.13
Full benchmark results
Benchmark suite Current: 879f451 Previous: f63ac74 Ratio
getPubkeys - native cache - req 1000 vs - 250000 vc 388.11 us/op 479.83 us/op 0.81
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 35.408 us/op 41.455 us/op 0.85
BLS verify - blst 810.39 us/op 896.32 us/op 0.90
BLS verifyMultipleSignatures 3 - blst 890.47 us/op 1.3693 ms/op 0.65
BLS verifyMultipleSignatures 8 - blst 1.6383 ms/op 2.2759 ms/op 0.72
BLS verifyMultipleSignatures 32 - blst 4.7591 ms/op 7.5129 ms/op 0.63
BLS verifyMultipleSignatures 64 - blst 9.0195 ms/op 14.362 ms/op 0.63
BLS verifyMultipleSignatures 128 - blst 17.320 ms/op 27.038 ms/op 0.64
BLS deserializing 10000 signatures 549.17 ms/op 639.05 ms/op 0.86
BLS deserializing 100000 signatures 5.4978 s/op 6.4359 s/op 0.85
BLS verifyMultipleSignatures - same message - 3 - blst 855.42 us/op 962.29 us/op 0.89
BLS verifyMultipleSignatures - same message - 8 - blst 961.00 us/op 1.0899 ms/op 0.88
BLS verifyMultipleSignatures - same message - 32 - blst 1.4737 ms/op 1.7059 ms/op 0.86
BLS verifyMultipleSignatures - same message - 64 - blst 2.1409 ms/op 2.5215 ms/op 0.85
BLS verifyMultipleSignatures - same message - 128 - blst 3.4929 ms/op 4.1592 ms/op 0.84
BLS aggregatePubkeys 32 - blst 16.461 us/op 19.577 us/op 0.84
BLS aggregatePubkeys 128 - blst 58.960 us/op 71.010 us/op 0.83
getSlashingsAndExits - default max 32.293 us/op 39.772 us/op 0.81
getSlashingsAndExits - 2k 310.36 us/op 387.03 us/op 0.80
proposeBlockBody type=full, size=empty 554.55 us/op 744.70 us/op 0.74
isKnown best case - 1 super set check 142.00 ns/op 183.00 ns/op 0.78
isKnown normal case - 2 super set checks 143.00 ns/op 179.00 ns/op 0.80
isKnown worse case - 16 super set checks 144.00 ns/op 173.00 ns/op 0.83
validate api signedAggregateAndProof - struct 1.0079 ms/op 1.5401 ms/op 0.65
validate gossip signedAggregateAndProof - struct 1.0086 ms/op 1.5434 ms/op 0.65
batch validate gossip attestation - vc 640000 - chunk 32 104.24 us/op 127.94 us/op 0.81
batch validate gossip attestation - vc 640000 - chunk 64 89.537 us/op 110.23 us/op 0.81
batch validate gossip attestation - vc 640000 - chunk 128 81.963 us/op 100.97 us/op 0.81
batch validate gossip attestation - vc 640000 - chunk 256 81.994 us/op 105.27 us/op 0.78
bytes32 toHexString 272.00 ns/op 300.00 ns/op 0.91
bytes32 Buffer.toString(hex) 147.00 ns/op 180.00 ns/op 0.82
bytes32 Buffer.toString(hex) from Uint8Array 205.00 ns/op 245.00 ns/op 0.84
bytes32 Buffer.toString(hex) + 0x 148.00 ns/op 180.00 ns/op 0.82
Return object 10000 times 0.22940 ns/op 0.21830 ns/op 1.05
Throw Error 10000 times 3.1355 us/op 3.4087 us/op 0.92
toHex 78.065 ns/op 97.430 ns/op 0.80
Buffer.from 71.951 ns/op 89.156 ns/op 0.81
shared Buffer 47.709 ns/op 65.145 ns/op 0.73
fastMsgIdFn sha256 / 200 bytes 1.3570 us/op 1.5130 us/op 0.90
fastMsgIdFn h32 xxhash / 200 bytes 125.00 ns/op 156.00 ns/op 0.80
fastMsgIdFn h64 xxhash / 200 bytes 187.00 ns/op 218.00 ns/op 0.86
fastMsgIdFn sha256 / 1000 bytes 4.3180 us/op 4.8290 us/op 0.89
fastMsgIdFn h32 xxhash / 1000 bytes 203.00 ns/op 249.00 ns/op 0.82
fastMsgIdFn h64 xxhash / 1000 bytes 228.00 ns/op 267.00 ns/op 0.85
fastMsgIdFn sha256 / 10000 bytes 37.825 us/op 42.502 us/op 0.89
fastMsgIdFn h32 xxhash / 10000 bytes 1.1020 us/op 1.2870 us/op 0.86
fastMsgIdFn h64 xxhash / 10000 bytes 703.00 ns/op 964.00 ns/op 0.73
send data - 1000 256B messages 4.0517 ms/op 4.4754 ms/op 0.91
send data - 1000 512B messages 5.0070 ms/op 5.4639 ms/op 0.92
send data - 1000 1024B messages 5.2606 ms/op 5.8230 ms/op 0.90
send data - 1000 1200B messages 5.6127 ms/op 6.2776 ms/op 0.89
send data - 1000 2048B messages 15.462 ms/op 13.574 ms/op 1.14
send data - 1000 4096B messages 33.854 ms/op 101.85 ms/op 0.33
send data - 1000 16384B messages 125.52 ms/op 498.99 ms/op 0.25
send data - 1000 65536B messages 292.44 ms/op 2.2423 s/op 0.13
enrSubnets - fastDeserialize 64 bits 698.00 ns/op 749.00 ns/op 0.93
enrSubnets - ssz BitVector 64 bits 257.00 ns/op 276.00 ns/op 0.93
enrSubnets - fastDeserialize 4 bits 80.000 ns/op 111.00 ns/op 0.72
enrSubnets - ssz BitVector 4 bits 264.00 ns/op 275.00 ns/op 0.96
prioritizePeers score -10:0 att 32-0.1 sync 2-0 178.27 us/op 200.36 us/op 0.89
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 200.19 us/op 227.40 us/op 0.88
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 290.61 us/op 336.70 us/op 0.86
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 525.34 us/op 585.71 us/op 0.90
prioritizePeers score 0:0 att 64-1 sync 4-1 621.10 us/op 691.94 us/op 0.90
archive index / 1 slot / archive root index lookup 8.9990 us/op 16.165 us/op 0.56
archive index / 1 slot / archive block lookup, decode and hash 2.4166 ms/op 2.7014 ms/op 0.89
archive index / 1 slots / 1 columns / legacy 24.354 us/op 21.716 us/op 1.12
archive index / 1 slots / 1 columns / flat files 64.152 us/op 146.21 us/op 0.44
archive index / 1 slots / 8 columns / legacy 107.23 us/op 86.587 us/op 1.24
archive index / 1 slots / 8 columns / flat files 337.98 us/op 380.58 us/op 0.89
archive index / 1 slots / 128 columns / legacy 3.6544 ms/op 11.766 ms/op 0.31
archive index / 1 slots / 128 columns / flat files 4.7595 ms/op 4.1860 ms/op 1.14
archive index / 8 slots / 1 columns / legacy 219.25 us/op 177.30 us/op 1.24
archive index / 8 slots / 1 columns / flat files 466.72 us/op 998.02 us/op 0.47
archive index / 8 slots / 8 columns / legacy 1.6397 ms/op 5.4711 ms/op 0.30
archive index / 8 slots / 8 columns / flat files 3.5791 ms/op 3.5048 ms/op 1.02
archive index / 8 slots / 128 columns / legacy 41.949 ms/op 105.58 ms/op 0.40
archive index / 8 slots / 128 columns / flat files 63.163 ms/op 268.87 ms/op 0.23
head state / 1 slot / archive root index lookup 8.9450 us/op 19.505 us/op 0.46
head state / 1 slot / archive block lookup, decode and hash 2.4655 ms/op 2.7027 ms/op 0.91
head state / 1 slots / 1 columns / legacy 27.215 us/op 19.105 us/op 1.42
head state / 1 slots / 1 columns / flat files 57.822 us/op 133.03 us/op 0.43
head state / 1 slots / 8 columns / legacy 48.511 us/op 75.634 us/op 0.64
head state / 1 slots / 8 columns / flat files 376.45 us/op 335.38 us/op 1.12
head state / 1 slots / 128 columns / legacy 2.8987 ms/op 2.0894 ms/op 1.39
head state / 1 slots / 128 columns / flat files 6.4548 ms/op 7.8983 ms/op 0.82
head state / 8 slots / 1 columns / legacy 193.78 us/op 177.69 us/op 1.09
head state / 8 slots / 1 columns / flat files 1.2396 ms/op 937.62 us/op 1.32
head state / 8 slots / 8 columns / legacy 1.5105 ms/op 707.35 us/op 2.14
head state / 8 slots / 8 columns / flat files 2.6997 ms/op 2.9708 ms/op 0.91
head state / 8 slots / 128 columns / legacy 29.303 ms/op 89.285 ms/op 0.33
head state / 8 slots / 128 columns / flat files 65.640 ms/op 249.75 ms/op 0.26
array of 16000 items push then shift 1.0160 us/op 1.2994 us/op 0.78
LinkedList of 16000 items push then shift 5.4910 ns/op 6.7390 ns/op 0.81
array of 16000 items push then pop 46.369 ns/op 77.359 ns/op 0.60
LinkedList of 16000 items push then pop 5.0250 ns/op 5.9050 ns/op 0.85
array of 24000 items push then shift 1.4858 us/op 1.9222 us/op 0.77
LinkedList of 24000 items push then shift 5.2360 ns/op 6.3880 ns/op 0.82
array of 24000 items push then pop 64.914 ns/op 104.43 ns/op 0.62
LinkedList of 24000 items push then pop 5.1010 ns/op 5.9360 ns/op 0.86
intersect bitArray bitLen 8 2.8340 ns/op 4.0800 ns/op 0.69
intersect array and set length 8 25.554 ns/op 29.447 ns/op 0.87
intersect bitArray bitLen 128 18.883 ns/op 23.158 ns/op 0.82
intersect array and set length 128 432.04 ns/op 495.40 ns/op 0.87
bitArray.getTrueBitIndexes() bitLen 128 962.00 ns/op 894.00 ns/op 1.08
bitArray.getTrueBitIndexes() bitLen 248 1.7340 us/op 1.6250 us/op 1.07
bitArray.getTrueBitIndexes() bitLen 512 3.8350 us/op 3.3930 us/op 1.13
Full columns - reconstruct all 6 blobs 184.06 us/op 194.78 us/op 0.94
Full columns - reconstruct half of the blobs out of 6 73.622 us/op 71.716 us/op 1.03
Full columns - reconstruct single blob out of 6 25.350 us/op 34.241 us/op 0.74
Half columns - reconstruct all 6 blobs 215.40 ms/op 376.86 ms/op 0.57
Half columns - reconstruct half of the blobs out of 6 108.23 ms/op 188.94 ms/op 0.57
Half columns - reconstruct single blob out of 6 39.979 ms/op 66.079 ms/op 0.61
Set add up to 64 items then delete first 1.4559 us/op 1.6507 us/op 0.88
OrderedSet add up to 64 items then delete first 2.1735 us/op 2.4823 us/op 0.88
Set add up to 64 items then delete last 1.7651 us/op 1.8593 us/op 0.95
OrderedSet add up to 64 items then delete last 2.7541 us/op 2.7514 us/op 1.00
Set add up to 64 items then delete middle 1.7564 us/op 1.8692 us/op 0.94
OrderedSet add up to 64 items then delete middle 3.6072 us/op 4.1817 us/op 0.86
Set add up to 128 items then delete first 3.9979 us/op 3.7389 us/op 1.07
OrderedSet add up to 128 items then delete first 6.1652 us/op 5.6111 us/op 1.10
Set add up to 128 items then delete last 3.8900 us/op 3.5652 us/op 1.09
OrderedSet add up to 128 items then delete last 5.7762 us/op 5.2653 us/op 1.10
Set add up to 128 items then delete middle 4.1440 us/op 3.6048 us/op 1.15
OrderedSet add up to 128 items then delete middle 10.379 us/op 11.014 us/op 0.94
Set add up to 256 items then delete first 8.5478 us/op 7.3755 us/op 1.16
OrderedSet add up to 256 items then delete first 13.584 us/op 11.459 us/op 1.19
Set add up to 256 items then delete last 7.9632 us/op 7.1891 us/op 1.11
OrderedSet add up to 256 items then delete last 12.275 us/op 10.809 us/op 1.14
Set add up to 256 items then delete middle 8.3900 us/op 7.0880 us/op 1.18
OrderedSet add up to 256 items then delete middle 34.362 us/op 33.766 us/op 1.02
runFastConfirmationRules vc:100000 bc:96 eq:0 3.9880 ms/op 4.6496 ms/op 0.86
runFastConfirmationRules vc:600000 bc:96 eq:0 30.762 ms/op 33.899 ms/op 0.91
runFastConfirmationRules vc:1000000 bc:96 eq:0 48.858 ms/op 56.294 ms/op 0.87
runFastConfirmationRules vc:600000 bc:320 eq:0 30.577 ms/op 33.620 ms/op 0.91
runFastConfirmationRules vc:100000 bc:96 eq:1000 1.0926 s/op 1.1231 s/op 0.97
pass gossip attestations to forkchoice per slot 2.2963 ms/op 2.5426 ms/op 0.90
forkChoice updateHead vc 100000 bc 64 eq 0 357.15 us/op 446.31 us/op 0.80
forkChoice updateHead vc 600000 bc 64 eq 0 2.1979 ms/op 2.5987 ms/op 0.85
forkChoice updateHead vc 1000000 bc 64 eq 0 3.5634 ms/op 4.3131 ms/op 0.83
forkChoice updateHead vc 600000 bc 320 eq 0 2.1337 ms/op 2.6686 ms/op 0.80
forkChoice updateHead vc 600000 bc 1200 eq 0 2.1909 ms/op 2.7258 ms/op 0.80
forkChoice updateHead vc 600000 bc 7200 eq 0 2.8406 ms/op 3.1026 ms/op 0.92
forkChoice updateHead vc 600000 bc 64 eq 1000 2.1821 ms/op 2.5488 ms/op 0.86
forkChoice updateHead vc 600000 bc 64 eq 10000 2.2227 ms/op 2.6762 ms/op 0.83
forkChoice updateHead vc 600000 bc 64 eq 300000 5.3693 ms/op 7.1020 ms/op 0.76
forkChoice updateHead vc 600000 bc 64 eq 0 gloas boosted 2.1440 ms/op 2.5580 ms/op 0.84
computeDeltas 1400000 validators 0% inactive 9.7125 ms/op 12.462 ms/op 0.78
computeDeltas 1400000 validators 10% inactive 9.2631 ms/op 11.696 ms/op 0.79
computeDeltas 1400000 validators 20% inactive 8.8179 ms/op 11.214 ms/op 0.79
computeDeltas 1400000 validators 50% inactive 7.2714 ms/op 8.9060 ms/op 0.82
computeDeltas 2100000 validators 0% inactive 14.667 ms/op 18.494 ms/op 0.79
computeDeltas 2100000 validators 10% inactive 13.949 ms/op 17.862 ms/op 0.78
computeDeltas 2100000 validators 20% inactive 13.221 ms/op 16.841 ms/op 0.79
computeDeltas 2100000 validators 50% inactive 10.934 ms/op 11.509 ms/op 0.95
altair processAttestation - 250000 vs - 7PWei normalcase 2.1417 ms/op 1.5642 ms/op 1.37
altair processAttestation - 250000 vs - 7PWei worstcase 3.0257 ms/op 2.4070 ms/op 1.26
altair processAttestation - setStatus - 1/6 committees join 97.798 us/op 108.77 us/op 0.90
altair processAttestation - setStatus - 1/3 committees join 190.84 us/op 203.01 us/op 0.94
altair processAttestation - setStatus - 1/2 committees join 269.87 us/op 280.06 us/op 0.96
altair processAttestation - setStatus - 2/3 committees join 348.94 us/op 370.21 us/op 0.94
altair processAttestation - setStatus - 4/5 committees join 472.20 us/op 521.80 us/op 0.90
altair processAttestation - setStatus - 100% committees join 560.57 us/op 611.26 us/op 0.92
altair processBlock - 250000 vs - 7PWei normalcase 5.7294 ms/op 3.9949 ms/op 1.43
altair processBlock - 250000 vs - 7PWei normalcase hashState 28.144 ms/op 20.033 ms/op 1.40
altair processBlock - 250000 vs - 7PWei worstcase 24.678 ms/op 23.122 ms/op 1.07
altair processBlock - 250000 vs - 7PWei worstcase hashState 61.027 ms/op 46.025 ms/op 1.33
phase0 processBlock - 250000 vs - 7PWei normalcase 1.2321 ms/op 1.2661 ms/op 0.97
phase0 processBlock - 250000 vs - 7PWei worstcase 18.076 ms/op 19.415 ms/op 0.93
altair processEth1Data - 250000 vs - 7PWei normalcase 234.12 us/op 301.82 us/op 0.78
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:16 2.6140 us/op 3.4890 us/op 0.75
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:220 19.680 us/op 21.784 us/op 0.90
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:43 5.0980 us/op 6.2320 us/op 0.82
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:19 2.9820 us/op 5.4370 us/op 0.55
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1021 90.710 us/op 108.73 us/op 0.83
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11778 1.2214 ms/op 1.4216 ms/op 0.86
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.6057 ms/op 1.8499 ms/op 0.87
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.6093 ms/op 1.8384 ms/op 0.88
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.1117 ms/op 3.6777 ms/op 0.85
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.8311 ms/op 2.1230 ms/op 0.86
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.5091 ms/op 3.9759 ms/op 0.88
Tree 40 250000 create 270.67 ms/op 308.67 ms/op 0.88
Tree 40 250000 get(125000) 87.395 ns/op 104.45 ns/op 0.84
Tree 40 250000 set(125000) 886.73 ns/op 1.0591 us/op 0.84
Tree 40 250000 toArray() 18.355 ms/op 9.5563 ms/op 1.92
Tree 40 250000 iterate all - toArray() + loop 16.424 ms/op 9.5777 ms/op 1.71
Tree 40 250000 iterate all - get(i) 40.471 ms/op 34.772 ms/op 1.16
Array 250000 create 1.5840 ms/op 2.3147 ms/op 0.68
Array 250000 clone - spread 456.43 us/op 760.25 us/op 0.60
Array 250000 get(125000) 0.31300 ns/op 0.29500 ns/op 1.06
Array 250000 set(125000) 0.32100 ns/op 0.30000 ns/op 1.07
Array 250000 iterate all - loop 55.392 us/op 55.949 us/op 0.99
phase0 afterProcessEpoch - 250000 vs - 7PWei 45.753 ms/op 63.883 ms/op 0.72
Array.fill - length 1000000 2.4633 ms/op 4.1327 ms/op 0.60
Array push - length 1000000 9.9623 ms/op 13.395 ms/op 0.74
Array.get 0.22128 ns/op 0.20078 ns/op 1.10
Uint8Array.get 0.22385 ns/op 0.24629 ns/op 0.91
phase0 beforeProcessEpoch - 250000 vs - 7PWei 18.398 ms/op 13.560 ms/op 1.36
altair processEpoch - mainnet_e81889 267.67 ms/op 193.66 ms/op 1.38
mainnet_e81889 - altair beforeProcessEpoch 11.756 ms/op 40.922 ms/op 0.29
mainnet_e81889 - altair processJustificationAndFinalization 5.0280 us/op 4.4190 us/op 1.14
mainnet_e81889 - altair processInactivityUpdates 3.1770 ms/op 3.4320 ms/op 0.93
mainnet_e81889 - altair processRewardsAndPenalties 16.328 ms/op 15.845 ms/op 1.03
mainnet_e81889 - altair processRegistryUpdates 508.00 ns/op 557.00 ns/op 0.91
mainnet_e81889 - altair processSlashings 130.00 ns/op 143.00 ns/op 0.91
mainnet_e81889 - altair processEth1DataReset 125.00 ns/op 136.00 ns/op 0.92
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.0944 ms/op 1.7019 ms/op 0.64
mainnet_e81889 - altair processSlashingsReset 639.00 ns/op 691.00 ns/op 0.92
mainnet_e81889 - altair processRandaoMixesReset 954.00 ns/op 906.00 ns/op 1.05
mainnet_e81889 - altair processHistoricalRootsUpdate 130.00 ns/op 136.00 ns/op 0.96
mainnet_e81889 - altair processParticipationFlagUpdates 380.00 ns/op 478.00 ns/op 0.79
mainnet_e81889 - altair processSyncCommitteeUpdates 100.00 ns/op 111.00 ns/op 0.90
mainnet_e81889 - altair afterProcessEpoch 48.295 ms/op 40.655 ms/op 1.19
capella processEpoch - mainnet_e217614 727.10 ms/op 631.57 ms/op 1.15
mainnet_e217614 - capella beforeProcessEpoch 62.425 ms/op 68.998 ms/op 0.90
mainnet_e217614 - capella processJustificationAndFinalization 4.5050 us/op 4.6570 us/op 0.97
mainnet_e217614 - capella processInactivityUpdates 10.638 ms/op 11.117 ms/op 0.96
mainnet_e217614 - capella processRewardsAndPenalties 82.954 ms/op 92.549 ms/op 0.90
mainnet_e217614 - capella processRegistryUpdates 3.8880 us/op 4.4610 us/op 0.87
mainnet_e217614 - capella processSlashings 130.00 ns/op 143.00 ns/op 0.91
mainnet_e217614 - capella processEth1DataReset 125.00 ns/op 135.00 ns/op 0.93
mainnet_e217614 - capella processEffectiveBalanceUpdates 8.9750 ms/op 5.2225 ms/op 1.72
mainnet_e217614 - capella processSlashingsReset 644.00 ns/op 693.00 ns/op 0.93
mainnet_e217614 - capella processRandaoMixesReset 870.00 ns/op 948.00 ns/op 0.92
mainnet_e217614 - capella processHistoricalRootsUpdate 125.00 ns/op 136.00 ns/op 0.92
mainnet_e217614 - capella processParticipationFlagUpdates 383.00 ns/op 460.00 ns/op 0.83
mainnet_e217614 - capella afterProcessEpoch 126.04 ms/op 111.70 ms/op 1.13
phase0 processEpoch - mainnet_e58758 248.71 ms/op 198.03 ms/op 1.26
mainnet_e58758 - phase0 beforeProcessEpoch 49.899 ms/op 44.111 ms/op 1.13
mainnet_e58758 - phase0 processJustificationAndFinalization 4.6320 us/op 4.6060 us/op 1.01
mainnet_e58758 - phase0 processRewardsAndPenalties 12.631 ms/op 15.606 ms/op 0.81
mainnet_e58758 - phase0 processRegistryUpdates 2.0040 us/op 2.2670 us/op 0.88
mainnet_e58758 - phase0 processSlashings 130.00 ns/op 142.00 ns/op 0.92
mainnet_e58758 - phase0 processEth1DataReset 126.00 ns/op 140.00 ns/op 0.90
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 598.76 us/op 829.13 us/op 0.72
mainnet_e58758 - phase0 processSlashingsReset 782.00 ns/op 876.00 ns/op 0.89
mainnet_e58758 - phase0 processRandaoMixesReset 938.00 ns/op 952.00 ns/op 0.99
mainnet_e58758 - phase0 processHistoricalRootsUpdate 126.00 ns/op 139.00 ns/op 0.91
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.0190 us/op 964.00 ns/op 1.06
mainnet_e58758 - phase0 afterProcessEpoch 39.269 ms/op 33.613 ms/op 1.17
phase0 processEffectiveBalanceUpdates - 250000 normalcase 782.49 us/op 1.0240 ms/op 0.76
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 933.27 us/op 1.6531 ms/op 0.56
gloas processInactivityUpdates - 250000 inactivity leak all eligible missed target 9.3435 ms/op 8.9806 ms/op 1.04
phase0 processRegistryUpdates - 250000 normalcase 1.6930 us/op 2.5290 us/op 0.67
phase0 processRegistryUpdates - 250000 badcase_full_deposits 128.77 us/op 145.72 us/op 0.88
phase0 processRegistryUpdates - 250000 worstcase 0.5 63.236 ms/op 59.990 ms/op 1.05
altair processRewardsAndPenalties - 250000 normalcase 14.931 ms/op 13.946 ms/op 1.07
altair processRewardsAndPenalties - 250000 worstcase 14.528 ms/op 13.786 ms/op 1.05
phase0 getAttestationDeltas - 250000 normalcase 4.3546 ms/op 5.6852 ms/op 0.77
phase0 getAttestationDeltas - 250000 worstcase 4.3746 ms/op 5.8618 ms/op 0.75
phase0 processSlashings - 250000 worstcase 50.233 us/op 62.201 us/op 0.81
altair processSyncCommitteeUpdates - 250000 8.6855 ms/op 10.430 ms/op 0.83
BeaconState.hashTreeRoot - No change 156.00 ns/op 180.00 ns/op 0.87
BeaconState.hashTreeRoot - 1 full validator 86.076 us/op 77.426 us/op 1.11
BeaconState.hashTreeRoot - 32 full validator 904.51 us/op 687.21 us/op 1.32
BeaconState.hashTreeRoot - 512 full validator 8.9096 ms/op 7.3051 ms/op 1.22
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 97.888 us/op 101.14 us/op 0.97
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.4507 ms/op 1.3425 ms/op 1.08
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 18.576 ms/op 15.376 ms/op 1.21
BeaconState.hashTreeRoot - 1 balances 77.042 us/op 64.175 us/op 1.20
BeaconState.hashTreeRoot - 32 balances 780.48 us/op 607.63 us/op 1.28
BeaconState.hashTreeRoot - 512 balances 6.0235 ms/op 5.4438 ms/op 1.11
BeaconState.hashTreeRoot - 250000 balances 127.20 ms/op 141.58 ms/op 0.90
aggregationBits - 2048 els - zipIndexesInBitList 16.774 us/op 20.604 us/op 0.81
regular array get 100000 times 22.120 us/op 23.013 us/op 0.96
wrappedArray get 100000 times 22.348 us/op 22.864 us/op 0.98
arrayWithProxy get 100000 times 8.1386 ms/op 10.423 ms/op 0.78
ssz.Root.equals 17.644 ns/op 21.642 ns/op 0.82
byteArrayEquals 17.494 ns/op 21.441 ns/op 0.82
Buffer.compare 7.0560 ns/op 8.9020 ns/op 0.79
processSlot - 1 slots 10.384 us/op 10.167 us/op 1.02
processSlot - 32 slots 2.1043 ms/op 1.8728 ms/op 1.12
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.4502 ms/op 3.2784 ms/op 1.05
getCommitteeAssignments - req 1 vs - 250000 vc 1.6652 ms/op 1.6844 ms/op 0.99
getCommitteeAssignments - req 100 vs - 250000 vc 3.8632 ms/op 3.4309 ms/op 1.13
getCommitteeAssignments - req 1000 vs - 250000 vc 4.1287 ms/op 3.6776 ms/op 1.12
findModifiedValidators - 10000 modified validators 450.97 ms/op 956.30 ms/op 0.47
findModifiedValidators - 1000 modified validators 320.14 ms/op 629.54 ms/op 0.51
findModifiedValidators - 100 modified validators 179.76 ms/op 390.18 ms/op 0.46
findModifiedValidators - 10 modified validators 143.81 ms/op 388.51 ms/op 0.37
findModifiedValidators - 1 modified validators 135.05 ms/op 213.86 ms/op 0.63
findModifiedValidators - no difference 110.13 ms/op 212.26 ms/op 0.52
migrate state 1500000 validators, 3400 modified, 2000 new 2.5375 s/op 3.0614 s/op 0.83
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 3.0000 ns/op 3.6600 ns/op 0.82
state getBlockRootAtSlot - 250000 vs - 7PWei 374.32 ns/op 292.88 ns/op 1.28
computeProposerIndex 100000 validators 1.3481 ms/op 1.3498 ms/op 1.00
getNextSyncCommitteeIndices 1000 validators 2.7095 ms/op 2.8624 ms/op 0.95
getNextSyncCommitteeIndices 10000 validators 24.060 ms/op 25.716 ms/op 0.94
getNextSyncCommitteeIndices 100000 validators 80.710 ms/op 87.399 ms/op 0.92
computeProposers - vc 250000 554.38 us/op 541.80 us/op 1.02
computeEpochShuffling - vc 250000 45.688 ms/op 39.425 ms/op 1.16
getNextSyncCommittee - vc 250000 8.2825 ms/op 9.5456 ms/op 0.87
nodejs block root to RootHex using toHex 79.324 ns/op 96.531 ns/op 0.82
nodejs block root to RootHex using toRootHex 50.904 ns/op 65.267 ns/op 0.78
nodejs fromHex(blob) 593.95 us/op 1.1278 ms/op 0.53
nodejs fromHexInto(blob) 524.29 us/op 636.13 us/op 0.82
nodejs block root to RootHex using the deprecated toHexString 594.09 ns/op 632.97 ns/op 0.94
nodejs byteArrayEquals 32 bytes (block root) 20.640 ns/op 26.036 ns/op 0.79
nodejs byteArrayEquals 48 bytes (pubkey) 29.785 ns/op 37.342 ns/op 0.80
nodejs byteArrayEquals 96 bytes (signature) 30.516 ns/op 38.275 ns/op 0.80
nodejs byteArrayEquals 1024 bytes 35.842 ns/op 45.055 ns/op 0.80
nodejs byteArrayEquals 131072 bytes (blob) 1.2682 us/op 1.7729 us/op 0.72
browser block root to RootHex using toHex 129.50 ns/op 145.05 ns/op 0.89
browser block root to RootHex using toRootHex 117.98 ns/op 129.66 ns/op 0.91
browser fromHex(blob) 1.0926 ms/op 1.9262 ms/op 0.57
browser fromHexInto(blob) 521.44 us/op 637.35 us/op 0.82
browser block root to RootHex using the deprecated toHexString 608.00 ns/op 414.22 ns/op 1.47
browser byteArrayEquals 32 bytes (block root) 21.667 ns/op 28.006 ns/op 0.77
browser byteArrayEquals 48 bytes (pubkey) 30.733 ns/op 39.449 ns/op 0.78
browser byteArrayEquals 96 bytes (signature) 57.870 ns/op 73.755 ns/op 0.78
browser byteArrayEquals 1024 bytes 594.40 ns/op 754.65 ns/op 0.79
browser byteArrayEquals 131072 bytes (blob) 74.768 us/op 94.915 us/op 0.79

by benchmarkbot/action

This branch has not been deployed

No deployments
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