这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@nflaig
Copy link
Member

@nflaig nflaig commented Sep 25, 2025

Motivation

The docker build no longer works since #8462

see most recent job run

#13 [linux/amd64 build_src 5/6] RUN yarn install --non-interactive --frozen-lockfile &&   yarn build &&   yarn install --non-interactive --frozen-lockfile --production
#13 ERROR: process "/bin/sh -c yarn install --non-interactive --frozen-lockfile &&   yarn build &&   yarn install --non-interactive --frozen-lockfile --production" did not complete successfully: exit code: 1

#15 [linux/arm64 build_deps 3/6] RUN apt-get update && apt-get install -y g++ make python3 python3-setuptools && apt-get clean && rm -rf /var/lib/apt/lists/*
#15 67.27 Preparing to unpack .../54-libfreetype6_2.12.1+dfsg-5+deb12u4_arm64.deb ...
#15 67.27 Unpacking libfreetype6:arm64 (2.12.1+dfsg-5+deb12u4) ...
#15 CANCELED
------
 > [linux/amd64 build_src 5/6] RUN yarn install --non-interactive --frozen-lockfile &&   yarn build &&   yarn install --non-interactive --frozen-lockfile --production:
0.219 yarn install v1.22.22
0.317 [1/5] Validating package.json...
0.336 [2/5] Resolving packages...
0.646 [3/5] Fetching packages...
28.83 error Couldn't find the binary git
28.83 info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
------
Dockerfile:11
--------------------
  10 |     
  11 | >>> RUN yarn install --non-interactive --frozen-lockfile && \
  12 | >>>   yarn build && \
  13 | >>>   yarn install --non-interactive --frozen-lockfile --production
  14 |     
--------------------
ERROR: failed to solve: process "/bin/sh -c yarn install --non-interactive --frozen-lockfile &&   yarn build &&   yarn install --non-interactive --frozen-lockfile --production" did not complete successfully: exit code: 1
Error: Process completed with exit code 1.

We need to add git to be able to install @lodestar/bun

Description

Add git to Dockerfile to be able to install dependencies that reference a github repository

eg. @lodestar/bun

"@lodestar/bun": "git+https://github.com/ChainSafe/lodestar-bun.git

@nflaig nflaig requested a review from a team as a code owner September 25, 2025 14:30
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @nflaig, I'm Gemini Code Assist1! 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 addresses a critical Docker build failure by introducing the git package into the Docker image build process. The absence of git prevented yarn from installing certain dependencies that are sourced directly from GitHub repositories, leading to build errors. By adding git to the Dockerfile, the build can now successfully resolve and install all required packages, restoring the integrity of the Docker build.

Highlights

  • Fix Docker Build Failure: The Docker build process was failing due to the git command not being found during the yarn install step, specifically when attempting to install dependencies from Git repositories.
  • Add Git to Dockerfile: The git package has been explicitly added to the apt-get install commands within both the build_src and build_deps stages of the Dockerfile.
  • Enable Git-based Dependency Installation: This change ensures that yarn can successfully install packages that are referenced via git+https URLs, such as @lodestar/bun, resolving the previous build blockage.
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 👍 and 👎 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.

Footnotes

  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.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request correctly adds git to the Dockerfile, which is necessary to fix a build failure caused by a dependency fetched from a git repository. The change is straightforward and effective. I've added one suggestion to improve the maintainability of the Dockerfile by reducing code duplication.

@wemeetagain wemeetagain enabled auto-merge (squash) September 25, 2025 14:41
@codecov
Copy link

codecov bot commented Sep 25, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 52.22%. Comparing base (ba92bd8) to head (2415e93).
⚠️ Report is 1 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #8470   +/-   ##
=========================================
  Coverage     52.22%   52.22%           
=========================================
  Files           852      852           
  Lines         64895    64895           
  Branches       4766     4768    +2     
=========================================
+ Hits          33890    33893    +3     
+ Misses        30935    30932    -3     
  Partials         70       70           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@wemeetagain wemeetagain merged commit 21ba277 into unstable Sep 25, 2025
17 of 20 checks passed
@wemeetagain wemeetagain deleted the nflaig/add-git branch September 25, 2025 14:49
@github-actions
Copy link
Contributor

