Documentation ¶
Index ¶
- func DownloadToFile(ctx context.Context, filePathNetwork string, filePathLocal string, ...) error
- func NewProgressReporter(log *logger.Logger, header string, expected uint64) io.Writer
- func NewReaderWithClose(r io.Reader, closeFun func() error) io.ReadCloser
- type Downloader
- type MockedSnapshotManager
- func (smrT MockedSnapshotManager) BlockCommittedAsync(snapshotInfo SnapshotInfo)
- func (smrT MockedSnapshotManager) GetLoadedSnapshotStateIndex() uint32
- func (msmT *MockedSnapshotManager) IsSnapshotReady(snapshotInfo SnapshotInfo) bool
- func (msmT *MockedSnapshotManager) WaitSnapshotCreateFinalisedCount(count uint32, sleepTime time.Duration, maxSleepCount int) bool
- func (msmT *MockedSnapshotManager) WaitSnapshotCreateRequestCount(count uint32, sleepTime time.Duration, maxSleepCount int) bool
- func (msmT *MockedSnapshotManager) WaitSnapshotCreatedCount(count uint32, sleepTime time.Duration, maxSleepCount int) bool
- type SnapshotInfo
- type SnapshotManager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DownloadToFile ¶
func DownloadToFile( ctx context.Context, filePathNetwork string, filePathLocal string, timeout time.Duration, addProgressReporter func(io.Reader, string, uint64) io.Reader, ) error
Use downloader to download data to file. Temporary file is created while download is in progress and only on finishing the download, the file is renamed to provided name. Progress reporter wrapped in `TeeReader` (or any other reader) can be wrapped around downloader (provided by parameter of the function). If it is not needed, `addProgressReporter` function should return the reader in the parameter.
func NewProgressReporter ¶
func NewReaderWithClose ¶
func NewReaderWithClose(r io.Reader, closeFun func() error) io.ReadCloser
Adds `Close` method to the `Reader`. This is useful, when `ReadCloser` must be wrapped in some other `Reader`, which does not provide close method. The result is that by calling `Close` to the wrapping `Reader`, the wrapped `ReadCloser` is closed.
Types ¶
type Downloader ¶
func NewDownloader ¶
func NewDownloader( ctx context.Context, filePath string, chunkSize ...uint64, ) (Downloader, error)
Downloader is a reader, which reads from network URL in chunks (if webserver supports that). Only request to read the first chunk is made on downloader creation. Requests to read other chunks are made once they are needed by `Read` calls. The user of downloader can use `Read` independently of how many chunks will have to be downloaded to complete the operation.
type MockedSnapshotManager ¶
type MockedSnapshotManager struct {
// contains filtered or unexported fields
}
func NewMockedSnapshotManager ¶
func NewMockedSnapshotManager( t *testing.T, createPeriod uint32, delayPeriod uint32, origStore state.Store, nodeStore state.Store, snapshotToLoad SnapshotInfo, snapshotCommitTime time.Duration, timeProvider sm_gpa_utils.TimeProvider, log *logger.Logger, ) *MockedSnapshotManager
func (MockedSnapshotManager) BlockCommittedAsync ¶
func (smrT MockedSnapshotManager) BlockCommittedAsync(snapshotInfo SnapshotInfo)
func (MockedSnapshotManager) GetLoadedSnapshotStateIndex ¶
func (smrT MockedSnapshotManager) GetLoadedSnapshotStateIndex() uint32
func (*MockedSnapshotManager) IsSnapshotReady ¶
func (msmT *MockedSnapshotManager) IsSnapshotReady(snapshotInfo SnapshotInfo) bool
func (*MockedSnapshotManager) WaitSnapshotCreateFinalisedCount ¶
func (*MockedSnapshotManager) WaitSnapshotCreateRequestCount ¶
func (*MockedSnapshotManager) WaitSnapshotCreatedCount ¶
type SnapshotInfo ¶
type SnapshotInfo interface { StateIndex() uint32 Commitment() *state.L1Commitment TrieRoot() trie.Hash BlockHash() state.BlockHash String() string Equals(SnapshotInfo) bool }
func NewSnapshotInfo ¶
func NewSnapshotInfo(index uint32, commitment *state.L1Commitment) SnapshotInfo
type SnapshotManager ¶
type SnapshotManager interface { GetLoadedSnapshotStateIndex() uint32 BlockCommittedAsync(SnapshotInfo) }
SnapshotManager is responsible for servicing snapshot related queries in appropriate manner. Some of the requests are synchronous, but most of them are asynchronous. They can be handled in snapshot manager's thread or in another thread created by snapshot manager. Snapshot manager keeps and updates on request a list of available snapshots. However, only the information that snapshot exists is stored and not the entire snapshot. To store/load the snapshot, snapshot manager depends on `snapshotter`. Snapshot manager is also responsible for deciding if snapshot has to be created.
func NewEmptySnapshotManager ¶
func NewEmptySnapshotManager() SnapshotManager
func NewSnapshotManager ¶
func NewSnapshotManager( ctx context.Context, shutdownCoordinator *shutdown.Coordinator, chainID isc.ChainID, snapshotToLoad *state.BlockHash, createPeriod uint32, delayPeriod uint32, baseLocalPath string, baseNetworkPaths []string, store state.Store, metrics *metrics.ChainSnapshotsMetrics, log *logger.Logger, ) (SnapshotManager, error)