Add node-facts.sh script with JSON node facts emission

Implements node-facts.sh that emits JSON documents for monitoring and inventory:
- Reads COMPOSE_FILE from .env and iterates only those compose files
- Fails fast with JSON error when .env missing or COMPOSE_FILE empty (exit 2)
- Uses --max-time for all curl calls (5s general, 10s for peers)
- Bounded parallel worker count for node processing
- Supports avalanchego, op-node/kona, beacon REST, geth-family, besu, reth/op-reth
- Includes fixture-only test-node-facts.sh with schema validation
- Adds README entry for the new script

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-10-06 07:09:31 +00:00
parent 9e3b02c273
commit d57d19276e
5 changed files with 1142 additions and 0 deletions
@@ -0,0 +1,11 @@
version: "3"
services:
client:
image: ethereum/client-go:v1.13.0
labels:
- "traefik.http.routers.ethereum-mainnet-geth-pruned.rule=PathPrefix(`/ethereum-mainnet-geth-pruned`)"
- "traefik.http.middlewares.ethereum-mainnet-geth-pruned.stripprefix.prefixes=/ethereum-mainnet-geth-pruned"
x-upstreams:
network: ethereum
chain: ethereum-mainnet
chain: ethereum-mainnet