⚠️ 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: da62845 Previous: ba92bd8 Ratio
toHexString serialized data 5.6514 us/op 1.3786 us/op 4.10
Full benchmark results
Benchmark suite Current: da62845 Previous: ba92bd8 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.1089 ms/op 1.0563 ms/op 1.05
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 39.862 us/op 38.910 us/op 1.02
BLS verify - blst 952.04 us/op 940.21 us/op 1.01
BLS verifyMultipleSignatures 3 - blst 1.3653 ms/op 1.7584 ms/op 0.78
BLS verifyMultipleSignatures 8 - blst 1.9960 ms/op 1.9271 ms/op 1.04
BLS verifyMultipleSignatures 32 - blst 6.0008 ms/op 5.9948 ms/op 1.00
BLS verifyMultipleSignatures 64 - blst 11.586 ms/op 11.327 ms/op 1.02
BLS verifyMultipleSignatures 128 - blst 19.264 ms/op 19.094 ms/op 1.01
BLS deserializing 10000 signatures 732.99 ms/op 714.89 ms/op 1.03
BLS deserializing 100000 signatures 7.3142 s/op 7.3139 s/op 1.00
BLS verifyMultipleSignatures - same message - 3 - blst 1.0277 ms/op 1.0113 ms/op 1.02
BLS verifyMultipleSignatures - same message - 8 - blst 1.1307 ms/op 1.2870 ms/op 0.88
BLS verifyMultipleSignatures - same message - 32 - blst 1.9031 ms/op 1.7170 ms/op 1.11
BLS verifyMultipleSignatures - same message - 64 - blst 3.6267 ms/op 2.6674 ms/op 1.36
BLS verifyMultipleSignatures - same message - 128 - blst 4.8253 ms/op 4.4480 ms/op 1.08
BLS aggregatePubkeys 32 - blst 20.337 us/op 21.034 us/op 0.97
BLS aggregatePubkeys 128 - blst 72.281 us/op 76.040 us/op 0.95
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 139.57 ms/op 64.024 ms/op 2.18
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 61.927 ms/op 59.520 ms/op 1.04
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 45.068 ms/op 49.167 ms/op 0.92
getSlashingsAndExits - default max 82.552 us/op 83.015 us/op 0.99
getSlashingsAndExits - 2k 332.08 us/op 385.54 us/op 0.86
isKnown best case - 1 super set check 242.00 ns/op 217.00 ns/op 1.12
isKnown normal case - 2 super set checks 214.00 ns/op 213.00 ns/op 1.00
isKnown worse case - 16 super set checks 211.00 ns/op 214.00 ns/op 0.99
InMemoryCheckpointStateCache - add get delete 2.5900 us/op 2.4830 us/op 1.04
validate api signedAggregateAndProof - struct 1.4919 ms/op 1.6982 ms/op 0.88
validate gossip signedAggregateAndProof - struct 1.7319 ms/op 1.8879 ms/op 0.92
batch validate gossip attestation - vc 640000 - chunk 32 122.50 us/op 139.28 us/op 0.88
batch validate gossip attestation - vc 640000 - chunk 64 108.45 us/op 116.51 us/op 0.93
batch validate gossip attestation - vc 640000 - chunk 128 101.78 us/op 128.76 us/op 0.79
batch validate gossip attestation - vc 640000 - chunk 256 107.19 us/op 130.29 us/op 0.82
pickEth1Vote - no votes 1.0120 ms/op 1.2098 ms/op 0.84
pickEth1Vote - max votes 7.3477 ms/op 10.309 ms/op 0.71
pickEth1Vote - Eth1Data hashTreeRoot value x2048 11.712 ms/op 16.271 ms/op 0.72
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 20.016 ms/op 33.284 ms/op 0.60
pickEth1Vote - Eth1Data fastSerialize value x2048 463.14 us/op 624.31 us/op 0.74
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.3627 ms/op 5.0533 ms/op 0.47
bytes32 toHexString 371.00 ns/op 450.00 ns/op 0.82
bytes32 Buffer.toString(hex) 297.00 ns/op 285.00 ns/op 1.04
bytes32 Buffer.toString(hex) from Uint8Array 411.00 ns/op 383.00 ns/op 1.07
bytes32 Buffer.toString(hex) + 0x 280.00 ns/op 268.00 ns/op 1.04
Object access 1 prop 0.12400 ns/op 0.13200 ns/op 0.94
Map access 1 prop 0.12300 ns/op 0.14200 ns/op 0.87
Object get x1000 6.0850 ns/op 6.5600 ns/op 0.93
Map get x1000 6.8660 ns/op 7.3980 ns/op 0.93
Object set x1000 31.654 ns/op 39.503 ns/op 0.80
Map set x1000 21.436 ns/op 23.475 ns/op 0.91
Return object 10000 times 0.29980 ns/op 0.31370 ns/op 0.96
Throw Error 10000 times 4.6545 us/op 4.6732 us/op 1.00
toHex 140.39 ns/op 165.27 ns/op 0.85
Buffer.from 139.70 ns/op 145.45 ns/op 0.96
shared Buffer 85.006 ns/op 92.670 ns/op 0.92
fastMsgIdFn sha256 / 200 bytes 2.2940 us/op 2.2400 us/op 1.02
fastMsgIdFn h32 xxhash / 200 bytes 211.00 ns/op 213.00 ns/op 0.99
fastMsgIdFn h64 xxhash / 200 bytes 301.00 ns/op 305.00 ns/op 0.99
fastMsgIdFn sha256 / 1000 bytes 7.5290 us/op 9.1920 us/op 0.82
fastMsgIdFn h32 xxhash / 1000 bytes 372.00 ns/op 391.00 ns/op 0.95
fastMsgIdFn h64 xxhash / 1000 bytes 399.00 ns/op 373.00 ns/op 1.07
fastMsgIdFn sha256 / 10000 bytes 66.310 us/op 70.660 us/op 0.94
fastMsgIdFn h32 xxhash / 10000 bytes 1.8730 us/op 1.9910 us/op 0.94
fastMsgIdFn h64 xxhash / 10000 bytes 1.2330 us/op 1.3400 us/op 0.92
send data - 1000 256B messages 19.412 ms/op 21.176 ms/op 0.92
send data - 1000 512B messages 24.021 ms/op 26.325 ms/op 0.91
send data - 1000 1024B messages 32.596 ms/op 32.281 ms/op 1.01
send data - 1000 1200B messages 35.632 ms/op 30.365 ms/op 1.17
send data - 1000 2048B messages 33.114 ms/op 29.064 ms/op 1.14
send data - 1000 4096B messages 33.762 ms/op 34.400 ms/op 0.98
send data - 1000 16384B messages 46.727 ms/op 50.357 ms/op 0.93
send data - 1000 65536B messages 125.16 ms/op 131.16 ms/op 0.95
enrSubnets - fastDeserialize 64 bits 927.00 ns/op 971.00 ns/op 0.95
enrSubnets - ssz BitVector 64 bits 354.00 ns/op 361.00 ns/op 0.98
enrSubnets - fastDeserialize 4 bits 140.00 ns/op 145.00 ns/op 0.97
enrSubnets - ssz BitVector 4 bits 379.00 ns/op 371.00 ns/op 1.02
prioritizePeers score -10:0 att 32-0.1 sync 2-0 314.08 us/op 266.13 us/op 1.18
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 322.32 us/op 299.24 us/op 1.08
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 450.17 us/op 433.01 us/op 1.04
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 915.02 us/op 787.23 us/op 1.16
prioritizePeers score 0:0 att 64-1 sync 4-1 1.1533 ms/op 980.02 us/op 1.18
array of 16000 items push then shift 1.7021 us/op 1.7628 us/op 0.97
LinkedList of 16000 items push then shift 8.2720 ns/op 9.2810 ns/op 0.89
array of 16000 items push then pop 83.679 ns/op 92.386 ns/op 0.91
LinkedList of 16000 items push then pop 7.9890 ns/op 8.8510 ns/op 0.90
array of 24000 items push then shift 2.4532 us/op 2.5140 us/op 0.98
LinkedList of 24000 items push then shift 8.1020 ns/op 9.0210 ns/op 0.90
array of 24000 items push then pop 106.77 ns/op 125.44 ns/op 0.85
LinkedList of 24000 items push then pop 7.6550 ns/op 8.2840 ns/op 0.92
intersect bitArray bitLen 8 6.4500 ns/op 6.7090 ns/op 0.96
intersect array and set length 8 38.733 ns/op 43.014 ns/op 0.90
intersect bitArray bitLen 128 30.111 ns/op 33.155 ns/op 0.91
intersect array and set length 128 636.50 ns/op 666.99 ns/op 0.95
bitArray.getTrueBitIndexes() bitLen 128 1.2170 us/op 1.0460 us/op 1.16
bitArray.getTrueBitIndexes() bitLen 248 2.1470 us/op 1.8460 us/op 1.16
bitArray.getTrueBitIndexes() bitLen 512 4.6910 us/op 3.8430 us/op 1.22
Buffer.concat 32 items 750.00 ns/op 658.00 ns/op 1.14
Uint8Array.set 32 items 1.1860 us/op 1.0470 us/op 1.13
Buffer.copy 2.3010 us/op 2.1830 us/op 1.05
Uint8Array.set - with subarray 2.8560 us/op 1.5210 us/op 1.88
Uint8Array.set - without subarray 1.3490 us/op 862.00 ns/op 1.56
getUint32 - dataview 202.00 ns/op 203.00 ns/op 1.00
getUint32 - manual 123.00 ns/op 138.00 ns/op 0.89
Set add up to 64 items then delete first 2.1377 us/op 2.3693 us/op 0.90
OrderedSet add up to 64 items then delete first 3.4753 us/op 3.5670 us/op 0.97
Set add up to 64 items then delete last 2.5674 us/op 2.8163 us/op 0.91
OrderedSet add up to 64 items then delete last 3.8282 us/op 4.3869 us/op 0.87
Set add up to 64 items then delete middle 2.6292 us/op 3.0664 us/op 0.86
OrderedSet add up to 64 items then delete middle 5.4165 us/op 6.4272 us/op 0.84
Set add up to 128 items then delete first 5.2198 us/op 6.7767 us/op 0.77
OrderedSet add up to 128 items then delete first 8.1896 us/op 10.725 us/op 0.76
Set add up to 128 items then delete last 5.2673 us/op 6.9375 us/op 0.76
OrderedSet add up to 128 items then delete last 7.8221 us/op 11.065 us/op 0.71
Set add up to 128 items then delete middle 5.1406 us/op 6.8562 us/op 0.75
OrderedSet add up to 128 items then delete middle 15.523 us/op 17.741 us/op 0.87
Set add up to 256 items then delete first 10.758 us/op 12.737 us/op 0.84
OrderedSet add up to 256 items then delete first 17.324 us/op 19.916 us/op 0.87
Set add up to 256 items then delete last 10.768 us/op 12.078 us/op 0.89
OrderedSet add up to 256 items then delete last 16.122 us/op 17.385 us/op 0.93
Set add up to 256 items then delete middle 10.642 us/op 12.484 us/op 0.85
OrderedSet add up to 256 items then delete middle 44.049 us/op 47.439 us/op 0.93
transfer serialized Status (84 B) 2.4110 us/op 2.3180 us/op 1.04
copy serialized Status (84 B) 1.2450 us/op 1.2250 us/op 1.02
transfer serialized SignedVoluntaryExit (112 B) 2.4150 us/op 2.3140 us/op 1.04
copy serialized SignedVoluntaryExit (112 B) 1.2700 us/op 1.2110 us/op 1.05
transfer serialized ProposerSlashing (416 B) 2.5940 us/op 2.3630 us/op 1.10
copy serialized ProposerSlashing (416 B) 1.6040 us/op 1.2780 us/op 1.26
transfer serialized Attestation (485 B) 2.6310 us/op 2.3480 us/op 1.12
copy serialized Attestation (485 B) 1.5680 us/op 1.2480 us/op 1.26
transfer serialized AttesterSlashing (33232 B) 2.9170 us/op 2.4910 us/op 1.17
copy serialized AttesterSlashing (33232 B) 5.0460 us/op 4.3530 us/op 1.16
transfer serialized Small SignedBeaconBlock (128000 B) 3.7220 us/op 2.8230 us/op 1.32
copy serialized Small SignedBeaconBlock (128000 B) 12.332 us/op 16.689 us/op 0.74
transfer serialized Avg SignedBeaconBlock (200000 B) 4.9300 us/op 3.2820 us/op 1.50
copy serialized Avg SignedBeaconBlock (200000 B) 21.762 us/op 16.408 us/op 1.33
transfer serialized BlobsSidecar (524380 B) 5.0390 us/op 4.4550 us/op 1.13
copy serialized BlobsSidecar (524380 B) 67.390 us/op 66.880 us/op 1.01
transfer serialized Big SignedBeaconBlock (1000000 B) 4.6320 us/op 6.3310 us/op 0.73
copy serialized Big SignedBeaconBlock (1000000 B) 176.14 us/op 151.05 us/op 1.17
pass gossip attestations to forkchoice per slot 2.9218 ms/op 3.0021 ms/op 0.97
forkChoice updateHead vc 100000 bc 64 eq 0 481.18 us/op 500.59 us/op 0.96
forkChoice updateHead vc 600000 bc 64 eq 0 2.9528 ms/op 3.2865 ms/op 0.90
forkChoice updateHead vc 1000000 bc 64 eq 0 5.2492 ms/op 5.7667 ms/op 0.91
forkChoice updateHead vc 600000 bc 320 eq 0 3.0324 ms/op 3.4837 ms/op 0.87
forkChoice updateHead vc 600000 bc 1200 eq 0 3.2051 ms/op 3.0991 ms/op 1.03
forkChoice updateHead vc 600000 bc 7200 eq 0 3.4055 ms/op 3.4727 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 1000 10.883 ms/op 10.903 ms/op 1.00
forkChoice updateHead vc 600000 bc 64 eq 10000 10.812 ms/op 11.240 ms/op 0.96
forkChoice updateHead vc 600000 bc 64 eq 300000 19.829 ms/op 15.898 ms/op 1.25
computeDeltas 500000 validators 300 proto nodes 4.2059 ms/op 4.5933 ms/op 0.92
computeDeltas 500000 validators 1200 proto nodes 4.2298 ms/op 4.6796 ms/op 0.90
computeDeltas 500000 validators 7200 proto nodes 4.4565 ms/op 4.5141 ms/op 0.99
computeDeltas 750000 validators 300 proto nodes 6.3583 ms/op 6.7275 ms/op 0.95
computeDeltas 750000 validators 1200 proto nodes 6.3230 ms/op 6.9326 ms/op 0.91
computeDeltas 750000 validators 7200 proto nodes 6.3953 ms/op 7.1203 ms/op 0.90
computeDeltas 1400000 validators 300 proto nodes 11.675 ms/op 14.005 ms/op 0.83
computeDeltas 1400000 validators 1200 proto nodes 11.535 ms/op 12.800 ms/op 0.90
computeDeltas 1400000 validators 7200 proto nodes 16.456 ms/op 12.361 ms/op 1.33
computeDeltas 2100000 validators 300 proto nodes 21.729 ms/op 21.881 ms/op 0.99
computeDeltas 2100000 validators 1200 proto nodes 21.176 ms/op 22.212 ms/op 0.95
computeDeltas 2100000 validators 7200 proto nodes 21.670 ms/op 21.051 ms/op 1.03
altair processAttestation - 250000 vs - 7PWei normalcase 3.4895 ms/op 4.0520 ms/op 0.86
altair processAttestation - 250000 vs - 7PWei worstcase 4.8482 ms/op 5.3452 ms/op 0.91
altair processAttestation - setStatus - 1/6 committees join 182.68 us/op 159.44 us/op 1.15
altair processAttestation - setStatus - 1/3 committees join 350.51 us/op 286.61 us/op 1.22
altair processAttestation - setStatus - 1/2 committees join 432.70 us/op 407.43 us/op 1.06
altair processAttestation - setStatus - 2/3 committees join 492.45 us/op 516.19 us/op 0.95
altair processAttestation - setStatus - 4/5 committees join 1.0710 ms/op 733.44 us/op 1.46
altair processAttestation - setStatus - 100% committees join 1.5966 ms/op 826.87 us/op 1.93
altair processBlock - 250000 vs - 7PWei normalcase 8.0005 ms/op 6.1087 ms/op 1.31
altair processBlock - 250000 vs - 7PWei normalcase hashState 45.518 ms/op 35.148 ms/op 1.30
altair processBlock - 250000 vs - 7PWei worstcase 48.167 ms/op 45.087 ms/op 1.07
altair processBlock - 250000 vs - 7PWei worstcase hashState 96.848 ms/op 103.57 ms/op 0.94
phase0 processBlock - 250000 vs - 7PWei normalcase 2.1882 ms/op 2.4236 ms/op 0.90
phase0 processBlock - 250000 vs - 7PWei worstcase 26.530 ms/op 32.024 ms/op 0.83
altair processEth1Data - 250000 vs - 7PWei normalcase 370.18 us/op 381.77 us/op 0.97
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 8.5090 us/op 9.5110 us/op 0.89
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 66.782 us/op 47.179 us/op 1.42
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 22.506 us/op 13.303 us/op 1.69
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 12.733 us/op 7.4460 us/op 1.71
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 239.66 us/op 195.97 us/op 1.22
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 2.1690 ms/op 2.2540 ms/op 0.96
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.8901 ms/op 2.4923 ms/op 1.16
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.7543 ms/op 2.6901 ms/op 1.02
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 6.0581 ms/op 5.9152 ms/op 1.02
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.8770 ms/op 2.5824 ms/op 1.11
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 6.0760 ms/op 5.4635 ms/op 1.11
Tree 40 250000 create 774.71 ms/op 562.59 ms/op 1.38
Tree 40 250000 get(125000) 160.20 ns/op 146.18 ns/op 1.10
Tree 40 250000 set(125000) 2.7623 us/op 1.7656 us/op 1.56
Tree 40 250000 toArray() 27.774 ms/op 24.540 ms/op 1.13
Tree 40 250000 iterate all - toArray() + loop 30.860 ms/op 25.723 ms/op 1.20
Tree 40 250000 iterate all - get(i) 75.003 ms/op 64.669 ms/op 1.16
Array 250000 create 3.4458 ms/op 3.4544 ms/op 1.00
Array 250000 clone - spread 2.2826 ms/op 1.6135 ms/op 1.41
Array 250000 get(125000) 0.44800 ns/op 0.45300 ns/op 0.99
Array 250000 set(125000) 0.51700 ns/op 0.47200 ns/op 1.10
Array 250000 iterate all - loop 119.40 us/op 119.81 us/op 1.00
phase0 afterProcessEpoch - 250000 vs - 7PWei 46.752 ms/op 46.063 ms/op 1.01
Array.fill - length 1000000 5.0840 ms/op 4.6166 ms/op 1.10
Array push - length 1000000 23.584 ms/op 22.926 ms/op 1.03
Array.get 0.29789 ns/op 0.29773 ns/op 1.00
Uint8Array.get 0.49530 ns/op 0.44706 ns/op 1.11
phase0 beforeProcessEpoch - 250000 vs - 7PWei 26.238 ms/op 19.802 ms/op 1.33
altair processEpoch - mainnet_e81889 328.62 ms/op 310.30 ms/op 1.06
mainnet_e81889 - altair beforeProcessEpoch 23.668 ms/op 25.030 ms/op 0.95
mainnet_e81889 - altair processJustificationAndFinalization 7.4510 us/op 6.6440 us/op 1.12
mainnet_e81889 - altair processInactivityUpdates 6.2060 ms/op 6.5974 ms/op 0.94
mainnet_e81889 - altair processRewardsAndPenalties 49.402 ms/op 45.350 ms/op 1.09
mainnet_e81889 - altair processRegistryUpdates 1.0250 us/op 738.00 ns/op 1.39
mainnet_e81889 - altair processSlashings 207.00 ns/op 190.00 ns/op 1.09
mainnet_e81889 - altair processEth1DataReset 188.00 ns/op 199.00 ns/op 0.94
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.3629 ms/op 1.3120 ms/op 1.04
mainnet_e81889 - altair processSlashingsReset 1.1340 us/op 933.00 ns/op 1.22
mainnet_e81889 - altair processRandaoMixesReset 1.3750 us/op 1.2390 us/op 1.11
mainnet_e81889 - altair processHistoricalRootsUpdate 259.00 ns/op 205.00 ns/op 1.26
mainnet_e81889 - altair processParticipationFlagUpdates 573.00 ns/op 654.00 ns/op 0.88
mainnet_e81889 - altair processSyncCommitteeUpdates 150.00 ns/op 167.00 ns/op 0.90
mainnet_e81889 - altair afterProcessEpoch 49.742 ms/op 45.890 ms/op 1.08
capella processEpoch - mainnet_e217614 930.37 ms/op 1.2591 s/op 0.74
mainnet_e217614 - capella beforeProcessEpoch 63.646 ms/op 96.058 ms/op 0.66
mainnet_e217614 - capella processJustificationAndFinalization 7.5110 us/op 10.905 us/op 0.69
mainnet_e217614 - capella processInactivityUpdates 15.208 ms/op 19.183 ms/op 0.79
mainnet_e217614 - capella processRewardsAndPenalties 195.44 ms/op 241.32 ms/op 0.81
mainnet_e217614 - capella processRegistryUpdates 7.3590 us/op 7.6320 us/op 0.96
mainnet_e217614 - capella processSlashings 193.00 ns/op 274.00 ns/op 0.70
mainnet_e217614 - capella processEth1DataReset 179.00 ns/op 255.00 ns/op 0.70
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.5136 ms/op 4.4083 ms/op 1.02
mainnet_e217614 - capella processSlashingsReset 1.1130 us/op 1.0390 us/op 1.07
mainnet_e217614 - capella processRandaoMixesReset 1.5110 us/op 1.5210 us/op 0.99
mainnet_e217614 - capella processHistoricalRootsUpdate 199.00 ns/op 216.00 ns/op 0.92
mainnet_e217614 - capella processParticipationFlagUpdates 567.00 ns/op 801.00 ns/op 0.71
mainnet_e217614 - capella afterProcessEpoch 118.10 ms/op 125.76 ms/op 0.94
phase0 processEpoch - mainnet_e58758 310.35 ms/op 382.51 ms/op 0.81
mainnet_e58758 - phase0 beforeProcessEpoch 91.868 ms/op 98.578 ms/op 0.93
mainnet_e58758 - phase0 processJustificationAndFinalization 6.5210 us/op 8.3100 us/op 0.78
mainnet_e58758 - phase0 processRewardsAndPenalties 35.423 ms/op 42.237 ms/op 0.84
mainnet_e58758 - phase0 processRegistryUpdates 3.1620 us/op 4.2960 us/op 0.74
mainnet_e58758 - phase0 processSlashings 181.00 ns/op 196.00 ns/op 0.92
mainnet_e58758 - phase0 processEth1DataReset 176.00 ns/op 220.00 ns/op 0.80
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2572 ms/op 3.9847 ms/op 0.32
mainnet_e58758 - phase0 processSlashingsReset 987.00 ns/op 1.3240 us/op 0.75
mainnet_e58758 - phase0 processRandaoMixesReset 1.4430 us/op 1.6720 us/op 0.86
mainnet_e58758 - phase0 processHistoricalRootsUpdate 178.00 ns/op 276.00 ns/op 0.64
mainnet_e58758 - phase0 processParticipationRecordUpdates 919.00 ns/op 987.00 ns/op 0.93
mainnet_e58758 - phase0 afterProcessEpoch 36.357 ms/op 37.512 ms/op 0.97
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4270 ms/op 1.6775 ms/op 0.85
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.8850 ms/op 3.0270 ms/op 0.95
altair processInactivityUpdates - 250000 normalcase 19.363 ms/op 21.825 ms/op 0.89
altair processInactivityUpdates - 250000 worstcase 19.763 ms/op 18.997 ms/op 1.04
phase0 processRegistryUpdates - 250000 normalcase 6.7230 us/op 7.9460 us/op 0.85
phase0 processRegistryUpdates - 250000 badcase_full_deposits 348.91 us/op 363.81 us/op 0.96
phase0 processRegistryUpdates - 250000 worstcase 0.5 110.06 ms/op 127.91 ms/op 0.86
altair processRewardsAndPenalties - 250000 normalcase 30.555 ms/op 32.118 ms/op 0.95
altair processRewardsAndPenalties - 250000 worstcase 28.275 ms/op 30.688 ms/op 0.92
phase0 getAttestationDeltas - 250000 normalcase 8.2456 ms/op 8.2463 ms/op 1.00
phase0 getAttestationDeltas - 250000 worstcase 6.4702 ms/op 8.4244 ms/op 0.77
phase0 processSlashings - 250000 worstcase 82.253 us/op 119.20 us/op 0.69
altair processSyncCommitteeUpdates - 250000 11.460 ms/op 11.760 ms/op 0.97
BeaconState.hashTreeRoot - No change 268.00 ns/op 277.00 ns/op 0.97
BeaconState.hashTreeRoot - 1 full validator 79.124 us/op 123.52 us/op 0.64
BeaconState.hashTreeRoot - 32 full validator 911.82 us/op 1.2839 ms/op 0.71
BeaconState.hashTreeRoot - 512 full validator 10.272 ms/op 11.173 ms/op 0.92
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 95.752 us/op 127.83 us/op 0.75
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.3474 ms/op 2.6590 ms/op 0.51
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 22.776 ms/op 28.800 ms/op 0.79
BeaconState.hashTreeRoot - 1 balances 73.965 us/op 102.90 us/op 0.72
BeaconState.hashTreeRoot - 32 balances 1.1735 ms/op 1.3023 ms/op 0.90
BeaconState.hashTreeRoot - 512 balances 17.374 ms/op 10.850 ms/op 1.60
BeaconState.hashTreeRoot - 250000 balances 280.82 ms/op 207.36 ms/op 1.35
aggregationBits - 2048 els - zipIndexesInBitList 29.842 us/op 28.298 us/op 1.05
byteArrayEquals 32 61.095 ns/op 56.258 ns/op 1.09
Buffer.compare 32 19.701 ns/op 17.996 ns/op 1.09
byteArrayEquals 1024 1.7896 us/op 1.6403 us/op 1.09
Buffer.compare 1024 28.666 ns/op 25.605 ns/op 1.12
byteArrayEquals 16384 28.354 us/op 26.553 us/op 1.07
Buffer.compare 16384 224.43 ns/op 215.90 ns/op 1.04
byteArrayEquals 123687377 235.16 ms/op 201.66 ms/op 1.17
Buffer.compare 123687377 11.884 ms/op 8.0265 ms/op 1.48
byteArrayEquals 32 - diff last byte 61.411 ns/op 54.001 ns/op 1.14
Buffer.compare 32 - diff last byte 26.454 ns/op 17.366 ns/op 1.52
byteArrayEquals 1024 - diff last byte 2.0817 us/op 1.6401 us/op 1.27
Buffer.compare 1024 - diff last byte 40.975 ns/op 26.709 ns/op 1.53
byteArrayEquals 16384 - diff last byte 27.252 us/op 26.000 us/op 1.05
Buffer.compare 16384 - diff last byte 202.07 ns/op 191.00 ns/op 1.06
byteArrayEquals 123687377 - diff last byte 199.67 ms/op 203.69 ms/op 0.98
Buffer.compare 123687377 - diff last byte 7.3878 ms/op 12.683 ms/op 0.58
byteArrayEquals 32 - random bytes 5.2040 ns/op 5.4350 ns/op 0.96
Buffer.compare 32 - random bytes 17.473 ns/op 19.117 ns/op 0.91
byteArrayEquals 1024 - random bytes 5.2600 ns/op 5.5920 ns/op 0.94
Buffer.compare 1024 - random bytes 17.882 ns/op 19.405 ns/op 0.92
byteArrayEquals 16384 - random bytes 5.4950 ns/op 5.6950 ns/op 0.96
Buffer.compare 16384 - random bytes 18.351 ns/op 19.338 ns/op 0.95
byteArrayEquals 123687377 - random bytes 7.9400 ns/op 7.6200 ns/op 1.04
Buffer.compare 123687377 - random bytes 21.690 ns/op 19.100 ns/op 1.14
regular array get 100000 times 47.238 us/op 34.324 us/op 1.38
wrappedArray get 100000 times 35.570 us/op 34.814 us/op 1.02
arrayWithProxy get 100000 times 13.254 ms/op 15.091 ms/op 0.88
ssz.Root.equals 48.208 ns/op 51.424 ns/op 0.94
byteArrayEquals 47.335 ns/op 50.348 ns/op 0.94
Buffer.compare 10.556 ns/op 11.410 ns/op 0.93
processSlot - 1 slots 11.492 us/op 11.473 us/op 1.00
processSlot - 32 slots 2.1666 ms/op 3.4253 ms/op 0.63
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 2.9759 ms/op 4.1231 ms/op 0.72
getCommitteeAssignments - req 1 vs - 250000 vc 2.0984 ms/op 2.2479 ms/op 0.93
getCommitteeAssignments - req 100 vs - 250000 vc 4.1051 ms/op 4.3392 ms/op 0.95
getCommitteeAssignments - req 1000 vs - 250000 vc 4.4388 ms/op 4.7093 ms/op 0.94
findModifiedValidators - 10000 modified validators 725.41 ms/op 885.33 ms/op 0.82
findModifiedValidators - 1000 modified validators 689.36 ms/op 758.11 ms/op 0.91
findModifiedValidators - 100 modified validators 179.99 ms/op 361.26 ms/op 0.50
findModifiedValidators - 10 modified validators 158.82 ms/op 253.32 ms/op 0.63
findModifiedValidators - 1 modified validators 145.45 ms/op 190.90 ms/op 0.76
findModifiedValidators - no difference 157.89 ms/op 187.49 ms/op 0.84
compare ViewDUs 6.4096 s/op 7.7690 s/op 0.83
compare each validator Uint8Array 1.4963 s/op 1.8900 s/op 0.79
compare ViewDU to Uint8Array 1.1997 s/op 1.8324 s/op 0.65
migrate state 1000000 validators, 24 modified, 0 new 900.49 ms/op 995.58 ms/op 0.90
migrate state 1000000 validators, 1700 modified, 1000 new 1.2003 s/op 1.4682 s/op 0.82
migrate state 1000000 validators, 3400 modified, 2000 new 1.2586 s/op 1.5998 s/op 0.79
migrate state 1500000 validators, 24 modified, 0 new 917.87 ms/op 1.0289 s/op 0.89
migrate state 1500000 validators, 1700 modified, 1000 new 1.1889 s/op 1.2060 s/op 0.99
migrate state 1500000 validators, 3400 modified, 2000 new 1.7637 s/op 1.5348 s/op 1.15
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.6600 ns/op 4.2000 ns/op 1.11
state getBlockRootAtSlot - 250000 vs - 7PWei 770.42 ns/op 541.77 ns/op 1.42
naive computeProposerIndex 100000 validators 87.532 ms/op 61.199 ms/op 1.43
computeProposerIndex 100000 validators 1.7190 ms/op 1.6050 ms/op 1.07
naiveGetNextSyncCommitteeIndices 1000 validators 11.179 s/op 9.9246 s/op 1.13
getNextSyncCommitteeIndices 1000 validators 268.10 ms/op 142.51 ms/op 1.88
naiveGetNextSyncCommitteeIndices 10000 validators 13.111 s/op 10.449 s/op 1.25
getNextSyncCommitteeIndices 10000 validators 201.68 ms/op 152.24 ms/op 1.32
naiveGetNextSyncCommitteeIndices 100000 validators 14.488 s/op 9.6689 s/op 1.50
getNextSyncCommitteeIndices 100000 validators 244.97 ms/op 149.73 ms/op 1.64
naive computeShuffledIndex 100000 validators 41.609 s/op 31.055 s/op 1.34
cached computeShuffledIndex 100000 validators 917.04 ms/op 668.65 ms/op 1.37
naive computeShuffledIndex 2000000 validators 708.24 s/op 545.55 s/op 1.30
cached computeShuffledIndex 2000000 validators 80.363 s/op 52.684 s/op 1.53
computeProposers - vc 250000 649.14 us/op 649.10 us/op 1.00
computeEpochShuffling - vc 250000 45.804 ms/op 42.819 ms/op 1.07
getNextSyncCommittee - vc 250000 14.361 ms/op 11.677 ms/op 1.23
computeSigningRoot for AttestationData 52.980 us/op 24.791 us/op 2.14
hash AttestationData serialized data then Buffer.toString(base64) 1.9176 us/op 1.6499 us/op 1.16
toHexString serialized data 5.6514 us/op 1.3786 us/op 4.10
Buffer.toString(base64) 167.90 ns/op 165.43 ns/op 1.01
nodejs block root to RootHex using toHex 160.40 ns/op 156.22 ns/op 1.03
nodejs block root to RootHex using toRootHex 102.35 ns/op 87.597 ns/op 1.17
nodejs fromhex(blob) 133.32 ms/op 123.36 ms/op 1.08
nodejs fromHexInto(blob) 104.62 ms/op 96.601 ms/op 1.08
browser block root to RootHex using the deprecated toHexString 262.83 ns/op 221.04 ns/op 1.19
browser block root to RootHex using toHex 199.63 ns/op 179.10 ns/op 1.11
browser block root to RootHex using toRootHex 183.98 ns/op 166.15 ns/op 1.11
browser fromHexInto(blob) 933.16 us/op 855.11 us/op 1.09
browser fromHex(blob) 943.38 ms/op 844.20 ms/op 1.12

by benchmarkbot/action

@wemeetagain
Copy link
Member

🎉 This PR is included in v1.35.0 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants