Skip to content

Conversation

@Validatrium
Copy link

@Validatrium Validatrium commented Jan 30, 2026

Description

Summary by CodeRabbit

Release Notes

  • New Features

    • Enhanced setup guide with comprehensive configuration and monitoring instructions
    • Added breaking change documentation for v0.3.x → v0.4 upgrade process
  • Documentation

    • Reorganized validator documentation structure
    • Consolidated system requirements, monitoring, and configuration guidance into unified setup guide
    • Updated navigation to reflect documentation changes

✏️ Tip: You can customize this high-level summary in your review settings.

@vercel
Copy link
Contributor

vercel bot commented Jan 30, 2026

@lembera is attempting to deploy a commit to the YeagerAI Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 30, 2026

📝 Walkthrough

Walkthrough

The PR consolidates validator documentation by removing separate pages for monitoring, system requirements, and GenVM configuration while integrating their content into the main setup guide. The upgrade guide is enhanced with breaking change information for v0.3.x → v0.4.

Changes

Cohort / File(s) Summary
Navigation Metadata
pages/validators/_meta.json
Removed three documentation entry keys (monitoring, system-requirements, genvm-configuration) from the sidebar navigation, leaving only setup-guide, upgrade, and changelog entries.
Deleted Documentation Pages
pages/validators/genvm-configuration.mdx, pages/validators/monitoring.mdx, pages/validators/system-requirements.mdx
Removed three standalone documentation files containing GenVM configuration guidance, comprehensive monitoring/telemetry setup, and hardware/software requirements—content consolidated elsewhere.
Consolidated Setup Guide
pages/validators/setup-guide.mdx
Substantially expanded with content from deleted files, including System Requirements block, comprehensive monitoring with Alloy/Prometheus/Loki configuration, GenVM LLM provider integration, Docker Compose telemetry stack guidance, and environment-variable-driven setup patterns; restructured workflow from bifurcated approach to unified operational flow.
Enhanced Upgrade Guide
pages/validators/upgrade.mdx
Added breaking change section for v0.3.x → v0.4 upgrade path detailing consensus deployment shift, staking requirements, owner/operator role separation, and configuration changes with validation steps; reorganized sections to prioritize newer breaking changes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • #323: Both PRs modify the same validator docs (setup-guide.mdx and upgrade.mdx) with overlapping upgrade/setup guidance updates.
  • #326: Both PRs modify setup-guide.mdx specifically to add/expand Alloy/Grafana Cloud telemetry configuration and docker-compose deployment patterns.
  • #308: Both PRs comprehensively overhaul the validators documentation, with overlapping changes to setup-guide.mdx, upgrade.mdx, and GenVM/monitoring guidance.

Suggested reviewers

  • dohernandez
  • AgustinRamiroDiaz
  • rasca

Poem

🐰 Pages consolidated, restructured with care,
Monitoring moved to setup's layers fair,
From fragments scattered to one guide so bright,
We hop through upgrades and v0.4's new light! ✨

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description contains only template comments with no actual content. Required sections like description of changes, motivation, and issue references are completely missing and unfilled. Replace the template comments with a detailed description of the changes. Follow the Conventional Commits format in the title and provide context for why monitoring, system requirements, and GenVM configuration pages were consolidated into the setup guide.
Title check ❓ Inconclusive The title is overly vague and generic. It mentions 'monitoring setup instructions have been updated' but fails to communicate the full scope of changes, which includes removing dedicated documentation pages, consolidating content, and updating setup guides. Use a more descriptive title that captures the main changes, such as 'docs(validators): consolidate monitoring and system requirements into setup guide' or follow Conventional Commits format as suggested in the template.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@netlify
Copy link

netlify bot commented Jan 30, 2026

Deploy Preview for genlayer-docs ready!

Name Link
🔨 Latest commit 35844c9
🔍 Latest deploy log https://app.netlify.com/projects/genlayer-docs/deploys/697c7384a6e7670008a1ed42
😎 Deploy Preview https://deploy-preview-342--genlayer-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 7

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pages/validators/setup-guide.mdx (1)

676-678: ⚠️ Potential issue | 🟡 Minor

Version inconsistency in .env example.

The .env example shows NODE_VERSION=v0.4.0, but the download section earlier in the guide uses v0.4.3. Consider updating to match the latest version for consistency.

