Open
Description
Why
We want the client to be able to support a Mithril era switch and thus avoid breaking changes when the client implementation is era specific. The client is not connected to the Cardano chain where the era markers are registered and it does not need to deal with hot switch from an era to another (when the signer and aggregator do).
What
Align the era used by the client on the era advertised by the aggregator to which it is connected.
How
- Leverage the existing era advertised by the aggregator in the
/status
route - Compute the current supported era with an
EraFetcher
that can be used to create era-specific code:- Create the
EraFetcher
trait in the client library - Implement an
EraFetcher
which calls the aggregator with the aggregator client in the client library - Support the case where the fetched era is not known in the availablr at build time
- Implement an
EraFetcher
which has a forced value and that can be used when the client CLI specifies a--era
parameter
- Create the
- Create a small prototype with a new era to make sure the system works as expected?
- Update the documentation if needed
- Update the ADR if needed