TzNet/TzTraffic: End-to-end local testing
In order to simply test or make a demo we need a minimal environment that can be locally run using docker-compose (or equivalent).
Needed Services
- a vanilla tezos node (A) starting from a given snapshot connected to the actual network associated with the snapshot
- a yes tezos node (B) starting from the same snapshot (for now) that is isolated from the network but exposes its RPCs
- a yes baker using a yes-wallet with at least 66% of the stake linked to the yes-node
- tztraffic using A as its source and B as its target
Simple starting Scenario
- Experiment preparation:
- get a snapshot/datadir
- prepare a yes-wallet for the network we want to copy (let's say 66-70% of the stake to limit the number of keys and still be able to progress fast enough)
- B yes-node starts from its snapshot, its not connected to anyone, it should not progress
- B yes-baker starts using the yes wallet, it should bake and make B chain progress but without any operation (other than (pre)attestations)
- tztraffic starts, it should be waiting for a source (A) to connect
- A node starts from its snapshot, its connected to the actual network,
- it should progress with blocks containing actual transactions
- Tztraffic should see the blocks and start injecting ops in B node
- B yes-baker should include injected ops
- after some time (let's say 10mn)
- A stops
- wait few more minutes for tztraffic and B to converge into a final state (in case some delay made operations injection slow)
- Observe/save /metrics to get info/results on the experiment (this could be replaced by a grafana board
🎉 ) - stop everything :D
depends on #5 (closed) (maybe #7 (closed))
Edited by Mathias Bourgoin