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: refactor event loop interactions #6806

Merged
merged 5 commits into from
May 23, 2024
Merged

Conversation

jeluard
Copy link
Contributor

@jeluard jeluard commented May 21, 2024

Description

Refactor event loop interactions by overriding utility functions.
This allows to easily track which part of the code deals with event loop interactions, and allows to simply experiment with different strategies.

Note that both utility functions are related and it might make sense to push this further and merge them in a single function.

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

codecov bot commented May 21, 2024

Codecov Report

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

Project coverage is 62.20%. Comparing base (8e875c6) to head (bae46d7).
Report is 11 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #6806      +/-   ##
============================================
+ Coverage     61.88%   62.20%   +0.32%     
============================================
  Files           562      571       +9     
  Lines         59309    60013     +704     
  Branches       1916     1982      +66     
============================================
+ Hits          36703    37334     +631     
- Misses        22563    22635      +72     
- Partials         43       44       +1     

Copy link
Contributor

github-actions bot commented May 21, 2024

⚠️ Performance Alert ⚠️

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

Benchmark suite Current: ad10311 Previous: 3121363 Ratio
getSlashingsAndExits - 2k 9.2868 ms/op 331.99 us/op 27.97
Object set x1000 95.619 ns/op 29.910 ns/op 3.20
Map set x1000 68.791 ns/op 22.142 ns/op 3.11
Set add up to 128 items then delete first 12.220 us/op 4.0295 us/op 3.03
Set add up to 128 items then delete last 12.017 us/op 3.8410 us/op 3.13
Set add up to 128 items then delete middle 11.546 us/op 3.8347 us/op 3.01
Set add up to 256 items then delete middle 23.309 us/op 7.5948 us/op 3.07
Full benchmark results
Benchmark suite Current: ad10311 Previous: 3121363 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 973.85 us/op 825.47 us/op 1.18
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 115.98 us/op 52.145 us/op 2.22
BLS verify - blst-native 1.3398 ms/op 1.0920 ms/op 1.23
BLS verifyMultipleSignatures 3 - blst-native 2.5732 ms/op 2.1136 ms/op 1.22
BLS verifyMultipleSignatures 8 - blst-native 5.5334 ms/op 4.5767 ms/op 1.21
BLS verifyMultipleSignatures 32 - blst-native 19.858 ms/op 16.652 ms/op 1.19
BLS verifyMultipleSignatures 64 - blst-native 39.505 ms/op 32.726 ms/op 1.21
BLS verifyMultipleSignatures 128 - blst-native 77.761 ms/op 64.864 ms/op 1.20
BLS deserializing 10000 signatures 909.02 ms/op 742.18 ms/op 1.22
BLS deserializing 100000 signatures 9.2147 s/op 7.6361 s/op 1.21
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3672 ms/op 1.1127 ms/op 1.23
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5341 ms/op 1.2641 ms/op 1.21
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.4144 ms/op 1.9094 ms/op 1.26
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.5080 ms/op 2.8460 ms/op 1.23
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.6989 ms/op 4.9093 ms/op 1.16
BLS aggregatePubkeys 32 - blst-native 29.425 us/op 24.530 us/op 1.20
BLS aggregatePubkeys 128 - blst-native 113.22 us/op 93.539 us/op 1.21
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 71.802 ms/op 38.674 ms/op 1.86
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 77.092 ms/op 38.222 ms/op 2.02
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 35.820 ms/op 22.113 ms/op 1.62
getSlashingsAndExits - default max 303.88 us/op 131.77 us/op 2.31
getSlashingsAndExits - 2k 9.2868 ms/op 331.99 us/op 27.97
proposeBlockBody type=full, size=empty 7.1616 ms/op 3.7784 ms/op 1.90
isKnown best case - 1 super set check 765.00 ns/op 326.00 ns/op 2.35
isKnown normal case - 2 super set checks 682.00 ns/op 328.00 ns/op 2.08
isKnown worse case - 16 super set checks 667.00 ns/op 329.00 ns/op 2.03
InMemoryCheckpointStateCache - add get delete 7.6590 us/op 3.9340 us/op 1.95
validate api signedAggregateAndProof - struct 2.7820 ms/op 2.0065 ms/op 1.39
validate gossip signedAggregateAndProof - struct 2.5104 ms/op 1.9955 ms/op 1.26
validate gossip attestation - vc 640000 1.4932 ms/op 1.1376 ms/op 1.31
batch validate gossip attestation - vc 640000 - chunk 32 194.03 us/op 144.49 us/op 1.34
batch validate gossip attestation - vc 640000 - chunk 64 176.31 us/op 127.10 us/op 1.39
batch validate gossip attestation - vc 640000 - chunk 128 181.04 us/op 125.23 us/op 1.45
batch validate gossip attestation - vc 640000 - chunk 256 172.93 us/op 126.41 us/op 1.37
pickEth1Vote - no votes 1.5471 ms/op 893.95 us/op 1.73
pickEth1Vote - max votes 16.385 ms/op 10.437 ms/op 1.57
pickEth1Vote - Eth1Data hashTreeRoot value x2048 24.767 ms/op 19.300 ms/op 1.28
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 39.605 ms/op 27.173 ms/op 1.46
pickEth1Vote - Eth1Data fastSerialize value x2048 825.71 us/op 513.10 us/op 1.61
pickEth1Vote - Eth1Data fastSerialize tree x2048 9.5088 ms/op 6.2258 ms/op 1.53
bytes32 toHexString 1.0860 us/op 635.00 ns/op 1.71
bytes32 Buffer.toString(hex) 310.00 ns/op 350.00 ns/op 0.89
bytes32 Buffer.toString(hex) from Uint8Array 641.00 ns/op 544.00 ns/op 1.18
bytes32 Buffer.toString(hex) + 0x 396.00 ns/op 336.00 ns/op 1.18
Object access 1 prop 0.28900 ns/op 0.25500 ns/op 1.13
Map access 1 prop 0.15700 ns/op 0.18800 ns/op 0.84
Object get x1000 8.3560 ns/op 4.9320 ns/op 1.69
Map get x1000 1.0070 ns/op 0.80700 ns/op 1.25
Object set x1000 95.619 ns/op 29.910 ns/op 3.20
Map set x1000 68.791 ns/op 22.142 ns/op 3.11
Return object 10000 times 0.29800 ns/op 0.23120 ns/op 1.29
Throw Error 10000 times 4.3648 us/op 2.8968 us/op 1.51
fastMsgIdFn sha256 / 200 bytes 3.7640 us/op 2.0980 us/op 1.79
fastMsgIdFn h32 xxhash / 200 bytes 429.00 ns/op 406.00 ns/op 1.06
fastMsgIdFn h64 xxhash / 200 bytes 466.00 ns/op 430.00 ns/op 1.08
fastMsgIdFn sha256 / 1000 bytes 12.647 us/op 7.0980 us/op 1.78
fastMsgIdFn h32 xxhash / 1000 bytes 575.00 ns/op 475.00 ns/op 1.21
fastMsgIdFn h64 xxhash / 1000 bytes 590.00 ns/op 507.00 ns/op 1.16
fastMsgIdFn sha256 / 10000 bytes 112.21 us/op 56.515 us/op 1.99
fastMsgIdFn h32 xxhash / 10000 bytes 2.1930 us/op 1.9880 us/op 1.10
fastMsgIdFn h64 xxhash / 10000 bytes 1.4880 us/op 1.4440 us/op 1.03
send data - 1000 256B messages 26.624 ms/op 13.468 ms/op 1.98
send data - 1000 512B messages 36.440 ms/op 15.442 ms/op 2.36
send data - 1000 1024B messages 52.241 ms/op 25.628 ms/op 2.04
send data - 1000 1200B messages 52.119 ms/op 23.555 ms/op 2.21
send data - 1000 2048B messages 62.255 ms/op 30.628 ms/op 2.03
send data - 1000 4096B messages 59.915 ms/op 27.900 ms/op 2.15
send data - 1000 16384B messages 143.20 ms/op 77.437 ms/op 1.85
send data - 1000 65536B messages 579.86 ms/op 402.96 ms/op 1.44
enrSubnets - fastDeserialize 64 bits 2.0230 us/op 1.0130 us/op 2.00
enrSubnets - ssz BitVector 64 bits 649.00 ns/op 548.00 ns/op 1.18
enrSubnets - fastDeserialize 4 bits 272.00 ns/op 263.00 ns/op 1.03
enrSubnets - ssz BitVector 4 bits 658.00 ns/op 601.00 ns/op 1.09
prioritizePeers score -10:0 att 32-0.1 sync 2-0 289.38 us/op 160.42 us/op 1.80
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 429.49 us/op 230.09 us/op 1.87
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 524.81 us/op 269.70 us/op 1.95
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 913.53 us/op 433.16 us/op 2.11
prioritizePeers score 0:0 att 64-1 sync 4-1 1.0058 ms/op 526.89 us/op 1.91
array of 16000 items push then shift 1.8602 us/op 1.3074 us/op 1.42
LinkedList of 16000 items push then shift 13.074 ns/op 8.3220 ns/op 1.57
array of 16000 items push then pop 171.20 ns/op 84.468 ns/op 2.03
LinkedList of 16000 items push then pop 11.736 ns/op 5.8470 ns/op 2.01
array of 24000 items push then shift 2.6056 us/op 2.0618 us/op 1.26
LinkedList of 24000 items push then shift 14.489 ns/op 6.5750 ns/op 2.20
array of 24000 items push then pop 235.59 ns/op 112.41 ns/op 2.10
LinkedList of 24000 items push then pop 11.089 ns/op 5.9330 ns/op 1.87
intersect bitArray bitLen 8 6.8480 ns/op 4.9210 ns/op 1.39
intersect array and set length 8 108.75 ns/op 48.913 ns/op 2.22
intersect bitArray bitLen 128 38.414 ns/op 29.327 ns/op 1.31
intersect array and set length 128 1.3694 us/op 707.34 ns/op 1.94
bitArray.getTrueBitIndexes() bitLen 128 2.1720 us/op 1.4650 us/op 1.48
bitArray.getTrueBitIndexes() bitLen 248 3.8100 us/op 2.6210 us/op 1.45
bitArray.getTrueBitIndexes() bitLen 512 8.3910 us/op 5.2820 us/op 1.59
Buffer.concat 32 items 1.2740 us/op 858.00 ns/op 1.48
Uint8Array.set 32 items 2.5530 us/op 1.7980 us/op 1.42
Set add up to 64 items then delete first 5.4863 us/op 2.0967 us/op 2.62
OrderedSet add up to 64 items then delete first 7.5652 us/op 3.4865 us/op 2.17
Set add up to 64 items then delete last 6.0021 us/op 2.0231 us/op 2.97
OrderedSet add up to 64 items then delete last 8.3304 us/op 3.0649 us/op 2.72
Set add up to 64 items then delete middle 5.8845 us/op 2.0101 us/op 2.93
OrderedSet add up to 64 items then delete middle 9.6395 us/op 4.2722 us/op 2.26
Set add up to 128 items then delete first 12.220 us/op 4.0295 us/op 3.03
OrderedSet add up to 128 items then delete first 15.610 us/op 6.2571 us/op 2.49
Set add up to 128 items then delete last 12.017 us/op 3.8410 us/op 3.13
OrderedSet add up to 128 items then delete last 16.304 us/op 5.7749 us/op 2.82
Set add up to 128 items then delete middle 11.546 us/op 3.8347 us/op 3.01
OrderedSet add up to 128 items then delete middle 23.345 us/op 10.833 us/op 2.15
Set add up to 256 items then delete first 22.752 us/op 7.9580 us/op 2.86
OrderedSet add up to 256 items then delete first 30.234 us/op 12.714 us/op 2.38
Set add up to 256 items then delete last 22.920 us/op 7.6717 us/op 2.99
OrderedSet add up to 256 items then delete last 34.403 us/op 11.718 us/op 2.94
Set add up to 256 items then delete middle 23.309 us/op 7.5948 us/op 3.07
OrderedSet add up to 256 items then delete middle 54.614 us/op 31.288 us/op 1.75
transfer serialized Status (84 B) 2.2220 us/op 1.6460 us/op 1.35
copy serialized Status (84 B) 1.6070 us/op 1.2750 us/op 1.26
transfer serialized SignedVoluntaryExit (112 B) 2.3650 us/op 1.7010 us/op 1.39
copy serialized SignedVoluntaryExit (112 B) 1.6050 us/op 1.3530 us/op 1.19
transfer serialized ProposerSlashing (416 B) 2.7790 us/op 2.3010 us/op 1.21
copy serialized ProposerSlashing (416 B) 2.5600 us/op 1.9570 us/op 1.31
transfer serialized Attestation (485 B) 2.7920 us/op 2.3200 us/op 1.20
copy serialized Attestation (485 B) 2.5000 us/op 2.6990 us/op 0.93
transfer serialized AttesterSlashing (33232 B) 2.6460 us/op 1.9740 us/op 1.34
copy serialized AttesterSlashing (33232 B) 10.028 us/op 9.5020 us/op 1.06
transfer serialized Small SignedBeaconBlock (128000 B) 2.6140 us/op 1.9610 us/op 1.33
copy serialized Small SignedBeaconBlock (128000 B) 26.300 us/op 9.1480 us/op 2.87
transfer serialized Avg SignedBeaconBlock (200000 B) 3.3570 us/op 2.0390 us/op 1.65
copy serialized Avg SignedBeaconBlock (200000 B) 42.186 us/op 13.100 us/op 3.22
transfer serialized BlobsSidecar (524380 B) 5.1750 us/op 2.1300 us/op 2.43
copy serialized BlobsSidecar (524380 B) 242.52 us/op 76.447 us/op 3.17
transfer serialized Big SignedBeaconBlock (1000000 B) 5.8710 us/op 2.5200 us/op 2.33
copy serialized Big SignedBeaconBlock (1000000 B) 277.89 us/op 137.86 us/op 2.02
pass gossip attestations to forkchoice per slot 4.0580 ms/op 2.7798 ms/op 1.46
forkChoice updateHead vc 100000 bc 64 eq 0 752.86 us/op 522.38 us/op 1.44
forkChoice updateHead vc 600000 bc 64 eq 0 4.5357 ms/op 2.6925 ms/op 1.68
forkChoice updateHead vc 1000000 bc 64 eq 0 7.9575 ms/op 4.4577 ms/op 1.79
forkChoice updateHead vc 600000 bc 320 eq 0 4.4483 ms/op 2.8181 ms/op 1.58
forkChoice updateHead vc 600000 bc 1200 eq 0 4.6712 ms/op 2.8686 ms/op 1.63
forkChoice updateHead vc 600000 bc 7200 eq 0 5.6629 ms/op 3.4699 ms/op 1.63
forkChoice updateHead vc 600000 bc 64 eq 1000 11.394 ms/op 11.018 ms/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 10000 13.092 ms/op 10.384 ms/op 1.26
forkChoice updateHead vc 600000 bc 64 eq 300000 23.958 ms/op 12.754 ms/op 1.88
computeDeltas 500000 validators 300 proto nodes 7.0728 ms/op 3.3480 ms/op 2.11
computeDeltas 500000 validators 1200 proto nodes 7.0489 ms/op 3.2325 ms/op 2.18
computeDeltas 500000 validators 7200 proto nodes 6.8087 ms/op 3.3195 ms/op 2.05
computeDeltas 750000 validators 300 proto nodes 9.6759 ms/op 5.3381 ms/op 1.81
computeDeltas 750000 validators 1200 proto nodes 9.5670 ms/op 5.5015 ms/op 1.74
computeDeltas 750000 validators 7200 proto nodes 9.4618 ms/op 5.7266 ms/op 1.65
computeDeltas 1400000 validators 300 proto nodes 17.608 ms/op 11.674 ms/op 1.51
computeDeltas 1400000 validators 1200 proto nodes 17.761 ms/op 11.014 ms/op 1.61
computeDeltas 1400000 validators 7200 proto nodes 18.050 ms/op 12.180 ms/op 1.48
computeDeltas 2100000 validators 300 proto nodes 29.790 ms/op 16.626 ms/op 1.79
computeDeltas 2100000 validators 1200 proto nodes 28.900 ms/op 14.782 ms/op 1.96
computeDeltas 2100000 validators 7200 proto nodes 27.374 ms/op 15.024 ms/op 1.82
altair processAttestation - 250000 vs - 7PWei normalcase 2.3671 ms/op 1.8136 ms/op 1.31
altair processAttestation - 250000 vs - 7PWei worstcase 3.4313 ms/op 2.3604 ms/op 1.45
altair processAttestation - setStatus - 1/6 committees join 182.11 us/op 91.549 us/op 1.99
altair processAttestation - setStatus - 1/3 committees join 353.07 us/op 220.19 us/op 1.60
altair processAttestation - setStatus - 1/2 committees join 465.20 us/op 329.51 us/op 1.41
altair processAttestation - setStatus - 2/3 committees join 584.50 us/op 447.83 us/op 1.31
altair processAttestation - setStatus - 4/5 committees join 799.68 us/op 513.87 us/op 1.56
altair processAttestation - setStatus - 100% committees join 950.32 us/op 605.90 us/op 1.57
altair processBlock - 250000 vs - 7PWei normalcase 9.5230 ms/op 8.4504 ms/op 1.13
altair processBlock - 250000 vs - 7PWei normalcase hashState 33.763 ms/op 30.771 ms/op 1.10
altair processBlock - 250000 vs - 7PWei worstcase 34.903 ms/op 36.543 ms/op 0.96
altair processBlock - 250000 vs - 7PWei worstcase hashState 89.240 ms/op 82.354 ms/op 1.08
phase0 processBlock - 250000 vs - 7PWei normalcase 2.1299 ms/op 2.3431 ms/op 0.91
phase0 processBlock - 250000 vs - 7PWei worstcase 29.066 ms/op 30.572 ms/op 0.95
altair processEth1Data - 250000 vs - 7PWei normalcase 456.44 us/op 547.13 us/op 0.83
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 10.739 us/op 13.286 us/op 0.81
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 67.754 us/op 91.156 us/op 0.74
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 17.339 us/op 24.978 us/op 0.69
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 10.488 us/op 20.048 us/op 0.52
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 182.73 us/op 190.06 us/op 0.96
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.1654 ms/op 1.0569 ms/op 1.10
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.8084 ms/op 970.38 us/op 1.86
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.5415 ms/op 1.7940 ms/op 0.86
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.8888 ms/op 4.7468 ms/op 0.61
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.2432 ms/op 2.5684 ms/op 0.87
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.9060 ms/op 5.0878 ms/op 0.96
Tree 40 250000 create 261.10 ms/op 362.96 ms/op 0.72
Tree 40 250000 get(125000) 202.40 ns/op 132.94 ns/op 1.52
Tree 40 250000 set(125000) 753.16 ns/op 609.40 ns/op 1.24
Tree 40 250000 toArray() 18.315 ms/op 21.772 ms/op 0.84
Tree 40 250000 iterate all - toArray() + loop 18.320 ms/op 22.205 ms/op 0.83
Tree 40 250000 iterate all - get(i) 70.452 ms/op 55.916 ms/op 1.26
MutableVector 250000 create 12.808 ms/op 14.423 ms/op 0.89
MutableVector 250000 get(125000) 6.4750 ns/op 6.0050 ns/op 1.08
MutableVector 250000 set(125000) 293.37 ns/op 213.44 ns/op 1.37
MutableVector 250000 toArray() 3.7916 ms/op 2.7898 ms/op 1.36
MutableVector 250000 iterate all - toArray() + loop 3.5505 ms/op 2.5779 ms/op 1.38
MutableVector 250000 iterate all - get(i) 1.5551 ms/op 1.3639 ms/op 1.14
Array 250000 create 3.1638 ms/op 2.4272 ms/op 1.30
Array 250000 clone - spread 1.5228 ms/op 1.2755 ms/op 1.19
Array 250000 get(125000) 1.1280 ns/op 1.1230 ns/op 1.00
Array 250000 set(125000) 4.1490 ns/op 1.2910 ns/op 3.21
Array 250000 iterate all - loop 162.09 us/op 163.20 us/op 0.99
effectiveBalanceIncrements clone Uint8Array 300000 38.702 us/op 14.688 us/op 2.63
effectiveBalanceIncrements clone MutableVector 300000 456.00 ns/op 410.00 ns/op 1.11
effectiveBalanceIncrements rw all Uint8Array 300000 200.97 us/op 186.94 us/op 1.08
effectiveBalanceIncrements rw all MutableVector 300000 93.845 ms/op 67.206 ms/op 1.40
phase0 afterProcessEpoch - 250000 vs - 7PWei 116.58 ms/op 81.810 ms/op 1.43
phase0 beforeProcessEpoch - 250000 vs - 7PWei 37.814 ms/op 43.303 ms/op 0.87
altair processEpoch - mainnet_e81889 468.45 ms/op 363.62 ms/op 1.29
mainnet_e81889 - altair beforeProcessEpoch 71.746 ms/op 60.037 ms/op 1.20
mainnet_e81889 - altair processJustificationAndFinalization 20.624 us/op 12.082 us/op 1.71
mainnet_e81889 - altair processInactivityUpdates 6.4201 ms/op 3.5437 ms/op 1.81
mainnet_e81889 - altair processRewardsAndPenalties 52.275 ms/op 51.593 ms/op 1.01
mainnet_e81889 - altair processRegistryUpdates 4.3560 us/op 2.1230 us/op 2.05
mainnet_e81889 - altair processSlashings 443.00 ns/op 771.00 ns/op 0.57
mainnet_e81889 - altair processEth1DataReset 575.00 ns/op 578.00 ns/op 0.99
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.5558 ms/op 1.0556 ms/op 1.47
mainnet_e81889 - altair processSlashingsReset 5.0020 us/op 3.5830 us/op 1.40
mainnet_e81889 - altair processRandaoMixesReset 7.3090 us/op 6.5220 us/op 1.12
mainnet_e81889 - altair processHistoricalRootsUpdate 1.6370 us/op 1.0380 us/op 1.58
mainnet_e81889 - altair processParticipationFlagUpdates 2.9890 us/op 2.3820 us/op 1.25
mainnet_e81889 - altair processSyncCommitteeUpdates 965.00 ns/op 992.00 ns/op 0.97
mainnet_e81889 - altair afterProcessEpoch 123.91 ms/op 81.079 ms/op 1.53
capella processEpoch - mainnet_e217614 1.7982 s/op 1.4781 s/op 1.22
mainnet_e217614 - capella beforeProcessEpoch 352.86 ms/op 272.12 ms/op 1.30
mainnet_e217614 - capella processJustificationAndFinalization 28.507 us/op 24.841 us/op 1.15
mainnet_e217614 - capella processInactivityUpdates 18.151 ms/op 12.952 ms/op 1.40
mainnet_e217614 - capella processRewardsAndPenalties 302.07 ms/op 211.51 ms/op 1.43
mainnet_e217614 - capella processRegistryUpdates 21.518 us/op 21.912 us/op 0.98
mainnet_e217614 - capella processSlashings 563.00 ns/op 660.00 ns/op 0.85
mainnet_e217614 - capella processEth1DataReset 559.00 ns/op 649.00 ns/op 0.86
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.4891 ms/op 16.034 ms/op 0.28
mainnet_e217614 - capella processSlashingsReset 4.1360 us/op 3.9930 us/op 1.04
mainnet_e217614 - capella processRandaoMixesReset 6.1780 us/op 6.8470 us/op 0.90
mainnet_e217614 - capella processHistoricalRootsUpdate 664.00 ns/op 1.0380 us/op 0.64
mainnet_e217614 - capella processParticipationFlagUpdates 1.9030 us/op 2.5450 us/op 0.75
mainnet_e217614 - capella afterProcessEpoch 328.58 ms/op 252.40 ms/op 1.30
phase0 processEpoch - mainnet_e58758 521.09 ms/op 481.35 ms/op 1.08
mainnet_e58758 - phase0 beforeProcessEpoch 160.25 ms/op 130.10 ms/op 1.23
mainnet_e58758 - phase0 processJustificationAndFinalization 20.702 us/op 21.336 us/op 0.97
mainnet_e58758 - phase0 processRewardsAndPenalties 26.136 ms/op 23.916 ms/op 1.09
mainnet_e58758 - phase0 processRegistryUpdates 12.299 us/op 9.9600 us/op 1.23
mainnet_e58758 - phase0 processSlashings 667.00 ns/op 673.00 ns/op 0.99
mainnet_e58758 - phase0 processEth1DataReset 482.00 ns/op 306.00 ns/op 1.58
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1250 ms/op 859.71 us/op 1.31
mainnet_e58758 - phase0 processSlashingsReset 4.5750 us/op 2.4930 us/op 1.84
mainnet_e58758 - phase0 processRandaoMixesReset 6.4040 us/op 3.7770 us/op 1.70
mainnet_e58758 - phase0 processHistoricalRootsUpdate 750.00 ns/op 889.00 ns/op 0.84
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.8280 us/op 4.3220 us/op 1.12
mainnet_e58758 - phase0 afterProcessEpoch 106.99 ms/op 69.914 ms/op 1.53
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3890 ms/op 1.0084 ms/op 1.38
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5058 ms/op 1.6259 ms/op 0.93
altair processInactivityUpdates - 250000 normalcase 18.134 ms/op 16.714 ms/op 1.08
altair processInactivityUpdates - 250000 worstcase 17.459 ms/op 14.166 ms/op 1.23
phase0 processRegistryUpdates - 250000 normalcase 10.606 us/op 5.8580 us/op 1.81
phase0 processRegistryUpdates - 250000 badcase_full_deposits 384.76 us/op 437.00 us/op 0.88
phase0 processRegistryUpdates - 250000 worstcase 0.5 143.95 ms/op 123.57 ms/op 1.16
altair processRewardsAndPenalties - 250000 normalcase 48.426 ms/op 51.900 ms/op 0.93
altair processRewardsAndPenalties - 250000 worstcase 50.233 ms/op 53.610 ms/op 0.94
phase0 getAttestationDeltas - 250000 normalcase 9.2792 ms/op 5.8606 ms/op 1.58
phase0 getAttestationDeltas - 250000 worstcase 9.4718 ms/op 5.4594 ms/op 1.73
phase0 processSlashings - 250000 worstcase 101.25 us/op 86.285 us/op 1.17
altair processSyncCommitteeUpdates - 250000 161.16 ms/op 101.05 ms/op 1.59
BeaconState.hashTreeRoot - No change 627.00 ns/op 365.00 ns/op 1.72
BeaconState.hashTreeRoot - 1 full validator 166.77 us/op 91.192 us/op 1.83
BeaconState.hashTreeRoot - 32 full validator 1.4604 ms/op 1.4762 ms/op 0.99
BeaconState.hashTreeRoot - 512 full validator 12.684 ms/op 16.557 ms/op 0.77
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 151.14 us/op 183.92 us/op 0.82
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.0069 ms/op 2.0048 ms/op 1.00
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 25.529 ms/op 30.010 ms/op 0.85
BeaconState.hashTreeRoot - 1 balances 127.93 us/op 135.03 us/op 0.95
BeaconState.hashTreeRoot - 32 balances 1.1631 ms/op 1.5208 ms/op 0.76
BeaconState.hashTreeRoot - 512 balances 12.105 ms/op 14.090 ms/op 0.86
BeaconState.hashTreeRoot - 250000 balances 266.99 ms/op 199.16 ms/op 1.34
aggregationBits - 2048 els - zipIndexesInBitList 37.636 us/op 20.841 us/op 1.81
byteArrayEquals 32 78.005 ns/op 63.961 ns/op 1.22
Buffer.compare 32 56.748 ns/op 40.200 ns/op 1.41
byteArrayEquals 1024 2.1005 us/op 1.7377 us/op 1.21
Buffer.compare 1024 72.142 ns/op 47.446 ns/op 1.52
byteArrayEquals 16384 33.407 us/op 27.605 us/op 1.21
Buffer.compare 16384 267.72 ns/op 226.43 ns/op 1.18
byteArrayEquals 123687377 254.11 ms/op 213.89 ms/op 1.19
Buffer.compare 123687377 9.5331 ms/op 5.0299 ms/op 1.90
byteArrayEquals 32 - diff last byte 79.141 ns/op 62.200 ns/op 1.27
Buffer.compare 32 - diff last byte 59.380 ns/op 38.876 ns/op 1.53
byteArrayEquals 1024 - diff last byte 2.1924 us/op 1.7734 us/op 1.24
Buffer.compare 1024 - diff last byte 73.820 ns/op 48.647 ns/op 1.52
byteArrayEquals 16384 - diff last byte 34.603 us/op 28.117 us/op 1.23
Buffer.compare 16384 - diff last byte 278.90 ns/op 233.98 ns/op 1.19
byteArrayEquals 123687377 - diff last byte 251.53 ms/op 210.63 ms/op 1.19
Buffer.compare 123687377 - diff last byte 8.5756 ms/op 5.5439 ms/op 1.55
byteArrayEquals 32 - random bytes 6.3320 ns/op 4.9230 ns/op 1.29
Buffer.compare 32 - random bytes 63.526 ns/op 41.197 ns/op 1.54
byteArrayEquals 1024 - random bytes 5.8330 ns/op 4.6530 ns/op 1.25
Buffer.compare 1024 - random bytes 61.641 ns/op 40.824 ns/op 1.51
byteArrayEquals 16384 - random bytes 5.5250 ns/op 4.6410 ns/op 1.19
Buffer.compare 16384 - random bytes 61.074 ns/op 42.359 ns/op 1.44
byteArrayEquals 123687377 - random bytes 8.5800 ns/op 7.9900 ns/op 1.07
Buffer.compare 123687377 - random bytes 67.700 ns/op 42.370 ns/op 1.60
regular array get 100000 times 45.902 us/op 42.044 us/op 1.09
wrappedArray get 100000 times 45.360 us/op 42.189 us/op 1.08
arrayWithProxy get 100000 times 14.263 ms/op 10.231 ms/op 1.39
ssz.Root.equals 54.492 ns/op 56.429 ns/op 0.97
byteArrayEquals 53.654 ns/op 55.960 ns/op 0.96
Buffer.compare 11.291 ns/op 10.330 ns/op 1.09
shuffle list - 16384 els 8.8446 ms/op 6.0257 ms/op 1.47
shuffle list - 250000 els 129.83 ms/op 92.664 ms/op 1.40
processSlot - 1 slots 16.247 us/op 14.168 us/op 1.15
processSlot - 32 slots 3.8967 ms/op 2.3496 ms/op 1.66
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 57.926 ms/op 51.008 ms/op 1.14
getCommitteeAssignments - req 1 vs - 250000 vc 2.6814 ms/op 2.5083 ms/op 1.07
getCommitteeAssignments - req 100 vs - 250000 vc 3.8956 ms/op 3.7990 ms/op 1.03
getCommitteeAssignments - req 1000 vs - 250000 vc 4.3070 ms/op 4.0666 ms/op 1.06
findModifiedValidators - 10000 modified validators 371.66 ms/op 349.47 ms/op 1.06
findModifiedValidators - 1000 modified validators 263.27 ms/op 195.29 ms/op 1.35
findModifiedValidators - 100 modified validators 283.56 ms/op 173.09 ms/op 1.64
findModifiedValidators - 10 modified validators 220.34 ms/op 194.15 ms/op 1.13
findModifiedValidators - 1 modified validators 219.99 ms/op 217.93 ms/op 1.01
findModifiedValidators - no difference 209.89 ms/op 246.69 ms/op 0.85
compare ViewDUs 3.9742 s/op 4.1294 s/op 0.96
compare each validator Uint8Array 1.8115 s/op 1.6621 s/op 1.09
compare ViewDU to Uint8Array 1.4428 s/op 1.0283 s/op 1.40
migrate state 1000000 validators, 24 modified, 0 new 782.99 ms/op 609.02 ms/op 1.29
migrate state 1000000 validators, 1700 modified, 1000 new 1.2926 s/op 1.0056 s/op 1.29
migrate state 1000000 validators, 3400 modified, 2000 new 1.7006 s/op 1.2227 s/op 1.39
migrate state 1500000 validators, 24 modified, 0 new 856.11 ms/op 631.87 ms/op 1.35
migrate state 1500000 validators, 1700 modified, 1000 new 1.1210 s/op 1.0066 s/op 1.11
migrate state 1500000 validators, 3400 modified, 2000 new 1.3939 s/op 1.2967 s/op 1.07
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.5700 ns/op 4.3800 ns/op 1.04
state getBlockRootAtSlot - 250000 vs - 7PWei 609.91 ns/op 801.78 ns/op 0.76
computeProposers - vc 250000 10.001 ms/op 6.9287 ms/op 1.44
computeEpochShuffling - vc 250000 131.45 ms/op 86.277 ms/op 1.52
getNextSyncCommittee - vc 250000 155.04 ms/op 98.582 ms/op 1.57
computeSigningRoot for AttestationData 30.125 us/op 28.051 us/op 1.07
hash AttestationData serialized data then Buffer.toString(base64) 2.3536 us/op 1.2195 us/op 1.93
toHexString serialized data 1.1148 us/op 728.81 ns/op 1.53
Buffer.toString(base64) 247.67 ns/op 154.19 ns/op 1.61

