make StateCompute not write the output state to the blockstore. #10453
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.
Related Issues
v1.20.3 began using
StateCompute
in the Eth API. Unfortunately, node operators reported a sharp increase in blockstore size. This was traced toStateCompute
writing the output state to the blockstore. Badger is an LSM-tree + value log store, and will happily take the redundant write. The sharp increase was reported by the Glif team — the API endpoint that most wallets use, as well as the Codefi gas oracle, which pings it constantly with eth_feeHistory calls. These calls are special offenders since they callStateCompute
over a sequence of tipsets.Proposed Changes
Make
StateCompute
discard its output state. This won't have any effects since all state should already be present in the blockstore anyway. Also, it's only used by CLI and Shed tooling (beyond the Eth API). I've left a note in the relevant places.Additional Info
Checklist
Before you mark the PR ready for review, please make sure that:
<PR type>: <area>: <change being made>
fix: mempool: Introduce a cache for valid signatures
PR type
: fix, feat, build, chore, ci, docs, perf, refactor, revert, style, testarea
, e.g. api, chain, state, market, mempool, multisig, networking, paych, proving, sealing, wallet, deps