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

Draft
wants to merge 1 commit 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 62.49%. Comparing base (3ecee07) to head (e81190e).

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6982   +/-   ##
=========================================
  Coverage     62.49%   62.49%           
=========================================
  Files           576      576           
  Lines         61170    61170           
  Branches       2134     2137    +3     
=========================================
  Hits          38227    38227           
  Misses        22904    22904           
  Partials         39       39           

Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 623740e Previous: 3ecee07 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.2280 ms/op 1.8161 ms/op 1.23
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 46.155 us/op 40.656 us/op 1.14
BLS verify - blst 1.3325 ms/op 933.82 us/op 1.43
BLS verifyMultipleSignatures 3 - blst 2.2421 ms/op 1.3316 ms/op 1.68
BLS verifyMultipleSignatures 8 - blst 2.4932 ms/op 2.0141 ms/op 1.24
BLS verifyMultipleSignatures 32 - blst 7.2490 ms/op 4.4419 ms/op 1.63
BLS verifyMultipleSignatures 64 - blst 10.695 ms/op 8.4717 ms/op 1.26
BLS verifyMultipleSignatures 128 - blst 16.875 ms/op 16.568 ms/op 1.02
BLS deserializing 10000 signatures 649.39 ms/op 626.75 ms/op 1.04
BLS deserializing 100000 signatures 6.5055 s/op 6.2851 s/op 1.04
BLS verifyMultipleSignatures - same message - 3 - blst 1.2151 ms/op 962.13 us/op 1.26
BLS verifyMultipleSignatures - same message - 8 - blst 1.6209 ms/op 1.1003 ms/op 1.47
BLS verifyMultipleSignatures - same message - 32 - blst 1.7849 ms/op 1.6797 ms/op 1.06
BLS verifyMultipleSignatures - same message - 64 - blst 2.4464 ms/op 2.5600 ms/op 0.96
BLS verifyMultipleSignatures - same message - 128 - blst 4.0902 ms/op 4.1332 ms/op 0.99
BLS aggregatePubkeys 32 - blst 18.610 us/op 18.269 us/op 1.02
BLS aggregatePubkeys 128 - blst 66.555 us/op 63.508 us/op 1.05
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 59.368 ms/op 44.887 ms/op 1.32
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 68.878 ms/op 40.249 ms/op 1.71
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 42.088 ms/op 29.061 ms/op 1.45
getSlashingsAndExits - default max 84.199 us/op 65.296 us/op 1.29
getSlashingsAndExits - 2k 278.55 us/op 231.94 us/op 1.20
proposeBlockBody type=full, size=empty 5.5958 ms/op 4.9844 ms/op 1.12
isKnown best case - 1 super set check 287.00 ns/op 471.00 ns/op 0.61
isKnown normal case - 2 super set checks 274.00 ns/op 489.00 ns/op 0.56
isKnown worse case - 16 super set checks 277.00 ns/op 452.00 ns/op 0.61
InMemoryCheckpointStateCache - add get delete 4.6170 us/op 4.3280 us/op 1.07
validate api signedAggregateAndProof - struct 2.4951 ms/op 1.5100 ms/op 1.65
validate gossip signedAggregateAndProof - struct 1.7660 ms/op 1.5846 ms/op 1.11
validate gossip attestation - vc 640000 1.1322 ms/op 993.43 us/op 1.14
batch validate gossip attestation - vc 640000 - chunk 32 149.53 us/op 132.94 us/op 1.12
batch validate gossip attestation - vc 640000 - chunk 64 131.67 us/op 110.49 us/op 1.19
batch validate gossip attestation - vc 640000 - chunk 128 125.18 us/op 96.000 us/op 1.30
batch validate gossip attestation - vc 640000 - chunk 256 120.20 us/op 91.802 us/op 1.31
pickEth1Vote - no votes 1.2486 ms/op 851.31 us/op 1.47
pickEth1Vote - max votes 10.849 ms/op 7.1167 ms/op 1.52
pickEth1Vote - Eth1Data hashTreeRoot value x2048 16.013 ms/op 14.473 ms/op 1.11
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 24.699 ms/op 22.088 ms/op 1.12
pickEth1Vote - Eth1Data fastSerialize value x2048 585.51 us/op 386.93 us/op 1.51
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.1683 ms/op 6.5492 ms/op 0.79
bytes32 toHexString 545.00 ns/op 555.00 ns/op 0.98
bytes32 Buffer.toString(hex) 271.00 ns/op 428.00 ns/op 0.63
bytes32 Buffer.toString(hex) from Uint8Array 472.00 ns/op 519.00 ns/op 0.91
bytes32 Buffer.toString(hex) + 0x 274.00 ns/op 421.00 ns/op 0.65
Object access 1 prop 0.19000 ns/op 0.31500 ns/op 0.60
Map access 1 prop 0.14000 ns/op 0.31500 ns/op 0.44
Object get x1000 6.4140 ns/op 5.5540 ns/op 1.15
Map get x1000 6.7410 ns/op 5.8130 ns/op 1.16
Object set x1000 43.550 ns/op 22.512 ns/op 1.93
Map set x1000 28.102 ns/op 18.777 ns/op 1.50
Return object 10000 times 0.32490 ns/op 0.29550 ns/op 1.10
Throw Error 10000 times 3.6010 us/op 2.7093 us/op 1.33
fastMsgIdFn sha256 / 200 bytes 2.3730 us/op 1.9560 us/op 1.21
fastMsgIdFn h32 xxhash / 200 bytes 298.00 ns/op 402.00 ns/op 0.74
fastMsgIdFn h64 xxhash / 200 bytes 289.00 ns/op 452.00 ns/op 0.64
fastMsgIdFn sha256 / 1000 bytes 7.6970 us/op 5.8900 us/op 1.31
fastMsgIdFn h32 xxhash / 1000 bytes 442.00 ns/op 527.00 ns/op 0.84
fastMsgIdFn h64 xxhash / 1000 bytes 373.00 ns/op 524.00 ns/op 0.71
fastMsgIdFn sha256 / 10000 bytes 68.653 us/op 50.339 us/op 1.36
fastMsgIdFn h32 xxhash / 10000 bytes 2.0610 us/op 1.8780 us/op 1.10
fastMsgIdFn h64 xxhash / 10000 bytes 1.3380 us/op 1.3270 us/op 1.01
send data - 1000 256B messages 15.151 ms/op 10.347 ms/op 1.46
send data - 1000 512B messages 20.126 ms/op 13.202 ms/op 1.52
send data - 1000 1024B messages 30.932 ms/op 20.553 ms/op 1.51
send data - 1000 1200B messages 30.882 ms/op 24.101 ms/op 1.28
send data - 1000 2048B messages 37.200 ms/op 28.421 ms/op 1.31
send data - 1000 4096B messages 35.935 ms/op 26.102 ms/op 1.38
send data - 1000 16384B messages 76.942 ms/op 66.342 ms/op 1.16
send data - 1000 65536B messages 222.14 ms/op 257.92 ms/op 0.86
enrSubnets - fastDeserialize 64 bits 1.3100 us/op 1.0530 us/op 1.24
enrSubnets - ssz BitVector 64 bits 414.00 ns/op 507.00 ns/op 0.82
enrSubnets - fastDeserialize 4 bits 195.00 ns/op 332.00 ns/op 0.59
enrSubnets - ssz BitVector 4 bits 442.00 ns/op 509.00 ns/op 0.87
prioritizePeers score -10:0 att 32-0.1 sync 2-0 193.05 us/op 122.31 us/op 1.58
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 198.32 us/op 141.87 us/op 1.40
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 384.78 us/op 269.02 us/op 1.43
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 504.77 us/op 519.44 us/op 0.97
prioritizePeers score 0:0 att 64-1 sync 4-1 871.51 us/op 620.47 us/op 1.40
array of 16000 items push then shift 1.7298 us/op 1.1968 us/op 1.45
LinkedList of 16000 items push then shift 8.3670 ns/op 6.3970 ns/op 1.31
array of 16000 items push then pop 141.94 ns/op 76.259 ns/op 1.86
LinkedList of 16000 items push then pop 7.7480 ns/op 6.2780 ns/op 1.23
array of 24000 items push then shift 2.5670 us/op 1.9020 us/op 1.35
LinkedList of 24000 items push then shift 8.1630 ns/op 6.4030 ns/op 1.27
array of 24000 items push then pop 189.84 ns/op 105.60 ns/op 1.80
LinkedList of 24000 items push then pop 7.8330 ns/op 6.2040 ns/op 1.26
intersect bitArray bitLen 8 6.9870 ns/op 5.4260 ns/op 1.29
intersect array and set length 8 63.203 ns/op 38.258 ns/op 1.65
intersect bitArray bitLen 128 31.695 ns/op 26.664 ns/op 1.19
intersect array and set length 128 923.57 ns/op 576.75 ns/op 1.60
bitArray.getTrueBitIndexes() bitLen 128 2.3120 us/op 1.9630 us/op 1.18
bitArray.getTrueBitIndexes() bitLen 248 4.3080 us/op 3.1700 us/op 1.36
bitArray.getTrueBitIndexes() bitLen 512 10.821 us/op 6.4900 us/op 1.67
Buffer.concat 32 items 1.1420 us/op 1.0390 us/op 1.10
Uint8Array.set 32 items 1.8420 us/op 1.7000 us/op 1.08
Buffer.copy 2.0340 us/op 1.9380 us/op 1.05
Uint8Array.set - with subarray 2.7780 us/op 2.4330 us/op 1.14
Uint8Array.set - without subarray 1.6740 us/op 1.7850 us/op 0.94
getUint32 - dataview 287.00 ns/op 407.00 ns/op 0.71
getUint32 - manual 231.00 ns/op 340.00 ns/op 0.68
Set add up to 64 items then delete first 2.6194 us/op 1.7282 us/op 1.52
OrderedSet add up to 64 items then delete first 4.0089 us/op 2.6970 us/op 1.49
Set add up to 64 items then delete last 3.0128 us/op 1.9534 us/op 1.54
OrderedSet add up to 64 items then delete last 4.5636 us/op 2.9736 us/op 1.53
Set add up to 64 items then delete middle 3.0672 us/op 1.9570 us/op 1.57
OrderedSet add up to 64 items then delete middle 6.3821 us/op 4.2991 us/op 1.48
Set add up to 128 items then delete first 6.4641 us/op 3.8649 us/op 1.67
OrderedSet add up to 128 items then delete first 9.5402 us/op 6.0932 us/op 1.57
Set add up to 128 items then delete last 6.0135 us/op 3.7420 us/op 1.61
OrderedSet add up to 128 items then delete last 9.1819 us/op 5.8198 us/op 1.58
Set add up to 128 items then delete middle 5.9644 us/op 3.7310 us/op 1.60
OrderedSet add up to 128 items then delete middle 16.562 us/op 11.507 us/op 1.44
Set add up to 256 items then delete first 12.854 us/op 7.7769 us/op 1.65
OrderedSet add up to 256 items then delete first 19.799 us/op 12.930 us/op 1.53
Set add up to 256 items then delete last 12.142 us/op 7.7755 us/op 1.56
OrderedSet add up to 256 items then delete last 18.420 us/op 11.718 us/op 1.57
Set add up to 256 items then delete middle 11.906 us/op 7.5397 us/op 1.58
OrderedSet add up to 256 items then delete middle 47.804 us/op 33.565 us/op 1.42
transfer serialized Status (84 B) 1.4770 us/op 1.4240 us/op 1.04
copy serialized Status (84 B) 1.3360 us/op 1.2400 us/op 1.08
transfer serialized SignedVoluntaryExit (112 B) 1.6030 us/op 1.5190 us/op 1.06
copy serialized SignedVoluntaryExit (112 B) 1.3320 us/op 1.2720 us/op 1.05
transfer serialized ProposerSlashing (416 B) 2.0110 us/op 1.8430 us/op 1.09
copy serialized ProposerSlashing (416 B) 1.9960 us/op 1.9850 us/op 1.01
transfer serialized Attestation (485 B) 2.0790 us/op 2.1060 us/op 0.99
copy serialized Attestation (485 B) 1.8340 us/op 2.2230 us/op 0.83
transfer serialized AttesterSlashing (33232 B) 2.0400 us/op 2.6890 us/op 0.76
copy serialized AttesterSlashing (33232 B) 6.1580 us/op 6.1680 us/op 1.00
transfer serialized Small SignedBeaconBlock (128000 B) 2.3020 us/op 3.3090 us/op 0.70
copy serialized Small SignedBeaconBlock (128000 B) 19.120 us/op 28.311 us/op 0.68
transfer serialized Avg SignedBeaconBlock (200000 B) 3.0680 us/op 3.7270 us/op 0.82
copy serialized Avg SignedBeaconBlock (200000 B) 28.608 us/op 27.655 us/op 1.03
transfer serialized BlobsSidecar (524380 B) 3.3810 us/op 3.5920 us/op 0.94
copy serialized BlobsSidecar (524380 B) 81.779 us/op 86.008 us/op 0.95
transfer serialized Big SignedBeaconBlock (1000000 B) 3.4890 us/op 3.0700 us/op 1.14
copy serialized Big SignedBeaconBlock (1000000 B) 160.21 us/op 146.86 us/op 1.09
pass gossip attestations to forkchoice per slot 3.4121 ms/op 2.8317 ms/op 1.20
forkChoice updateHead vc 100000 bc 64 eq 0 588.31 us/op 421.85 us/op 1.39
forkChoice updateHead vc 600000 bc 64 eq 0 3.7922 ms/op 2.6211 ms/op 1.45
forkChoice updateHead vc 1000000 bc 64 eq 0 5.9553 ms/op 4.3942 ms/op 1.36
forkChoice updateHead vc 600000 bc 320 eq 0 3.4113 ms/op 2.5250 ms/op 1.35
forkChoice updateHead vc 600000 bc 1200 eq 0 3.4574 ms/op 2.6470 ms/op 1.31
forkChoice updateHead vc 600000 bc 7200 eq 0 4.1127 ms/op 2.8480 ms/op 1.44
forkChoice updateHead vc 600000 bc 64 eq 1000 11.347 ms/op 9.7065 ms/op 1.17
forkChoice updateHead vc 600000 bc 64 eq 10000 11.444 ms/op 9.3189 ms/op 1.23
forkChoice updateHead vc 600000 bc 64 eq 300000 19.943 ms/op 11.750 ms/op 1.70
computeDeltas 500000 validators 300 proto nodes 3.8457 ms/op 2.9659 ms/op 1.30
computeDeltas 500000 validators 1200 proto nodes 3.4899 ms/op 3.0318 ms/op 1.15
computeDeltas 500000 validators 7200 proto nodes 3.4681 ms/op 3.0469 ms/op 1.14
computeDeltas 750000 validators 300 proto nodes 5.2982 ms/op 4.5666 ms/op 1.16
computeDeltas 750000 validators 1200 proto nodes 5.0978 ms/op 4.5605 ms/op 1.12
computeDeltas 750000 validators 7200 proto nodes 5.1749 ms/op 4.4890 ms/op 1.15
computeDeltas 1400000 validators 300 proto nodes 9.8929 ms/op 8.1657 ms/op 1.21
computeDeltas 1400000 validators 1200 proto nodes 9.6832 ms/op 8.5138 ms/op 1.14
computeDeltas 1400000 validators 7200 proto nodes 9.5696 ms/op 8.3392 ms/op 1.15
computeDeltas 2100000 validators 300 proto nodes 14.645 ms/op 12.604 ms/op 1.16
computeDeltas 2100000 validators 1200 proto nodes 14.414 ms/op 12.520 ms/op 1.15
computeDeltas 2100000 validators 7200 proto nodes 14.753 ms/op 12.537 ms/op 1.18
altair processAttestation - 250000 vs - 7PWei normalcase 1.6167 ms/op 1.4688 ms/op 1.10
altair processAttestation - 250000 vs - 7PWei worstcase 2.4212 ms/op 2.0135 ms/op 1.20
altair processAttestation - setStatus - 1/6 committees join 83.341 us/op 68.655 us/op 1.21
altair processAttestation - setStatus - 1/3 committees join 169.12 us/op 124.76 us/op 1.36
altair processAttestation - setStatus - 1/2 committees join 240.95 us/op 184.02 us/op 1.31
altair processAttestation - setStatus - 2/3 committees join 321.51 us/op 239.50 us/op 1.34
altair processAttestation - setStatus - 4/5 committees join 460.00 us/op 378.21 us/op 1.22
altair processAttestation - setStatus - 100% committees join 546.64 us/op 454.44 us/op 1.20
altair processBlock - 250000 vs - 7PWei normalcase 4.5075 ms/op 4.4918 ms/op 1.00
altair processBlock - 250000 vs - 7PWei normalcase hashState 26.933 ms/op 24.021 ms/op 1.12
altair processBlock - 250000 vs - 7PWei worstcase 46.819 ms/op 39.464 ms/op 1.19
altair processBlock - 250000 vs - 7PWei worstcase hashState 96.904 ms/op 63.687 ms/op 1.52
phase0 processBlock - 250000 vs - 7PWei normalcase 2.4970 ms/op 1.4654 ms/op 1.70
phase0 processBlock - 250000 vs - 7PWei worstcase 29.910 ms/op 23.161 ms/op 1.29
altair processEth1Data - 250000 vs - 7PWei normalcase 317.25 us/op 258.03 us/op 1.23
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 7.3020 us/op 4.6960 us/op 1.55
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 29.238 us/op 17.370 us/op 1.68
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 10.873 us/op 7.0100 us/op 1.55
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 8.1270 us/op 7.1990 us/op 1.13
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 117.68 us/op 53.319 us/op 2.21
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.1654 ms/op 756.87 us/op 1.54
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 844.42 us/op 1.0549 ms/op 0.80
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.5359 ms/op 598.69 us/op 2.57
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.4541 ms/op 1.9868 ms/op 1.24
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.4819 ms/op 1.1788 ms/op 1.26
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.6254 ms/op 3.0934 ms/op 1.17
Tree 40 250000 create 224.95 ms/op 230.63 ms/op 0.98
Tree 40 250000 get(125000) 144.22 ns/op 124.77 ns/op 1.16
Tree 40 250000 set(125000) 615.41 ns/op 598.65 ns/op 1.03
Tree 40 250000 toArray() 14.696 ms/op 19.573 ms/op 0.75
Tree 40 250000 iterate all - toArray() + loop 14.765 ms/op 20.883 ms/op 0.71
Tree 40 250000 iterate all - get(i) 50.759 ms/op 53.146 ms/op 0.96
MutableVector 250000 create 14.777 ms/op 10.041 ms/op 1.47
MutableVector 250000 get(125000) 6.1840 ns/op 5.9730 ns/op 1.04
MutableVector 250000 set(125000) 184.05 ns/op 186.81 ns/op 0.99
MutableVector 250000 toArray() 3.3171 ms/op 3.2826 ms/op 1.01
MutableVector 250000 iterate all - toArray() + loop 3.4282 ms/op 3.0885 ms/op 1.11
MutableVector 250000 iterate all - get(i) 1.7449 ms/op 1.4059 ms/op 1.24
Array 250000 create 2.8343 ms/op 2.5744 ms/op 1.10
Array 250000 clone - spread 1.3637 ms/op 1.3692 ms/op 1.00
Array 250000 get(125000) 0.40400 ns/op 0.56200 ns/op 0.72
Array 250000 set(125000) 0.42900 ns/op 0.57200 ns/op 0.75
Array 250000 iterate all - loop 104.11 us/op 74.604 us/op 1.40
effectiveBalanceIncrements clone Uint8Array 300000 24.044 us/op 25.582 us/op 0.94
effectiveBalanceIncrements clone MutableVector 300000 122.00 ns/op 301.00 ns/op 0.41
effectiveBalanceIncrements rw all Uint8Array 300000 196.74 us/op 166.32 us/op 1.18
effectiveBalanceIncrements rw all MutableVector 300000 60.581 ms/op 60.043 ms/op 1.01
phase0 afterProcessEpoch - 250000 vs - 7PWei 86.720 ms/op 73.787 ms/op 1.18
Array.fill - length 1000000 3.4698 ms/op 2.9598 ms/op 1.17
Array push - length 1000000 17.219 ms/op 14.858 ms/op 1.16
Array.get 0.27032 ns/op 0.25259 ns/op 1.07
Uint8Array.get 0.43303 ns/op 0.33273 ns/op 1.30
phase0 beforeProcessEpoch - 250000 vs - 7PWei 23.179 ms/op 21.662 ms/op 1.07
altair processEpoch - mainnet_e81889 344.46 ms/op 327.55 ms/op 1.05
mainnet_e81889 - altair beforeProcessEpoch 28.390 ms/op 28.296 ms/op 1.00
mainnet_e81889 - altair processJustificationAndFinalization 13.610 us/op 9.4310 us/op 1.44
mainnet_e81889 - altair processInactivityUpdates 5.2672 ms/op 4.5880 ms/op 1.15
mainnet_e81889 - altair processRewardsAndPenalties 57.230 ms/op 44.743 ms/op 1.28
mainnet_e81889 - altair processRegistryUpdates 2.7880 us/op 1.3130 us/op 2.12
mainnet_e81889 - altair processSlashings 596.00 ns/op 767.00 ns/op 0.78
mainnet_e81889 - altair processEth1DataReset 521.00 ns/op 636.00 ns/op 0.82
mainnet_e81889 - altair processEffectiveBalanceUpdates 3.1749 ms/op 871.54 us/op 3.64
mainnet_e81889 - altair processSlashingsReset 4.5230 us/op 1.3300 us/op 3.40
mainnet_e81889 - altair processRandaoMixesReset 5.4280 us/op 1.4950 us/op 3.63
mainnet_e81889 - altair processHistoricalRootsUpdate 602.00 ns/op 700.00 ns/op 0.86
mainnet_e81889 - altair processParticipationFlagUpdates 2.8070 us/op 1.2850 us/op 2.18
mainnet_e81889 - altair processSyncCommitteeUpdates 395.00 ns/op 602.00 ns/op 0.66
mainnet_e81889 - altair afterProcessEpoch 90.358 ms/op 77.856 ms/op 1.16
capella processEpoch - mainnet_e217614 1.2298 s/op 1.1254 s/op 1.09
mainnet_e217614 - capella beforeProcessEpoch 119.15 ms/op 97.400 ms/op 1.22
mainnet_e217614 - capella processJustificationAndFinalization 18.071 us/op 13.207 us/op 1.37
mainnet_e217614 - capella processInactivityUpdates 17.133 ms/op 15.963 ms/op 1.07
mainnet_e217614 - capella processRewardsAndPenalties 280.15 ms/op 265.88 ms/op 1.05
mainnet_e217614 - capella processRegistryUpdates 19.801 us/op 11.657 us/op 1.70
mainnet_e217614 - capella processSlashings 625.00 ns/op 759.00 ns/op 0.82
mainnet_e217614 - capella processEth1DataReset 530.00 ns/op 747.00 ns/op 0.71
mainnet_e217614 - capella processEffectiveBalanceUpdates 3.4416 ms/op 3.8095 ms/op 0.90
mainnet_e217614 - capella processSlashingsReset 2.4260 us/op 1.3140 us/op 1.85
mainnet_e217614 - capella processRandaoMixesReset 5.3840 us/op 2.9780 us/op 1.81
mainnet_e217614 - capella processHistoricalRootsUpdate 553.00 ns/op 698.00 ns/op 0.79
mainnet_e217614 - capella processParticipationFlagUpdates 2.3610 us/op 1.3460 us/op 1.75
mainnet_e217614 - capella afterProcessEpoch 242.54 ms/op 237.79 ms/op 1.02
phase0 processEpoch - mainnet_e58758 440.22 ms/op 373.73 ms/op 1.18
mainnet_e58758 - phase0 beforeProcessEpoch 95.508 ms/op 77.211 ms/op 1.24
mainnet_e58758 - phase0 processJustificationAndFinalization 21.233 us/op 10.451 us/op 2.03
mainnet_e58758 - phase0 processRewardsAndPenalties 33.427 ms/op 28.470 ms/op 1.17
mainnet_e58758 - phase0 processRegistryUpdates 7.5060 us/op 5.9920 us/op 1.25
mainnet_e58758 - phase0 processSlashings 636.00 ns/op 721.00 ns/op 0.88
mainnet_e58758 - phase0 processEth1DataReset 500.00 ns/op 671.00 ns/op 0.75
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.7031 ms/op 1.1208 ms/op 1.52
mainnet_e58758 - phase0 processSlashingsReset 3.4110 us/op 2.1050 us/op 1.62
mainnet_e58758 - phase0 processRandaoMixesReset 6.0800 us/op 2.9760 us/op 2.04
mainnet_e58758 - phase0 processHistoricalRootsUpdate 873.00 ns/op 700.00 ns/op 1.25
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.8700 us/op 2.7330 us/op 1.78
mainnet_e58758 - phase0 afterProcessEpoch 76.968 ms/op 68.727 ms/op 1.12
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.0356 ms/op 819.48 us/op 1.26
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.9461 ms/op 1.5015 ms/op 1.30
altair processInactivityUpdates - 250000 normalcase 24.053 ms/op 16.205 ms/op 1.48
altair processInactivityUpdates - 250000 worstcase 23.443 ms/op 19.732 ms/op 1.19
phase0 processRegistryUpdates - 250000 normalcase 10.737 us/op 5.1600 us/op 2.08
phase0 processRegistryUpdates - 250000 badcase_full_deposits 461.49 us/op 293.05 us/op 1.57
phase0 processRegistryUpdates - 250000 worstcase 0.5 134.40 ms/op 107.82 ms/op 1.25
altair processRewardsAndPenalties - 250000 normalcase 52.238 ms/op 42.561 ms/op 1.23
altair processRewardsAndPenalties - 250000 worstcase 53.475 ms/op 39.537 ms/op 1.35
phase0 getAttestationDeltas - 250000 normalcase 7.0582 ms/op 5.8706 ms/op 1.20
phase0 getAttestationDeltas - 250000 worstcase 7.4544 ms/op 6.6244 ms/op 1.13
phase0 processSlashings - 250000 worstcase 118.92 us/op 79.123 us/op 1.50
altair processSyncCommitteeUpdates - 250000 116.10 ms/op 98.574 ms/op 1.18
BeaconState.hashTreeRoot - No change 265.00 ns/op 481.00 ns/op 0.55
BeaconState.hashTreeRoot - 1 full validator 126.03 us/op 139.86 us/op 0.90
BeaconState.hashTreeRoot - 32 full validator 1.3659 ms/op 1.4851 ms/op 0.92
BeaconState.hashTreeRoot - 512 full validator 15.270 ms/op 10.310 ms/op 1.48
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 142.46 us/op 139.02 us/op 1.02
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.9417 ms/op 2.0631 ms/op 0.94
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 29.343 ms/op 24.545 ms/op 1.20
BeaconState.hashTreeRoot - 1 balances 115.95 us/op 112.43 us/op 1.03
BeaconState.hashTreeRoot - 32 balances 1.2301 ms/op 1.0818 ms/op 1.14
BeaconState.hashTreeRoot - 512 balances 12.422 ms/op 9.2870 ms/op 1.34
BeaconState.hashTreeRoot - 250000 balances 199.17 ms/op 158.65 ms/op 1.26
aggregationBits - 2048 els - zipIndexesInBitList 22.621 us/op 20.604 us/op 1.10
byteArrayEquals 32 52.679 ns/op 47.152 ns/op 1.12
Buffer.compare 32 17.015 ns/op 14.988 ns/op 1.14
byteArrayEquals 1024 1.5588 us/op 1.2430 us/op 1.25
Buffer.compare 1024 25.129 ns/op 22.168 ns/op 1.13
byteArrayEquals 16384 24.814 us/op 19.570 us/op 1.27
Buffer.compare 16384 199.14 ns/op 164.42 ns/op 1.21
byteArrayEquals 123687377 186.06 ms/op 147.01 ms/op 1.27
Buffer.compare 123687377 6.0568 ms/op 5.2802 ms/op 1.15
byteArrayEquals 32 - diff last byte 51.549 ns/op 46.589 ns/op 1.11
Buffer.compare 32 - diff last byte 16.756 ns/op 15.339 ns/op 1.09
byteArrayEquals 1024 - diff last byte 1.5546 us/op 1.2347 us/op 1.26
Buffer.compare 1024 - diff last byte 25.266 ns/op 24.990 ns/op 1.01
byteArrayEquals 16384 - diff last byte 24.785 us/op 19.649 us/op 1.26
Buffer.compare 16384 - diff last byte 187.62 ns/op 163.66 ns/op 1.15
byteArrayEquals 123687377 - diff last byte 187.78 ms/op 149.03 ms/op 1.26
Buffer.compare 123687377 - diff last byte 6.6382 ms/op 5.3362 ms/op 1.24
byteArrayEquals 32 - random bytes 5.4290 ns/op 4.8990 ns/op 1.11
Buffer.compare 32 - random bytes 17.748 ns/op 15.549 ns/op 1.14
byteArrayEquals 1024 - random bytes 5.5650 ns/op 4.8630 ns/op 1.14
Buffer.compare 1024 - random bytes 17.129 ns/op 15.286 ns/op 1.12
byteArrayEquals 16384 - random bytes 5.0800 ns/op 4.8540 ns/op 1.05
Buffer.compare 16384 - random bytes 17.172 ns/op 15.343 ns/op 1.12
byteArrayEquals 123687377 - random bytes 6.3700 ns/op 7.7300 ns/op 0.82
Buffer.compare 123687377 - random bytes 18.820 ns/op 18.160 ns/op 1.04
regular array get 100000 times 38.388 us/op 30.522 us/op 1.26
wrappedArray get 100000 times 33.006 us/op 30.516 us/op 1.08
arrayWithProxy get 100000 times 13.166 ms/op 10.482 ms/op 1.26
ssz.Root.equals 46.702 ns/op 43.237 ns/op 1.08
byteArrayEquals 45.688 ns/op 42.634 ns/op 1.07
Buffer.compare 10.511 ns/op 8.8770 ns/op 1.18
shuffle list - 16384 els 6.5682 ms/op 5.4660 ms/op 1.20
shuffle list - 250000 els 94.445 ms/op 80.222 ms/op 1.18
processSlot - 1 slots 11.638 us/op 13.947 us/op 0.83
processSlot - 32 slots 2.4888 ms/op 3.6361 ms/op 0.68
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 39.853 ms/op 43.019 ms/op 0.93
getCommitteeAssignments - req 1 vs - 250000 vc 2.1522 ms/op 1.8392 ms/op 1.17
getCommitteeAssignments - req 100 vs - 250000 vc 4.1414 ms/op 3.6064 ms/op 1.15
getCommitteeAssignments - req 1000 vs - 250000 vc 4.3953 ms/op 3.8682 ms/op 1.14
findModifiedValidators - 10000 modified validators 229.21 ms/op 229.25 ms/op 1.00
findModifiedValidators - 1000 modified validators 175.45 ms/op 140.19 ms/op 1.25
findModifiedValidators - 100 modified validators 170.01 ms/op 131.02 ms/op 1.30
findModifiedValidators - 10 modified validators 168.74 ms/op 140.21 ms/op 1.20
findModifiedValidators - 1 modified validators 177.17 ms/op 128.24 ms/op 1.38
findModifiedValidators - no difference 163.24 ms/op 133.35 ms/op 1.22
compare ViewDUs 3.2617 s/op 3.4315 s/op 0.95
compare each validator Uint8Array 1.6323 s/op 1.5074 s/op 1.08
compare ViewDU to Uint8Array 1.0368 s/op 631.90 ms/op 1.64
migrate state 1000000 validators, 24 modified, 0 new 538.30 ms/op 580.48 ms/op 0.93
migrate state 1000000 validators, 1700 modified, 1000 new 937.70 ms/op 706.14 ms/op 1.33
migrate state 1000000 validators, 3400 modified, 2000 new 1.0385 s/op 763.97 ms/op 1.36
migrate state 1500000 validators, 24 modified, 0 new 690.00 ms/op 513.72 ms/op 1.34
migrate state 1500000 validators, 1700 modified, 1000 new 883.75 ms/op 710.90 ms/op 1.24
migrate state 1500000 validators, 3400 modified, 2000 new 1.1559 s/op 931.38 ms/op 1.24
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.2000 ns/op 6.5400 ns/op 0.64
state getBlockRootAtSlot - 250000 vs - 7PWei 876.04 ns/op 762.50 ns/op 1.15
computeProposers - vc 250000 6.8303 ms/op 5.7378 ms/op 1.19
computeEpochShuffling - vc 250000 90.979 ms/op 82.215 ms/op 1.11
getNextSyncCommittee - vc 250000 122.41 ms/op 99.000 ms/op 1.24
computeSigningRoot for AttestationData 27.380 us/op 21.746 us/op 1.26
hash AttestationData serialized data then Buffer.toString(base64) 1.5063 us/op 1.1830 us/op 1.27
toHexString serialized data 872.38 ns/op 756.19 ns/op 1.15
Buffer.toString(base64) 180.11 ns/op 131.19 ns/op 1.37

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
node-version: 22.4
cache: yarn
node-version: 22
cache: yarn
Copy link
Member

Choose a reason for hiding this comment

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

we shouldn't re-add the white space here, and in a few other places

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Didn't added anything manually, just reverted the earlier merged PR.

Copy link
Member

@nflaig nflaig Aug 2, 2024

Choose a reason for hiding this comment

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

yes, but if/when we merge this should clean up the diff before that

@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.

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