✏️ Suggested fix
 # Docker image version
-NODE_VERSION=v0.4.0
+NODE_VERSION=v0.4.3
🤖 Fix all issues with AI agents
In `@pages/validators/setup-guide.mdx`:
- Around line 140-144: Remove the extra colon in the "Network" section heading
line that currently reads "**Recommended:**: 1 Gbps+" — update the text to
"**Recommended:** 1 Gbps+" (i.e., eliminate the duplicated colon) so the
emphasis markup and punctuation are correct in the "Network" block.
- Around line 430-434: Update the phrasing in the list under the Related scripts
section: change "user defined script" to the hyphenated form "user-defined
script" (refer to the item text "`./scripts/genvm-greyboxing.lua` – user defined
script") so it reads "`./scripts/genvm-greyboxing.lua` – user-defined script".
- Around line 405-407: Minor grammar issue: replace the phrase "non used LLM
providers" with "unused LLM providers" in the setup guide text (look for the
sentence containing "Disabling non used LLM providers will hide those warnings")
so the sentence reads "Disabling unused LLM providers will hide those warnings";
keep the rest of the sentence intact.
- Around line 1053-1056: The River config snippet for the prometheus.scrape
"alloy" block contains an extra closing brace `}}` after the scrape_interval
assignment which causes a syntax error; open the prometheus.scrape "alloy" block
(look for the prometheus.scrape "alloy" block and the scrape_interval =
coalesce(...) line) and remove the duplicate brace so the block ends with a
single `}` instead of `}}`.
- Around line 1086-1096: Convert the plain "Troubleshooting" text into a proper
heading and replace the malformed lines after the curl code block with a
properly formatted markdown list: make the "It should return
Prometheus-formatted data." sentence part of the explanation for the curl
snippet, and turn the three items into bullet points with bold labels (e.g.,
"**Authentication errors (401/403):** Double-check `MONITORING_USERNAME` and
`MONITORING_PASSWORD` in `.env`", "**No data pushed:** Ensure URLs in `.env`
have no trailing slash.", "**Need help?** Share Alloy logs:"), and add a code
block example `docker logs genlayer-node-alloy` after the last bullet; update
the relevant section around the curl snippet and the heading "Troubleshooting"
in setup-guide.mdx accordingly.
- Around line 1069-1079: Remove the accidental duplicate shell command "docker
logs genlayer-node-alloy | grep \"sent batch\"" so only a single occurrence
remains and retain the subsequent "docker logs genlayer-node-alloy | grep
\"remote_write\"" line; locate the duplicated block in the setup-guide content
(search for the exact command string) and delete the redundant snippet to leave
one "sent batch" grep followed by the "remote_write" grep.

In `@pages/validators/upgrade.mdx`:
- Around line 74-77: Fix the duplicated word in the sentence "Being selected as
an activator, a leader or activator" by replacing the second "activator" with
"validator" so the line reads "Being selected as an activator, a leader or
validator"; locate the phrase in pages/validators/upgrade.mdx (the line
containing "Being selected as an activator, a leader or activator") and update
the text accordingly.

Comment on lines +140 to +144
#### Network

- 100 Mbps connection
- **Recommended:**: 1 Gbps+

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Minor typo: double colon.

Line 143 has **Recommended:**: 1 Gbps+ with an extra colon.

✏️ Suggested fix
 #### Network

 - 100 Mbps connection
-- **Recommended:**: 1 Gbps+
+- **Recommended:** 1 Gbps+
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
#### Network
- 100 Mbps connection
- **Recommended:**: 1 Gbps+
#### Network
- 100 Mbps connection
- **Recommended:** 1 Gbps+
🤖 Prompt for AI Agents
In `@pages/validators/setup-guide.mdx` around lines 140 - 144, Remove the extra
colon in the "Network" section heading line that currently reads
"**Recommended:**: 1 Gbps+" — update the text to "**Recommended:** 1 Gbps+"
(i.e., eliminate the duplicated colon) so the emphasis markup and punctuation
are correct in the "Network" block.

Comment on lines +405 to +407
However, from here you can:
- turn on and off various LLMs by setting the `enabled` field to `false`: By default they all come enabled for you to use. You will get warnings in the logs for each one that's enabled and not configured. Disabling non used LLM providers will hide those warnings

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Minor grammar fix: "non used" → "unused".

