ipfs/go-graphsync

Backward compatibility for graphsync 2.1 protocol

hannahhoward opened this issue · 0 comments

Goals

If we are successful in building out the graphsync metadata requests, in order to ship it, we need to make it backward compatbile.

Suggested Implementation

I am inclined to defer to Libp2p versioning, even though I think it makes sense to wrap messages in a 2_1 header, wrather than try to do versioning with wrappers.

The actions to take are:

  • If I make a metadata only request to a peer, and in connecting we find out they only support 2.0 requests, just error.
  • You really don't need to do anything on the responder side, as it should only get 2.1 requests from 2.1 peers.
  • For all other types of requests, just downgrade to a 2.0 message if the peer only supports 2.0
  • I think that's it.