feat: batch io operations when verifying & importing block - #5473
Conversation
Performance Report鉁旓笍 no performance regression detected Full benchmark results
|
dapplion
left a comment
There was a problem hiding this comment.
Pushed some changes, see
lodestar/packages/beacon-node/src/chain/blocks/index.ts
Lines 145 to 159 in 4ce2967
@tuyennhv we have to be careful here since this may open up attacks. We are exposing DB growth to potentially untrusted data. Blocks from gossip have proposer sig validated but blocks from sync have no validation at all. We may want to disable this feature for sync and only do for payloads with some validation like gossip or unknown block sync
4ce2967 to
71c1dbd
Compare
|
@dapplion I added |
agreed, anyway eager saving on sync makes no effective impact because of checkpoint sync |
dapplion
left a comment
There was a problem hiding this comment.
Looks great! Both gossip and unknown block root are safe for eagerPersistBlock. Can you open an issue to add a test that asserts that unknown block sync won't send to the chain blocks with invalid root?
|
馃帀 This PR is included in v1.9.0 馃帀 |
Conflict resolutions: - specTestIterator: keep the heze on_payload_attestation_message skip alongside unstable's new gloas should_apply_proposer_boost skip - ensure-config-is-synced: this branch implements the EIP-7805 inclusion list params in ChainConfig, so they no longer need to be ignored - processExecutionPayloadBid: read parentSlot before overwriting the bid (#5473) while keeping the heze ExecutionPayloadBid type branch - .ethspecify.yml: heze configs are wired to sources on this branch, so drop them from the "not implemented" ignore list
Motivation
Description
Promise.all()inverifyBlock(), take that chance to persist blocks (and blobs) to dbCloses #5415