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

IF: Populated fork db ASAP; Vote processing off the main thread #2385

Merged
merged 32 commits into from
Apr 10, 2024

Conversation

heifner
Copy link
Member

@heifner heifner commented Apr 8, 2024

  • Add blocks to the fork db as soon as header validation is complete. They are added off the main thread (net threads).
    • Move logging of received blocks to the controller since many are processed in maybe_switch_forks and would not be logged by the producer_plugin after a call to push_block otherwise.
  • Call log_irreversible even when head is not updated as processed qcs can move irreversible at any time.
  • Integrate QC and consider voting as soon as header validation is complete off the main thread (net threads).
  • Add logging to app().quit() to be able to determine if nodeos is stopped via a SIGTERM.

Does not fully resolve #2102. Still need to move the processing into a voting thread pool. That will come as a separate PR as the changes here already are rather extensive.

…orks now also can apply staged blocks in the fork db.
… to terminate at a block don't put any blocks above that in the fork database.
@heifner heifner added the OCI Work exclusive to OCI team label Apr 8, 2024
@heifner heifner linked an issue Apr 8, 2024 that may be closed by this pull request
libraries/chain/block_state.cpp Show resolved Hide resolved
libraries/chain/hotstuff/hotstuff.cpp Outdated Show resolved Hide resolved
libraries/chain/hotstuff/hotstuff.cpp Show resolved Hide resolved
libraries/chain/hotstuff/hotstuff.cpp Show resolved Hide resolved
libraries/chain/controller.cpp Show resolved Hide resolved
libraries/chain/controller.cpp Outdated Show resolved Hide resolved
libraries/chain/controller.cpp Show resolved Hide resolved
libraries/chain/controller.cpp Outdated Show resolved Hide resolved
libraries/chain/controller.cpp Outdated Show resolved Hide resolved
libraries/chain/controller.cpp Show resolved Hide resolved
libraries/chain/controller.cpp Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OCI Work exclusive to OCI team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

IF: Move vote processing off the net/main thread
3 participants