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

tracking issue - invalid rangeproof handling (good header, bad block) #3605

Closed
4 tasks done
antiochp opened this issue Mar 19, 2021 · 3 comments
Closed
4 tasks done
Labels
P1: Critical Top priority for a release
Milestone

Comments

@antiochp
Copy link
Member

antiochp commented Mar 19, 2021

The following PRs were merged to current/5.0.x as part of the emergency hardfork on 20210318 -

Additionally the following PR was merged to master -

Some of this work was "tactical" and we do not need this on master.
Some of this work was "strategic" and we do want it on master.

This tracking issue is a central place to document what needs to be on master and what we can omit.
There are also some additional changes/improvements that we want to consider, off the back of the hardfork and fix.

This is a work in progress and details will be updated as we go.
This is not time-critical but the proposed upcoming 5.1.0 release is a good candidate for cleaning this up if possible.


This is rough first draft of where we stand currently -

  • Currently the rangeproof verification cache is disabled on both master and 5.0.x branches.
    • We need to decide if we want to reintroduce this fully and what the cache key impl needs to be.
    • tromp had a question about utxhohashset (fast sync state?) validation and where/how caching is involved
  • "rewind bad block" should not be required on master as it was simply a hot fix to get past the "bad fork"
  • We do want to propagate the InvalidBlockProof error (to ban peers correctly)
    • the whole error/bool/ban logic needs a rethink and cleanup as its hard to reason about currently
  • Related [5.0.x] rewind bad headers, ban on explicit bad headers #3603 (on 5.0.x branch) "rewind headers and ban"
    • "rewind headers" also a hot fix and not required on master
  • but we do need to handle the "good header, bad block" scenario robustly somehow and this needs impl on master
    • one option is explicit list of "bad headers" as we have in that PR but ideally this is dynamic

Tasks broken out as separate issues -

@trevyn
Copy link
Contributor

trevyn commented Mar 22, 2021

Question: I understand that there is a lot of work that will go into fully resolving this in the way that we would like. Given that the network has settled a bit, what is the minimal set that would allow an "acceptable" release from master now? Is the already-applied removal of verifier caches enough, or do we also strictly need improved banning behavior and "good header, bad block" detection?

@tromp
Copy link
Contributor

tromp commented Mar 23, 2021

This time we only needed to rewind less than a day back, but it would be good to prepare for a possible future need to rewind beyond the 1 week horizon. Perhaps that can rely on the existence of block archive nodes. Since this entails quite a bit more work, it should probably be delayed for a much later release. But I just wanted to leave a note here...

@antiochp
Copy link
Member Author

Closing this issue - all PRs are merged and prepped for an initial 5.1.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P1: Critical Top priority for a release
Projects
None yet
Development

No branches or pull requests

3 participants