- 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.
141 lines
4.0 KiB
Markdown
141 lines
4.0 KiB
Markdown
# QBFT Transaction Resolution - Complete Solution
|
|
|
|
**Date**: $(date)
|
|
**Status**: ✅ **TXPOOL AND ADMIN ENABLED - STUCK TRANSACTION IDENTIFIED**
|
|
|
|
---
|
|
|
|
## 🎯 Summary
|
|
|
|
After enabling TXPOOL and ADMIN RPC methods on the Besu RPC node, we successfully identified the stuck transaction blocking Ethereum Mainnet configuration.
|
|
|
|
---
|
|
|
|
## ✅ Completed Actions
|
|
|
|
### 1. Enabled TXPOOL RPC Methods
|
|
- **Script**: `scripts/enable-txpool-rpc-ssh.sh`
|
|
- **Result**: ✅ TXPOOL module enabled on RPC node (192.168.11.250)
|
|
- **Methods Available**: `txpool_besuTransactions` (working)
|
|
|
|
### 2. Enabled ADMIN RPC Methods
|
|
- **Script**: `scripts/enable-admin-rpc-ssh.sh`
|
|
- **Result**: ✅ ADMIN module enabled on RPC node
|
|
- **Note**: `admin_removeTransaction` method not available in this Besu version
|
|
|
|
### 3. Identified Stuck Transaction
|
|
- **Hash**: `0x359e4e1501d062e32077ca5cb854c46ef7df4b0233431befad1321c0c7a20670`
|
|
- **Nonce**: 23
|
|
- **From**: `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
|
|
- **Gas Price**: 20 gwei (20,000,000,000 wei)
|
|
- **Status**: Stuck in transaction pool
|
|
|
|
### 4. Found Additional Stuck Transactions
|
|
- **Nonce 24**: Gas price 10,000 gwei (extremely high)
|
|
- **Nonce 74**: Future transaction
|
|
- **Total**: 7 transactions in pool
|
|
|
|
---
|
|
|
|
## 🔍 Key Findings
|
|
|
|
### Transaction Pool Analysis
|
|
|
|
Using `txpool_besuTransactions`, we found:
|
|
|
|
1. **7 transactions** in the pool
|
|
2. **3 transactions** from deployer address:
|
|
- Nonce 23: 20 gwei (stuck - blocking)
|
|
- Nonce 24: 10,000 gwei (extremely high)
|
|
- Nonce 74: 10 gwei (future transaction)
|
|
|
|
3. **Current on-chain nonce**: 23 (matches stuck transaction)
|
|
|
|
### Besu RPC Methods Available
|
|
|
|
- ✅ `txpool_besuTransactions` - Returns all transactions in pool
|
|
- ❌ `txpool_content` - Not available
|
|
- ❌ `txpool_status` - Not available
|
|
- ❌ `txpool_clear` - Not available
|
|
- ❌ `admin_removeTransaction` - Not available in this Besu version
|
|
|
|
---
|
|
|
|
## 🔧 Resolution Options
|
|
|
|
### Option 1: Replace Transaction with Higher Gas Price (RECOMMENDED)
|
|
|
|
Since the stuck transaction has a gas price of 20 gwei, send a replacement with a much higher gas price:
|
|
|
|
```bash
|
|
# Use gas price > 10,000 gwei to exceed nonce 24's gas price
|
|
cast send <contract> <function> <args> \
|
|
--rpc-url http://192.168.11.250:8545 \
|
|
--private-key $PRIVATE_KEY \
|
|
--gas-price 50000000000000 \ # 50,000 gwei
|
|
--nonce 23 \
|
|
--gas-limit 200000
|
|
```
|
|
|
|
**Note**: Besu requires the replacement gas price to be higher than the existing transaction by the `tx-pool-price-bump` percentage (default 10%).
|
|
|
|
### Option 2: Restart Besu RPC Node
|
|
|
|
Restarting the RPC node will clear its local mempool, but the transaction may persist in validator nodes:
|
|
|
|
```bash
|
|
# On Proxmox host
|
|
pct exec 2500 -- systemctl restart besu-rpc
|
|
```
|
|
|
|
### Option 3: Use Different Deployer Account
|
|
|
|
Create and fund a new account to bypass the stuck nonce:
|
|
|
|
```bash
|
|
# Create new account
|
|
cast wallet new
|
|
|
|
# Fund from existing account
|
|
cast send <new-address> --value 10ether \
|
|
--rpc-url http://192.168.11.250:8545 \
|
|
--private-key $PRIVATE_KEY
|
|
```
|
|
|
|
### Option 4: Wait for Transaction Retention Period
|
|
|
|
The transaction pool has a retention period (`tx-pool-retention-hours`, default 6 hours). After this period, invalid transactions should be removed automatically.
|
|
|
|
---
|
|
|
|
## 📋 Scripts Created
|
|
|
|
1. **`scripts/enable-txpool-rpc-ssh.sh`** - Enable TXPOOL via SSH
|
|
2. **`scripts/enable-admin-rpc-ssh.sh`** - Enable ADMIN via SSH
|
|
3. **`scripts/resolve-stuck-transaction-besu-qbft.sh`** - Comprehensive resolution script
|
|
4. **`scripts/remove-stuck-transaction-besu.sh`** - Remove specific transaction
|
|
|
|
---
|
|
|
|
## 🎯 Next Steps
|
|
|
|
1. **Try replacement transaction** with gas price > 50,000 gwei
|
|
2. **If replacement fails**, restart all Besu nodes (validators + RPC)
|
|
3. **If still stuck**, use a different deployer account
|
|
4. **Monitor transaction pool** using `txpool_besuTransactions`
|
|
|
|
---
|
|
|
|
## 📊 Current Status
|
|
|
|
- ✅ TXPOOL enabled
|
|
- ✅ ADMIN enabled
|
|
- ✅ Stuck transaction identified (nonce 23)
|
|
- ⏳ Waiting for replacement transaction or node restart
|
|
|
|
---
|
|
|
|
**Last Updated**: $(date)
|
|
**Resolution**: ⏳ **IN PROGRESS - REPLACEMENT TRANSACTION PENDING**
|
|
|