Y a-t-il une bonne explication pour le gaz?

MarcS82

Y a-t-il une bonne explication pour le gaz?


Je souhaite déployer un contrat avec de la truffe.

Mon compte contient 0,02 éther (20000000000000000 wei). J’ai mis le gas: 4612390 dans le truffle.js et je ne gasPrice rien pour gasPrice . eth.gasPrice renvoie 1000000000 wei. Si je multiplie le gasPrice gas par du gas j’obtiens 4 612 390 000 000 000, ce qui est inférieur à mes 20 000 000 000 000 000. Mais j’ai eu l’erreur insufficient funds for gas * price + value . Si je fixais le prix du gaz à un niveau bas, intrinsic gas too low .

Existe-t-il un moyen de connaître la quantité de gaz nécessaire pour déployer mon contrat? Quelle est la différence entre gas et gasPrice ?

Réponses


 Liquidation Mike A.

Je peux répondre à votre question sur la différence entre le gaz et le prix du gaz.

Le coût de transaction est égal au gaz multiplié par le prix du gaz. Le gaz n’a pas d’unité tandis que l’unité de prix du gaz est wei. Le gaz utilisé par la même transaction sera toujours le même (c’est une valeur constante) et dépend de la complexité de la transaction. Le prix du gaz en revanche peut varier. C’est ainsi parce que les mineurs doivent payer leur électricité en monnaie traditionnelle. Imaginez que le prix de l’éthereum baisse tandis que le prix de l’électricité augmente en même temps. Si le prix du gaz reste le même, les mineurs paieront plus d’électricité qu’ils ne sont récompensés à l’éthereum. Le prix du gaz doit donc être augmenté.

Vous pouvez en savoir plus à ce sujet ici: https://hackernoon.com/ether-purchase-power-df40a38c5a2f

MarcS82

Merci. Cela signifie-t-il que je pourrais essayer de déployer mon contrat sur testnet pour savoir combien de gaz est nécessaire?

Liquidation Mike A.

Oui, vous pouvez par exemple aller sur remix.ethereum.org et coller votre code à la place de celui que vous verrez par défaut. Ensuite, sur le côté droit, choisissez l’onglet « Exécuter » et sélectionnez JavaScript VM for Environment. Cliquez ensuite sur le bouton rose « Créer ». Votre contrat sera déployé. Ensuite, dans la section centrale, tout en bas, cliquez sur l’icône avec deux flèches vers le haut. Vous verrez la console et si le déploiement s’est bien passé, vous devriez voir deux boutons « Détails » et « Débogage ». Cliquez sur « Détails ». Vous y trouverez des informations sur votre transaction.

Liquidation Mike A.

Vous y trouverez des informations sur votre transaction ainsi que le coût de transaction, qui est la valeur que vous recherchez. Oh, encore une chose. Malheureusement, d’après ce que je peux voir, dans le remix IDE « gas » signifie « gas * gas price », donc cela peut être un peu déroutant si vous lisez ma réponse précédente.


 foobar

Tout d’abord, essayons de clarifier ce qu’est le gaz et le prix du gaz.

Si vous voulez exécuter quelque chose sur la machine virtuelle Ethereum (EVM), comme une transaction, le gaz est nécessaire pour le calcul. Plus précisément, chaque opération a une quantité bien définie de gaz qu’elle utilise. Par conséquent, pour une transaction, le gaz nécessaire est égal à la somme du gaz nécessaire pour chaque opération EVM. Vous pouvez spécifier une limite supérieure sur la quantité de gaz qu’une transaction devrait nécessiter au maximum. Si vous souhaitez en savoir plus, vous pouvez consulter yellowpaper.io , où tout cela est discuté plus en détail. Notez que la création (ou le déploiement) d’un Smart Contract coûte également du gaz, car vous invoquez le constructeur et stockez tout le code sur la Blockchain.

On pourrait se demander, pourquoi existe-t-il une chose telle que le gaz en premier lieu? Eh bien, si votre contrat contenait, par exemple,

 function infiniteLoop() public { while (true) { // do some stuff } } 

une transaction appelant infiniteLoop() ne se terminerait jamais et les mineurs s’exécuteraient à l’infini. L’idée du gaz est d’empêcher cela: s’il n’y a que peu de gaz pouvant être utilisé, l’exécution doit s’arrêter à un moment donné. Vous pouvez utiliser le compilateur Solidity solc pour obtenir une estimation de la quantité de gaz utilisée par une fonction. La même chose peut être faite en ligne en utilisant remix.ethereum.org (Compilez le contrat et cliquez sur le constructeur pour obtenir une estimation des coûts de gaz de déploiement).

Passons maintenant au gasPrice. Imaginez, le gaz ne coûterait rien. Vous pourriez alors, théoriquement, écrire un contrat faisant un travail inutile mais intense et fixer une limite de gaz déraisonnable. De plus, pourquoi les mineurs seraient-ils même prêts à exécuter la transaction en votre nom? Le gasPrice, qui indique ce que vous êtes prêt à payer par quantité de gaz, incite ainsi les mineurs du réseau à exécuter votre transaction et à l’ajouter à un bloc.

N’ayant pas vu votre contrat, je ne peux que deviner ce qui a mal tourné. Il se pourrait en effet que vous ayez spécifié une limite de gaz qui n’était pas assez élevée.

 

#(une, #pour, a-t-il, Bonne, explication, gaz, Le, y

 

yahoo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *