307 Commits

Author SHA1 Message Date
fluencebot
c611ae584b
chore: release master (#841)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.64.0
2024-06-28 11:12:03 +01:00
Mike Voronov
4bdc881c7a
chore: change license to AGPL-3 (#844) 2024-06-26 12:34:36 +03:00
raftedproc
325cce2f54
feat(air)!: change fold over canon map iterator contents [fixes VM-620] (#843) 2024-06-25 13:39:16 +01:00
Ivan Boldyrev
acb07a3364
chore(deps): update rust crate borsh to 1.5.0 (#838) 2024-05-26 03:00:56 +07:00
fluencebot
c04d8f889e
chore: release master (#825)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.63.0
2024-04-17 14:16:37 +04:00
Valery Antopol
bf9414e8d4
feat(runtime)!: switch to async marine (#815)
* bench results for sync marine

* WIP

* start updating tests

* most of initial issues fixed

* tests compile without warnings

* rustfmt

* merge with master

* use git dependency

* merge fix + fmt

* fix bench builder

* add Cargo.lock

* fix + fmt after merge

* fix build with latest marine

* use released marine
2024-04-15 19:17:17 +04:00
fluencebot
a600c1735c
chore: release master (#823) 2024-02-23 01:18:15 +03:00
Ivan Boldyrev
bab0c002f5
chore: Rust channel update dedicated to ENIAC Day (#822)
It requires updating minor version of curve25519-dalek and ahash crates in the
Cargo.lock.  If you need to use older version of nightly rustc, use
curve25519-dalek-4.1.1 and ahash-07.8/0.8.9.  It affects Cargo.lock only.
2024-02-23 04:29:22 +07:00
fluencebot
9cc62cbb9a
chore: release master (#821) 2024-02-22 14:05:33 +03:00
Valery Antopol
08e85478b4
feat!: update marine-rs-sdk to 0.14.0, remove all of json_path remains (#820)
* support call_parameters v2

* remove old comment

* use released marine

* fix test wasm

* update sdk marine use lens

* fix test module

* WIP fixing the tests to use lens

* WIP tetraplet field renaming test fixes

* rename more lambda to lens

* fix build

* Fix gen-bench-data compilation

* Update gen-bench-data Cargo.lock

* Fix signature tests

---------

Co-authored-by: drrtuy <roman@fluence.one>
Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2024-02-22 11:57:27 +04:00
fluencebot
b9f04dfbaf
chore: release master (#810)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.60.0
2024-02-20 15:37:21 +03:00
raftedproc
5afd5cb3a1
feat(execution-engine): aquavm args limits (#811)
* feat(preparation,memory):  AquaVM preparation step now checks input arguments sizes [fixes VM-425]
2024-02-15 19:55:25 +03:00
Ivan Boldyrev
0d53f2bab1
feat(execution-engine): Rc-based JSON value (#813)
Use custom JSON value type with Rc inside.  It cannot be edited, but producing new values based on child element is very cheap.

This new type is used exclusively in AquaVM internals.  Interface APIs use serde_json's Value or JSON strings, as before.
---------

Co-authored-by: raftedproc <71657594+raftedproc@users.noreply.github.com>
2024-02-13 19:11:21 +07:00
fluencebot
d0ca93c231
chore: release master (#797)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.59.0
2024-01-24 20:41:11 +07:00
Valery Antopol
3375c7a3b6
feat(deps)!: update to marine runtime with memory limits and wasmtime (#768) 2024-01-24 17:16:33 +04:00
raftedproc
6c1cb289cc
fix(performance): avoiding particle data printout in errors 2024-01-23 11:50:00 +03:00
renovate[bot]
a33e853812
fix(deps): update rust crate marine-rs-sdk to 0.10.3 (#782)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 20:14:57 +07:00
fluencebot
d7d33ddb7f
chore: release master (#793)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.58.0

* Set minimal interpreter version to 0.58.0

---------

Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2024-01-11 18:56:03 +07:00
Ivan Boldyrev
d6b1da9bdc
feat(air,air-cli): pretty-printing binary interpreter data (#794)
Add new interpreter method `to_human_readable_data` and `air data` subcommand to convert binary data to JSON with indentation.
2024-01-11 17:46:16 +07:00
Ivan Boldyrev
0a680f8d2e chore(build): break circular dependency
With a legacy syntax hack.
2024-01-09 21:12:21 +01:00
Ivan Boldyrev
2e0b54c2d4
feat(data)!: Rkyv for InterprerterData (#783)
* Refactor out the `InterpreterDataEnvelope`

It is an envelope for the data that makes `version` info accessible in
standard non-changing way.  Inner data in `InterpreterDataEnv` is a binary blob.

* Use `rkyv` for `InterpreterData`
* `InterpreterDataEnvelope` uses MsgPack directly

It will be changed when `interpreter-sede` will support types with serde borrows.
2024-01-10 00:22:11 +07:00
fluencebot
38677832f6
chore: release master (#789)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.57.0
2024-01-09 22:40:00 +07:00
Ivan Boldyrev
325eea7e91
feat(interface)!: Use MessagePack for calls (#780)
Top-level structs use multicodec-prefixed MessagePack, the nested
structures (arguments, tetraplets) use just ordinary MessagePack.

* JS-compatible `CallResults`

Binary format implementations like `rmp-serde` do not bother converting keys from strings, unlike `serde_json`.
So, we use `CallResults` with string keys, as JS client cannot produce anything else.

---------

Co-authored-by: Mike Voronov <michail.vms@gmail.com>
2024-01-08 18:01:58 +07:00
fluencebot
0d3ce3bcd9
chore: release master (#771)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.56.0

* temporary disable risc-0

* remove the risc-0 part from the release-please at all

---------

Co-authored-by: Mike Voronov <michail.vms@gmail.com>
2024-01-08 17:32:49 +07:00
raftedproc
c6f157a6e3
feat(air-parser): VM-347 After next validator fold check (#774) 2023-12-28 20:48:16 +03:00
Ivan Boldyrev
f1c7b43a1e
feat(data)!: values are binary blobs (#775)
* Store deserialize values as raw JSON values

Values are parsed on-demand.
---------

Co-authored-by: Mike Voronov <michail.vms@gmail.com>
2023-12-26 18:42:40 +07:00
renovate[bot]
c9a0b87a4c
fix(deps): update rust crate fluence-keypair to 0.10.4 (#752)
* Update ed25519-dalek and rand_chacha to compatible versions
* Make clippy happier

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-12-26 04:13:57 +07:00
Mike Voronov
0a8827bb3c
chore: use resolver 2 and 2021 edition (#769) 2023-12-18 18:48:46 +03:00
Ivan Boldyrev
771d42dec4
feat(data)!: flexible serialization formats (#757)
New crate air_interpreter_sede introduces a flexible serialization and deserialization infrastructure.

Low level API: the Format trait and related. It includes simple and universal mechanisms for serializing any possible (e.g. implementing the Serde traits) value.

High level API: Representation trait and related. It allows declaring representation types that can serialize and deserialize only certain types (for example, InterpreterDataRepr can serialize only the InterpreterData, but deserialize InterpreterData and Versions` types), producing newtype values as serialization results.

The serialized representation of CallResults now contains byte arrays, not strings, because the new infrastructure serializes to byte arrays only.

Also, the basic support for multicodecs is added.
2023-12-15 21:23:09 +07:00
fluencebot
17d7ef6c5a
chore: release master (#751)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.55.0
2023-12-13 00:15:36 +07:00
renovate[bot]
05fda3ee16
fix(deps): update rust crate marine-rs-sdk to 0.10.2 (#733)
---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-12-12 23:24:11 +07:00
Ivan Boldyrev
1673cdf06c
feat(air-parser)!: optimize Instruction type layout (#767)
Instead of being boxed for each node, the `Instruction` type contains a boxed variable-size elements.  Thus `Instruction` is quite lean, and the allocator deals with variable-sized elements.

Total number of allocations is more or less same, but less space is wasted for unused memory: previously the Instruction's size was 112 bytes in WASM, now it is 16.

It reduces memory consumption on large AIR scripts (heap size decreased from 7.7MiB to 4.625MiB in parser-10000-100, and for the new parser-calls-10000-100 benchmark, it decreased from 5.115MiB to 4.375MiB).

This is a breaking change as the API changes (though the code that navigates the parsed tree generally should work as is).
2023-12-12 19:50:41 +07:00
Ivan Boldyrev
2b83ad1755
chore(benchmarks): call-requests and call-results benchmarks (#759) 2023-11-28 00:01:14 +07:00
Ivan Boldyrev
524c30243b
feat(interpreter-cid,interpreter-data)!: Support for multiple hash types in CID verification (#722)
It will allow to change CID hash functions without breaking compatibility or use multiple CID hash functions.
2023-11-23 01:12:42 +07:00
raftedproc
973e8aeea5
chore(tests): etalon benchmarking test for network team convenience (#754) 2023-11-13 21:22:54 +03:00
raftedproc
1b7de5e659
chore(testing-framework): a new behavior to print service call parameters/result out to console (#723) 2023-11-08 14:10:05 +03:00
renovate[bot]
523dd6b219
chore(deps): update rust crate serde_json to 1.0.108 (#742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-03 00:15:56 +07:00
Ivan Boldyrev
15ce40a1cd
feat(interpreter-data)!: allow only deterministic signature algorithms (#734)
Some public signature algorithms require a RNG, but it is not
available in certain environments like smartcontracts.
2023-11-02 21:43:35 +07:00
renovate[bot]
55da7a64aa
chore(deps): update rust crate tracing to 0.1.40 (#745)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-29 21:18:50 +07:00
renovate[bot]
9558692421
chore(deps): update rust crate serde to 1.0.190 (#740)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-29 20:44:40 +07:00
renovate[bot]
10341c42fd
chore(deps): update rust crate thiserror to 1.0.50 (#744)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-29 20:10:26 +07:00
fluencebot
9bac51f24e
chore: release master (#725)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.54.0

* Update minimal version to 0.54.0

---------

Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-10-26 20:56:52 +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
renovate[bot]
f73e220ed1
chore(deps): update rust crate log to 0.4.20 (#661)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 13:03:15 +03:00
renovate[bot]
88e7dba5f2
fix(deps): update rust crate fluence-keypair to 0.10.3 (#620)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 19:00:15 +03:00
fluencebot
cbc659e939
chore: release master (#721)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.53.0
2023-10-16 17:15:16 +03:00
Ivan Boldyrev
c2108e0fa0
feat(execution-engine,test-utils,interpreter-data,interpreter-cid)!: Rc into CID (#718)
* Hide `Rc` inside `CID` type, making it cheap to clone.
* Introduce `CidRef` type that abstracts on `CID`'s inner type.

This change makes code cleaner, makes memory more optimal (single allocation vs two allocations) and makes it easier to change CID's internal representation from string to binary.
2023-10-16 20:35:42 +07:00
fluencebot
d2ad221597
chore: release master (#720)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.52.0
2023-10-16 16:01:49 +03:00
Mike Voronov
cdcb86cb55
feat(execution-engine)!: intro farewell_if_error_macro (#719)
intro farewell_if_error_macro
2023-10-16 15:13:20 +03:00
fluencebot
0aa23318d9
chore: release master (#716) 2023-10-13 22:21:19 +03:00