es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“La transacción de Ethereum no fue minada en un plazo de 750 segundos.”

Estoy intentando construir una DApp utilizando React, solidity, truffle y web3. He creado un archivo de contrato inteligente de votante y lo desplegué en la red de prueba rinkeby con éxito.
Estoy intentando registrar a un votante desde la interfaz de usuario (UI) enviando la transacción desde una cuenta de administrador (cuenta Rinkeby que creé y que tiene 0.5 testEth) al contrato inteligente de voto desplegado en la red de prueba rinkeby.
La transacción está funcionando correctamente hasta la función de transactionHash de la sendSignedTransaction de web3js, pero la callback de onConfirmation no está funcionando. Estoy recibiendo un error como este:

Error: La transacción no se minó en 750 segundos, asegúrese de que la transacción se haya enviado correctamente. ¡Tenga en cuenta que aún podría minarse!
en Object.TransactionError (D:\server\node_modules\web3-core-helpers\lib\errors.js: 87:21)
en D:\server\node_modules\web3-core-method\lib\index.js:418:49
en runMicrotasks ()
en processTicksAndRejections (node: internal / process / task_queues: 96: 5) {
recibo: indefinido

Código para el método registerVoter:

return await web3.eth
  .sendSignedTransaction(signedTx)
  .on('transactionHash', (txHash) => {
    console.log(txHash);
  })
  .on('confirmation', async (confirmationNumber, receipt) => {
    confirmNum++;
    if (confirmNum === 2) {
      if (!receipt.status) {
        res.status(400).send({ error: 'La transacción falló' });
      } else {
        const cipher = crypto.createCipher(
          'aes-128-cbc',
          process.env.ENCRYPTED_KEY
        );
        let ciphertext = cipher.update(
          account.privateKey,
          'utf8',
          'base64'
        );

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que la transacción no se confirmó dentro del tiempo especificado (750 segundos). Esto puede tener varias razones, como un bajo precio del gas, congestión de la red o un problema de sincronización. Aquí hay algunos pasos que puede tomar para solucionar el problema:

    1. Verifique el precio del gas: asegúrese de establecer un precio de gas apropiado para su transacción. Puede verificar los precios actuales del gas en la red rinkeby visitando un sitio como https://ethgasstation.info/.
    2. Verifique el estado de la red: verifique que la red de rinkeby esté funcionando correctamente y que no haya problemas o interrupciones conocidos. Puede verificar el estado de la red en sitios como https://status.rinkeby.io/.

    3. Verifique el estado de sincronización del nodo: asegúrese de que su nodo esté completamente sincronizado con la red. Puede verificar el estado de sincronización ejecutando el comando “web3.eth.isSyncing()” en la consola web3.

    4. Verifique el estado de la transacción: puede verificar el estado de su transacción buscando el hash de transacción en un explorador de blockchain como https://rinkeby.etherscan.io/. Esto puede darle una idea de si la transacción se envió correctamente pero no se confirmó, o si hubo otros problemas.

    5. Aumente el límite de gas: si su transacción requiere más recursos computacionales de los que estimó inicialmente, es posible que deba aumentar el límite de gas para garantizar que se procese. Intente aumentar el límite de gas y volver a enviar la transacción.

    6. Intente con un proveedor de billetera diferente: Metamask es una opción popular para interactuar con aplicaciones web3, pero puede haber problemas que causen que las transacciones fallen. Intente usar otro proveedor de billetera, como Geth o Parity.

    Siguiendo estos pasos, debería poder identificar y resolver el problema con su transacción.

Comments are closed.