Storage

EVM

Definition

Zone de stockage persistante du contrat sur la blockchain. Chaque contrat a son propre storage organisé en slots de 32 bytes. Extrêmement coûteux en gas (20000 gas pour écrire un nouveau slot). Les variables d'état sont en storage. Optimisation : packing de variables, minimiser les écritures.

English version

Persistent storage area of contract on blockchain. Each contract has own storage organized in 32-byte slots. Extremely expensive in gas (20000 gas to write new slot). State variables are in storage.

Exemple de Code

contract StorageExample {
    // Variables d'état : en storage (persistant)
    uint256 public counter;              // Slot 0
    address public owner;                // Slot 1 (20 bytes)
    bool public isActive;                // Slot 1 (1 byte, packed avec owner)

    // Optimisation : packing
    uint128 public value1;               // Slot 2 (16 bytes)
    uint128 public value2;               // Slot 2 (16 bytes, packed)

    // Éviter écritures storage inutiles
    function increment() public {
        counter++; // SSTORE : 5000 gas (slot déjà utilisé)
    }
}

Pratique ce concept sur Solingo

Maîtrise Storage avec des exercices interactifs et un IDE intégré.

Commencer gratuitement