feat: bootstrap and pubsub replicators#87
Merged
tabcat merged 69 commits intohldb:masterfrom Sep 18, 2023
Merged
Conversation
Contributor
Author
|
The bootstrap replicator gets stuck trying to fetch a block regardless of what blockstore is used. |
14cf8da to
52d8b17
Compare
Member
|
These changes affected more than I anticipated so not going to merge this yet. Will get #103 merged first. Large parts of this may need to be rewritten, mostly tests, but will make sure it's easy. |
3eb4408 to
5586eb7
Compare
This file contains hidden or 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
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 adds two new replicators: pubsub and bootstrap.
The pubsub replicator is a simplified version of the live replicator, sending heads on a shared pubsub channel. The bootstrap replicator uses content routing to locate peers with the database block then requests heads from them.
These two replicators work in conjunction with each other, the pubsub replicator can only handle live updates whereas the bootstrap replicator is for obtaining heads from peers when it first starts.
Note that the bootstrap replicator relies on a DHT service to be added to the Libp2p config.
Both of these currently lack tests and may contain bugs.