Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Display up-to-date node storage size #809

Merged
merged 21 commits into from
Nov 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions .github/workflows/update-node-size.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Update Node Size Data

on:
schedule:
- cron: '0 0 * * 1' # Runs at 00:00 UTC every Monday
workflow_dispatch: # Allows manual triggering

jobs:
update-data:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: '20.9.0' # or whatever version you're using

- name: Install dependencies
run: npm ci

- name: Run update script
env:
LINEA_OBSERVABILITY_USER: ${{ secrets.LINEA_OBSERVABILITY_USER }}
LINEA_OBSERVABILITY_PASS: ${{ secrets.LINEA_OBSERVABILITY_PASS }}
run: node scripts/fetchNodeSize.js

- name: Check for changes
id: git-check
run: |
git add linea-node-size/data.json
git diff --staged --exit-code
continue-on-error: true

- name: Create Pull Request
if: steps.git-check.outcome == 'failure'
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Update node size data
title: 'Update Node Size Data'
body: |
This is an automated PR to update the node size data.
Please review the changes and merge if everything looks correct.
branch: update-node-size-data
delete-branch: true

slackNotification:
needs: [update-data]
if: ${{ failure() }}
runs-on: ubuntu-latest
steps:
- name: Slack Notification
uses: rtCamp/action-slack-notify@v2
env:
SLACK_CHANNEL: doc-ci-alerts
SLACK_COLOR: danger
SLACK_USERNAME: ci
SLACK_TITLE: Linea node size update - Failure
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
MSG_MINIMAL: true
12 changes: 8 additions & 4 deletions docs/developers/guides/run-a-node/besu.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";

import VolumeCreation from "./volume-creation.mdx";
import NodeSize from "../../../../src/components/NodeSize";
import LastUpdated from "../../../../src/components/LastUpdated";