✏️ Suggested fix
-- turn on and off various LLMs by setting the `enabled` field to `false`: By default they all come enabled for you to use. You will get warnings in the logs for each one that's enabled and not configured. Disabling non used LLM providers will hide those warnings
+- turn on and off various LLMs by setting the `enabled` field to `false`: By default they all come enabled for you to use. You will get warnings in the logs for each one that's enabled and not configured. Disabling unused LLM providers will hide those warnings
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
However, from here you can:
- turn on and off various LLMs by setting the `enabled` field to `false`: By default they all come enabled for you to use. You will get warnings in the logs for each one that's enabled and not configured. Disabling non used LLM providers will hide those warnings
However, from here you can:
- turn on and off various LLMs by setting the `enabled` field to `false`: By default they all come enabled for you to use. You will get warnings in the logs for each one that's enabled and not configured. Disabling unused LLM providers will hide those warnings
🧰 Tools
🪛 LanguageTool

[grammar] ~406-~406: Use a hyphen to join words.
Context: ...nabled and not configured. Disabling non used LLM providers will hide those warni...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
In `@pages/validators/setup-guide.mdx` around lines 405 - 407, Minor grammar
issue: replace the phrase "non used LLM providers" with "unused LLM providers"
in the setup guide text (look for the sentence containing "Disabling non used
LLM providers will hide those warnings") so the sentence reads "Disabling unused
LLM providers will hide those warnings"; keep the rest of the sentence intact.

Comment on lines +430 to +434
Related scripts are located at:

1. `./scripts/genvm-greyboxing.lua` – user defined script
2. `./share/lib/genvm/greyboxing/lib-greyboxing.lua` – more low-level library

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Minor grammar fix: "user defined" should be hyphenated.

✏️ Suggested fix
 Related scripts are located at:

-1. `./scripts/genvm-greyboxing.lua` – user defined script
+1. `./scripts/genvm-greyboxing.lua` – user-defined script
 2. `./share/lib/genvm/greyboxing/lib-greyboxing.lua` – more low-level library
🧰 Tools
🪛 LanguageTool

[grammar] ~432-~432: Use a hyphen to join words.
Context: ... ./scripts/genvm-greyboxing.lua – user defined script 2. `./share/lib/genvm/gre...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
In `@pages/validators/setup-guide.mdx` around lines 430 - 434, Update the phrasing
in the list under the Related scripts section: change "user defined script" to
the hyphenated form "user-defined script" (refer to the item text
"`./scripts/genvm-greyboxing.lua` – user defined script") so it reads
"`./scripts/genvm-greyboxing.lua` – user-defined script".

Comment on lines +1053 to +1056
// Configurable scrape interval for Alloy's internal health monitoring
scrape_interval = coalesce(sys.env("ALLOY_SELF_MONITORING_INTERVAL"), "60s")
}}
```
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Syntax error: extra closing brace in River config.

Line 1055 has }} (double closing brace) which will cause a syntax error in the Alloy configuration. Only one } is needed to close the prometheus.scrape "alloy" block.

🐛 Proposed fix
   // Configurable scrape interval for Alloy's internal health monitoring
   scrape_interval = coalesce(sys.env("ALLOY_SELF_MONITORING_INTERVAL"), "60s")
-}}
+}
🤖 Prompt for AI Agents
In `@pages/validators/setup-guide.mdx` around lines 1053 - 1056, The River config
snippet for the prometheus.scrape "alloy" block contains an extra closing brace
`}}` after the scrape_interval assignment which causes a syntax error; open the
prometheus.scrape "alloy" block (look for the prometheus.scrape "alloy" block
and the scrape_interval = coalesce(...) line) and remove the duplicate brace so
the block ends with a single `}` instead of `}}`.

Comment on lines +1069 to +1079
```bash
docker logs genlayer-node-alloy | grep "sent batch"
```

```bash
docker logs genlayer-node-alloy | grep "sent batch"
```

```bash
docker logs genlayer-node-alloy | grep "remote_write"
```
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Duplicate shell commands.

The same docker logs genlayer-node-alloy | grep "sent batch" command appears twice (lines 1070-1071 and 1073-1075), followed by a grep "remote_write" variant. This appears to be accidental duplication.

