Sync Committee: BlockStorage Capacity Limit #453
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Sync Committee: BlockStorage Capacity Limit
In case if number of blocks stored in the
BlockStorage
increases a certain amount, state reset process failed due toviolation of Badger transaction size limit:
Txn is too big to fit into one request
We need to prevent Sync Committee storage from growing indefinitely in case the prover network is down or unresponsive by introducing a capacity limit for the storage:
Introduced a configurable capacity limit for
BlockStorage
with default settings and validation logic. Stored blocks counted is increased inSetBlockBatch
and decreased in two scenarios:a) Once block is proposed and removed from the storage - in
BlockStorage.SetBlockAsProposed(...)
method;b) During state reset process when
BlockStorage
is fully or partially purged;Improved
Aggregator
to handle newErrCapacityLimitReached
error. The core changes in behavior are defined in theTest_Block_Storage_Capacity_Exceeded
test.It is expected that if the capacity limit is reached, newly generated batches are not handled by
Aggregator
: