Closed
Description
Why
We want to make the e2e tests support multiple aggregators (one leader and followers) when the P2P is enabled (also in run only mode).
What
Implement the support for multiple aggregators in the e2e test.
How
- Update the configuration:
- Replace
number_of_pool_nodes
withnumber_of_aggregators
andnumber_of_signers
- Check that
number_of_aggregators > 0
- Check that
number_of_signers > 0
- Check that P2P is enabled when
number_of_aggregators >= 2
- Replace
- Start the devnet with the correct number of pool nodes
- Update
MithrilInfrastructure
:- Use the new configuration
- Make a specific configuration for follower aggregators (using the leader aggregator endpoint)
- Update the
RunOnly
mode:- Rename the
start
function tostart_leader
- Create a
start_follower
function which bootstraps the genesis certificate of the slave once the epoch settings of the master hasnext-signers
- Start the
RunOnly
mode with aJoinSet
of onestart_leader
and multiplestart_follower
(in arun
function, some refactoring may be need to support join sets) - Fail if one of the tasks has failed
- Rename the
- Update the
Spec
mode:- Rename the
run
function tostart_leader
- Create a
start_follower
function which does whatstart_leader
does lesstransfer_funds
anddelegate_stakes_to_pools
(some code can be shared between the functions) - Start the
Spec
mode with aJoinSet
of onestart_leader
and multiplestart_follower
(in arun
function, some refactoring may be need to support join sets) - Fail if one of the tasks has failed
- Rename the
- Check that there is no regression with era switch in the e2e test
- Fix follower signer registration discrepancy:
- Use evolving signer registration and stakes
- Fix follower signer registration
- Enhance relay:
- Add relay signer registration modes (passthrough or P2P)
- Add relay signature registration modes (passthrough or P2P)
- Adapt end to end test
- Adapt end to end scenario in the CI