Guía del usuario: Transacciones y transacciones fallidas
¿Eres nuevo en criptomonedas y web3?
Visite MetaMask Learn para obtener una experiencia de aprendizaje directa diseñada específicamente para los recién llegados a web3. Es totalmente gratis y está disponible en varios idiomas e incluye herramientas útiles, como simulaciones, que le ayudarán a familiarizarte con MetaMask.
Este artículo contiene una explicación y enlaces a recursos sobre las transacciones y por qué fallan, además de, más adelante, enlaces a escenarios comunes de transacciones fallidas y cómo solucionarlo:
- Anatomía de una transacción en una cadena de bloques
- Problemas comunes
- Soluciones principales
- Recursos adicionales y pasos a seguir
- Preguntas frecuentes
Anatomía de una transacción en una cadena de bloques
Cuando hablamos de 'transacciones' en una cadena de bloques pública, por lo general estamos hablando de interacciones entre dos direcciones; en otras palabras, tokens, ya sean fungibles o no, u otros activos criptográficos que se "mandan" desde una dirección a otra. También hay transacciones llamadas "transacciones internas", que son interacciones que se producen entre contratos inteligentes, y en su mayor parte quedan fuera del alcance de este artículo.
¿Quiere más información?
Para más información sobre las redes de cadena de bloques y cómo funcionan en general, consulta nuestro artículo de introducción aquí, y si te quedas atascado en alguna palabra desconocida, nuestro glosario siempre está disponible.
Para que quede claro, nada se está enviando en realidad a ningún lado. Las redes de cadenas de bloques con contratos inteligentes como Ethereum tienen varios componentes o funciones. Uno de ellos es lo que llamaríamos un "computadora": la máquina virtual de Ethereum, o EVM, capaz de ejecutar programas ("contratos inteligentes"). The backbone of the system, however, is a distributed ledger: imagine a spreadsheet that contains, on one side, every single Ethereum account address, and each address has a column for each type of crypto-asset that it holds.
Usemos un ejemplo para entenderlo. Digamos que Guillaume quiere enviar una transacción a Dolores. Guillaume tiene 1,36 ETH en su cuenta, y piensa enviar a Dolores 0,5 ETH. Es un buen día para Dolores, incluso en un mercado bajista.
Guillaume opens up his MetaMask, enters Dolores' address, configures the gas parameters that he's comfortable with paying, and hits'send'.
En este momento, la transacción entra en un estado temporal de espera en el disco local, conocido como el grupo de memoria, que en inglés se conoce como memory pool, o local mempool. La transacción será 'recogida' por el nodo más cercano en la red; dependiendo de la [configuración de gas] de Guillermo(/configure/transactions/how-to-customize-gas-settings), su transacción se priorizará (cuanto más Guillermo esté dispuesto a pagar por unidad de gas, más rápido se procesará su transacción) y se propagará a otros nodos de la red. Los nodos harán el trabajo de verificar que Guillaume tenga el ETH para gastar, y luego en realidad realizarán la 'transacción': el libro de contabilidad se modificará; 0,5 se cargará al saldo de Guillaume, y 0,5 se le abonará a Dolores.
'Escribe y pasa el móvil dedo del infinito': ETH no se movió a través de una red tal cual; no era un correo electrónico enviado desde la computadora de Guillaume a la bandeja de entrada de MetaMask de Dolores, ni nada por el estilo. Guillermo envió una solicitud, autenticada por sus claves privadas a través de MetaMask, a la red para debitar su cuenta y acreditar la de Dolores, y después del proceso de verificación programado en los protocolos de la red, esto se llevó a cabo.
Eso es todo lo que tiene una transacción: una solicitud al libro de contabilidad para que reasigne algo de una dirección a otra.
Cuando las cosas salen mal
Las cosas pueden salir mal por varias razones. A menudo, son 'debido al software': en MetaMask se da un error o algo se ha configurado mal en cuanto a la red que está tratando de usar; hubo un error de conectividad.
Un problema común es que el usuario, en un intento de pagar menos por su transacción, establece un límite de gas muy bajo, y las condiciones de la red están tan congestionadas que no hay espacio en ningún bloque para una transacción tan "barata", a veces por un tiempo muy largo: al cabo del tiempo, esta transacción se convertirá en "inerte" y el usuario tendrá que cancelarla.
Si ha enviado una transacción y no se ha finalizado, su estado se mostrará como "pendiente" en MetaMask.
If you sent a transaction, and it failed, the most likely cause is a lack of gas: you "ran out of gas", in other words, the transaction had a cost in gas that, when multiplied by the gas price, resulted in a total amount of the network's native currency that was greater than what you had in your account.
Información
Para más información sobre el cálculo de gas, consulta nuestra guía de gas aquí.
Esto puede suceder por varias razones, pero una cosa a tener en cuenta es qué es la transacción que desea realizar. Acuñar a un NFT durante los tiempos de tráfico más alto en la red puede ser muy costoso en concepto de gas; si está probando una transacción nueva o experimental, puede que valga la pena probar una red de pruebas antes de pagar tarifas reales de la red en vivo.
Solucionar el problema
Factor clave nro. 1: local o transmitido a red
En el transcurso del diagnóstico de su problema de transacción, especialmente cuando se trata de una transacción pendiente, tendrá que ver si la transacción sigue en su grupo de memoria local, o si ya llegó a la red y se encuentra allí atascada por cualquier razón. If it is just in your local mempool, the solution could be as simple as locking, and unlocking, your MetaMask (make sure you know your password and have your Secret Recovery Phrase backed up before you do). Si ha llegado a la red, la solución podría ser más complicada.
Para más información sobre cómo solucionar estos problemas, consulte los enlaces a continuación.
Factor clave nro. 2: Nonce
Esta palabra puede significar varias cosas diferentes. En este contexto, significa en términos generales "número de transacción", a partir de la primera transacción realizada por la dirección remitente. You can get yourself into real trouble if, for example, you're firing two different transactions from different instances of MetaMask with the same account address at the same time. Las transacciones de su dirección deben estar en orden ascendente de acuerdo a su nonce. Sin embargo, al igual que los nonces son capaces de causar una transacción atascada, pueden ser la clave para desatascar una transacción.
Para obtener más información sobre esa técnica, consulte aquí.
Siguientes pasos
Si tiene una transacción fallida o pendiente, consulte los siguientes recursos para recibir ayuda.
How to send tokens from your MetaMask account
Cómo acelerar o cancelar una transacción pendiente
¿Por qué falló mi transacción con un error de "Gas insuficiente"? ¿Cómo puedo solucionarlo?
Soluciones para problemas de Uniswap
¿Puedo revertir una transacción que ya se confirmó?
Preguntas frecuentes
*P: Una cuenta en mi billetera tiene una transacción pendiente o en cola. ¿Puedo iniciar otra transacción desde una cuenta diferente dentro de la misma billetera?*R: Sí, se puede.
A: Sí, puede. El nonce se cuenta por cuenta, no por billetera.