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: pin nodejs version to 22.4 #7291

Merged
merged 1 commit into from
Dec 12, 2024
Merged

Conversation

wemeetagain
Copy link
Member

This reverts commit 69ae688.

Motivation

  • poor performance on 1.24.0-rc.0

@wemeetagain wemeetagain requested a review from a team as a code owner December 12, 2024 15:59
@wemeetagain wemeetagain changed the title Revert "chore: unpin nodejs version from 22.4 (#6982)" chore: revert "chore: unpin nodejs version from 22.4 (#6982)" Dec 12, 2024
@wemeetagain wemeetagain changed the title chore: revert "chore: unpin nodejs version from 22.4 (#6982)" chore: pin nodejs version to 22.4 Dec 12, 2024
Copy link

codecov bot commented Dec 12, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 48.91%. Comparing base (dad9037) to head (5fb67ab).
Report is 1 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #7291   +/-   ##
=========================================
  Coverage     48.91%   48.91%           
=========================================
  Files           601      601           
  Lines         40188    40188           
  Branches       2061     2061           
=========================================
  Hits          19658    19658           
  Misses        20492    20492           
  Partials         38       38           

Copy link
Contributor

Performance Report

✔️ no performance regression detected

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: a41564e Previous: dad9037 Ratio
browser block root to RootHex using toHex 196.45 ns/op 643.44 ns/op 0.31
Full benchmark results
Benchmark suite Current: a41564e Previous: dad9037 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.5252 ms/op 1.6714 ms/op 1.51
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 64.659 us/op 45.261 us/op 1.43
BLS verify - blst 871.83 us/op 1.3739 ms/op 0.63
BLS verifyMultipleSignatures 3 - blst 1.2946 ms/op 2.2450 ms/op 0.58
BLS verifyMultipleSignatures 8 - blst 1.9175 ms/op 2.5323 ms/op 0.76
BLS verifyMultipleSignatures 32 - blst 5.8348 ms/op 7.4077 ms/op 0.79
BLS verifyMultipleSignatures 64 - blst 10.965 ms/op 11.132 ms/op 0.99
BLS verifyMultipleSignatures 128 - blst 18.321 ms/op 17.333 ms/op 1.06
BLS deserializing 10000 signatures 726.77 ms/op 679.15 ms/op 1.07
BLS deserializing 100000 signatures 7.2605 s/op 6.9662 s/op 1.04
BLS verifyMultipleSignatures - same message - 3 - blst 1.0936 ms/op 1.0703 ms/op 1.02
BLS verifyMultipleSignatures - same message - 8 - blst 1.2446 ms/op 1.4989 ms/op 0.83
BLS verifyMultipleSignatures - same message - 32 - blst 2.0265 ms/op 1.8761 ms/op 1.08
BLS verifyMultipleSignatures - same message - 64 - blst 2.9815 ms/op 2.5647 ms/op 1.16
BLS verifyMultipleSignatures - same message - 128 - blst 5.2186 ms/op 4.3642 ms/op 1.20
BLS aggregatePubkeys 32 - blst 22.551 us/op 19.959 us/op 1.13
BLS aggregatePubkeys 128 - blst 72.497 us/op 70.011 us/op 1.04
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 135.76 ms/op 88.632 ms/op 1.53
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 85.828 ms/op 71.325 ms/op 1.20
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 54.591 ms/op 56.663 ms/op 0.96
getSlashingsAndExits - default max 195.91 us/op 131.73 us/op 1.49
getSlashingsAndExits - 2k 431.58 us/op 380.09 us/op 1.14
proposeBlockBody type=full, size=empty 7.4926 ms/op 6.2770 ms/op 1.19
isKnown best case - 1 super set check 448.00 ns/op 301.00 ns/op 1.49
isKnown normal case - 2 super set checks 434.00 ns/op 295.00 ns/op 1.47
isKnown worse case - 16 super set checks 471.00 ns/op 292.00 ns/op 1.61
InMemoryCheckpointStateCache - add get delete 3.4000 us/op 2.8620 us/op 1.19
validate api signedAggregateAndProof - struct 1.6965 ms/op 1.8409 ms/op 0.92
validate gossip signedAggregateAndProof - struct 1.6132 ms/op 2.0581 ms/op 0.78
batch validate gossip attestation - vc 640000 - chunk 32 158.62 us/op 137.68 us/op 1.15
batch validate gossip attestation - vc 640000 - chunk 64 144.18 us/op 122.47 us/op 1.18
batch validate gossip attestation - vc 640000 - chunk 128 135.31 us/op 120.92 us/op 1.12
batch validate gossip attestation - vc 640000 - chunk 256 131.15 us/op 134.38 us/op 0.98
pickEth1Vote - no votes 1.4920 ms/op 1.4279 ms/op 1.04
pickEth1Vote - max votes 11.982 ms/op 8.2460 ms/op 1.45
pickEth1Vote - Eth1Data hashTreeRoot value x2048 16.962 ms/op 19.249 ms/op 0.88
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 27.360 ms/op 25.857 ms/op 1.06
pickEth1Vote - Eth1Data fastSerialize value x2048 629.39 us/op 673.36 us/op 0.93
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.4574 ms/op 3.5191 ms/op 1.27
bytes32 toHexString 765.00 ns/op 662.00 ns/op 1.16
bytes32 Buffer.toString(hex) 292.00 ns/op 299.00 ns/op 0.98
bytes32 Buffer.toString(hex) from Uint8Array 523.00 ns/op 514.00 ns/op 1.02
bytes32 Buffer.toString(hex) + 0x 292.00 ns/op 305.00 ns/op 0.96
Object access 1 prop 0.21200 ns/op 0.20700 ns/op 1.02
Map access 1 prop 0.15400 ns/op 0.16400 ns/op 0.94
Object get x1000 6.6590 ns/op 7.9410 ns/op 0.84
Map get x1000 6.8710 ns/op 8.4860 ns/op 0.81
Object set x1000 59.469 ns/op 55.344 ns/op 1.07
Map set x1000 39.974 ns/op 36.520 ns/op 1.09
Return object 10000 times 0.34020 ns/op 0.35520 ns/op 0.96
Throw Error 10000 times 3.7815 us/op 4.1860 us/op 0.90
toHex 206.63 ns/op 196.92 ns/op 1.05
Buffer.from 178.72 ns/op 185.07 ns/op 0.97
shared Buffer 112.09 ns/op 116.86 ns/op 0.96
fastMsgIdFn sha256 / 200 bytes 2.9430 us/op 2.8650 us/op 1.03
fastMsgIdFn h32 xxhash / 200 bytes 372.00 ns/op 328.00 ns/op 1.13
fastMsgIdFn h64 xxhash / 200 bytes 360.00 ns/op 332.00 ns/op 1.08
fastMsgIdFn sha256 / 1000 bytes 9.8860 us/op 8.9630 us/op 1.10
fastMsgIdFn h32 xxhash / 1000 bytes 532.00 ns/op 478.00 ns/op 1.11
fastMsgIdFn h64 xxhash / 1000 bytes 439.00 ns/op 412.00 ns/op 1.07
fastMsgIdFn sha256 / 10000 bytes 85.336 us/op 79.598 us/op 1.07
fastMsgIdFn h32 xxhash / 10000 bytes 2.2400 us/op 2.1850 us/op 1.03
fastMsgIdFn h64 xxhash / 10000 bytes 1.3510 us/op 1.4320 us/op 0.94
send data - 1000 256B messages 16.909 ms/op 16.245 ms/op 1.04
send data - 1000 512B messages 24.566 ms/op 22.505 ms/op 1.09
send data - 1000 1024B messages 32.166 ms/op 33.818 ms/op 0.95
send data - 1000 1200B messages 30.710 ms/op 27.103 ms/op 1.13
send data - 1000 2048B messages 41.388 ms/op 44.433 ms/op 0.93
send data - 1000 4096B messages 35.721 ms/op 41.785 ms/op 0.85
send data - 1000 16384B messages 90.030 ms/op 88.190 ms/op 1.02
send data - 1000 65536B messages 234.09 ms/op 241.83 ms/op 0.97
enrSubnets - fastDeserialize 64 bits 1.6450 us/op 1.2580 us/op 1.31
enrSubnets - ssz BitVector 64 bits 488.00 ns/op 533.00 ns/op 0.92
enrSubnets - fastDeserialize 4 bits 223.00 ns/op 195.00 ns/op 1.14
enrSubnets - ssz BitVector 4 bits 502.00 ns/op 443.00 ns/op 1.13
prioritizePeers score -10:0 att 32-0.1 sync 2-0 226.68 us/op 207.98 us/op 1.09
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 240.75 us/op 258.53 us/op 0.93
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 350.81 us/op 319.10 us/op 1.10
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 521.52 us/op 532.45 us/op 0.98
prioritizePeers score 0:0 att 64-1 sync 4-1 982.01 us/op 590.22 us/op 1.66
array of 16000 items push then shift 1.7383 us/op 1.8154 us/op 0.96
LinkedList of 16000 items push then shift 8.5070 ns/op 8.3130 ns/op 1.02
array of 16000 items push then pop 151.33 ns/op 127.12 ns/op 1.19
LinkedList of 16000 items push then pop 7.9680 ns/op 7.7100 ns/op 1.03
array of 24000 items push then shift 2.6023 us/op 2.6233 us/op 0.99
LinkedList of 24000 items push then shift 8.5590 ns/op 7.8630 ns/op 1.09
array of 24000 items push then pop 192.08 ns/op 151.92 ns/op 1.26
LinkedList of 24000 items push then pop 7.9540 ns/op 7.6430 ns/op 1.04
intersect bitArray bitLen 8 6.7630 ns/op 7.2390 ns/op 0.93
intersect array and set length 8 74.138 ns/op 48.574 ns/op 1.53
intersect bitArray bitLen 128 32.443 ns/op 34.620 ns/op 0.94
intersect array and set length 128 898.87 ns/op 737.08 ns/op 1.22
bitArray.getTrueBitIndexes() bitLen 128 2.4600 us/op 1.3540 us/op 1.82
bitArray.getTrueBitIndexes() bitLen 248 4.4890 us/op 2.3320 us/op 1.92
bitArray.getTrueBitIndexes() bitLen 512 9.0510 us/op 4.5710 us/op 1.98
Buffer.concat 32 items 1.1170 us/op 820.00 ns/op 1.36
Uint8Array.set 32 items 1.8010 us/op 2.0440 us/op 0.88
Buffer.copy 2.1710 us/op 3.5380 us/op 0.61
Uint8Array.set - with subarray 3.3830 us/op 3.3500 us/op 1.01
Uint8Array.set - without subarray 1.5480 us/op 1.6110 us/op 0.96
getUint32 - dataview 303.00 ns/op 248.00 ns/op 1.22
getUint32 - manual 250.00 ns/op 173.00 ns/op 1.45
Set add up to 64 items then delete first 3.2704 us/op 2.4761 us/op 1.32
OrderedSet add up to 64 items then delete first 4.7504 us/op 3.6955 us/op 1.29
Set add up to 64 items then delete last 3.7370 us/op 3.0400 us/op 1.23
OrderedSet add up to 64 items then delete last 6.2229 us/op 4.6110 us/op 1.35
Set add up to 64 items then delete middle 3.7857 us/op 3.1277 us/op 1.21
OrderedSet add up to 64 items then delete middle 7.6671 us/op 6.5149 us/op 1.18
Set add up to 128 items then delete first 7.2763 us/op 5.7882 us/op 1.26
OrderedSet add up to 128 items then delete first 11.154 us/op 8.3644 us/op 1.33
Set add up to 128 items then delete last 7.6201 us/op 5.9096 us/op 1.29
OrderedSet add up to 128 items then delete last 12.908 us/op 9.7616 us/op 1.32
Set add up to 128 items then delete middle 8.4677 us/op 5.8988 us/op 1.44
OrderedSet add up to 128 items then delete middle 18.817 us/op 16.459 us/op 1.14
Set add up to 256 items then delete first 18.039 us/op 11.741 us/op 1.54
OrderedSet add up to 256 items then delete first 27.274 us/op 17.505 us/op 1.56
Set add up to 256 items then delete last 17.005 us/op 11.900 us/op 1.43
OrderedSet add up to 256 items then delete last 22.359 us/op 19.640 us/op 1.14
Set add up to 256 items then delete middle 13.750 us/op 12.399 us/op 1.11
OrderedSet add up to 256 items then delete middle 52.861 us/op 52.149 us/op 1.01
transfer serialized Status (84 B) 1.7710 us/op 3.0520 us/op 0.58
copy serialized Status (84 B) 1.6550 us/op 1.5190 us/op 1.09
transfer serialized SignedVoluntaryExit (112 B) 1.8430 us/op 3.3080 us/op 0.56
copy serialized SignedVoluntaryExit (112 B) 1.6450 us/op 1.6520 us/op 1.00
transfer serialized ProposerSlashing (416 B) 3.0280 us/op 3.2520 us/op 0.93
copy serialized ProposerSlashing (416 B) 2.1380 us/op 1.8570 us/op 1.15
transfer serialized Attestation (485 B) 2.0330 us/op 3.1410 us/op 0.65
copy serialized Attestation (485 B) 2.1140 us/op 1.8000 us/op 1.17
transfer serialized AttesterSlashing (33232 B) 2.4150 us/op 3.0580 us/op 0.79
copy serialized AttesterSlashing (33232 B) 10.118 us/op 5.0530 us/op 2.00
transfer serialized Small SignedBeaconBlock (128000 B) 3.5920 us/op 3.5430 us/op 1.01
copy serialized Small SignedBeaconBlock (128000 B) 27.118 us/op 14.251 us/op 1.90
transfer serialized Avg SignedBeaconBlock (200000 B) 5.5260 us/op 4.2710 us/op 1.29
copy serialized Avg SignedBeaconBlock (200000 B) 39.536 us/op 20.343 us/op 1.94
transfer serialized BlobsSidecar (524380 B) 5.3080 us/op 4.1320 us/op 1.28
copy serialized BlobsSidecar (524380 B) 129.00 us/op 212.78 us/op 0.61
transfer serialized Big SignedBeaconBlock (1000000 B) 6.2330 us/op 4.4210 us/op 1.41
copy serialized Big SignedBeaconBlock (1000000 B) 266.11 us/op 159.37 us/op 1.67
pass gossip attestations to forkchoice per slot 4.3186 ms/op 3.1077 ms/op 1.39
forkChoice updateHead vc 100000 bc 64 eq 0 538.95 us/op 611.63 us/op 0.88
forkChoice updateHead vc 600000 bc 64 eq 0 5.9552 ms/op 4.1447 ms/op 1.44
forkChoice updateHead vc 1000000 bc 64 eq 0 7.5275 ms/op 6.1953 ms/op 1.22
forkChoice updateHead vc 600000 bc 320 eq 0 3.9057 ms/op 3.5509 ms/op 1.10
forkChoice updateHead vc 600000 bc 1200 eq 0 4.1493 ms/op 3.3123 ms/op 1.25
forkChoice updateHead vc 600000 bc 7200 eq 0 5.1016 ms/op 4.2775 ms/op 1.19
forkChoice updateHead vc 600000 bc 64 eq 1000 12.543 ms/op 12.190 ms/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 10000 12.152 ms/op 11.886 ms/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 300000 29.340 ms/op 15.610 ms/op 1.88
computeDeltas 500000 validators 300 proto nodes 5.7437 ms/op 4.4837 ms/op 1.28
computeDeltas 500000 validators 1200 proto nodes 4.9597 ms/op 4.5024 ms/op 1.10
computeDeltas 500000 validators 7200 proto nodes 4.9764 ms/op 4.3063 ms/op 1.16
computeDeltas 750000 validators 300 proto nodes 7.6378 ms/op 6.6033 ms/op 1.16
computeDeltas 750000 validators 1200 proto nodes 9.3087 ms/op 6.7198 ms/op 1.39
computeDeltas 750000 validators 7200 proto nodes 8.1310 ms/op 6.5168 ms/op 1.25
computeDeltas 1400000 validators 300 proto nodes 14.361 ms/op 11.792 ms/op 1.22
computeDeltas 1400000 validators 1200 proto nodes 13.777 ms/op 12.022 ms/op 1.15
computeDeltas 1400000 validators 7200 proto nodes 12.390 ms/op 12.470 ms/op 0.99
computeDeltas 2100000 validators 300 proto nodes 19.665 ms/op 19.145 ms/op 1.03
computeDeltas 2100000 validators 1200 proto nodes 19.064 ms/op 18.850 ms/op 1.01
computeDeltas 2100000 validators 7200 proto nodes 20.898 ms/op 19.305 ms/op 1.08
altair processAttestation - 250000 vs - 7PWei normalcase 2.2773 ms/op 1.8136 ms/op 1.26
altair processAttestation - 250000 vs - 7PWei worstcase 3.5311 ms/op 2.7216 ms/op 1.30
altair processAttestation - setStatus - 1/6 committees join 104.57 us/op 98.350 us/op 1.06
altair processAttestation - setStatus - 1/3 committees join 200.23 us/op 198.78 us/op 1.01
altair processAttestation - setStatus - 1/2 committees join 279.30 us/op 270.88 us/op 1.03
altair processAttestation - setStatus - 2/3 committees join 346.07 us/op 377.99 us/op 0.92
altair processAttestation - setStatus - 4/5 committees join 528.38 us/op 543.60 us/op 0.97
altair processAttestation - setStatus - 100% committees join 592.34 us/op 619.60 us/op 0.96
altair processBlock - 250000 vs - 7PWei normalcase 5.9043 ms/op 4.3690 ms/op 1.35
altair processBlock - 250000 vs - 7PWei normalcase hashState 28.934 ms/op 30.939 ms/op 0.94
altair processBlock - 250000 vs - 7PWei worstcase 39.452 ms/op 43.170 ms/op 0.91
altair processBlock - 250000 vs - 7PWei worstcase hashState 75.331 ms/op 101.96 ms/op 0.74
phase0 processBlock - 250000 vs - 7PWei normalcase 2.2486 ms/op 2.2050 ms/op 1.02
phase0 processBlock - 250000 vs - 7PWei worstcase 25.208 ms/op 25.981 ms/op 0.97
altair processEth1Data - 250000 vs - 7PWei normalcase 424.39 us/op 383.29 us/op 1.11
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 7.3440 us/op 9.1980 us/op 0.80
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 52.842 us/op 71.224 us/op 0.74
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 14.386 us/op 14.034 us/op 1.03
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 7.8040 us/op 12.005 us/op 0.65
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 187.13 us/op 246.32 us/op 0.76
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.1965 ms/op 2.0364 ms/op 0.59
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.6488 ms/op 2.8303 ms/op 0.58
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.7428 ms/op 2.1470 ms/op 0.81
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.3567 ms/op 3.6808 ms/op 1.18
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.6323 ms/op 2.2207 ms/op 0.74
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.2956 ms/op 3.9604 ms/op 1.08
Tree 40 250000 create 261.43 ms/op 217.56 ms/op 1.20
Tree 40 250000 get(125000) 160.91 ns/op 146.32 ns/op 1.10
Tree 40 250000 set(125000) 749.61 ns/op 659.65 ns/op 1.14
Tree 40 250000 toArray() 23.723 ms/op 15.431 ms/op 1.54
Tree 40 250000 iterate all - toArray() + loop 23.651 ms/op 15.296 ms/op 1.55
Tree 40 250000 iterate all - get(i) 60.963 ms/op 51.060 ms/op 1.19
Array 250000 create 4.5998 ms/op 2.9179 ms/op 1.58
Array 250000 clone - spread 1.6493 ms/op 1.5217 ms/op 1.08
Array 250000 get(125000) 0.45300 ns/op 0.41700 ns/op 1.09
Array 250000 set(125000) 0.47500 ns/op 0.44500 ns/op 1.07
Array 250000 iterate all - loop 105.81 us/op 107.64 us/op 0.98
phase0 afterProcessEpoch - 250000 vs - 7PWei 53.228 ms/op 50.357 ms/op 1.06
Array.fill - length 1000000 4.2878 ms/op 3.6854 ms/op 1.16
Array push - length 1000000 20.844 ms/op 17.401 ms/op 1.20
Array.get 0.29419 ns/op 0.27454 ns/op 1.07
Uint8Array.get 0.46151 ns/op 0.44688 ns/op 1.03
phase0 beforeProcessEpoch - 250000 vs - 7PWei 23.638 ms/op 15.831 ms/op 1.49
altair processEpoch - mainnet_e81889 319.19 ms/op 320.58 ms/op 1.00
mainnet_e81889 - altair beforeProcessEpoch 27.049 ms/op 18.024 ms/op 1.50
mainnet_e81889 - altair processJustificationAndFinalization 15.115 us/op 26.280 us/op 0.58
mainnet_e81889 - altair processInactivityUpdates 8.6099 ms/op 5.0846 ms/op 1.69
mainnet_e81889 - altair processRewardsAndPenalties 53.675 ms/op 59.056 ms/op 0.91
mainnet_e81889 - altair processRegistryUpdates 2.2970 us/op 4.2500 us/op 0.54
mainnet_e81889 - altair processSlashings 485.00 ns/op 514.00 ns/op 0.94
mainnet_e81889 - altair processEth1DataReset 560.00 ns/op 982.00 ns/op 0.57
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.5265 ms/op 2.5698 ms/op 0.59
mainnet_e81889 - altair processSlashingsReset 6.9610 us/op 5.7910 us/op 1.20
mainnet_e81889 - altair processRandaoMixesReset 5.1190 us/op 8.4740 us/op 0.60
mainnet_e81889 - altair processHistoricalRootsUpdate 760.00 ns/op 1.1050 us/op 0.69
mainnet_e81889 - altair processParticipationFlagUpdates 4.6120 us/op 2.8540 us/op 1.62
mainnet_e81889 - altair processSyncCommitteeUpdates 1.0960 us/op 719.00 ns/op 1.52
mainnet_e81889 - altair afterProcessEpoch 55.649 ms/op 52.507 ms/op 1.06
capella processEpoch - mainnet_e217614 1.3320 s/op 1.1666 s/op 1.14
mainnet_e217614 - capella beforeProcessEpoch 83.489 ms/op 70.738 ms/op 1.18
mainnet_e217614 - capella processJustificationAndFinalization 22.182 us/op 18.868 us/op 1.18
mainnet_e217614 - capella processInactivityUpdates 20.749 ms/op 18.696 ms/op 1.11
mainnet_e217614 - capella processRewardsAndPenalties 265.90 ms/op 263.46 ms/op 1.01
mainnet_e217614 - capella processRegistryUpdates 24.786 us/op 21.990 us/op 1.13
mainnet_e217614 - capella processSlashings 983.00 ns/op 1.1080 us/op 0.89
mainnet_e217614 - capella processEth1DataReset 680.00 ns/op 800.00 ns/op 0.85
mainnet_e217614 - capella processEffectiveBalanceUpdates 20.553 ms/op 10.460 ms/op 1.96
mainnet_e217614 - capella processSlashingsReset 8.1050 us/op 5.1880 us/op 1.56
mainnet_e217614 - capella processRandaoMixesReset 10.870 us/op 7.2810 us/op 1.49
mainnet_e217614 - capella processHistoricalRootsUpdate 1.6240 us/op 669.00 ns/op 2.43
mainnet_e217614 - capella processParticipationFlagUpdates 6.4990 us/op 3.3890 us/op 1.92
mainnet_e217614 - capella afterProcessEpoch 139.18 ms/op 125.37 ms/op 1.11
phase0 processEpoch - mainnet_e58758 506.41 ms/op 359.83 ms/op 1.41
mainnet_e58758 - phase0 beforeProcessEpoch 123.21 ms/op 94.284 ms/op 1.31
mainnet_e58758 - phase0 processJustificationAndFinalization 36.545 us/op 20.542 us/op 1.78
mainnet_e58758 - phase0 processRewardsAndPenalties 47.244 ms/op 31.981 ms/op 1.48
mainnet_e58758 - phase0 processRegistryUpdates 17.879 us/op 14.964 us/op 1.19
mainnet_e58758 - phase0 processSlashings 1.0900 us/op 1.0320 us/op 1.06
mainnet_e58758 - phase0 processEth1DataReset 1.4070 us/op 841.00 ns/op 1.67
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.3641 ms/op 2.1060 ms/op 1.12
mainnet_e58758 - phase0 processSlashingsReset 6.3810 us/op 5.0150 us/op 1.27
mainnet_e58758 - phase0 processRandaoMixesReset 12.246 us/op 7.1280 us/op 1.72
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.5900 us/op 943.00 ns/op 1.69
mainnet_e58758 - phase0 processParticipationRecordUpdates 8.0670 us/op 5.9560 us/op 1.35
mainnet_e58758 - phase0 afterProcessEpoch 49.728 ms/op 44.454 ms/op 1.12
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.7078 ms/op 2.4508 ms/op 1.10
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.2783 ms/op 1.9415 ms/op 1.69
altair processInactivityUpdates - 250000 normalcase 23.527 ms/op 20.872 ms/op 1.13
altair processInactivityUpdates - 250000 worstcase 23.247 ms/op 20.903 ms/op 1.11
phase0 processRegistryUpdates - 250000 normalcase 17.190 us/op 15.504 us/op 1.11
phase0 processRegistryUpdates - 250000 badcase_full_deposits 415.21 us/op 487.20 us/op 0.85
phase0 processRegistryUpdates - 250000 worstcase 0.5 167.89 ms/op 97.241 ms/op 1.73
altair processRewardsAndPenalties - 250000 normalcase 53.756 ms/op 46.794 ms/op 1.15
altair processRewardsAndPenalties - 250000 worstcase 61.292 ms/op 59.644 ms/op 1.03
phase0 getAttestationDeltas - 250000 normalcase 9.4050 ms/op 7.5587 ms/op 1.24
phase0 getAttestationDeltas - 250000 worstcase 14.094 ms/op 7.2533 ms/op 1.94
phase0 processSlashings - 250000 worstcase 152.85 us/op 123.66 us/op 1.24
altair processSyncCommitteeUpdates - 250000 168.32 ms/op 119.63 ms/op 1.41
BeaconState.hashTreeRoot - No change 310.00 ns/op 242.00 ns/op 1.28
BeaconState.hashTreeRoot - 1 full validator 149.43 us/op 128.21 us/op 1.17
BeaconState.hashTreeRoot - 32 full validator 1.3816 ms/op 1.4532 ms/op 0.95
BeaconState.hashTreeRoot - 512 full validator 14.450 ms/op 11.748 ms/op 1.23
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 191.63 us/op 143.17 us/op 1.34
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.6150 ms/op 1.9799 ms/op 1.32
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 30.200 ms/op 25.005 ms/op 1.21
BeaconState.hashTreeRoot - 1 balances 122.99 us/op 130.87 us/op 0.94
BeaconState.hashTreeRoot - 32 balances 1.3017 ms/op 1.1627 ms/op 1.12
BeaconState.hashTreeRoot - 512 balances 8.8275 ms/op 9.7676 ms/op 0.90
BeaconState.hashTreeRoot - 250000 balances 192.31 ms/op 190.03 ms/op 1.01
aggregationBits - 2048 els - zipIndexesInBitList 31.424 us/op 24.116 us/op 1.30
byteArrayEquals 32 58.088 ns/op 55.117 ns/op 1.05
Buffer.compare 32 20.026 ns/op 17.645 ns/op 1.13
byteArrayEquals 1024 1.6583 us/op 1.6670 us/op 0.99
Buffer.compare 1024 25.539 ns/op 26.122 ns/op 0.98
byteArrayEquals 16384 28.187 us/op 25.853 us/op 1.09
Buffer.compare 16384 234.71 ns/op 207.33 ns/op 1.13
byteArrayEquals 123687377 213.56 ms/op 204.08 ms/op 1.05
Buffer.compare 123687377 14.018 ms/op 6.4984 ms/op 2.16
byteArrayEquals 32 - diff last byte 76.117 ns/op 54.977 ns/op 1.38
Buffer.compare 32 - diff last byte 21.475 ns/op 18.329 ns/op 1.17
byteArrayEquals 1024 - diff last byte 1.7537 us/op 1.7153 us/op 1.02
Buffer.compare 1024 - diff last byte 37.984 ns/op 28.125 ns/op 1.35
byteArrayEquals 16384 - diff last byte 29.233 us/op 26.580 us/op 1.10
Buffer.compare 16384 - diff last byte 272.86 ns/op 195.12 ns/op 1.40
byteArrayEquals 123687377 - diff last byte 221.50 ms/op 195.87 ms/op 1.13
Buffer.compare 123687377 - diff last byte 15.357 ms/op 6.4354 ms/op 2.39
byteArrayEquals 32 - random bytes 6.2410 ns/op 5.3970 ns/op 1.16
Buffer.compare 32 - random bytes 20.674 ns/op 18.300 ns/op 1.13
byteArrayEquals 1024 - random bytes 5.6810 ns/op 5.3270 ns/op 1.07
Buffer.compare 1024 - random bytes 19.581 ns/op 18.248 ns/op 1.07
byteArrayEquals 16384 - random bytes 5.8410 ns/op 5.3340 ns/op 1.10
Buffer.compare 16384 - random bytes 20.127 ns/op 18.156 ns/op 1.11
byteArrayEquals 123687377 - random bytes 7.5800 ns/op 6.8000 ns/op 1.11
Buffer.compare 123687377 - random bytes 21.860 ns/op 19.410 ns/op 1.13
regular array get 100000 times 49.061 us/op 38.635 us/op 1.27
wrappedArray get 100000 times 40.690 us/op 33.338 us/op 1.22
arrayWithProxy get 100000 times 16.302 ms/op 13.935 ms/op 1.17
ssz.Root.equals 51.760 ns/op 46.983 ns/op 1.10
byteArrayEquals 49.461 ns/op 46.227 ns/op 1.07
Buffer.compare 12.360 ns/op 10.665 ns/op 1.16
processSlot - 1 slots 21.661 us/op 14.204 us/op 1.52
processSlot - 32 slots 3.8487 ms/op 3.5061 ms/op 1.10
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 44.670 ms/op 42.942 ms/op 1.04
getCommitteeAssignments - req 1 vs - 250000 vc 2.3522 ms/op 2.2298 ms/op 1.05
getCommitteeAssignments - req 100 vs - 250000 vc 4.2972 ms/op 4.3057 ms/op 1.00
getCommitteeAssignments - req 1000 vs - 250000 vc 4.8019 ms/op 4.5921 ms/op 1.05
findModifiedValidators - 10000 modified validators 368.29 ms/op 239.12 ms/op 1.54
findModifiedValidators - 1000 modified validators 241.75 ms/op 213.35 ms/op 1.13
findModifiedValidators - 100 modified validators 272.10 ms/op 166.34 ms/op 1.64
findModifiedValidators - 10 modified validators 177.87 ms/op 177.70 ms/op 1.00
findModifiedValidators - 1 modified validators 217.22 ms/op 164.06 ms/op 1.32
findModifiedValidators - no difference 241.12 ms/op 171.13 ms/op 1.41
compare ViewDUs 3.7286 s/op 3.7360 s/op 1.00
compare each validator Uint8Array 1.6296 s/op 1.5663 s/op 1.04
compare ViewDU to Uint8Array 1.3565 s/op 1.3446 s/op 1.01
migrate state 1000000 validators, 24 modified, 0 new 839.15 ms/op 947.47 ms/op 0.89
migrate state 1000000 validators, 1700 modified, 1000 new 1.1682 s/op 1.4271 s/op 0.82
migrate state 1000000 validators, 3400 modified, 2000 new 1.8104 s/op 2.0999 s/op 0.86
migrate state 1500000 validators, 24 modified, 0 new 1.1230 s/op 1.4782 s/op 0.76
migrate state 1500000 validators, 1700 modified, 1000 new 1.0166 s/op 1.9180 s/op 0.53
migrate state 1500000 validators, 3400 modified, 2000 new 1.2428 s/op 2.7879 s/op 0.45
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.7400 ns/op 10.460 ns/op 0.45
state getBlockRootAtSlot - 250000 vs - 7PWei 921.96 ns/op 1.6025 us/op 0.58
computeProposers - vc 250000 7.8859 ms/op 14.693 ms/op 0.54
computeEpochShuffling - vc 250000 42.165 ms/op 102.29 ms/op 0.41
getNextSyncCommittee - vc 250000 130.53 ms/op 304.23 ms/op 0.43
computeSigningRoot for AttestationData 20.151 us/op 48.169 us/op 0.42
hash AttestationData serialized data then Buffer.toString(base64) 1.6107 us/op 4.1870 us/op 0.38
toHexString serialized data 1.0409 us/op 2.7755 us/op 0.38
Buffer.toString(base64) 204.58 ns/op 475.49 ns/op 0.43
nodejs block root to RootHex using toHex 167.21 ns/op 351.14 ns/op 0.48
nodejs block root to RootHex using toRootHex 107.64 ns/op 255.39 ns/op 0.42
browser block root to RootHex using the deprecated toHexString 251.94 ns/op 680.49 ns/op 0.37
browser block root to RootHex using toHex 196.45 ns/op 643.44 ns/op 0.31
browser block root to RootHex using toRootHex 163.55 ns/op 411.35 ns/op 0.40

