Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
perf(consensus/blockstore): Remove validate basic call from LoadBlock…
…Meta (backport cometbft#2964) (cometbft#2998) Our gossip block parts routine calls `Blockstore.LoadBlockMeta` (as do things in blocksync). This currently takes some time due to ValidateBasic: ![image](https://github.com/cometbft/cometbft/assets/6440154/2f4471b0-0744-44de-ab94-4a9a4596712c) However note that we only save validated data to the blockstore. We only do it in: - Commit: https://github.com/cometbft/cometbft/blob/main/internal/consensus/state.go#L1867 - Blocksync after validation: https://github.com/cometbft/cometbft/blob/main/internal/consensus/state.go#L1867 Hence the validate basic time is wasted. This should eventually just go to an LRU cache to even avoid the proto unmarshalling (as should ~everything in blockstore) but we want this anyway to reduce the computational overhead, WRT live consensus, in main this only helps with catchup for live syncing nodes, I haven't checked on v0.47.x, but the cpuprofile suggests it may help with active block gossip time as well? --- #### PR checklist - [x] Tests written/updated - [x] Changelog entry added in `.changelog` (we use [unclog](https://github.com/informalsystems/unclog) to manage our changelog) - [x] Updated relevant documentation (`docs/` or `spec/`) and code comments - [x] Title follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) spec <hr>This is an automatic backport of pull request cometbft#2964 done by [Mergify](https://mergify.com). --------- Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com> Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
- Loading branch information