Files
proxmox/docs/06-besu/REQUIRED_CONDITIONS_SUMMARY.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.9 KiB

Required Conditions for Transaction Confirmation

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


Date: 2025-01-20
Status: 🔴 CRITICAL ISSUE IDENTIFIED


Executive Summary

Root Cause: Deployment transactions are missing gas price, preventing them from being included in blocks.


Required Conditions

1. ⚠️ Gas Price (CRITICAL - CURRENTLY FAILING)

Requirements

  • Minimum Gas Price: 1,000,000,000 wei (1 gwei)

    • Source: chain138.json configuration
    • Network minimum enforced by Besu nodes
  • Recommended Gas Price: 1,100,000,000 wei (1.1 gwei)

    • Calculated: Minimum + 10% safety buffer
    • Ensures transaction inclusion even if network minimum increases

Current Status

  • Transaction gas price: N/A (NOT SET!)
  • Minimum requirement: 1 gwei
  • Recommended: 1.1 gwei
  • Status: FAILING - This is blocking transaction confirmation

Solution

# Use explicit gas price in deployment
forge script ... --gas-price 1100000000
# OR
cast send ... --gas-price 1100000000

2. Account Permissioning (PASSING)

Requirements

  • Deployer account must be in allowlist (if permissioning enabled)
  • Or permissioning must be disabled

Current Status

  • Core RPC: permissions-accounts-config-file-enabled=false
  • Status: PASSING - Not blocking transactions

Configuration

# config-rpc-core.toml
permissions-accounts-config-file-enabled=false

3. Transaction Pool Access (PASSING)

Requirements

  • TXPOOL API must be enabled on RPC node
  • Validators must have access to transaction pool
  • Network connectivity must be maintained

Current Status

  • Core RPC: TXPOOL API enabled
  • Status: PASSING - Transaction pool accessible

Configuration

# config-rpc-core.toml
rpc-http-api=["ETH","NET","WEB3","TXPOOL","QBFT","ADMIN","DEBUG","TRACE"]

4. Transaction Validity (PASSING)

Requirements

  • Valid signature
  • Correct nonce
  • Sufficient balance
  • Adequate gas limit

Current Status

  • Nonce: 0x3330 (13104) - Correct
  • Signature: Valid (transaction created)
  • Balance: Sufficient
  • Status: PASSING - Transaction structure valid

5. ⚠️ EIP-1559 Compatibility (POTENTIAL ISSUE)

Requirements

  • If London fork is enabled, transactions need proper fee structure:
    • maxFeePerGas: Maximum total fee
    • maxPriorityFeePerGas: Priority fee for miner
    • Base fee calculated by network

Current Status

  • London Fork: Not enabled in genesis
  • Status: UNKNOWN - Legacy gas price should work

Investigation Needed

  • Check if EIP-1559 is actually enabled despite genesis settings
  • Verify transaction format (legacy vs EIP-1559)

Critical Finding

🔴 Missing Gas Price

Problem: Deployment transactions do not have a gas price set.

Evidence:

{
  "transaction": {
    "gasPrice": null,
    "maxFeePerGas": null,
    "maxPriorityFeePerGas": null
  }
}

Impact:

  • Transactions cannot be included in blocks
  • Network minimum gas price not met
  • Validators reject transactions silently

Solution:

  • Redeploy with explicit gas price
  • Use minimum 1.1 gwei (1,100,000,000 wei)
  • Verify gas price in broadcast cache after deployment

Action Plan

Immediate Actions

  1. Identify issue: Gas price not set
  2. Fix deployment: Add explicit gas price
  3. Redeploy: Use correct gas price
  4. Verify: Check transaction includes gas price

Verification Steps

# 1. Check minimum gas price
jq '.gasPrice' smom-dbis-138/config/chain138.json

# 2. Calculate required gas price
bash scripts/calculate-chain138-gas-price.sh

# 3. Deploy with explicit gas price
forge script ... --gas-price 1100000000

# 4. Verify transaction has gas price
jq '.transactions[0].transaction.gasPrice' broadcast/.../run-latest.json

Summary

Passing Conditions

  • Account permissioning: Disabled (not blocking)
  • Transaction pool: Accessible
  • Transaction validity: Valid structure
  • Network status: Operational

Failing Conditions

  • Gas price: NOT SET (CRITICAL)

Unknown Conditions

  • EIP-1559 compatibility: Needs verification

Root Cause

Primary Issue: Deployment transactions are missing gas price.

Why:

  • Forge script may not be setting gas price correctly
  • Gas price calculation may not be applied
  • Transaction format issue

Fix:

  • Explicitly set gas price in deployment commands
  • Use minimum 1.1 gwei (1,100,000,000 wei)
  • Verify gas price in transaction before broadcasting

Status: 🔴 CRITICAL - GAS PRICE NOT SET
Priority: HIGH - This is blocking all deployments
Solution: Add explicit gas price to deployment commands