¿El uso de un límite de gas muy alto de alguna manera hace que sus transacciones se ejecuten más lentamente?

Estoy ejecutando transacciones en la red principal con un script de NodeJS:

async function send(web3, transaction, destAddr, gasPrice, privateKey) {
    const options = {
        data    : transaction.encodeABI(),
        to      : destAddr,
        gasPrice: gasPrice,
        gas     : (await web3.eth.getBlock("latest")).gasLimit
    };
    const signed  = await web3.eth.accounts.signTransaction(options, privateKey);
    const receipt = await web3.eth.sendSignedTransaction(signed.rawTransaction);
    return receipt;
}

Cada transacción tarda años en completarse.

Sigo subiendo el precio de la gasolina, pero no mejora.

Finalmente intenté reducir el límite de gas y, en lugar de tomar el límite máximo de gas por bloque, simplemente escribí "500000", que es mucho menos que el límite de gas del bloque, pero mucho más que el gas real requerido. para cada transacción.

De repente, la red comenzó a procesar mis transacciones mucho más rápido.

Se siente como si un límite de gas alto "asustara" a los mineros o algo así.

Intenté usar await transaction.estimateGas()pero me ha estado dando un error de "el gas requerido excede la asignación o siempre falla la transacción" cada vez.

Creo que esto se debe posiblemente a que esta función subestima el gas real requerido para la transacción, por lo que soy algo reacio a usarla.

¿Alguien aquí podría arrojar algo de luz sobre esto?

¡Gracias!

Respuestas (1)

En resumen: es exactamente como sospechas, un límite de gas más alto significa que es menos probable que los mineros incluyan tu transacción .

El razonamiento: los mineros buscan maximizar sus ganancias dentro de cada bloque. Las llamadas a eth_estimateGaspueden ser computacionalmente pesadas, por lo que los mineros generalmente no determinan el gas real que consumirá cada tx. En cambio, calculan gasPrice * gasLimitpara cada transacción dada y, a partir de eso, determinan el conjunto de transacciones más rentable para la minería.

Si está configurando el límite de gas para que sea ==el límite de gas del bloque, deberá ofrecer un precio de gas muy alto para que su tx por sí solo sea más rentable que todas las demás combinaciones posibles de transacciones pendientes.

Excelente respuesta Acabo de recibir una explicación muy similar de un amigo. ¡¡¡Muchas gracias!!!