Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- 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>
173 lines
4.5 KiB
Markdown
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.**
|