Files
proxmox/scripts/BESU_BALANCES_README.md

2.9 KiB

Besu Balance Query Script

Query balances from Besu RPC nodes running on VMID 115-117.

Note: Only RPC nodes (115-117) expose RPC endpoints. Validators (106-110) and sentries (111-114) don't have RPC enabled.

Installation

npm install ethers

Usage

Basic Usage (with RPC template)

The script defaults to querying RPC nodes 115-117. It uses a template to generate RPC URLs by substituting {vmid} with the VMID:

RPC_TEMPLATE="http://192.168.11.{vmid}:8545" \
node scripts/besu_balances_106_117.js

Note: The default template is http://192.168.11.{vmid}:8545 and defaults to VMIDs 115-117 (RPC nodes only).

With Custom RPC URLs

You can also provide explicit RPC URLs (comma-separated):

RPC_URLS="http://192.168.11.13:8545,http://192.168.11.14:8545,http://192.168.11.15:8545" \
node scripts/besu_balances_106_117.js

With Token Addresses

RPC_TEMPLATE="http://192.168.11.{vmid}:8545" \
WETH9_ADDRESS="0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" \
WETH10_ADDRESS="0xYourWETH10Address" \
node scripts/besu_balances_106_117.js

Environment Variables

  • RPC_TEMPLATE: Template for RPC URLs with {vmid} placeholder (default: http://192.168.11.{vmid}:8545)
  • RPC_URLS: Comma-separated list of explicit RPC URLs (overrides template if set)
  • VMID_START: Starting VMID for template (default: 115 - RPC nodes only)
  • VMID_END: Ending VMID for template (default: 117 - RPC nodes only)
  • WETH9_ADDRESS: WETH9 token contract address (default: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2)
  • WETH10_ADDRESS: WETH10 token contract address (optional, skipped if not set)

Output

The script outputs balance information for each RPC endpoint:

VMID: 106
RPC: http://192.168.11.13:8545
chainId: 138
block: 12345
ETH: 1.5 (wei: 1500000000000000000)
WETH9: 0.0 WETH (raw: 0)
WETH10: skipped (missing address)
---

Features

  • Queries native ETH balance
  • Queries ERC-20 token balances (WETH9, WETH10)
  • Fetches token decimals and symbol for formatted display
  • Health checks (chainId, blockNumber)
  • Concurrent requests (limit: 4)
  • Request timeout: 15 seconds
  • Continues on failures, reports errors per endpoint
  • Exit code: 0 if at least one RPC succeeded, 1 if all failed

Container IP Mapping (Reference)

For the deployed containers, the VMID to IP mapping is:

  • 106 -> 192.168.11.13 (besu-validator-1)
  • 107 -> 192.168.11.14 (besu-validator-2)
  • 108 -> 192.168.11.15 (besu-validator-3)
  • 109 -> 192.168.11.16 (besu-validator-4)
  • 110 -> 192.168.11.18 (besu-validator-5)
  • 111 -> 192.168.11.19 (besu-sentry-2)
  • 112 -> 192.168.11.20 (besu-sentry-3)
  • 113 -> 192.168.11.21 (besu-sentry-4)
  • 114 -> 192.168.11.22 (besu-sentry-5)
  • 115 -> 192.168.11.23 (besu-rpc-1)
  • 116 -> 192.168.11.24 (besu-rpc-2)
  • 117 -> 192.168.11.25 (besu-rpc-3)

Note: Since the IPs don't follow a simple pattern with VMID, it's recommended to use RPC_URLS with explicit addresses or create a custom mapping in the script.