by benchmarkbot/action

Copy link
Member Author

@wemeetagain wemeetagain left a comment

Choose a reason for hiding this comment

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

lgtm

@wemeetagain wemeetagain merged commit 99794d3 into unstable Dec 12, 2024
20 of 22 checks passed
@wemeetagain wemeetagain deleted the cayman/revert-unpin-node branch December 12, 2024 18:16
wemeetagain added a commit that referenced this pull request Dec 12, 2024
Revert "chore: unpin nodejs version from 22.4 (#6982)"

This reverts commit 69ae688.
philknows pushed a commit that referenced this pull request Dec 12, 2024
Revert "chore: unpin nodejs version from 22.4 (#6982)"

This reverts commit 69ae688.
@twoeths
Copy link
Contributor

twoeths commented Dec 13, 2024

after the revert I see gc pause time rate reduced while gossip traffic volume is the same. It's only been tested 7h on the unstable mainnet node so need more time to monitor, posting here so that we can trace back later

Screenshot 2024-12-13 at 08 50 33

@twoeths twoeths mentioned this pull request Dec 17, 2024
@nflaig
Copy link
Member

nflaig commented Dec 17, 2024

we should revert this again

nflaig added a commit that referenced this pull request Dec 20, 2024
wemeetagain pushed a commit that referenced this pull request Dec 20, 2024
Revert "chore: pin nodejs version to 22.4 (#7291)"

