pub enum ArchiveError {
Show 17 variants
Db(Box<Error>),
SchemaMismatch {
found: u32,
expected: u32,
},
InvalidStart(u64),
StartInPast {
from_block: u64,
head: u64,
},
NotWatched(Address),
AlreadyWatched {
address: Address,
from_block: u64,
},
SyncInProgress,
ConfigMismatch {
option: &'static str,
on_disk: String,
requested: String,
},
HeadBelowStart {
head: u64,
start: u64,
},
Source(SourceError),
Verification {
block: u64,
err: CodecError,
},
NoBalHash(u64),
ReorgBeyondHorizon(u64),
InconsistentSource(u64),
StartReplaced(u64),
Proof(ProofError),
Corrupt(&'static str),
}Expand description
Failures of the archive itself (storage, source, verification). Reads
use NotAvailable instead: a missing value is an answer, not a failure.
Variants§
Db(Box<Error>)
Embedded database error.
SchemaMismatch
The file was written by a build with a different key layout.
InvalidStart(u64)
from_block must be at least 1 (the pre-value record lives at from_block - 1).
StartInPast
Watching from a block the archive has already passed (or is applying
right now) is backfill, not watch.
NotWatched(Address)
The address is not on the watchlist.
AlreadyWatched
The address is already watched with a different start.
SyncInProgress
Another sync pass is running on this archive.
ConfigMismatch
The file was created with a different value of a creation-time option.
Fields
HeadBelowStart
A bootstrap was requested before the archive reached the watch start.
Source(SourceError)
The BAL / state source failed.
Verification
keccak(rlp(bal)) did not match the header. Sync stops here.
NoBalHash(u64)
The header has no BAL hash and allow_unverified is off.
ReorgBeyondHorizon(u64)
A reorg reached below the retained block hashes; the archive cannot find the fork point and must not guess.
InconsistentSource(u64)
The source keeps serving a block whose parent is not the block it
serves for number - 1 (pooled upstreams on different forks).
StartReplaced(u64)
Backfill found that the node’s block at the watch start is not the block the archive holds: the start was reorged. A forward sync resolves that; backfill will not guess which branch to extend.
Proof(ProofError)
A Merkle proof did not verify against the header’s state_root.
Corrupt(&'static str)
A stored record has an unexpected shape.
Trait Implementations§
Source§impl Debug for ArchiveError
impl Debug for ArchiveError
Source§impl Display for ArchiveError
impl Display for ArchiveError
Source§impl Error for ArchiveError
impl Error for ArchiveError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<ArchiveError> for NotAvailable
impl From<ArchiveError> for NotAvailable
Source§fn from(e: ArchiveError) -> Self
fn from(e: ArchiveError) -> Self
Source§impl From<CommitError> for ArchiveError
impl From<CommitError> for ArchiveError
Source§fn from(e: CommitError) -> Self
fn from(e: CommitError) -> Self
Source§impl From<CompactionError> for ArchiveError
impl From<CompactionError> for ArchiveError
Source§fn from(e: CompactionError) -> Self
fn from(e: CompactionError) -> Self
Source§impl From<DatabaseError> for ArchiveError
impl From<DatabaseError> for ArchiveError
Source§fn from(e: DatabaseError) -> Self
fn from(e: DatabaseError) -> Self
Source§impl From<Error> for ArchiveError
impl From<Error> for ArchiveError
Source§impl From<ProofError> for ArchiveError
impl From<ProofError> for ArchiveError
Source§fn from(source: ProofError) -> Self
fn from(source: ProofError) -> Self
Source§impl From<SourceError> for ArchiveError
impl From<SourceError> for ArchiveError
Source§fn from(source: SourceError) -> Self
fn from(source: SourceError) -> Self
Source§impl From<StorageError> for ArchiveError
impl From<StorageError> for ArchiveError
Source§fn from(e: StorageError) -> Self
fn from(e: StorageError) -> Self
Source§impl From<TableError> for ArchiveError
impl From<TableError> for ArchiveError
Source§fn from(e: TableError) -> Self
fn from(e: TableError) -> Self
Source§impl From<TransactionError> for ArchiveError
impl From<TransactionError> for ArchiveError
Source§fn from(e: TransactionError) -> Self
fn from(e: TransactionError) -> Self
Auto Trait Implementations§
impl !RefUnwindSafe for ArchiveError
impl !UnwindSafe for ArchiveError
impl Freeze for ArchiveError
impl Send for ArchiveError
impl Sync for ArchiveError
impl Unpin for ArchiveError
impl UnsafeUnpin for ArchiveError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more