¿Cómo implementar el contrato inteligente de Ethereum que requiere más de 4,7 millones de gas en la red de Ropsten?

Mi contrato inteligente es realmente enorme: requiere 5,6 millones de gasolina en el despliegue. Pude implementarlo una vez , pero algo cambió y ya no puedo hacerlo.

Intenté ejecutar el minero con un límite de gas de bloque más alto gethpero sigo obteniendo exceeds block gas limit: https://stackoverflow.com/questions/51437227/geth-targetgaslimit-not-working

¿Cómo puedo hacerlo en la red Ropsten (testnet)?

dividirlo en contrato múltiple

Respuestas (2)

En última instancia, deberá reducir el tamaño de su contrato, ya que no hay forma de eludir el límite de gas para una sola transacción.

Puedes hacer esto de varias maneras:

  • Asegúrese de que está escribiendo su código para tener funciones reutilizables cuando sea posible
  • Asegúrese de compilar el código con el optimizador de solidez
  • Use bibliotecas existentes probadas en batalla cuando sea posible
  • Divida su contrato en múltiples contratos o bibliotecas más pequeños que se referencian entre sí para crear transacciones por debajo del límite de gas
Alternativamente, póngalo en una red de prueba con un límite de gas más grande, como Kovan.
> no hay forma de eludir el límite de gas para una sola transacción. ¿Cómo lo hice una vez?
El límite de gas de Ropsten no es realmente fijo, pero es de 4,7 millones la mayor parte del tiempo. Si eres minero, puedes aumentar el límite de gas temporalmente. Eso es probablemente lo que sucedió cuando se aceptó su transacción. Definitivamente piense en hacer que su contacto sea modular y versionable.
Puedo minar como para Ropsten, no es tan difícil como para la red principal. > "Si eres minero, puedes aumentar el límite de gas temporalmente" lo intenté ( stackoverflow.com/questions/51437227/… ), ¿cómo puedo hacerlo?

No tengo idea de qué está mal, pero pude publicar con Remix conectado al nodo local de geth miner:

$geth --verbosity "4" -rpc --nousb --ipcdisable --rpcaddr "127.0.0.1" --rpccorsdomain " " --rpcvhosts " " --syncmode "rápido" --rpcapi="db,personal,eth ,net,web3,admin" --cache=2048 --testnet --mine --targetgaslimit 7000000

https://ropsten.etherscan.io/tx/0x75139eb7f94e1a8769dee35b63f0492893da550e5538dfd67a889203d510c833

Ni idea, pero no puedo hacerlo de nuevo. ¿De qué depende? Parece alguna limitación de red. Según tengo entendido, el límite de gas del bloque se determina mediante la votación de los nodos. ¿Significa que la mayoría de los mineros deberían votar por una cantidad mayor que la predeterminada? ¿Cómo funcionó algunas veces para mí?