initialsync

package
v0.0.0-...-0064a47 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 26, 2024 License: GPL-3.0 Imports: 42 Imported by: 0

Documentation

Overview

Package initialsync includes all initial block download and processing logic for the beacon node, using a round robin strategy and a finite-state-machine to handle edge-cases in a beacon node's sync status.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	P2P                 p2p.P2P
	DB                  db.NoHeadAccessDatabase
	Chain               blockchainService
	StateNotifier       statefeed.Notifier
	BlockNotifier       blockfeed.Notifier
	ClockWaiter         startup.ClockWaiter
	InitialSyncComplete chan struct{}
	BlobStorage         *filesystem.BlobStorage
}

Config to set up the initial sync service.

type Option

type Option func(*Service)

Option is a functional option for the initial-sync Service.

func WithSyncChecker

func WithSyncChecker(checker *SyncChecker) Option

WithSyncChecker registers the initial sync service in the checker.

func WithVerifierWaiter

func WithVerifierWaiter(viw *verification.InitializerWaiter) Option

WithVerifierWaiter sets the verification.InitializerWaiter for the initial-sync Service.

type Service

type Service struct {
	// contains filtered or unexported fields
}

Service service.

func NewService

func NewService(ctx context.Context, cfg *Config, opts ...Option) *Service

NewService configures the initial sync service responsible for bringing the node up to the latest head of the blockchain.

func (*Service) Initialized

func (s *Service) Initialized() bool

Initialized returns true if initial sync has been started.

func (*Service) Resync

func (s *Service) Resync() error

Resync allows a node to start syncing again if it has fallen behind the current network head.

func (*Service) Start

func (s *Service) Start()

Start the initial sync service.

func (*Service) Status

func (s *Service) Status() error

Status of initial sync.

func (*Service) Stop

func (s *Service) Stop() error

Stop initial sync.

func (*Service) Synced

func (s *Service) Synced() bool

Synced returns true if initial sync has been completed.

func (*Service) Syncing

func (s *Service) Syncing() bool

Syncing returns true if initial sync is still running.

type SyncChecker

type SyncChecker struct {
	Svc *Service
}

SyncChecker allows other services to check the current status of initial-sync and use that internally in their service.

func (*SyncChecker) Synced

func (s *SyncChecker) Synced() bool

Synced returns the status of the service.

Directories

Path Synopsis
Package testing includes useful mocks for testing initial sync status in unit tests.
Package testing includes useful mocks for testing initial sync status in unit tests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL