La transaction hors gaz est incluse dans la blockchain même si elle est inversée?

sinoTrinity

La transaction hors gaz est incluse dans la blockchain même si elle est inversée?


Dans mon testnet privé, j’ai envoyé une transaction qui manque de gaz avant la fin, qui peut être vue à partir de gasUsed: 28666 = gas: 28666 et de l’ status: "0x0" échec status: "0x0" gasUsed: 28666 = gas: 28666 Je pensais qu’il ne serait pas intégré à la blockchain. Mais c’était (dans le numéro de bloc 1456). Est-ce attendu? Si oui, un spammeur ne continuerait-il pas d’envoyer des transactions avec une limite de gaz faible et de remplir tous les blocs?

 > eth.getTransaction("0xe97d2b5e6f109c7d299dcd8673474d9853363c611bf1d973062cfcbc26a7ede7") { blockHash: "0x907826c61038402c394d2e297b03643929cef97fb943574e8312a09fa84387c2", blockNumber: 1456, from: "0xf6de496ec5601d74937ddd77af09c8cd4ba41ab5", gas: 28666, gasPrice: 22000000000, hash: "0xe97d2b5e6f109c7d299dcd8673474d9853363c611bf1d973062cfcbc26a7ede7", input: "0xa9059cbb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029a2241af62c0000", nonce: 8, r: "0xb9d8c5f664887c10070681f2c35d3baa8f1e4d57439f3e93bafc920b2a126f90", s: "0x7e969e860765a7102c8bad833c672df08b5d760f1a2d2aac717857e401653ae8", to: "0x091e99d1fbf1d18b7c42aeb6938dec588b2aae9c", transactionIndex: 0, v: "0x42", value: 0 } > eth.getTransactionReceipt("0xe97d2b5e6f109c7d299dcd8673474d9853363c611bf1d973062cfcbc26a7ede7") { blockHash: "0x907826c61038402c394d2e297b03643929cef97fb943574e8312a09fa84387c2", blockNumber: 1456, contractAddress: null, cumulativeGasUsed: 28666, from: "0xf6de496ec5601d74937ddd77af09c8cd4ba41ab5", gasUsed: 28666, logs: [], logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", status: "0x0", to: "0x091e99d1fbf1d18b7c42aeb6938dec588b2aae9c", transactionHash: "0xe97d2b5e6f109c7d299dcd8673474d9853363c611bf1d973062cfcbc26a7ede7", transactionIndex: 0 } 

Réponses


 Kingmoz

Est-ce attendu?

Oui. Si les transactions ayant échoué ne sont pas incluses dans un bloc, un spammeur peut envoyer des transactions ayant échoué en permanence avec un prix du gaz élevé, qui a la priorité dans les paramètres de mineur par défaut, afin de réduire le taux de création de bloc car les mineurs sont « bloqués » par ces transactions ayant échoué.

Si oui, un spammeur ne continuerait-il pas d’envoyer des transactions avec une limite de gaz faible et de remplir tous les blocs?

Il y a un coût constant de gaz (21000 gaz) pour envoyer une transaction pour éviter d’envoyer des transactions de spam sans aucun coût.

Ethereum utilise un concept appelé limite de gaz en bloc pour déterminer le nombre de transactions pouvant être incluses dans un bloc. La limite de gaz en bloc est actuellement de ~ 8 M. Le coût est donc très élevé pour un spammeur d’attaquer le réseau en créant des transactions.

sinoTrinity

Maintenant, je comprends qu’un spammeur ne peut pas continuer à envoyer des transactions car il y a un coût d’essence minimal pour chaque transaction. Je ne sais toujours pas comment l’inclusion de transactions hors gaz dans la blockchain pourrait empêcher le spam plus efficacement que de ne pas les inclure.

Kingmoz

La seule façon de mettre à jour le solde d’un compte consiste à effectuer une transaction. L’inclusion de transactions ayant échoué dans la blockchain signifie que l’expéditeur de la transaction doit payer pour cela, ce qui peut éviter aux attaquants d’envoyer des transactions consommatrices de temps à plusieurs reprises sans aucun coût.

sinoTrinity

Cette pénalité s’applique toujours lorsque les transactions ayant échoué ne sont pas incluses, mais toujours facturées. Non? Peut-être est-ce pour empêcher les mineurs de tricher en mentant sur une transaction qui ne paie pas assez de gaz quand elle le fait?

Kingmoz

Maybe is it to prevent miners from cheating by lying about a transaction not paying enough gas when it does? – Oui, la meilleure façon pour les autres nœuds de vérifier la transaction est de réexécuter le contrat au lieu de faire confiance au mineur.

 

#la, blockchain, dans, elle, est, gaz, hors, incluse, inversée, même, si, transaction

 

yahoo

Laisser un commentaire

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