ChainSafe / lodestar

🌟 TypeScript Implementation of Ethereum Consensus
https://lodestar.chainsafe.io
Apache License 2.0
1.18k stars 289 forks source link

ethpanda images vs lodestar images #6943

Open twoeths opened 4 months ago

twoeths commented 4 months ago

Describe the bug

Investigate why ethpanda images are usually have lower gc than lodestar images

with the same commit, on the mainnet node:

Screenshot 2024-07-11 at 09 29 26

Expected behavior

should investigate how ethpanda create images, it'll likely save us ~100ms to ~150ms epoch transition due to lower gc

Steps to reproduce

No response

Additional context

No response

Operating system

Linux

Lodestar version or commit hash

v1.20.0

ensi321 commented 4 months ago

ethpandaops/lodestar image is generated via two ways. Both are ran via GitHub actions in this repo: 1) Manually trigger this action. 2) Scheduled which runs every hour to check if new commits are pushed to Lodestar's unstable branch.

1 is mostly used for building images for devnet while 2 is for publishing up-to-date docker image periodically. The images in question are generated by 2. They are running this script which I don't see anything special. Here's their arm64 and amd64 run log which could be something to investigate in. arm64 amd64

nflaig commented 3 months ago

The only difference in their docker build is the setup of workflows as they use the same Dockerfile from Lodestar repo.

Notable differences are

What's interesting, if you compare the ethpandaops image layers with the lodestar image layers they are exactly the same but somehow the WORKDIR command layer is 1 byte less in size. The total image size difference is 184.62 MB vs. 184.61 MB but dockerhub only shows 2 decimals so could be just the 1 byte difference.

Could it be that some native library is compiled differently on native runner compared to using QEMU? I don't see any other difference between those images