survey to collect mCaptcha's performance on various devices
Find a file
Aravinth Manivannan 604fca0a62
feat: archive campaign and benchmark data
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
		```
2023-03-08 17:36:45 +05:30
.github CI: lint frontend and cache linting workflows 2021-10-14 20:03:47 +05:30
config feat: add archive base_path in settings 2023-03-08 17:36:45 +05:30
docs/third-party feat: add NLnet funding details 2023-03-08 17:19:47 +05:30
migrations feat: submit and store benchmark type 2023-02-01 18:18:50 +05:30
scripts social cards 2021-10-27 17:17:22 +05:30
src feat: archive campaign and benchmark data 2023-03-08 17:36:45 +05:30
static change logo 2021-10-14 22:02:45 +05:30
templates fix: show next page link only when next_page is set 2023-02-02 00:31:19 +05:30
vendor/pow Setup ts compilation 2021-10-12 14:02:34 +05:30
.dockerignore add campaign script 2021-10-14 17:13:40 +05:30
.eslintrc.js chore: ignore non-import loading 2023-02-01 18:17:34 +05:30
.gitignore feat: finish porting pages to tera. Fix tests 2023-01-24 23:31:04 +05:30
.woodpecker.yml feat: switch to woodpecker 2023-01-08 20:41:18 +05:30
build.rs feat: formmatting is being deprecated 2023-01-26 20:55:04 +05:30
Cargo.lock feat: archive campaign and benchmark data 2023-03-08 17:36:45 +05:30
Cargo.toml feat: archive campaign and benchmark data 2023-03-08 17:36:45 +05:30
docker-compose.yml pkg docker 2021-10-14 16:26:23 +05:30
Dockerfile upgrade node img 2021-10-14 20:04:12 +05:30
LICENSE.md init 2021-10-04 21:21:10 +05:30
Makefile feat: make workflow to sqlx offline codegen 2023-01-26 20:54:40 +05:30
package-lock.json feat: benchmark using polyfil when wasm is not available 2023-01-27 00:18:26 +05:30
package.json feat: benchmark using polyfil when wasm is not available 2023-01-27 00:18:26 +05:30
README.md feat: add NLnet funding details 2023-03-08 17:19:47 +05:30
rustfmt.toml init 2021-10-04 21:21:10 +05:30
sailfish.yml init 2021-10-04 21:21:10 +05:30
sqlx-data.json fix: update sqlx and fix container build 2023-02-14 17:25:27 +05:30
tsconfig.json Setup ts compilation 2021-10-12 14:02:34 +05:30
webpack.config.js feat: benchmark using polyfil when wasm is not available 2023-01-27 00:18:26 +05:30
yarn.lock feat: benchmark using polyfil when wasm is not available 2023-01-27 00:18:26 +05:30

mCaptcha Survey

Performance statics survey runner

Docker status-badge

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

NLnet NGIZero logo

2023 development is funded through the NGI0 Entrust Fund, via NLnet. Please see here for more details.