Tiempo de lectura: 4 minutos
Esta guía puede ayudarlo a encontrar ese error desagradable que lo preocupa y las herramientas para corregirlo.
La depuración es crucial para cualquier ciclo de desarrollo de software; los humanos siempre cometemos errores. Por eso somos imbatibles; cometemos errores y aprendemos de ellos. La depuración es un proceso de averiguar dónde se está retrasando nuestro código, corregirlo y aprender sobre ese error para que no se repita.
El desarrollo de contratos inteligentes es crucial para crear aplicaciones de cadena de bloques. Pero como con cualquier otro ciclo de desarrollo de software, la depuración de contratos inteligentes a veces puede ser un desafío, y como aquí a menudo tratamos con una gran cantidad de dinero, no podemos dejar nada al azar. Tenemos que ser perfectos en la redacción de contratos inteligentes y perfectos en la depuración. Es por eso que hemos creado este blog para que pueda aprender sobre la depuración de los mejores.
Antes de arreglar algo, necesitamos conocer el problema, así que comencemos identificando diferentes tipos de errores en el desarrollo de contratos inteligentes.
Errores comunes
En esta sección, exploraremos diferentes tipos de errores que los desarrolladores de contratos inteligentes encuentran regularmente.
- Error de sintaxis:– Este error es fácil de arreglar. Esto sucede cuando un desarrollador comete un error de código que impide que la computadora lo entienda, como perder un punto y coma.
- error lógico:- Este tipo de error a veces puede ser difícil de encontrar. No impide la ejecución, pero se altera la funcionalidad del programa. Este programa se comporta inesperadamente como un contrato inteligente que transfiere dinero a la dirección incorrecta al enviar dinero de una cuenta a otra.
- Error de tiempo de ejecución:- Estos errores son difíciles de predecir. Vienen en un momento inesperado y en lugares inesperados. Esto ocurre durante la ejecución de contratos inteligentes y sucede debido a un manejo de excepciones ineficiente. Por ejemplo, esto puede ocurrir cuando un contrato no maneja entradas inesperadas o intenta realizar una operación prohibida por la cadena de bloques subyacente. Por ejemplo, un contrato intenta transferir más dinero que el parámetro permitido.
- Errores de ejecución revertidos:- Esto sucede cuando el usuario realiza una solicitud ilegítima que va en contra de la lógica del contrato inteligente, luego la solicitud se cancela y se revierte. Esto sucede porque a veces los contratos inteligentes requieren que se cumplan ciertos requisitos para procesar la transacción. Aún así, el usuario continúa con la transacción sin cumplir con los requisitos, y luego la transacción no se lleva adelante ni se revierte. Por ejemplo, un usuario intenta transferir $100 pero tiene un saldo de $50.
- desbordamiento de pila:- Los recursos para ejecutar las operaciones cuestan una tarifa de gas. Cuanto más pesada sea la función, mayor será el costo. Algunos de los mecanismos pesados en la codificación son bucles y
Llamadas recursivas<!– wp:paragraph –>La llamada recursiva es una condición que puede referirse a sí misma y volver a llamarla una y otra vez en un bucle. La función recursiva usa el caso base (if) y el caso de inducción (else). Los ataques de reingreso se realizan explotando llamadas recursivas en el código. <br/><!– /wp:párrafo –>
” data-gt-translate-attributes=”[{"attribute":"data-cmtooltip", "format":"html"}]”>llamadas recursivas. El desbordamiento de pila tiene que ver con
Llamadas recursivas<!– wp:paragraph –>La llamada recursiva es una condición que puede referirse a sí misma y volver a llamarla una y otra vez en un bucle. La función recursiva usa el caso base (if) y el caso de inducción (else). Los ataques de reingreso se realizan explotando llamadas recursivas en el código. <br/><!– /wp:párrafo –>” data-gt-translate-attributes=”[{"attribute":"data-cmtooltip", "format":"html"}]”>llamadas recursivas.
Llamadas recursivas<!– wp:paragraph –>La llamada recursiva es una condición que puede referirse a sí misma y volver a llamarla una y otra vez en un bucle. La función recursiva usa el caso base (if) y el caso de inducción (else). Los ataques de reingreso se realizan explotando llamadas recursivas en el código. <br/><!– /wp:párrafo –>” data-gt-translate-attributes=”[{"attribute":"data-cmtooltip", "format":"html"}]”>Las llamadas recursivas son un método para invocar una función dentro de la misma función con diferentes entradas. podemos pensar en una función recurrente como la máquina de jugo de caña de azúcar. La máquina se comporta como función y la caña como insumo. Cada tirada de caña de azúcar de la máquina significa una llamada de función. Después de un tiempo, la caña de azúcar vuelve a pasar por debajo de la máquina y este proceso sigue repitiéndose. Esto es lo que es la recurrencia. Pero como queremos reducir los costos de gas y los recursos de EVM, ethereum limita la recurrencia de llamadas hasta 1024 veces. Cuando llama a una función 1025 veces, se produce un desbordamiento de pila.
- error de SALTO:- Cuando intenta llamar a una función que no existe o usa lenguaje ensamblador y apunta a una memoria falsa, esto da como resultado un error. Esto incluso puede suceder cuando llama a una función de algún otro contrato, pero esa función no existe. Estos tipos de errores se denominan errores JUMP.
Estos fueron algunos errores comunes de contratos inteligentes que encuentran los desarrolladores; los errores a veces pueden ser difíciles de detectar y comprender. Para encontrar los errores e intentar corregirlos, contamos con la ayuda de varias herramientas. Vamos a repasarlos uno por uno en la siguiente sección.
Cuatro herramientas de depuración útiles
En esta sección, aprenderemos sobre herramientas muy utilizadas para identificar y resolver errores por parte de los desarrolladores más experimentados en todo el mundo. Vamos.
Casco de seguridad
Esta herramienta es ampliamente utilizada y aceptada para probar contratos inteligentes en varios parámetros. Proporciona un entorno de desarrollo de código abierto para Ethereum. Incluye herramientas para desarrollar, probar e implementar contratos inteligentes. Su depurador incorporado es útil para muchos desarrolladores de todo el mundo. Esto también juega un papel importante en la fase de prueba.
Trufa
Este es un marco de desarrollo popular para Ethereum. Al igual que hardhat, incluye herramientas para desarrollar, probar e implementar contratos inteligentes y también ha construido Depurador de trufas, que ayuda a los desarrolladores con una experiencia de desarrollo fluida en la etapa de prueba.
Remix
Este es el que casi todos los desarrolladores encontraron cuando comenzaron su viaje en web3. Este es un editor de código en línea para solidez, por lo que no se necesita una instalación fuera de línea para comenzar con el desarrollo. Su función de depuración integrada permite a los desarrolladores escanear el código e inspeccionar problemas variables. Y todo esto está en línea sin necesidad de herramientas fuera de línea.
Etherscan
Este es un explorador de bloques ampliamente confiable y popular para Ethereum. Permite a los desarrolladores inspeccionar y depurar contratos inteligentes implementados en la cadena de bloques de Ethereum. Con esto, puede realizar un seguimiento de las transacciones y la actividad de cualquier dirección o contrato. Esto lo ayuda a identificar dónde estaría el problema si su contrato inteligente enfrenta algún problema en la cadena.
Conclusión
La depuración de contratos inteligentes es difícil y, a veces, frustrante, pero es una etapa crucial relacionada con la seguridad y las pruebas. Aquí es donde es más probable que las vulnerabilidades se presenten a los piratas informáticos y pueden hacer que el protocolo falle por completo. Para salvarse de tales circunstancias, se recomienda encarecidamente realizar auditorías.
QuillAudits ha estado en esta vertical durante mucho tiempo y cuenta con un equipo de expertos que puede manejar todas las vulnerabilidades posibles y ayudarlo a proteger su protocolo. Con respecto a las pruebas, su importancia y su relación con la depuración, lea el blog detallado, que lo ayudará a comprender cada aspecto. https://blog.quillhash.com/2023/02/16/testing-and-formal-verification/. ¡Visite nuestro sitio web y haga que su proyecto sea auditado!
12 Vistas
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- Platoblockchain. Inteligencia del Metaverso Web3. Conocimiento amplificado. Accede Aquí.
- Fuente: https://blog.quillhash.com/2023/03/03/4-most-useful-smart-contract-debugging-tools/
- a
- Nuestra Empresa
- Mi Cuenta
- a través de
- actividad
- dirección
- Después
- en contra
- Todos
- permite
- hacerlo
- cantidad
- y
- Otra
- aplicaciones
- en torno a
- aspecto
- Asamblea
- ataques
- Los intentos
- auditorías
- Balance
- bases
- porque
- MEJOR
- Bloquear
- blockchain
- aplicaciones blockchain
- Blog
- Error
- loco
- Construir la
- construido
- incorporado
- llamar al
- , que son
- Calls
- no puede
- llevar
- case
- a ciertos
- desafiante
- oportunidad
- circunstancias
- código
- Codificación
- cómo
- Algunos
- completar
- computadora
- condición
- contrato
- contratos
- Cost
- Precio
- crucial
- Corte
- Cycle
- acuerdo
- desplegado
- Desplegando
- detallado
- Developer
- desarrolladores
- el desarrollo
- Desarrollo
- una experiencia diferente
- difícil
- durante
- cada una
- editor
- Entorno
- error
- Errores
- Etereum
- Etereum blockchain
- Incluso
- Cada
- EVM
- ejemplo
- excepción
- ejecución
- ejecución
- experience
- experimentado
- experto
- explorar
- explorador
- tener problemas con
- falla
- Fracaso
- Feature
- cuota
- Encuentre
- Nombre
- Fijar
- adelante
- Marco conceptual
- Desde
- frustrante
- función
- a la fatiga
- GAS
- obtener
- Go
- Va
- guía
- los piratas informáticos
- encargarse de
- Manejo
- suceder
- que sucede
- Difícil
- fuertemente
- pesado
- ayuda
- serviciales
- ayuda
- esta página
- altamente
- HTTPS
- enorme
- Humanos
- Identifique
- identificar
- importancia
- in
- incluye
- ineficiente
- Las opciones de entrada
- cuestiones
- IT
- sí mismo
- saltar
- Saber
- rezagado
- idioma
- Lead
- APRENDE:
- aprendizaje
- Abandonar
- Permíteme
- que otros
- límites
- Largo
- largo tiempo
- máquina
- para lograr
- HACE
- muchos
- significa
- Salud Cerebral
- Método
- que falta
- Error
- dinero
- más,
- MEJOR DE TU
- ¿ Necesita ayuda
- Next
- digital fuera de línea.
- En cadena
- ONE
- en línea
- de código abierto
- Inteligente
- Operaciones
- Otro
- parámetro
- parámetros
- perfecto
- fase
- Lugares
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- punto
- Popular
- posible
- predecir
- presente
- evitar
- producto
- programa cultural, social y deportivo.
- proyecto
- protocolo
- proporciona un
- hachís
- Leer
- reaparición
- periódico
- recursiva
- con respecto a
- regularmente
- relacionado
- relación
- repetido
- solicita
- exigir
- Requisitos
- Recursos
- Resultados
- Función
- Ejecutar
- mismo
- Guardar
- escanear
- Sección
- seguro
- EN LINEA
- enviando
- inteligente
- contrato inteligente
- Contratos Inteligentes
- So
- Software
- Desarrollo de software ad-hoc
- solidez
- algo
- montón
- Etapa
- fundó
- Sin embargo
- tal
- ¡Prepárate!
- equipo
- Pruebas
- La
- el mundo
- su
- sí mismos
- A través de esta formación, el personal docente y administrativo de escuelas y universidades estará preparado para manejar los recursos disponibles que derivan de la diversidad cultural de sus estudiantes. Además, un mejor y mayor entendimiento sobre estas diferencias y similitudes culturales permitirá alcanzar los objetivos de inclusión previstos.
- equipo
- veces
- a
- demasiado
- del IRS
- seguir
- transaccional
- Transacciones
- transferir
- transferencias
- perturbador
- de confianza
- tipos
- bajo
- subyacente
- entender
- comprensión
- Inesperado
- us
- utilizan el
- Usuario
- diversos
- Vulnerabilidades
- vulnerabilidad
- Web3
- Página web
- ¿
- que
- extensamente
- seguirá
- dentro de
- sin
- mundo
- en todo el mundo
- se
- la escritura
- Usted
- tú
- a ti mismo
- zephyrnet