-
Notifications
You must be signed in to change notification settings - Fork 20.5k
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
GETH 1.8.20 After update: Invalid Gas used #18358
Comments
There appears to be two problems here. The second problem is that the downloader header := d.lightchain.GetHeaderByHash(h) // Independent of sync mode, header surely exists
if header.Number.Uint64() != check {
p.log.Debug("Received non requested header", "number", header.Number, "hash", header.Hash(), "request", check)
return 0, errBadPeer
} So it appears that the comment is lying, and the hash is not available. |
cc @zsfelfoldi , do you have any idea why the lightchain would fail to return the header at that point? |
Although I guess if the database is corrupt, it's possible that reading the data from the database might fail. @jordimorris were there any other earlier error messages or uncontrolled shutdowns before this? |
no, I just updated as usual. I can run 1.8.19 and it syncs up perfectly. I switch to 1.8.20 and I got the errors again. Don't you think it's an error from the latest version? `INFO [01-03|10:29:33.677] IPC endpoint opened url=/Users/ethereum/Library/Ethereum/geth.ipc Number: 6994848 Error: nonce too high WARN [01-03|10:31:32.556] Synchronisation failed, dropping peer peer=1c0920442d7ffe5d err="retrieved hash chain is invalid" goroutine 1472 [running]: |
Try adding a static-nodes file from the known seed-nodes list, and restart your server. The peer that your node is connecting to, has a corrupt database and apparently isn't connecting to other nodes to update it's own. Once your node rejects the block... Your node doesn't have any other peers to connect to either, to find the correct data. The nodes should be run with full sync mode to prevent "easy" corruption. Even using the static nodes file, your node will still seek out other trusted peers as well (if any exist..ie.. main net ethereum peer list). If you're running a "private" blockchain... You'll need at least 2 primary static seeds running to prevent future corruption of the"test/private" blockchain. |
Simulanics, thank you for the time and detailed answer. |
Up until the latest release of Geth (Parity responded much faster to fix the issue), there was a bug with block validations for mining. Older clients did not check for the issue, and the updated clients do. Before, you could inject blocks with null data attached to a transaction, and since there was nothing to validate, they simply "slipped through" and were seen as valid transactions. The issue existed for a good 4-5 months before being fixed, unfortunately. View these to learn more about the issue: https://ethereumworldnews.com/mining-empty-blocks-ethereum-could-be-a-problem/ Empty blocks are now dropped from validations before being added to the blockchain. |
I have the same issue, just try upgrading Geth to 1.8.21 or higher |
updated geth to the last version, 1.8.23 and it sorted out all the errors. Thanks! |
I think the root cause was a corrupt db, closing this |
Hi there,
please note that this is an issue tracker reserved for bug reports and feature requests.
For general questions please use the gitter channel or the Ethereum stack exchange at https://ethereum.stackexchange.com.
System information
Geth version:
1.8.20
OS & Version: Windows/Linux/OSX
Commit hash : (if
develop
)Expected behaviour
synchronisation as usual
Actual behaviour
The text was updated successfully, but these errors were encountered: