-
Notifications
You must be signed in to change notification settings - Fork 80
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
RemoveUntraceableHeaders #3750
RemoveUntraceableHeaders #3750
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3750 +/- ##
==========================================
+ Coverage 82.83% 82.98% +0.15%
==========================================
Files 335 335
Lines 46850 46782 -68
==========================================
+ Hits 38806 38821 +15
+ Misses 6450 6367 -83
Partials 1594 1594 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's too easy to forget about some part of the code that uses headers. We need to test:
- Chain state reset and further node synchronisation, just ensure that it goes normally. I didn't find anything in the code, but may be we missed something.
- Chain work with GC on/off, StateRootInheader on/off and
KeepOnlyLatestState
config on/off. Check that headers are removed properly, check that the node can be restarted and the rest of services work correctly. - Ideally, P2P state exchange extension, but right now it's possible to test only with NeoFSBlockFetcher off (Implement headers fetching via NeoFS BlockFetcher service #3574).
With blocks available from NeoFS we can drop them from the local DB. Signed-off-by: Roman Khimov <roman@nspcc.ru>
Signed-off-by: Roman Khimov <roman@nspcc.ru>
It's there since 423c788, but looks like it never changed anything, the same thing is done six lines above and tgtBlock is not changed since. Signed-off-by: Roman Khimov <roman@nspcc.ru>
Transfer data is timestamp-based, previously it always had and used headers, no we can go via a small cache (we don't want it to grow or be stored forever). Otherwise it's unable to do the job: 2024-12-13T12:55:15.056+0300 ERROR failed to find block header for transfer GC {"time": "19.066µs", "error": "key not found"} Signed-off-by: Roman Khimov <roman@nspcc.ru>
Be a nice neighbor, try to reply with whatever headers we have, don't fail completely because of a single missing header. Signed-off-by: Roman Khimov <roman@nspcc.ru>
642416d
to
90b6a42
Compare
Problem
Keeping headers we no longer need.
Solution
Remove them along with blocks.