You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
QBFT currently uses a lot of bandwidth (network bytes sent and received). So much so, that memory spikes to 1GB when doing block proposals of 300KB. This is due to a lot of duplication in the protocol and wire formats.
Proposed solution
Incorporate these optimisations:
use SSZ compression for proposed values (instead of json), saves 50%.
Use nested messages with signature wrapper types to avoid copying protos when verifying signatures, saves 50%.
QBFT messages should only contain hashes, only include uniq map of hashes to original values in a wrapper type, saves 90%.
Avoid all in-memory duplication of original values. Only buffer hash based QBFT messages.
This is a big protocol level refactor, implement this as QBFT v2 and use prioritise to enable/disable.
The text was updated successfully, but these errors were encountered:
Upgrades the QBFT wire protocol (without breaking backwards compatibility) by adding the whole value to the `ConsensusMsg` envelope and hashes of those values to the `QBFTMsg` itself. This will allow us to remove the values from the QBFT messages, which will reduce network bandwidth usage by a lot (90% for large values; beacon blocks).
This increases the network bandwidth for next release v0.14, but once we remove support for v0.13, it will reduce it by a lot.
category: feature
ticket: #1552
Removes support for backwards compatible duplicate QBFT wire values. Only support "value pointers" in envelope. This decreases QBFT bandwidth by a lot.
> Note this removes support for v0.13. Only v0.14 is supported.
category: feature
ticket: #1552
Problem to be solved
QBFT currently uses a lot of bandwidth (network bytes sent and received). So much so, that memory spikes to 1GB when doing block proposals of 300KB. This is due to a lot of duplication in the protocol and wire formats.
Proposed solution
Incorporate these optimisations:
This is a big protocol level refactor, implement this as QBFT v2 and use prioritise to enable/disable.
The text was updated successfully, but these errors were encountered: