Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

chore: unpin nodejs version from 22.4 #6982

Open
wants to merge 3 commits into
base: unstable
Choose a base branch
from

Conversation

nazarhussain
Copy link
Contributor

@nazarhussain nazarhussain commented Jul 27, 2024

Motivation

Use the latest stable node release.

Description

Node version 22.5.1 fixes the regressions.

Steps to test or reproduce

Run all tests.

@nazarhussain nazarhussain requested a review from a team as a code owner July 27, 2024 23:32
@nazarhussain nazarhussain self-assigned this Jul 27, 2024
Copy link

codecov bot commented Jul 27, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 49.21%. Comparing base (558ec2f) to head (4ea7376).

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6982   +/-   ##
=========================================
  Coverage     49.21%   49.21%           
=========================================
  Files           598      598           
  Lines         39803    39803           
  Branches       2102     2104    +2     
=========================================
+ Hits          19588    19589    +1     
+ Misses        20175    20174    -1     
  Partials         40       40           

Copy link
Contributor

github-actions bot commented Jul 28, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 4a71449 Previous: 558ec2f Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.9598 ms/op 1.8128 ms/op 1.63
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 89.871 us/op 48.881 us/op 1.84
BLS verify - blst 1.0020 ms/op 834.47 us/op 1.20
BLS verifyMultipleSignatures 3 - blst 1.6432 ms/op 1.2204 ms/op 1.35
BLS verifyMultipleSignatures 8 - blst 2.5599 ms/op 1.6628 ms/op 1.54
BLS verifyMultipleSignatures 32 - blst 6.5190 ms/op 4.8985 ms/op 1.33
BLS verifyMultipleSignatures 64 - blst 11.845 ms/op 8.8855 ms/op 1.33
BLS verifyMultipleSignatures 128 - blst 21.593 ms/op 17.142 ms/op 1.26
BLS deserializing 10000 signatures 808.25 ms/op 681.01 ms/op 1.19
BLS deserializing 100000 signatures 8.5400 s/op 6.9392 s/op 1.23
BLS verifyMultipleSignatures - same message - 3 - blst 1.1724 ms/op 944.15 us/op 1.24
BLS verifyMultipleSignatures - same message - 8 - blst 1.4643 ms/op 1.1259 ms/op 1.30
BLS verifyMultipleSignatures - same message - 32 - blst 2.2759 ms/op 1.8836 ms/op 1.21
BLS verifyMultipleSignatures - same message - 64 - blst 3.3982 ms/op 2.7701 ms/op 1.23
BLS verifyMultipleSignatures - same message - 128 - blst 5.9125 ms/op 4.4765 ms/op 1.32
BLS aggregatePubkeys 32 - blst 24.518 us/op 20.853 us/op 1.18
BLS aggregatePubkeys 128 - blst 88.593 us/op 72.497 us/op 1.22
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 88.685 ms/op 57.309 ms/op 1.55
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 80.070 ms/op 57.738 ms/op 1.39
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 58.448 ms/op 52.412 ms/op 1.12
getSlashingsAndExits - default max 170.74 us/op 106.19 us/op 1.61
getSlashingsAndExits - 2k 493.53 us/op 328.95 us/op 1.50
proposeBlockBody type=full, size=empty 7.4268 ms/op 7.6912 ms/op 0.97
isKnown best case - 1 super set check 608.00 ns/op 491.00 ns/op 1.24
isKnown normal case - 2 super set checks 404.00 ns/op 447.00 ns/op 0.90
isKnown worse case - 16 super set checks 365.00 ns/op 477.00 ns/op 0.77
InMemoryCheckpointStateCache - add get delete 3.8210 us/op 3.4140 us/op 1.12
updateUnfinalizedPubkeys - updating 10 pubkeys 744.50 us/op 1.4364 ms/op 0.52
updateUnfinalizedPubkeys - updating 100 pubkeys 4.9459 ms/op 3.8202 ms/op 1.29
updateUnfinalizedPubkeys - updating 1000 pubkeys 62.328 ms/op 58.064 ms/op 1.07
validate api signedAggregateAndProof - struct 1.5237 ms/op 1.5093 ms/op 1.01
validate gossip signedAggregateAndProof - struct 1.5720 ms/op 1.5061 ms/op 1.04
batch validate gossip attestation - vc 640000 - chunk 32 146.28 us/op 156.58 us/op 0.93
batch validate gossip attestation - vc 640000 - chunk 64 129.73 us/op 143.72 us/op 0.90
batch validate gossip attestation - vc 640000 - chunk 128 122.10 us/op 136.83 us/op 0.89
batch validate gossip attestation - vc 640000 - chunk 256 125.62 us/op 134.85 us/op 0.93
pickEth1Vote - no votes 1.2073 ms/op 1.3662 ms/op 0.88
pickEth1Vote - max votes 8.4998 ms/op 8.8989 ms/op 0.96
pickEth1Vote - Eth1Data hashTreeRoot value x2048 19.219 ms/op 21.928 ms/op 0.88
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 23.700 ms/op 32.162 ms/op 0.74
pickEth1Vote - Eth1Data fastSerialize value x2048 621.16 us/op 605.68 us/op 1.03
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.0564 ms/op 3.4028 ms/op 1.19
bytes32 toHexString 813.00 ns/op 649.00 ns/op 1.25
bytes32 Buffer.toString(hex) 346.00 ns/op 302.00 ns/op 1.15
bytes32 Buffer.toString(hex) from Uint8Array 557.00 ns/op 519.00 ns/op 1.07
bytes32 Buffer.toString(hex) + 0x 294.00 ns/op 289.00 ns/op 1.02
Object access 1 prop 0.21000 ns/op 0.19700 ns/op 1.07
Map access 1 prop 0.15600 ns/op 0.16300 ns/op 0.96
Object get x1000 7.1420 ns/op 7.3500 ns/op 0.97
Map get x1000 7.5040 ns/op 7.0140 ns/op 1.07
Object set x1000 57.422 ns/op 56.050 ns/op 1.02
Map set x1000 37.556 ns/op 40.295 ns/op 0.93
Return object 10000 times 0.33520 ns/op 0.35680 ns/op 0.94
Throw Error 10000 times 3.6847 us/op 4.4255 us/op 0.83
toHex 160.97 ns/op 224.74 ns/op 0.72
Buffer.from 149.52 ns/op 197.41 ns/op 0.76
shared Buffer 95.238 ns/op 113.30 ns/op 0.84
fastMsgIdFn sha256 / 200 bytes 2.6620 us/op 2.6630 us/op 1.00
fastMsgIdFn h32 xxhash / 200 bytes 313.00 ns/op 330.00 ns/op 0.95
fastMsgIdFn h64 xxhash / 200 bytes 296.00 ns/op 317.00 ns/op 0.93
fastMsgIdFn sha256 / 1000 bytes 7.8400 us/op 8.5910 us/op 0.91
fastMsgIdFn h32 xxhash / 1000 bytes 464.00 ns/op 474.00 ns/op 0.98
fastMsgIdFn h64 xxhash / 1000 bytes 375.00 ns/op 386.00 ns/op 0.97
fastMsgIdFn sha256 / 10000 bytes 69.707 us/op 74.776 us/op 0.93
fastMsgIdFn h32 xxhash / 10000 bytes 2.0930 us/op 2.0920 us/op 1.00
fastMsgIdFn h64 xxhash / 10000 bytes 1.3320 us/op 1.3560 us/op 0.98
send data - 1000 256B messages 14.234 ms/op 16.075 ms/op 0.89
send data - 1000 512B messages 18.873 ms/op 22.137 ms/op 0.85
send data - 1000 1024B messages 28.349 ms/op 35.662 ms/op 0.79
send data - 1000 1200B messages 29.023 ms/op 35.352 ms/op 0.82
send data - 1000 2048B messages 34.146 ms/op 39.380 ms/op 0.87
send data - 1000 4096B messages 35.937 ms/op 40.439 ms/op 0.89
send data - 1000 16384B messages 77.894 ms/op 100.88 ms/op 0.77
send data - 1000 65536B messages 240.81 ms/op 280.37 ms/op 0.86
enrSubnets - fastDeserialize 64 bits 1.1090 us/op 1.6020 us/op 0.69
enrSubnets - ssz BitVector 64 bits 435.00 ns/op 578.00 ns/op 0.75
enrSubnets - fastDeserialize 4 bits 190.00 ns/op 272.00 ns/op 0.70
enrSubnets - ssz BitVector 4 bits 429.00 ns/op 561.00 ns/op 0.76
prioritizePeers score -10:0 att 32-0.1 sync 2-0 187.28 us/op 222.93 us/op 0.84
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 193.04 us/op 222.18 us/op 0.87
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 317.96 us/op 439.87 us/op 0.72
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 522.64 us/op 476.52 us/op 1.10
prioritizePeers score 0:0 att 64-1 sync 4-1 608.28 us/op 1.0838 ms/op 0.56
array of 16000 items push then shift 1.7263 us/op 1.8060 us/op 0.96
LinkedList of 16000 items push then shift 7.8630 ns/op 10.100 ns/op 0.78
array of 16000 items push then pop 134.34 ns/op 199.87 ns/op 0.67
LinkedList of 16000 items push then pop 7.7200 ns/op 13.962 ns/op 0.55
array of 24000 items push then shift 2.5716 us/op 2.9061 us/op 0.88
LinkedList of 24000 items push then shift 7.9450 ns/op 13.565 ns/op 0.59
array of 24000 items push then pop 178.33 ns/op 223.89 ns/op 0.80
LinkedList of 24000 items push then pop 7.7830 ns/op 11.656 ns/op 0.67
intersect bitArray bitLen 8 6.7660 ns/op 10.494 ns/op 0.64
intersect array and set length 8 51.794 ns/op 117.79 ns/op 0.44
intersect bitArray bitLen 128 33.247 ns/op 38.758 ns/op 0.86
intersect array and set length 128 756.77 ns/op 1.0739 us/op 0.70
bitArray.getTrueBitIndexes() bitLen 128 1.6020 us/op 2.8400 us/op 0.56
bitArray.getTrueBitIndexes() bitLen 248 2.6440 us/op 5.2560 us/op 0.50
bitArray.getTrueBitIndexes() bitLen 512 5.4580 us/op 12.385 us/op 0.44
Buffer.concat 32 items 891.00 ns/op 1.2090 us/op 0.74
Uint8Array.set 32 items 1.6710 us/op 2.0270 us/op 0.82
Buffer.copy 2.8720 us/op 2.4230 us/op 1.19
Uint8Array.set - with subarray 3.2910 us/op 4.2350 us/op 0.78
Uint8Array.set - without subarray 1.7940 us/op 2.0910 us/op 0.86
getUint32 - dataview 267.00 ns/op 389.00 ns/op 0.69
getUint32 - manual 179.00 ns/op 346.00 ns/op 0.52
Set add up to 64 items then delete first 2.6366 us/op 4.2833 us/op 0.62
OrderedSet add up to 64 items then delete first 3.5648 us/op 6.6868 us/op 0.53
Set add up to 64 items then delete last 2.9468 us/op 4.2365 us/op 0.70
OrderedSet add up to 64 items then delete last 4.0949 us/op 6.4645 us/op 0.63
Set add up to 64 items then delete middle 2.7684 us/op 4.2279 us/op 0.65
OrderedSet add up to 64 items then delete middle 6.1190 us/op 7.8873 us/op 0.78
Set add up to 128 items then delete first 6.0968 us/op 8.0824 us/op 0.75
OrderedSet add up to 128 items then delete first 8.8425 us/op 13.715 us/op 0.64
Set add up to 128 items then delete last 5.9406 us/op 8.2653 us/op 0.72
OrderedSet add up to 128 items then delete last 8.2660 us/op 12.790 us/op 0.65
Set add up to 128 items then delete middle 5.5131 us/op 8.6188 us/op 0.64
OrderedSet add up to 128 items then delete middle 14.668 us/op 20.475 us/op 0.72
Set add up to 256 items then delete first 12.335 us/op 16.423 us/op 0.75
OrderedSet add up to 256 items then delete first 20.006 us/op 26.977 us/op 0.74
Set add up to 256 items then delete last 12.295 us/op 17.403 us/op 0.71
OrderedSet add up to 256 items then delete last 18.864 us/op 27.114 us/op 0.70
Set add up to 256 items then delete middle 11.439 us/op 16.606 us/op 0.69
OrderedSet add up to 256 items then delete middle 47.714 us/op 55.088 us/op 0.87
transfer serialized Status (84 B) 1.6280 us/op 1.8380 us/op 0.89
copy serialized Status (84 B) 1.3890 us/op 1.6270 us/op 0.85
transfer serialized SignedVoluntaryExit (112 B) 1.7940 us/op 1.9820 us/op 0.91
copy serialized SignedVoluntaryExit (112 B) 1.3620 us/op 1.6490 us/op 0.83
transfer serialized ProposerSlashing (416 B) 1.8380 us/op 2.5680 us/op 0.72
copy serialized ProposerSlashing (416 B) 1.8250 us/op 2.5680 us/op 0.71
transfer serialized Attestation (485 B) 1.8110 us/op 2.2250 us/op 0.81
copy serialized Attestation (485 B) 1.8250 us/op 2.2090 us/op 0.83
transfer serialized AttesterSlashing (33232 B) 2.6750 us/op 2.4770 us/op 1.08
copy serialized AttesterSlashing (33232 B) 7.9740 us/op 14.131 us/op 0.56
transfer serialized Small SignedBeaconBlock (128000 B) 3.4280 us/op 3.6240 us/op 0.95
copy serialized Small SignedBeaconBlock (128000 B) 25.438 us/op 48.689 us/op 0.52
transfer serialized Avg SignedBeaconBlock (200000 B) 4.0220 us/op 4.7570 us/op 0.85
copy serialized Avg SignedBeaconBlock (200000 B) 30.850 us/op 47.247 us/op 0.65
transfer serialized BlobsSidecar (524380 B) 3.7740 us/op 4.6720 us/op 0.81
copy serialized BlobsSidecar (524380 B) 88.784 us/op 182.30 us/op 0.49
transfer serialized Big SignedBeaconBlock (1000000 B) 4.0130 us/op 12.202 us/op 0.33
copy serialized Big SignedBeaconBlock (1000000 B) 172.43 us/op 322.74 us/op 0.53
pass gossip attestations to forkchoice per slot 2.9363 ms/op 3.7746 ms/op 0.78
forkChoice updateHead vc 100000 bc 64 eq 0 471.84 us/op 658.45 us/op 0.72
forkChoice updateHead vc 600000 bc 64 eq 0 3.2605 ms/op 4.6199 ms/op 0.71
forkChoice updateHead vc 1000000 bc 64 eq 0 6.0374 ms/op 7.3518 ms/op 0.82
forkChoice updateHead vc 600000 bc 320 eq 0 3.2850 ms/op 4.2606 ms/op 0.77
forkChoice updateHead vc 600000 bc 1200 eq 0 3.1344 ms/op 5.0303 ms/op 0.62
forkChoice updateHead vc 600000 bc 7200 eq 0 4.5269 ms/op 5.8325 ms/op 0.78
forkChoice updateHead vc 600000 bc 64 eq 1000 10.712 ms/op 11.727 ms/op 0.91
forkChoice updateHead vc 600000 bc 64 eq 10000 11.048 ms/op 12.161 ms/op 0.91
forkChoice updateHead vc 600000 bc 64 eq 300000 19.312 ms/op 51.362 ms/op 0.38
computeDeltas 500000 validators 300 proto nodes 4.2947 ms/op 5.7635 ms/op 0.75
computeDeltas 500000 validators 1200 proto nodes 4.1813 ms/op 4.5034 ms/op 0.93
computeDeltas 500000 validators 7200 proto nodes 4.3889 ms/op 4.3393 ms/op 1.01
computeDeltas 750000 validators 300 proto nodes 6.7340 ms/op 6.3750 ms/op 1.06
computeDeltas 750000 validators 1200 proto nodes 6.9126 ms/op 6.2290 ms/op 1.11
computeDeltas 750000 validators 7200 proto nodes 7.0398 ms/op 6.2800 ms/op 1.12
computeDeltas 1400000 validators 300 proto nodes 13.553 ms/op 11.346 ms/op 1.19
computeDeltas 1400000 validators 1200 proto nodes 12.266 ms/op 11.980 ms/op 1.02
computeDeltas 1400000 validators 7200 proto nodes 12.349 ms/op 11.762 ms/op 1.05
computeDeltas 2100000 validators 300 proto nodes 19.241 ms/op 16.862 ms/op 1.14
computeDeltas 2100000 validators 1200 proto nodes 19.192 ms/op 17.571 ms/op 1.09
computeDeltas 2100000 validators 7200 proto nodes 20.085 ms/op 17.535 ms/op 1.15
altair processAttestation - 250000 vs - 7PWei normalcase 1.9560 ms/op 2.0283 ms/op 0.96
altair processAttestation - 250000 vs - 7PWei worstcase 3.4215 ms/op 3.9519 ms/op 0.87
altair processAttestation - setStatus - 1/6 committees join 127.92 us/op 106.39 us/op 1.20
altair processAttestation - setStatus - 1/3 committees join 247.05 us/op 180.57 us/op 1.37
altair processAttestation - setStatus - 1/2 committees join 356.22 us/op 255.89 us/op 1.39
altair processAttestation - setStatus - 2/3 committees join 460.71 us/op 363.91 us/op 1.27
altair processAttestation - setStatus - 4/5 committees join 598.27 us/op 492.84 us/op 1.21
altair processAttestation - setStatus - 100% committees join 703.39 us/op 607.37 us/op 1.16
altair processBlock - 250000 vs - 7PWei normalcase 6.3601 ms/op 8.5337 ms/op 0.75
altair processBlock - 250000 vs - 7PWei normalcase hashState 26.936 ms/op 28.307 ms/op 0.95
altair processBlock - 250000 vs - 7PWei worstcase 37.962 ms/op 42.287 ms/op 0.90
altair processBlock - 250000 vs - 7PWei worstcase hashState 71.125 ms/op 77.951 ms/op 0.91
phase0 processBlock - 250000 vs - 7PWei normalcase 1.9868 ms/op 2.1719 ms/op 0.91
phase0 processBlock - 250000 vs - 7PWei worstcase 21.000 ms/op 23.994 ms/op 0.88
altair processEth1Data - 250000 vs - 7PWei normalcase 354.34 us/op 509.83 us/op 0.70
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.1750 us/op 7.7840 us/op 0.79
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 60.124 us/op 48.967 us/op 1.23
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 12.646 us/op 11.586 us/op 1.09
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 9.3480 us/op 8.5950 us/op 1.09
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 143.33 us/op 171.23 us/op 0.84
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.0511 ms/op 1.2241 ms/op 0.86
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.6283 ms/op 1.6217 ms/op 1.00
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.7515 ms/op 1.6701 ms/op 1.05
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.1537 ms/op 4.1393 ms/op 1.00
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.5741 ms/op 1.6666 ms/op 0.94
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.9602 ms/op 4.2471 ms/op 0.93
Tree 40 250000 create 250.51 ms/op 272.95 ms/op 0.92
Tree 40 250000 get(125000) 161.37 ns/op 163.93 ns/op 0.98
Tree 40 250000 set(125000) 707.91 ns/op 747.66 ns/op 0.95
Tree 40 250000 toArray() 21.430 ms/op 22.922 ms/op 0.93
Tree 40 250000 iterate all - toArray() + loop 21.258 ms/op 23.477 ms/op 0.91
Tree 40 250000 iterate all - get(i) 57.752 ms/op 65.546 ms/op 0.88
Array 250000 create 2.8495 ms/op 4.0295 ms/op 0.71
Array 250000 clone - spread 1.3480 ms/op 1.8829 ms/op 0.72
Array 250000 get(125000) 0.40800 ns/op 0.48300 ns/op 0.84
Array 250000 set(125000) 0.43200 ns/op 0.49400 ns/op 0.87
Array 250000 iterate all - loop 109.99 us/op 117.91 us/op 0.93
phase0 afterProcessEpoch - 250000 vs - 7PWei 52.896 ms/op 56.505 ms/op 0.94
Array.fill - length 1000000 3.6636 ms/op 4.5277 ms/op 0.81
Array push - length 1000000 24.025 ms/op 19.962 ms/op 1.20
Array.get 0.28651 ns/op 0.30565 ns/op 0.94
Uint8Array.get 0.45354 ns/op 0.47308 ns/op 0.96
phase0 beforeProcessEpoch - 250000 vs - 7PWei 16.390 ms/op 21.472 ms/op 0.76
altair processEpoch - mainnet_e81889 276.48 ms/op 336.82 ms/op 0.82
mainnet_e81889 - altair beforeProcessEpoch 18.513 ms/op 23.500 ms/op 0.79
mainnet_e81889 - altair processJustificationAndFinalization 14.476 us/op 18.573 us/op 0.78
mainnet_e81889 - altair processInactivityUpdates 4.9598 ms/op 7.2852 ms/op 0.68
mainnet_e81889 - altair processRewardsAndPenalties 49.409 ms/op 43.194 ms/op 1.14
mainnet_e81889 - altair processRegistryUpdates 2.4240 us/op 2.5270 us/op 0.96
mainnet_e81889 - altair processSlashings 423.00 ns/op 516.00 ns/op 0.82
mainnet_e81889 - altair processEth1DataReset 485.00 ns/op 548.00 ns/op 0.89
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.3652 ms/op 1.5290 ms/op 0.89
mainnet_e81889 - altair processSlashingsReset 3.2180 us/op 5.5320 us/op 0.58
mainnet_e81889 - altair processRandaoMixesReset 4.3220 us/op 11.046 us/op 0.39
mainnet_e81889 - altair processHistoricalRootsUpdate 568.00 ns/op 755.00 ns/op 0.75
mainnet_e81889 - altair processParticipationFlagUpdates 1.5620 us/op 3.9910 us/op 0.39
mainnet_e81889 - altair processSyncCommitteeUpdates 443.00 ns/op 836.00 ns/op 0.53
mainnet_e81889 - altair afterProcessEpoch 50.076 ms/op 54.902 ms/op 0.91
capella processEpoch - mainnet_e217614 1.0519 s/op 1.1815 s/op 0.89
mainnet_e217614 - capella beforeProcessEpoch 69.520 ms/op 81.092 ms/op 0.86
mainnet_e217614 - capella processJustificationAndFinalization 14.800 us/op 19.352 us/op 0.76
mainnet_e217614 - capella processInactivityUpdates 18.074 ms/op 19.617 ms/op 0.92
mainnet_e217614 - capella processRewardsAndPenalties 212.26 ms/op 255.82 ms/op 0.83
mainnet_e217614 - capella processRegistryUpdates 16.803 us/op 22.312 us/op 0.75
mainnet_e217614 - capella processSlashings 516.00 ns/op 1.1270 us/op 0.46
mainnet_e217614 - capella processEth1DataReset 493.00 ns/op 719.00 ns/op 0.69
mainnet_e217614 - capella processEffectiveBalanceUpdates 10.979 ms/op 18.669 ms/op 0.59
mainnet_e217614 - capella processSlashingsReset 3.5860 us/op 6.0880 us/op 0.59
mainnet_e217614 - capella processRandaoMixesReset 6.6940 us/op 12.248 us/op 0.55
mainnet_e217614 - capella processHistoricalRootsUpdate 678.00 ns/op 1.1470 us/op 0.59
mainnet_e217614 - capella processParticipationFlagUpdates 1.8120 us/op 3.5780 us/op 0.51
mainnet_e217614 - capella afterProcessEpoch 124.57 ms/op 131.83 ms/op 0.94
phase0 processEpoch - mainnet_e58758 337.56 ms/op 367.03 ms/op 0.92
mainnet_e58758 - phase0 beforeProcessEpoch 88.538 ms/op 102.91 ms/op 0.86
mainnet_e58758 - phase0 processJustificationAndFinalization 16.119 us/op 22.999 us/op 0.70
mainnet_e58758 - phase0 processRewardsAndPenalties 23.834 ms/op 30.964 ms/op 0.77
mainnet_e58758 - phase0 processRegistryUpdates 9.4570 us/op 12.023 us/op 0.79
mainnet_e58758 - phase0 processSlashings 475.00 ns/op 600.00 ns/op 0.79
mainnet_e58758 - phase0 processEth1DataReset 723.00 ns/op 1.4260 us/op 0.51
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1878 ms/op 1.4508 ms/op 0.82
mainnet_e58758 - phase0 processSlashingsReset 2.7530 us/op 5.7440 us/op 0.48
mainnet_e58758 - phase0 processRandaoMixesReset 4.8810 us/op 8.4070 us/op 0.58
mainnet_e58758 - phase0 processHistoricalRootsUpdate 607.00 ns/op 1.1300 us/op 0.54
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.8610 us/op 6.4070 us/op 0.60
mainnet_e58758 - phase0 afterProcessEpoch 41.292 ms/op 49.570 ms/op 0.83
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3088 ms/op 1.7527 ms/op 0.75
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.0321 ms/op 2.2092 ms/op 0.92
altair processInactivityUpdates - 250000 normalcase 15.083 ms/op 19.631 ms/op 0.77
altair processInactivityUpdates - 250000 worstcase 14.934 ms/op 20.415 ms/op 0.73
phase0 processRegistryUpdates - 250000 normalcase 8.1520 us/op 12.897 us/op 0.63
phase0 processRegistryUpdates - 250000 badcase_full_deposits 257.40 us/op 356.66 us/op 0.72
phase0 processRegistryUpdates - 250000 worstcase 0.5 110.75 ms/op 122.76 ms/op 0.90
altair processRewardsAndPenalties - 250000 normalcase 38.093 ms/op 44.413 ms/op 0.86
altair processRewardsAndPenalties - 250000 worstcase 37.960 ms/op 51.845 ms/op 0.73
phase0 getAttestationDeltas - 250000 normalcase 7.5329 ms/op 9.8066 ms/op 0.77
phase0 getAttestationDeltas - 250000 worstcase 6.9833 ms/op 10.437 ms/op 0.67
phase0 processSlashings - 250000 worstcase 105.15 us/op 121.22 us/op 0.87
altair processSyncCommitteeUpdates - 250000 124.59 ms/op 178.84 ms/op 0.70
BeaconState.hashTreeRoot - No change 256.00 ns/op 401.00 ns/op 0.64
BeaconState.hashTreeRoot - 1 full validator 111.42 us/op 136.48 us/op 0.82
BeaconState.hashTreeRoot - 32 full validator 1.1846 ms/op 1.2506 ms/op 0.95
BeaconState.hashTreeRoot - 512 full validator 10.120 ms/op 12.324 ms/op 0.82
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 127.48 us/op 151.26 us/op 0.84
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.7516 ms/op 1.7160 ms/op 1.02
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 20.735 ms/op 22.434 ms/op 0.92
BeaconState.hashTreeRoot - 1 balances 94.619 us/op 107.03 us/op 0.88
BeaconState.hashTreeRoot - 32 balances 814.31 us/op 1.3836 ms/op 0.59
BeaconState.hashTreeRoot - 512 balances 7.3395 ms/op 9.8484 ms/op 0.75
BeaconState.hashTreeRoot - 250000 balances 168.13 ms/op 161.79 ms/op 1.04
aggregationBits - 2048 els - zipIndexesInBitList 24.295 us/op 32.695 us/op 0.74
byteArrayEquals 32 54.868 ns/op 58.961 ns/op 0.93
Buffer.compare 32 17.645 ns/op 19.646 ns/op 0.90
byteArrayEquals 1024 1.6196 us/op 1.7849 us/op 0.91
Buffer.compare 1024 25.013 ns/op 27.787 ns/op 0.90
byteArrayEquals 16384 25.820 us/op 27.154 us/op 0.95
Buffer.compare 16384 209.99 ns/op 216.25 ns/op 0.97
byteArrayEquals 123687377 194.03 ms/op 195.98 ms/op 0.99
Buffer.compare 123687377 7.8313 ms/op 7.8371 ms/op 1.00
byteArrayEquals 32 - diff last byte 54.025 ns/op 53.895 ns/op 1.00
Buffer.compare 32 - diff last byte 17.624 ns/op 17.629 ns/op 1.00
byteArrayEquals 1024 - diff last byte 1.6410 us/op 1.6263 us/op 1.01
Buffer.compare 1024 - diff last byte 25.926 ns/op 26.045 ns/op 1.00
byteArrayEquals 16384 - diff last byte 25.809 us/op 25.868 us/op 1.00
Buffer.compare 16384 - diff last byte 196.04 ns/op 185.91 ns/op 1.05
byteArrayEquals 123687377 - diff last byte 201.91 ms/op 194.06 ms/op 1.04
Buffer.compare 123687377 - diff last byte 9.9956 ms/op 6.8421 ms/op 1.46
byteArrayEquals 32 - random bytes 5.6650 ns/op 5.3570 ns/op 1.06
Buffer.compare 32 - random bytes 19.113 ns/op 17.470 ns/op 1.09
byteArrayEquals 1024 - random bytes 5.8440 ns/op 5.5210 ns/op 1.06
Buffer.compare 1024 - random bytes 18.448 ns/op 17.806 ns/op 1.04
byteArrayEquals 16384 - random bytes 5.6570 ns/op 5.3590 ns/op 1.06
Buffer.compare 16384 - random bytes 20.068 ns/op 17.769 ns/op 1.13
byteArrayEquals 123687377 - random bytes 7.4200 ns/op 6.7500 ns/op 1.10
Buffer.compare 123687377 - random bytes 21.130 ns/op 19.060 ns/op 1.11
regular array get 100000 times 38.471 us/op 45.107 us/op 0.85
wrappedArray get 100000 times 48.121 us/op 33.966 us/op 1.42
arrayWithProxy get 100000 times 13.700 ms/op 15.348 ms/op 0.89
ssz.Root.equals 51.074 ns/op 48.114 ns/op 1.06
byteArrayEquals 49.739 ns/op 46.071 ns/op 1.08
Buffer.compare 14.618 ns/op 10.431 ns/op 1.40
processSlot - 1 slots 18.997 us/op 16.621 us/op 1.14
processSlot - 32 slots 4.1061 ms/op 3.0612 ms/op 1.34
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 40.442 ms/op 38.334 ms/op 1.05
getCommitteeAssignments - req 1 vs - 250000 vc 2.2002 ms/op 2.2818 ms/op 0.96
getCommitteeAssignments - req 100 vs - 250000 vc 4.2593 ms/op 4.3758 ms/op 0.97
getCommitteeAssignments - req 1000 vs - 250000 vc 4.5412 ms/op 4.6412 ms/op 0.98
findModifiedValidators - 10000 modified validators 256.93 ms/op 287.27 ms/op 0.89
findModifiedValidators - 1000 modified validators 188.31 ms/op 204.34 ms/op 0.92
findModifiedValidators - 100 modified validators 222.50 ms/op 205.72 ms/op 1.08
findModifiedValidators - 10 modified validators 194.82 ms/op 215.93 ms/op 0.90
findModifiedValidators - 1 modified validators 192.12 ms/op 195.48 ms/op 0.98
findModifiedValidators - no difference 162.15 ms/op 198.21 ms/op 0.82
compare ViewDUs 3.0047 s/op 3.4022 s/op 0.88
compare each validator Uint8Array 1.5871 s/op 1.5343 s/op 1.03
compare ViewDU to Uint8Array 895.44 ms/op 1.2391 s/op 0.72
migrate state 1000000 validators, 24 modified, 0 new 715.07 ms/op 760.93 ms/op 0.94
migrate state 1000000 validators, 1700 modified, 1000 new 969.92 ms/op 952.66 ms/op 1.02
migrate state 1000000 validators, 3400 modified, 2000 new 1.1741 s/op 1.1375 s/op 1.03
migrate state 1500000 validators, 24 modified, 0 new 880.68 ms/op 707.30 ms/op 1.25
migrate state 1500000 validators, 1700 modified, 1000 new 1.1065 s/op 862.99 ms/op 1.28
migrate state 1500000 validators, 3400 modified, 2000 new 1.3841 s/op 981.79 ms/op 1.41
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.6300 ns/op 4.4300 ns/op 1.27
state getBlockRootAtSlot - 250000 vs - 7PWei 683.77 ns/op 586.48 ns/op 1.17
computeProposers - vc 250000 8.7521 ms/op 7.1967 ms/op 1.22
computeEpochShuffling - vc 250000 45.175 ms/op 42.083 ms/op 1.07
getNextSyncCommittee - vc 250000 174.86 ms/op 123.04 ms/op 1.42
computeSigningRoot for AttestationData 28.666 us/op 23.016 us/op 1.25
hash AttestationData serialized data then Buffer.toString(base64) 2.3908 us/op 1.5359 us/op 1.56
toHexString serialized data 1.9361 us/op 871.52 ns/op 2.22
Buffer.toString(base64) 333.35 ns/op 171.00 ns/op 1.95
nodejs block root to RootHex using toHex 191.26 ns/op 164.45 ns/op 1.16
nodejs block root to RootHex using toRootHex 113.87 ns/op 92.257 ns/op 1.23
browser block root to RootHex using the deprecated toHexString 615.49 ns/op 225.50 ns/op 2.73
browser block root to RootHex using toHex 502.43 ns/op 186.09 ns/op 2.70
browser block root to RootHex using toRootHex 219.03 ns/op 160.59 ns/op 1.36

