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

173 lines
4.5 KiB
Markdown

# 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:
```toml
# 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:**
```bash
# 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
```bash
# Check if blocks now include transactions
cast rpc eth_getBlockTransactionCountByNumber "0x<block_number>" --rpc-url http://192.168.11.211:8545
```
### Check Validator Config
```bash
# Verify configuration was added
pct exec <VMID> -- grep -i "tx-pool" /etc/besu/config-validator.toml
```
### Check Validator Logs
```bash
# 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.**