Skip to content
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

Message compatibility on graphsync #102

Merged
merged 2 commits into from
Oct 14, 2020

Conversation

hannahhoward
Copy link
Collaborator

Goals

We currently support data transfer protocols v1_1 & v1_0 at the libp2p level, but we weren't properly handling them as extensions to graphsync

Implementation

  • define named Graphsync extensions for 1_0 & 1_1
  • when opening channels or sending messages in extensions, where possible, always write both versions
  • when reading graphsync requests and checking for extensions, prioritize 1_1 if present, but read 1_0 if not
  • add a config options in setting up the graphsync transport so that we can turn of 1_0/1_1 extensions as needed
  • setup integrations tests to ALSO test graphsync sending only certain types of extensions
  • verified in practice also with real client/miner running different versions of protocol
  • also update to tagged go-graphsync

while we had setup message comptability over libp2p we had not handled if the other peer only sends
message1_0 over graphsync. Support this by always sending both extensions when possible and
defaulting to 1_1 when present
@hannahhoward hannahhoward merged commit ff7f826 into master Oct 14, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant