mirror of
https://github.com/status-im/nimbus-eth1.git
synced 2025-01-10 12:26:02 +00:00
465d694834
* Rename FilterID => QueueID why: The current usage does not identify a particular filter but uses it as storage tag to manage it on the database (to be organised in a set of FIFOs or queues.) * Split `aristo_filter` source into sub-files why: Make space for filter management API * Store filter queue IDs in pairs on the backend why: Any pair will will describe a FIFO accessed by bottom/top IDs * Reorg some source file names why: The "aristo_" prefix for make local/private files is tedious to use, so removed. * Implement filter slot scheduler details: Filters will be stored on the database on cascaded FIFOs. When a FIFO queue is full, some filter items are bundled together and stored on the next FIFO.
46 lines
1.3 KiB
Nim
46 lines
1.3 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.
|
|
|
|
{.push raises: [].}
|
|
|
|
import
|
|
eth/[common, trie/nibbles],
|
|
./aristo_desc/desc_identifiers
|
|
|
|
const
|
|
EmptyBlob* = seq[byte].default
|
|
## Useful shortcut (borrowed from `sync/snap/constants.nim`)
|
|
|
|
EmptyNibbleSeq* = EmptyBlob.initNibbleRange
|
|
## Useful shortcut (borrowed from `sync/snap/constants.nim`)
|
|
|
|
EmptyVidSeq* = seq[VertexID].default
|
|
## Useful shortcut
|
|
|
|
EmptyQidPairSeq* = seq[(QueueID,QueueID)].default
|
|
## Useful shortcut
|
|
|
|
VOID_CODE_HASH* = EMPTY_CODE_HASH
|
|
## Equivalent of `nil` for `Account` object code hash
|
|
|
|
VOID_HASH_KEY* = EMPTY_ROOT_HASH.to(HashKey)
|
|
## Void equivalent for Merkle hash value
|
|
|
|
VOID_HASH_LABEL* = HashLabel(root: VertexID(0), key: VOID_HASH_KEY)
|
|
## Void equivalent for Merkle hash value
|
|
|
|
DEFAULT_QID_QUEUES* = [
|
|
(128, 0), ## Consecutive list of 128 filter slots
|
|
( 64, 63), ## Overflow list, 64 filters, skipping 63 filters in-between
|
|
( 64, 127), ## ..
|
|
( 64, 255)]
|
|
|
|
# End
|