Skip to content

feat: schedule electra on mainnet#7655

Merged
ensi321 merged 1 commit intounstablefrom
nc/pectra-mainnet
Apr 4, 2025
Merged

feat: schedule electra on mainnet#7655
ensi321 merged 1 commit intounstablefrom
nc/pectra-mainnet

Conversation

@ensi321
Copy link
Contributor

@ensi321 ensi321 commented Apr 3, 2025

@ensi321 ensi321 marked this pull request as ready for review April 3, 2025 23:19
@ensi321 ensi321 requested a review from a team as a code owner April 3, 2025 23:19
@codecov
Copy link

codecov bot commented Apr 3, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 50.25%. Comparing base (091881a) to head (91275e7).
Report is 1 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #7655   +/-   ##
=========================================
  Coverage     50.25%   50.25%           
=========================================
  Files           604      604           
  Lines         40481    40481           
  Branches       2229     2229           
=========================================
  Hits          20342    20342           
  Misses        20097    20097           
  Partials         42       42           
🚀 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.

@philknows philknows added this to the v1.29.0 milestone Apr 3, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Apr 4, 2025

Performance Report

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: b136e1f Previous: 091881a Ratio
cached computeShuffledIndex 2000000 validators 28.267 s/op 86.702 s/op 0.33
Full benchmark results
Benchmark suite Current: b136e1f Previous: 091881a Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 919.41 us/op 957.29 us/op 0.96
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 35.234 us/op 36.454 us/op 0.97
BLS verify - blst 785.69 us/op 841.66 us/op 0.93
BLS verifyMultipleSignatures 3 - blst 1.1335 ms/op 1.2052 ms/op 0.94
BLS verifyMultipleSignatures 8 - blst 1.7031 ms/op 1.6740 ms/op 1.02
BLS verifyMultipleSignatures 32 - blst 4.6863 ms/op 4.9921 ms/op 0.94
BLS verifyMultipleSignatures 64 - blst 8.7435 ms/op 9.2057 ms/op 0.95
BLS verifyMultipleSignatures 128 - blst 17.037 ms/op 17.154 ms/op 0.99
BLS deserializing 10000 signatures 670.26 ms/op 702.53 ms/op 0.95
BLS deserializing 100000 signatures 6.8539 s/op 7.0979 s/op 0.97
BLS verifyMultipleSignatures - same message - 3 - blst 882.21 us/op 976.30 us/op 0.90
BLS verifyMultipleSignatures - same message - 8 - blst 1.0052 ms/op 1.0988 ms/op 0.91
BLS verifyMultipleSignatures - same message - 32 - blst 1.6790 ms/op 1.7431 ms/op 0.96
BLS verifyMultipleSignatures - same message - 64 - blst 2.5538 ms/op 2.7075 ms/op 0.94
BLS verifyMultipleSignatures - same message - 128 - blst 4.3028 ms/op 4.4913 ms/op 0.96
BLS aggregatePubkeys 32 - blst 19.202 us/op 20.225 us/op 0.95
BLS aggregatePubkeys 128 - blst 68.691 us/op 72.302 us/op 0.95
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 44.972 ms/op 49.624 ms/op 0.91
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 42.922 ms/op 50.953 ms/op 0.84
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 33.722 ms/op 39.280 ms/op 0.86
getSlashingsAndExits - default max 68.835 us/op 82.508 us/op 0.83
getSlashingsAndExits - 2k 270.76 us/op 389.25 us/op 0.70
proposeBlockBody type=full, size=empty 5.2998 ms/op 8.4558 ms/op 0.63
isKnown best case - 1 super set check 192.00 ns/op 217.00 ns/op 0.88
isKnown normal case - 2 super set checks 190.00 ns/op 211.00 ns/op 0.90
isKnown worse case - 16 super set checks 192.00 ns/op 209.00 ns/op 0.92
InMemoryCheckpointStateCache - add get delete 2.3460 us/op 2.7290 us/op 0.86
validate api signedAggregateAndProof - struct 1.3177 ms/op 1.7808 ms/op 0.74
validate gossip signedAggregateAndProof - struct 1.3130 ms/op 1.6375 ms/op 0.80
batch validate gossip attestation - vc 640000 - chunk 32 110.45 us/op 127.65 us/op 0.87
batch validate gossip attestation - vc 640000 - chunk 64 96.932 us/op 110.26 us/op 0.88
batch validate gossip attestation - vc 640000 - chunk 128 89.758 us/op 106.44 us/op 0.84
batch validate gossip attestation - vc 640000 - chunk 256 91.977 us/op 107.92 us/op 0.85
pickEth1Vote - no votes 943.12 us/op 994.55 us/op 0.95
pickEth1Vote - max votes 5.0679 ms/op 7.5792 ms/op 0.67
pickEth1Vote - Eth1Data hashTreeRoot value x2048 10.411 ms/op 13.659 ms/op 0.76
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 18.929 ms/op 18.943 ms/op 1.00
pickEth1Vote - Eth1Data fastSerialize value x2048 409.12 us/op 424.31 us/op 0.96
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.0681 ms/op 2.1622 ms/op 1.42
bytes32 toHexString 338.00 ns/op 371.00 ns/op 0.91
bytes32 Buffer.toString(hex) 216.00 ns/op 232.00 ns/op 0.93
bytes32 Buffer.toString(hex) from Uint8Array 306.00 ns/op 335.00 ns/op 0.91
bytes32 Buffer.toString(hex) + 0x 221.00 ns/op 235.00 ns/op 0.94
Object access 1 prop 0.11000 ns/op 0.11700 ns/op 0.94
Map access 1 prop 0.12000 ns/op 0.12400 ns/op 0.97
Object get x1000 5.5130 ns/op 6.0180 ns/op 0.92
Map get x1000 6.0420 ns/op 6.6160 ns/op 0.91
Object set x1000 26.851 ns/op 31.266 ns/op 0.86
Map set x1000 18.166 ns/op 21.106 ns/op 0.86
Return object 10000 times 0.27500 ns/op 0.29650 ns/op 0.93
Throw Error 10000 times 4.1649 us/op 4.5953 us/op 0.91
toHex 130.04 ns/op 144.74 ns/op 0.90
Buffer.from 121.05 ns/op 122.07 ns/op 0.99
shared Buffer 77.517 ns/op 79.247 ns/op 0.98
fastMsgIdFn sha256 / 200 bytes 2.1180 us/op 2.2470 us/op 0.94
fastMsgIdFn h32 xxhash / 200 bytes 195.00 ns/op 216.00 ns/op 0.90
fastMsgIdFn h64 xxhash / 200 bytes 250.00 ns/op 275.00 ns/op 0.91
fastMsgIdFn sha256 / 1000 bytes 7.0030 us/op 7.4330 us/op 0.94
fastMsgIdFn h32 xxhash / 1000 bytes 318.00 ns/op 344.00 ns/op 0.92
fastMsgIdFn h64 xxhash / 1000 bytes 322.00 ns/op 352.00 ns/op 0.91
fastMsgIdFn sha256 / 10000 bytes 62.964 us/op 70.273 us/op 0.90
fastMsgIdFn h32 xxhash / 10000 bytes 1.7760 us/op 1.9280 us/op 0.92
fastMsgIdFn h64 xxhash / 10000 bytes 1.1800 us/op 1.3030 us/op 0.91
send data - 1000 256B messages 9.9761 ms/op 15.641 ms/op 0.64
send data - 1000 512B messages 16.084 ms/op 16.853 ms/op 0.95
send data - 1000 1024B messages 24.736 ms/op 29.726 ms/op 0.83
send data - 1000 1200B messages 18.432 ms/op 21.851 ms/op 0.84
send data - 1000 2048B messages 20.272 ms/op 27.667 ms/op 0.73
send data - 1000 4096B messages 24.672 ms/op 26.587 ms/op 0.93
send data - 1000 16384B messages 74.801 ms/op 67.479 ms/op 1.11
send data - 1000 65536B messages 212.84 ms/op 239.14 ms/op 0.89
enrSubnets - fastDeserialize 64 bits 853.00 ns/op 903.00 ns/op 0.94
enrSubnets - ssz BitVector 64 bits 315.00 ns/op 333.00 ns/op 0.95
enrSubnets - fastDeserialize 4 bits 126.00 ns/op 130.00 ns/op 0.97
enrSubnets - ssz BitVector 4 bits 312.00 ns/op 331.00 ns/op 0.94
prioritizePeers score -10:0 att 32-0.1 sync 2-0 114.75 us/op 119.71 us/op 0.96
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 134.40 us/op 145.76 us/op 0.92
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 193.72 us/op 209.31 us/op 0.93
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 368.02 us/op 390.18 us/op 0.94
prioritizePeers score 0:0 att 64-1 sync 4-1 452.86 us/op 471.43 us/op 0.96
array of 16000 items push then shift 1.5749 us/op 1.6829 us/op 0.94
LinkedList of 16000 items push then shift 6.8670 ns/op 7.7210 ns/op 0.89
array of 16000 items push then pop 73.038 ns/op 81.428 ns/op 0.90
LinkedList of 16000 items push then pop 6.8130 ns/op 7.3090 ns/op 0.93
array of 24000 items push then shift 2.3568 us/op 2.5269 us/op 0.93
LinkedList of 24000 items push then shift 6.9820 ns/op 7.6530 ns/op 0.91
array of 24000 items push then pop 108.04 ns/op 115.14 ns/op 0.94
LinkedList of 24000 items push then pop 7.1230 ns/op 7.4090 ns/op 0.96
intersect bitArray bitLen 8 6.1990 ns/op 6.5010 ns/op 0.95
intersect array and set length 8 36.766 ns/op 38.901 ns/op 0.95
intersect bitArray bitLen 128 28.855 ns/op 30.448 ns/op 0.95
intersect array and set length 128 615.83 ns/op 637.69 ns/op 0.97
bitArray.getTrueBitIndexes() bitLen 128 1.0040 us/op 1.0620 us/op 0.95
bitArray.getTrueBitIndexes() bitLen 248 1.7930 us/op 1.8650 us/op 0.96
bitArray.getTrueBitIndexes() bitLen 512 3.7220 us/op 3.8280 us/op 0.97
Buffer.concat 32 items 603.00 ns/op 622.00 ns/op 0.97
Uint8Array.set 32 items 1.4010 us/op 1.2780 us/op 1.10
Buffer.copy 2.0790 us/op 2.1270 us/op 0.98
Uint8Array.set - with subarray 1.8240 us/op 1.6170 us/op 1.13
Uint8Array.set - without subarray 1.1790 us/op 1.4680 us/op 0.80
getUint32 - dataview 182.00 ns/op 197.00 ns/op 0.92
getUint32 - manual 112.00 ns/op 120.00 ns/op 0.93
Set add up to 64 items then delete first 2.1535 us/op 2.4574 us/op 0.88
OrderedSet add up to 64 items then delete first 3.1628 us/op 3.8418 us/op 0.82
Set add up to 64 items then delete last 2.2842 us/op 2.5982 us/op 0.88
OrderedSet add up to 64 items then delete last 3.4690 us/op 4.4738 us/op 0.78
Set add up to 64 items then delete middle 2.4170 us/op 2.8259 us/op 0.86
OrderedSet add up to 64 items then delete middle 4.9810 us/op 5.6177 us/op 0.89
Set add up to 128 items then delete first 4.8663 us/op 5.9150 us/op 0.82
OrderedSet add up to 128 items then delete first 7.6433 us/op 9.6162 us/op 0.79
Set add up to 128 items then delete last 4.8569 us/op 5.6460 us/op 0.86
OrderedSet add up to 128 items then delete last 6.9846 us/op 8.5819 us/op 0.81
Set add up to 128 items then delete middle 4.8180 us/op 6.1306 us/op 0.79
OrderedSet add up to 128 items then delete middle 13.446 us/op 15.376 us/op 0.87
Set add up to 256 items then delete first 10.185 us/op 11.086 us/op 0.92
OrderedSet add up to 256 items then delete first 15.570 us/op 19.476 us/op 0.80
Set add up to 256 items then delete last 11.527 us/op 10.198 us/op 1.13
OrderedSet add up to 256 items then delete last 14.359 us/op 15.410 us/op 0.93
Set add up to 256 items then delete middle 9.5922 us/op 10.054 us/op 0.95
OrderedSet add up to 256 items then delete middle 41.045 us/op 46.581 us/op 0.88
transfer serialized Status (84 B) 2.1040 us/op 2.4740 us/op 0.85
copy serialized Status (84 B) 1.1400 us/op 1.2960 us/op 0.88
transfer serialized SignedVoluntaryExit (112 B) 2.1980 us/op 2.4680 us/op 0.89
copy serialized SignedVoluntaryExit (112 B) 1.1700 us/op 1.3730 us/op 0.85
transfer serialized ProposerSlashing (416 B) 2.2540 us/op 2.4630 us/op 0.92
copy serialized ProposerSlashing (416 B) 1.2290 us/op 1.4820 us/op 0.83
transfer serialized Attestation (485 B) 2.2920 us/op 2.5510 us/op 0.90
copy serialized Attestation (485 B) 1.2570 us/op 1.4100 us/op 0.89
transfer serialized AttesterSlashing (33232 B) 3.2390 us/op 2.6040 us/op 1.24
copy serialized AttesterSlashing (33232 B) 5.0200 us/op 4.4420 us/op 1.13
transfer serialized Small SignedBeaconBlock (128000 B) 3.3440 us/op 3.4640 us/op 0.97
copy serialized Small SignedBeaconBlock (128000 B) 9.4850 us/op 15.385 us/op 0.62
transfer serialized Avg SignedBeaconBlock (200000 B) 3.7480 us/op 3.7920 us/op 0.99
copy serialized Avg SignedBeaconBlock (200000 B) 15.031 us/op 16.864 us/op 0.89
transfer serialized BlobsSidecar (524380 B) 3.8330 us/op 4.1820 us/op 0.92
copy serialized BlobsSidecar (524380 B) 78.657 us/op 68.666 us/op 1.15
transfer serialized Big SignedBeaconBlock (1000000 B) 3.9620 us/op 4.6910 us/op 0.84
copy serialized Big SignedBeaconBlock (1000000 B) 140.39 us/op 122.08 us/op 1.15
pass gossip attestations to forkchoice per slot 2.7049 ms/op 2.8957 ms/op 0.93
forkChoice updateHead vc 100000 bc 64 eq 0 458.04 us/op 476.71 us/op 0.96
forkChoice updateHead vc 600000 bc 64 eq 0 3.0677 ms/op 3.3831 ms/op 0.91
forkChoice updateHead vc 1000000 bc 64 eq 0 4.7874 ms/op 5.8801 ms/op 0.81
forkChoice updateHead vc 600000 bc 320 eq 0 2.7932 ms/op 3.0961 ms/op 0.90
forkChoice updateHead vc 600000 bc 1200 eq 0 2.8620 ms/op 3.0430 ms/op 0.94
forkChoice updateHead vc 600000 bc 7200 eq 0 3.2416 ms/op 3.5371 ms/op 0.92
forkChoice updateHead vc 600000 bc 64 eq 1000 10.365 ms/op 10.692 ms/op 0.97
forkChoice updateHead vc 600000 bc 64 eq 10000 10.336 ms/op 11.474 ms/op 0.90
forkChoice updateHead vc 600000 bc 64 eq 300000 13.579 ms/op 14.435 ms/op 0.94
computeDeltas 500000 validators 300 proto nodes 3.9435 ms/op 4.1459 ms/op 0.95
computeDeltas 500000 validators 1200 proto nodes 3.9696 ms/op 4.1241 ms/op 0.96
computeDeltas 500000 validators 7200 proto nodes 3.9789 ms/op 4.0935 ms/op 0.97
computeDeltas 750000 validators 300 proto nodes 5.9833 ms/op 6.0292 ms/op 0.99
computeDeltas 750000 validators 1200 proto nodes 6.1456 ms/op 5.9793 ms/op 1.03
computeDeltas 750000 validators 7200 proto nodes 5.9963 ms/op 6.0338 ms/op 0.99
computeDeltas 1400000 validators 300 proto nodes 11.025 ms/op 11.181 ms/op 0.99
computeDeltas 1400000 validators 1200 proto nodes 10.898 ms/op 11.152 ms/op 0.98
computeDeltas 1400000 validators 7200 proto nodes 11.005 ms/op 11.103 ms/op 0.99
computeDeltas 2100000 validators 300 proto nodes 16.294 ms/op 16.865 ms/op 0.97
computeDeltas 2100000 validators 1200 proto nodes 16.272 ms/op 17.282 ms/op 0.94
computeDeltas 2100000 validators 7200 proto nodes 16.338 ms/op 17.098 ms/op 0.96
altair processAttestation - 250000 vs - 7PWei normalcase 1.9782 ms/op 2.5986 ms/op 0.76
altair processAttestation - 250000 vs - 7PWei worstcase 3.0790 ms/op 3.7851 ms/op 0.81
altair processAttestation - setStatus - 1/6 committees join 122.02 us/op 137.80 us/op 0.89
altair processAttestation - setStatus - 1/3 committees join 239.69 us/op 260.73 us/op 0.92
altair processAttestation - setStatus - 1/2 committees join 330.34 us/op 369.63 us/op 0.89
altair processAttestation - setStatus - 2/3 committees join 432.57 us/op 467.96 us/op 0.92
altair processAttestation - setStatus - 4/5 committees join 604.16 us/op 665.95 us/op 0.91
altair processAttestation - setStatus - 100% committees join 732.77 us/op 766.60 us/op 0.96
altair processBlock - 250000 vs - 7PWei normalcase 5.7977 ms/op 4.9063 ms/op 1.18
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.750 ms/op 32.112 ms/op 0.93
altair processBlock - 250000 vs - 7PWei worstcase 37.731 ms/op 38.816 ms/op 0.97
altair processBlock - 250000 vs - 7PWei worstcase hashState 83.993 ms/op 74.873 ms/op 1.12
phase0 processBlock - 250000 vs - 7PWei normalcase 1.7114 ms/op 1.6009 ms/op 1.07
phase0 processBlock - 250000 vs - 7PWei worstcase 22.206 ms/op 25.997 ms/op 0.85
altair processEth1Data - 250000 vs - 7PWei normalcase 337.11 us/op 346.02 us/op 0.97
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 5.2520 us/op 6.3350 us/op 0.83
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 47.397 us/op 42.967 us/op 1.10
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 10.264 us/op 11.834 us/op 0.87
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.0320 us/op 7.4710 us/op 0.81
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 138.27 us/op 148.92 us/op 0.93
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 949.76 us/op 1.0131 ms/op 0.94
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.3579 ms/op 1.4295 ms/op 0.95
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.3481 ms/op 1.4275 ms/op 0.94
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.6644 ms/op 3.9917 ms/op 0.92
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.4442 ms/op 1.4455 ms/op 1.00
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.6711 ms/op 3.9626 ms/op 0.93
Tree 40 250000 create 446.18 ms/op 531.58 ms/op 0.84
Tree 40 250000 get(125000) 143.82 ns/op 152.50 ns/op 0.94
Tree 40 250000 set(125000) 1.4502 us/op 1.9074 us/op 0.76
Tree 40 250000 toArray() 21.735 ms/op 22.328 ms/op 0.97
Tree 40 250000 iterate all - toArray() + loop 20.140 ms/op 21.849 ms/op 0.92
Tree 40 250000 iterate all - get(i) 55.744 ms/op 63.895 ms/op 0.87
Array 250000 create 2.4541 ms/op 2.7489 ms/op 0.89
Array 250000 clone - spread 826.89 us/op 1.5972 ms/op 0.52
Array 250000 get(125000) 0.41800 ns/op 0.42700 ns/op 0.98
Array 250000 set(125000) 0.42800 ns/op 0.44700 ns/op 0.96
Array 250000 iterate all - loop 91.231 us/op 100.10 us/op 0.91
phase0 afterProcessEpoch - 250000 vs - 7PWei 43.000 ms/op 44.106 ms/op 0.97
Array.fill - length 1000000 3.3240 ms/op 3.6907 ms/op 0.90
Array push - length 1000000 12.547 ms/op 13.216 ms/op 0.95
Array.get 0.27745 ns/op 0.27759 ns/op 1.00
Uint8Array.get 0.44567 ns/op 0.44716 ns/op 1.00
phase0 beforeProcessEpoch - 250000 vs - 7PWei 16.922 ms/op 19.081 ms/op 0.89
altair processEpoch - mainnet_e81889 257.53 ms/op 248.77 ms/op 1.04
mainnet_e81889 - altair beforeProcessEpoch 19.009 ms/op 18.543 ms/op 1.03
mainnet_e81889 - altair processJustificationAndFinalization 5.3510 us/op 5.2980 us/op 1.01
mainnet_e81889 - altair processInactivityUpdates 5.2148 ms/op 4.2120 ms/op 1.24
mainnet_e81889 - altair processRewardsAndPenalties 38.964 ms/op 36.320 ms/op 1.07
mainnet_e81889 - altair processRegistryUpdates 695.00 ns/op 707.00 ns/op 0.98
mainnet_e81889 - altair processSlashings 172.00 ns/op 174.00 ns/op 0.99
mainnet_e81889 - altair processEth1DataReset 170.00 ns/op 170.00 ns/op 1.00
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2417 ms/op 1.2723 ms/op 0.98
mainnet_e81889 - altair processSlashingsReset 843.00 ns/op 894.00 ns/op 0.94
mainnet_e81889 - altair processRandaoMixesReset 1.0940 us/op 1.1140 us/op 0.98
mainnet_e81889 - altair processHistoricalRootsUpdate 174.00 ns/op 176.00 ns/op 0.99
mainnet_e81889 - altair processParticipationFlagUpdates 521.00 ns/op 520.00 ns/op 1.00
mainnet_e81889 - altair processSyncCommitteeUpdates 135.00 ns/op 140.00 ns/op 0.96
mainnet_e81889 - altair afterProcessEpoch 45.126 ms/op 45.241 ms/op 1.00
capella processEpoch - mainnet_e217614 922.50 ms/op 911.81 ms/op 1.01
mainnet_e217614 - capella beforeProcessEpoch 60.004 ms/op 62.131 ms/op 0.97
mainnet_e217614 - capella processJustificationAndFinalization 5.2430 us/op 5.4030 us/op 0.97
mainnet_e217614 - capella processInactivityUpdates 14.825 ms/op 15.910 ms/op 0.93
mainnet_e217614 - capella processRewardsAndPenalties 187.01 ms/op 176.70 ms/op 1.06
mainnet_e217614 - capella processRegistryUpdates 6.5930 us/op 6.9440 us/op 0.95
mainnet_e217614 - capella processSlashings 175.00 ns/op 173.00 ns/op 1.01
mainnet_e217614 - capella processEth1DataReset 174.00 ns/op 171.00 ns/op 1.02
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.1780 ms/op 5.8457 ms/op 0.71
mainnet_e217614 - capella processSlashingsReset 872.00 ns/op 897.00 ns/op 0.97
mainnet_e217614 - capella processRandaoMixesReset 1.1730 us/op 1.1650 us/op 1.01
mainnet_e217614 - capella processHistoricalRootsUpdate 174.00 ns/op 174.00 ns/op 1.00
mainnet_e217614 - capella processParticipationFlagUpdates 537.00 ns/op 538.00 ns/op 1.00
mainnet_e217614 - capella afterProcessEpoch 115.93 ms/op 117.37 ms/op 0.99
phase0 processEpoch - mainnet_e58758 280.28 ms/op 261.90 ms/op 1.07
mainnet_e58758 - phase0 beforeProcessEpoch 72.941 ms/op 72.731 ms/op 1.00
mainnet_e58758 - phase0 processJustificationAndFinalization 5.5260 us/op 6.0560 us/op 0.91
mainnet_e58758 - phase0 processRewardsAndPenalties 37.068 ms/op 42.830 ms/op 0.87
mainnet_e58758 - phase0 processRegistryUpdates 3.6780 us/op 3.1810 us/op 1.16
mainnet_e58758 - phase0 processSlashings 175.00 ns/op 176.00 ns/op 0.99
mainnet_e58758 - phase0 processEth1DataReset 170.00 ns/op 171.00 ns/op 0.99
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2874 ms/op 1.1900 ms/op 1.08
mainnet_e58758 - phase0 processSlashingsReset 935.00 ns/op 947.00 ns/op 0.99
mainnet_e58758 - phase0 processRandaoMixesReset 1.1470 us/op 1.1950 us/op 0.96
mainnet_e58758 - phase0 processHistoricalRootsUpdate 171.00 ns/op 176.00 ns/op 0.97
mainnet_e58758 - phase0 processParticipationRecordUpdates 846.00 ns/op 879.00 ns/op 0.96
mainnet_e58758 - phase0 afterProcessEpoch 52.085 ms/op 37.082 ms/op 1.40
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3717 ms/op 1.5073 ms/op 0.91
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.9896 ms/op 2.0650 ms/op 0.96
altair processInactivityUpdates - 250000 normalcase 17.371 ms/op 17.401 ms/op 1.00
altair processInactivityUpdates - 250000 worstcase 17.052 ms/op 18.492 ms/op 0.92
phase0 processRegistryUpdates - 250000 normalcase 6.6160 us/op 6.9750 us/op 0.95
phase0 processRegistryUpdates - 250000 badcase_full_deposits 268.70 us/op 264.86 us/op 1.01
phase0 processRegistryUpdates - 250000 worstcase 0.5 94.536 ms/op 110.25 ms/op 0.86
altair processRewardsAndPenalties - 250000 normalcase 28.184 ms/op 27.041 ms/op 1.04
altair processRewardsAndPenalties - 250000 worstcase 25.486 ms/op 27.558 ms/op 0.92
phase0 getAttestationDeltas - 250000 normalcase 18.372 ms/op 7.0272 ms/op 2.61
phase0 getAttestationDeltas - 250000 worstcase 6.1123 ms/op 6.7224 ms/op 0.91
phase0 processSlashings - 250000 worstcase 95.278 us/op 83.763 us/op 1.14
altair processSyncCommitteeUpdates - 250000 11.041 ms/op 11.017 ms/op 1.00
BeaconState.hashTreeRoot - No change 214.00 ns/op 210.00 ns/op 1.02
BeaconState.hashTreeRoot - 1 full validator 86.168 us/op 77.240 us/op 1.12
BeaconState.hashTreeRoot - 32 full validator 784.46 us/op 796.30 us/op 0.99
BeaconState.hashTreeRoot - 512 full validator 11.484 ms/op 8.9397 ms/op 1.28
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 107.05 us/op 93.759 us/op 1.14
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.6099 ms/op 1.3217 ms/op 1.22
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 25.785 ms/op 18.413 ms/op 1.40
BeaconState.hashTreeRoot - 1 balances 82.071 us/op 74.376 us/op 1.10
BeaconState.hashTreeRoot - 32 balances 1.0548 ms/op 802.74 us/op 1.31
BeaconState.hashTreeRoot - 512 balances 8.4096 ms/op 7.0026 ms/op 1.20
BeaconState.hashTreeRoot - 250000 balances 147.09 ms/op 140.10 ms/op 1.05
aggregationBits - 2048 els - zipIndexesInBitList 22.361 us/op 21.542 us/op 1.04
byteArrayEquals 32 53.879 ns/op 54.217 ns/op 0.99
Buffer.compare 32 17.185 ns/op 17.114 ns/op 1.00
byteArrayEquals 1024 1.6309 us/op 1.6044 us/op 1.02
Buffer.compare 1024 26.662 ns/op 24.402 ns/op 1.09
byteArrayEquals 16384 25.456 us/op 25.551 us/op 1.00
Buffer.compare 16384 202.04 ns/op 188.02 ns/op 1.07
byteArrayEquals 123687377 193.05 ms/op 192.63 ms/op 1.00
Buffer.compare 123687377 7.4192 ms/op 6.9258 ms/op 1.07
byteArrayEquals 32 - diff last byte 52.452 ns/op 52.639 ns/op 1.00
Buffer.compare 32 - diff last byte 17.312 ns/op 17.092 ns/op 1.01
byteArrayEquals 1024 - diff last byte 1.5769 us/op 1.5917 us/op 0.99
Buffer.compare 1024 - diff last byte 25.206 ns/op 25.758 ns/op 0.98
byteArrayEquals 16384 - diff last byte 25.258 us/op 25.391 us/op 0.99
Buffer.compare 16384 - diff last byte 183.99 ns/op 196.23 ns/op 0.94
byteArrayEquals 123687377 - diff last byte 191.96 ms/op 191.63 ms/op 1.00
Buffer.compare 123687377 - diff last byte 6.6512 ms/op 6.8614 ms/op 0.97
byteArrayEquals 32 - random bytes 5.0730 ns/op 5.1440 ns/op 0.99
Buffer.compare 32 - random bytes 17.301 ns/op 17.194 ns/op 1.01
byteArrayEquals 1024 - random bytes 5.0540 ns/op 5.1090 ns/op 0.99
Buffer.compare 1024 - random bytes 17.545 ns/op 17.142 ns/op 1.02
byteArrayEquals 16384 - random bytes 5.0980 ns/op 5.1180 ns/op 1.00
Buffer.compare 16384 - random bytes 17.219 ns/op 17.256 ns/op 1.00
byteArrayEquals 123687377 - random bytes 6.2700 ns/op 6.3800 ns/op 0.98
Buffer.compare 123687377 - random bytes 18.730 ns/op 18.500 ns/op 1.01
regular array get 100000 times 39.203 us/op 33.138 us/op 1.18
wrappedArray get 100000 times 41.535 us/op 33.080 us/op 1.26
arrayWithProxy get 100000 times 11.719 ms/op 12.674 ms/op 0.92
ssz.Root.equals 46.330 ns/op 46.311 ns/op 1.00
byteArrayEquals 45.560 ns/op 45.408 ns/op 1.00
Buffer.compare 10.614 ns/op 10.306 ns/op 1.03
processSlot - 1 slots 10.135 us/op 10.510 us/op 0.96
processSlot - 32 slots 1.8860 ms/op 2.1166 ms/op 0.89
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.0318 ms/op 2.9727 ms/op 1.02
getCommitteeAssignments - req 1 vs - 250000 vc 2.1181 ms/op 2.1111 ms/op 1.00
getCommitteeAssignments - req 100 vs - 250000 vc 4.1390 ms/op 4.1322 ms/op 1.00
getCommitteeAssignments - req 1000 vs - 250000 vc 4.4341 ms/op 4.3710 ms/op 1.01
findModifiedValidators - 10000 modified validators 729.29 ms/op 721.93 ms/op 1.01
findModifiedValidators - 1000 modified validators 755.01 ms/op 698.30 ms/op 1.08
findModifiedValidators - 100 modified validators 184.67 ms/op 213.26 ms/op 0.87
findModifiedValidators - 10 modified validators 130.84 ms/op 152.77 ms/op 0.86
findModifiedValidators - 1 modified validators 132.33 ms/op 246.17 ms/op 0.54
findModifiedValidators - no difference 140.16 ms/op 186.98 ms/op 0.75
compare ViewDUs 5.8407 s/op 6.2367 s/op 0.94
compare each validator Uint8Array 1.4134 s/op 1.4345 s/op 0.99
compare ViewDU to Uint8Array 926.92 ms/op 1.0342 s/op 0.90
migrate state 1000000 validators, 24 modified, 0 new 821.63 ms/op 839.52 ms/op 0.98
migrate state 1000000 validators, 1700 modified, 1000 new 1.0819 s/op 1.0281 s/op 1.05
migrate state 1000000 validators, 3400 modified, 2000 new 1.1584 s/op 1.2209 s/op 0.95
migrate state 1500000 validators, 24 modified, 0 new 783.88 ms/op 796.23 ms/op 0.98
migrate state 1500000 validators, 1700 modified, 1000 new 958.91 ms/op 1.0600 s/op 0.90
migrate state 1500000 validators, 3400 modified, 2000 new 1.1409 s/op 1.2272 s/op 0.93
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.1400 ns/op 4.1700 ns/op 0.99
state getBlockRootAtSlot - 250000 vs - 7PWei 554.82 ns/op 542.41 ns/op 1.02
naive computeProposerIndex 100000 validators 48.085 ms/op 49.752 ms/op 0.97
computeProposerIndex 100000 validators 1.4491 ms/op 1.4914 ms/op 0.97
naiveGetNextSyncCommitteeIndices 1000 validators 7.8114 s/op 7.3443 s/op 1.06
getNextSyncCommitteeIndices 1000 validators 106.99 ms/op 112.12 ms/op 0.95
naiveGetNextSyncCommitteeIndices 10000 validators 7.7253 s/op 7.0932 s/op 1.09
getNextSyncCommitteeIndices 10000 validators 106.86 ms/op 111.53 ms/op 0.96
naiveGetNextSyncCommitteeIndices 100000 validators 7.8218 s/op 7.1288 s/op 1.10
getNextSyncCommitteeIndices 100000 validators 107.08 ms/op 119.29 ms/op 0.90
naive computeShuffledIndex 100000 validators 23.126 s/op 28.606 s/op 0.81
cached computeShuffledIndex 100000 validators 534.88 ms/op 582.52 ms/op 0.92
naive computeShuffledIndex 2000000 validators 436.60 s/op 582.18 s/op 0.75
cached computeShuffledIndex 2000000 validators 28.267 s/op 86.702 s/op 0.33
computeProposers - vc 250000 611.61 us/op 756.67 us/op 0.81
computeEpochShuffling - vc 250000 41.168 ms/op 52.771 ms/op 0.78
getNextSyncCommittee - vc 250000 10.235 ms/op 14.221 ms/op 0.72
computeSigningRoot for AttestationData 19.741 us/op 55.583 us/op 0.36
hash AttestationData serialized data then Buffer.toString(base64) 1.5486 us/op 2.1429 us/op 0.72
toHexString serialized data 1.1412 us/op 2.9979 us/op 0.38
Buffer.toString(base64) 158.49 ns/op 188.81 ns/op 0.84
nodejs block root to RootHex using toHex 141.12 ns/op 171.32 ns/op 0.82
nodejs block root to RootHex using toRootHex 91.337 ns/op 88.522 ns/op 1.03
browser block root to RootHex using the deprecated toHexString 207.40 ns/op 251.09 ns/op 0.83
browser block root to RootHex using toHex 167.92 ns/op 209.41 ns/op 0.80
browser block root to RootHex using toRootHex 157.71 ns/op 175.36 ns/op 0.90

by benchmarkbot/action

@ensi321 ensi321 merged commit 87d367d into unstable Apr 4, 2025
20 checks passed
@ensi321 ensi321 deleted the nc/pectra-mainnet branch April 4, 2025 19:42
@wemeetagain
Copy link
Member

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

5 participants