11 Commits

Author SHA1 Message Date
Ivan Boldyrev
2c78fd5f7a
fix(avm-server): make avm_server::RunnerError a public type (#764)
* fix(avm-server): make avm_server::RunnerError a public type
* Make RunnerResult public too
* Remove stale submodule dir
* gitkeep `benches/performance_metering`
2023-12-07 18:29:26 +07:00
Ivan Boldyrev
776d81a1db
feat(interpreter-cid)!: use Blake3 for CIDs (#729)
Change to more efficient cryptography hash implementation.
2023-10-23 20:16:15 +07:00
Ivan Boldyrev
5b6533bef1
chore(benches): update benchmarks after 1024 stream limit (#728) 2023-10-20 21:00:19 +07:00
raftedproc
ed8c90bd32
chore(submodules): get the bench submodule great again (#726) 2023-10-20 18:21:27 +07:00
Ivan Boldyrev
8a07613027
feat(aquavm-air)!: signature checking (#607) 2023-10-13 22:19:02 +03:00
Ivan Boldyrev
cdde3bb263
chore(benches): Update bench data (#712)
Update bench data after version change.

Some benchmarks were removed because they are not compatible with the
stream length limit.  Others have their version updated.
2023-10-09 18:28:42 +07:00
Ivan Boldyrev
c332cca6b7
chore(testing-framework)!: restore WASM test executor (#609)
* chore(testing-framework)!: fix WASM test runner

Native mode was used before because some package used native runner
for its tests.

This PR allows to explicitly select test runner for tests.  Many testing-framework
types are now parametrized with a runner type with almost compatible defaults.

* chore(testing-framework): Add `ReleaseWasmAirRunner`
* chore(testing-framework)!: Rename `AirScriptExecutor::simple` to `AirScriptExecutor::from_annotated`.
2023-06-23 19:28:28 +07:00
Ivan Boldyrev
8ce8af3823
feat(avm-server,air-interpreter,aquavm-air)!: secret key and particle ID arguments (#593)
* feat(avm-server)!: keypair and particle ID arguments

Add `&fluence_keypair::KeyPair` argument to `AVM::call` and
`AVMRunner::call`.  This value is further forwarded in a deconstructed
form to WASM Air interpreter, but is not used there yet. Also,
`AVMRunner::call` gets `particle_id: String` argument.

feat(air-interpreter)!: `invoke` methods have three new arguments:
`key_format: u8`, `secret_key_bytes: Vec<u8>` and `paritcle_id: String`.

feat(aquavm-air): `air::execute_air` has two three arguments:
`key_format: u8`, `secret_key_bytes: Vec<u8>` and `paritcle_id: String`.

feat(aquavm-air-cli)!: add `--random-key`/`--ed25519-key file` options to AIR CLI.

* feat(avm-server)!: Add `RunnerError::KeypairError`

* chore(bench): Add signature performance benchmarks

These benchmarks contain valid signature, so they should work with
verification out of the box.

---------

Co-authored-by: Artsiom Shamsutdzinau <shamsartem@gmail.com>
Co-authored-by: folex <0xdxdy@gmail.com>
2023-06-23 03:12:37 +07:00
Ivan Boldyrev
93c6899429
feat(aquavm-air-cli,performance_metering): memory size in performance report (#600)
* chore(bench): update benchmark data

After recent data format changes.

* feat(aquavm-air-cli): send memory size to logger

* feat(performance_metering): report memory size

`performance_metering` collects memory sizes reported by `air run` and
reports minimal and maximal values.
2023-06-08 20:22:11 +07:00
Ivan Boldyrev
d155bc7610
chore(benches): update benchmark data to new format (#559)
* feat(aquavm-air-cli): `run` fails if AquaVM fails
Unless `run --no-fail` is provided.  It will make benchmarks fail
on errors, unless you provide `--no-fail` to specific benchmark.

* Fix dashboard and network_explore benches
* Convert benchmark data to new format
* `performance_metering`: use dirs only

Ordinary files like README.md are not considered to be a benchmark.

* Update `benches/performance_metering/README.md`

* Fix performance report

Looks like performance reports was merged in wrong order: data is not
sorted by machine ID.  The sorting is needed for stable diffs.

* Run benchmarks on Macbook Air M1
2023-04-11 02:27:32 +07:00
Ivan Boldyrev
5fdc8e68ac
feat(tools): VM-194 performance metering (#440)
* Experimental performance metering
* Average on repeated runs with `--repeat` option
* Add "version" field to the report
The version is got from `air/Cargo.toml`.

* Allow disabling preparing binaries
with the `--no-prepare-binaries` option.

* Human-readable execution time in the report

* Add dashboard benchmark
* Human-readable text report
2023-02-03 23:26:06 +07:00