Vous l'utilisez sans trop le comprendre ? Et pourtant le Gas est un élément fondamental d'Ethereum car c'est ce qui donne sa propriété utilitaire à l'Ether (ETH).

Chaque fois que vous utilisez un smart contract cela demande à un mineur d'exécuter du code logiciel avec les paramètres de votre transaction.

Exemple : "Envoyer 1 ETH de A vers B" va demander au mineur d'exécuter une fonction qui va vérifier si vous disposez de cette somme puis de la transférer à B". Ces opérations vont consommer du Gas, un peu comme parcourir des kilomètres avec votre voiture va consommer de l'essence. Schématiquement, on peut dire que plus le smartcontract est compliqué et long, plus cela va consommer de Gas.

Gas Limit

Quand vous réalisez une transaction ou participez à une ICO il vous est souvent demandé d'indiquer un "Gas Limit". C'est une provision que vous faites au mineur qui pourra venir prendre la part qui lui est dû.

Exemple : quand vous prenez de l'essence à la pompe, la station service va faire une vérification auprès de votre banque et va bloquer 150 euros. Cette somme sera mise à disposition de la station service. Quand vous reposez le pistolet à essence, la station service calcule votre prix et vous rend la différence.

Gas Price

Vous avez donc définie une limite de "consommation" pour le mineur, maintenant vous devez définir le prix du Gas. Cela correspond au prix de l'essence qu'utilisera le mineur pour exécuter le smartcontract à votre place. Plus le prix est élevé plus votre transaction sera rapide. Il est important de bien choisir le prix du Gas, comme je l'explique dans cet article.

Le prix du Gas est indiqué en Gwei. 1 Gwei correspond à 0.000000001 Ether. Si vous avez défini une limite à 21 000 et un Gas Price à 10 Gwei, votre transaction coutera 0.00021 Ether ($0.03)

Le prix indiqué prend pour postulat que l'ensemble de l'enveloppe de Gas limit sera utilisé. Il est important de comprendre que le mineur ne peut pas surconsommer. La différence vous sera retournée. Vous pouvez donc indiquer une valeur assez haute sans incidence.

Si Gas Limit est trop faible ?

Votre transaction sera rejetée avec comme message d'erreur "Warning! Error encountered during contract execution [Out of gas] " Il vous faudra la refaire en indiquant une valeur plus haute. Je vous conseille de regarder les champs "Gas Limit" et "Gas Used by Transaction" sur une transaction valide de même type afin de voir la consommation réel du smartcontract.

Le contrat EOS_TokenSale utilise plus de 90 000 Gas limite. La transaction est en "Out of Gas"
Cette autre transaction valide sur EOS_TokenSale à utilisé 90 558 de Gas Limit.

Si Gas Price est trop faible ?

Si votre Gas Price est trop faible la transaction sera mise en bas du panier et elle pourra prendre plusieurs jours avant d'être exécuté. Si le Gas est vraiment trop faible, il faudra la re-transmettre en conservant le même numéro de transaction "Nonce" et en indiquant un Gas Price significativement plus haut.