- Docker
- Docker Compose plugin
- Python 3 for host-side helper scripts
cd single-db-security-experiments
docker compose up -dRun the attack client:
docker compose exec attack-client bashRun the default automated attack workflow:
docker compose exec attack-client python3 /root/attack-scripts/automate_attacks.pyRun detection-log parsing inside the started environment:
python3 attack-scripts/detect_metrics.pyStart only the encryption-related services:
docker compose up -d postgres-acra acra-server postgres-pgcryptoRun host-side helper scripts from the same directory:
python3 attack-scripts/benchmark_encryption.py
python3 attack-scripts/test_encryption_protection.py
python3 attack-scripts/test_volume_leakage.py
python3 attack-scripts/test_acra_improvement_simple.pyInspect script options:
python3 attack-scripts/benchmark_encryption.py --help
python3 attack-scripts/detect_metrics.py --help
docker compose exec attack-client python3 /root/attack-scripts/automate_attacks.py --helpStop the single-database stack:
docker compose downcd distributed-db-security-experimentsStart the PostgreSQL shard stack:
docker compose -f docker-compose.postgres-shards.yml up -dRun PostgreSQL shard scripts:
python3 scripts/exp1_single_shard_flood.py
python3 scripts/exp3_cross_shard_frontrun_sim.pyStart the Citus stack:
docker compose -f docker-compose.citus.yml up -dRun the Citus script:
python3 scripts/exp1_citus_hotspot.pyStart the TiDB stack:
docker compose -f docker-compose.tidb.yml up -dRun TiDB scripts:
python3 scripts/exp1_tidb_hotspot.py
python3 scripts/exp2_tidb_leader_stress.pyEach distributed script can also start its own compose stack:
python3 scripts/exp1_single_shard_flood.py --start-services
python3 scripts/exp1_citus_hotspot.py --start-services
python3 scripts/exp1_tidb_hotspot.py --start-servicesRegenerate derived tables and figures:
python3 scripts/analyze_results.py
python3 scripts/render_fig8_distributed_risks.pyStop a distributed stack by using the same compose file with down:
docker compose -f docker-compose.postgres-shards.yml down
docker compose -f docker-compose.citus.yml down
docker compose -f docker-compose.tidb.yml down