mirror of
https://github.com/status-im/nimbus-eth1.git
synced 2025-02-14 21:19:07 +00:00
* Update nearby/neighbour leaf nodes finder details: Update return error codes so that in the case that there is no more leaf node beyond the search direction, the particular error code `NearbyBeyondRange` is returned. * Compile largest interval range containing only this leaf point why: Will be needed in snap sync for adding single leaf nodes to the range of already allocated nodes. * Reorg `hexary_inspect.nim` why: Merged the nodes collecting algorithm for persistent and in-memory into a single generic function `hexary_inspect.inspectTrieImpl()` * Update fetching accounts range failure handling in `rangeFetchAccounts()` why: Rejected response leads now to fetching for another account range. Only repeated failures (or all done) terminate the algorithm. * Update accounts healing why: + Fixed looping over a bogus node response that could not inserted into the database. As a solution, these nodes are locally registered and not asked for in this download cycle. + Sub-optimal handling of interval range for a healed account leaf node. Now the maximal range interval containing this node is registered as processed which leafs to de-fragementation of the processed (and unprocessed) range list(s). So *gap* ranges which are known not to cover any account leaf node are not asked for on the network, anymore. + Sporadically remove empty interval ranges (if any) * Update logging, better variable names
88 lines
1.8 KiB
Nim
88 lines
1.8 KiB
Nim
# nimbus-eth1
|
|
# Copyright (c) 2021 Status Research & Development GmbH
|
|
# Licensed under either of
|
|
# * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
|
|
# http://www.apache.org/licenses/LICENSE-2.0)
|
|
# * MIT license ([LICENSE-MIT](LICENSE-MIT) or
|
|
# http://opensource.org/licenses/MIT)
|
|
# at your option. This file may not be copied, modified, or distributed
|
|
# except according to those terms.
|
|
|
|
type
|
|
HexaryError* = enum
|
|
NothingSerious = 0
|
|
|
|
AccountNotFound
|
|
AccountsNotSrictlyIncreasing
|
|
AccountRangesOverlap
|
|
LowerBoundAfterFirstEntry
|
|
LowerBoundProofError
|
|
NodeNotFound
|
|
RlpEncoding
|
|
SlotsNotFound
|
|
SlotsNotSrictlyIncreasing
|
|
TrieLoopAlert
|
|
TrieIsEmpty
|
|
TrieIsLockedForPerusal
|
|
TooManyProcessedChunks
|
|
TooManySlotAccounts
|
|
NoAccountsYet
|
|
|
|
# debug
|
|
LeafMaxExceeded
|
|
GarbledNextLeaf
|
|
|
|
# snap handler
|
|
DataSizeError
|
|
|
|
# range
|
|
LeafNodeExpected
|
|
FailedNextNode
|
|
|
|
# nearby/boundary proofs
|
|
NearbyExtensionError
|
|
NearbyBranchError
|
|
NearbyGarbledNode
|
|
NearbyNestingTooDeep
|
|
NearbyUnexpectedNode
|
|
NearbyFailed
|
|
NearbyEmptyPath
|
|
NearbyLeafExpected
|
|
NearbyDanglingLink
|
|
NearbyPathTail
|
|
NearbyBeyondRange
|
|
|
|
# envelope
|
|
DecomposeDegenerated
|
|
DecomposeDisjunct
|
|
|
|
# import
|
|
DifferentNodeValueExists
|
|
ExpectedNodeKeyDiffers
|
|
Rlp2Or17ListEntries
|
|
RlpBlobExpected
|
|
RlpBranchLinkExpected
|
|
RlpExtPathEncoding
|
|
RlpNonEmptyBlobExpected
|
|
|
|
# interpolate
|
|
AccountRepairBlocked
|
|
InternalDbInconsistency
|
|
RightBoundaryProofFailed
|
|
RootNodeMismatch
|
|
RootNodeMissing
|
|
|
|
# bulk storage
|
|
AddBulkItemFailed
|
|
CannotOpenRocksDbBulkSession
|
|
CommitBulkItemsFailed
|
|
NoRocksDbBackend
|
|
UnresolvedRepairNode
|
|
OSErrorException
|
|
IOErrorException
|
|
ExceptionError
|
|
StateRootNotFound
|
|
|
|
# End
|
|
|