Skip to content

Bandwidth optimization #30

@lasarojc

Description

@lasarojc

Inspired by tendermint/tendermint#9880 but expanded here.

High-level tracking issue for general bandwidth optimization efforts.

CometBFT-based networks consume large amounts of bandwidth.
This results in high operational costs for the network operators (typically, the validators).
We need to reduce the bandwidth consumption of the solution while maintaining its core properties, in terms of correctness, progress and fault-tolerance.

Several strategies to reduce the bandwidth usage in CometBFT have been proposed by CometBFT developers and community members.
While some of these ideas are simple to implement, others require much larger efforts, implying impactful modifications on the protocol.
This results in a dilemma when looking for a solution. We also note that there is currently no general strategy to validate a solution, whether it would be through local tests, or by collecting information from the operators.
A third concern comes from the fact that while there are clear quick wins, it seems also necessary to prepare a long term effort.
The subject of improving bandwidth usage in peer-to-peer systems is vast, with decades of efforts in research and practical solutions.

This issue tracks our efforts in addressing a large spectrum of approaches to reduce bandwidth usage in CometBFT.
We prioritize the work based on their impact on use cases, on the effort needed to implement it, and on how it helps pave the way for future improvements.
The main problem is subdivided as listed next. Note that some of the problems/solutions might overlap.

### Preliminary work
- [ ] #1048
- [ ] #1076
- [ ] #1081
### Short term goals
- [ ] #1058
- [ ] #1060
- [ ] #1059
- [ ] #1061
### Long term goals
- [ ] #11
- [ ] #2027
- [x] Feasibility study to replace the current gossip protocol
- [ ] #3297

Previous efforts

Related, but not covered by this issue.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    major-priorityA major, long-running priority for the teamtrackingA complex issue broken down into sub-problems

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions