Im having issues when I try to implement a back end that generate smart-contract transaction calls using web3j. But I'm a lit confused with the gas limit concept. I have defined inside the genesis file a gas limit value of:
"gasLimit": "0xE0000000" --> 3758096384
And inside the web3j gasProvider a value of:
30_000_000L
At the time of making the transactions there comes a time which I cannot perform operations. And I get the following exception:
java.lang.RuntimeException: java.lang.RuntimeException: Error processing transaction request: exceeds block gas limit
at org.web3j.tx.Contract.deploy(Contract.java:391)
at org.web3j.tx.Contract.lambda$deployRemoteCall$10(Contract.java:496)
at org.web3j.protocol.core.RemoteCall.send(RemoteCall.java:30)
This exception appear when I deploy new SC and also when I do SC function calls. In one way or another, I cannot perform any type of operation and I have to restart the blockchain.
The generated exception who gives me? The blockchain or web3j for having defined a value in the GasProvider lower than that of the genesis?
But the gas limit defined in the genesis is not supposed to be only for the first block?
Why I cant make transactions and how can I manage this situation in a production environment and recover the data and the great functionallity?
How can I know a great gasLimit value for production?
UPDATE
QUORUM_CONSENSUS: default to istanbul
QUORUM_DOCKER_IMAGE: default to quorumengineering/quorum:2.2.3
QUORUM_TX_MANAGER_DOCKER_IMAGE: default to quorumengineering/tessera:0.9