Commit Graph

289 Commits

Author SHA1 Message Date
d5a3f768af chore: remove fstrings dep (#627)
* remove fstrings dep

---------

Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-07-14 20:02:19 +07:00
adcf708c95 fix(air-beautifier): print fold's last_instruction (#630)
It was not printed before by mistake.
2023-07-14 18:40:05 +07:00
62fdd74805 chore: remove unused dependecies (#626)
remove unused dependecies
2023-07-03 12:31:56 +03:00
fcb4c9dab4 feat(execution-engine)!: stream map to scalar conversion using canon instruction [fixes VM-294] (#610)
feat(execution-engine): Stream Map to Scalar conversion using canon instruction [fixes VM-294]
2023-06-28 13:59:16 +03:00
bba1becdce chore(deps): update rust crate serde to 1.0.164 (#595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-28 03:47:42 +07:00
e90dc9285d chore(deps): update rust crate lalrpop to 0.20.0 (#596)
* chore(deps): update rust crate lalrpop to 0.20.0

* Update lalrpop-util to compatible version

* Fix code broken by the API change

* Regenerate parsers

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-06-28 03:12:04 +07:00
vms
fb5c73136d add AquaVM update guide 2023-06-27 11:23:35 +03:00
e4665a55fa chore: release master (#614)
* chore: release master

* chore: Bump air-interpreter version to 0.41.0
2023-06-23 22:38:43 +07:00
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
c6627fe437 chore: release master (#553)
* chore: release master

* chore: Bump air-interpreter version to 0.40.0

* feat(aquavm-air): Set minimal supported version to 0.40.0

---------

Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-06-23 04:45:40 +07:00
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
9d7d34a452 feat(execution-engine): Stream Map initial support [fixes VM-283,VM-284] (#592)
feat(execution-engine): StreamMap initial support for ap and new instructions [fixes VM-283,VM-284]
2023-06-04 21:14:59 +03:00
252d43b348 feat(air-interpreter-signatures): use (de)serialize_with (#605)
* feat(air-interpreter-signatures): use (de)serialize_with

Wrapper types do not hold strings anymore, but use `(de)serialize_with`
serde attributes to parse keys and signatures during parse time.

`PublicKey` and `Signature` traits implement `Deref` trait that returns
the inner value.
2023-06-04 20:06:31 +07:00
f8b734abde feat(aquavm-air,air-interpreter-signature,air-interpreter-data)!: Peer signatures (#598)
A peer signs the multiset of call results and canon results it has produced.

New field signatures, a map from peer public key to signature, is added to the interpreter data.

Signatures verification is yet to be done.
2023-05-15 22:21:57 +07:00
1d98afeb34 feat(interpreter-data): Introduce source information for canon data (#577)
* `ValueAggregate` refactoring

0. Service results, canon results and literals are constructed as
   separate types that are further wrapped with `ValueAggregate`.
1. `ValueAggregate` is enum that contains all the provenance info.
2. Construction methods get provenance information as well.

* Rename CID state field

Prepare to adding a canon CID field: rename `canon_tracker`/`canon_store`
to `canon_element_tracker`/`canon_element_store`.

* Add canon result store/tracker

* Rename some structs that have CIDs inside

Reflect explicitly that they contain CIDs inside:

`CanonResultAggregate` -> `CanonResultCidAggregate`
`ServiceResultAggregate` -> `ServiceResultCidAggregate`

---------

Co-authored-by: Mike Voronov <michail.vms@gmail.com>
2023-05-08 19:42:41 +07:00
b480e018b4 chore(trace-handler): sub/-trace len dedicated alias to replace usize [fixes VM-282] (#569)
feat(trace-handler): sub/-trace len dedicated alias to replace usize [fixes VM-282]
2023-05-02 16:32:18 +03:00
80486ed6ad chore(deps): update rust crate lalrpop to 0.19.12 (#588)
* chore(deps): update rust crate lalrpop to 0.19.12

* chore(deps): update rust crate lalrpop-util to 0.19.12

* Update generated files

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-05-02 01:39:02 +07:00
97fc47d45c chore(deps): update rust crate regex to 1.8.1 (#586)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-28 00:24:32 +07:00
79faaa2c4c chore(deps): update rust crate multihash to 0.18.1 (#581)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-19 02:11:05 +07:00
138501fff9 fix(deps): update rust crate fluence-it-types to 0.4.1 (#545)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-13 16:25:19 +07:00
499ee82903 chore(deps): update rust crate lalrpop-util to 0.19.9 (#552)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-10 23:39:22 +07:00
d62fa6fe60 feat(air): introduce explicit types for generation numbers (#530)
---------

Co-authored-by: vms <michail.vms@gmail.com>
Co-authored-by: Anatolios Laskaris <github_me@nahsi.dev>
2023-04-10 12:07:50 +01:00
3027f0be26 chore(deps): update rust crate lalrpop to 0.19.9 (#551)
* chore(deps): update rust crate lalrpop to 0.19.9
* Regenerate parsers

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-04-10 17:55:42 +07:00
7d37c36d00 chore(deps): update rust crate serde_json to 1.0.95 (#571)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-10 15:56:12 +07:00
695937d450 chore(deps): update rust crate num-traits to 0.2.15 (#570)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-10 03:22:22 +07:00
839c3200a9 chore(deps): update rust crate serde to 1.0.159 (#565)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-10 02:34:34 +07:00
85cf531de4 chore(deps): update rust crate multimap to 0.9.0 (#550)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-07 19:35:12 +07:00
b2116c7ea4 chore(trace-handler): fix fmt and clippy warnings (#567)
chore(trace-handler): remove some line breaks to sync with cargo fmt
2023-04-07 12:50:00 +03:00
658daf1d3f feat(trace-handler): TracePos becomes a wrapper for u32 alias [fixes VM-267] (#544) 2023-04-05 11:50:15 +03:00
8bcad8e3af chore(deps): update rust crate regex to 1.7.3 (#549)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-27 22:59:39 +07:00
28cf5045b6 chore: release master (#542)
* chore: release master

* chore: Bump air-interpreter version to 0.39.0
2023-03-23 17:37:30 +07:00
d5028942e4 feat(interpreter-data)!: New data format for calls (#501)
BREAKING CHANGE:
1. Call values in the trace have CID references to structures that have call arguments' hash and CID references to values and tetraplets.
2. If call value is unused, it is serialized with `Unused` variant, and CID references are not stored.

Previous data scheme was (Scalar as an example, other cases are similar):

```
Scalar(CID<JValue>) ---<value_store>----> JValue
```

New data scheme is much more sophisticated:

```
Scalar(CID<ServiceResultAggregate>) ---+
                                       |
  +----<service_result_store>----------+
  |
  +-------> ServiceResultAggregate:
               value_cid ------------<value_store>----> JValue
               tetraplet_cid --------<tetraplet_store>----> SecurityTetraplet
               argument_hash: String
```
`Stream` variant is similar, however, `Unused` is different: it has value CID only, but the value is not stored into the `value_store`:

```
Unused(Rc<CID<JValue>>) ---> X
```

Co-authored-by: Mike Voronov <michail.vms@gmail.com>
2023-03-21 19:12:04 +07:00
631abd4ec4 chore(execution-engine): this commit adds a set of trace-related negative tests for UncatchableError [fixes VM-263] (#532)
chore(execution-engine): this commit adds a set of trace-related
negative tests for UncatchableError [fixes VM-263]
2023-03-21 00:31:36 +03:00
2c8d02d271 chore(deps): update rust crate serde to 1.0.158 (#536)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-21 00:28:18 +07:00
282ff9de70 chore(deps): update rust crate thiserror to 1.0.40 (#537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-20 23:23:46 +07:00
8388a95bf4 chore(deps): update rust crate bimap to 0.6.3 (#539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-20 23:19:21 +07:00
eb55564369 chore: release master (#524)
* chore: release master

* chore: Bump air-interpreter version to 0.38.0
2023-03-15 17:32:29 +02:00
a22e2dd3fb chore: Revert "chore: release master (#520)" (#523)
Revert "chore: release master (#520)"

This reverts commit 7aa5d4bef5.
2023-03-15 17:21:47 +02:00
7aa5d4bef5 chore: release master (#520)
* chore: release master

* chore: Bump air-interpreter version to 0.38.0
2023-03-15 17:35:44 +03:00
a96a52db27 chore: fix some Cargo.tomls (#521)
* chore: fix some Cargo.tomls

* chore: publish `air-testing-framework`

As it is a dev dependency to `aquavm-air` crate.
2023-03-15 21:28:10 +07:00
126d5507c8 feat(avm)!: integrate Marine 0.26.0 (#461) 2023-03-15 17:11:53 +03:00
3ac1d03868 chore: release master (#515)
* chore: release master

* chore: Bump air-interpreter version to 0.37.1
2023-03-15 19:29:59 +07:00
8cf969762a chore: Rename air-parser (#518)
* Rename air-parser

* Fix

* Set version

* Fix

* Fix?

* Fix?

* Fix
2023-03-15 14:10:25 +02:00
79ac153f1d feat(tools): merge some tools into the air CLI tool (#509)
* feat(tools): merge some tools into the `air` CLI tool

`air-beautify` and `air-trace` are merged into a single `air` tool.  Its
crate name is `fluence-air-cli` as otherwise it confilicts with `air`
interpreter crate.  The tool has subcommands `beautify`, `run`
and `stats`.

* Add one-letter aliases to `air` CLI subcommands

+ `air beautify` => `air b`
+ `air run` => `air r`
+ `air stats` => `air s`

---------

Co-authored-by: Mike Voronov <michail.vms@gmail.com>
2023-03-15 16:59:30 +07:00
d99272f9d3 chore: release master (#491) 2023-03-14 19:08:48 +03:00
62da247c3a chore(deps): update rust crate semver to 1.0.17 (#510)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-13 15:59:38 +03:00
eb1425de25 chore(deps): update rust crate serde to 1.0.155 (#508)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-12 14:35:50 +07:00
f87d1cb373 chore(deps): update rust crate thiserror to 1.0.39 (#507)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-11 13:28:33 +03:00
16265f97b0 chore(deps): update rust crate serde to 1.0.154 (#506)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-11 13:28:15 +03:00
c985e39824 chore(deps): update rust crate serde_json to 1.0.94 (#499)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-07 11:04:55 +03:00