✏️ Suggested fix
 - Check logs for successful sends:

 ```bash
 docker logs genlayer-node-alloy | grep "sent batch"

-bash -docker logs genlayer-node-alloy | grep "sent batch" -

docker logs genlayer-node-alloy | grep "remote_write"
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

In @pages/validators/setup-guide.mdx around lines 1069 - 1079, Remove the
accidental duplicate shell command "docker logs genlayer-node-alloy | grep
"sent batch"" so only a single occurrence remains and retain the subsequent
"docker logs genlayer-node-alloy | grep "remote_write"" line; locate the
duplicated block in the setup-guide content (search for the exact command
string) and delete the redundant snippet to leave one "sent batch" grep followed
by the "remote_write" grep.


</details>

<!-- fingerprinting:phantom:medusa:ocelot -->

<!-- This is an auto-generated comment by CodeRabbit -->

Comment on lines +1086 to +1096
Troubleshooting
- No local metrics:

```bash
curl http://localhost:9153/metrics
```

— it should return Prometheus-formatted data.
Authentication errors (401/403): Double-check MONITORING_USERNAME and MONITORING_PASSWORD in .env.
No data pushed: Ensure URLs in .env have no trailing slash.
Help: Share Alloy logs
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Formatting issues in Troubleshooting section.

The "Troubleshooting" text on line 1086 should be a heading, and lines 1094-1096 are missing proper list formatting.

✏️ Suggested fix
-Troubleshooting
-- No local metrics:
+#### Troubleshooting
+
+- **No local metrics:**

 ```bash
 curl http://localhost:9153/metrics

-— it should return Prometheus-formatted data.
-Authentication errors (401/403): Double-check MONITORING_USERNAME and MONITORING_PASSWORD in .env.
-No data pushed: Ensure URLs in .env have no trailing slash.
-Help: Share Alloy logs

  • It should return Prometheus-formatted data.
    +- Authentication errors (401/403): Double-check MONITORING_USERNAME and MONITORING_PASSWORD in .env.
    +- No data pushed: Ensure URLs in .env have no trailing slash.
    +- Need help? Share Alloy logs:
docker logs genlayer-node-alloy
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

