MinaProtocol / mina

Mina is a cryptocurrency protocol with a constant size blockchain, improving scaling while maintaining decentralization and security.
https://minaprotocol.com
Apache License 2.0
1.98k stars 525 forks source link

Integrate crypto benchmarks with CI #13518

Open amc-ie opened 1 year ago

amc-ie commented 1 year ago

This issue is to track the requirements gathering and implementation of the crypto benchmarks into our CI system.

https://github.com/o1-labs/proof-systems/pull/1101

From Fabrizio:

The idea for CI was to: Be able to run them on demand (maybe through some label) and being able to see the results somewhere. Run a subset of them as regression test, I suppose just running for each PR is enough for now, blocking PRs may require some more discussion.

Next steps are for Velocity team to work with Fabrizio & Joseandro to propose a solution that can meet the Crypto team's requirements (ensuring they are formally defined in the process).

shimkiv commented 1 year ago

I'd prefer to have centralised solution when it comes to where to store metrics and how to visualise. Because we're going to do same things for different tools. For example it will be good to publish metrics within single InfluxDB instance and then render it in different Grafana Dashboards. Working examples:

fabrizio-m commented 1 year ago

I think most of the benchmarks allow to output a JSON with the results, could that help for Grafana?

shimkiv commented 1 year ago

Yes I think Grafana can read from JSON (simple datasource). But we will anyway have to store it somewhere, hence, more generic approach will be better. Publishing data into InfluxDB, for example, is very simple and I believe the JSON can be easily transformed into corresponding InfluxDB payload.

dkijania commented 1 year ago

After discussion with @fabrizio-m and @mrmr1993 the best approach would be to split effort into two items: