Tezt/Tezt_cloud: Add a new layer1 scenario
What
Add new layer1 scenario for test using tezt_cloud.
Why
Run a mainnet/ghostnet clone network with yes-crypto enabled
How
See documentation in layer1.ml.
Manually testing the MR
There is a known dependency issue with this test and yes_wallet.exe need to be compiler separately from the test execution
Build the yes_wallet binary
dune build devtools/yes_wallet/yes_wallet.exe
Download a snapshot if you don't have one already
wget -O ghostnet.snapshot https://snapshots.tzinit.org/ghostnet/rolling
Run a experiment. e.g. a test on ghostnet with 2 baker nodes (aggregating all of the bakers of ghostnet) with 10% and 90% total baking power, using a 200TPS stresstest scenario and 1 seed for stresstest generation.
TEZT_CLOUD=debian dune exec tezt/tests/cloud/main.exe -- cloud l1 \
-v \
--log-file /tmp/log \
--localhost \
--l1-stake 10,90 \
--website \
--network ghostnet \
--l1-stresstest tz1KhnTgwoRRALBX6vRHRnydDGSBFsWtcJxc/edpkuFRauFAdhipQu9s4xmfNJWmtLxPKpoaoG41gYGq5AgUA43Vxqx/200/1 \
--faketime "-$(($(date --utc +%s) - $(date --date $(./octez-node snapshot info --json ./ghostnet.snapshot | jq -r .snapshot_header.timestamp) +%s)))"
The expected déroulé is:
- Bootstrap a node using real network (so that we have at least one node with updated block metadata)
- Disconnect the node from this network and run as
--private-mode - Start bakers
- Launch a stresstest
- ???
- Profit!
http://localhost:8080 provide various information and a teztale link (you may need to wait a bit for the chain to really bootstrap in order to use the teztale dataviz, if you have an error please refresh)
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