In @pages/validators/setup-guide.mdx around lines 1086 - 1096, Convert the plain
"Troubleshooting" text into a proper heading and replace the malformed lines
after the curl code block with a properly formatted markdown list: make the "It
should return Prometheus-formatted data." sentence part of the explanation for
the curl snippet, and turn the three items into bullet points with bold labels
(e.g., "Authentication errors (401/403): Double-check MONITORING_USERNAME
and MONITORING_PASSWORD in .env", "No data pushed: Ensure URLs in .env
have no trailing slash.", "Need help? Share Alloy logs:"), and add a code
block example docker logs genlayer-node-alloy after the last bullet; update
the relevant section around the curl snippet and the heading "Troubleshooting"
in setup-guide.mdx accordingly.


</details>

<!-- fingerprinting:phantom:medusa:ocelot -->

<!-- This is an auto-generated comment by CodeRabbit -->

Comment on lines +74 to +77
Failure to update the consensus contract addresses will prevent your validator from:
- Participating in consensus rounds
- Being selected as an activator, a leader or activator

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Typo: "activator" is repeated.

Line 76 has "Being selected as an activator, a leader or activator" — "activator" appears twice. This should likely be "a leader or validator".

✏️ Suggested fix
   Failure to update the consensus contract addresses will prevent your validator from:
   - Participating in consensus rounds
-  - Being selected as an activator, a leader or activator
+  - Being selected as an activator, a leader, or validator
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Failure to update the consensus contract addresses will prevent your validator from:
- Participating in consensus rounds
- Being selected as an activator, a leader or activator
Failure to update the consensus contract addresses will prevent your validator from:
- Participating in consensus rounds
- Being selected as an activator, a leader, or validator
🤖 Prompt for AI Agents
In `@pages/validators/upgrade.mdx` around lines 74 - 77, Fix the duplicated word
in the sentence "Being selected as an activator, a leader or activator" by
replacing the second "activator" with "validator" so the line reads "Being
selected as an activator, a leader or validator"; locate the phrase in
pages/validators/upgrade.mdx (the line containing "Being selected as an
activator, a leader or activator") and update the text accordingly.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
pages/validators/setup-guide.mdx (2)

370-378: ⚠️ Potential issue | 🟡 Minor

RPC port example exports the wrong variable.

The example says “Override the RPC port” but sets a consensus contract address instead.

🛠️ Proposed fix
-# Override the RPC port
-export GENLAYERNODE_CONSENSUS_CONTRACTMAINADDRESS="0x..."
+# Override the RPC port
+export GENLAYERNODE_NODE_RPC_PORT="9151"

665-710: ⚠️ Potential issue | 🟡 Minor

Inconsistent NODE_VERSION within the same guide.

The download section uses v0.4.3, but the .env example and Docker doctor command use v0.4.0. Align these to avoid confusion.

🛠️ Proposed fix (align with v0.4.3)
-NODE_VERSION=v0.4.0
+NODE_VERSION=v0.4.3
...
-  yeagerai/genlayer-node:${NODE_VERSION:-v0.4.0} \
+  yeagerai/genlayer-node:${NODE_VERSION:-v0.4.3} \

Based on learnings: Update version references in download examples and version lists in setup-guide.mdx when new validator releases occur.

🤖 Fix all issues with AI agents
In `@pages/validators/setup-guide.mdx`:
- Around line 199-207: The backticks in the shell examples cause command
substitution and should be replaced with literal paths; update the lines
referencing genlayer-node-linux-amd64-${version}.tar.gz and ./${version} so they
use plain text paths (no backticks) when running tar -xzvf and cd, e.g. use
genlayer-node-linux-amd64-${version}.tar.gz and ./${version} directly in the tar
-xzvf and cd commands to prevent unintended execution.
- Around line 807-864: The env var names are inconsistent: the prerequisites and
example .env use MONITORING_USERNAME/PASSWORD while the alloy service expects
CENTRAL_MONITORING_USERNAME/CENTRAL_MONITORING_PASSWORD (and
CENTRAL_LOKI_USERNAME/CENTRAL_LOKI_PASSWORD); update the references so they
match — either rename the .env/prereqs to use CENTRAL_MONITORING_URL,
CENTRAL_LOKI_URL, CENTRAL_MONITORING_USERNAME, CENTRAL_MONITORING_PASSWORD,
CENTRAL_LOKI_USERNAME and CENTRAL_LOKI_PASSWORD, or change the alloy environment
keys to MONITORING_USERNAME/MONITORING_PASSWORD and
MONITORING_LOKI_USERNAME/PASSWORD — ensure MONITORING_USERNAME,
MONITORING_PASSWORD, CENTRAL_MONITORING_USERNAME, CENTRAL_MONITORING_PASSWORD,
CENTRAL_LOKI_USERNAME and CENTRAL_LOKI_PASSWORD are used consistently across the
prerequisites, .env example, and the alloy service block.
- Around line 548-552: The doc uses a different config key than the code:
confirm whether genvm.start_manager or genvm.manage_modules is the actual config
key (search the codebase for those symbols) and update the setup-guide text so
the automatic-start instruction and the example config/snippet use the correct
key consistently; specifically replace the mismatched occurrence in the "To
start them automatically" line so it references the verified key
(genvm.start_manager or genvm.manage_modules) and ensure any surrounding
explanation matches that behavior.

Comment on lines +199 to 207
```sh
mkdir -p ${version}
tar -xzvf `genlayer-node-linux-amd64-${version}.tar.gz` -C `./${version}`
```
4. Change the directory

```sh copy
```sh
cd `./${version}`
```
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Backticks break the tar/cd commands.

Backticks trigger command substitution, so these commands will try to execute the filenames instead of using them as paths. Use literal paths instead.

🛠️ Proposed fix
-   tar -xzvf `genlayer-node-linux-amd64-${version}.tar.gz` -C `./${version}`
+   tar -xzvf genlayer-node-linux-amd64-${version}.tar.gz -C ./${version}
...
-   cd `./${version}`
+   cd ./${version}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```sh
mkdir -p ${version}
tar -xzvf `genlayer-node-linux-amd64-${version}.tar.gz` -C `./${version}`
```
4. Change the directory
```sh copy
```sh
cd `./${version}`
```
🤖 Prompt for AI Agents
In `@pages/validators/setup-guide.mdx` around lines 199 - 207, The backticks in
the shell examples cause command substitution and should be replaced with
literal paths; update the lines referencing
genlayer-node-linux-amd64-${version}.tar.gz and ./${version} so they use plain
text paths (no backticks) when running tar -xzvf and cd, e.g. use
genlayer-node-linux-amd64-${version}.tar.gz and ./${version} directly in the tar
-xzvf and cd commands to prevent unintended execution.

Comment on lines 548 to 552
3. (Optional) Run two services (modules) in background (this is a crucial step for running _Intelligent_ contracts). This can be done automatically or manually.
- To start them automatically in node configuration set `genvm.manage_modules` to `true`
- To start them manually run
```bash copy
```bash
./third_party/genvm/bin/genvm-modules web & ./third_party/genvm/bin/genvm-modules llm &
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Config key mismatch for automatic GenVM modules.

The config snippet above uses genvm.start_manager, but the instructions reference genvm.manage_modules. Please confirm the actual key and align the text accordingly to prevent misconfiguration.

🛠️ Proposed fix (if `start_manager` is the correct key)
-    - To start them automatically in node configuration set `genvm.manage_modules` to `true`
+    - To start them automatically in node configuration set `genvm.start_manager` to `true`
#!/bin/bash
# Verify which config key is supported in the codebase/docs
rg -n "manage_modules|start_manager" -S
🤖 Prompt for AI Agents
In `@pages/validators/setup-guide.mdx` around lines 548 - 552, The doc uses a
different config key than the code: confirm whether genvm.start_manager or
genvm.manage_modules is the actual config key (search the codebase for those
symbols) and update the setup-guide text so the automatic-start instruction and
the example config/snippet use the correct key consistently; specifically
replace the mismatched occurrence in the "To start them automatically" line so
it references the verified key (genvm.start_manager or genvm.manage_modules) and
ensure any surrounding explanation matches that behavior.

Comment on lines +807 to +864
**Prerequisites**
- Metrics enabled in `config.yaml` (`endpoints.metrics: true` — default in recent versions).
- Ops port 9153 exposed in docker-compose (`ports: - "9153:9153"`).
- Credentials from the Foundation team (ask in #testnet-asimov):
- `CENTRAL_MONITORING_URL` — Prometheus remote write base URL (e.g., `https://prometheus-prod-XX.grafana.net`)
- `CENTRAL_LOKI_URL` — Loki push base URL (e.g., `https://logs-prod-XX.grafana.net`)
- `MONITORING_USERNAME` — Instance ID (a number)
- `MONITORING_PASSWORD` — Grafana Cloud API Key (with write permissions for metrics and logs)

**Steps**

1. **Create or update .env** (next to your docker-compose.yaml):

```env
# Grafana Cloud credentials (request from Foundation team in Discord)
CENTRAL_MONITORING_URL=https://prometheus-prod-...grafana.net
CENTRAL_LOKI_URL=https://logs-prod-...grafana.net
MONITORING_USERNAME=1234567890 # your instance ID
MONITORING_PASSWORD=glc_xxxxxxxxxxxxxxxxxxxxxxxxxxxx # API key

# Your node labels (customize for easy filtering in dashboards)
NODE_ID=0xYourValidatorAddressOrCustomID
VALIDATOR_NAME=validatorname

# Usually defaults are fine
NODE_METRICS_ENDPOINT=localhost:9153
LOG_FILE_PATTERN=/var/log/genlayer/node*.log
METRICS_SCRAPE_INTERVAL=15s
```

2. **Add or verify the Alloy service in docker-compose.yaml (copy if missing):

```yaml
alloy:
image: grafana/alloy:v1.12.0
container_name: genlayer-node-alloy
command:
- run
- /etc/alloy/config.river
- --server.http.listen-addr=0.0.0.0:12345
- --storage.path=/var/lib/alloy/data
volumes:
- ./alloy-config.river:/etc/alloy/config.river:ro
- ${NODE_LOGS_PATH:-./data/node/logs}:/var/log/genlayer:ro
- alloy_data:/var/lib/alloy
environment:
# Central monitoring endpoints
- CENTRAL_LOKI_URL=${CENTRAL_LOKI_URL:-https://logs-prod-042.grafana.net/loki/api/v1/push}
- CENTRAL_MONITORING_URL=${CENTRAL_MONITORING_URL:-https://prometheus-prod-66-prod-us-east-3.grafana.net/api/prom/push}

# Metrics (Prometheus) authentication
- CENTRAL_MONITORING_USERNAME=${CENTRAL_MONITORING_USERNAME:-telemetric}
- CENTRAL_MONITORING_PASSWORD=${CENTRAL_MONITORING_PASSWORD:-12345678}

# Logs (Loki) authentication
- CENTRAL_LOKI_USERNAME=${CENTRAL_LOKI_USERNAME:-telemetric}
- CENTRAL_LOKI_PASSWORD=${CENTRAL_LOKI_PASSWORD:-12345678}

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Monitoring credential variable names don’t line up.

Prereqs mention MONITORING_USERNAME/PASSWORD, but the alloy service consumes CENTRAL_*_USERNAME/PASSWORD. This mismatch will cause auth values to be unset. Please standardize the variable names across prerequisites, .env, and docker-compose.

🛠️ Proposed fix (standardize to CENTRAL_* names)
-  - `MONITORING_USERNAME` — Instance ID (a number)
-  - `MONITORING_PASSWORD` — Grafana Cloud API Key (with write permissions for metrics and logs)
+  - `CENTRAL_MONITORING_USERNAME` — Instance ID (a number)
+  - `CENTRAL_MONITORING_PASSWORD` — Grafana Cloud API Key (with write permissions for metrics and logs)
+  - `CENTRAL_LOKI_USERNAME` — Instance ID (a number)
+  - `CENTRAL_LOKI_PASSWORD` — Grafana Cloud API Key (with write permissions for logs)

...
-MONITORING_USERNAME=1234567890          # your instance ID
-MONITORING_PASSWORD=glc_xxxxxxxxxxxxxxxxxxxxxxxxxxxx  # API key
+CENTRAL_MONITORING_USERNAME=1234567890          # your instance ID
+CENTRAL_MONITORING_PASSWORD=glc_xxxxxxxxxxxxxxxxxxxxxxxxxxxx  # API key
+CENTRAL_LOKI_USERNAME=1234567890
+CENTRAL_LOKI_PASSWORD=glc_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
🤖 Prompt for AI Agents
In `@pages/validators/setup-guide.mdx` around lines 807 - 864, The env var names
are inconsistent: the prerequisites and example .env use
MONITORING_USERNAME/PASSWORD while the alloy service expects
CENTRAL_MONITORING_USERNAME/CENTRAL_MONITORING_PASSWORD (and
CENTRAL_LOKI_USERNAME/CENTRAL_LOKI_PASSWORD); update the references so they
match — either rename the .env/prereqs to use CENTRAL_MONITORING_URL,
CENTRAL_LOKI_URL, CENTRAL_MONITORING_USERNAME, CENTRAL_MONITORING_PASSWORD,
CENTRAL_LOKI_USERNAME and CENTRAL_LOKI_PASSWORD, or change the alloy environment
keys to MONITORING_USERNAME/MONITORING_PASSWORD and
MONITORING_LOKI_USERNAME/PASSWORD — ensure MONITORING_USERNAME,
MONITORING_PASSWORD, CENTRAL_MONITORING_USERNAME, CENTRAL_MONITORING_PASSWORD,
CENTRAL_LOKI_USERNAME and CENTRAL_LOKI_PASSWORD are used consistently across the
prerequisites, .env example, and the alloy service block.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
pages/validators/setup-guide.mdx (2)

363-371: ⚠️ Potential issue | 🟡 Minor

Example doesn’t match the stated goal (RPC port).

The comment says “Override the RPC port” but exports a consensus contract address. Update the variable or the comment.

🛠️ Proposed fix
-# Override the RPC port
-export GENLAYERNODE_CONSENSUS_CONTRACTMAINADDRESS="0x..."
+# Override the RPC port
+export GENLAYERNODE_NODE_RPC_PORT="9151"

671-705: ⚠️ Potential issue | 🟠 Major

Docker examples pin v0.4.0 while the guide targets v0.4.5.

This creates a version mismatch between the download instructions and Docker flow. Update the defaults to keep the guide consistent.

🛠️ Proposed fix
-NODE_VERSION=v0.4.0
+NODE_VERSION=v0.4.5
...
-  yeagerai/genlayer-node:${NODE_VERSION:-v0.4.0} \
+  yeagerai/genlayer-node:${NODE_VERSION:-v0.4.5} \

Based on learnings: Update version references in download examples and version lists in setup-guide.mdx when new validator releases occur.

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.

2 participants