Skip to content

chore: prepare for spec test v1.6.0-alpha.1 #7919

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

Merged
merged 3 commits into from
Jun 5, 2025
Merged

Conversation

ensi321
Copy link
Contributor

@ensi321 ensi321 commented Jun 5, 2025

There are several changes in spec test v1.6.0-alpha.1.

  • Introduce eip7805 spec test
  • Add pre_epoch and post_epoch definition in epoch processing.

This PR adds code in preparation for v1.6.0-alpha.1 to minimize changes needs to be made in #7902

Partially resolve #7918

@ensi321 ensi321 marked this pull request as ready for review June 5, 2025 07:57
@ensi321 ensi321 requested a review from a team as a code owner June 5, 2025 07:58
Copy link

codecov bot commented Jun 5, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 55.76%. Comparing base (c64a95d) to head (ae22563).
Report is 1 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #7919   +/-   ##
=========================================
  Coverage     55.76%   55.76%           
=========================================
  Files           830      830           
  Lines         59228    59228           
  Branches       4560     4560           
=========================================
  Hits          33030    33030           
  Misses        26131    26131           
  Partials         67       67           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

github-actions bot commented Jun 5, 2025

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 20595f1 Previous: c64a95d Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.0447 ms/op 2.1617 ms/op 0.48
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 38.421 us/op 82.062 us/op 0.47
BLS verify - blst 873.61 us/op 2.6020 ms/op 0.34
BLS verifyMultipleSignatures 3 - blst 1.2799 ms/op 2.6175 ms/op 0.49
BLS verifyMultipleSignatures 8 - blst 1.9497 ms/op 4.2012 ms/op 0.46
BLS verifyMultipleSignatures 32 - blst 5.6756 ms/op 15.563 ms/op 0.36
BLS verifyMultipleSignatures 64 - blst 10.880 ms/op 28.593 ms/op 0.38
BLS verifyMultipleSignatures 128 - blst 17.801 ms/op 44.669 ms/op 0.40
BLS deserializing 10000 signatures 713.83 ms/op 1.1338 s/op 0.63
BLS deserializing 100000 signatures 7.1571 s/op 17.632 s/op 0.41
BLS verifyMultipleSignatures - same message - 3 - blst 1.0477 ms/op 2.8605 ms/op 0.37
BLS verifyMultipleSignatures - same message - 8 - blst 1.2142 ms/op 2.9725 ms/op 0.41
BLS verifyMultipleSignatures - same message - 32 - blst 1.7466 ms/op 3.9624 ms/op 0.44
BLS verifyMultipleSignatures - same message - 64 - blst 2.6520 ms/op 7.9232 ms/op 0.33
BLS verifyMultipleSignatures - same message - 128 - blst 4.4483 ms/op 9.8226 ms/op 0.45
BLS aggregatePubkeys 32 - blst 19.970 us/op 45.120 us/op 0.44
BLS aggregatePubkeys 128 - blst 71.714 us/op 158.49 us/op 0.45
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 53.779 ms/op 119.00 ms/op 0.45
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 51.437 ms/op 105.24 ms/op 0.49
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 44.475 ms/op 76.212 ms/op 0.58
getSlashingsAndExits - default max 79.573 us/op 144.73 us/op 0.55
getSlashingsAndExits - 2k 358.03 us/op 555.63 us/op 0.64
proposeBlockBody type=full, size=empty 5.7201 ms/op 14.697 ms/op 0.39
isKnown best case - 1 super set check 224.00 ns/op 493.00 ns/op 0.45
isKnown normal case - 2 super set checks 217.00 ns/op 397.00 ns/op 0.55
isKnown worse case - 16 super set checks 214.00 ns/op 403.00 ns/op 0.53
InMemoryCheckpointStateCache - add get delete 2.3810 us/op 5.3770 us/op 0.44
validate api signedAggregateAndProof - struct 1.6777 ms/op 3.9591 ms/op 0.42
validate gossip signedAggregateAndProof - struct 1.7454 ms/op 3.8427 ms/op 0.45
batch validate gossip attestation - vc 640000 - chunk 32 119.61 us/op 303.81 us/op 0.39
batch validate gossip attestation - vc 640000 - chunk 64 106.99 us/op 222.06 us/op 0.48
batch validate gossip attestation - vc 640000 - chunk 128 96.128 us/op 233.10 us/op 0.41
batch validate gossip attestation - vc 640000 - chunk 256 96.432 us/op 126.71 us/op 0.76
pickEth1Vote - no votes 987.15 us/op 1.7268 ms/op 0.57
pickEth1Vote - max votes 5.3657 ms/op 9.4272 ms/op 0.57
pickEth1Vote - Eth1Data hashTreeRoot value x2048 11.087 ms/op 23.097 ms/op 0.48
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 14.974 ms/op 27.658 ms/op 0.54
pickEth1Vote - Eth1Data fastSerialize value x2048 413.80 us/op 1.0726 ms/op 0.39
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.2912 ms/op 5.5944 ms/op 0.41
bytes32 toHexString 366.00 ns/op 862.00 ns/op 0.42
bytes32 Buffer.toString(hex) 244.00 ns/op 545.00 ns/op 0.45
bytes32 Buffer.toString(hex) from Uint8Array 342.00 ns/op 749.00 ns/op 0.46
bytes32 Buffer.toString(hex) + 0x 303.00 ns/op 458.00 ns/op 0.66
Object access 1 prop 0.12000 ns/op 0.22000 ns/op 0.55
Map access 1 prop 0.12700 ns/op 0.22800 ns/op 0.56
Object get x1000 5.9350 ns/op 10.518 ns/op 0.56
Map get x1000 6.2660 ns/op 11.213 ns/op 0.56
Object set x1000 27.677 ns/op 51.189 ns/op 0.54
Map set x1000 19.133 ns/op 34.150 ns/op 0.56
Return object 10000 times 0.28430 ns/op 0.52460 ns/op 0.54
Throw Error 10000 times 4.2830 us/op 7.9003 us/op 0.54
toHex 134.09 ns/op 241.31 ns/op 0.56
Buffer.from 117.08 ns/op 216.50 ns/op 0.54
shared Buffer 83.499 ns/op 150.55 ns/op 0.55
fastMsgIdFn sha256 / 200 bytes 2.1870 us/op 3.8740 us/op 0.56
fastMsgIdFn h32 xxhash / 200 bytes 218.00 ns/op 365.00 ns/op 0.60
fastMsgIdFn h64 xxhash / 200 bytes 276.00 ns/op 469.00 ns/op 0.59
fastMsgIdFn sha256 / 1000 bytes 7.1920 us/op 12.292 us/op 0.59
fastMsgIdFn h32 xxhash / 1000 bytes 341.00 ns/op 600.00 ns/op 0.57
fastMsgIdFn h64 xxhash / 1000 bytes 340.00 ns/op 569.00 ns/op 0.60
fastMsgIdFn sha256 / 10000 bytes 63.928 us/op 95.314 us/op 0.67
fastMsgIdFn h32 xxhash / 10000 bytes 1.8060 us/op 2.8010 us/op 0.64
fastMsgIdFn h64 xxhash / 10000 bytes 1.1940 us/op 1.9690 us/op 0.61
send data - 1000 256B messages 13.121 ms/op 19.858 ms/op 0.66
send data - 1000 512B messages 16.480 ms/op 28.224 ms/op 0.58
send data - 1000 1024B messages 30.257 ms/op 51.886 ms/op 0.58
send data - 1000 1200B messages 25.210 ms/op 25.176 ms/op 1.00
send data - 1000 2048B messages 22.581 ms/op 22.872 ms/op 0.99
send data - 1000 4096B messages 24.558 ms/op 27.340 ms/op 0.90
send data - 1000 16384B messages 65.641 ms/op 75.098 ms/op 0.87
send data - 1000 65536B messages 215.34 ms/op 254.31 ms/op 0.85
enrSubnets - fastDeserialize 64 bits 908.00 ns/op 2.1160 us/op 0.43
enrSubnets - ssz BitVector 64 bits 341.00 ns/op 430.00 ns/op 0.79
enrSubnets - fastDeserialize 4 bits 140.00 ns/op 151.00 ns/op 0.93
enrSubnets - ssz BitVector 4 bits 337.00 ns/op 403.00 ns/op 0.84
prioritizePeers score -10:0 att 32-0.1 sync 2-0 121.84 us/op 145.57 us/op 0.84
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 144.17 us/op 161.35 us/op 0.89
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 210.14 us/op 238.05 us/op 0.88
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 390.82 us/op 452.04 us/op 0.86
prioritizePeers score 0:0 att 64-1 sync 4-1 470.21 us/op 553.09 us/op 0.85
array of 16000 items push then shift 1.6376 us/op 1.9415 us/op 0.84
LinkedList of 16000 items push then shift 7.2850 ns/op 8.5270 ns/op 0.85
array of 16000 items push then pop 78.535 ns/op 90.196 ns/op 0.87
LinkedList of 16000 items push then pop 7.1560 ns/op 8.2820 ns/op 0.86
array of 24000 items push then shift 2.4582 us/op 2.8543 us/op 0.86
LinkedList of 24000 items push then shift 7.2770 ns/op 8.3620 ns/op 0.87
array of 24000 items push then pop 106.14 ns/op 118.33 ns/op 0.90
LinkedList of 24000 items push then pop 7.4550 ns/op 8.2210 ns/op 0.91
intersect bitArray bitLen 8 6.5020 ns/op 7.5620 ns/op 0.86
intersect array and set length 8 38.505 ns/op 45.075 ns/op 0.85
intersect bitArray bitLen 128 30.353 ns/op 35.502 ns/op 0.85
intersect array and set length 128 639.09 ns/op 738.45 ns/op 0.87
bitArray.getTrueBitIndexes() bitLen 128 1.0460 us/op 1.1030 us/op 0.95
bitArray.getTrueBitIndexes() bitLen 248 1.8350 us/op 1.8410 us/op 1.00
bitArray.getTrueBitIndexes() bitLen 512 3.7750 us/op 3.7770 us/op 1.00
Buffer.concat 32 items 685.00 ns/op 651.00 ns/op 1.05
Uint8Array.set 32 items 1.0420 us/op 1.0080 us/op 1.03
Buffer.copy 2.1480 us/op 2.3220 us/op 0.93
Uint8Array.set - with subarray 1.6000 us/op 1.6960 us/op 0.94
Uint8Array.set - without subarray 980.00 ns/op 948.00 ns/op 1.03
getUint32 - dataview 208.00 ns/op 221.00 ns/op 0.94
getUint32 - manual 130.00 ns/op 140.00 ns/op 0.93
Set add up to 64 items then delete first 2.2548 us/op 2.3743 us/op 0.95
OrderedSet add up to 64 items then delete first 3.4275 us/op 3.5532 us/op 0.96
Set add up to 64 items then delete last 2.5041 us/op 2.7379 us/op 0.91
OrderedSet add up to 64 items then delete last 3.5985 us/op 3.8901 us/op 0.93
Set add up to 64 items then delete middle 2.5076 us/op 2.7311 us/op 0.92
OrderedSet add up to 64 items then delete middle 5.2828 us/op 5.6689 us/op 0.93
Set add up to 128 items then delete first 5.0368 us/op 5.5007 us/op 0.92
OrderedSet add up to 128 items then delete first 7.7485 us/op 8.6248 us/op 0.90
Set add up to 128 items then delete last 4.9701 us/op 5.3965 us/op 0.92
OrderedSet add up to 128 items then delete last 7.3725 us/op 8.0358 us/op 0.92
Set add up to 128 items then delete middle 5.1146 us/op 5.3204 us/op 0.96
OrderedSet add up to 128 items then delete middle 13.751 us/op 14.937 us/op 0.92
Set add up to 256 items then delete first 10.470 us/op 11.515 us/op 0.91
OrderedSet add up to 256 items then delete first 15.937 us/op 17.577 us/op 0.91
Set add up to 256 items then delete last 10.054 us/op 10.508 us/op 0.96
OrderedSet add up to 256 items then delete last 15.137 us/op 16.094 us/op 0.94
Set add up to 256 items then delete middle 9.7048 us/op 10.552 us/op 0.92
OrderedSet add up to 256 items then delete middle 43.121 us/op 45.354 us/op 0.95
transfer serialized Status (84 B) 2.3300 us/op 2.3900 us/op 0.97
copy serialized Status (84 B) 1.2430 us/op 1.3330 us/op 0.93
transfer serialized SignedVoluntaryExit (112 B) 2.2970 us/op 2.7870 us/op 0.82
copy serialized SignedVoluntaryExit (112 B) 1.2440 us/op 1.4090 us/op 0.88
transfer serialized ProposerSlashing (416 B) 2.3500 us/op 2.7650 us/op 0.85
copy serialized ProposerSlashing (416 B) 1.2930 us/op 1.4580 us/op 0.89
transfer serialized Attestation (485 B) 2.3650 us/op 2.7860 us/op 0.85
copy serialized Attestation (485 B) 1.5540 us/op 1.4440 us/op 1.08
transfer serialized AttesterSlashing (33232 B) 2.5620 us/op 2.9330 us/op 0.87
copy serialized AttesterSlashing (33232 B) 3.7430 us/op 3.7150 us/op 1.01
transfer serialized Small SignedBeaconBlock (128000 B) 3.0590 us/op 3.4490 us/op 0.89
copy serialized Small SignedBeaconBlock (128000 B) 8.9970 us/op 9.8810 us/op 0.91
transfer serialized Avg SignedBeaconBlock (200000 B) 3.6170 us/op 3.8920 us/op 0.93
copy serialized Avg SignedBeaconBlock (200000 B) 13.607 us/op 14.281 us/op 0.95
transfer serialized BlobsSidecar (524380 B) 3.8810 us/op 4.1270 us/op 0.94
copy serialized BlobsSidecar (524380 B) 64.580 us/op 61.733 us/op 1.05
transfer serialized Big SignedBeaconBlock (1000000 B) 4.0970 us/op 4.4390 us/op 0.92
copy serialized Big SignedBeaconBlock (1000000 B) 112.97 us/op 174.06 us/op 0.65
pass gossip attestations to forkchoice per slot 2.7031 ms/op 3.2482 ms/op 0.83
forkChoice updateHead vc 100000 bc 64 eq 0 456.75 us/op 537.42 us/op 0.85
forkChoice updateHead vc 600000 bc 64 eq 0 2.8200 ms/op 3.3089 ms/op 0.85
forkChoice updateHead vc 1000000 bc 64 eq 0 4.8287 ms/op 5.6648 ms/op 0.85
forkChoice updateHead vc 600000 bc 320 eq 0 2.8264 ms/op 5.8277 ms/op 0.49
forkChoice updateHead vc 600000 bc 1200 eq 0 2.8786 ms/op 3.3702 ms/op 0.85
forkChoice updateHead vc 600000 bc 7200 eq 0 3.0419 ms/op 3.6605 ms/op 0.83
forkChoice updateHead vc 600000 bc 64 eq 1000 10.262 ms/op 12.389 ms/op 0.83
forkChoice updateHead vc 600000 bc 64 eq 10000 10.218 ms/op 12.231 ms/op 0.84
forkChoice updateHead vc 600000 bc 64 eq 300000 13.674 ms/op 15.992 ms/op 0.86
computeDeltas 500000 validators 300 proto nodes 3.8976 ms/op 4.4854 ms/op 0.87
computeDeltas 500000 validators 1200 proto nodes 3.9174 ms/op 4.3405 ms/op 0.90
computeDeltas 500000 validators 7200 proto nodes 3.9379 ms/op 4.5109 ms/op 0.87
computeDeltas 750000 validators 300 proto nodes 5.7614 ms/op 6.8342 ms/op 0.84
computeDeltas 750000 validators 1200 proto nodes 5.7618 ms/op 6.6619 ms/op 0.86
computeDeltas 750000 validators 7200 proto nodes 5.7696 ms/op 6.6447 ms/op 0.87
computeDeltas 1400000 validators 300 proto nodes 10.846 ms/op 12.593 ms/op 0.86
computeDeltas 1400000 validators 1200 proto nodes 11.038 ms/op 12.820 ms/op 0.86
computeDeltas 1400000 validators 7200 proto nodes 10.969 ms/op 12.996 ms/op 0.84
computeDeltas 2100000 validators 300 proto nodes 16.361 ms/op 20.039 ms/op 0.82
computeDeltas 2100000 validators 1200 proto nodes 16.331 ms/op 20.370 ms/op 0.80
computeDeltas 2100000 validators 7200 proto nodes 16.308 ms/op 19.264 ms/op 0.85
altair processAttestation - 250000 vs - 7PWei normalcase 1.9760 ms/op 2.3008 ms/op 0.86
altair processAttestation - 250000 vs - 7PWei worstcase 2.9653 ms/op 3.3646 ms/op 0.88
altair processAttestation - setStatus - 1/6 committees join 125.33 us/op 148.90 us/op 0.84
altair processAttestation - setStatus - 1/3 committees join 237.90 us/op 333.15 us/op 0.71
altair processAttestation - setStatus - 1/2 committees join 342.38 us/op 456.21 us/op 0.75
altair processAttestation - setStatus - 2/3 committees join 436.72 us/op 599.61 us/op 0.73
altair processAttestation - setStatus - 4/5 committees join 597.71 us/op 712.91 us/op 0.84
altair processAttestation - setStatus - 100% committees join 702.59 us/op 957.63 us/op 0.73
altair processBlock - 250000 vs - 7PWei normalcase 4.5415 ms/op 6.0602 ms/op 0.75
altair processBlock - 250000 vs - 7PWei normalcase hashState 30.681 ms/op 24.887 ms/op 1.23
altair processBlock - 250000 vs - 7PWei worstcase 40.748 ms/op 37.059 ms/op 1.10
altair processBlock - 250000 vs - 7PWei worstcase hashState 95.656 ms/op 75.616 ms/op 1.27
phase0 processBlock - 250000 vs - 7PWei normalcase 1.9463 ms/op 2.1177 ms/op 0.92
phase0 processBlock - 250000 vs - 7PWei worstcase 23.947 ms/op 24.455 ms/op 0.98
altair processEth1Data - 250000 vs - 7PWei normalcase 355.11 us/op 440.55 us/op 0.81
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 5.4130 us/op 5.7580 us/op 0.94
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 49.053 us/op 35.616 us/op 1.38
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 9.5910 us/op 10.076 us/op 0.95
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.2020 us/op 7.0710 us/op 0.88
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 212.09 us/op 152.63 us/op 1.39
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 2.4920 ms/op 2.0392 ms/op 1.22
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.4239 ms/op 2.6997 ms/op 0.90
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.4361 ms/op 2.7654 ms/op 0.88
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.5814 ms/op 5.4597 ms/op 0.84
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.4582 ms/op 2.5964 ms/op 0.95
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.9866 ms/op 5.5650 ms/op 0.90
Tree 40 250000 create 425.88 ms/op 500.37 ms/op 0.85
Tree 40 250000 get(125000) 149.50 ns/op 166.58 ns/op 0.90
Tree 40 250000 set(125000) 1.5909 us/op 1.6550 us/op 0.96
Tree 40 250000 toArray() 20.401 ms/op 16.642 ms/op 1.23
Tree 40 250000 iterate all - toArray() + loop 17.968 ms/op 16.664 ms/op 1.08
Tree 40 250000 iterate all - get(i) 52.293 ms/op 58.299 ms/op 0.90
Array 250000 create 2.4872 ms/op 2.7905 ms/op 0.89
Array 250000 clone - spread 826.19 us/op 1.5662 ms/op 0.53
Array 250000 get(125000) 0.45100 ns/op 0.48600 ns/op 0.93
Array 250000 set(125000) 0.50000 ns/op 0.51400 ns/op 0.97
Array 250000 iterate all - loop 112.34 us/op 96.020 us/op 1.17
phase0 afterProcessEpoch - 250000 vs - 7PWei 43.070 ms/op 43.925 ms/op 0.98
Array.fill - length 1000000 3.5202 ms/op 3.5012 ms/op 1.01
Array push - length 1000000 14.569 ms/op 13.097 ms/op 1.11
Array.get 0.27743 ns/op 0.28570 ns/op 0.97
Uint8Array.get 0.44483 ns/op 0.46974 ns/op 0.95
phase0 beforeProcessEpoch - 250000 vs - 7PWei 16.568 ms/op 17.335 ms/op 0.96
altair processEpoch - mainnet_e81889 267.97 ms/op 303.22 ms/op 0.88
mainnet_e81889 - altair beforeProcessEpoch 20.178 ms/op 24.969 ms/op 0.81
mainnet_e81889 - altair processJustificationAndFinalization 7.6160 us/op 7.1520 us/op 1.06
mainnet_e81889 - altair processInactivityUpdates 4.3147 ms/op 4.6318 ms/op 0.93
mainnet_e81889 - altair processRewardsAndPenalties 37.301 ms/op 40.550 ms/op 0.92
mainnet_e81889 - altair processRegistryUpdates 765.00 ns/op 921.00 ns/op 0.83
mainnet_e81889 - altair processSlashings 199.00 ns/op 241.00 ns/op 0.83
mainnet_e81889 - altair processEth1DataReset 204.00 ns/op 233.00 ns/op 0.88
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2895 ms/op 1.5280 ms/op 0.84
mainnet_e81889 - altair processSlashingsReset 967.00 ns/op 1.0200 us/op 0.95
mainnet_e81889 - altair processRandaoMixesReset 1.2090 us/op 1.2590 us/op 0.96
mainnet_e81889 - altair processHistoricalRootsUpdate 203.00 ns/op 209.00 ns/op 0.97
mainnet_e81889 - altair processParticipationFlagUpdates 531.00 ns/op 642.00 ns/op 0.83
mainnet_e81889 - altair processSyncCommitteeUpdates 152.00 ns/op 186.00 ns/op 0.82
mainnet_e81889 - altair afterProcessEpoch 45.220 ms/op 49.697 ms/op 0.91
capella processEpoch - mainnet_e217614 967.57 ms/op 952.51 ms/op 1.02
mainnet_e217614 - capella beforeProcessEpoch 72.307 ms/op 66.005 ms/op 1.10
mainnet_e217614 - capella processJustificationAndFinalization 6.4320 us/op 6.0510 us/op 1.06
mainnet_e217614 - capella processInactivityUpdates 15.690 ms/op 15.981 ms/op 0.98
mainnet_e217614 - capella processRewardsAndPenalties 199.05 ms/op 206.39 ms/op 0.96
mainnet_e217614 - capella processRegistryUpdates 10.538 us/op 7.8140 us/op 1.35
mainnet_e217614 - capella processSlashings 232.00 ns/op 227.00 ns/op 1.02
mainnet_e217614 - capella processEth1DataReset 197.00 ns/op 226.00 ns/op 0.87
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.3861 ms/op 11.502 ms/op 0.38
mainnet_e217614 - capella processSlashingsReset 1.0900 us/op 1.0620 us/op 1.03
mainnet_e217614 - capella processRandaoMixesReset 1.1870 us/op 1.4310 us/op 0.83
mainnet_e217614 - capella processHistoricalRootsUpdate 180.00 ns/op 230.00 ns/op 0.78
mainnet_e217614 - capella processParticipationFlagUpdates 537.00 ns/op 647.00 ns/op 0.83
mainnet_e217614 - capella afterProcessEpoch 140.06 ms/op 135.58 ms/op 1.03
phase0 processEpoch - mainnet_e58758 312.26 ms/op 324.74 ms/op 0.96
mainnet_e58758 - phase0 beforeProcessEpoch 94.659 ms/op 76.702 ms/op 1.23
mainnet_e58758 - phase0 processJustificationAndFinalization 5.6310 us/op 6.9260 us/op 0.81
mainnet_e58758 - phase0 processRewardsAndPenalties 38.688 ms/op 38.676 ms/op 1.00
mainnet_e58758 - phase0 processRegistryUpdates 4.0780 us/op 4.9670 us/op 0.82
mainnet_e58758 - phase0 processSlashings 240.00 ns/op 377.00 ns/op 0.64
mainnet_e58758 - phase0 processEth1DataReset 183.00 ns/op 342.00 ns/op 0.54
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3666 ms/op 1.2545 ms/op 1.09
mainnet_e58758 - phase0 processSlashingsReset 1.0590 us/op 1.1950 us/op 0.89
mainnet_e58758 - phase0 processRandaoMixesReset 1.3510 us/op 1.6540 us/op 0.82
mainnet_e58758 - phase0 processHistoricalRootsUpdate 203.00 ns/op 364.00 ns/op 0.56
mainnet_e58758 - phase0 processParticipationRecordUpdates 979.00 ns/op 1.2640 us/op 0.77
mainnet_e58758 - phase0 afterProcessEpoch 37.279 ms/op 40.460 ms/op 0.92
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.0383 ms/op 1.3874 ms/op 1.47
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.0992 ms/op 1.9512 ms/op 1.59
altair processInactivityUpdates - 250000 normalcase 29.010 ms/op 18.908 ms/op 1.53
altair processInactivityUpdates - 250000 worstcase 21.909 ms/op 20.302 ms/op 1.08
phase0 processRegistryUpdates - 250000 normalcase 14.892 us/op 6.9200 us/op 2.15
phase0 processRegistryUpdates - 250000 badcase_full_deposits 291.80 us/op 248.34 us/op 1.18
phase0 processRegistryUpdates - 250000 worstcase 0.5 111.71 ms/op 127.69 ms/op 0.87
altair processRewardsAndPenalties - 250000 normalcase 30.285 ms/op 33.285 ms/op 0.91
altair processRewardsAndPenalties - 250000 worstcase 28.076 ms/op 31.635 ms/op 0.89
phase0 getAttestationDeltas - 250000 normalcase 8.6205 ms/op 9.5004 ms/op 0.91
phase0 getAttestationDeltas - 250000 worstcase 6.1932 ms/op 6.2178 ms/op 1.00
phase0 processSlashings - 250000 worstcase 127.46 us/op 83.943 us/op 1.52
altair processSyncCommitteeUpdates - 250000 13.094 ms/op 13.622 ms/op 0.96
BeaconState.hashTreeRoot - No change 265.00 ns/op 275.00 ns/op 0.96
BeaconState.hashTreeRoot - 1 full validator 95.603 us/op 92.638 us/op 1.03
BeaconState.hashTreeRoot - 32 full validator 929.23 us/op 1.0414 ms/op 0.89
BeaconState.hashTreeRoot - 512 full validator 12.579 ms/op 11.342 ms/op 1.11
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 116.35 us/op 121.69 us/op 0.96
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.6364 ms/op 2.0649 ms/op 0.79
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 25.028 ms/op 31.805 ms/op 0.79
BeaconState.hashTreeRoot - 1 balances 92.361 us/op 101.29 us/op 0.91
BeaconState.hashTreeRoot - 32 balances 959.90 us/op 1.0506 ms/op 0.91
BeaconState.hashTreeRoot - 512 balances 8.9342 ms/op 9.8763 ms/op 0.90
BeaconState.hashTreeRoot - 250000 balances 170.35 ms/op 209.11 ms/op 0.81
aggregationBits - 2048 els - zipIndexesInBitList 22.918 us/op 32.650 us/op 0.70
byteArrayEquals 32 55.203 ns/op 83.950 ns/op 0.66
Buffer.compare 32 18.126 ns/op 32.031 ns/op 0.57
byteArrayEquals 1024 1.6491 us/op 2.0706 us/op 0.80
Buffer.compare 1024 27.334 ns/op 40.986 ns/op 0.67
byteArrayEquals 16384 26.273 us/op 32.521 us/op 0.81
Buffer.compare 16384 196.39 ns/op 288.98 ns/op 0.68
byteArrayEquals 123687377 195.51 ms/op 242.97 ms/op 0.80
Buffer.compare 123687377 7.0045 ms/op 6.6247 ms/op 1.06
byteArrayEquals 32 - diff last byte 52.585 ns/op 67.263 ns/op 0.78
Buffer.compare 32 - diff last byte 17.024 ns/op 23.792 ns/op 0.72
byteArrayEquals 1024 - diff last byte 1.5876 us/op 1.9958 us/op 0.80
Buffer.compare 1024 - diff last byte 25.094 ns/op 35.827 ns/op 0.70
byteArrayEquals 16384 - diff last byte 25.291 us/op 31.308 us/op 0.81
Buffer.compare 16384 - diff last byte 204.26 ns/op 255.74 ns/op 0.80
byteArrayEquals 123687377 - diff last byte 195.78 ms/op 249.24 ms/op 0.79
Buffer.compare 123687377 - diff last byte 7.4656 ms/op 7.7969 ms/op 0.96
byteArrayEquals 32 - random bytes 5.0800 ns/op 7.1200 ns/op 0.71
Buffer.compare 32 - random bytes 17.227 ns/op 26.929 ns/op 0.64
byteArrayEquals 1024 - random bytes 5.1440 ns/op 7.8870 ns/op 0.65
Buffer.compare 1024 - random bytes 17.268 ns/op 20.063 ns/op 0.86
byteArrayEquals 16384 - random bytes 5.1420 ns/op 6.3520 ns/op 0.81
Buffer.compare 16384 - random bytes 17.233 ns/op 22.369 ns/op 0.77
byteArrayEquals 123687377 - random bytes 6.5100 ns/op 7.7600 ns/op 0.84
Buffer.compare 123687377 - random bytes 20.380 ns/op 28.370 ns/op 0.72
regular array get 100000 times 34.191 us/op 41.065 us/op 0.83
wrappedArray get 100000 times 34.129 us/op 35.202 us/op 0.97
arrayWithProxy get 100000 times 13.285 ms/op 14.417 ms/op 0.92
ssz.Root.equals 47.989 ns/op 49.741 ns/op 0.96
byteArrayEquals 47.246 ns/op 48.669 ns/op 0.97
Buffer.compare 10.792 ns/op 11.322 ns/op 0.95
processSlot - 1 slots 11.419 us/op 12.744 us/op 0.90
processSlot - 32 slots 2.7534 ms/op 2.6755 ms/op 1.03
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.0281 ms/op 3.5538 ms/op 0.85
getCommitteeAssignments - req 1 vs - 250000 vc 1.9745 ms/op 2.4308 ms/op 0.81
getCommitteeAssignments - req 100 vs - 250000 vc 3.8896 ms/op 5.1230 ms/op 0.76
getCommitteeAssignments - req 1000 vs - 250000 vc 4.1346 ms/op 6.6550 ms/op 0.62
findModifiedValidators - 10000 modified validators 727.98 ms/op 873.41 ms/op 0.83
findModifiedValidators - 1000 modified validators 716.56 ms/op 837.93 ms/op 0.86
findModifiedValidators - 100 modified validators 257.79 ms/op 438.33 ms/op 0.59
findModifiedValidators - 10 modified validators 190.50 ms/op 259.71 ms/op 0.73
findModifiedValidators - 1 modified validators 255.87 ms/op 258.78 ms/op 0.99
findModifiedValidators - no difference 231.87 ms/op 270.67 ms/op 0.86
compare ViewDUs 6.5529 s/op 8.1090 s/op 0.81
compare each validator Uint8Array 1.2347 s/op 1.7598 s/op 0.70
compare ViewDU to Uint8Array 1.2718 s/op 1.4155 s/op 0.90
migrate state 1000000 validators, 24 modified, 0 new 932.90 ms/op 875.51 ms/op 1.07
migrate state 1000000 validators, 1700 modified, 1000 new 1.4733 s/op 1.4478 s/op 1.02
migrate state 1000000 validators, 3400 modified, 2000 new 1.5629 s/op 1.5954 s/op 0.98
migrate state 1500000 validators, 24 modified, 0 new 1.0783 s/op 1.0428 s/op 1.03
migrate state 1500000 validators, 1700 modified, 1000 new 1.2097 s/op 1.1175 s/op 1.08
migrate state 1500000 validators, 3400 modified, 2000 new 1.3511 s/op 1.3904 s/op 0.97
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.1400 ns/op 5.1000 ns/op 0.81
state getBlockRootAtSlot - 250000 vs - 7PWei 516.20 ns/op 438.73 ns/op 1.18
naive computeProposerIndex 100000 validators 57.245 ms/op 54.988 ms/op 1.04
computeProposerIndex 100000 validators 1.5684 ms/op 1.7184 ms/op 0.91
naiveGetNextSyncCommitteeIndices 1000 validators 6.8614 s/op 7.8776 s/op 0.87
getNextSyncCommitteeIndices 1000 validators 110.87 ms/op 125.58 ms/op 0.88
naiveGetNextSyncCommitteeIndices 10000 validators 6.7443 s/op 7.8872 s/op 0.86
getNextSyncCommitteeIndices 10000 validators 112.93 ms/op 124.79 ms/op 0.90
naiveGetNextSyncCommitteeIndices 100000 validators 7.1371 s/op 8.1444 s/op 0.88
getNextSyncCommitteeIndices 100000 validators 110.90 ms/op 132.08 ms/op 0.84
naive computeShuffledIndex 100000 validators 24.590 s/op 24.733 s/op 0.99
cached computeShuffledIndex 100000 validators 575.52 ms/op 620.93 ms/op 0.93
naive computeShuffledIndex 2000000 validators 495.12 s/op 501.97 s/op 0.99
cached computeShuffledIndex 2000000 validators 34.134 s/op 32.546 s/op 1.05
computeProposers - vc 250000 622.17 us/op 710.96 us/op 0.88
computeEpochShuffling - vc 250000 42.404 ms/op 49.361 ms/op 0.86
getNextSyncCommittee - vc 250000 10.701 ms/op 11.861 ms/op 0.90
computeSigningRoot for AttestationData 22.476 us/op 22.947 us/op 0.98
hash AttestationData serialized data then Buffer.toString(base64) 1.6001 us/op 1.7950 us/op 0.89
toHexString serialized data 1.2156 us/op 1.3749 us/op 0.88
Buffer.toString(base64) 148.98 ns/op 194.40 ns/op 0.77
nodejs block root to RootHex using toHex 141.63 ns/op 171.58 ns/op 0.83
nodejs block root to RootHex using toRootHex 88.820 ns/op 104.79 ns/op 0.85
browser block root to RootHex using the deprecated toHexString 209.99 ns/op 237.09 ns/op 0.89
browser block root to RootHex using toHex 169.38 ns/op 201.86 ns/op 0.84
browser block root to RootHex using toRootHex 157.93 ns/op 179.60 ns/op 0.88

by benchmarkbot/action

@nflaig nflaig changed the title feat: prepare for spec test v1.6.0-alpha.1 chore: prepare for spec test v1.6.0-alpha.1 Jun 5, 2025
@ensi321 ensi321 merged commit 9330899 into unstable Jun 5, 2025
24 of 25 checks passed
@ensi321 ensi321 deleted the nc/spec-test-prep branch June 5, 2025 10:47
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.

Add pre_epoch and post_epoch in epoch processing spec test
2 participants