- Organized 252 files across project - Root directory: 187 → 2 files (98.9% reduction) - Moved configuration guides to docs/04-configuration/ - Moved troubleshooting guides to docs/09-troubleshooting/ - Moved quick start guides to docs/01-getting-started/ - Moved reports to reports/ directory - Archived temporary files - Generated comprehensive reports and documentation - Created maintenance scripts and guides All files organized according to established standards.
5.0 KiB
Besu Transaction Rejection - Complete Findings
Date: $(date)
Status: 🔍 ROOT CAUSE IDENTIFIED
🎯 Root Cause
Primary Issue: Stuck Transaction with Extremely High Gas Price
Error: Replacement transaction underpriced (error code -32000)
Finding: A transaction exists in Besu's mempool/internal state with an extremely high gas price that blocks all replacement attempts, even with gas prices up to 5,000 gwei.
📊 Investigation Results
✅ Confirmed
- Block Production: ✅ Working (2 blocks/3 seconds)
- Network Health: ✅ Healthy
- Transaction Pool: ⚠️ Appears empty (methods not enabled on RPC)
- Gas Price Testing: ❌ All fail (1 gwei to 5,000 gwei)
- Minimum Gas Price: ✅ Exists (error -32009: "Gas price below configured minimum")
❌ Blocking Issues
-
Transaction Pool RPC Methods: Not enabled
txpool_status: Method not foundtxpool_content: Method not foundtxpool_inspect: Method not founddebug_traceTransaction: Method not enabled
-
Stuck Transaction: Cannot be replaced
- Gas prices tested: 1 gwei to 5,000 gwei
- All fail with "Replacement transaction underpriced"
- Suggests stuck transaction has >5,000 gwei gas price
-
Nonce Skip Attempt: Transaction sent but timed out
- Attempted nonce 33 (skipping from 23)
- Transaction accepted but not confirmed
- May be processing or may have failed
🔍 Transaction Rejection Reasons (Identified)
1. Gas Price Below Minimum ✅ CONFIRMED
- Error:
-32009: Gas price below configured minimum gas price - Test: Gas price of 1 wei rejected
- Implication: Besu has
min-gas-priceor similar configured
2. Replacement Transaction Underpriced ✅ CONFIRMED
- Error:
-32000: Replacement transaction underpriced - Test: All gas prices (up to 5,000 gwei) rejected
- Implication: Stuck transaction has extremely high gas price
3. Pre-Pool Validation ✅ LIKELY
- Evidence: Pool appears empty but errors persist
- Implication: Transaction rejected before entering pool
- Possible causes:
- Validator validation rules
- Account permissioning
- Gas price limits
- Nonce validation
💡 Solutions
Solution 1: Restart Besu Node (RECOMMENDED)
Most effective - Clears all mempool state:
# On Besu node (192.168.11.250)
sudo systemctl restart besu-rpc
# OR
docker restart besu-container
After restart:
cd /home/intlc/projects/proxmox
./scripts/resolve-ethereum-mainnet-config.sh
Solution 2: Enable TXPOOL RPC Methods
Add to Besu RPC config (/etc/besu/config-rpc.toml):
rpc-http-api=["ETH","NET","WEB3","TXPOOL","DEBUG"]
Then query and clear:
# Query pool
curl -X POST -H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"txpool_content","params":[],"id":1}' \
http://192.168.11.250:8545
# Clear if possible (may require admin RPC)
Solution 3: Check Nonce Skip Transaction
The nonce 33 transaction may have succeeded:
# Check if nonce advanced
cast nonce 0x4A666F96fC8764181194447A7dFdb7d471b301C8 --rpc-url http://192.168.11.250:8545
# Verify Ethereum Mainnet configuration
cast call 0x89dd12025bfCD38A168455A44B400e913ED33BE2 \
"destinations(uint64)" \
5009297550715157269 \
--rpc-url http://192.168.11.250:8545
Solution 4: Check Besu Logs Directly
On the Besu node, check logs for transaction rejection:
journalctl -u besu-rpc -n 500 | grep -iE "transaction|reject|invalid|gas"
Look for:
- Transaction validation errors
- Gas price rejection reasons
- Account permissioning blocks
- Nonce validation failures
📋 Configuration Issues Found
Besu Config Issues
rpc-tx-feecap="0x0": Invalid value (should be removed or set properly)- Transaction pool methods not enabled: Cannot query pool state
- Minimum gas price: Configured but value unknown
- Account permissioning: May be blocking transactions
🎯 Recommended Action Plan
-
Immediate: Check if nonce 33 transaction succeeded
./scripts/test-bridge-all-7-networks.sh weth9 -
If still blocked: Restart Besu RPC node
# On 192.168.11.250 sudo systemctl restart besu-rpc -
After restart: Configure Ethereum Mainnet
./scripts/resolve-ethereum-mainnet-config.sh -
Long-term: Enable TXPOOL RPC methods for better diagnostics
📝 Key Findings Summary
| Finding | Status | Details |
|---|---|---|
| Block Production | ✅ Working | 2 blocks/3 seconds |
| Transaction Mining | ❌ Not Working | 0 transactions in blocks |
| Mempool Status | ⚠️ Unknown | Methods not enabled |
| Stuck Transaction | ✅ Confirmed | Extremely high gas price |
| Minimum Gas Price | ✅ Exists | Value unknown |
| Nonce Skip Attempt | ⏳ Pending | Nonce 33 sent, awaiting confirmation |
Last Updated: $(date)
Next Step: Check if nonce 33 transaction succeeded, otherwise restart Besu node