# static-nodes.json Fix - Matching permissions-nodes.toml **Date**: $(date) **Status**: ✅ **FIX APPLIED** - static-nodes.json now matches permissions-nodes.toml --- ## Critical Issue Found After replacing validator node keys with validator keys, we updated `permissions-nodes.toml` with the new validator enode URLs, but **`static-nodes.json` still had the OLD validator enode URLs** (from before the key replacement). ### Problem - ❌ `static-nodes.json` had old validator enode URLs (old node keys) - ✅ `permissions-nodes.toml` had new validator enode URLs (new validator keys) - ❌ **Mismatch** - Besu checks that all nodes in `static-nodes.json` are in `permissions-nodes.toml` ### Error Messages ``` Specified node(s) not in nodes-allowlist [enode://...old-enodes...] ``` This prevented services from starting properly! --- ## Fix Applied ### Solution Updated `static-nodes.json` to use the **same validator enode URLs** that are in `permissions-nodes.toml` (the new validator keys). ### Process 1. Extracted validator enode URLs from `permissions-nodes.toml` 2. Created new `static-nodes.json` with matching validator enodes 3. Deployed to all validators 4. Restarted all services --- ## Important Rule **With permissioning enabled:** - **ALL nodes in `static-nodes.json` MUST be in `permissions-nodes.toml`** - When validator keys change, BOTH files must be updated with matching enode URLs - `static-nodes.json` should contain **only validator enodes** (for QBFT) - `permissions-nodes.toml` should contain **all node enodes** (validators + sentries + RPC) --- ## Current State ### static-nodes.json - Contains 5 validator enode URLs (matching new validator keys) - Matches validator enodes in permissions-nodes.toml - Deployed to all 5 validators ### permissions-nodes.toml - Contains 12 node enode URLs: - 5 validators (new validator keys) - 4 sentries - 3 RPC nodes - Deployed to all 12 nodes --- ## Verification After restart: - ✅ No permissioning errors in logs - ✅ Services start successfully - ✅ Nodes can connect to peers - ✅ Block production should improve --- **Last Updated**: $(date) **Status**: ✅ static-nodes.json now matches permissions-nodes.toml