This reverts commit 99794d3.
wemeetagain added a commit that referenced this pull request Dec 20, 2024
* feat: add keymanager endpoint to retrieve proposer config (#7210)

* feat: add keymanager endpoint to retrieve proposer config

* Do not return empty builder config

* Check all builder proposer config values

* Fix settings builder config if undefined

* Fix builder config parsing

* Use ssz type to handle json serialization

Default parsing can't handle BigInt

* Revert "Use ssz type to handle json serialization"

This reverts commit 01fcea7.

* Fix boost factor json serialization

* Remove unused import

* Update test data

* Update proposer config test

* feat: add mekong network option (#7212)

* chore: fix import order with biome syntax (#7211)

Fix import order

* fix: consistently validate pubkey and throw 404 if not found (#7214)

* Throw error if pubkey is unknown when getting graffiti

* Consistently validate pubkey and throw 404 if not found

* fix: only return local keys from /eth/v1/keystores (#7215)

* fix: only return local keys from /eth/v1/keystores

* Fix fetching remote keys in node assertion

* feat: add and use getBlobsV1 to expedite gossip import (#7134)

* hookup the getblobs api to get bob and proof data from el

remove unused

fix import

metrics overhault, test, debugging testing, some feeback

fix

add nethermind bug dicussion link

fix

resolve conflicts

* deblobs timeout

* fix metric

* chore: revert async aggregate with randomness (#7218)

Revert "feat: asyncAggregateWithRandomness (#7204)"

This reverts commit e31d535.

* fix: update config for relaunched mekong network (#7220)

* fix: light client generating `LightClientUpdate` with wrong length of branches (#7187)

* initial commit

* Rewrite SyncCommitteeWitnessRepository

* Fix finality branch

* Update unit test

* fix e2e

* Review PR

---------

Co-authored-by: Nico Flaig <[email protected]>

* fix: archive finalized state when shutting down beacon node (#7221)

* Fix typo

* feat: remove unfinalized pubkey cache (#7230)

* Remove unfinalized pubkey cache

* lint

* Fix unit test

* chore: skip web3_provider unit tests (#7252)

* fix: prune checkpoint states at syncing time (#7241)

* fix: prune checkpoint states at syncing time

* fix: lint

* fix: check-types in test

* fix: sync cached isCompoundingValidatorArr at epoch transition (#7247)

* fix: handle outOfRangeData when range sync Deneb (#7249)

* fix: handle outOfRangeData for beaconBlocksMaybeBlobsByRange()

* fix: lint

* fix: archiveBlocks - handle deneb outOfRangeData block

* fix: sync cached balance when adding new validator to registry (#7255)

* fix: sync cached balance when adding new validator to registry

* chore: add more comments

* fix: remove persisted checkpoint states from the previous run at startup

* fix: do not throw error when trying to prune missing directory (#7257)

* docs: update documentation Oct 2024 (#7178)

* docs update oct 2024 init

* Reconfig quickstart nav and minor fixes

* fix lint

* spelling fixes

* minor fixes and add to wordlist

* prettier fix

* add to wordlist

* sort wordlist

* modify dominance to include lighthouse

* fix typescript casing and add recommendation

* add selection and boost_factor with keymanager notice

* update wordlist

* remove builder enabled and add keymanager api

* spelling

---------

Co-authored-by: Nico Flaig <[email protected]>

* chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /docs (#7268)

Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](moxystudio/node-cross-spawn@v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: add error log to notifier if execution client auth failed (#7239)

* feat: add error log to notifier if execution client auth failed

* Update packages/beacon-node/src/node/notifier.ts

---------

Co-authored-by: NC <[email protected]>

* docs: display rcConfig flag on CLI reference page (#7270)

* docs: display rcConfig flag on CLI reference page

* Update word list

* chore: remove prettier as default formatter for all file types (#7275)

* chore: unhide flags relevant for devnets / testing (#7271)

* feat: debug too many shuffling promises (#7251)

* feat: add asyncShufflingCalculation to StateTransitionOpts

* feat: add asyncShufflingCalculation to all regen / processSlots consumers

* fix: default to false for async shuffling and remove unnecessary props

* fix: remove unnecessary flags from stateTransition

* feat: implement conditional build of shuffling for prepareNextSlot

* fix: spec test bug where shufflingCache is present from BeaconChain constructor

* feat: sync build next shuffling if not queued async

* fix: use getSync to pull next shuffling correctly

* docs: add comment to prepareNextSlot

* refactor: rename StateCloneOpts to StateRegenerationOpts

* feat: pass asyncShufflingCalculation through to afterProcessEpoch and refactor conditional to run purely sync

* docs: add issue number to comment

* chore: lint

* chore: unpin nodejs version from 22.4 (#6982)

* Revert "chore: pin nodejs version to 22.4 (#6964)"

This reverts commit f20484b.

* Don't revert formatting changes

---------

Co-authored-by: Nico Flaig <[email protected]>
Co-authored-by: Cayman <[email protected]>

* chore: update bootnodes file url for holesky and sepolia (#7276)

* feat: add `debug_getHistoricalSummaries` endpoint (#7245)

* feat: add new getHistoricalSummaries endpoint to debug namespace

* Add JSON response

* Restructure to use stateId and add proof to response

* add test scaffolding

* Address feedback

* Move getHistoricalSummaries to lodestar namespace

* add lodestar namespace unit test

* update route name to lodestar namespace

* cast state object as Capella state

* Lint

* json properties need to be lower case

* Make it v1 since it's now part of lodestar namespace

* Group with other /lodestar endpoints

* Simplify beacon node impl

* Rename return type

* Update test description

* Fix variable name

---------

Co-authored-by: Nico Flaig <[email protected]>

* chore: log sync committee signature errors as `error` (#7283)

* fix: update engine_getClientVersionV1 commit encoding (#7282)

* fix: check pubkey or validator index known to a state (#7284)

* fix: check pubkey or validator index known to a state

* chore: add more comments

* feat: lodestar script setup (#7254)

* feat: lodestar_setup

* feat: script_updates + docs

* feat: script_addition_in_docs + command_update

* Remove duplicate script from docs folder

* Minor script updates

* Update script to prepare docs and ignore copied file

* Update installation page

* Wording

---------

Co-authored-by: Nico Flaig <[email protected]>

* feat: add terminal-sized Electra giraffe banner (#7286)

* Create giraffeBanners.ts

* Wire in banner

* Fix file name

* lint

* Address @nflaig's comment

---------

Co-authored-by: NC <[email protected]>

* chore: pin nodejs version to 22.4 (#7291)

Revert "chore: unpin nodejs version from 22.4 (#6982)"

This reverts commit 69ae688.

* feat: expose `DOMAIN_APPLICATION_MASK` in config/spec api (#7296)

* feat: expose DOMAIN_APPLICATION_MASK in config/spec api

* Lint

* feat: make `MAX_REQUEST_BLOB_SIDECARS` and `MAX_BLOBS_PER_BLOCK` configurable (#7294)

* Init commit

* Fix check-types

* Add comment on how MAX_REQUEST_BLOB_SIDECARS is calculated

* Ensure proper config object is passed

* Address comment

---------

Co-authored-by: Nico Flaig <[email protected]>

* feat: use `BLOB_SIDECAR_SUBNET_COUNT` to configure blob subnets (#7297)

feat: use BLOB_SIDECAR_SUBNET_COUNT to configure blob subnets

* chore: log sync aggregate participants when producing beacon block body (#7300)

* chore: log sync aggregate participants when producing beacon block body

* Use isForkLightClient instead of ForkSeq

* Fix produce block unit tests

* chore: print graffiti when producing beacon block body (#7303)

* fix: warn if engine / builder failed to produce block within cutoff time (#7305)

* feat: add kzg commitment length check when validating gossip blocks (#7302)

* feat: add blob sidecar index check (#7313)

Validate blobSidecar index

* fix: fix blob sidecar index check (#7315)

Fix index check

* chore: fix format of printed graffiti from hex to utf-8 (#7306)

* chore: fix format of printed graffiti from hex to utf-8

* Use Buffer.from no copy with offset

* docs: batch commit typos and update contributor readme (#7312)

* batch commit typos and update contributor readme

* update donation text

Co-authored-by: Nico Flaig <[email protected]>

* correct spelling

Co-authored-by: Nico Flaig <[email protected]>

---------

Co-authored-by: Nico Flaig <[email protected]>

* chore: remove trailing null bytes from printed graffiti (#7320)

* chore: remove trailing null bytes from printed graffiti

* Use replaceAll instead of regex

* chore: unpin nodejs version from 22.4 (#7324)

Revert "chore: pin nodejs version to 22.4 (#7291)"

This reverts commit 99794d3.

* chore: bump package versions to 1.24.0

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Nico Flaig <[email protected]>
Co-authored-by: Nazar Hussain <[email protected]>
Co-authored-by: g11tech <[email protected]>
Co-authored-by: Matthew Keil <[email protected]>
Co-authored-by: NC <[email protected]>
Co-authored-by: twoeths <[email protected]>
Co-authored-by: Phil Ngo <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: acolytec3 <[email protected]>
Co-authored-by: Varun Guleria <[email protected]>
Co-authored-by: ClockworkYuzu <[email protected]>
@wemeetagain
Copy link
Member Author

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

3 participants