hyperledger-firefly / hyperledger-firefly/ethconnect
Awareness of the block rewind situation after a non-graceful shutdown
- Dominant language
- Go
- Stars
- 76
- Forks
- 31
- PR merge metrics
- No merged PRs in 30d
Description
When geth experiences a non-graceful crash, ethconnect will retry the pending transactions. The `eth_estimateGas` calls will be made during the retries.
After the node recovers, it will perform a rewind to a previous full block.
At this point, ethconnect will be retrying the `eth_estimateGas` calls, which fails because it's chain repair state. EthConnect then attempts an `eth_call` request to try to discover the error that caused the failure. Since the `eth_call` request is made at the original block height, geth will return `block not found` error and fail the transaction. EthConnect believes it's the actual cause of the tx failure and returns it to the client.
What it should do is detecting that "block not found" is returned and recognize that it's likely a block rewind situation, and continues to retry.
Contributor guide
Assessment
This issue has not been assessed yet.