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
To make epoch changes scalable, we want to use events instead of
messages (#365).
This will be done in an upcoming PR. To make that easier to review, I
separated some of the changes I need to make as a preparation.
The follow-up PR will add `ProcessNewEpoch` and `ProcessRemovedEpoch`
system operations and an `Oracle::Response::Event` variant. Clients will
be _notified_ about new epochs because they will always
follow/synchronize the admin chain and thus store the epoch change
events locally. They will then run `process_inbox` which, in addition to
incoming messages, will look for epoch change events, and include the
new operations in the proposal accordingly. Processing the operations
will check for the event, add the oracle response, and update the
chain's epoch and committees.
## Proposal
* Add an `Event` oracle response variant, to record read event values in
the block.
* Don't fail in `make_chain_client` if the admin chain is not in the
wallet. Clients will always need to sync/follow the admin chain to learn
about epoch change events.
* Return early from `try_synchronize_chain_state_from` if the remote
node has no new blocks for us.
* Always initialize the root chain in the `linera-core` tests, even if
it is not mentioned in the test case.
* Add events methods to the execution runtime context: We will need
these in `system.rs` to load the epoch change events.
* Add more assertions to `test_end_to_end_reconfiguration`. This was
useful for debugging.
* Other minor cleanups.
## Test Plan
No new behavior was added. CI will catch regressions.
## Release Plan
- Nothing to do / These changes follow the usual release cycle.
## Links
- Part of #365.
- [reviewer
checklist](https://github.com/linera-io/linera-protocol/blob/main/CONTRIBUTING.md#reviewer-checklist)
0 commit comments