Skip to content

Commit 4cbff59

Browse files
authored
Merge pull request #1 from migalabs/prepare-release/v2
Prepare for release v2
2 parents a9d0f27 + 4618a1b commit 4cbff59

File tree

1,084 files changed

+513
-2454
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,084 files changed

+513
-2454
lines changed

README.md

+14-69
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,25 @@
1-
# eth-client-hw-analysis V1
2-
Repo compiling all the images that came out from our Ethereum Consensus Client's hardware resource analysis
1+
# Ethereum Consensus Clients Hardware Analysis V2
2+
This repository collects all the scripts and generates the figures used in the Ethereum Consensus Client's hardware resource analysis.
33

4-
# Data Plotting
5-
This subfolder contains the tool used to plot the output data from the eth2-client-analyzer.
4+
## The Analysis
5+
This Analysis was performed during the month of May in 2023.
6+
It consisted of running the 5 main clients (Prysm, Lighthouse, Teku, Nimbus and Lodestar)
67

7-
This tool does not reveal / create / modify any data, it purely reads and represents the collected data into a plot.
8-
This tool has been developed in Python.
8+
## Running the clients
99

10-
Maintained by [MigaLabs](http://migalabs.io)
10+
In order to run the 5 main CL clients we have developed our own Ethereum docker-compose setup that can be used
11+
to launch them in a single command. Please refer [here](https://github.com/migalabs/nodeth) for more information.
1112

13+
## Data Collection
1214

13-
## Requirements
15+
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.
16+
After the execution, you may find several CSV files have been downloaded (under `{network}/csv/`).
1417

15-
<strong>This tool has been tested using Python 3.8.10</strong>
16-
It merely needs the Python interpreter to run it and to install the dependencies in the requirements file.
18+
## Data Plotting
1719

18-
## Launch the Clients
20+
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.
1921

20-
To launch the clients we have developed a repository to automatize running the clients using a docker-compose file. Please refer [here](https://github.com/migalabs/eth2-clients-setup) to discover more about it.
2122

2223

23-
## Data
2424

25-
Data has been collected from Prometheus and from a Python script developed by us to double check the Prometheus data is correct.
26-
You may see the download script from Prometheus in the `download_data` folder.
27-
The Python project can be found [here](https://github.com/migalabs/eth2-client-analyzer).
28-
29-
## Configuration Instructions
30-
31-
The Execution command looks like the following:
32-
33-
```
34-
python3 plot_data.py <config-file> csv-files
35-
36-
Example:
37-
python3 plot_data.py configs/config_plot_NEvs_cpu.ini mainnet2/grandine_sample.csv mainnet2/NE_grandine.csv
38-
39-
```
40-
Keep in mind that there are several different keywords we can give as metricType argument:
41-
- "mem" --> Outputs the Memory consumption plot
42-
- "cpu" --> Outputs the CPU consumption plot
43-
- "disk" --> Outputs the Disk Usage plot
44-
- "slot" --> Outputs the slot increase of each client across time
45-
- "peers" --> Outputs the number of peers plot
46-
- "netSent" --> Outputs the network sent bytes ratio plot
47-
- "netReceived" --> Outputs the network receive bytes ratio plot
48-
49-
For the data_file argument, we may input the file we want to read the data from.
50-
51-
52-
Config file
53-
54-
```
55-
[PLOT1]
56-
METRIC_NAME = disk (choose between disk, cpu, mem, slot, peers, netSent, netReceived)
57-
PLOT_TYPE = line (choose between line, scatter)
58-
SECOND_METRIC_NAME = (in case of sencond axis metric)
59-
SECOND_PLOT_TYPE = (choose between line, scatter)
60-
NUM_OF_POINTS = 100 (more points, more definition)
61-
MARKER = +,x,1,2,3,4
62-
MARKER_SIZE = 10
63-
INITIAL_DATE = 11/02/2022 14:21:32
64-
XAXIS = slot (what metric to use as xaxis)
65-
INTERVAL_SECS = 30 (interval between each xtick)
66-
START_X = 0 (in case of shifting the plot)
67-
MIN_Y_VALUE = 0 (adjust y axis)
68-
MAX_Y_VALUE = 120 (adjust y axis)
69-
MIN_SECOND_Y_VALUE = 0 (adjust y axis)
70-
MAX_SECOND_Y_VALUE = 100 (adjust y axis)
71-
CLIENT_ALLOWLIST = NE_Prysm, NE_Lighthouse, NE_Teku, NE_Nimbus, NE_Lodestar, NE_Grandine (clients to include in the plot)
72-
LEGEND_LOCATION = upper left
73-
STORE_PATH = figures/mainnet/disk/sync_grandine_NE
74-
```
75-
76-
## Execution
77-
78-
We have enabled a set of scripts that automatically execute the given plots with the data we collected a year ago. You may refer to the plot_scripts which automatically plot the data for the given csv files.
79-
We have also included the download script, which retrieves data from Prometheus and stores in a CSV file.
80-
This set of plots was used in May 2022 to perform the Resource Analysis V1.
25+
Maintained by [MigaLabs](http://migalabs.io)
-53 KB
Binary file not shown.
-47.3 KB
Binary file not shown.
-48.3 KB
Binary file not shown.
-44.1 KB
Binary file not shown.
-54 KB
Binary file not shown.
-80.1 KB
Binary file not shown.

default_topics/net/NE/Grandine.png

-43.8 KB
Binary file not shown.

default_topics/net/NE/Lighthouse.png

-44.3 KB
Binary file not shown.

default_topics/net/NE/Lodestar.png

-40 KB
Binary file not shown.

default_topics/net/NE/Nimbus.png

-52.5 KB
Binary file not shown.

default_topics/net/NE/Prysm.png

-45.9 KB
Binary file not shown.

default_topics/net/NE/Teku.png

-44.8 KB
Binary file not shown.
-14.8 KB
Binary file not shown.
-17.1 KB
Binary file not shown.
-17.1 KB
Binary file not shown.
-17.1 KB
Binary file not shown.
-118 KB
Binary file not shown.
-17.1 KB
Binary file not shown.

download_data/download.sh

-62
This file was deleted.

0 commit comments

Comments
 (0)