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
Currently, when blocks are proposed they include all of the previous state. It should be possible to only include the prevStateRef (in the block header), and then explicitly request the prevState if required (most nodes will have the prevState because of participation in execution of the previous block).
However, this gives rise to a broader question: can we send all messages as just identifying hashes and the explicitly request the full message only if it is required? This question is a bit broader than just Hyperdrive — and could even be implemented at the airwave level — but there are some Hyperdrive-specific versions of this. For example, the LatestCommit object could be just the hash of the LatestCommit, and only if the node needs to fast-forward does it then go and explicitly request the full object.
Another question that arises: can we aggregate signatures into a single message? For example, when sending the LatestCommit object, we could send only one full Precommit but include 2F+1 signatures for it. This would reduce the size of this message significantly (up to 5 kilobytes when there are 100 nodes).
Lastly, resynchronisation and resending of messages. Resynchronisation is not always necessary, so there should be some basic check that receiving nodes do before resending all their messages. But, we should also be able to trim down on exactly what is resent and only cherry-pick messages that are known to be missing.
The text was updated successfully, but these errors were encountered:
Currently, when blocks are proposed they include all of the previous state. It should be possible to only include the
prevStateRef
(in the block header), and then explicitly request theprevState
if required (most nodes will have theprevState
because of participation in execution of the previous block).However, this gives rise to a broader question: can we send all messages as just identifying hashes and the explicitly request the full message only if it is required? This question is a bit broader than just Hyperdrive — and could even be implemented at the
airwave
level — but there are some Hyperdrive-specific versions of this. For example, theLatestCommit
object could be just the hash of theLatestCommit
, and only if the node needs to fast-forward does it then go and explicitly request the full object.Another question that arises: can we aggregate signatures into a single message? For example, when sending the
LatestCommit
object, we could send only one fullPrecommit
but include2F+1
signatures for it. This would reduce the size of this message significantly (up to 5 kilobytes when there are 100 nodes).Lastly, resynchronisation and resending of messages. Resynchronisation is not always necessary, so there should be some basic check that receiving nodes do before resending all their messages. But, we should also be able to trim down on exactly what is resent and only cherry-pick messages that are known to be missing.
The text was updated successfully, but these errors were encountered: