rs-ipfs / rust-ipfs

The InterPlanetary File System (IPFS), implemented in Rust.
Apache License 2.0
1.27k stars 165 forks source link

graphsync implementation #167

Open dvc94ch opened 4 years ago

vmx commented 4 years ago

Chainsafe also has an issue about Graphsync: https://github.com/ChainSafe/forest/issues/379

In case someone is interested in implementing Graphsync, I can make an introduction, so that we don't have double efforts, but some collaboration :)

aphelionz commented 4 years ago

A proposal for just the name of the crate: libp2p-graphsync as discussed on matrix.

rklaehn commented 4 years ago

We might need something for syncing that is a bit more sophisticated than bitswap at actyx. Maybe we can just implement graphsync instead of coming up with our own thing. Is there a good high level intro about it somewhere?

aphelionz commented 4 years ago

Good question!

I might start with the Go implementation, which links to the spec here.

I bet @hannahhoward, @rvagg, and/or @warpfork might have other resources to point to and ideas.

rvagg commented 4 years ago

I think the go impl and the spec docs are all there to go on at the moment. There's also quite a bit of discussion in the spec repo's issues prior to the spec landing (that's how I learnt the most about graphsync when I was onboarding). But if you're going down this path then it would be great if you could help flesh the spec out a bit more to make it more useful. We're going to need to go through this exercise in JavaScript at some point too.