Gas System Architecture

Details are provisional and may be updated during development.

Arichain's gas system provides unified fee calculation across multiple VMs.

Unified Gas Abstraction

The Multi-VM Gas Challenge: Different VMs have fundamentally different computational models:

  • EVM: Gas units for each opcode with static costs

  • SVM: Compute units with dynamic pricing based on resource usage

  • Future VMs: Potentially different fee models entirely

Arichain's Unified Solution: A single gas unit that automatically converts to appropriate VM-specific costs:

Gas Conversion Architecture:

User Transaction (Universal Gas Units)
├── Gas Estimation Engine
│   ├── EVM Cost Calculator (1.0x multiplier)
│   ├── SVM Cost Calculator (0.001x multiplier)
│   └── Multi-VM Bridge Calculator (additional fees)
├── Dynamic Price Oracle
│   ├── Network Congestion Monitor
│   ├── VM-Specific Load Balancer
│   └── Real-time Price Adjustment
└── Optimization Engine
    ├── Batch Processing Optimizer
    └── Load Distribution Manager

Gas Calculation Interface

pub trait GasCalculator {
    fn calculate_gas_cost(&self, operation: &Operation) -> u64;
    fn get_vm_multiplier(&self) -> f64;
    fn estimate_inter_vm_cost(&self, operation: &InterVMOperation) -> u64;
}

pub struct UnifiedGasEngine {
    pub gas_calculators: HashMap<VMType, Box<dyn GasCalculator>>,
    pub price_oracle: GasPriceOracle,
    pub optimization_engine: GasOptimizationEngine,
}

pub struct GasCost {
    pub base_cost: u64,
    pub vm_adjusted_cost: u64,
    pub inter_vm_fee: Option<u64>,
    pub total_cost: u64,
}

Last updated