Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for BAD BLOCK caused by "gas limit reached" for private contracts #595

Merged
merged 14 commits into from
Feb 12, 2019

Conversation

SatpalSandhu61
Copy link
Contributor

Issue occurs if a block is minted containing a number of private contracts which use gas close to the block gasLimit. The conditions for the issue to occur are as follows:

  • The minting node is not a participant to the private contracts.
  • Minting node creates a block containing the private contracts, where gas is close to the block gasLimit.
  • Validator node is a participant and when it creates/executes the private contracts, the gas usage exceeds the block gasLimit. As a result, the validator throws BAD BLOCK "gas limit reached" error.

Fix is to ensure that the extra gas used by the private contract is not subtracted from the block gas.
Note that the block gas usage will therefore be based on the public hash of the private contract (which will be consistent across all nodes).

fixes #576
Issue ticket has been closed, however the underlying issue as described above needs to be fixed to ensure the problem cannot recur (for example under heavy load with large numbers of transactions in a block).

@jpmsam jpmsam merged commit 07c76cc into Consensys:master Feb 12, 2019
@SatpalSandhu61 SatpalSandhu61 deleted the fix-for-bad-block-on-gas-limit branch February 20, 2019 13:45
jimthematrix pushed a commit to kaleido-io/quorum that referenced this pull request Mar 22, 2019
jimthematrix added a commit to kaleido-io/quorum that referenced this pull request Mar 29, 2019
…insic gas, should use st.data which represents the hash for the private transaction, instead of data retrieved from constellation which is the private payload
jimthematrix added a commit to kaleido-io/quorum that referenced this pull request Mar 29, 2019
Fixed a mistake during porting of Consensys#595, for calculating intrinsic gas…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Bad block issue and quorum restarts
4 participants