-
Notifications
You must be signed in to change notification settings - Fork 0
Run performance tests
This Wiki page contains the steps to test CONFETTY performance locally through automatic scripts.
Please ensure that you have completed the steps in the Requirements, installation, and preliminary operations section before proceeding with the tests.
The CONFETTY Evaluation Tool runs a series of tests that analyze gas costs and execution times for various process configurations. The tests are described in this paper and they include:
- X-ray tests for the number of writing participants, message size, and process size.
- Synthesis tests including parallel split, parallel split & join, exclusive split, and exclusive split & join.
- A test with three state-of-the-art processes.
If your CONFETTY container is not running, execute:
docker start confetty_container
Then enter the container:
docker exec -it confetty_container bash
At this stage, you should see a terminal prompt as root inside the container.
Now execute:
./test_init.sh
This script automatically performs the following operations:
- Starts the local blockchain Ganache with predefined accounts.
- Starts MongoDB to store server information.
- Deploys the CONFETTY smart contracts on the blockchain.
- Starts IPFS.
- Builds and starts the frontend server Tomcat.
To execute the Python scripts, open another console in the Docker container:
docker exec -it confetty_container bash
Then change directory to Evaluation Tool:
cd CONFETTY/Evaluation\ Tool
Here you will find the test_Auto.py script. This script will:
- Generate the required JSON test inputs.
- Start the confidentiality API.
- Execute each test case 5 times.
- Create two Excel files in the
table_Outputfolder:-
costs.xlsxfor gas cost measurements. -
timings.xlsxfor execution time measurements.
-
The following section lists the possible tests to execute.
-
Number of writing participants x-ray test (2 to 10 participants):
python3.7 test_Auto.py -t1
-
Message size dimension x-ray test (x1 to x9):
python3.7 test_Auto.py -t2
-
Process size dimension x-ray test (x1 to x10):
python3.7 test_Auto.py -t3
-
Parallel split synth test (x1 to x10):
python3.7 test_Auto.py -t4
-
Parallel split and join synth test (x1 to x10):
python3.7 test_Auto.py -t5
-
Exclusive split synth test (x1 to x10):
python3.7 test_Auto.py -t6
-
Exclusive split and join synth test (x1 to x10):
python3.7 test_Auto.py -t7
-
Three state-of-the-art process tests:
python3.7 test_Auto.py -t8
-
Default execution:
Without any
-tinput, the script will execute 5 times the default X-ray Test:python3.7 test_Auto.py
-
Execute all tests together:
Run the following command to execute all tests sequentially.
Note: This process will take approximately 3 hours (i7-13700h, 32 GB RAM).python3.7 test_Auto.py; python3.7 test_Auto.py -t1; python3.7 test_Auto.py -t2; python3.7 test_Auto.py -t3; python3.7 test_Auto.py -t4; python3.7 test_Auto.py -t5; python3.7 test_Auto.py -t6; python3.7 test_Auto.py -t7; python3.7 test_Auto.py -t8