Files
proxmox/docs/05-network/RPC_2500_LOCAL_NODES_ONLY.md
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands
- CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround
- CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check
- NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere
- MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates
- LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:46:57 -08:00

3.7 KiB

VMID 2500 (Core RPC) - Local/Permissioned Nodes Only Configuration

Last Updated: 2026-01-31
Document Version: 1.0
Status: Active Documentation
VMID: 2500
IP: 192.168.11.250
Purpose: Core RPC node restricted to local/permissioned nodes only


Configuration Overview

VMID 2500 is the Core RPC node and should ONLY connect to local/permissioned nodes on the internal network (192.168.11.0/24).

Key Configuration Settings

  1. Node Permissioning: ENABLED

    • permissions-nodes-config-file-enabled=true
    • permissions-nodes-config-file="/permissions/permissions-nodes.toml"
    • Only nodes listed in this file can connect
  2. Discovery: DISABLED

    • discovery-enabled=false
    • Prevents discovery of external nodes
    • Only uses static nodes and permissioned nodes allowlist
  3. Static Nodes: Enabled

    • static-nodes-file="/genesis/static-nodes.json"
    • Contains only validator nodes (1000-1004)

Permissions Allowlist

The permissions-nodes.toml file should contain ONLY local network nodes:

Validators (1000-1004)

  • 192.168.11.100 - Validator 1
  • 192.168.11.101 - Validator 2
  • 192.168.11.102 - Validator 3
  • 192.168.11.103 - Validator 4
  • 192.168.11.104 - Validator 5

Sentries (1500-1503)

  • 192.168.11.150 - Sentry 1
  • 192.168.11.151 - Sentry 2
  • 192.168.11.152 - Sentry 3
  • 192.168.11.153 - Sentry 4

RPC Nodes (2500-2502)

  • 192.168.11.250 - Core RPC (this node)
  • 192.168.11.251 - Permissioned RPC
  • 192.168.11.252 - Public RPC

Total: 12 nodes (all on 192.168.11.0/24 local network)


Configuration File

Location: /etc/besu/config-rpc-core.toml

Key Settings:

# Permissioning - ONLY local/permissioned nodes
permissions-nodes-config-file-enabled=true
permissions-nodes-config-file="/permissions/permissions-nodes.toml"

# Discovery - DISABLED for strict control
discovery-enabled=false

# Static nodes - only validators
static-nodes-file="/genesis/static-nodes.json"

# Full RPC APIs enabled (for internal/core infrastructure)
rpc-http-api=["ETH","NET","WEB3","ADMIN","DEBUG","TXPOOL"]
rpc-ws-api=["ETH","NET","WEB3","ADMIN","DEBUG","TXPOOL"]

Verification

Check Permissioning is Enabled

pct exec 2500 -- grep "permissions-nodes-config-file-enabled" /etc/besu/config-rpc-core.toml
# Should show: permissions-nodes-config-file-enabled=true

Check Discovery is Disabled

pct exec 2500 -- grep "discovery-enabled" /etc/besu/config-rpc-core.toml
# Should show: discovery-enabled=false

Verify Permissions File Contains Only Local Nodes

pct exec 2500 -- cat /permissions/permissions-nodes.toml | grep -o "192.168.11\.[0-9]*" | sort -u
# Should show only 192.168.11.x addresses (local network)

Check Connected Peers

curl -X POST http://192.168.11.250:8545 \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"admin_peers","params":[],"id":1}' | jq '.result[].remoteAddress'
# Should show only 192.168.11.x addresses

Security Benefits

  1. No External Discovery: With discovery-enabled=false, the node cannot discover nodes outside the permissioned allowlist

  2. Strict Allowlisting: Only nodes explicitly listed in permissions-nodes.toml can connect

  3. Local Network Only: All allowed nodes are on the 192.168.11.0/24 network

  4. Defense in Depth: Even if discovery were enabled, permissioning would still block unauthorized nodes



Last Updated: $(date)