mirror of
https://github.com/status-im/nimbus-eth1.git
synced 2025-01-16 23:31:16 +00:00
ce713d95fc
* Extract sub-tree deletion functions into separate sub-modules * Move/rename `aristo_desc.accLruSize` => `aristo_constants.ACC_LRU_SIZE` * Lazily delete sub-trees why: This gives some control of the memory used to keep the deleted vertices in the cached layers. For larger sub-trees, keys and vertices might be on the persistent backend to a large extend. This would pull an amount of extra information from the backend into the cached layer. For lazy deleting it is enough to remember sub-trees by a small set of (at most 16) sub-roots to be processed when storing persistent data. Marking the tree root deleted immediately allows to let most of the code base work as before. * Comments and cosmetics * No need to import all for `Aristo` here * Kludge to make `chronicle` usage in sub-modules work with `fluffy` why: That `fluffy` would not run with any logging in `core_deb` is a problem I have known for a while. Up to now, logging was only used for debugging. With the current `Aristo` PR, there are cases where logging might be wanted but this works only if `chronicles` runs without the `json[dynamic]` sinks. So this should be re-visited. * More of a kludge
787 B
787 B
-
Some comletions might be needed for the
aristo_part
module which is a re-implementation of the module supporting proof-mode/partial trees.- Complete
partMergeStorageData()
. This function might not be needed at all unless snap-sync is really revived. - For snap-sync, write a
proof
function verifying whether the partial tree is correct relative to thePartStateRef
descriptor. - One might need to re-visit the
removeCompletedNodes()
module when using snap-sync proof features. The algorithm used here assumes that the list of proof nodes is rather small. Also, a right boundary leaf node is typically cleared. This needs to be re-checked when writing theproof
function mentioned above.
- Complete
-
aristo_nearby
also qualifies for a re-write, now