131 Commits

Author SHA1 Message Date
renovate[bot]
84af9c6185
chore(deps): update rust crate serde_json to 1.0.92 (#448)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-06 16:44:20 +03:00
renovate[bot]
fce3262221
chore(deps): update rust crate serde to 1.0.152 (#421)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-31 20:47:04 +07:00
renovate[bot]
b01ad36cdb
chore(deps): update rust crate serde_json to 1.0.91 (#407)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-27 00:24:38 +03:00
renovate[bot]
d9cfa9cf15
chore(deps): update rust crate thiserror to 1.0.38 (#408)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-27 00:19:10 +03:00
Ivan Boldyrev
89f7cd09f7
fix(interpreter-interface): Remove the cid field (#414)
The `InterpreterOutcome::cid` field is not really needed, but makes integration more difficult.
2022-12-26 23:20:11 +07:00
renovate[bot]
9c26838a05
chore(deps): update dependency typescript to v4.9.4 (#400)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-26 21:48:32 +07:00
renovate[bot]
9cf326f1dd
chore(deps): update rust crate serde to 1.0.151 (#398)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-26 21:45:08 +07:00
renovate[bot]
3c24658919
chore(deps): update rust crate marine-runtime to 0.24.0 (#397)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-12-26 19:42:10 +07:00
Ivan Boldyrev
0226c062f8
feat!(execution-engine): Store call executed values as CIDs in the data (#401)
The trace stores CID strings for call result values.  These strings are to be resolved to real values with `InterpreterData::cid_store` map.
2022-12-26 15:45:14 +07:00
renovate[bot]
30967626e3
chore(deps): update dependency typescript to v4.9.3 (#389)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-29 23:23:20 +03:00
Ivan Boldyrev
becdedc364
feat!(avm-server): Per-call current_peer_id (#381)
The current peer ID is passed as a new field of `TestRunParameters` named
`current_peer_id: String`, instead of creating an AVM with peer ID.

This is a breaking API change of `avm-interface` and `avm-server`.
2022-11-25 14:59:09 +07:00
renovate[bot]
d3bda16e71
fix(deps): update all non-major rust dependencies (#369)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-11-24 12:54:40 +03:00
Ivan Boldyrev
fb344084a7
Make new clippy happy (#384) 2022-11-23 21:02:28 +07:00
Anatolios Laskaris
c33d46619d
ci: Update e2e (#378) 2022-11-16 14:49:51 +02:00
renovate[bot]
bbc521ce53
fix(deps): update all non-major rust dependencies (#338)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-15 21:08:46 +03:00
Mike Voronov
910f1665eb
fix(trace-handler): fix fold and canon compatibility (#357)
Fixes bug of traces divergence when `canon` is used inside `fold`.

Closes #356.
2022-10-09 12:56:12 +03:00
renovate[bot]
493b469257
chore(deps): update dependency typescript to v4.8.4 (#343)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-09-28 02:04:28 +03:00
Anatoly Laskaris
61cc3ffc2c
ci: Add Aquavm E2E (#324) 2022-09-20 18:25:55 +03:00
renovate[bot]
250b316682
Update dependency typescript to v4.8.3 (#322)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-09-19 14:20:03 +03:00
renovate[bot]
ad504bce8b
Update all non-major Rust dependencies (#330)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-09-19 14:07:34 +03:00
Anatoly Laskaris
ca62bd6066
chore: release (#329) 2022-09-13 19:08:47 +03:00
renovate[bot]
40bb3c843f
Update all non-major Rust dependencies (#323)
* Update all non-major Rust dependencies

* bump fluence-app-service version

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Valery Antopol <valery.antopol@gmail.com>
2022-09-13 19:03:18 +03:00
Valery Antopol
204b2be44d
Bump avm-server version to 0.26.0 (#317) 2022-09-09 16:56:03 +03:00
Pavel
698dbbb263
AVM client: Replace any with generic JSON types (#320) 2022-09-09 16:41:30 +03:00
Mike Voronov
626796b299
fix clippy warnings (#319) 2022-09-08 16:32:28 +03:00
Pavel
a2f996dde2
Fix issue when undefined data in AVM client caused FJS to fail (#313) 2022-09-07 12:55:23 +03:00
renovate[bot]
b4195175db
Update all non-major Rust dependencies (#309)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Anatoly Laskaris <github_me@nahsi.dev>
2022-09-07 12:10:07 +03:00
renovate[bot]
6a2d591721
Update dependency typescript to v4.8.2 (#312)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-09-07 11:32:46 +03:00
Ivan Boldyrev
619e8829a9
Get rid of unsafe code in the interpreter (#303)
* Get rid of unsafe code unless really necessary

* Add lint levels where appropriate

Some crates (air-beautifier, air-testing-framework) have lot of
rust_2018_idioms violations, that will be resolved later.
2022-09-06 00:03:30 +07:00
Anatoly Laskaris
2d400b4028
Bump marine-runtime to 0.20.0 (#299) 2022-09-02 14:32:04 +03:00
Ivan Boldyrev
513eb0e126
Testing framework, chapter I (#293)
Testing framework for AquaVM

Its primary features are:
1. It generates services declaratively by annotation in the comments inserted just after calls.
2. Ephemeral network keeps each node's data and incoming data queue.  The network can be also generated based on peer IDs featured in the script.
3. One can explicitly add additional peers and services.

The example of the script annotations:
```
(seq
  (call "peer_1" ("service" "func") [] var) ; ok=42
  (call "peer_2" ("service" "func") [var]) ; err={"ret_code": 1, "result":"no towel"}
)
```

Passing this script to `air_test_framework::TestExecutor::new(...)` will create a virtual network with peers "peer_1" and "peer_2" (and any peer you provide in the `TestRunParameters`), and the particular calls will return respective values.

Please note that autogenerated services use modified service name as a side channel for finding a correct value: "..{N}" is added to each service name (two dots and serial number).  Be careful with service names taken from a variable.
2022-09-01 18:12:55 +07:00
Ivan Boldyrev
5c7e88e0f2
Refactor avm-server interface mod to new crate (#294)
* Refactor `avm-server` interface mod to new crate (#294)

The new crate name is `avm-interface`.

It allows to build fully native air-trace, including pure WASM build.

* Make fully native air-trace build

Unless `wasm` feature is enabled (default), fully native build is
produced.  You may build WASM air-trace binary with

`cargo build --target wasm32-wasi --no-default-features --release -p air-trace`

* Fix tracing output on native air-trace build

Wrong option was used.
2022-08-19 16:29:21 +07:00
Mike Voronov
0d9390d333
make clippy happy (#291) 2022-08-10 12:27:06 +03:00
Valery Antopol
52f0390eb8
Update marine-rs-sdk to 0.7.0 to fix memory leak (#287) 2022-07-27 16:40:27 +03:00
Ivan Boldyrev
c3cea695c8
air-trace util for measuring AquaVM performance with tracing crate.
`air-trace run` subcommand allows to run AquaVM on any data, it allows to define most AquaVM inputs, providing defaults for most of them, and sets up either human-readable or JSON tracing output, the latter can be later processed by `air-trace stats`.

Anomaly data input is also supported, that is useful for slow data investigation.

Native execution mode can be used for native profiling.  Please note, however, that current version cannot be built natively on Apple Sillicon processor yet, as invariably depends on the `avm-server` because of leaking types that should be refactored or hidden.  The `--repeat` option can repeat the execution several times for the execution to dominate on input data reading and output.

High-level or rare calls have "info" trace level, instructions are "debug", and sub-instruction calls are "tracing".  Over-detailed tracing can induce overhead that spoils timing data.
2022-07-07 18:44:58 +07:00
Ivan Boldyrev
4acfb19e08
Add AIR script to the AquaVM's anomaly data (#280)
Save AIR script to AnomlalyData struct.

Increments versions of `avm-data-store` to 0.3.0 and `avm-server` to 0.22.0.
2022-06-30 16:26:37 +07:00
Mike Voronov
3a84ceb863
Add API to save anomaly data (#277)
This PR adds two new methods in DataStore to determine anomaly and collect necessary data. Additionally
    - a generic parameter of DataStore turned to be associative
    - AVMOutcome contains additionally memory_delta and execution_time
2022-06-23 15:24:00 +03:00
Ivan Boldyrev
e0f6fa1b4d
Run tests with sanitizers (#274)
As `wasm32-wasi` target doesn't seem to support sanitizers, we are to
execute tests with native code.  The feature `test_with_native_code` is
introduced for that.

Closes #247.
2022-06-10 12:28:40 +07:00
Ivan Boldyrev
dcfa51c756 Use pooled AVMRunner for tests
Use pooled `avm::server::AVMRunner` instances of
air_iterpreter_server.wasm to reduce tests' running time.  It avoids
repeated WASM loading and compilation.

On my hardware, `cargo test --release` execution time (precompiled)
decreases from almost 6 minutes to 1.5 minutes.
2022-05-16 13:16:28 +07:00
Valery Antopol
74ddf26b6a
update faas (#259) 2022-04-26 16:54:24 +03:00
Valery Antopol
298d796c09
update faas & app-service (#257) 2022-04-26 13:12:10 +03:00
Pavel
f175b31ffd
Pass updated RunParameters to AquaVM (#256) 2022-04-25 17:36:42 +03:00
Mike Voronov
7e0c87d72a
Introduce %ttl% (#253) 2022-04-21 11:44:18 +03:00
Mike Voronov
490791b177
introduce %timestamp% (#250) 2022-04-20 23:05:37 +03:00
Mike Voronov
5c2b9d442b
Expose max memory size (#242) 2022-04-20 20:21:07 +03:00
Pavel
c2bfad7f79
Marine-js stage 2: move avm-related helpers to appropriate package (#239) 2022-04-18 15:38:19 +03:00
Valery Antopol
5f0e295073
update faas (#240) 2022-04-07 00:18:49 +03:00
Valery Antopol
7f3b44fb9b
bump faas version (#235)
* bump faas version

* bump avm-server-version
2022-03-25 21:53:15 +03:00
Valery Antopol
39da1c98bb
Use js marine runtime instead of wasm-bindgen (#209) 2022-02-18 19:04:40 +03:00
Mike Voronov
3219570006
switch to marine without mem limits (#213) 2022-01-31 18:46:15 +03:00