-
Notifications
You must be signed in to change notification settings - Fork 170
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
Complete IBD & Relay Flows #138
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
michaelsutton
force-pushed
the
flows-ibd-3
branch
from
March 9, 2023 17:44
8fb450e
to
2f6558a
Compare
someone235
requested changes
Mar 12, 2023
# Conflicts: # consensus/src/consensus/mod.rs
… multiple locations concurrently (with different order guarantees)
…expects + like golang imp)
michaelsutton
force-pushed
the
flows-ibd-3
branch
from
March 14, 2023 09:25
219f5d0
to
9f22b5f
Compare
someone235
requested changes
Mar 14, 2023
someone235
approved these changes
Mar 14, 2023
smartgoo
pushed a commit
to smartgoo/rusty-kaspa
that referenced
this pull request
Jun 18, 2024
* avoid printing full messages on message mismatch * initial orphans pool with basic tests passing # Conflicts: # consensus/src/consensus/mod.rs * queue duplication removal * blockrelay mod * initial relay invs flow * more details of relay invs flow * fix minor rebase issues * fix consensus api * sync missing block bodies * ibd chain negotiation (to be tested) * ibd <-> invs channel * is ibd running * ibd type decision * temp patch * server side never dequeues with timeout * temp print * fix filter direction * low hash should be the highest with body * bug fix: flip low and high on locator request * parallel block body processing * sync block relay past * optimize unorphaning * various fixes to antipast iteration * fix monitor prints * make monitor an async service and avoid the thread waste * use try_join_all wherever possible * progress reports * fix of subtle bug related to queuing the same block to consensus from multiple locations concurrently (with different order guarantees) * take the processed task out of pending for more accurate state maintaining * avoid heap allocation in the common case * virtual merge depth rule to reject unmergable relays * can simply use current pruning point (which is what merge depth algo expects + like golang imp) * move params and config to core + pass to flow ctx * comments + minor * relay all new virtual parents * manage shared block requests * fix ibd completion message * ibd type decision making * imp validate_staging_timestamps * address review comments * fix rebase errors * temp workaround * temp workaround #2 * review comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements the complete relay inv (inventory of block hashes) and IBD P2P flows, such that a node can now sync and keep live with current mainnet.
This can be seen by passing a mainnet node
ip:port
to the--connect
cmd flag of thekaspad
bin.Some changes from golang implementation were introduced in order to utilize the more powerful and parallel-ready consensus engine.