Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Single block missing after warp sync. #12255

@arkpar

Description

@arkpar

Currently after the warp sync we end up with the full block history, except there's one block body missing.
Warp sync selects block X as target. It then downloads warp proofs, which includes header for X. Then it dowloads the state and passes the state + header to the client, where it gets imported. After that sync starts gap sync process, which downloads block headers and bodies up to block X-1, but not including X. It also starts syncing blocks X+1 .. normally. So we end up with no body in the database for block X. This can be reproduced by trying to sync a new node off a warp-synced node or by simpy trying to export the target block. There are two ways to fix that:

  1. Add an andditional step to warp sync that downloads block body for X and passes it along with the header and state for import in the first phase of warp sync.
  2. Extend gap sync to include block X. However, since header X is already in the DB, X is considered to be an existing block with state. Changes to the client code will be required to allow importing just the body for such blocks.

Metadata

Metadata

Assignees

Labels

I3-bugThe node fails to follow expected behavior.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions