lodestar icon indicating copy to clipboard operation
lodestar copied to clipboard

chore: use npm trusted publishing

Open nazarhussain opened this issue 1 month ago • 4 comments

Motivation

Use more secure way publish a release.

Description

nazarhussain avatar Dec 09 '25 14:12 nazarhussain

Summary of Changes

Hello @nazarhussain, I'm Gemini Code Assist[^1]! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on enhancing the security of the release process by integrating npm trusted publishing. To achieve this, the project's dependency management for monorepos has been updated, transitioning from the original lerna package to the more modular lerna-lite packages. This ensures a more secure and streamlined publishing workflow.

Highlights

  • Dependency Migration: The project has migrated from using the lerna package to the lerna-lite suite of packages, specifically @lerna-lite/cli, @lerna-lite/publish, and @lerna-lite/version.
  • Enhanced Release Security: This change enables the use of npm trusted publishing, providing a more secure method for publishing releases.
Ignored Files
  • Ignored by pattern: .github/workflows/** (4)
    • .github/workflows/publish-dev.yml
    • .github/workflows/publish-nextfork.yml
    • .github/workflows/publish-rc.yml
    • .github/workflows/publish-stable.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with :thumbsup: and :thumbsdown: on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

[^1]: Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

gemini-code-assist[bot] avatar Dec 09 '25 14:12 gemini-code-assist[bot]

:warning: Performance Alert :warning:

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: 750f9b56b8af93f8fac6e0d38235b123c97143cb Previous: 868300d7ae9254ba38324ceab82c7e4ef473185b Ratio
200 bytes - compress - snappy 24.818 us/op 1.6909 us/op 14.68
300 bytes - uncompress - snappy 22.717 us/op 1.5073 us/op 15.07
400 bytes - uncompress - snappyjs 11.074 us/op 1.6135 us/op 6.86
500 bytes - uncompress - snappy 24.065 us/op 2.1996 us/op 10.94
Full columns - reconstruct single blob out of 6 5.1776 ms/op 50.643 us/op 102.24
Full columns - reconstruct half of the blobs out of 10 27.292 ms/op 194.04 us/op 140.65
Full benchmark results
Benchmark suite Current: 750f9b56b8af93f8fac6e0d38235b123c97143cb Previous: 868300d7ae9254ba38324ceab82c7e4ef473185b Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.1418 ms/op 974.07 us/op 1.17
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 44.419 us/op 40.804 us/op 1.09
BLS verify - blst 915.58 us/op 896.79 us/op 1.02
BLS verifyMultipleSignatures 3 - blst 2.1251 ms/op 1.2306 ms/op 1.73
BLS verifyMultipleSignatures 8 - blst 2.4956 ms/op 2.0514 ms/op 1.22
BLS verifyMultipleSignatures 32 - blst 6.4760 ms/op 4.9825 ms/op 1.30
BLS verifyMultipleSignatures 64 - blst 12.644 ms/op 10.410 ms/op 1.21
BLS verifyMultipleSignatures 128 - blst 20.408 ms/op 18.627 ms/op 1.10
BLS deserializing 10000 signatures 837.67 ms/op 719.78 ms/op 1.16
BLS deserializing 100000 signatures 8.4562 s/op 7.5437 s/op 1.12
BLS verifyMultipleSignatures - same message - 3 - blst 1.1138 ms/op 990.26 us/op 1.12
BLS verifyMultipleSignatures - same message - 8 - blst 1.2220 ms/op 1.1810 ms/op 1.03
BLS verifyMultipleSignatures - same message - 32 - blst 2.0858 ms/op 1.9749 ms/op 1.06
BLS verifyMultipleSignatures - same message - 64 - blst 3.5664 ms/op 3.1756 ms/op 1.12
BLS verifyMultipleSignatures - same message - 128 - blst 5.3881 ms/op 4.8839 ms/op 1.10
BLS aggregatePubkeys 32 - blst 25.147 us/op 20.832 us/op 1.21
BLS aggregatePubkeys 128 - blst 94.906 us/op 75.934 us/op 1.25
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 50.982 ms/op 52.024 ms/op 0.98
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 47.061 ms/op 41.879 ms/op 1.12
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 52.539 ms/op 33.907 ms/op 1.55
getSlashingsAndExits - default max 124.41 us/op 73.744 us/op 1.69
getSlashingsAndExits - 2k 457.38 us/op 387.32 us/op 1.18
isKnown best case - 1 super set check 383.00 ns/op 208.00 ns/op 1.84
isKnown normal case - 2 super set checks 353.00 ns/op 199.00 ns/op 1.77
isKnown worse case - 16 super set checks 287.00 ns/op 205.00 ns/op 1.40
InMemoryCheckpointStateCache - add get delete 3.8250 us/op 2.5290 us/op 1.51
validate api signedAggregateAndProof - struct 2.6446 ms/op 1.8961 ms/op 1.39
validate gossip signedAggregateAndProof - struct 3.1219 ms/op 1.8538 ms/op 1.68
batch validate gossip attestation - vc 640000 - chunk 32 252.18 us/op 176.84 us/op 1.43
batch validate gossip attestation - vc 640000 - chunk 64 216.02 us/op 141.96 us/op 1.52
batch validate gossip attestation - vc 640000 - chunk 128 184.50 us/op 114.10 us/op 1.62
batch validate gossip attestation - vc 640000 - chunk 256 174.71 us/op 112.19 us/op 1.56
pickEth1Vote - no votes 1.6258 ms/op 1.0903 ms/op 1.49
pickEth1Vote - max votes 10.501 ms/op 7.5165 ms/op 1.40
pickEth1Vote - Eth1Data hashTreeRoot value x2048 23.050 ms/op 14.901 ms/op 1.55
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 33.203 ms/op 20.856 ms/op 1.59
pickEth1Vote - Eth1Data fastSerialize value x2048 947.47 us/op 443.40 us/op 2.14
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.3369 ms/op 4.1569 ms/op 1.52
bytes32 toHexString 566.00 ns/op 392.00 ns/op 1.44
bytes32 Buffer.toString(hex) 412.00 ns/op 301.00 ns/op 1.37
bytes32 Buffer.toString(hex) from Uint8Array 641.00 ns/op 423.00 ns/op 1.52
bytes32 Buffer.toString(hex) + 0x 403.00 ns/op 245.00 ns/op 1.64
Object access 1 prop 0.22700 ns/op 0.12400 ns/op 1.83
Map access 1 prop 0.27600 ns/op 0.12600 ns/op 2.19
Object get x1000 9.7000 ns/op 5.7450 ns/op 1.69
Map get x1000 0.79500 ns/op 0.38200 ns/op 2.08
Object set x1000 47.395 ns/op 31.164 ns/op 1.52
Map set x1000 34.650 ns/op 23.029 ns/op 1.50
Return object 10000 times 0.35680 ns/op 0.30380 ns/op 1.17
Throw Error 10000 times 5.9593 us/op 4.3522 us/op 1.37
toHex 178.79 ns/op 151.54 ns/op 1.18
Buffer.from 353.21 ns/op 134.67 ns/op 2.62
shared Buffer 194.91 ns/op 83.862 ns/op 2.32
fastMsgIdFn sha256 / 200 bytes 3.7640 us/op 2.0230 us/op 1.86
fastMsgIdFn h32 xxhash / 200 bytes 418.00 ns/op 199.00 ns/op 2.10
fastMsgIdFn h64 xxhash / 200 bytes 706.00 ns/op 268.00 ns/op 2.63
fastMsgIdFn sha256 / 1000 bytes 12.024 us/op 6.4370 us/op 1.87
fastMsgIdFn h32 xxhash / 1000 bytes 660.00 ns/op 302.00 ns/op 2.19
fastMsgIdFn h64 xxhash / 1000 bytes 656.00 ns/op 328.00 ns/op 2.00
fastMsgIdFn sha256 / 10000 bytes 99.343 us/op 59.614 us/op 1.67
fastMsgIdFn h32 xxhash / 10000 bytes 2.3900 us/op 1.5070 us/op 1.59
fastMsgIdFn h64 xxhash / 10000 bytes 1.5590 us/op 982.00 ns/op 1.59
100 bytes - compress - snappyjs 2.4079 us/op 1.5222 us/op 1.58
100 bytes - compress - snappy 2.0057 us/op 1.3071 us/op 1.53
100 bytes - compress - snappy-wasm 1.9057 us/op
100 bytes - compress - snappy-wasm - prealloc 2.6860 us/op
200 bytes - compress - snappyjs 4.2548 us/op 1.6695 us/op 2.55
200 bytes - compress - snappy 24.818 us/op 1.6909 us/op 14.68
200 bytes - compress - snappy-wasm 1.7305 us/op
200 bytes - compress - snappy-wasm - prealloc 2.2320 us/op
300 bytes - compress - snappyjs 5.3194 us/op 2.9379 us/op 1.81
300 bytes - compress - snappy 2.9867 us/op 1.9799 us/op 1.51
300 bytes - compress - snappy-wasm 25.382 us/op
300 bytes - compress - snappy-wasm - prealloc 2.1448 us/op
400 bytes - compress - snappyjs 4.1012 us/op 2.3396 us/op 1.75
400 bytes - compress - snappy 3.6712 us/op 2.1813 us/op 1.68
400 bytes - compress - snappy-wasm 1.9099 us/op
400 bytes - compress - snappy-wasm - prealloc 2.1592 us/op
500 bytes - compress - snappyjs 4.5602 us/op 3.0889 us/op 1.48
500 bytes - compress - snappy 5.1107 us/op 2.3588 us/op 2.17
500 bytes - compress - snappy-wasm 18.033 us/op
500 bytes - compress - snappy-wasm - prealloc 3.2853 us/op
1000 bytes - compress - snappyjs 9.3712 us/op 4.5526 us/op 2.06
1000 bytes - compress - snappy 3.2028 us/op 3.0277 us/op 1.06
1000 bytes - compress - snappy-wasm 3.2904 us/op
1000 bytes - compress - snappy-wasm - prealloc 2.7726 us/op
10000 bytes - compress - snappyjs 41.702 us/op 29.231 us/op 1.43
10000 bytes - compress - snappy 7.8830 us/op 16.910 us/op 0.47
10000 bytes - compress - snappy-wasm 16.613 us/op
10000 bytes - compress - snappy-wasm - prealloc 19.396 us/op
100 bytes - uncompress - snappyjs 1.7991 us/op 801.89 ns/op 2.24
100 bytes - uncompress - snappy 2.2830 us/op 1.5166 us/op 1.51
100 bytes - uncompress - snappy-wasm 1.5279 us/op
100 bytes - uncompress - snappy-wasm - prealloc 2.0730 us/op
200 bytes - uncompress - snappyjs 2.2332 us/op 1.3935 us/op 1.60
200 bytes - uncompress - snappy 2.7439 us/op 1.8058 us/op 1.52
200 bytes - uncompress - snappy-wasm 25.359 us/op
200 bytes - uncompress - snappy-wasm - prealloc 2.4487 us/op
300 bytes - uncompress - snappyjs 2.2874 us/op 1.2181 us/op 1.88
300 bytes - uncompress - snappy 22.717 us/op 1.5073 us/op 15.07
300 bytes - uncompress - snappy-wasm 2.3332 us/op
300 bytes - uncompress - snappy-wasm - prealloc 2.4503 us/op
400 bytes - uncompress - snappyjs 11.074 us/op 1.6135 us/op 6.86
400 bytes - uncompress - snappy 2.5307 us/op 1.5895 us/op 1.59
400 bytes - uncompress - snappy-wasm 1.8111 us/op
400 bytes - uncompress - snappy-wasm - prealloc 2.6051 us/op
500 bytes - uncompress - snappyjs 3.0457 us/op 1.8898 us/op 1.61
500 bytes - uncompress - snappy 24.065 us/op 2.1996 us/op 10.94
500 bytes - uncompress - snappy-wasm 1.4944 us/op
500 bytes - uncompress - snappy-wasm - prealloc 2.8172 us/op
1000 bytes - uncompress - snappyjs 4.1248 us/op 2.4049 us/op 1.72
1000 bytes - uncompress - snappy 3.1224 us/op 1.8319 us/op 1.70
1000 bytes - uncompress - snappy-wasm 2.1391 us/op
1000 bytes - uncompress - snappy-wasm - prealloc 2.8112 us/op
10000 bytes - uncompress - snappyjs 23.833 us/op 24.660 us/op 0.97
10000 bytes - uncompress - snappy 11.499 us/op 24.359 us/op 0.47
10000 bytes - uncompress - snappy-wasm 10.500 us/op
10000 bytes - uncompress - snappy-wasm - prealloc 10.547 us/op
send data - 1000 256B messages 27.070 ms/op 23.406 ms/op 1.16
send data - 1000 512B messages 28.070 ms/op 24.129 ms/op 1.16
send data - 1000 1024B messages 49.246 ms/op 29.586 ms/op 1.66
send data - 1000 1200B messages 38.665 ms/op 36.139 ms/op 1.07
send data - 1000 2048B messages 53.369 ms/op 33.882 ms/op 1.58
send data - 1000 4096B messages 37.729 ms/op 41.431 ms/op 0.91
send data - 1000 16384B messages 382.97 ms/op 161.10 ms/op 2.38
send data - 1000 65536B messages 1.0581 s/op 663.87 ms/op 1.59
enrSubnets - fastDeserialize 64 bits 1.9710 us/op 960.00 ns/op 2.05
enrSubnets - ssz BitVector 64 bits 675.00 ns/op 364.00 ns/op 1.85
enrSubnets - fastDeserialize 4 bits 261.00 ns/op 142.00 ns/op 1.84
enrSubnets - ssz BitVector 4 bits 754.00 ns/op 367.00 ns/op 2.05
prioritizePeers score -10:0 att 32-0.1 sync 2-0 403.94 us/op 262.09 us/op 1.54
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 548.33 us/op 303.57 us/op 1.81
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 530.51 us/op 420.48 us/op 1.26
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 1.0102 ms/op 900.93 us/op 1.12
prioritizePeers score 0:0 att 64-1 sync 4-1 1.3768 ms/op 894.17 us/op 1.54
array of 16000 items push then shift 3.3065 us/op 1.7795 us/op 1.86
LinkedList of 16000 items push then shift 14.287 ns/op 8.1070 ns/op 1.76
array of 16000 items push then pop 183.55 ns/op 84.752 ns/op 2.17
LinkedList of 16000 items push then pop 16.100 ns/op 7.8070 ns/op 2.06
array of 24000 items push then shift 4.0529 us/op 2.5672 us/op 1.58
LinkedList of 24000 items push then shift 12.980 ns/op 8.6200 ns/op 1.51
array of 24000 items push then pop 218.93 ns/op 115.58 ns/op 1.89
LinkedList of 24000 items push then pop 14.918 ns/op 7.8020 ns/op 1.91
intersect bitArray bitLen 8 10.802 ns/op 6.1720 ns/op 1.75
intersect array and set length 8 69.857 ns/op 38.820 ns/op 1.80
intersect bitArray bitLen 128 70.045 ns/op 30.329 ns/op 2.31
intersect array and set length 128 1.1021 us/op 618.77 ns/op 1.78
bitArray.getTrueBitIndexes() bitLen 128 1.7910 us/op 1.2580 us/op 1.42
bitArray.getTrueBitIndexes() bitLen 248 2.8690 us/op 2.0640 us/op 1.39
bitArray.getTrueBitIndexes() bitLen 512 7.2340 us/op 4.1470 us/op 1.74
Full columns - reconstruct all 6 blobs 349.48 us/op 392.04 us/op 0.89
Full columns - reconstruct half of the blobs out of 6 129.21 us/op 158.43 us/op 0.82
Full columns - reconstruct single blob out of 6 5.1776 ms/op 50.643 us/op 102.24
Half columns - reconstruct all 6 blobs 725.18 ms/op 300.98 ms/op 2.41
Half columns - reconstruct half of the blobs out of 6 342.32 ms/op 167.97 ms/op 2.04
Half columns - reconstruct single blob out of 6 143.64 ms/op 55.349 ms/op 2.60
Full columns - reconstruct all 10 blobs 440.39 us/op 419.81 us/op 1.05
Full columns - reconstruct half of the blobs out of 10 27.292 ms/op 194.04 us/op 140.65
Full columns - reconstruct single blob out of 10 54.581 us/op 53.704 us/op 1.02
Half columns - reconstruct all 10 blobs 989.38 ms/op 506.52 ms/op 1.95
Half columns - reconstruct half of the blobs out of 10 374.84 ms/op 274.00 ms/op 1.37
Half columns - reconstruct single blob out of 10 118.85 ms/op 54.769 ms/op 2.17
Full columns - reconstruct all 20 blobs 876.99 us/op 1.4152 ms/op 0.62
Full columns - reconstruct half of the blobs out of 20 462.43 us/op 527.24 us/op 0.88
Full columns - reconstruct single blob out of 20 67.946 us/op 33.405 us/op 2.03
Half columns - reconstruct all 20 blobs 2.2050 s/op 971.51 ms/op 2.27
Half columns - reconstruct half of the blobs out of 20 984.78 ms/op 512.16 ms/op 1.92
Half columns - reconstruct single blob out of 20 106.41 ms/op 61.888 ms/op 1.72
Set add up to 64 items then delete first 5.2482 us/op 3.2494 us/op 1.62
OrderedSet add up to 64 items then delete first 6.6685 us/op 4.2914 us/op 1.55
Set add up to 64 items then delete last 5.9761 us/op 3.0497 us/op 1.96
OrderedSet add up to 64 items then delete last 5.8177 us/op 4.3118 us/op 1.35
Set add up to 64 items then delete middle 3.6843 us/op 3.0645 us/op 1.20
OrderedSet add up to 64 items then delete middle 8.2443 us/op 6.1575 us/op 1.34
Set add up to 128 items then delete first 9.6163 us/op 6.1276 us/op 1.57
OrderedSet add up to 128 items then delete first 11.709 us/op 8.0762 us/op 1.45
Set add up to 128 items then delete last 11.859 us/op 5.3681 us/op 2.21
OrderedSet add up to 128 items then delete last 15.595 us/op 8.5711 us/op 1.82
Set add up to 128 items then delete middle 12.135 us/op 6.4321 us/op 1.89
OrderedSet add up to 128 items then delete middle 22.439 us/op 16.912 us/op 1.33
Set add up to 256 items then delete first 17.123 us/op 12.634 us/op 1.36
OrderedSet add up to 256 items then delete first 24.101 us/op 16.798 us/op 1.43
Set add up to 256 items then delete last 23.247 us/op 13.512 us/op 1.72
OrderedSet add up to 256 items then delete last 19.586 us/op 19.982 us/op 0.98
Set add up to 256 items then delete middle 18.228 us/op 12.480 us/op 1.46
OrderedSet add up to 256 items then delete middle 77.795 us/op 50.877 us/op 1.53
pass gossip attestations to forkchoice per slot 4.2981 ms/op 3.0687 ms/op 1.40
forkChoice updateHead vc 100000 bc 64 eq 0 1.0853 ms/op 565.46 us/op 1.92
forkChoice updateHead vc 600000 bc 64 eq 0 4.7013 ms/op 2.9686 ms/op 1.58
forkChoice updateHead vc 1000000 bc 64 eq 0 11.258 ms/op 5.2358 ms/op 2.15
forkChoice updateHead vc 600000 bc 320 eq 0 4.8165 ms/op 3.2169 ms/op 1.50
forkChoice updateHead vc 600000 bc 1200 eq 0 6.5387 ms/op 3.3019 ms/op 1.98
forkChoice updateHead vc 600000 bc 7200 eq 0 4.3464 ms/op 4.4906 ms/op 0.97
forkChoice updateHead vc 600000 bc 64 eq 1000 4.2594 ms/op 3.7414 ms/op 1.14
forkChoice updateHead vc 600000 bc 64 eq 10000 4.4829 ms/op 3.8391 ms/op 1.17
forkChoice updateHead vc 600000 bc 64 eq 300000 11.179 ms/op 10.375 ms/op 1.08
computeDeltas 1400000 validators 0% inactive 17.980 ms/op 15.644 ms/op 1.15
computeDeltas 1400000 validators 10% inactive 16.744 ms/op 15.077 ms/op 1.11
computeDeltas 1400000 validators 20% inactive 15.927 ms/op 13.367 ms/op 1.19
computeDeltas 1400000 validators 50% inactive 11.666 ms/op 10.514 ms/op 1.11
computeDeltas 2100000 validators 0% inactive 33.210 ms/op 23.128 ms/op 1.44
computeDeltas 2100000 validators 10% inactive 23.662 ms/op 22.432 ms/op 1.05
computeDeltas 2100000 validators 20% inactive 23.183 ms/op 19.812 ms/op 1.17
computeDeltas 2100000 validators 50% inactive 22.360 ms/op 15.963 ms/op 1.40
altair processAttestation - 250000 vs - 7PWei normalcase 2.6653 ms/op 2.7661 ms/op 0.96
altair processAttestation - 250000 vs - 7PWei worstcase 3.8084 ms/op 3.7183 ms/op 1.02
altair processAttestation - setStatus - 1/6 committees join 189.03 us/op 128.56 us/op 1.47
altair processAttestation - setStatus - 1/3 committees join 304.40 us/op 251.30 us/op 1.21
altair processAttestation - setStatus - 1/2 committees join 469.40 us/op 349.64 us/op 1.34
altair processAttestation - setStatus - 2/3 committees join 510.83 us/op 449.57 us/op 1.14
altair processAttestation - setStatus - 4/5 committees join 863.92 us/op 619.46 us/op 1.39
altair processAttestation - setStatus - 100% committees join 821.76 us/op 736.90 us/op 1.12
altair processBlock - 250000 vs - 7PWei normalcase 5.7623 ms/op 5.1418 ms/op 1.12
altair processBlock - 250000 vs - 7PWei normalcase hashState 20.906 ms/op 28.248 ms/op 0.74
altair processBlock - 250000 vs - 7PWei worstcase 27.789 ms/op 28.960 ms/op 0.96
altair processBlock - 250000 vs - 7PWei worstcase hashState 66.004 ms/op 66.063 ms/op 1.00
phase0 processBlock - 250000 vs - 7PWei normalcase 2.3000 ms/op 1.7601 ms/op 1.31
phase0 processBlock - 250000 vs - 7PWei worstcase 21.665 ms/op 25.750 ms/op 0.84
altair processEth1Data - 250000 vs - 7PWei normalcase 592.76 us/op 414.07 us/op 1.43
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 7.4890 us/op 12.284 us/op 0.61
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 40.145 us/op 62.391 us/op 0.64
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 10.969 us/op 20.392 us/op 0.54
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.3730 us/op 11.833 us/op 0.54
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 180.22 us/op 245.13 us/op 0.74
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.9816 ms/op 2.1417 ms/op 0.93
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.9011 ms/op 3.2349 ms/op 0.90
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 3.2320 ms/op 2.7196 ms/op 1.19
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 6.4255 ms/op 6.1572 ms/op 1.04
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.8045 ms/op 2.8645 ms/op 0.98
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 6.0002 ms/op 6.2035 ms/op 0.97
Tree 40 250000 create 529.80 ms/op 407.60 ms/op 1.30
Tree 40 250000 get(125000) 192.34 ns/op 131.18 ns/op 1.47
Tree 40 250000 set(125000) 1.9495 us/op 1.3287 us/op 1.47
Tree 40 250000 toArray() 23.473 ms/op 19.267 ms/op 1.22
Tree 40 250000 iterate all - toArray() + loop 17.311 ms/op 20.027 ms/op 0.86
Tree 40 250000 iterate all - get(i) 55.458 ms/op 49.797 ms/op 1.11
Array 250000 create 3.3125 ms/op 2.7338 ms/op 1.21
Array 250000 clone - spread 998.81 us/op 917.19 us/op 1.09
Array 250000 get(125000) 0.50600 ns/op 0.36500 ns/op 1.39
Array 250000 set(125000) 0.53900 ns/op 0.36800 ns/op 1.46
Array 250000 iterate all - loop 81.281 us/op 63.585 us/op 1.28
phase0 afterProcessEpoch - 250000 vs - 7PWei 53.767 ms/op 43.951 ms/op 1.22
Array.fill - length 1000000 3.5441 ms/op 3.3421 ms/op 1.06
Array push - length 1000000 13.196 ms/op 13.843 ms/op 0.95
Array.get 0.31140 ns/op 0.23491 ns/op 1.33
Uint8Array.get 0.28456 ns/op 0.24768 ns/op 1.15
phase0 beforeProcessEpoch - 250000 vs - 7PWei 17.733 ms/op 21.080 ms/op 0.84
altair processEpoch - mainnet_e81889 320.72 ms/op 295.45 ms/op 1.09
mainnet_e81889 - altair beforeProcessEpoch 23.378 ms/op 24.144 ms/op 0.97
mainnet_e81889 - altair processJustificationAndFinalization 7.7050 us/op 5.9870 us/op 1.29
mainnet_e81889 - altair processInactivityUpdates 6.7759 ms/op 4.1913 ms/op 1.62
mainnet_e81889 - altair processRewardsAndPenalties 24.906 ms/op 20.894 ms/op 1.19
mainnet_e81889 - altair processRegistryUpdates 835.00 ns/op 703.00 ns/op 1.19
mainnet_e81889 - altair processSlashings 341.00 ns/op 188.00 ns/op 1.81
mainnet_e81889 - altair processEth1DataReset 313.00 ns/op 181.00 ns/op 1.73
mainnet_e81889 - altair processEffectiveBalanceUpdates 8.3826 ms/op 7.2064 ms/op 1.16
mainnet_e81889 - altair processSlashingsReset 1.1040 us/op 874.00 ns/op 1.26
mainnet_e81889 - altair processRandaoMixesReset 1.5110 us/op 1.1440 us/op 1.32
mainnet_e81889 - altair processHistoricalRootsUpdate 193.00 ns/op 189.00 ns/op 1.02
mainnet_e81889 - altair processParticipationFlagUpdates 660.00 ns/op 641.00 ns/op 1.03
mainnet_e81889 - altair processSyncCommitteeUpdates 175.00 ns/op 153.00 ns/op 1.14
mainnet_e81889 - altair afterProcessEpoch 55.072 ms/op 47.667 ms/op 1.16
capella processEpoch - mainnet_e217614 1.1218 s/op 850.21 ms/op 1.32
mainnet_e217614 - capella beforeProcessEpoch 82.675 ms/op 95.289 ms/op 0.87
mainnet_e217614 - capella processJustificationAndFinalization 6.8440 us/op 5.8580 us/op 1.17
mainnet_e217614 - capella processInactivityUpdates 22.325 ms/op 22.729 ms/op 0.98
mainnet_e217614 - capella processRewardsAndPenalties 166.30 ms/op 118.55 ms/op 1.40
mainnet_e217614 - capella processRegistryUpdates 9.4340 us/op 8.2340 us/op 1.15
mainnet_e217614 - capella processSlashings 331.00 ns/op 171.00 ns/op 1.94
mainnet_e217614 - capella processEth1DataReset 322.00 ns/op 174.00 ns/op 1.85
mainnet_e217614 - capella processEffectiveBalanceUpdates 21.128 ms/op 16.721 ms/op 1.26
mainnet_e217614 - capella processSlashingsReset 1.6440 us/op 843.00 ns/op 1.95
mainnet_e217614 - capella processRandaoMixesReset 2.3620 us/op 1.1950 us/op 1.98
mainnet_e217614 - capella processHistoricalRootsUpdate 350.00 ns/op 176.00 ns/op 1.99
mainnet_e217614 - capella processParticipationFlagUpdates 1.1540 us/op 536.00 ns/op 2.15
mainnet_e217614 - capella afterProcessEpoch 232.93 ms/op 119.99 ms/op 1.94
phase0 processEpoch - mainnet_e58758 363.31 ms/op 254.53 ms/op 1.43
mainnet_e58758 - phase0 beforeProcessEpoch 78.402 ms/op 59.868 ms/op 1.31
mainnet_e58758 - phase0 processJustificationAndFinalization 8.6440 us/op 5.7140 us/op 1.51
mainnet_e58758 - phase0 processRewardsAndPenalties 28.256 ms/op 19.684 ms/op 1.44
mainnet_e58758 - phase0 processRegistryUpdates 4.6610 us/op 3.1610 us/op 1.47
mainnet_e58758 - phase0 processSlashings 410.00 ns/op 212.00 ns/op 1.93
mainnet_e58758 - phase0 processEth1DataReset 241.00 ns/op 167.00 ns/op 1.44
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.5804 ms/op 1.0085 ms/op 1.57
mainnet_e58758 - phase0 processSlashingsReset 1.1860 us/op 935.00 ns/op 1.27
mainnet_e58758 - phase0 processRandaoMixesReset 1.3480 us/op 1.0940 us/op 1.23
mainnet_e58758 - phase0 processHistoricalRootsUpdate 211.00 ns/op 185.00 ns/op 1.14
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.0880 us/op 850.00 ns/op 1.28
mainnet_e58758 - phase0 afterProcessEpoch 44.961 ms/op 37.110 ms/op 1.21
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.2490 ms/op 1.7434 ms/op 1.29
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.3635 ms/op 2.1424 ms/op 1.57
altair processInactivityUpdates - 250000 normalcase 22.151 ms/op 15.723 ms/op 1.41
altair processInactivityUpdates - 250000 worstcase 18.281 ms/op 16.077 ms/op 1.14
phase0 processRegistryUpdates - 250000 normalcase 9.0250 us/op 7.3490 us/op 1.23
phase0 processRegistryUpdates - 250000 badcase_full_deposits 368.16 us/op 323.01 us/op 1.14
phase0 processRegistryUpdates - 250000 worstcase 0.5 131.55 ms/op 93.059 ms/op 1.41
altair processRewardsAndPenalties - 250000 normalcase 27.532 ms/op 17.419 ms/op 1.58
altair processRewardsAndPenalties - 250000 worstcase 21.027 ms/op 17.195 ms/op 1.22
phase0 getAttestationDeltas - 250000 normalcase 11.513 ms/op 7.2499 ms/op 1.59
phase0 getAttestationDeltas - 250000 worstcase 11.705 ms/op 7.2913 ms/op 1.61
phase0 processSlashings - 250000 worstcase 97.726 us/op 111.78 us/op 0.87
altair processSyncCommitteeUpdates - 250000 16.648 ms/op 12.567 ms/op 1.32
BeaconState.hashTreeRoot - No change 283.00 ns/op 248.00 ns/op 1.14
BeaconState.hashTreeRoot - 1 full validator 143.45 us/op 95.719 us/op 1.50
BeaconState.hashTreeRoot - 32 full validator 1.3699 ms/op 1.1086 ms/op 1.24
BeaconState.hashTreeRoot - 512 full validator 9.2806 ms/op 9.5847 ms/op 0.97
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 140.13 us/op 128.42 us/op 1.09
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.9974 ms/op 1.8834 ms/op 1.06
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 26.454 ms/op 22.232 ms/op 1.19
BeaconState.hashTreeRoot - 1 balances 113.22 us/op 98.458 us/op 1.15
BeaconState.hashTreeRoot - 32 balances 1.4540 ms/op 947.46 us/op 1.53
BeaconState.hashTreeRoot - 512 balances 7.2060 ms/op 7.2094 ms/op 1.00
BeaconState.hashTreeRoot - 250000 balances 195.25 ms/op 154.81 ms/op 1.26
aggregationBits - 2048 els - zipIndexesInBitList 25.249 us/op 25.218 us/op 1.00
regular array get 100000 times 28.699 us/op 27.868 us/op 1.03
wrappedArray get 100000 times 30.535 us/op 27.895 us/op 1.09
arrayWithProxy get 100000 times 17.430 ms/op 16.648 ms/op 1.05
ssz.Root.equals 49.391 ns/op 27.734 ns/op 1.78
byteArrayEquals 42.507 ns/op 26.712 ns/op 1.59
Buffer.compare 23.081 ns/op 11.322 ns/op 2.04
processSlot - 1 slots 13.287 us/op 13.215 us/op 1.01
processSlot - 32 slots 2.3749 ms/op 2.8100 ms/op 0.85
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 3.9622 ms/op 4.3326 ms/op 0.91
getCommitteeAssignments - req 1 vs - 250000 vc 2.4019 ms/op 1.9251 ms/op 1.25
getCommitteeAssignments - req 100 vs - 250000 vc 4.4407 ms/op 3.7767 ms/op 1.18
getCommitteeAssignments - req 1000 vs - 250000 vc 4.6701 ms/op 4.0307 ms/op 1.16
findModifiedValidators - 10000 modified validators 934.53 ms/op 633.30 ms/op 1.48
findModifiedValidators - 1000 modified validators 450.62 ms/op 465.17 ms/op 0.97
findModifiedValidators - 100 modified validators 408.99 ms/op 282.04 ms/op 1.45
findModifiedValidators - 10 modified validators 297.56 ms/op 256.62 ms/op 1.16
findModifiedValidators - 1 modified validators 224.23 ms/op 231.94 ms/op 0.97
findModifiedValidators - no difference 249.32 ms/op 207.87 ms/op 1.20
migrate state 1500000 validators, 3400 modified, 2000 new 1.6624 s/op 1.1532 s/op 1.44
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 7.6700 ns/op 4.2600 ns/op 1.80
state getBlockRootAtSlot - 250000 vs - 7PWei 1.1262 us/op 535.65 ns/op 2.10
computeProposerIndex 100000 validators 2.6863 ms/op 1.5973 ms/op 1.68
getNextSyncCommitteeIndices 1000 validators 194.14 ms/op 121.64 ms/op 1.60
getNextSyncCommitteeIndices 10000 validators 249.70 ms/op 121.65 ms/op 2.05
getNextSyncCommitteeIndices 100000 validators 254.86 ms/op 124.47 ms/op 2.05
computeProposers - vc 250000 1.3753 ms/op 657.39 us/op 2.09
computeEpochShuffling - vc 250000 73.721 ms/op 46.962 ms/op 1.57
getNextSyncCommittee - vc 250000 20.666 ms/op 10.896 ms/op 1.90
nodejs block root to RootHex using toHex 248.63 ns/op 158.21 ns/op 1.57
nodejs block root to RootHex using toRootHex 207.10 ns/op 98.660 ns/op 2.10
nodejs fromHex(blob) 392.15 us/op 226.43 us/op 1.73
nodejs fromHexInto(blob) 1.5174 ms/op 769.54 us/op 1.97
nodejs block root to RootHex using the deprecated toHexString 878.89 ns/op 598.23 ns/op 1.47
browser block root to RootHex using toHex 654.70 ns/op 404.88 ns/op 1.62
browser block root to RootHex using toRootHex 368.07 ns/op 162.71 ns/op 2.26
browser fromHex(blob) 2.0789 ms/op 1.5696 ms/op 1.32
browser fromHexInto(blob) 1.8695 ms/op 731.74 us/op 2.55
browser block root to RootHex using the deprecated toHexString 736.60 ns/op 601.83 ns/op 1.22

by benchmarkbot/action

github-actions[bot] avatar Dec 09 '25 16:12 github-actions[bot]

Screenshot 2025-12-09 at 2 59 23 PM

All 17 @lodestar namespace packages have now been set to utilize trustless publishing from publish.yml

philknows avatar Dec 09 '25 20:12 philknows

All 17 @lodestar namespace packages have now been set to utilize trustless publishing from publish.yml

@philknows The cli package is under different namespace. @chainsafe/lodestar. We need to add configuration for it as well.

nazarhussain avatar Dec 10 '25 07:12 nazarhussain

Codecov Report

:white_check_mark: All modified and coverable lines are covered by tests. :white_check_mark: Project coverage is 52.04%. Comparing base (688d558) to head (9d4e5b0). :warning: Report is 1 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #8675   +/-   ##
=========================================
  Coverage     52.04%   52.04%           
=========================================
  Files           848      848           
  Lines         65734    65734           
  Branches       4807     4807           
=========================================
  Hits          34214    34214           
  Misses        31451    31451           
  Partials         69       69           
:rocket: New features to boost your workflow:
  • :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

codecov[bot] avatar Dec 10 '25 13:12 codecov[bot]

:tada: This PR is included in v1.38.0 :tada:

wemeetagain avatar Dec 15 '25 15:12 wemeetagain