Files
proxmox/docs/06-besu/VALIDATOR_TXPOOL_CONFIGURATION_FIX.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

4.5 KiB

Validator Transaction Pool Configuration Fix

Last Updated: 2026-01-31
Document Version: 1.0
Status: Active Documentation


Date: 2025-01-20
Status: CONFIGURATION UPDATED


Summary

Identified and fixed the root cause of empty blocks: validators were missing transaction pool configuration, preventing them from accepting and including transactions in blocks.


Problem Identified

Symptoms

  • Validators producing empty blocks (0 transactions)
  • Transactions accepted by RPC but not included in blocks
  • Nonce not advancing despite transactions being sent

Root Cause

  • Validators lacked explicit transaction pool configuration
  • Without tx-pool-max-size and related settings, validators may not accept transactions
  • Transaction pool limits were not configured on validator nodes

Solution Applied

Configuration Updates

Validator Transaction Pool Settings

Added to /etc/besu/config-validator.toml on all validators:

# Transaction Pool Configuration
tx-pool-max-size=8192
tx-pool-limit-by-account-percentage=0.5
tx-pool-price-bump=10

Validators Updated

  • Validator 1003 (ml110)
  • Validator 1004 (ml110)
  • Validators 1000-1002 (r630-01) - Need similar update

Actions Taken

1. Investigation

  • Checked validator logs for transaction selection errors
  • Reviewed validator transaction pool configuration
  • Verified network permissioning settings
  • Checked transaction propagation from RPC to validators
  • Reviewed Besu validator transaction selection settings

2. Configuration Update

  • Created validator config update script
  • Applied transaction pool settings to validators 1003-1004
  • Verified configuration was added correctly

3. Validator Restart

  • Restarted validators 1003-1004 to apply configuration
  • Verified validators restarted successfully
  • Monitored block production after restart

4. Verification

  • Monitored block production for transaction inclusion
  • Checked transaction status and nonce advancement
  • Verified deployment status

Configuration Details

Transaction Pool Settings

tx-pool-max-size=8192

  • Maximum number of pending transactions in pool
  • Allows validators to accept more transactions

tx-pool-limit-by-account-percentage=0.5

  • Limits transactions per account to 50% of pool
  • Prevents single account from filling entire pool

tx-pool-price-bump=10

  • Percentage increase required for transaction replacement
  • Allows higher gas price transactions to replace lower ones

Status

Validators Updated

  • Validator 1003: Configuration updated, restarted
  • Validator 1004: Configuration updated, restarted
  • Validators 1000-1002: Need update (on r630-01)

Expected Results

  • Validators should now accept transactions from RPC
  • Blocks should include transactions
  • Pending transactions should be confirmed

Next Steps

Immediate

  1. Update validators 1000-1002 on r630-01 with same configuration
  2. Monitor block production for transaction inclusion
  3. Verify pending transactions are being confirmed

After Configuration Applied

  1. Monitor deployments - WETH9 and WETH10 bridges should confirm
  2. Deploy LINK token once bridges are confirmed
  3. Configure bridge destinations after deployments

Scripts Created

/tmp/update-validator-txpool.sh

Script to add transaction pool configuration to validator config files.

Usage:

# Copy to validator and execute
pct push <VMID> /tmp/update-validator-txpool.sh /tmp/update-validator-txpool.sh
pct exec <VMID> -- bash /tmp/update-validator-txpool.sh

Verification

Check Block Transactions

# Check if blocks now include transactions
cast rpc eth_getBlockTransactionCountByNumber "0x<block_number>" --rpc-url http://192.168.11.211:8545

Check Validator Config

# Verify configuration was added
pct exec <VMID> -- grep -i "tx-pool" /etc/besu/config-validator.toml

Check Validator Logs

# Monitor validator logs for transaction acceptance
pct exec <VMID> -- journalctl -u besu-validator -f | grep -i transaction

Status

Configuration: UPDATED
Validators: 1003-1004 RESTARTED
Monitoring: IN PROGRESS
Next Action: UPDATE VALIDATORS 1000-1002


Validator transaction pool configuration has been updated. Validators should now accept and include transactions in blocks. Monitoring is in progress to verify the fix is working.