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.
Adds the peerstore interface with two backends: one that stores everything in memory, and another one that stores the entries in a JSON file on flush.
This PR heavily touches
datastore
crate as well. I wrotedatastore
by naively copying the Go interface. This was enough to get started withpeerstore
, but actually usingdatastore
made me realize the flaws that were in the Rust translation.Also adds @folsen's prototype of the
multihash
crate. I think it could definitely get some big improvements, but since it's working I haven't really touched it. Just like what I say in the previous paragraph fordatastore
, I think the best thing to do is make the changes only after we are confident in exactly which capabilities we need frommultihash
.