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: warn when heap limit is too low #6722

Merged
merged 7 commits into from
May 11, 2024
Merged

Conversation

jeluard
Copy link
Contributor

@jeluard jeluard commented May 1, 2024

Motivation

Warn users running the beacon node with less than 8GB of heap (e.g. docker users with older configuration)

@jeluard jeluard requested a review from a team as a code owner May 1, 2024 18:55
Copy link

codecov bot commented May 1, 2024

Codecov Report

Attention: Patch coverage is 22.22222% with 7 lines in your changes are missing coverage. Please review.

Project coverage is 61.87%. Comparing base (122a0f8) to head (7b95dbe).
Report is 8 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #6722      +/-   ##
============================================
- Coverage     61.88%   61.87%   -0.01%     
============================================
  Files           562      562              
  Lines         59309    59318       +9     
  Branches       1916     1916              
============================================
+ Hits          36703    36705       +2     
- Misses        22563    22570       +7     
  Partials         43       43              


/**
* Runs a beacon node.
*/
export async function beaconHandler(args: BeaconArgs & GlobalArgs): Promise<void> {
const {config, options, beaconPaths, network, version, commit, peerId, logger} = await beaconHandlerInit(args);

const heapSizeLimit = getHeapStatistics().heap_size_limit;
if (heapSizeLimit < EIGHT_GB) {
logger.warn("Node.js heap size limit is too low, consider increasing it with --max-old-space-size=8GB");
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
logger.warn("Node.js heap size limit is too low, consider increasing it with --max-old-space-size=8GB");
logger.warn("Node.js heap size limit is too low, consider increasing it with --max-old-space-size=8192");

Copy link
Member

Choose a reason for hiding this comment

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

I wonder if there's a way to make this more intuitive. Just appending --max-old-space-size won't do anything.
Eg:
./lodestar beacon --network mainnet ....... --max-old-space-size=8192

Copy link
Member

Choose a reason for hiding this comment

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

it will throw an error due to unknown arg, but we might wanna make it more obvious that it has to be set a node arg which a lot of the time is set via NODE_OPTIONS

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Right, NODE_OPTIONS could be mentioned here. Or a link to our docs (that would have to be written).

Copy link
Member

Choose a reason for hiding this comment

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

This sounds like an ideal candidate to add to https://chainsafe.github.io/lodestar/faqs

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
Copy link
Contributor

github-actions bot commented May 1, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: d186f11 Previous: 8e875c6 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.1764 ms/op 1.3020 ms/op 0.90
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 97.657 us/op 120.57 us/op 0.81
BLS verify - blst-native 1.2945 ms/op 1.3524 ms/op 0.96
BLS verifyMultipleSignatures 3 - blst-native 2.4563 ms/op 2.6363 ms/op 0.93
BLS verifyMultipleSignatures 8 - blst-native 5.3258 ms/op 5.6120 ms/op 0.95
BLS verifyMultipleSignatures 32 - blst-native 19.154 ms/op 20.239 ms/op 0.95
BLS verifyMultipleSignatures 64 - blst-native 36.421 ms/op 40.669 ms/op 0.90
BLS verifyMultipleSignatures 128 - blst-native 76.722 ms/op 78.295 ms/op 0.98
BLS deserializing 10000 signatures 879.37 ms/op 920.16 ms/op 0.96
BLS deserializing 100000 signatures 8.7301 s/op 8.8692 s/op 0.98
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3094 ms/op 1.3131 ms/op 1.00
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.4778 ms/op 1.4757 ms/op 1.00
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.2847 ms/op 2.2817 ms/op 1.00
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.3538 ms/op 3.2835 ms/op 1.02
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.5000 ms/op 5.5239 ms/op 1.00
BLS aggregatePubkeys 32 - blst-native 28.408 us/op 28.574 us/op 0.99
BLS aggregatePubkeys 128 - blst-native 109.59 us/op 110.35 us/op 0.99
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 53.945 ms/op 59.832 ms/op 0.90
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 53.556 ms/op 65.774 ms/op 0.81
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 32.348 ms/op 34.797 ms/op 0.93
getSlashingsAndExits - default max 184.88 us/op 162.82 us/op 1.14
getSlashingsAndExits - 2k 330.50 us/op 432.15 us/op 0.76
proposeBlockBody type=full, size=empty 5.8278 ms/op 5.7892 ms/op 1.01
isKnown best case - 1 super set check 327.00 ns/op 355.00 ns/op 0.92
isKnown normal case - 2 super set checks 300.00 ns/op 543.00 ns/op 0.55
isKnown worse case - 16 super set checks 298.00 ns/op 476.00 ns/op 0.63
InMemoryCheckpointStateCache - add get delete 6.7930 us/op 6.8020 us/op 1.00
validate api signedAggregateAndProof - struct 2.3443 ms/op 2.3700 ms/op 0.99
validate gossip signedAggregateAndProof - struct 2.3605 ms/op 2.4411 ms/op 0.97
validate gossip attestation - vc 640000 1.3385 ms/op 1.4013 ms/op 0.96
batch validate gossip attestation - vc 640000 - chunk 32 166.76 us/op 174.39 us/op 0.96
batch validate gossip attestation - vc 640000 - chunk 64 147.96 us/op 151.51 us/op 0.98
batch validate gossip attestation - vc 640000 - chunk 128 133.79 us/op 148.67 us/op 0.90
batch validate gossip attestation - vc 640000 - chunk 256 137.64 us/op 149.14 us/op 0.92
pickEth1Vote - no votes 1.2944 ms/op 1.5144 ms/op 0.85
pickEth1Vote - max votes 11.373 ms/op 10.014 ms/op 1.14
pickEth1Vote - Eth1Data hashTreeRoot value x2048 17.375 ms/op 22.578 ms/op 0.77
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 22.272 ms/op 28.409 ms/op 0.78
pickEth1Vote - Eth1Data fastSerialize value x2048 638.46 us/op 768.25 us/op 0.83
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.1680 ms/op 7.6142 ms/op 0.68
bytes32 toHexString 534.00 ns/op 794.00 ns/op 0.67
bytes32 Buffer.toString(hex) 302.00 ns/op 350.00 ns/op 0.86
bytes32 Buffer.toString(hex) from Uint8Array 435.00 ns/op 550.00 ns/op 0.79
bytes32 Buffer.toString(hex) + 0x 288.00 ns/op 327.00 ns/op 0.88
Object access 1 prop 0.17800 ns/op 0.21300 ns/op 0.84
Map access 1 prop 0.15100 ns/op 0.16500 ns/op 0.92
Object get x1000 7.5850 ns/op 7.4800 ns/op 1.01
Map get x1000 0.74600 ns/op 0.89700 ns/op 0.83
Object set x1000 49.758 ns/op 70.456 ns/op 0.71
Map set x1000 40.826 ns/op 54.508 ns/op 0.75
Return object 10000 times 0.23830 ns/op 0.28970 ns/op 0.82
Throw Error 10000 times 3.7874 us/op 4.3421 us/op 0.87
fastMsgIdFn sha256 / 200 bytes 3.3450 us/op 3.5830 us/op 0.93
fastMsgIdFn h32 xxhash / 200 bytes 290.00 ns/op 368.00 ns/op 0.79
fastMsgIdFn h64 xxhash / 200 bytes 347.00 ns/op 411.00 ns/op 0.84
fastMsgIdFn sha256 / 1000 bytes 11.436 us/op 11.829 us/op 0.97
fastMsgIdFn h32 xxhash / 1000 bytes 425.00 ns/op 504.00 ns/op 0.84
fastMsgIdFn h64 xxhash / 1000 bytes 418.00 ns/op 532.00 ns/op 0.79
fastMsgIdFn sha256 / 10000 bytes 103.70 us/op 109.46 us/op 0.95
fastMsgIdFn h32 xxhash / 10000 bytes 1.9370 us/op 2.1080 us/op 0.92
fastMsgIdFn h64 xxhash / 10000 bytes 1.2980 us/op 1.4390 us/op 0.90
send data - 1000 256B messages 17.853 ms/op 20.782 ms/op 0.86
send data - 1000 512B messages 24.556 ms/op 29.201 ms/op 0.84
send data - 1000 1024B messages 37.338 ms/op 43.664 ms/op 0.86
send data - 1000 1200B messages 22.822 ms/op 36.253 ms/op 0.63
send data - 1000 2048B messages 38.548 ms/op 45.862 ms/op 0.84
send data - 1000 4096B messages 37.902 ms/op 44.468 ms/op 0.85
send data - 1000 16384B messages 95.943 ms/op 94.395 ms/op 1.02
send data - 1000 65536B messages 327.05 ms/op 366.54 ms/op 0.89
enrSubnets - fastDeserialize 64 bits 1.2640 us/op 1.3430 us/op 0.94
enrSubnets - ssz BitVector 64 bits 413.00 ns/op 465.00 ns/op 0.89
enrSubnets - fastDeserialize 4 bits 169.00 ns/op 208.00 ns/op 0.81
enrSubnets - ssz BitVector 4 bits 422.00 ns/op 483.00 ns/op 0.87
prioritizePeers score -10:0 att 32-0.1 sync 2-0 209.37 us/op 200.09 us/op 1.05
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 277.28 us/op 294.05 us/op 0.94
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 364.34 us/op 362.86 us/op 1.00
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 596.07 us/op 614.91 us/op 0.97
prioritizePeers score 0:0 att 64-1 sync 4-1 744.48 us/op 753.67 us/op 0.99
array of 16000 items push then shift 1.6108 us/op 1.6686 us/op 0.97
LinkedList of 16000 items push then shift 8.8700 ns/op 9.0260 ns/op 0.98
array of 16000 items push then pop 92.149 ns/op 100.19 ns/op 0.92
LinkedList of 16000 items push then pop 8.7900 ns/op 9.1240 ns/op 0.96
array of 24000 items push then shift 2.5025 us/op 2.6233 us/op 0.95
LinkedList of 24000 items push then shift 8.7570 ns/op 9.3980 ns/op 0.93
array of 24000 items push then pop 137.37 ns/op 152.77 ns/op 0.90
LinkedList of 24000 items push then pop 8.5340 ns/op 9.2870 ns/op 0.92
intersect bitArray bitLen 8 5.7510 ns/op 6.0070 ns/op 0.96
intersect array and set length 8 61.638 ns/op 73.696 ns/op 0.84
intersect bitArray bitLen 128 35.217 ns/op 36.003 ns/op 0.98
intersect array and set length 128 854.34 ns/op 975.26 ns/op 0.88
bitArray.getTrueBitIndexes() bitLen 128 1.4190 us/op 1.5640 us/op 0.91
bitArray.getTrueBitIndexes() bitLen 248 2.3520 us/op 2.5290 us/op 0.93
bitArray.getTrueBitIndexes() bitLen 512 4.9120 us/op 5.0360 us/op 0.98
Buffer.concat 32 items 996.00 ns/op 954.00 ns/op 1.04
Uint8Array.set 32 items 1.9340 us/op 1.9390 us/op 1.00
Set add up to 64 items then delete first 4.2965 us/op 4.8505 us/op 0.89
OrderedSet add up to 64 items then delete first 5.3996 us/op 6.3188 us/op 0.85
Set add up to 64 items then delete last 4.6485 us/op 5.2055 us/op 0.89
OrderedSet add up to 64 items then delete last 5.7599 us/op 6.5149 us/op 0.88
Set add up to 64 items then delete middle 4.6808 us/op 5.0934 us/op 0.92
OrderedSet add up to 64 items then delete middle 7.0410 us/op 7.3633 us/op 0.96
Set add up to 128 items then delete first 9.7417 us/op 10.380 us/op 0.94
OrderedSet add up to 128 items then delete first 12.889 us/op 14.498 us/op 0.89
Set add up to 128 items then delete last 9.4750 us/op 10.571 us/op 0.90
OrderedSet add up to 128 items then delete last 12.010 us/op 13.707 us/op 0.88
Set add up to 128 items then delete middle 9.2852 us/op 10.886 us/op 0.85
OrderedSet add up to 128 items then delete middle 16.944 us/op 19.547 us/op 0.87
Set add up to 256 items then delete first 19.002 us/op 21.564 us/op 0.88
OrderedSet add up to 256 items then delete first 25.534 us/op 27.664 us/op 0.92
Set add up to 256 items then delete last 18.874 us/op 20.121 us/op 0.94
OrderedSet add up to 256 items then delete last 23.477 us/op 24.201 us/op 0.97
Set add up to 256 items then delete middle 18.994 us/op 19.078 us/op 1.00
OrderedSet add up to 256 items then delete middle 45.863 us/op 50.434 us/op 0.91
transfer serialized Status (84 B) 1.8670 us/op 1.8420 us/op 1.01
copy serialized Status (84 B) 1.3300 us/op 1.3940 us/op 0.95
transfer serialized SignedVoluntaryExit (112 B) 2.0290 us/op 1.9870 us/op 1.02
copy serialized SignedVoluntaryExit (112 B) 1.4700 us/op 1.4270 us/op 1.03
transfer serialized ProposerSlashing (416 B) 3.0230 us/op 2.1560 us/op 1.40
copy serialized ProposerSlashing (416 B) 2.7840 us/op 1.9940 us/op 1.40
transfer serialized Attestation (485 B) 3.0660 us/op 2.2980 us/op 1.33
copy serialized Attestation (485 B) 2.3230 us/op 1.9670 us/op 1.18
transfer serialized AttesterSlashing (33232 B) 2.7010 us/op 2.0390 us/op 1.32
copy serialized AttesterSlashing (33232 B) 8.6930 us/op 6.3240 us/op 1.37
transfer serialized Small SignedBeaconBlock (128000 B) 3.1540 us/op 2.5110 us/op 1.26
copy serialized Small SignedBeaconBlock (128000 B) 23.194 us/op 20.877 us/op 1.11
transfer serialized Avg SignedBeaconBlock (200000 B) 4.0760 us/op 2.9440 us/op 1.38
copy serialized Avg SignedBeaconBlock (200000 B) 34.958 us/op 33.250 us/op 1.05
transfer serialized BlobsSidecar (524380 B) 4.6140 us/op 3.5120 us/op 1.31
copy serialized BlobsSidecar (524380 B) 97.086 us/op 102.78 us/op 0.94
transfer serialized Big SignedBeaconBlock (1000000 B) 4.6250 us/op 3.4570 us/op 1.34
copy serialized Big SignedBeaconBlock (1000000 B) 200.19 us/op 262.17 us/op 0.76
pass gossip attestations to forkchoice per slot 4.2016 ms/op 4.4092 ms/op 0.95
forkChoice updateHead vc 100000 bc 64 eq 0 688.71 us/op 689.34 us/op 1.00
forkChoice updateHead vc 600000 bc 64 eq 0 5.0427 ms/op 5.0393 ms/op 1.00
forkChoice updateHead vc 1000000 bc 64 eq 0 7.4481 ms/op 7.3014 ms/op 1.02
forkChoice updateHead vc 600000 bc 320 eq 0 4.2368 ms/op 4.4706 ms/op 0.95
forkChoice updateHead vc 600000 bc 1200 eq 0 4.4405 ms/op 4.5428 ms/op 0.98
forkChoice updateHead vc 600000 bc 7200 eq 0 5.7354 ms/op 6.0832 ms/op 0.94
forkChoice updateHead vc 600000 bc 64 eq 1000 11.342 ms/op 11.596 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 10000 12.144 ms/op 12.661 ms/op 0.96
forkChoice updateHead vc 600000 bc 64 eq 300000 16.936 ms/op 26.851 ms/op 0.63
computeDeltas 500000 validators 300 proto nodes 6.6127 ms/op 6.7277 ms/op 0.98
computeDeltas 500000 validators 1200 proto nodes 6.5225 ms/op 6.6780 ms/op 0.98
computeDeltas 500000 validators 7200 proto nodes 7.0464 ms/op 6.6595 ms/op 1.06
computeDeltas 750000 validators 300 proto nodes 9.9588 ms/op 10.116 ms/op 0.98
computeDeltas 750000 validators 1200 proto nodes 9.9012 ms/op 10.258 ms/op 0.97
computeDeltas 750000 validators 7200 proto nodes 9.6763 ms/op 10.167 ms/op 0.95
computeDeltas 1400000 validators 300 proto nodes 18.444 ms/op 19.141 ms/op 0.96
computeDeltas 1400000 validators 1200 proto nodes 17.409 ms/op 19.041 ms/op 0.91
computeDeltas 1400000 validators 7200 proto nodes 17.550 ms/op 18.326 ms/op 0.96
computeDeltas 2100000 validators 300 proto nodes 26.718 ms/op 27.491 ms/op 0.97
computeDeltas 2100000 validators 1200 proto nodes 26.209 ms/op 27.064 ms/op 0.97
computeDeltas 2100000 validators 7200 proto nodes 25.963 ms/op 28.969 ms/op 0.90
altair processAttestation - 250000 vs - 7PWei normalcase 2.0680 ms/op 2.3002 ms/op 0.90
altair processAttestation - 250000 vs - 7PWei worstcase 3.4227 ms/op 3.3152 ms/op 1.03
altair processAttestation - setStatus - 1/6 committees join 139.40 us/op 173.68 us/op 0.80
altair processAttestation - setStatus - 1/3 committees join 269.28 us/op 325.39 us/op 0.83
altair processAttestation - setStatus - 1/2 committees join 367.27 us/op 441.25 us/op 0.83
altair processAttestation - setStatus - 2/3 committees join 445.75 us/op 545.94 us/op 0.82
altair processAttestation - setStatus - 4/5 committees join 629.96 us/op 736.05 us/op 0.86
altair processAttestation - setStatus - 100% committees join 719.91 us/op 908.26 us/op 0.79
altair processBlock - 250000 vs - 7PWei normalcase 8.9378 ms/op 9.4360 ms/op 0.95
altair processBlock - 250000 vs - 7PWei normalcase hashState 32.154 ms/op 32.911 ms/op 0.98
altair processBlock - 250000 vs - 7PWei worstcase 32.370 ms/op 37.906 ms/op 0.85
altair processBlock - 250000 vs - 7PWei worstcase hashState 86.808 ms/op 91.980 ms/op 0.94
phase0 processBlock - 250000 vs - 7PWei normalcase 2.2858 ms/op 2.5925 ms/op 0.88
phase0 processBlock - 250000 vs - 7PWei worstcase 30.107 ms/op 30.351 ms/op 0.99
altair processEth1Data - 250000 vs - 7PWei normalcase 456.34 us/op 517.80 us/op 0.88
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 11.241 us/op 16.269 us/op 0.69
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 53.149 us/op 71.512 us/op 0.74
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 11.916 us/op 19.794 us/op 0.60
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 9.9050 us/op 13.950 us/op 0.71
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 144.67 us/op 180.37 us/op 0.80
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.1420 ms/op 1.3010 ms/op 0.88
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.7605 ms/op 1.8586 ms/op 0.95
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.4348 ms/op 1.7307 ms/op 0.83
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.1667 ms/op 3.5070 ms/op 0.90
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.4898 ms/op 2.6960 ms/op 0.92
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.3262 ms/op 5.0745 ms/op 1.05
Tree 40 250000 create 281.59 ms/op 311.95 ms/op 0.90
Tree 40 250000 get(125000) 206.24 ns/op 203.52 ns/op 1.01
Tree 40 250000 set(125000) 781.73 ns/op 743.82 ns/op 1.05
Tree 40 250000 toArray() 18.474 ms/op 20.680 ms/op 0.89
Tree 40 250000 iterate all - toArray() + loop 17.599 ms/op 19.204 ms/op 0.92
Tree 40 250000 iterate all - get(i) 64.536 ms/op 68.647 ms/op 0.94
MutableVector 250000 create 13.801 ms/op 13.825 ms/op 1.00
MutableVector 250000 get(125000) 6.6090 ns/op 6.6580 ns/op 0.99
MutableVector 250000 set(125000) 287.22 ns/op 284.68 ns/op 1.01
MutableVector 250000 toArray() 3.3815 ms/op 4.0180 ms/op 0.84
MutableVector 250000 iterate all - toArray() + loop 3.4741 ms/op 4.0145 ms/op 0.87
MutableVector 250000 iterate all - get(i) 1.6279 ms/op 1.7621 ms/op 0.92
Array 250000 create 3.2235 ms/op 3.3090 ms/op 0.97
Array 250000 clone - spread 1.3491 ms/op 1.3585 ms/op 0.99
Array 250000 get(125000) 1.1280 ns/op 1.1520 ns/op 0.98
Array 250000 set(125000) 4.2070 ns/op 4.5930 ns/op 0.92
Array 250000 iterate all - loop 167.76 us/op 174.89 us/op 0.96
effectiveBalanceIncrements clone Uint8Array 300000 31.589 us/op 42.735 us/op 0.74
effectiveBalanceIncrements clone MutableVector 300000 413.00 ns/op 434.00 ns/op 0.95
effectiveBalanceIncrements rw all Uint8Array 300000 202.28 us/op 195.29 us/op 1.04
effectiveBalanceIncrements rw all MutableVector 300000 91.971 ms/op 89.807 ms/op 1.02
phase0 afterProcessEpoch - 250000 vs - 7PWei 115.02 ms/op 118.05 ms/op 0.97
phase0 beforeProcessEpoch - 250000 vs - 7PWei 37.949 ms/op 35.169 ms/op 1.08
altair processEpoch - mainnet_e81889 418.08 ms/op 433.09 ms/op 0.97
mainnet_e81889 - altair beforeProcessEpoch 66.296 ms/op 73.137 ms/op 0.91
mainnet_e81889 - altair processJustificationAndFinalization 15.573 us/op 17.937 us/op 0.87
mainnet_e81889 - altair processInactivityUpdates 5.4124 ms/op 5.3487 ms/op 1.01
mainnet_e81889 - altair processRewardsAndPenalties 54.862 ms/op 54.731 ms/op 1.00
mainnet_e81889 - altair processRegistryUpdates 1.8610 us/op 2.6310 us/op 0.71
mainnet_e81889 - altair processSlashings 382.00 ns/op 433.00 ns/op 0.88
mainnet_e81889 - altair processEth1DataReset 655.00 ns/op 660.00 ns/op 0.99
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.4028 ms/op 1.3761 ms/op 1.02
mainnet_e81889 - altair processSlashingsReset 4.0760 us/op 4.6810 us/op 0.87
mainnet_e81889 - altair processRandaoMixesReset 4.5990 us/op 5.6480 us/op 0.81
mainnet_e81889 - altair processHistoricalRootsUpdate 619.00 ns/op 1.2510 us/op 0.49
mainnet_e81889 - altair processParticipationFlagUpdates 1.4770 us/op 2.5900 us/op 0.57
mainnet_e81889 - altair processSyncCommitteeUpdates 695.00 ns/op 1.1480 us/op 0.61
mainnet_e81889 - altair afterProcessEpoch 119.86 ms/op 125.18 ms/op 0.96
capella processEpoch - mainnet_e217614 1.5081 s/op 1.8457 s/op 0.82
mainnet_e217614 - capella beforeProcessEpoch 293.43 ms/op 328.73 ms/op 0.89
mainnet_e217614 - capella processJustificationAndFinalization 19.142 us/op 24.430 us/op 0.78
mainnet_e217614 - capella processInactivityUpdates 18.565 ms/op 17.049 ms/op 1.09
mainnet_e217614 - capella processRewardsAndPenalties 280.44 ms/op 277.86 ms/op 1.01
mainnet_e217614 - capella processRegistryUpdates 17.423 us/op 28.872 us/op 0.60
mainnet_e217614 - capella processSlashings 604.00 ns/op 543.00 ns/op 1.11
mainnet_e217614 - capella processEth1DataReset 444.00 ns/op 747.00 ns/op 0.59
mainnet_e217614 - capella processEffectiveBalanceUpdates 12.889 ms/op 4.4329 ms/op 2.91
mainnet_e217614 - capella processSlashingsReset 2.8750 us/op 3.7990 us/op 0.76
mainnet_e217614 - capella processRandaoMixesReset 4.3900 us/op 8.0530 us/op 0.55
mainnet_e217614 - capella processHistoricalRootsUpdate 829.00 ns/op 1.1720 us/op 0.71
mainnet_e217614 - capella processParticipationFlagUpdates 1.7710 us/op 1.5930 us/op 1.11
mainnet_e217614 - capella afterProcessEpoch 311.61 ms/op 329.40 ms/op 0.95
phase0 processEpoch - mainnet_e58758 456.47 ms/op 446.93 ms/op 1.02
mainnet_e58758 - phase0 beforeProcessEpoch 111.45 ms/op 123.53 ms/op 0.90
mainnet_e58758 - phase0 processJustificationAndFinalization 15.905 us/op 16.378 us/op 0.97
mainnet_e58758 - phase0 processRewardsAndPenalties 23.433 ms/op 22.946 ms/op 1.02
mainnet_e58758 - phase0 processRegistryUpdates 9.3890 us/op 9.6010 us/op 0.98
mainnet_e58758 - phase0 processSlashings 621.00 ns/op 435.00 ns/op 1.43
mainnet_e58758 - phase0 processEth1DataReset 431.00 ns/op 394.00 ns/op 1.09
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1094 ms/op 1.1077 ms/op 1.00
mainnet_e58758 - phase0 processSlashingsReset 2.4300 us/op 3.6160 us/op 0.67
mainnet_e58758 - phase0 processRandaoMixesReset 4.2870 us/op 5.1100 us/op 0.84
mainnet_e58758 - phase0 processHistoricalRootsUpdate 503.00 ns/op 554.00 ns/op 0.91
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.1240 us/op 4.5960 us/op 0.90
mainnet_e58758 - phase0 afterProcessEpoch 99.872 ms/op 103.68 ms/op 0.96
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3870 ms/op 1.3483 ms/op 1.03
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5282 ms/op 1.6202 ms/op 0.94
altair processInactivityUpdates - 250000 normalcase 18.540 ms/op 16.468 ms/op 1.13
altair processInactivityUpdates - 250000 worstcase 18.278 ms/op 16.344 ms/op 1.12
phase0 processRegistryUpdates - 250000 normalcase 8.1440 us/op 11.474 us/op 0.71
phase0 processRegistryUpdates - 250000 badcase_full_deposits 354.55 us/op 425.10 us/op 0.83
phase0 processRegistryUpdates - 250000 worstcase 0.5 126.74 ms/op 146.99 ms/op 0.86
altair processRewardsAndPenalties - 250000 normalcase 48.901 ms/op 46.946 ms/op 1.04
altair processRewardsAndPenalties - 250000 worstcase 44.619 ms/op 48.206 ms/op 0.93
phase0 getAttestationDeltas - 250000 normalcase 9.5397 ms/op 9.0526 ms/op 1.05
phase0 getAttestationDeltas - 250000 worstcase 9.2846 ms/op 10.929 ms/op 0.85
phase0 processSlashings - 250000 worstcase 94.942 us/op 96.465 us/op 0.98
altair processSyncCommitteeUpdates - 250000 149.20 ms/op 157.89 ms/op 0.94
BeaconState.hashTreeRoot - No change 372.00 ns/op 489.00 ns/op 0.76
BeaconState.hashTreeRoot - 1 full validator 122.67 us/op 141.68 us/op 0.87
BeaconState.hashTreeRoot - 32 full validator 1.2813 ms/op 1.6220 ms/op 0.79
BeaconState.hashTreeRoot - 512 full validator 12.289 ms/op 12.608 ms/op 0.97
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 137.53 us/op 144.53 us/op 0.95
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.8415 ms/op 2.1930 ms/op 0.84
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 27.476 ms/op 25.959 ms/op 1.06
BeaconState.hashTreeRoot - 1 balances 130.91 us/op 117.38 us/op 1.12
BeaconState.hashTreeRoot - 32 balances 1.3953 ms/op 1.1078 ms/op 1.26
BeaconState.hashTreeRoot - 512 balances 10.896 ms/op 10.367 ms/op 1.05
BeaconState.hashTreeRoot - 250000 balances 198.49 ms/op 200.35 ms/op 0.99
aggregationBits - 2048 els - zipIndexesInBitList 26.833 us/op 34.074 us/op 0.79
byteArrayEquals 32 75.630 ns/op 74.895 ns/op 1.01
Buffer.compare 32 55.992 ns/op 55.793 ns/op 1.00
byteArrayEquals 1024 2.0624 us/op 2.0260 us/op 1.02
Buffer.compare 1024 72.069 ns/op 71.984 ns/op 1.00
byteArrayEquals 16384 32.945 us/op 32.411 us/op 1.02
Buffer.compare 16384 271.29 ns/op 274.46 ns/op 0.99
byteArrayEquals 123687377 244.85 ms/op 244.55 ms/op 1.00
Buffer.compare 123687377 6.2119 ms/op 7.5302 ms/op 0.82
byteArrayEquals 32 - diff last byte 72.314 ns/op 74.691 ns/op 0.97
Buffer.compare 32 - diff last byte 56.853 ns/op 57.257 ns/op 0.99
byteArrayEquals 1024 - diff last byte 2.0212 us/op 2.0211 us/op 1.00
Buffer.compare 1024 - diff last byte 69.361 ns/op 70.820 ns/op 0.98
byteArrayEquals 16384 - diff last byte 32.257 us/op 32.010 us/op 1.01
Buffer.compare 16384 - diff last byte 250.65 ns/op 248.04 ns/op 1.01
byteArrayEquals 123687377 - diff last byte 238.11 ms/op 246.95 ms/op 0.96
Buffer.compare 123687377 - diff last byte 6.1532 ms/op 6.1271 ms/op 1.00
byteArrayEquals 32 - random bytes 7.2970 ns/op 5.2680 ns/op 1.39
Buffer.compare 32 - random bytes 60.253 ns/op 61.096 ns/op 0.99
byteArrayEquals 1024 - random bytes 7.4410 ns/op 5.2640 ns/op 1.41
Buffer.compare 1024 - random bytes 59.540 ns/op 59.752 ns/op 1.00
byteArrayEquals 16384 - random bytes 7.5230 ns/op 5.1680 ns/op 1.46
Buffer.compare 16384 - random bytes 60.326 ns/op 60.292 ns/op 1.00
byteArrayEquals 123687377 - random bytes 10.280 ns/op 8.4800 ns/op 1.21
Buffer.compare 123687377 - random bytes 63.490 ns/op 66.320 ns/op 0.96
regular array get 100000 times 61.901 us/op 43.895 us/op 1.41
wrappedArray get 100000 times 60.783 us/op 43.886 us/op 1.39
arrayWithProxy get 100000 times 14.601 ms/op 14.140 ms/op 1.03
ssz.Root.equals 60.935 ns/op 53.709 ns/op 1.13
byteArrayEquals 78.835 ns/op 52.477 ns/op 1.50
Buffer.compare 12.543 ns/op 10.713 ns/op 1.17
shuffle list - 16384 els 8.2795 ms/op 8.5015 ms/op 0.97
shuffle list - 250000 els 123.39 ms/op 125.14 ms/op 0.99
processSlot - 1 slots 17.059 us/op 15.528 us/op 1.10
processSlot - 32 slots 3.5272 ms/op 3.9275 ms/op 0.90
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 55.108 ms/op 52.471 ms/op 1.05
getCommitteeAssignments - req 1 vs - 250000 vc 2.7243 ms/op 2.6249 ms/op 1.04
getCommitteeAssignments - req 100 vs - 250000 vc 3.9358 ms/op 3.7993 ms/op 1.04
getCommitteeAssignments - req 1000 vs - 250000 vc 4.2677 ms/op 4.0933 ms/op 1.04
findModifiedValidators - 10000 modified validators 332.50 ms/op 327.73 ms/op 1.01
findModifiedValidators - 1000 modified validators 235.79 ms/op 214.43 ms/op 1.10
findModifiedValidators - 100 modified validators 203.71 ms/op 185.73 ms/op 1.10
findModifiedValidators - 10 modified validators 189.99 ms/op 202.43 ms/op 0.94
findModifiedValidators - 1 modified validators 210.04 ms/op 183.42 ms/op 1.15
findModifiedValidators - no difference 238.56 ms/op 194.18 ms/op 1.23
compare ViewDUs 3.7414 s/op 3.6150 s/op 1.03
compare each validator Uint8Array 1.4922 s/op 1.4168 s/op 1.05
compare ViewDU to Uint8Array 1.1275 s/op 1.3574 s/op 0.83
migrate state 1000000 validators, 24 modified, 0 new 681.54 ms/op 723.36 ms/op 0.94
migrate state 1000000 validators, 1700 modified, 1000 new 1.1114 s/op 1.1849 s/op 0.94
migrate state 1000000 validators, 3400 modified, 2000 new 1.4525 s/op 1.5728 s/op 0.92
migrate state 1500000 validators, 24 modified, 0 new 678.50 ms/op 832.28 ms/op 0.82
migrate state 1500000 validators, 1700 modified, 1000 new 1.0157 s/op 1.2943 s/op 0.78
migrate state 1500000 validators, 3400 modified, 2000 new 1.3512 s/op 1.6748 s/op 0.81
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.6200 ns/op 5.2600 ns/op 0.88
state getBlockRootAtSlot - 250000 vs - 7PWei 666.21 ns/op 723.50 ns/op 0.92
computeProposers - vc 250000 9.6907 ms/op 10.881 ms/op 0.89
computeEpochShuffling - vc 250000 126.70 ms/op 132.01 ms/op 0.96
getNextSyncCommittee - vc 250000 147.55 ms/op 166.03 ms/op 0.89
computeSigningRoot for AttestationData 22.329 us/op 29.071 us/op 0.77
hash AttestationData serialized data then Buffer.toString(base64) 2.3302 us/op 2.4053 us/op 0.97
toHexString serialized data 1.7964 us/op 1.3434 us/op 1.34
Buffer.toString(base64) 320.50 ns/op 266.67 ns/op 1.20

by benchmarkbot/action

@jeluard jeluard requested a review from nflaig May 7, 2024 08:35
docs/pages/faqs.md Outdated Show resolved Hide resolved
docs/pages/faqs.md Outdated Show resolved Hide resolved
packages/cli/src/cmds/beacon/handler.ts Outdated Show resolved Hide resolved
const heapSizeLimit = getHeapStatistics().heap_size_limit;
if (heapSizeLimit < EIGHT_GB) {
logger.warn(
"Node.js heap size limit is too low, consider increasing it. See https://chainsafe.github.io/lodestar/faqs#running-a-node"
Copy link
Member

Choose a reason for hiding this comment

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

Would kinda be nice if we could directly link to the heap limit instead of top level header

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Not doable with the current docs structure, would require some changes here.

jeluard and others added 3 commits May 10, 2024 12:50
Co-authored-by: Nico Flaig <nflaig@protonmail.com>
Co-authored-by: Nico Flaig <nflaig@protonmail.com>
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.

LGTM

@jeluard jeluard merged commit ec108d7 into unstable May 11, 2024
18 of 20 checks passed
@jeluard jeluard deleted the jeluard/heap-limit-warning branch May 11, 2024 07:10
wemeetagain added a commit that referenced this pull request Jun 7, 2024
* chore: n-historical state - track state persist count per epoch (#6699)

* feat: add lodestar binaries to release (#6666)

* feat: added binaries creation support

* feat: added sanity checks

* chore: define reusable workflow

* chore: fix sanity check,; disable arm64

* chore: added workflow_dispatch

* fix: needs cleanup

* chore: update old space size

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: address comments

* chore: address comments

* chore: fixed typo

* chore: typo

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: address comments

* chore: wording

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: use frozen lock file

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* feat: switch bls to napi rebuild (#6616)

* chore: update package.json deps and run yarn

* feat: remove unused blst config from vitest.browser.*.config.ts

* test: move G2@INF test to base blst repo.  No longer exported.

* fix: add Uint8Array.from for Buffer return value in unit test so type matches for toEqual

* refactor: update imports of CoordType to use bls instead of blst

* feat: add blsAddVerificationRandomness cli option

* feat: add randomBytesNonZero to utils

* feat: implement verification randomness for same message

* feat: implement napi blst and switch to libuv worker pool

* chore: lint

* fix: update comments for availableParallelism

* feat: set UV_THREADPOOL_SIZE for perf tests

* feat: set UV_THREADPOOL_SIZE=$(nproc) in lodestar entrance script

* feat: remove case for serialized PublicKey in deserializeSet

* feat: add back workBusy count logic to canAcceptWork

* feat: automatically set threadpool size in beaconHandler

* refactor: rename flag to disableSameMessageVerificationRandomness

* fix: remove UV_THREADPOOL_SIZE from ./lodestar

* docs: add TODO about updating metrics

* fix: make benchmark multi threading cross-compatible

* chore: add bls@8.0.0

* feat: default to added randomness

* feat: add warning for no same message randomness

* fix: passing to updated bls functions

* feat: add blst peerDep

* fix: default to same message randomness

* chore: update yarn.lock

* chore: remove unused function to clear lint

* feat: break out setThreadPoolSize

* docs: update packages/cli/src/cmds/beacon/setThreadPoolSize.ts

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: update location for blst dep

* chore: run lint again

* fix: remove peerDep from light-client

* test: fix browser based tests

* fix: bad relative imports

* docs: add note to readme about switchable bls

* docs: typo

* chore: lint readme

* fix: light-client unit tests

* fix: light-client e2e test

* feat: remove disableSameMessageVerificationRandomness

* refactor: remove unused type

* docs: update wordlist

* fix: e2e tests

* Lint package.json

* Revert "fix: e2e tests"

This reverts commit f71acd7.

* Revert "fix: light-client e2e test"

This reverts commit 23c11f0.

* Revert "fix: light-client unit tests"

This reverts commit fa7893e.

* Revert "test: fix browser based tests"

This reverts commit 98d04ab.

* docs: update readme to remove switchable bls argument

* fix: replace optimizeDeps in vitest.browser.config

* chore: updated to bls 8.1.0

* feat: move setting threadpool size and warnings to applyPreset.ts

* fix: remove setThreadpoolSize from beacon handler

* feat: move libuv size logging into handler to use logger

* refactor: rename applyPreset to preInitialization

* refactor: logging about pool size

* Update packages/cli/src/options/globalOptions.ts

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* refactor: rename prover applyPreset

* docs: change comment in cli/index

* fix: update logging for

* fix: throw error for invalid uvThreadpoolSize

* Update packages/cli/src/preInitialization.ts

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* Fix lint issues

* Remove unused import

* refactor: move bls pool logging back to multithread.ts

* fix: log of threadcount

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: update references to consensus spec to v1.4.0 (#6704)

* chore: update references to consensus spec to v1.4.0

* Remove unintended formatting changes

* chore: update consensus spec version in README (#6705)

* docs: correct plausible url (#6709)

fix: correct plausible url

* docs: incorrect scripts location (#6710)

fix: incorrect scripts location

* docs: no more broken images (#6708)

* fix: no more broken images

* fix: incorrect paths

* feat: check aggregationBits length of `SignedAggregateAndProof` in gossip validation (#6700)

* Add unit test

* Update packages/beacon-node/src/chain/validation/aggregateAndProof.ts

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* feat: add and track blob source for metrics (#6628)

* feat: add and track blob source for metrics

* adding blobsSource for blobsPromise

* address feedback

* apply feedback

* updates

* only allow non blobspromise blocks to be imported

* feat: add support for browser bundle for lightclient (#6673)

* Reorganize the code so it is accessible from one package

* Add support for browser build for lightclient

* Update the build config

* Improve the bls vite plugin

* Restructure the vite and vitest scripts

* Simplify vite config

* Remove unused polyfill

* Fix the doc lint error

* Add support for bundle test

* Update the package json files

* Add dist build to default build task

* Fix spelling in the docs

* Fix the lint error

* Fix type error

* Disable eslint errors

* Increase the timeout for bundle test

* Fix eslint bundle

* Fix lint warning

* Remove the unused config

* Add the default export to bundle

* Enable compression on th build

* Update packages/light-client/README.md

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* Increase timeout for one test

* Optimize package build task

* Update the readme

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* docs: fix plausible domain (#6712)

* ci: add paths-ignore to workflows (#6713)

* chore: added paths-ignore

* chore: address comments

* feat: add arm64 binary support (#6707)

* feat: add arm64 binary support

* chore: workaround yarn

* chore: add comment

* chore: workaround runner limitations

* ci: publish binaries for release candidates (#6714)

* feat: add types support to esm bundle for lightclient (#6685)

* Add vite dts plugin

* Restructure types export

* Update vite build config

* Remove unused file

* Update the build process

* Fix doc formatting

* Build the dist for type tests

* chore: update vitest (#6718)

Update vitest

* chore: do not build all binaries atomically (#6719)

* feat: update libp2p deps (#6711)

* feat: update libp2p deps

* chore: fix linter/type errors

* chore(deps): bump ejs from 3.1.9 to 3.1.10 (#6721)

Bumps [ejs](https://github.com/mde/ejs) from 3.1.9 to 3.1.10.
- [Release notes](https://github.com/mde/ejs/releases)
- [Commits](mde/ejs@v3.1.9...v3.1.10)

---
updated-dependencies:
- dependency-name: ejs
  dependency-type: indirect
...

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

* chore: revert "ci: add paths-ignore to workflows (#6713)" (#6730)

Revert "ci: add paths-ignore to workflows (#6713)"

This reverts commit e460bb1.

* docs: restore docs pages lost during docusaurus migration (#6725)

* ci: fix incorrect build caching (#6731)

fix: incorrect build caching

* fix: build error log during esm bundle build (#6737)

Fix build error

* chore: update fastify to v4.27.0 (#6740)

* deps: upgrade vitest minor version (#6745)

Upgrade vitest

* chore: warn when heap limit is too low (#6722)

* chore: warn when heap limit is too low

* chore: units

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: address comments

* chore: added faq element

* chore: address comments

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: address comments

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: address comments

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* feat: disable flood publish (#6755)

* feat: disable flood publish

* feat: add network.disableFloodPublish cli flag

* chore: address PR comments

* test: allow compact diff for test failures (#6783)

* Allow the compact diff for tests

* Update the doc

* Update docs/pages/contribution/testing/index.md

Co-authored-by: Julien <jeluard@users.noreply.github.com>

* Fix linting on docs

* Fix linting

---------

Co-authored-by: Julien <jeluard@users.noreply.github.com>

* chore: upgrade classic-level (#6793)

* chore: upgrade classic-level

* chore: address comments

* feat(prover): support non-mutated verification provider in prover (#6727)

* Restructure the assertions

* Add an inspector to run the logic to detect providers

* Update web3 provdier logic to use inspetor

* Fix the types for proxy

* Make the default type for mutation

* Rename elrpc to elrpcprovider

* Apply suggestions from code review

Co-authored-by: Julien <jeluard@users.noreply.github.com>

* Fix build error

* Update the readme doc

* Apply suggestions from code review

Co-authored-by: Julien <jeluard@users.noreply.github.com>

* Fix the docs linting

* Add missing words

---------

Co-authored-by: Julien <jeluard@users.noreply.github.com>

* docs: added debugging section (#6743)

* docs: added debugging section

* chore: spell checks

* chore: added extra docs

* chore: address comments

* chore: added extra configuration

* chore: updated docs

* chore: added extra configuration

* chore: fix lint

* chore: fix typos

* chore: .gitignore

* chore: address comments

* chore: address comments

* chore: review debugging section PR (#6807)

* chore: update the naming conventions used in sim tests (#6805)

* Rename simulation test to crucible

* Rename SimulationEnvironment to Simulation

* Use consistent function names

* Update readme

* Rename interfaces for consistent pattern

* Fix lint error

* feat: recognize grandine from agentVersion (#6808)

* Add grandine

* add grandine to wordlist

* chore: refactor event loop interactions (#6806)

* chore: refactor sleep(0) usage

* chore: refactor setTimeout

* chore: address comments

* chore: cleanup

* Apply suggestions from code review

---------

Co-authored-by: Cayman <caymannava@gmail.com>

* chore: fix broken docker (#6813)

* chore: log newPayload engine api (#6810)

* chore: add `get_proposer_head` check in fork choice spec test (#6814)

* Check get_proposer_head

* Fix enum typo

* lint

* chore: consolidate classic-level usage (#6795)

* chore: do not rely on leveldown

* chore: replace level with classic-level

* chore: added docker support for osx (#6696)

* chore: added docker support for osx

* chore: address comments

* chore: address comments

* Update docker-compose.yml

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: address comments

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* chore: fix vitest performance with spec tests artifacts in place (#6817)

Fix vitest performance with spec tests in place

* chore: clean up yarn lockfile (#6816)

* feat: disable flood publish by default (#6815)

* feat: use @chainsafe/blst directly (#6706)

* feat: use @chainsafe/blst directly

* chore: update to blst@1.0.1

* refactor: remove randomBytesNonZero and user blst exported version

* chore: update blst references

* test: catch invalid deserialization in spec tests and return false

* feat: create signatureFromBytes and signatureFromBytesNoCheck in utils package

* feat: implement signatureFromBytes from utils package

* feat: implement signatureFromBytes everywhere

* fix: light-client empty module for blst

---------

Co-authored-by: matthewkeil <me@matthewkeil.com>

* fix: avoid Buffer.from copies (#6723)

* fix: avoid Buffer.from copies

* chore: simplify shuffling

* fix: use subarray instead of slice in shuffling

* chore: remove unnecessary devDependencies

* chore: rely on fastify 4.x behavior

* chore: avoid copy in verifyMerkleBranch

* use toBase64

* relax assertions in shuffle function

* Update packages/state-transition/src/util/shuffle.ts

Co-authored-by: twoeths <tuyen@chainsafe.io>

---------

Co-authored-by: twoeths <tuyen@chainsafe.io>

* chore: update nodejs to latest 22 (#6729)

* Upgrade node js version to 22

* Update node types

* Revert action config

* Add package from git hash

* Fix the build error

* Update the docs for node-22

* Update docker version for Nodejs to 22

* Update package.json

* Update package.json

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* Update readme docs

* Add word in dictionary

* Add word in dictionary

---------

Co-authored-by: Cayman <caymannava@gmail.com>
Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* deps: update systeminformation to 5.22.9 (#6823)

* chore: add distutils to build phase of Dockerfile (#6845)

* test: increase timeout of keystore tests (#6846)

* test: increase timeout of keystore cache tests

* Increase hook timeout

* Consistent number formatting

* chore: only log warning if media type is not supported (415) (#6847)

* fix: revert napi bls (#6853)

* Revert "feat: use @chainsafe/blst directly (#6706)"

This reverts commit 66fe753.

* Revert "feat: switch bls to napi rebuild (#6616)"

This reverts commit 97d9aa8.

* chore: bump package versions to 1.19.0

* chore: bump @chainsafe/blst to v0.2.11 (#6856)

* fix: arm64 binaries creation issue (#6858)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: tuyennhv <tuyen@chainsafe.io>
Co-authored-by: Julien <jeluard@users.noreply.github.com>
Co-authored-by: Nico Flaig <nflaig@protonmail.com>
Co-authored-by: Matthew Keil <me@matthewkeil.com>
Co-authored-by: NC <adrninistrator1@protonmail.com>
Co-authored-by: g11tech <develop@g11tech.io>
Co-authored-by: Nazar Hussain <nazarhussain@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@wemeetagain
Copy link
Member

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

None yet

3 participants