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 we don't synchronize the chains when starting up the client.
Now that we also don't pessimistically synchronize chains before
performing operations, we sometimes run into the situation where we want
to do something with a chain whose blocks haven't been seen yet (e.g.
because it came from the faucet), which leads to an error.
## Proposal
Ideally when we find a block from the future we should synchronize the
offending chain. But for now it should be sufficient to make sure to
synchronize the initial chains at startup.
Split `ChainListener::run` into two futures: the latter is the full
chain listener loop, as before, but first there's an initialization step
that synchronizes all the initial chains, and the caller can wait on
this in serial to ensure the chains are synchronized before performing
operations on the client.
## Test Plan
CI should check for regressions; it would be nice to add a test for this
case, perhaps after testnet release.
## Release Plan
- These changes should be backported to the latest `devnet` branch
- These changes should be backported to the latest `testnet` branch,
then
- be released in a new SDK,
## Links
- [reviewer
checklist](https://github.com/linera-io/linera-protocol/blob/main/CONTRIBUTING.md#reviewer-checklist)
0 commit comments