Aller au contenu

Limite de gas du bloc

Guide tenant compte des forks sur la limite de gas du bloc Ethereum, la cible EIP-1559, le plafond par transaction, le gas utilisé, les frais, le débit et les ressources des nœuds.

Mis à jour

À des fins éducatives uniquement ; ne constitue ni un conseil en investissement ni une recommandation d’investissement. Les investissements peuvent entraîner des pertes.

Réponse directe

La limite de gas du bloc est le plafond de gas d’exécution inscrit dans l’en-tête d’un bloc Ethereum. Les transactions incluses doivent respecter la comptabilité du protocole afin que leur gasUsed cumulé ne dépasse pas gasLimit. Le gas est une unité abstraite ; les règles des opcodes, calldata, mémoire, stockage et remboursements évoluent avec les forks. Il ne compte pas directement les instructions CPU, les octets ou les transactions.

Sur le Mainnet après Fusaka, la référence coordonnée des clients est 60,000,000 gas par bloc, mais l’en-tête effectif fait foi et les préférences des validateurs peuvent déplacer progressivement la limite selon la règle relative au bloc parent. Avec une élasticité de 2, la cible EIP-1559 est 30,000,000 gas ; une utilisation supérieure augmente les frais de base suivants. EIP-7825 plafonne séparément le gas déclaré d’une transaction à 2^24 = 16,777,216 gas, et EIP-7934 impose une limite RLP indépendante de 8,388,608 bytes. Ces valeurs dépendent du réseau et de la date.

Fonctionnement

  1. Fixez chaîne, réseau, hash et numéro du bloc, fork actif, client ou RPC et heure. Lisez gasLimit, gasUsed et baseFeePerGas dans l’en-tête plutôt que dans un tableau statique.
  2. Séparez limite du bloc, cible EIP-1559, gas déclaré, gas réellement utilisé et prix par unité. Séparez aussi gas d’exécution, gas des blobs, octets RLP et comptabilité propre aux L2.
  3. Reproduisez validité et exécution selon le barème actif : gas intrinsèque, calldata, listes d’accès, expansion mémoire, accès froids et chauds, écritures de stockage, précompilés et remboursements. L’estimation dépend de l’état et du block tag.
  4. Rapprochez la capacité en additionnant le gas des reçus ou avec la valeur cumulée finale ; confirmez gasUsed <= gasLimit et tenez compte de l’ordre et des coûts dépendant de l’état. Le nombre de transactions n’est ni la limite ni un TPS fixe.
  5. Appliquez EIP-1559 : avec une élasticité de 2, cible = gasLimit / 2 ; l’utilisation du parent au-dessus ou au-dessous modifie les frais de base suivants. La limite enfant doit rester dans la bande stricte d’environ 1/1024. Les frais de base tarifient la demande ; la limite borne le travail accepté.
  6. Vérifiez les frontières opérationnelles. Une transaction dépassant son plafond est invalide malgré l’espace disponible ; un bloc RLP trop volumineux l’est aussi sous la limite de gas. L’allocation inutilisée est libérée ; le compteur de remboursement est distinct et plafonné par le fork. REVERT préserve le gas restant ; un out-of-gas de niveau supérieur annule l’état et consomme toute l’allocation fournie.
  7. Testez le temps d’exécution de blocs pleins, la croissance de l’état, la propagation, les slots manqués, les reorgs, les capacités des builders et validateurs, la diversité des clients et les changements de paramètres. Comparez blocs et métriques réels avant de juger un débit supérieur durable.

Exemples détaillés

  • Plafond des transferts simples. Avec 60,000,000 gas, un bloc peut théoriquement contenir floor(60,000,000 / 21,000) = 2,857 transferts ETH simples. La cible de 30,000,000 gas en contient 1,428 ; sur un slot idéal de 12-second, cela donne 1,428 / 12 = 119 transactions/second. C’est une borne homogène, pas un TPS observé.
  • Bloc cible mixte. Supposons 400 * 21,000 = 8,400,000 gas de transferts, 80 * 180,000 = 14,400,000 gas de swaps et 6 * 1,200,000 = 7,200,000 gas de déploiements. Total : 30,000,000 gas pour 486 transactions, soit 486 / 12 = 40.5 transactions/second selon le slot supposé.
  • Limite et frais réels. Une transaction déclare 200,000 gas mais utilise gasUsed = 146,000. À 22 gwei, elle coûte 146,000 * 22 = 3,212,000 gwei = 0.003212 ETH ; les 54,000 gas inutilisés ne sont pas facturés. Déclarer 18,000,000 gas dépasse le plafond actuel de 16,777,216 gas et reste invalide malgré l’espace.
  • Réaction des frais de base. Avec gasLimit = 60,000,000, la cible est 30,000,000. À partir de 24 gwei, un parent plein à 60,000,000 gas augmente les frais suivants du maximum 12.5% à 27 gwei ; un parent vide les réduit de 12.5% à 21 gwei. Cela ne modifie ni la limite ni l’utilisation future.

Risques

  • Utiliser une valeur Mainnet obsolète.
  • Appliquer les paramètres Ethereum à une autre chaîne EVM ou L2.
  • Confondre limite du bloc et cible EIP-1559.
  • Confondre limite du bloc et plafond par transaction.
  • Confondre gas déclaré et gas réellement utilisé.
  • Traiter le gas comme unité fixe de CPU, octets ou transactions.
  • Employer un barème obsolète ou ignorer la limite RLP indépendante.
  • Se fier à eth_estimateGas sans l’état et le block tag prévus.
  • Ignorer l’exécution dépendant de l’état et de l’ordre.
  • Confondre allocation inutilisée et compteur de remboursement.
  • Ignorer le gas facturé lors d’un revert ou out-of-gas.
  • Traiter gas d’exécution et gas des blobs comme une ressource.
  • Déduire le TPS uniquement de transferts homogènes.
  • Ignorer slots manqués, reorgs et délais de finalité.
  • Accroître les temps extrêmes d’exécution et de propagation.
  • Accélérer la croissance de l’état et les besoins d’archives.
  • Relever les besoins matériels des validateurs, builders et RPC.
  • Accroître centralisation ou divergence des clients.
  • Manquer les changements de préférences, clients ou forks.
  • Prendre une capacité supérieure pour une garantie de frais réduits ou de demande.

Idées fausses courantes

  • La limite de gas du bloc est une constante universelle d’Ethereum ou de l’EVM.
  • Une limite de 60,000,000 gas impose d’utiliser 60 millions ou fixe aussi la cible EIP-1559 à ce niveau.
  • Diviser la limite par 21,000 donne le TPS réel de la chaîne.
  • Une transaction peut consommer tout le bloc s’il reste de la place ; le plafond actuel est indépendant.
  • Relever la limite réduit automatiquement les frais sans coût pour nœuds, état, propagation, demande ou décentralisation.

Sujets connexes

Sources

Navigation

Rechercher dans le wiki...