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