[Besu](https://besu.hyperledger.org/) is an open source Ethereum client developed under the
Apache 2.0 license and written in Java.
Expand Down Expand Up @@ -56,10 +58,12 @@ Download the genesis file and Besu configuration file.

### Step 3. Define disk space volume (optional) \{#disk-space-besu}

Define a volume size appropriate to your expected usage. As of March 20 2024, Besu nodes use:
Define a volume size appropriate to your expected usage. Besu nodes use:

- Full nodes: 120GB, growing ~1.5GB per day.
- Archive nodes: 740GB, growing ~9.5GB per day.
- Full node: <NodeSize network="mainnet" cluster="linea-prod-eks" pvc="data-linea-besu-full-0" />
- Archive node: <NodeSize network="mainnet" cluster="linea-prod-eks" pvc="data-linea-besu-archive-v2-0" />

<LastUpdated />

Use these figures as a basis to determine the extent to which you want to future-proof your node.

Expand All @@ -70,7 +74,7 @@ Ensure you mount the Besu `data-path` to the custom volume when you start the no

<VolumeCreation />

### Step 4. Configure the Besu configuration file.
### Step 4. Configure the Besu configuration file

In your Besu configuration file (`config-mainnet.toml` or `config-sepolia.toml`), configure
the following options:
Expand Down
13 changes: 9 additions & 4 deletions docs/developers/guides/run-a-node/geth.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";

import VolumeCreation from "./volume-creation.mdx";
import NodeSize from "../../../../src/components/NodeSize";
import LastUpdated from "../../../../src/components/LastUpdated";

[Geth](https://geth.ethereum.org/) is an open-source Go implementation of Ethereum.

Expand All @@ -27,7 +29,7 @@ You can run Geth from a [binary distribution](#run-using-the-binary-distribution

:::warning

Linea only supports Geth _up to_ v1.13.15 or lower. v1.14.0 and subsequent versions are not
Linea only supports Geth _up to_ v1.13.15 or lower. v1.14.0 and subsequent versions aren't
supported.

:::
Expand All @@ -51,9 +53,12 @@ Download the genesis file for the relevant network.

### Step 3. Define disk space volume (optional) \{#disk-space-geth}

Define a volume size appropriate to your expected usage. As of March 20 2024, Geth nodes use:
- Full nodes: 170GB, growing ~2.6GB per day.
- Archive nodes: 760GB, growing ~10GB per day.
Define a volume size appropriate to your expected usage. Geth nodes use:

- Full node: <NodeSize network="mainnet" cluster="linea-prod-eks" pvc="data-linea-geth-full-snapshot-0" />
- Archive node: <NodeSize network="mainnet" cluster="linea-prod-eks" pvc="data-linea-geth-archive-0" />

<LastUpdated />

Use these figures as a basis to determine the extent to which you want to future-proof your node.

Expand Down
21 changes: 19 additions & 2 deletions docs/developers/guides/run-a-node/linea-besu.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
import TabItem from "@theme/TabItem";

import VolumeCreation from "./volume-creation.mdx";
import NodeSize from "../../../../src/components/NodeSize";
import LastUpdated from "../../../../src/components/LastUpdated";

Linea Besu is an implementation of the Besu client that extends its functionality using plugins
adapted specifically for Linea, such as the
Expand Down Expand Up @@ -50,7 +52,22 @@
tar -xzvf linea-besu-package-<version>.tar.gz
```

### Step 3. Select a profile
### Step 3. Define disk space volume (optional) \{#disk-space-besu}

Check warning on line 55 in docs/developers/guides/run-a-node/linea-besu.mdx

View workflow job for this annotation

GitHub Actions / Spelling

[vale] reported by reviewdog 🐶 [Consensys.CaseSensitive-Substitution] Consider standard format, '"Besu"' instead of "besu" (may not apply for start of sentence). Raw Output: {"message": "[Consensys.CaseSensitive-Substitution] Consider standard format, '\"Besu\"' instead of \"besu\" (may not apply for start of sentence).", "location": {"path": "docs/developers/guides/run-a-node/linea-besu.mdx", "range": {"start": {"line": 55, "column": 63}}}, "severity": "WARNING"}

Define a volume size appropriate to your expected usage. Besu nodes use:

- Full node: <NodeSize network="mainnet" cluster="linea-prod-eks" pvc="data-linea-besu-full-0" />

Check warning on line 59 in docs/developers/guides/run-a-node/linea-besu.mdx

View workflow job for this annotation

GitHub Actions / Spelling

[vale] reported by reviewdog 🐶 [Consensys.CaseSensitive-Substitution] Consider standard format, '"Besu"' instead of "besu" (may not apply for start of sentence). Raw Output: {"message": "[Consensys.CaseSensitive-Substitution] Consider standard format, '\"Besu\"' instead of \"besu\" (may not apply for start of sentence).", "location": {"path": "docs/developers/guides/run-a-node/linea-besu.mdx", "range": {"start": {"line": 59, "column": 83}}}, "severity": "WARNING"}
- Archive node: <NodeSize network="mainnet" cluster="linea-prod-eks" pvc="data-linea-besu-archive-v2-0" />

<LastUpdated />

Use these figures as a basis to determine the extent to which you want to future-proof your node.

Ensure you mount the `data-path` to the custom volume when you start the node.

<VolumeCreation />

### Step 4. Select a profile

In the extracted directory, find `profiles`. The `.toml` configuration files in this folder define
the parameters for each possible profile you can select for your Linea Besu node.
Expand All @@ -70,7 +87,7 @@
</TabItem>
</Tabs>

### Step 4. Start the Linea Besu client
### Step 5. Start the Linea Besu client

Check warning on line 90 in docs/developers/guides/run-a-node/linea-besu.mdx

View workflow job for this annotation

GitHub Actions / Spelling

[vale] reported by reviewdog 🐶 [Consensys.Headings] 'Step 5. Start the Linea Besu client' should use sentence-style capitalization. Raw Output: {"message": "[Consensys.Headings] 'Step 5. Start the Linea Besu client' should use sentence-style capitalization.", "location": {"path": "docs/developers/guides/run-a-node/linea-besu.mdx", "range": {"start": {"line": 90, "column": 5}}}, "severity": "WARNING"}

In a terminal, navigate to the `linea-besu-package-<version>` directory, where the `bin`, `genesis`,
`profiles` etc. directories are.
Expand Down
22 changes: 22 additions & 0 deletions linea-node-size/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[
{
"network": "mainnet",
"cluster": "linea-prod-eks",
"pvc": "data-linea-besu-full-0"
},
{
"network": "mainnet",
"cluster": "linea-prod-eks",
"pvc": "data-linea-besu-archive-v2-0"
},
{
"network": "mainnet",
"cluster": "linea-prod-eks",
"pvc": "data-linea-geth-full-snapshot-0"
},
{
"network": "mainnet",
"cluster": "linea-prod-eks",
"pvc": "data-linea-geth-archive-0"
}
]
38 changes: 38 additions & 0 deletions linea-node-size/data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"2024": {
"45": [
{
"network": "mainnet",
"cluster": "linea-prod-eks",
"pvc": "data-linea-besu-full-0",
"totalSize": 219667169280,
"dailyIncrease": 3019358208,
"timestamp": "2024-11-04T11:30:01.779Z"
},
{
"network": "mainnet",
"cluster": "linea-prod-eks",
"pvc": "data-linea-besu-archive-v2-0",
"totalSize": 2871020601344,
"dailyIncrease": 4754972672,
"timestamp": "2024-11-04T11:30:02.067Z"
},
{
"network": "mainnet",
"cluster": "linea-prod-eks",
"pvc": "data-linea-geth-full-snapshot-0",
"totalSize": 626085388288,
"dailyIncrease": 760295424,
"timestamp": "2024-11-04T11:30:02.480Z"
},
{
"network": "mainnet",
"cluster": "linea-prod-eks",
"pvc": "data-linea-geth-archive-0",
"totalSize": 2936292204544,
"dailyIncrease": 4026421248,
"timestamp": "2024-11-04T11:30:02.818Z"
}
]
}
}
Loading
Loading