Skip to content

Pending blocks might not be submitted to DA #1548

Description

@tzdybal

Currently, blocks are submitted to DA via pendingBlocks queue. This queue is stored in memory, so in case of a restart of the aggregator node, the information might be lost. After the restart aggregator will continue to produce blocks, and submit those new blocks to DA, but all that were pending before the restart were lost so they will not be submitted to DA.
This causes issues since if any blocks are not in DA, full nodes are not able to sync.

Additionally:

  • blocks are safely stored in database before submission to DA
  • blocks are always pushed to DA in order (by height)
  • DA submission of multiple blocks is atomic - it's impossible to submit only part of a batch
  • rollkit can handle duplicate blocks as well as blocks out of order during sync process

Example:

  1. Last produced block height: 1010.
  2. pendingBlocks contains blocks between 1000 and 1010.
  3. Node is restarted.
  4. Block 1011 is produced and pushed to DA.
  5. Blocks between 1000 and 1010 will never be submitted to DA.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

T:bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions