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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions