Skip to content

Responder sends no blocks, just metadata #372

@hannahhoward

Description

@hannahhoward

What

We introduce a new RequestType - Metadata - as follows:

type GraphSyncRequestType enum {
   # New means a new request
   | New     ("n")
   # Cancel means cancel the request referenced by request ID
   | Cancel  ("c")
   # Update means the extensions contain an update about this request
   | Update  ("u")
   # Restart means restart this request from the begging, respecting the any
   # DoNotSendCids/DoNotSendBlocks contained in the extensions--essentially a
   # cancel followed by a new
   # TODO: | Restart ("r")
   | Metadata ("m")
} representation string

For a metadata request, a responder responds as would normally, but simply never sends blocks for this request. This means they respond only with metadata.

Suggested implementation:

  • Add a call to the ResponseStream to disable block sending entirely, similar to the SkipFirstBlocks / IgnoreBlocks that when called, always does not send a block in future calls to Transaction
  • Modify the query preparer as needed
  • Handle the request type in the ResponseManager otherwise just like a new request for first implementation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions