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

Merged
merged 4 commits into from
Dec 4, 2024
Merged

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 48.50%. Comparing base (376fe2a) to head (7c92889).
Report is 3 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #6982      +/-   ##
============================================
- Coverage     48.51%   48.50%   -0.01%     
============================================
  Files           600      600              
  Lines         40142    40150       +8     
  Branches       2057     2058       +1     
============================================
  Hits          19475    19475              
- Misses        20629    20637       +8     
  Partials         38       38              

Copy link
Contributor

github-actions bot commented Jul 28, 2024

⚠️ Performance Alert ⚠️

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

Benchmark suite Current: 10dc828 Previous: dbe2188 Ratio
BLS verifyMultipleSignatures 3 - blst 3.8607 ms/op 1.1742 ms/op 3.29
BLS verifyMultipleSignatures 8 - blst 6.0941 ms/op 1.6776 ms/op 3.63
BLS verifyMultipleSignatures 32 - blst 16.336 ms/op 4.7729 ms/op 3.42
BLS verifyMultipleSignatures 64 - blst 30.863 ms/op 8.8500 ms/op 3.49
BLS verifyMultipleSignatures 128 - blst 64.545 ms/op 16.884 ms/op 3.82
altair processAttestation - setStatus - 1/3 committees join 726.72 us/op 179.53 us/op 4.05
altair processAttestation - setStatus - 4/5 committees join 1.4822 ms/op 483.83 us/op 3.06
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 17.497 us/op 5.3220 us/op 3.29
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 4.5070 ms/op 1.1503 ms/op 3.92
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 4.9435 ms/op 1.4752 ms/op 3.35
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 11.588 ms/op 3.5677 ms/op 3.25
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 11.410 ms/op 3.7793 ms/op 3.02
Array.get 0.91314 ns/op 0.28480 ns/op 3.21
Uint8Array.get 1.4727 ns/op 0.43683 ns/op 3.37
Buffer.compare 1024 82.768 ns/op 26.543 ns/op 3.12
migrate state 1500000 validators, 1700 modified, 1000 new 3.3304 s/op 963.21 ms/op 3.46
migrate state 1500000 validators, 3400 modified, 2000 new 3.7472 s/op 1.0910 s/op 3.43
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 20.590 ns/op 4.1900 ns/op 4.91
state getBlockRootAtSlot - 250000 vs - 7PWei 2.2685 us/op 609.49 ns/op 3.72
computeProposers - vc 250000 27.641 ms/op 7.3949 ms/op 3.74
computeEpochShuffling - vc 250000 172.67 ms/op 42.436 ms/op 4.07
getNextSyncCommittee - vc 250000 474.39 ms/op 121.96 ms/op 3.89
Full benchmark results
Benchmark suite Current: 10dc828 Previous: dbe2188 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 4.5204 ms/op 1.8322 ms/op 2.47
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 137.89 us/op 46.995 us/op 2.93
BLS verify - blst 1.9953 ms/op 772.06 us/op 2.58
BLS verifyMultipleSignatures 3 - blst 3.8607 ms/op 1.1742 ms/op 3.29
BLS verifyMultipleSignatures 8 - blst 6.0941 ms/op 1.6776 ms/op 3.63
BLS verifyMultipleSignatures 32 - blst 16.336 ms/op 4.7729 ms/op 3.42
BLS verifyMultipleSignatures 64 - blst 30.863 ms/op 8.8500 ms/op 3.49
BLS verifyMultipleSignatures 128 - blst 64.545 ms/op 16.884 ms/op 3.82
BLS deserializing 10000 signatures 1.1931 s/op 680.19 ms/op 1.75
BLS deserializing 100000 signatures 14.563 s/op 6.8201 s/op 2.14
BLS verifyMultipleSignatures - same message - 3 - blst 1.4455 ms/op 916.68 us/op 1.58
BLS verifyMultipleSignatures - same message - 8 - blst 1.5471 ms/op 1.0632 ms/op 1.46
BLS verifyMultipleSignatures - same message - 32 - blst 2.4650 ms/op 1.7258 ms/op 1.43
BLS verifyMultipleSignatures - same message - 64 - blst 3.8503 ms/op 2.6106 ms/op 1.47
BLS verifyMultipleSignatures - same message - 128 - blst 9.6206 ms/op 4.3830 ms/op 2.19
BLS aggregatePubkeys 32 - blst 27.364 us/op 19.680 us/op 1.39
BLS aggregatePubkeys 128 - blst 128.59 us/op 70.171 us/op 1.83
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 98.144 ms/op 52.453 ms/op 1.87
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 76.447 ms/op 47.252 ms/op 1.62
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 59.431 ms/op 45.001 ms/op 1.32
getSlashingsAndExits - default max 156.20 us/op 118.37 us/op 1.32
getSlashingsAndExits - 2k 653.05 us/op 291.17 us/op 2.24
proposeBlockBody type=full, size=empty 8.5139 ms/op 6.2029 ms/op 1.37
isKnown best case - 1 super set check 446.00 ns/op 276.00 ns/op 1.62
isKnown normal case - 2 super set checks 613.00 ns/op 284.00 ns/op 2.16
isKnown worse case - 16 super set checks 608.00 ns/op 277.00 ns/op 2.19
InMemoryCheckpointStateCache - add get delete 6.5300 us/op 2.6870 us/op 2.43
validate api signedAggregateAndProof - struct 2.2040 ms/op 1.4002 ms/op 1.57
validate gossip signedAggregateAndProof - struct 2.5959 ms/op 1.3665 ms/op 1.90
batch validate gossip attestation - vc 640000 - chunk 32 189.45 us/op 126.08 us/op 1.50
batch validate gossip attestation - vc 640000 - chunk 64 153.57 us/op 110.63 us/op 1.39
batch validate gossip attestation - vc 640000 - chunk 128 142.28 us/op 103.28 us/op 1.38
batch validate gossip attestation - vc 640000 - chunk 256 166.59 us/op 101.44 us/op 1.64
pickEth1Vote - no votes 1.8105 ms/op 1.0971 ms/op 1.65
pickEth1Vote - max votes 9.7480 ms/op 6.3951 ms/op 1.52
pickEth1Vote - Eth1Data hashTreeRoot value x2048 20.991 ms/op 14.029 ms/op 1.50
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 26.693 ms/op 19.480 ms/op 1.37
pickEth1Vote - Eth1Data fastSerialize value x2048 803.43 us/op 457.20 us/op 1.76
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.9406 ms/op 2.7833 ms/op 2.13
bytes32 toHexString 616.00 ns/op 425.00 ns/op 1.45
bytes32 Buffer.toString(hex) 306.00 ns/op 250.00 ns/op 1.22
bytes32 Buffer.toString(hex) from Uint8Array 564.00 ns/op 353.00 ns/op 1.60
bytes32 Buffer.toString(hex) + 0x 620.00 ns/op 252.00 ns/op 2.46
Object access 1 prop 0.38500 ns/op 0.13900 ns/op 2.77
Map access 1 prop 0.28300 ns/op 0.13000 ns/op 2.18
Object get x1000 13.061 ns/op 5.8700 ns/op 2.23
Map get x1000 12.725 ns/op 6.3700 ns/op 2.00
Object set x1000 51.043 ns/op 32.818 ns/op 1.56
Map set x1000 44.300 ns/op 22.273 ns/op 1.99
Return object 10000 times 0.43710 ns/op 0.28950 ns/op 1.51
Throw Error 10000 times 5.8446 us/op 3.3642 us/op 1.74
toHex 260.54 ns/op 141.23 ns/op 1.84
Buffer.from 273.06 ns/op 131.59 ns/op 2.08
shared Buffer 130.68 ns/op 83.393 ns/op 1.57
fastMsgIdFn sha256 / 200 bytes 3.2470 us/op 2.2470 us/op 1.45
fastMsgIdFn h32 xxhash / 200 bytes 482.00 ns/op 228.00 ns/op 2.11
fastMsgIdFn h64 xxhash / 200 bytes 428.00 ns/op 262.00 ns/op 1.63
fastMsgIdFn sha256 / 1000 bytes 17.203 us/op 7.2610 us/op 2.37
fastMsgIdFn h32 xxhash / 1000 bytes 663.00 ns/op 359.00 ns/op 1.85
fastMsgIdFn h64 xxhash / 1000 bytes 525.00 ns/op 352.00 ns/op 1.49
fastMsgIdFn sha256 / 10000 bytes 119.53 us/op 64.364 us/op 1.86
fastMsgIdFn h32 xxhash / 10000 bytes 3.2070 us/op 1.8110 us/op 1.77
fastMsgIdFn h64 xxhash / 10000 bytes 2.2660 us/op 1.1900 us/op 1.90
send data - 1000 256B messages 28.744 ms/op 11.704 ms/op 2.46
send data - 1000 512B messages 35.405 ms/op 16.183 ms/op 2.19
send data - 1000 1024B messages 50.861 ms/op 25.419 ms/op 2.00
send data - 1000 1200B messages 37.752 ms/op 26.619 ms/op 1.42
send data - 1000 2048B messages 58.810 ms/op 32.469 ms/op 1.81
send data - 1000 4096B messages 54.793 ms/op 30.438 ms/op 1.80
send data - 1000 16384B messages 132.68 ms/op 72.442 ms/op 1.83
send data - 1000 65536B messages 309.91 ms/op 223.15 ms/op 1.39
enrSubnets - fastDeserialize 64 bits 1.9120 us/op 1.0880 us/op 1.76
enrSubnets - ssz BitVector 64 bits 901.00 ns/op 353.00 ns/op 2.55
enrSubnets - fastDeserialize 4 bits 266.00 ns/op 157.00 ns/op 1.69
enrSubnets - ssz BitVector 4 bits 586.00 ns/op 352.00 ns/op 1.66
prioritizePeers score -10:0 att 32-0.1 sync 2-0 216.87 us/op 143.87 us/op 1.51
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 258.49 us/op 178.80 us/op 1.45
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 418.46 us/op 228.80 us/op 1.83
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 641.54 us/op 402.62 us/op 1.59
prioritizePeers score 0:0 att 64-1 sync 4-1 937.46 us/op 633.65 us/op 1.48
array of 16000 items push then shift 2.4252 us/op 1.6431 us/op 1.48
LinkedList of 16000 items push then shift 9.2850 ns/op 7.5660 ns/op 1.23
array of 16000 items push then pop 147.25 ns/op 106.92 ns/op 1.38
LinkedList of 16000 items push then pop 8.9150 ns/op 7.2650 ns/op 1.23
array of 24000 items push then shift 3.0981 us/op 2.4117 us/op 1.28
LinkedList of 24000 items push then shift 9.3940 ns/op 7.0230 ns/op 1.34
array of 24000 items push then pop 238.56 ns/op 128.66 ns/op 1.85
LinkedList of 24000 items push then pop 9.0170 ns/op 6.9570 ns/op 1.30
intersect bitArray bitLen 8 7.9570 ns/op 6.4330 ns/op 1.24
intersect array and set length 8 54.595 ns/op 44.784 ns/op 1.22
intersect bitArray bitLen 128 36.919 ns/op 29.294 ns/op 1.26
intersect array and set length 128 833.20 ns/op 665.09 ns/op 1.25
bitArray.getTrueBitIndexes() bitLen 128 1.9810 us/op 2.1530 us/op 0.92
bitArray.getTrueBitIndexes() bitLen 248 2.9460 us/op 3.6470 us/op 0.81
bitArray.getTrueBitIndexes() bitLen 512 5.6380 us/op 7.6640 us/op 0.74
Buffer.concat 32 items 946.00 ns/op 957.00 ns/op 0.99
Uint8Array.set 32 items 1.6310 us/op 1.8590 us/op 0.88
Buffer.copy 2.9330 us/op 2.6470 us/op 1.11
Uint8Array.set - with subarray 2.4730 us/op 3.0760 us/op 0.80
Uint8Array.set - without subarray 1.6830 us/op 1.8930 us/op 0.89
getUint32 - dataview 311.00 ns/op 247.00 ns/op 1.26
getUint32 - manual 207.00 ns/op 155.00 ns/op 1.34
Set add up to 64 items then delete first 2.3727 us/op 2.2020 us/op 1.08
OrderedSet add up to 64 items then delete first 3.5338 us/op 3.2599 us/op 1.08
Set add up to 64 items then delete last 2.7675 us/op 2.5009 us/op 1.11
OrderedSet add up to 64 items then delete last 4.1231 us/op 3.6057 us/op 1.14
Set add up to 64 items then delete middle 2.7538 us/op 2.4637 us/op 1.12
OrderedSet add up to 64 items then delete middle 5.7536 us/op 5.1055 us/op 1.13
Set add up to 128 items then delete first 5.8749 us/op 4.9914 us/op 1.18
OrderedSet add up to 128 items then delete first 8.5086 us/op 7.7436 us/op 1.10
Set add up to 128 items then delete last 5.4199 us/op 4.8024 us/op 1.13
OrderedSet add up to 128 items then delete last 8.0604 us/op 7.1584 us/op 1.13
Set add up to 128 items then delete middle 5.5301 us/op 5.0529 us/op 1.09
OrderedSet add up to 128 items then delete middle 17.874 us/op 13.559 us/op 1.32
Set add up to 256 items then delete first 12.371 us/op 10.205 us/op 1.21
OrderedSet add up to 256 items then delete first 19.576 us/op 15.731 us/op 1.24
Set add up to 256 items then delete last 11.628 us/op 9.6377 us/op 1.21
OrderedSet add up to 256 items then delete last 17.250 us/op 14.978 us/op 1.15
Set add up to 256 items then delete middle 11.534 us/op 9.4348 us/op 1.22
OrderedSet add up to 256 items then delete middle 50.083 us/op 42.454 us/op 1.18
transfer serialized Status (84 B) 1.4650 us/op 1.4590 us/op 1.00
copy serialized Status (84 B) 1.2660 us/op 1.2280 us/op 1.03
transfer serialized SignedVoluntaryExit (112 B) 1.5710 us/op 1.4840 us/op 1.06
copy serialized SignedVoluntaryExit (112 B) 1.4500 us/op 1.2100 us/op 1.20
transfer serialized ProposerSlashing (416 B) 1.9020 us/op 1.7040 us/op 1.12
copy serialized ProposerSlashing (416 B) 1.6040 us/op 1.6060 us/op 1.00
transfer serialized Attestation (485 B) 1.9000 us/op 1.6300 us/op 1.17
copy serialized Attestation (485 B) 1.9020 us/op 1.3340 us/op 1.43
transfer serialized AttesterSlashing (33232 B) 2.4480 us/op 1.6370 us/op 1.50
copy serialized AttesterSlashing (33232 B) 5.7760 us/op 4.2130 us/op 1.37
transfer serialized Small SignedBeaconBlock (128000 B) 3.2580 us/op 2.2480 us/op 1.45
copy serialized Small SignedBeaconBlock (128000 B) 16.846 us/op 13.173 us/op 1.28
transfer serialized Avg SignedBeaconBlock (200000 B) 3.5450 us/op 2.9800 us/op 1.19
copy serialized Avg SignedBeaconBlock (200000 B) 22.618 us/op 20.946 us/op 1.08
transfer serialized BlobsSidecar (524380 B) 3.0870 us/op 2.8140 us/op 1.10
copy serialized BlobsSidecar (524380 B) 84.360 us/op 77.366 us/op 1.09
transfer serialized Big SignedBeaconBlock (1000000 B) 3.4940 us/op 2.8700 us/op 1.22
copy serialized Big SignedBeaconBlock (1000000 B) 230.89 us/op 150.73 us/op 1.53
pass gossip attestations to forkchoice per slot 3.3026 ms/op 2.8994 ms/op 1.14
forkChoice updateHead vc 100000 bc 64 eq 0 574.12 us/op 502.27 us/op 1.14
forkChoice updateHead vc 600000 bc 64 eq 0 3.7684 ms/op 3.0544 ms/op 1.23
forkChoice updateHead vc 1000000 bc 64 eq 0 5.8104 ms/op 5.0050 ms/op 1.16
forkChoice updateHead vc 600000 bc 320 eq 0 3.3236 ms/op 2.8513 ms/op 1.17
forkChoice updateHead vc 600000 bc 1200 eq 0 3.4281 ms/op 2.9955 ms/op 1.14
forkChoice updateHead vc 600000 bc 7200 eq 0 3.8466 ms/op 4.1817 ms/op 0.92
forkChoice updateHead vc 600000 bc 64 eq 1000 12.760 ms/op 10.584 ms/op 1.21
forkChoice updateHead vc 600000 bc 64 eq 10000 13.483 ms/op 10.813 ms/op 1.25
forkChoice updateHead vc 600000 bc 64 eq 300000 20.914 ms/op 15.162 ms/op 1.38
computeDeltas 500000 validators 300 proto nodes 5.6473 ms/op 4.3464 ms/op 1.30
computeDeltas 500000 validators 1200 proto nodes 4.9701 ms/op 4.1711 ms/op 1.19
computeDeltas 500000 validators 7200 proto nodes 5.0651 ms/op 4.1062 ms/op 1.23
computeDeltas 750000 validators 300 proto nodes 7.0931 ms/op 5.9927 ms/op 1.18
computeDeltas 750000 validators 1200 proto nodes 7.4390 ms/op 6.0463 ms/op 1.23
computeDeltas 750000 validators 7200 proto nodes 8.8384 ms/op 6.1960 ms/op 1.43
computeDeltas 1400000 validators 300 proto nodes 18.843 ms/op 11.391 ms/op 1.65
computeDeltas 1400000 validators 1200 proto nodes 20.900 ms/op 11.423 ms/op 1.83
computeDeltas 1400000 validators 7200 proto nodes 17.574 ms/op 11.685 ms/op 1.50
computeDeltas 2100000 validators 300 proto nodes 27.976 ms/op 17.404 ms/op 1.61
computeDeltas 2100000 validators 1200 proto nodes 24.572 ms/op 17.355 ms/op 1.42
computeDeltas 2100000 validators 7200 proto nodes 37.871 ms/op 17.359 ms/op 2.18
altair processAttestation - 250000 vs - 7PWei normalcase 2.8848 ms/op 1.6873 ms/op 1.71
altair processAttestation - 250000 vs - 7PWei worstcase 4.6044 ms/op 2.5455 ms/op 1.81
altair processAttestation - setStatus - 1/6 committees join 229.86 us/op 86.634 us/op 2.65
altair processAttestation - setStatus - 1/3 committees join 726.72 us/op 179.53 us/op 4.05
altair processAttestation - setStatus - 1/2 committees join 442.82 us/op 253.41 us/op 1.75
altair processAttestation - setStatus - 2/3 committees join 939.73 us/op 326.99 us/op 2.87
altair processAttestation - setStatus - 4/5 committees join 1.4822 ms/op 483.83 us/op 3.06
altair processAttestation - setStatus - 100% committees join 1.1416 ms/op 549.43 us/op 2.08
altair processBlock - 250000 vs - 7PWei normalcase 9.7333 ms/op 3.6352 ms/op 2.68
altair processBlock - 250000 vs - 7PWei normalcase hashState 63.399 ms/op 22.313 ms/op 2.84
altair processBlock - 250000 vs - 7PWei worstcase 77.462 ms/op 32.261 ms/op 2.40
altair processBlock - 250000 vs - 7PWei worstcase hashState 157.37 ms/op 62.498 ms/op 2.52
phase0 processBlock - 250000 vs - 7PWei normalcase 5.0803 ms/op 2.0537 ms/op 2.47
phase0 processBlock - 250000 vs - 7PWei worstcase 59.797 ms/op 20.873 ms/op 2.86
altair processEth1Data - 250000 vs - 7PWei normalcase 664.35 us/op 308.30 us/op 2.15
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 12.078 us/op 5.3280 us/op 2.27
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 62.281 us/op 34.312 us/op 1.82
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 27.298 us/op 9.5000 us/op 2.87
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 17.497 us/op 5.3220 us/op 3.29
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 265.46 us/op 139.60 us/op 1.90
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 4.5070 ms/op 1.1503 ms/op 3.92
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.9492 ms/op 1.4874 ms/op 1.98
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 4.9435 ms/op 1.4752 ms/op 3.35
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 11.588 ms/op 3.5677 ms/op 3.25
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.6470 ms/op 1.6323 ms/op 2.23
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 11.410 ms/op 3.7793 ms/op 3.02
Tree 40 250000 create 471.32 ms/op 234.85 ms/op 2.01
Tree 40 250000 get(125000) 315.16 ns/op 151.37 ns/op 2.08
Tree 40 250000 set(125000) 1.2622 us/op 684.15 ns/op 1.84
Tree 40 250000 toArray() 30.456 ms/op 20.007 ms/op 1.52
Tree 40 250000 iterate all - toArray() + loop 29.419 ms/op 20.443 ms/op 1.44
Tree 40 250000 iterate all - get(i) 100.70 ms/op 52.069 ms/op 1.93
Array 250000 create 5.9187 ms/op 3.2704 ms/op 1.81
Array 250000 clone - spread 2.4607 ms/op 1.4539 ms/op 1.69
Array 250000 get(125000) 0.74300 ns/op 0.41500 ns/op 1.79
Array 250000 set(125000) 1.2390 ns/op 0.43000 ns/op 2.88
Array 250000 iterate all - loop 240.71 us/op 83.104 us/op 2.90
phase0 afterProcessEpoch - 250000 vs - 7PWei 129.63 ms/op 48.959 ms/op 2.65
Array.fill - length 1000000 4.8046 ms/op 3.5660 ms/op 1.35
Array push - length 1000000 43.038 ms/op 17.055 ms/op 2.52
Array.get 0.91314 ns/op 0.28480 ns/op 3.21
Uint8Array.get 1.4727 ns/op 0.43683 ns/op 3.37
phase0 beforeProcessEpoch - 250000 vs - 7PWei 32.806 ms/op 19.299 ms/op 1.70
altair processEpoch - mainnet_e81889 629.79 ms/op 283.36 ms/op 2.22
mainnet_e81889 - altair beforeProcessEpoch 29.680 ms/op 23.574 ms/op 1.26
mainnet_e81889 - altair processJustificationAndFinalization 27.849 us/op 12.974 us/op 2.15
mainnet_e81889 - altair processInactivityUpdates 13.150 ms/op 5.2308 ms/op 2.51
mainnet_e81889 - altair processRewardsAndPenalties 109.58 ms/op 46.074 ms/op 2.38
mainnet_e81889 - altair processRegistryUpdates 8.3380 us/op 1.9290 us/op 4.32
mainnet_e81889 - altair processSlashings 1.3270 us/op 433.00 ns/op 3.06
mainnet_e81889 - altair processEth1DataReset 850.00 ns/op 318.00 ns/op 2.67
mainnet_e81889 - altair processEffectiveBalanceUpdates 6.0720 ms/op 1.5267 ms/op 3.98
mainnet_e81889 - altair processSlashingsReset 6.2060 us/op 2.9420 us/op 2.11
mainnet_e81889 - altair processRandaoMixesReset 7.8940 us/op 8.1900 us/op 0.96
mainnet_e81889 - altair processHistoricalRootsUpdate 732.00 ns/op 1.1230 us/op 0.65
mainnet_e81889 - altair processParticipationFlagUpdates 1.9900 us/op 1.9280 us/op 1.03
mainnet_e81889 - altair processSyncCommitteeUpdates 553.00 ns/op 485.00 ns/op 1.14
mainnet_e81889 - altair afterProcessEpoch 66.881 ms/op 51.702 ms/op 1.29
capella processEpoch - mainnet_e217614 2.1178 s/op 949.32 ms/op 2.23
mainnet_e217614 - capella beforeProcessEpoch 141.54 ms/op 70.213 ms/op 2.02
mainnet_e217614 - capella processJustificationAndFinalization 23.851 us/op 13.585 us/op 1.76
mainnet_e217614 - capella processInactivityUpdates 32.315 ms/op 17.902 ms/op 1.81
mainnet_e217614 - capella processRewardsAndPenalties 329.95 ms/op 222.95 ms/op 1.48
mainnet_e217614 - capella processRegistryUpdates 20.404 us/op 12.812 us/op 1.59
mainnet_e217614 - capella processSlashings 1.1020 us/op 349.00 ns/op 3.16
mainnet_e217614 - capella processEth1DataReset 1.0460 us/op 300.00 ns/op 3.49
mainnet_e217614 - capella processEffectiveBalanceUpdates 10.830 ms/op 15.504 ms/op 0.70
mainnet_e217614 - capella processSlashingsReset 13.896 us/op 3.8800 us/op 3.58
mainnet_e217614 - capella processRandaoMixesReset 9.0780 us/op 4.5630 us/op 1.99
mainnet_e217614 - capella processHistoricalRootsUpdate 1.2550 us/op 562.00 ns/op 2.23
mainnet_e217614 - capella processParticipationFlagUpdates 6.1880 us/op 1.9420 us/op 3.19
mainnet_e217614 - capella afterProcessEpoch 197.73 ms/op 122.97 ms/op 1.61
phase0 processEpoch - mainnet_e58758 563.73 ms/op 339.64 ms/op 1.66
mainnet_e58758 - phase0 beforeProcessEpoch 133.68 ms/op 71.625 ms/op 1.87
mainnet_e58758 - phase0 processJustificationAndFinalization 20.159 us/op 13.333 us/op 1.51
mainnet_e58758 - phase0 processRewardsAndPenalties 41.921 ms/op 28.396 ms/op 1.48
mainnet_e58758 - phase0 processRegistryUpdates 10.686 us/op 7.4640 us/op 1.43
mainnet_e58758 - phase0 processSlashings 591.00 ns/op 331.00 ns/op 1.79
mainnet_e58758 - phase0 processEth1DataReset 510.00 ns/op 290.00 ns/op 1.76
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3362 ms/op 1.4150 ms/op 0.94
mainnet_e58758 - phase0 processSlashingsReset 3.3200 us/op 3.7500 us/op 0.89
mainnet_e58758 - phase0 processRandaoMixesReset 4.5980 us/op 4.3020 us/op 1.07
mainnet_e58758 - phase0 processHistoricalRootsUpdate 586.00 ns/op 291.00 ns/op 2.01
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.1630 us/op 2.6000 us/op 1.99
mainnet_e58758 - phase0 afterProcessEpoch 56.949 ms/op 43.054 ms/op 1.32
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.5046 ms/op 1.9137 ms/op 0.79
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.3620 ms/op 2.1164 ms/op 1.12
altair processInactivityUpdates - 250000 normalcase 27.909 ms/op 15.293 ms/op 1.83
altair processInactivityUpdates - 250000 worstcase 32.052 ms/op 15.454 ms/op 2.07
phase0 processRegistryUpdates - 250000 normalcase 13.301 us/op 6.1570 us/op 2.16
phase0 processRegistryUpdates - 250000 badcase_full_deposits 523.53 us/op 278.84 us/op 1.88
phase0 processRegistryUpdates - 250000 worstcase 0.5 156.47 ms/op 124.51 ms/op 1.26
altair processRewardsAndPenalties - 250000 normalcase 74.519 ms/op 39.552 ms/op 1.88
altair processRewardsAndPenalties - 250000 worstcase 66.049 ms/op 37.871 ms/op 1.74
phase0 getAttestationDeltas - 250000 normalcase 11.654 ms/op 7.8721 ms/op 1.48
phase0 getAttestationDeltas - 250000 worstcase 16.805 ms/op 7.9947 ms/op 2.10
phase0 processSlashings - 250000 worstcase 89.259 us/op 111.09 us/op 0.80
altair processSyncCommitteeUpdates - 250000 207.17 ms/op 131.61 ms/op 1.57
BeaconState.hashTreeRoot - No change 572.00 ns/op 229.00 ns/op 2.50
BeaconState.hashTreeRoot - 1 full validator 177.81 us/op 114.47 us/op 1.55
BeaconState.hashTreeRoot - 32 full validator 1.8489 ms/op 1.1713 ms/op 1.58
BeaconState.hashTreeRoot - 512 full validator 17.195 ms/op 10.760 ms/op 1.60
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 157.36 us/op 160.71 us/op 0.98
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.9886 ms/op 2.0611 ms/op 0.96
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 27.815 ms/op 21.094 ms/op 1.32
BeaconState.hashTreeRoot - 1 balances 132.09 us/op 104.54 us/op 1.26
BeaconState.hashTreeRoot - 32 balances 1.4613 ms/op 912.95 us/op 1.60
BeaconState.hashTreeRoot - 512 balances 11.759 ms/op 8.2409 ms/op 1.43
BeaconState.hashTreeRoot - 250000 balances 270.91 ms/op 168.14 ms/op 1.61
aggregationBits - 2048 els - zipIndexesInBitList 52.804 us/op 28.479 us/op 1.85
byteArrayEquals 32 113.20 ns/op 55.166 ns/op 2.05
Buffer.compare 32 45.703 ns/op 17.570 ns/op 2.60
byteArrayEquals 1024 3.9173 us/op 1.6221 us/op 2.42
Buffer.compare 1024 82.768 ns/op 26.543 ns/op 3.12
byteArrayEquals 16384 75.022 us/op 26.060 us/op 2.88
Buffer.compare 16384 376.79 ns/op 207.87 ns/op 1.81
byteArrayEquals 123687377 271.39 ms/op 195.65 ms/op 1.39
Buffer.compare 123687377 7.1367 ms/op 8.6336 ms/op 0.83
byteArrayEquals 32 - diff last byte 88.226 ns/op 53.699 ns/op 1.64
Buffer.compare 32 - diff last byte 31.200 ns/op 17.546 ns/op 1.78
byteArrayEquals 1024 - diff last byte 2.1091 us/op 1.6079 us/op 1.31
Buffer.compare 1024 - diff last byte 43.125 ns/op 25.973 ns/op 1.66
byteArrayEquals 16384 - diff last byte 38.342 us/op 25.689 us/op 1.49
Buffer.compare 16384 - diff last byte 329.31 ns/op 188.45 ns/op 1.75
byteArrayEquals 123687377 - diff last byte 326.93 ms/op 194.92 ms/op 1.68
Buffer.compare 123687377 - diff last byte 8.6972 ms/op 8.6523 ms/op 1.01
byteArrayEquals 32 - random bytes 9.1160 ns/op 5.3360 ns/op 1.71
Buffer.compare 32 - random bytes 38.470 ns/op 17.467 ns/op 2.20
byteArrayEquals 1024 - random bytes 9.0050 ns/op 5.3310 ns/op 1.69
Buffer.compare 1024 - random bytes 28.943 ns/op 17.522 ns/op 1.65
byteArrayEquals 16384 - random bytes 6.6570 ns/op 5.3620 ns/op 1.24
Buffer.compare 16384 - random bytes 30.812 ns/op 17.800 ns/op 1.73
byteArrayEquals 123687377 - random bytes 9.8100 ns/op 6.6400 ns/op 1.48
Buffer.compare 123687377 - random bytes 28.470 ns/op 18.980 ns/op 1.50
regular array get 100000 times 45.669 us/op 33.485 us/op 1.36
wrappedArray get 100000 times 51.834 us/op 33.914 us/op 1.53
arrayWithProxy get 100000 times 15.465 ms/op 13.388 ms/op 1.16
ssz.Root.equals 59.941 ns/op 46.565 ns/op 1.29
byteArrayEquals 59.477 ns/op 45.825 ns/op 1.30
Buffer.compare 14.520 ns/op 10.810 ns/op 1.34
processSlot - 1 slots 16.391 us/op 13.744 us/op 1.19
processSlot - 32 slots 2.9556 ms/op 2.7206 ms/op 1.09
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 50.781 ms/op 36.900 ms/op 1.38
getCommitteeAssignments - req 1 vs - 250000 vc 7.0054 ms/op 2.1582 ms/op 3.25
getCommitteeAssignments - req 100 vs - 250000 vc 7.2575 ms/op 4.2479 ms/op 1.71
getCommitteeAssignments - req 1000 vs - 250000 vc 5.2501 ms/op 4.5031 ms/op 1.17
findModifiedValidators - 10000 modified validators 409.98 ms/op 289.71 ms/op 1.42
findModifiedValidators - 1000 modified validators 550.42 ms/op 189.82 ms/op 2.90
findModifiedValidators - 100 modified validators 339.89 ms/op 167.10 ms/op 2.03
findModifiedValidators - 10 modified validators 283.76 ms/op 189.91 ms/op 1.49
findModifiedValidators - 1 modified validators 329.40 ms/op 171.24 ms/op 1.92
findModifiedValidators - no difference 346.37 ms/op 193.86 ms/op 1.79
compare ViewDUs 5.2190 s/op 3.0895 s/op 1.69
compare each validator Uint8Array 2.8524 s/op 1.2674 s/op 2.25
compare ViewDU to Uint8Array 2.3816 s/op 1.0895 s/op 2.19
migrate state 1000000 validators, 24 modified, 0 new 1.8499 s/op 763.71 ms/op 2.42
migrate state 1000000 validators, 1700 modified, 1000 new 2.0991 s/op 981.90 ms/op 2.14
migrate state 1000000 validators, 3400 modified, 2000 new 3.1825 s/op 1.1448 s/op 2.78
migrate state 1500000 validators, 24 modified, 0 new 2.1854 s/op 729.02 ms/op 3.00
migrate state 1500000 validators, 1700 modified, 1000 new 3.3304 s/op 963.21 ms/op 3.46
migrate state 1500000 validators, 3400 modified, 2000 new 3.7472 s/op 1.0910 s/op 3.43
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 20.590 ns/op 4.1900 ns/op 4.91
state getBlockRootAtSlot - 250000 vs - 7PWei 2.2685 us/op 609.49 ns/op 3.72
computeProposers - vc 250000 27.641 ms/op 7.3949 ms/op 3.74
computeEpochShuffling - vc 250000 172.67 ms/op 42.436 ms/op 4.07
getNextSyncCommittee - vc 250000 474.39 ms/op 121.96 ms/op 3.89
computeSigningRoot for AttestationData 54.361 us/op 21.583 us/op 2.52
hash AttestationData serialized data then Buffer.toString(base64) 3.5296 us/op 1.5692 us/op 2.25
toHexString serialized data 1.4624 us/op 884.67 ns/op 1.65
Buffer.toString(base64) 312.24 ns/op 181.56 ns/op 1.72
nodejs block root to RootHex using toHex 322.22 ns/op 141.42 ns/op 2.28
nodejs block root to RootHex using toRootHex 187.32 ns/op 86.226 ns/op 2.17
browser block root to RootHex using the deprecated toHexString 490.13 ns/op 219.64 ns/op 2.23
browser block root to RootHex using toHex 413.77 ns/op 174.71 ns/op 2.37
browser block root to RootHex using toRootHex 406.28 ns/op 155.31 ns/op 2.62

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.

@wemeetagain
Copy link
Member

rerunning CI so the settings will remember the new jobs to enforce (settings only remember CI job names run in the last week)

@wemeetagain wemeetagain merged commit 69ae688 into unstable Dec 4, 2024
18 of 20 checks passed
@wemeetagain wemeetagain deleted the nh/unpin-node-version branch December 4, 2024 13:11
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