Documentation
¶
Index ¶
Constants ¶
const ( MethodGetDiff = "GetDiff" MaxGetDiffResponseTime = 15 * time.Second )
Constants related to the GetDiff method.
const ( MethodGetCheckpoints = "GetCheckpoints" MaxGetCheckpointsResponseTime = 5 * time.Second MaxGetCheckpointsParallelRequests = 5 )
Constants related to the GetCheckpoints method.
const ( MethodGetCheckpointChunk = "GetCheckpointChunk" MaxGetCheckpointChunkResponseTime = 60 * time.Second )
Constants related to the GetCheckpointChunk method.
const StorageSyncProtocolID = "storagesync"
StorageSyncProtocolID is a unique protocol identifier for the storage sync protocol.
Variables ¶
var StorageSyncProtocolVersion = version.Version{Major: 1, Minor: 0, Patch: 0}
StorageSyncProtocolVersion is the supported version of the storage sync protocol.
Functions ¶
Types ¶
type Checkpoint ¶ added in v0.2202.0
type Checkpoint struct {
*checkpoint.Metadata
// Peers are the feedback structures of all the peers that have advertised this checkpoint.
Peers []rpc.PeerFeedback
}
Checkpoint contains checkpoint metadata together with peer information.
type Client ¶
type Client interface {
// GetDiff requests a write log of entries that must be applied to get from the first given root
// to the second one.
GetDiff(ctx context.Context, request *GetDiffRequest) (*GetDiffResponse, rpc.PeerFeedback, error)
// GetCheckpoints returns a list of checkpoint metadata for all known checkpoints.
GetCheckpoints(ctx context.Context, request *GetCheckpointsRequest) ([]*Checkpoint, error)
// GetCheckpointChunk requests a specific checkpoint chunk.
GetCheckpointChunk(
ctx context.Context,
request *GetCheckpointChunkRequest,
cp *Checkpoint,
) (*GetCheckpointChunkResponse, rpc.PeerFeedback, error)
}
Client is a storage sync protocol client.
type GetCheckpointChunkRequest ¶
type GetCheckpointChunkRequest struct {
Version uint16 `json:"version"`
Root storage.Root `json:"root"`
Index uint64 `json:"index"`
Digest hash.Hash `json:"digest"`
}
GetCheckpointChunkRequest is a GetCheckpointChunk request.
type GetCheckpointChunkResponse ¶
type GetCheckpointChunkResponse struct {
Chunk []byte `json:"chunk,omitempty"`
}
GetCheckpointChunkResponse is a respose to a GetCheckpointChunk request.
type GetCheckpointsRequest ¶
type GetCheckpointsRequest struct {
Version uint16 `json:"version"`
}
GetCheckpointsRequest is a GetCheckpoints request.
type GetCheckpointsResponse ¶
type GetCheckpointsResponse struct {
Checkpoints []*checkpoint.Metadata `json:"checkpoints,omitempty"`
}
GetCheckpointsResponse is a response to a GetCheckpoints request.
type GetDiffRequest ¶
type GetDiffRequest struct {
StartRoot storage.Root `json:"start_root"`
EndRoot storage.Root `json:"end_root"`
}
GetDiffRequest is a GetDiff request.
type GetDiffResponse ¶
GetDiffResponse is a response to a GetDiff request.