### Milestone 1 - Stress testing on kubernetes
* **Estimated Duration:** 1 month
* **FTE:** 1
Privious
| Number | Deliverable | Specification |
| ------------- | ------------- | ------------- |
| 0. | Private Network Setup | Run a private network and deploy contracts. this network should revert and re-org the chain sometimes. |
| 1. | Transaction Generator | Writing a transaction emitter that changes its emission rate every hour between 10, 20, 50, 100 TPS. |
| 2. | Coordinator Tester | Writing a test code for the DDoS attack scenario to the selected coordinator. Also can be turned off intentionally. Generate fraud block and getting slashed. and Automatic bidding. |
| 3. | Testing Scenario | Run the testing scenarios with 2~10 coordinators and 10~100 wallets. |
| 4. | Documentation and Report | Will provide a basic tutorial for 'Transaction Generator' and 'Coordinator Tester' and Summarize Testing Scenario |
Current Achieved Tasks
| Number | Deliverable | Specification |
| ------------- | ------------- | ------------- |
| 0. | Private Network Setup | Run a private network and deploy contracts. this network should revert and re-org the chain sometimes. |
| 0a. | Various Testnet clients | Only ganache testchain used for zkopru's local testnet. Added more types of clients to using layer1 testnet. Created scripts for various clients as testchain, `hardhat` node, and private`geth`. |
| 1. | Transaction Generator (Deposit only) | Writing a transaction emitter that changes its emission rate ~~every hour~~ anytime between from 0 to 10 TPS. |
| 2. | Testing node for stability | Sometime |
### Milestone 2 - Test Monitoring tool
* **Estimated Duration:** 1 month
* **FTE:** 1
| Number | Deliverable | Specification |
| ------------- | ------------- | ------------- |
| 0a. | Add metric on coordinator | To collect information about coordinator status, We will add the metric code. It can be On and Off with a flag. |
| 0b. | Transaction Process stat | Create a new package for tracking some indicators, such as, How many transactions are in the pool, How many seconds it takes to be included in the block, TPS, and Burn auction status. |
| 1. | Stress testing on Public Testnet | Running the stress testing software and the monitoring tool on the public testnet. |
Updated to
- Transaction generator
- From mileston 1, `3.Testing Scenario` and Some part of `4. Documentation and Report` to be `1. Local Testing Auto generate Report` in Milestone 2
| Number | Deliverable | Specification |
| ------------- | ------------- | ------------- |
| 0. | Transaction Generator | Writing a transaction emitter that changes its emission rate ~~every hour~~ anytime between 10, 20, 50, 100 TPS. |
| ~~0a.~~ 1.a | Add metric on coordinator | To collect information about coordinator status, We will add the metric code. It can be On and Off with a flag. |
| ~~0b.~~ 1.b | Transaction Process stat | Create a new package for tracking some indicators, such as, How many transactions are in the pool, How many seconds it takes to be included in the block, TPS, and Burn auction status. |
| 2a. | Testing on Local and Auto generate Report | Run the testing scenarios with 3 coordinators and 10 wallets. Result report will be auto generated. |
| ~~1.~~ 2b. | Stress testing on Public Testnet | Running the stress testing software and the monitoring tool on the public testnet. |
### Milestone 3 - Scripts for Testing Cluster and CI Setup
* **Estimated Duration:** 1 month
* **FTE:** 1
Previous
| Number | Deliverable | Specification |
| ------------- | ------------- | ------------- |
| 0. | Setup CI for develop Zkopru | Writing script for deploying two k8s clusters when a new commit is pushed to the repository with an "rc" tag. One of the clusters is for the heavy stress testing on its own private network. the other one is running stress testing on the public testnet. |
| 1. | Setup Pre-release Testing Process. | It should terminate and remove the cluster and write a short summary, then post it to the repository issue board or release note. This report will be a part of the update release note, so it should not be too long. |
Updated to
- From milestone 1, Documentation part of `4. Documentation and Report` to be the last step in Milestone 3.
| Number | Deliverable | Specification |
| ------------- | ------------- | ------------- |
| 0. | Setup CI for develop Zkopru | Writing script for deploying two k8s clusters when a new commit is pushed to the repository with an "rc" tag. One of the clusters is for the heavy stress testing on its own private network. the other one is running stress testing on the public testnet. |
| 1. | Setup Pre-release Testing Process. | It should terminate and remove the cluster and write a short summary, then post it to the repository issue board or release note. This report will be a part of the update release note, so it should not be too long. |
| 2. | Documentation | A basic tutorial for ‘ Generator’ package |