eth-client-hw-analysis
Repo compiling all the images that came out from our Ethereum Consensus Client's hardware resource analysis
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.3%) to scientific vocabulary
Repository
Repo compiling all the images that came out from our Ethereum Consensus Client's hardware resource analysis
Basic Info
- Host: GitHub
- Owner: migalabs
- Language: Jupyter Notebook
- Default Branch: main
- Size: 46 MB
Statistics
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
- Releases: 2
Metadata Files
README.md
Ethereum Consensus Clients Hardware Analysis V3
This repository collects all the scripts and generates the figures used in the Ethereum Consensus Client's hardware resource analysis.
The Analysis
This Analysis was performed during the months of February 2024 and May 2024. It consisted of running the 6 main clients (Prysm, Lighthouse, Teku, Nimbus, Lodestar and Grandine)
Running the clients
Inside this repository you may find several files with which you launch the nodes you intend to analyze. The setup includes an execution node (always Nethermind), a consensus node (Lighthouse, Prysm, Teku, Nimbus, Lodestar, Grandine) and some monitoring tools (such as Prometheus, Node Exporter or CAdvisor)
Server
It is possible to run a metrics server, which should aborb all the generated metrics into a single prometheus instance. This is very useful when the experiment involves several clients and machines. This way, analyzing the data is faster and easier, as everything is contained in a single instance.
Caddy is a Proxy server which will receive all the incoming traffic and redirect it to the metrics server.
- Copy
Caddyfile.sampleintoCaddyfile - You may configure some credentials if needed.
- Copy
prometheus-template.ymlintoprometheus.yml(prometheus folder). You may comment all the scrapes as this prometheus will be a server receiving the data. - Run
docker-compose up -d prometheus victoriametrics caddy - You may now use
http://user:password@yourIP/promhttp/api/v1/writeandhttp://user:password@yourIP/victoria/api/v1/writeas remote write
Clients
- Decide which client to run
- Copy
.env.sampleinto.envand fill the variables. Tags refer to the client version (docker image). - Copy
prometheus-template.ymlintoprometheus.yml(prometheus folder). See remote write above if needed, comment it otherwise. - You may configure which clients to scrape and the remote write (see server options above).
- Run
docker-compose up -d nethermind <cl-node> prometheus cadvisor node-exporter.
Data Collection
Data has been collected using a Jupyter Notebook and a Prometheus. Please refer to the report.ipynb file, where you may find a page containing the data collection details.
After the execution, you may find several CSV files have been downloaded (under {network}/csv/).
Data Plotting
Data has been plotted using the same Jupyter Notebook report.ipynb. The last page contains details about the plots. These plots are built from the CSV files downloaded previously with the same document.
Generating metrics
First of all we must place ourselves in the analysis folder
It is important to load the requirements into a venv
Most of the figures can be generated by running download_csvs.py and then running plot.py
In those files, one must edit the main() to select which plots and csvs to generate.
Before all, the base.py contains a section called run1 and another run2. These define the times at which to download and plot the data, and which files to use. By commenting and uncommenting run2 section, we can select which phase to download and plot. By default, we have commented run1
Maintained by MigaLabs
Owner
- Name: Miga Labs
- Login: migalabs
- Kind: organization
- Email: migalabs@protonmail.com
- Location: Barcelona
- Website: https://migalabs.es/
- Twitter: miga_labs
- Repositories: 4
- Profile: https://github.com/migalabs
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: Miga Labs' Ethereum Client's hardware resource analysis
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Mikel
family-names: Cortes Goicoechea
email: mikel.cortes@bsc.es
affiliation: Barcelona Supercomputing Center
orcid: 'https://orcid.org/0000-0003-3167-6014'
- given-names: Tarun
family-names: Mohandas-Daryanani
email: tarun.mohandas@bsc.es
affiliation: Barcelona Supercomputing Center
- given-names: Jose Luis
family-names: Muñoz-Tapia
email: jose.luis.munoz@upc.edu
affiliation: Universidad Politécnica de Catalunya
orcid: 'https://orcid.org/0000-0001-6442-437X'
- given-names: Leonardo
family-names: Bautista-Gomez
email: leo@status.im
affiliation: Status
orcid: 'https://orcid.org/0000-0002-0814-5779'
url: "https://github.com/migalabs/eth-client-hw-analysis"
GitHub Events
Total
Last Year
Committers
Last synced: 8 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Tarun | t****o@g****m | 21 |
| cortze | c****e@p****m | 3 |
| Mikel Cortes | 4****e | 1 |
Issues and Pull Requests
Last synced: 8 months ago
All Time
- Total issues: 0
- Total pull requests: 2
- Average time to close issues: N/A
- Average time to close pull requests: about 14 hours
- Total issue authors: 0
- Total pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: about 6 hours
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- tdahar (3)