Skip to content

E2e tests adaptation for multiple aggregators #2361

Closed
@jpraynaud

Description

@jpraynaud

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 with number_of_aggregators and number_of_signers
    • Check that number_of_aggregators > 0
    • Check that number_of_signers > 0
    • Check that P2P is enabled when number_of_aggregators >= 2
  • 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 to start_leader
    • Create a start_follower function which bootstraps the genesis certificate of the slave once the epoch settings of the master has next-signers
    • Start the RunOnly mode with a JoinSet of one start_leader and multiple start_follower (in a run function, some refactoring may be need to support join sets)
    • Fail if one of the tasks has failed
  • Update the Spec mode:
    • Rename the run function to start_leader
    • Create a start_follower function which does what start_leader does less transfer_funds and delegate_stakes_to_pools (some code can be shared between the functions)
    • Start the Spec mode with a JoinSet of one start_leader and multiple start_follower (in a run function, some refactoring may be need to support join sets)
    • Fail if one of the tasks has failed
  • 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

Metadata

Metadata

Assignees

Labels

testing 🔁Something related to tests

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions