¿Establecer el límite de gas del bloque en una cadena de bloques privada?

En una cadena de bloques privada con paridad, ¿cuál es la forma correcta de establecer el límite de gas del bloque? Cuando voy a "Transferir" y luego especifico una dirección en el campo "destinatario", aparece una barra roja que dice:

la ejecución de la transacción excederá el límite de gas del bloque

¡No sé por qué el límite de gas del bloque no es el predeterminado! Estoy usando mi propio archivo de especificaciones de cadena, pero copié estos valores de https://github.com/paritytech/parity/blob/master/ethcore/res/ethereum/foundation.json :

"gasLimit": "0x1388",

...

"minGasLimit": "0x1388",

El límite del que habla el error parece ser 5000 (0x1388) porque obtengo el error hasta que bajo manualmente el gas (de 21000 predeterminado en el campo) a 4999. Pero, ¿por qué el límite está establecido en 5000? Esos dos parámetros no tienen nada que ver con el límite de gas del bloque, ¿verdad?

(Y de todos modos, cuando bajo el límite de gas a algo por debajo de 5000, tengo este problema: archivo de génesis de paridad: ¿cómo establecer el "costo mínimo de la transacción", también conocido como valor de "Gtransacción"? )

Realmente no entiendo qué hice para alterar el límite de gas del bloque. Debería estar predeterminado en 21000, ¿verdad? ¿Cómo logré alterar eso?

En una red privada, puede establecer el límite de gas en el archivo de génesis, el límite de gas es dinámico y se puede ajustar con --targetgaslimitparámetros.
@Prashant Prabhakar Singh ¿Estás seguro? Pensé que "targetgaslimit" se refería a esto: ethereum.stackexchange.com/questions/17469/… . Eso es para que los mineros acepten gas, no para el límite de gas de bloque permitido. Además, ¿es un parámetro en el archivo de génesis porque he buscado en todas partes donde encuentro documentos sobre la especificación de la cadena de paridad y el archivo de génesis de geth y no he visto este parámetro? Creo que tal vez es solo un parámetro de línea de comando geth. ¿Para cuando estás minando?
Culpa mía. Simplemente no presté atención. El término que está buscando está gasLimiten el bloque de génesis. Puede definir gasLimit en el bloque de génesis y esto ajustará el límite de gas de su bloque.
@Prashant Prabhakar Singh Estoy confundido. ¡En la especificación de cadena predeterminada, "gasLimit" se establece en 5000 (1388)! Pero ese ciertamente no es el límite de gas de bloque de la red principal ETH. Compruébelo usted mismo: github.com/paritytech/parity/blob/master/ethcore/res/ethereum/…

Respuestas (2)

En la red privada, puede aumentar el límite de gas del bloque utilizando el gasLimitparámetro en el archivo de génesis.

"límite de gas": "0x8000000",

gasLimit en el archivo de génesis:

Un valor escalar igual al límite actual de gasto de Gas por bloque en toda la cadena. Alto en nuestro caso para evitar estar limitado por este umbral durante las pruebas. Nota: esto no indica que no debamos prestar atención al consumo de Gas de nuestros Contratos.

Puede leer sobre otros parámetros de genesis en ¿Qué significa cada parámetro de genesis.json?

PD: No he intentado aumentar el límite de gas del bloque, pero supongo que esto debería funcionar. Aunque puede aumentar el límite de gas del bloque, no debería hacerlo (idealmente). Si esto es para fines de prueba, entonces está bien. Pero si su contrato inteligente consume más gas que el límite de gas del bloque, esto es una preocupación. Podrías intentar dividir el contrato.

¿Lo que está diciendo es que el parámetro "gasLimit" en este archivo ( github.com/paritytech/parity/blob/master/ethcore/res/ethereum/… ) es el mismo que el valor de Gtransaction en el Libro amarillo? ¿Te entiendo?
Ese enlace no es útil. La especificación de la cadena real usa "1388" para ese valor, ¡y eso equivale a 5000! Pero sabemos que ese no es en realidad el límite de gas del bloque, por lo que el enlace debe estar incompleto en el mejor de los casos.
No estoy muy seguro del enlace que proporcionaste. ¿Eso es para la cadena principal? Necesito mirar esto. Mientras tanto, ¿intentó aumentar el gasLimitparámetro en su archivo de génesis? Por definición, esto parece ser lo que funcionará bien. ¿Has comprobado?
Parece ser la cadena principal, sí. ¿Lo investigaste? Sí, aumenté el parámetro gasLimit a 4712388. El error ha cambiado un poco. Ahora dice "El costo de la transacción excede el límite de gas actual. Límite: 4700036, obtuve: 4712388. Intente disminuir el gas suministrado". Loco, ¿verdad?!? El parámetro gasLimit está establecido en 4712388, entonces, ¿de dónde viene 4700036? Voy a publicar una pregunta separada en realidad.

la pregunta era:

En una cadena de bloques privada con paridad, ¿cuál es la forma correcta de establecer el límite de gas del bloque?

La respuesta es:

  1. Establezca el límite de gas del bloque inicial con el parámetro gasLimit en la especificación de la cadena de paridad.

  2. Los mineros restablecerán esto a medida que voten para aumentar o reducir este límite con el tiempo, siendo minGasLimit el mínimo.