chore: sync all changes to Gitea
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- Config, docs, scripts, and backup manifests - Submodule refs unchanged (m = modified content in submodules) Made-with: Cursor
This commit is contained in:
78
scripts/besu/enable-trace-api-vmid2201.sh
Normal file
78
scripts/besu/enable-trace-api-vmid2201.sh
Normal file
@@ -0,0 +1,78 @@
|
||||
#!/usr/bin/env bash
|
||||
# Enable TRACE API on the public RPC node (VMID 2201) so Blockscout can index internal
|
||||
# transactions and block rewards. Run from Proxmox host that has VMID 2201, or set
|
||||
# RPC_VM_2201_HOST=root@192.168.11.12 to run via SSH.
|
||||
# See: explorer-monorepo/docs/RPC_FUNCTIONALITY_AND_BLOCKSCOUT_TRACE.md
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
VMID="${RPC_VMID_2201:-2201}"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
[ -f "$REPO_ROOT/config/ip-addresses.conf" ] && source "$REPO_ROOT/config/ip-addresses.conf" 2>/dev/null || true
|
||||
|
||||
RPC_HOST="${RPC_VM_2201_HOST:-root@${PROXMOX_R630_02:-192.168.11.12}}"
|
||||
[[ "$RPC_HOST" != *"@"* ]] && RPC_HOST="root@$RPC_HOST"
|
||||
|
||||
run_in_vmid() {
|
||||
local cmd="$1"
|
||||
if command -v pct &>/dev/null && pct list 2>/dev/null | grep -q "^$VMID "; then
|
||||
pct exec "$VMID" -- bash -c "$cmd"
|
||||
else
|
||||
ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 "$RPC_HOST" "pct exec $VMID -- bash -c $(printf '%q' "$cmd")"
|
||||
fi
|
||||
}
|
||||
|
||||
echo "=============================================="
|
||||
echo "Enable TRACE API on VMID $VMID (public RPC)"
|
||||
echo "=============================================="
|
||||
|
||||
if ! command -v pct &>/dev/null || ! pct list 2>/dev/null | grep -q "^$VMID "; then
|
||||
echo "Running via SSH: $RPC_HOST"
|
||||
fi
|
||||
|
||||
# Service uses config-rpc-public.toml (see besu-rpc.service ExecStart); try that first
|
||||
CONFIG_PATHS="/etc/besu/config-rpc-public.toml /etc/besu/config-rpc.toml /etc/besu/config.toml"
|
||||
CONFIG_FILE=""
|
||||
for p in $CONFIG_PATHS; do
|
||||
if run_in_vmid "test -f $p" 2>/dev/null; then
|
||||
CONFIG_FILE="$p"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z "$CONFIG_FILE" ]; then
|
||||
echo "No Besu config found in VMID $VMID. List /etc/besu/:"
|
||||
run_in_vmid "ls -la /etc/besu/" 2>/dev/null || true
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Config: $CONFIG_FILE"
|
||||
|
||||
if run_in_vmid "grep -q '\"TRACE\"' $CONFIG_FILE" 2>/dev/null; then
|
||||
echo "TRACE already present. No change."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Add TRACE (match both ["ETH","NET","WEB3"] and ["ETH","NET","WEB3","TXPOOL","ADMIN"])
|
||||
run_in_vmid "sed -i 's/rpc-http-api=\[\"ETH\",\"NET\",\"WEB3\"\]/rpc-http-api=[\"ETH\",\"NET\",\"WEB3\",\"TRACE\"]/' $CONFIG_FILE" 2>/dev/null || true
|
||||
run_in_vmid "sed -i 's/rpc-http-api=\[\"ETH\",\"NET\",\"WEB3\",\"TXPOOL\",\"ADMIN\"\]/rpc-http-api=[\"ETH\",\"NET\",\"WEB3\",\"TXPOOL\",\"ADMIN\",\"TRACE\"]/' $CONFIG_FILE" 2>/dev/null || true
|
||||
run_in_vmid "sed -i 's/rpc-ws-api=\[\"ETH\",\"NET\",\"WEB3\"\]/rpc-ws-api=[\"ETH\",\"NET\",\"WEB3\",\"TRACE\"]/' $CONFIG_FILE" 2>/dev/null || true
|
||||
|
||||
if ! run_in_vmid "grep -q '\"TRACE\"' $CONFIG_FILE" 2>/dev/null; then
|
||||
echo "Could not add TRACE. Edit $CONFIG_FILE inside VMID $VMID and add TRACE, then restart Besu."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "TRACE added. Restarting Besu..."
|
||||
run_in_vmid "systemctl restart besu-rpc 2>/dev/null || systemctl restart besu 2>/dev/null || true"
|
||||
sleep 5
|
||||
|
||||
RPC_IP="${RPC_PUBLIC_1:-192.168.11.221}"
|
||||
if curl -sS --max-time 10 -X POST -H "Content-Type: application/json" \
|
||||
-d '{"jsonrpc":"2.0","method":"trace_block","params":["0x1"],"id":1}' \
|
||||
"http://${RPC_IP}:8545" | grep -q '"result"'; then
|
||||
echo "OK: trace_block returns result (TRACE API enabled)."
|
||||
else
|
||||
echo "WARN: trace_block still failed. Check: pct exec $VMID -- journalctl -u besu-rpc -n 30"
|
||||
fi
|
||||
Reference in New Issue
Block a user