-
Notifications
You must be signed in to change notification settings - Fork 42
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
Light client - rejects block on live sync push event #2289
Comments
Unfortunately no reason is given in the WARN message. Could you enable TRACE logs and see if any reason is logged? |
Head push operation failed because of Invalid block: Missing body |
Interesting! I learned from the test branch linked in #2288 (comment) that macro blocks always need to be gossiped with their body. So some node somewhere is sending them without body, and the light node cannot disregard the message and wait for another one. Or maybe that's not how gossipsub works 🤷 |
@sisou those rejections always come from peer with ID |
Haha, oh shit, really? I thought this was an older issue. How I read the code in that branch, that shouldn't be happening though. @nibhar |
What is happening here is that in the |
Fixed in aed4c43 and redeployed. |
Still seems like a problem that you can DoS a light client like this. |
New issue checklist
README
General information
Bug report
It has been observed that running a light client for some time, causes the node to reject a block at some point. This prevents the node from accepting new blocks and thus falls behind. It is noteworthy that all the rejected blocks are macro blocks so far.
The node doesn't lose consensus as it keeps receiving gossipsubs. Eventually the block queue notices that the gossipsubs are to too far ahead (head_height + window_ahead_max) and starts a macro sync. Which brings the node back to the actual head of the chain and can from there on accept new blocks properly. Until the node rejects a block again and then this cycle repeats itself.
Although the blocks are rejected, they actually end up on the blockchain. Here are some example hashes which can be found in the attached log file:
Expected behavior
Be able to push and accept newly received blocks
Actual behavior
Rejecting some blocks.
Reason:
Head push operation failed because of Invalid block: Missing body
Steps to reproduce
Set the sync_mode to light in the client.toml and run the client.
Crash log? Screenshots? Videos? Sample project?
Search the log file for
Rejected block
light-client-rejects-live-push-event.log
The text was updated successfully, but these errors were encountered: