Temps de lecture: 4 minutes
Ce guide peut vous aider à trouver ce méchant bogue qui vous dérange et les outils pour les corriger.
Le débogage est crucial pour tout cycle de développement logiciel ; les humains font toujours des erreurs. C'est pourquoi nous sommes imbattables ; nous faisons des erreurs et en apprenons. Le débogage est un processus qui consiste à déterminer où notre code est en retard, à le corriger et à en apprendre davantage sur cette erreur afin qu'elle ne se répète pas.
Le développement de contrats intelligents est crucial pour créer des applications blockchain. Mais comme pour tout autre cycle de développement logiciel, le débogage des contrats intelligents peut parfois être difficile, et comme ici nous avons souvent affaire à une énorme somme d'argent, nous ne pouvons rien laisser au hasard. Nous devons être parfaits pour rédiger des contrats intelligents et parfaits pour le débogage. C'est pourquoi nous avons créé ce blog afin que vous puissiez en apprendre davantage sur le débogage des meilleurs.
Avant de corriger quoi que ce soit, nous devons connaître le problème, alors commençons par identifier différents types de bogues dans le développement de contrats intelligents.
Erreurs courantes
Dans cette section, nous explorerons différents types de bogues que les développeurs de contrats intelligents rencontrent régulièrement.
- Erreur de syntaxe:– Cette erreur est facile à corriger. Cela se produit lorsqu'un développeur fait une erreur de code qui empêche l'ordinateur de le comprendre, comme un point-virgule manquant.
- Erreur logique:- Ce type d'erreur peut parfois être difficile à trouver. Cela n'empêche pas l'exécution, mais la fonctionnalité du programme est altérée. Ce programme se comporte de manière inattendue comme un contrat intelligent qui transfère de l'argent à la mauvaise adresse lors de l'envoi d'argent d'un compte à un autre.
- Erreur d'exécution:- Ces erreurs sont difficiles à prévoir. Ils arrivent à un moment inattendu et dans des endroits inattendus. Cela se produit lors de l'exécution de contrats intelligents et se produit en raison d'une gestion inefficace des exceptions. Par exemple, cela peut se produire lorsqu'un contrat ne parvient pas à gérer des entrées inattendues ou tente d'effectuer une opération interdite par la blockchain sous-jacente. Par exemple, un contrat tente de transférer plus d'argent que le paramètre autorisé.
- Erreurs d'exécution annulées:- Cela se produit lorsque l'utilisateur fait une demande illégitime contraire à la logique du contrat intelligent, puis la demande est annulée et annulée. Cela se produit parce que parfois les contrats intelligents exigent que certaines exigences soient remplies pour traiter la transaction. Pourtant, l'utilisateur poursuit la transaction sans remplir les conditions requises, puis la transaction n'est pas reportée et annulée. Par exemple, un utilisateur essaie de transférer 100 USD mais dispose d'un solde de 50 USD.
- Stack Overflow:- Les ressources nécessaires à l'exécution des opérations coûtent une redevance gaz. Plus la fonction est lourde, plus le coût est élevé. Certains des mécanismes lourds du codage sont les boucles et
Appels récursifs<!– wp:paragraph –>L'appel récursif est une condition qui peut se référer à elle-même et les rappeler encore et encore dans une boucle. La fonction récursive utilise le cas de base (if) et le cas d'induction (else). Les attaques de réentrance sont effectuées en exploitant des appels récursifs dans le code. <br/><!– /wp:paragraphe –>
” data-gt-translate-attributes=”[{"attribute":"data-cmtooltip", "format":"html"}]”>appels récursifs. Le débordement de pile a à voir avec
Appels récursifs<!– wp:paragraph –>L'appel récursif est une condition qui peut se référer à elle-même et les rappeler encore et encore dans une boucle. La fonction récursive utilise le cas de base (if) et le cas d'induction (else). Les attaques de réentrance sont effectuées en exploitant des appels récursifs dans le code. <br/><!– /wp:paragraphe –>” data-gt-translate-attributes=”[{"attribute":"data-cmtooltip", "format":"html"}]”>appels récursifs.
Appels récursifs<!– wp:paragraph –>L'appel récursif est une condition qui peut se référer à elle-même et les rappeler encore et encore dans une boucle. La fonction récursive utilise le cas de base (if) et le cas d'induction (else). Les attaques de réentrance sont effectuées en exploitant des appels récursifs dans le code. <br/><!– /wp:paragraphe –>” data-gt-translate-attributes=”[{"attribute":"data-cmtooltip", "format":"html"}]”>Les appels récursifs sont une méthode d'invocation d'une fonction au sein de la même fonction avec différentes entrées Vous peut penser à une fonction récurrente comme la machine à jus de canne à sucre. La machine se comporte comme une fonction et la canne à sucre comme intrant. Chaque course de canne à sucre de la machine signifie un appel de fonction. Au bout d'un moment, la canne à sucre repasse sous la machine et ce processus se répète sans cesse. C'est ce qu'est la récidive. Mais comme nous voulons réduire les coûts de gaz et les ressources EVM, Ethereum limite l'appel récurrent jusqu'à 1024 fois. Lorsque vous appelez une fonction 1025e fois, cela entraîne un débordement de pile.
- Erreur de saut:- Lorsque vous essayez d'appeler une fonction qui n'existe pas ou que vous utilisez un langage d'assemblage et que vous pointez vers une fausse mémoire, cela entraîne une erreur. Cela peut même arriver lorsque vous appelez une fonction d'un autre contrat, mais que cette fonction n'existe pas. Ces types d'erreurs sont appelés erreurs JUMP.
Il s'agissait de certaines erreurs de contrat intelligentes courantes rencontrées par les développeurs ; les erreurs peuvent parfois être difficiles à détecter et à comprendre. Pour trouver les erreurs et essayer de les corriger, nous prenons l'aide de divers outils. Passons-les en revue un par un dans la section suivante.
Quatre outils de débogage utiles
Dans cette section, nous découvrirons les outils largement utilisés pour identifier et résoudre les bogues par la plupart des développeurs expérimentés dans le monde. Allons-y.
Casque
Cet outil est largement utilisé et accepté pour tester des contrats intelligents sur divers paramètres. Il fournit un environnement de développement open source pour Ethereum. Il comprend des outils pour développer, tester et déployer des contrats intelligents. Son débogueur intégré est utile à de nombreux développeurs du monde entier. Cela joue également un rôle important dans la phase de test.
Truffe
Il s'agit d'un cadre de développement populaire pour Ethereum. Comme un casque, il comprend des outils pour développer, tester et déployer des contrats intelligents et a également construit Débogueur Truffe, qui aide les développeurs à vivre une expérience de développement fluide lors de la phase de test.
Remix
C'est celui que presque tous les développeurs ont rencontré lorsqu'ils ont commencé leur voyage dans le web3. Il s'agit d'un éditeur de code en ligne pour la solidité, donc aucune installation hors ligne n'est nécessaire pour commencer le développement. Sa fonction de débogage intégrée permet aux développeurs d'analyser le code et d'inspecter les problèmes de variables. Et tout cela est en ligne, pas besoin d'outils hors ligne.
Etherscan
Il s'agit d'un explorateur de blocs largement fiable et populaire pour Ethereum. Il permet aux développeurs d'inspecter et de déboguer les contrats intelligents déployés sur la blockchain Ethereum. Grâce à cela, vous pouvez suivre les transactions et l'activité de n'importe quelle adresse ou contrat. Cela vous aide à identifier où se situerait le problème si votre contrat intelligent rencontrait des problèmes en chaîne.
Conclusion
Le débogage des contrats intelligents est difficile et parfois frustrant, mais c'est une étape cruciale liée à la sécurité et aux tests. C'est là que les vulnérabilités sont les plus susceptibles de se présenter aux pirates et peuvent conduire le protocole à un échec complet. Pour vous épargner de telles circonstances, il est fortement conseillé de passer des audits.
QuillAudits est présent dans ce secteur depuis longtemps et dispose d'une équipe d'experts capable de gérer toutes les vulnérabilités possibles et de vous aider à sécuriser votre protocole. En ce qui concerne le test, son importance et sa relation avec le débogage, lisez le blog détaillé, qui vous aidera à comprendre tous les aspects https://blog.quillhash.com/2023/02/16/testing-and-formal-verification/. Visitez notre site Web et faites auditer votre projet!
12 Vues
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- Platoblockchain. Intelligence métaverse Web3. Connaissance Amplifiée. Accéder ici.
- La source: https://blog.quillhash.com/2023/03/03/4-most-useful-smart-contract-debugging-tools/
- a
- A Propos
- Compte
- à travers
- activité
- propos
- Après
- à opposer à
- Tous
- permet
- toujours
- montant
- et les
- Une autre
- applications
- autour
- d'aspect
- Assemblée
- Attaques
- Tentatives
- audits
- Balance
- base
- car
- LES MEILLEURS
- Block
- blockchain
- applications de blockchain
- Blog
- Punaise
- bogues
- Développement
- construit
- intégré
- Appelez-nous
- appelé
- Appels
- ne peut pas
- porter
- maisons
- certaines
- difficile
- Chance
- conditions
- code
- Codage
- comment
- Commun
- complet
- ordinateur
- condition
- contrat
- contrats
- Prix
- Costs
- crucial
- Cut/Taille
- cycle
- affaire
- déployé
- déployer
- détaillé
- Développeur
- mobiles
- développement
- Développement
- différent
- difficile
- pendant
- chacun
- éditeur
- Environment
- erreur
- Erreurs
- Ethereum
- Blockhaus d'Ethereum
- Pourtant, la
- Chaque
- EVM
- exemple
- exception
- exécution
- exécution
- d'experience
- expérimenté
- expert
- explorez
- explorateur
- échoue
- Échec
- Fonctionnalité
- frais
- Trouvez
- Prénom
- Fixer
- Avant
- Framework
- De
- frustrant
- fonction
- GAS
- obtenez
- Go
- Goes
- guide
- les pirates
- manipuler
- Maniabilité
- arriver
- arrive
- Dur
- fortement
- lourd
- vous aider
- utile
- aide
- ici
- très
- HTTPS
- majeur
- Les êtres humains
- identifier
- identifier
- importance
- in
- inclut
- inefficace
- contribution
- aide
- vous aider à faire face aux problèmes qui vous perturbent
- IT
- lui-même
- chemin
- saut
- Savoir
- calorifugeage
- langue
- conduire
- APPRENTISSAGE
- apprentissage
- Laisser
- Allons-y
- Probable
- limites
- Location
- Longtemps
- click
- a prendre une
- FAIT DU
- de nombreuses
- veux dire
- Mémoire
- méthode
- manquant
- erreur
- de l'argent
- PLUS
- (en fait, presque toutes)
- Besoin
- next
- direct
- Sur chaîne
- ONE
- en ligne
- open source
- opération
- Opérations
- Autre
- paramètre
- paramètres
- parfaite
- phase
- Des endroits
- Platon
- Intelligence des données Platon
- PlatonDonnées
- Point
- Populaire
- possible
- prévoir
- représentent
- empêcher
- produit
- processus
- programme
- Projet
- protocole
- fournit
- Quillhasch
- Lire
- récurrence
- récurrent
- Récursif
- en ce qui concerne
- régulièrement
- en relation
- rapport
- répété
- nécessaire
- exigent
- Exigences
- Resources
- Résultats
- Rôle
- Courir
- même
- Épargnez
- balayage
- Section
- sécurisé
- sécurité
- envoi
- smart
- contrat intelligent
- Contrats intelligents
- So
- Logiciels
- développement de logiciels
- solidité
- quelques
- empiler
- Étape
- j'ai commencé
- Encore
- tel
- Prenez
- équipe
- Essais
- Le
- le monde
- leur
- se
- Avec
- fiable
- fois
- à
- trop
- outil
- les outils
- suivre
- transaction
- Transactions
- transférer
- transferts
- troublant
- confiance
- types
- sous
- sous-jacent
- comprendre
- compréhension
- Inattendu
- us
- utilisé
- Utilisateur
- divers
- vulnérabilités
- vulnérabilité
- Web3
- Site Web
- Quoi
- qui
- largement
- sera
- dans les
- sans
- world
- partout dans le monde
- pourra
- écriture
- Vous n'avez
- Votre
- vous-même
- zéphyrnet