Versions in this module Expand all Collapse all v1 v1.9.8 Jun 28, 2023 Changes in this version + const Version + var ErrAcquiringSemaphore = errors.New("error acquiring semaphore") + var ErrAlreadyClosed = errors.New("StateSyncManager is closed") + var ErrAlreadyStarted = errors.New("cannot start a StateSyncManager that has already been started") + var ErrFinishedWithUnexpectedRoot = errors.New("finished syncing with an unexpected root") + var ErrNoClientProvided = errors.New("client is a required field of the sync config") + var ErrNoDatabaseProvided = errors.New("sync database is a required field of the sync config") + var ErrNoLogProvided = errors.New("log is a required field of the sync config") + var ErrNotEnoughBytes = errors.New("less bytes read than the specified length") + var ErrRequestFailed = errors.New("request failed") + var ErrZeroWorkLimit = errors.New("simultaneous work limit must be greater than 0") + var StateSyncVersion = &version.Application + type ChangeProofRequest struct + End []byte + EndingRoot ids.ID + Limit uint16 + Start []byte + StartingRoot ids.ID + func (r *ChangeProofRequest) Handle(ctx context.Context, nodeID ids.NodeID, requestID uint32, h Handler) error + func (r ChangeProofRequest) String() string + type Client interface + GetChangeProof func(ctx context.Context, request *ChangeProofRequest, ...) (*merkledb.ChangeProof, error) + GetRangeProof func(ctx context.Context, request *RangeProofRequest) (*merkledb.RangeProof, error) + func NewClient(config *ClientConfig) Client + type ClientConfig struct + Log logging.Logger + Metrics SyncMetrics + NetworkClient NetworkClient + StateSyncNodeIDs []ids.NodeID + type Handler interface + type MockClient struct + func NewMockClient(ctrl *gomock.Controller) *MockClient + func (m *MockClient) EXPECT() *MockClientMockRecorder + func (m *MockClient) GetChangeProof(arg0 context.Context, arg1 *ChangeProofRequest, arg2 *merkledb.Database) (*merkledb.ChangeProof, error) + func (m *MockClient) GetRangeProof(arg0 context.Context, arg1 *RangeProofRequest) (*merkledb.RangeProof, error) + type MockClientMockRecorder struct + func (mr *MockClientMockRecorder) GetChangeProof(arg0, arg1, arg2 interface{}) *gomock.Call + func (mr *MockClientMockRecorder) GetRangeProof(arg0, arg1 interface{}) *gomock.Call + type NetworkClient interface + AppRequestFailed func(context.Context, ids.NodeID, uint32) error + AppResponse func(context.Context, ids.NodeID, uint32, []byte) error + Connected func(context.Context, ids.NodeID, *version.Application) error + Disconnected func(context.Context, ids.NodeID) error + Request func(ctx context.Context, nodeID ids.NodeID, request []byte) ([]byte, error) + RequestAny func(ctx context.Context, minVersion *version.Application, request []byte) ([]byte, ids.NodeID, error) + TrackBandwidth func(nodeID ids.NodeID, bandwidth float64) + func NewNetworkClient(appSender common.AppSender, myNodeID ids.NodeID, maxActiveRequests int64, ...) NetworkClient + type NetworkServer struct + func NewNetworkServer(appSender common.AppSender, db *merkledb.Database, log logging.Logger) *NetworkServer + func (s *NetworkServer) AppRequest(_ context.Context, nodeID ids.NodeID, requestID uint32, deadline time.Time, ...) error + func (s *NetworkServer) HandleChangeProofRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, ...) error + func (s *NetworkServer) HandleRangeProofRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, ...) error + type RangeProofRequest struct + End []byte + Limit uint16 + Root ids.ID + Start []byte + func (r *RangeProofRequest) Handle(ctx context.Context, nodeID ids.NodeID, requestID uint32, h Handler) error + func (r RangeProofRequest) String() string + type Request interface + Handle func(ctx context.Context, nodeID ids.NodeID, requestID uint32, h Handler) error + type ResponseHandler interface + OnFailure func() + OnResponse func(response []byte) + type StateSyncConfig struct + Client Client + Log logging.Logger + SimultaneousWorkLimit int + SyncDB *merkledb.Database + TargetRoot ids.ID + type StateSyncManager struct + func NewStateSyncManager(config StateSyncConfig) (*StateSyncManager, error) + func (m *StateSyncManager) Close() + func (m *StateSyncManager) Error() error + func (m *StateSyncManager) StartSyncing(ctx context.Context) error + func (m *StateSyncManager) UpdateSyncTarget(syncTargetRoot ids.ID) error + func (m *StateSyncManager) Wait(ctx context.Context) error + type SyncMetrics interface + RequestFailed func() + RequestMade func() + RequestSucceeded func() + func NewMetrics(namespace string, reg prometheus.Registerer) (SyncMetrics, error) v1.9.8-rc.9 Jun 28, 2023