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
## Motivation
Currently a block proposal is always rejected (by a validator, or even
by the local node) if any of the incoming messages included on this
chain up to and including the proposal itself have not been received
from the sender chain yet.
For example, if:
- block A0 on chain A has included a message from block B0 on chain B,
- and now a proposal for block A1 is made that includes a message from
block C0 on chain C,
- and a validator has block C0 but not B0,
it would currently reject that proposal.
That is unnecessarily restrictive, because block A0 has already been
signed by a quorum of validators, and it causes more round-trips and
download work for clients.
## Proposal
Relax the inbox check, so that only incoming messages in the proposal
itself have to be received yet. The validator in the above example would
accept the proposal.
In other words, don't reject a new block proposal just because you have
an old, already confirmed block in that chain with an incoming message
whose sender block you have not seen yet.
## Test Plan
CI; some tests have been updated.
## Release Plan
- These changes should be backported to `testnet_conway`, then
- be released in a new SDK,
- be released in a validator hotfix, ideally at the same time.
## Links
- Closes#413.
- [reviewer
checklist](https://github.com/linera-io/linera-protocol/blob/main/CONTRIBUTING.md#reviewer-checklist)
0 commit comments