by benchmarkbot/action

@jeluard jeluard requested a review from wemeetagain May 22, 2024 15:14
export function nextEventLoop(): Promise<void> {
// `setTimeout` delay is at least 1ms
// Say https://nodejs.org/api/timers.html#settimeoutcallback-delay-args
return sleep(1);
Copy link
Member

Choose a reason for hiding this comment

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

Just a note for the future.
This was changed from 0 to 1 because 1 is actually the minimum that's allowed. Passing 0 here will be treated the same as passing 1.

Copy link
Member

Choose a reason for hiding this comment

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

This seems nodejs/libuv specific behavior, might be a safer bet to just pass 0 and let the runtime specific implementation handle it. I would assume all of them handle setTimeout 0 as execute in next event loop tick.

wemeetagain
wemeetagain previously approved these changes May 23, 2024
Copy link
Member

@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 enabled auto-merge (squash) May 23, 2024 19:49
@codecov-commenter
Copy link

Codecov Report

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

Project coverage is 62.20%. Comparing base (8e875c6) to head (bae46d7).
Report is 13 commits behind head on unstable.

Current head bae46d7 differs from pull request most recent head d36e9df

Please upload reports for the commit d36e9df to get more accurate results.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #6806      +/-   ##
============================================
+ Coverage     61.88%   62.20%   +0.32%     
============================================
  Files           562      571       +9     
  Lines         59309    60013     +704     
  Branches       1916     1982      +66     
============================================
+ Hits          36703    37334     +631     
- Misses        22563    22635      +72     
- Partials         43       44       +1     

@wemeetagain wemeetagain merged commit 8ed9109 into unstable May 23, 2024
18 of 20 checks passed
@wemeetagain wemeetagain deleted the jeluard/yield-refatoring branch May 23, 2024 20:07
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.

4 participants