El despliegue del contrato arroja un error de límite de gas de bloque

Estoy tratando de implementar un contrato inteligente en una red de prueba, usando una [DApp de meteoritos][1]. Tengo estos parámetros para el bloque de génesis:

gasLimit: "0x1388"

Sin embargo, cada vez que intento implementar un solo contrato, aparece el siguiente error:

Error: Exceeds block gas limit

¿Alguna idea de lo que puedo hacer aquí?

Respuestas (2)

Como está haciendo esto en una red de prueba, puede modificar su bloque de génesis para tener un límite de gas 0x2fefd8que sea el mismo que el de la red principal (3,141,592 de gas). También deberá restablecer esa cadena de prueba, ya que cambiará el bloque de génesis.

El límite de bloque de gas de PI millones se puede encontrar durante el despliegue de algunos contratos.

Aquí hay un proceso que puede ayudar e intente volver a implementar después de cada paso.

  1. Un intento de solución rápida es usar la --optimize bandera de Solidity .
  2. Si se necesita más investigación, intente ver cuánto supera el límite de gas del bloque de su despliegue. Comience comentando partes del contrato y verifique si alguna parte se puede eliminar.
  3. Si hay alguna lógica compartida, asegúrese de refactorizarla como una función, ya que esto reducirá el tamaño del código de bytes y significará un menor costo de gas durante la implementación.
  4. Si el contrato tiene demasiada lógica, entonces es necesario dividir el contrato. Dividir en bibliotecas puede ayudar. Es posible que también sea necesario dividir en múltiples contratos, donde cada contrato solo tiene un par de funciones.
Recibo este error con cualquier contrato individual, sin importar su complejidad. Acabo de configurar esta red, por lo que podría haber hecho algo mal al configurarla.