Aravinth Manivannan
604fca0a62
DESCRIPTION FORMATS - Campaign configuration is stored in JSON format - Benchmark data is stored in CSV format DIRECTORY STRUCTURE Each campaign gets a separate directory. A campaign can have multiple archives. Archives are stored in directories whose names would be the same as the UNIX timestamp of when they were recorded. EXAMPLE The example below shows three campaigns with one archive each. Each archive is stored in a directory denoting the moment in which the archive was generated. Each archive includes campaign configuration and benchmark. ```bash 14:53 atm@lab archive → tree . ├── 4e951e01-71ee-4a18-9b97-782965495ae3 │ └── 1675329764 │ ├── benchmark.csv │ └── challenge.json ├── 9d16df08-dffc-484e-bbe2-10c00b431c7e │ └── 1675329764 │ ├── benchmark.csv │ └── challenge.json └── fa9f7c24-afec-4505-adb9-8e0c3ce54d37 └── 1675329764 ├── benchmark.csv └── challenge.json 7 directories, 6 files ``` |
||
---|---|---|
.github | ||
config | ||
docs/third-party | ||
migrations | ||
scripts | ||
src | ||
static | ||
templates | ||
vendor/pow | ||
.dockerignore | ||
.eslintrc.js | ||
.gitignore | ||
.woodpecker.yml | ||
build.rs | ||
Cargo.lock | ||
Cargo.toml | ||
docker-compose.yml | ||
Dockerfile | ||
LICENSE.md | ||
Makefile | ||
package-lock.json | ||
package.json | ||
README.md | ||
rustfmt.toml | ||
sailfish.yml | ||
sqlx-data.json | ||
tsconfig.json | ||
webpack.config.js | ||
yarn.lock |
Why
mCaptcha is a proof-of-work based CAPTCHA system. Its effectiveness depends on an accurate and time-relevant proof-of-work difficulty setting. If it is too high, it could end up DoS-ing the underlying service that it is supposed to protect and if it is too low, the protection offered will be ineffective.
In order to select the right difficulty level, mCaptcha admins would require knowledge about current performance benchmarks on a large variety of devices that are currently on the internet.
What
This program runs a mCaptcha benchmarks on user devices and collects fully anonymous(only device statics are stored) performance statics, that are transparently made available to everyone free of charge. mCaptcha admins are kindly requested to refer to the benchmarks published to fine-tune their CAPTCHA deployment.
What data do you collect?
TODO: run program, record and share actual network traffic logs
Funding
NLnet
2023 development is funded through the NGI0 Entrust Fund, via NLnet. Please see here for more details.