Skip to content

Refactor catchup / blocksync #2711

@evan-forbes

Description

@evan-forbes

the propagation reactor has the ability to download a single block in parallel from many different peers, however it does not have the ability to download many blocks in parallel similar to blocksync.

this is problematic because effective catch up requires both.

currently the propagation reactor can't verify headers ahead of time. If it could do this, it could effectively replace the blocksync reactor as it would have the functionality of both (it could actually be more optimal as we would know the commitment and size of the block before we downloaded it).

We could instead create a header sync sync reactor and gossips signed headers (or if this is implemented longer term use the existing header sync in celestia-node!!).

After we have a chain of verified headers, we could apply an algorithm similar to what we do in blocksync that maximizes the catchup throughput while avoiding OOMs.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Needs Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions