Tezt_cloud: Add agnostic_baker to layer1 scenario
What
Parent MR: !17227 (merged)
This is a first step towards testing that the agnostic baker works correctly on more realistic scenarios.
Here, we add an option to configure the bakers used in the layer 1 scenario to either use the protocol-specific baking binaries (like before), or to choose to use the octez-experimental-agnostic-baker binary. This is configurable from the CLI scenario argument --agnostic-bakers which takes a list of indices. For instance, if we have 3 bakers, we can specify that the first and last are agnostic bakers by using --agnostic-bakers 0,2.
The next step would be to add a migration scenario, again with the same configuration argument. This way, we can see that the agnostic bakers behave correctly at the most important point of their lifecycle.
Why
To further consolidate the agnostic baker via more realistic testing.
How
By adapting and enhancing the tezt-cloud simulation tool.
This revealed that the closure of the Internal_event_unix sinks was done too poorly, because the we should not close the sinks from the agnostic_baker daemon, but rather not open the underlying ones from the protocol-dependent bakers. This was done in the parent MR.
Manually testing the MR
By adding the --agnostic-bakers option to the LAYER1 scenario commands:
- gcloud:
dune exec tezt/tests/cloud/main.exe -- LAYER1 -v --log-file /tmp/log \
--stake 2,1,1 \
--agnostic-bakers 0,2 \
--network ghostnet \
--stresstest tz1KhnTgwoRRALBX6vRHRnydDGSBFsWtcJxc/edpkuFRauFAdhipQu9s4xmfNJWmtLxPKpoaoG41gYGq5AgUA43Vxqx/100/1 \
--faketime "-$(($(date --utc +%s) - $(date --date $(./octez-node snapshot info --json ./ghostnet.snapshot | jq -r .snapshot_header.timestamp) +%s)))" \
--tezt-cloud $USER \
--dockerfile-alias debian \
--prometheus \
--grafana \
--website \
--snapshot ./ghostnet.snapshot \
--monitoring
- localhost
TEZT_CLOUD=debian dune exec tezt/tests/cloud/main.exe -- LAYER1 -v --log-file /tmp/log \
--localhost \
--stake 2,1,1 \
--agnostic-bakers 0,2 \
--network ghostnet \
--stresstest tz1KhnTgwoRRALBX6vRHRnydDGSBFsWtcJxc/edpkuFRauFAdhipQu9s4xmfNJWmtLxPKpoaoG41gYGq5AgUA43Vxqx/100/1 \
--faketime "-$(($(date --utc +%s) - $(date --date $(./octez-node snapshot info --json ./ghostnet.snapshot | jq -r .snapshot_header.timestamp) +%s)))" \
--prometheus \
--grafana \
--website \
--snapshot ./ghostnet.snapshot \
--monitoring
Grafana results:
- without
agnostic-bakers:
- with
agnostic-bakers:
Checklist
-
Document the interface of any function added or modified (see the coding guidelines) -
Document any change to the user interface, including configuration parameters (see node configuration) -
Provide automatic testing (see the testing guide). -
For new features and bug fixes, add an item in the appropriate changelog ( docs/protocols/alpha.rstfor the protocol and the environment,CHANGES.rstat the root of the repository for everything else). -
Select suitable reviewers using the Reviewersfield below. -
Select as Assigneethe next person who should take action on that MR



