Versions in this module Expand all Collapse all v0 v0.1.0 Apr 17, 2025 v0.0.2 Mar 27, 2025 Changes in this version + var ErrAlreadyClosed = errors.New("Manager is closed") + var ErrAlreadyStarted = errors.New("cannot start a Manager that has already been started") + var ErrFinishedWithUnexpectedRoot = errors.New("finished syncing with an unexpected root") + var ErrMinProofSizeIsTooLarge = errors.New("cannot generate any proof within the requested limit") + 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 ErrZeroWorkLimit = errors.New("simultaneous work limit must be greater than 0") + type Client interface + GetChangeProof func(ctx context.Context, request *pb.SyncGetChangeProofRequest, verificationDB DB) (*merkledb.ChangeOrRangeProof, error) + GetRangeProof func(ctx context.Context, request *pb.SyncGetRangeProofRequest) (*merkledb.RangeProof, error) + func NewClient(config *ClientConfig) (Client, error) + type ClientConfig struct + BranchFactor merkledb.BranchFactor + Hasher merkledb.Hasher + Log logging.Logger + Metrics SyncMetrics + NetworkClient NetworkClient + StateSyncNodeIDs []ids.NodeID + type DB interface + type Manager struct + func NewManager(config ManagerConfig) (*Manager, error) + func (m *Manager) Close() + func (m *Manager) Error() error + func (m *Manager) Start(ctx context.Context) error + func (m *Manager) UpdateSyncTarget(syncTargetRoot ids.ID) error + func (m *Manager) Wait(ctx context.Context) error + type ManagerConfig struct + BranchFactor merkledb.BranchFactor + Client Client + DB DB + Log logging.Logger + SimultaneousWorkLimit int + TargetRoot ids.ID + type MockClient struct + func NewMockClient(ctrl *gomock.Controller) *MockClient + func (m *MockClient) EXPECT() *MockClientMockRecorder + func (m *MockClient) GetChangeProof(arg0 context.Context, arg1 *sync.SyncGetChangeProofRequest, arg2 DB) (*merkledb.ChangeOrRangeProof, error) + func (m *MockClient) GetRangeProof(arg0 context.Context, arg1 *sync.SyncGetRangeProofRequest) (*merkledb.RangeProof, error) + type MockClientMockRecorder struct + func (mr *MockClientMockRecorder) GetChangeProof(arg0, arg1, arg2 any) *gomock.Call + func (mr *MockClientMockRecorder) GetRangeProof(arg0, arg1 any) *gomock.Call + type MockNetworkClient struct + func NewMockNetworkClient(ctrl *gomock.Controller) *MockNetworkClient + func (m *MockNetworkClient) AppRequestFailed(arg0 context.Context, arg1 ids.NodeID, arg2 uint32) error + func (m *MockNetworkClient) AppResponse(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 []byte) error + func (m *MockNetworkClient) Connected(arg0 context.Context, arg1 ids.NodeID, arg2 *version.Application) error + func (m *MockNetworkClient) Disconnected(arg0 context.Context, arg1 ids.NodeID) error + func (m *MockNetworkClient) EXPECT() *MockNetworkClientMockRecorder + func (m *MockNetworkClient) Request(arg0 context.Context, arg1 ids.NodeID, arg2 []byte) ([]byte, error) + func (m *MockNetworkClient) RequestAny(arg0 context.Context, arg1 []byte) (ids.NodeID, []byte, error) + type MockNetworkClientMockRecorder struct + func (mr *MockNetworkClientMockRecorder) AppRequestFailed(arg0, arg1, arg2 any) *gomock.Call + func (mr *MockNetworkClientMockRecorder) AppResponse(arg0, arg1, arg2, arg3 any) *gomock.Call + func (mr *MockNetworkClientMockRecorder) Connected(arg0, arg1, arg2 any) *gomock.Call + func (mr *MockNetworkClientMockRecorder) Disconnected(arg0, arg1 any) *gomock.Call + func (mr *MockNetworkClientMockRecorder) Request(arg0, arg1, arg2 any) *gomock.Call + func (mr *MockNetworkClientMockRecorder) RequestAny(arg0, arg1 any) *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, request []byte) (ids.NodeID, []byte, error) + func NewNetworkClient(appSender common.AppSender, myNodeID ids.NodeID, maxActiveRequests int64, ...) (NetworkClient, error) + type NetworkServer struct + func NewNetworkServer(appSender common.AppSender, db DB, log logging.Logger) *NetworkServer + func (s *NetworkServer) AppRequest(ctx 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 ResponseHandler interface + OnFailure func() + OnResponse func(response []byte) + type SyncMetrics interface + RequestFailed func() + RequestMade func() + RequestSucceeded func() + func NewMetrics(namespace string, reg prometheus.Registerer) (SyncMetrics, error)