by benchmarkbot/action

Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

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

Is there a good reason to update to 22.5 now? I would be in favor of keeping 22.4 until node 22 becomes the stable release.

Based on the diagram it should be in October which is not too far out
image

@wemeetagain
Copy link
Member

moving to draft as it seems we have some consensus to wait until 22 becomes active LTS

@wemeetagain wemeetagain marked this pull request as draft August 1, 2024 16:39
@nazarhussain
Copy link
Contributor Author

moving to draft as it seems we have some consensus to wait until 22 becomes active LTS

@wemeetagain Previously we didn't had precedence to only use LTS versions, rather latest version. Even current codebase is still locked upto 22.4. So either we change it and completely strict 22 or use latest version of 22.

This PR was reverting an earlier PR because 22.5 introduced a regression, but 22.5.1 fixed it. Don't see any reason to keep restricting upto 22.4.

@nflaig
Copy link
Member

nflaig commented Aug 2, 2024

This PR was reverting an earlier PR because 22.5 introduced a regression, but 22.5.1 fixed it. Don't see any reason to keep restricting upto 22.4.

I personally don't have confidence in nodejs release process for current, apparently their CI had errors but still passed. The LTS release runs much more tests, does a whole range of ecosystem smoke tests, and is a whole less likely to break.

Having to debug strange node issue is not fun..and we have better things to do

@wemeetagain
Copy link
Member

Previously we didn't had precedence to only use LTS versions, rather latest version.

Yes, I think our experience the other day, where we had to pin the version, changed my mind a little bit.

It seems that the nodejs folks treat the new version with more leeway to be actually unstable and breaking before it becomes "current". Once it becomes "current", their standards for something breaking become much higher.

I tend to agree with Nico that we don't really care to have our daily progress possibly stopped again by a breaking version, and we can mitigate that by pinning a specific version until it becomes "current" LTS.

@nflaig nflaig marked this pull request as ready for review October 30, 2024 08:08
Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

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

@nazarhussain
Copy link
Contributor Author

@wemeetagain Need to update the required check names to align with node version.

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.

3 participants