https://github.com/mmaker/zkalc
A web tool that helps you compare and visualize the performance of cryptographic operations
https://github.com/mmaker/zkalc
benchmarks cryptography
Last synced: about 1 month ago
JSON representation
A web tool that helps you compare and visualize the performance of cryptographic operations
- Host: GitHub
- URL: https://github.com/mmaker/zkalc
- Owner: mmaker
- License: bsd-3-clause
- Created: 2022-12-23T12:57:28.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-06T00:13:27.000Z (4 months ago)
- Last Synced: 2025-03-29T23:09:46.481Z (about 1 month ago)
- Topics: benchmarks, cryptography
- Language: JavaScript
- Homepage: https://zka.lc
- Size: 10.2 MB
- Stars: 89
- Watchers: 4
- Forks: 17
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.bib
- Authors: AUTHORS.js
Awesome Lists containing this project
README
# [zkalc](https://zka.lc) is a cryptographic calculator!
[zkalc](https://zka.lc) helps you calculate how much time cryptographic operations take on a real computer.
If you use our software, consider [citing us](/CITATION.bib)!## Why?
Cryptographers tend to be good at cryptography but they can be quite bad at estimating the time it takes a computer to run their schemes.
We hope that zkalc can help shorten the gap between cryptography and practice:
- Cryptographers can use the simple zkalc UX to learn how fast their paper will run on various machines
- Protocol designers can more easily tune the parameters of their protocol depending on their requirementsPlease see the various pages of [the website](https://zka.lc) for more information on how zkalc works.
## Prerequisites
To run benchmarks, we assume that `make`, `git`, `rust` (**nightly!**) and `go` (**> 1.17**) are installed in the system.
**Installing Go.** To install `go`, you can download the binaries at [go.dev/dl](https://go.dev/dl/) and add `go/bin` to your `PATH` environment variable.
**Installing Rust.** To install rust, you can follow [rustup.rs](https://rustup.rs/) and then type `rustup default nightly`.
## Benchmarks
All benchmarks are listed and run inside the `benchmarks/` folder. To run them, type:
```bash
$ cd backend
$ make
```
The files generated will end up stored in `perf/data/new/`## Processing Benchmarks
For this step, we require `python3`. Benchmarks are assumed to be in a parent folder called `bench-data` resembling [our raw data repository](https://github.com/zkCollective/bench-data).
```bash
$ cd perf
$ make
```## Fronted development
To develop the frontend, `npm` is required.
Run:```bash
$ cd frontend
$ npm i
$ npm run dev
```To start a local development server