# Trait ethcore::snapshot::SnapshotService [−] [src]

    pub trait SnapshotService: Sync + Send {
        fn manifest(&self) -> Option<ManifestData>;
        fn chunk(&self, hash: H256) -> Option<Bytes>;
        fn status(&self) -> RestorationStatus;
        fn begin_restore(&self, manifest: ManifestData);
        fn abort_restore(&self);
        fn restore_state_chunk(&self, hash: H256, chunk: Bytes);
        fn restore_block_chunk(&self, hash: H256, chunk: Bytes);
        fn provide_canon_hashes(&self, canonical: &[(u64, H256)]);
    }

The interface for a snapshot network service. This handles: - restoration of snapshots to temporary databases. - responding to queries for snapshot manifests and chunks

## Required Methods

### `fn manifest(&self) -> Option<ManifestData>`

Query the most recent manifest data.

### `fn chunk(&self, hash: H256) -> Option<Bytes>`

Get raw chunk for a given hash.

### `fn status(&self) -> RestorationStatus`

Ask the snapshot service for the restoration status.

### `fn begin_restore(&self, manifest: ManifestData)`

Begin snapshot restoration. If restoration in-progress, this will reset it. From this point on, any previous snapshot may become unavailable.

### `fn abort_restore(&self)`

Abort an in-progress restoration if there is one.

### `fn restore_state_chunk(&self, hash: H256, chunk: Bytes)`

Feed a raw state chunk to the service to be processed asynchronously. no-op if not currently restoring.

### `fn restore_block_chunk(&self, hash: H256, chunk: Bytes)`

Feed a raw block chunk to the service to be processed asynchronously. no-op if currently restoring.

### `fn provide_canon_hashes(&self, canonical: &[(u64, H256)])`

Give the restoration in-progress some canonical block hashes for extra verification (performed at the end)

## Trait Implementations

### `impl IpcConfig for SnapshotService`
[src]

#### `fn api_version() -> Version`

Current service api version Should be increased if any of the methods changes signature Read more

#### `fn protocol_version() -> Version`

Current ipc protocol version Should be increased only if signature of system methods changes Read more

#### `fn handshake(handshake: &Handshake) -> bool`

Default handshake requires exact versions match

## Implementors

- `impl SnapshotService for Service`

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result
+
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)