213 Commits

Author SHA1 Message Date
Mike Voronov
26429eaca2
feat(air-cli)!: introduce risc-0 extension (#681) 2023-12-21 16:51:15 +03: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
renovate[bot]
f1b6c48987
chore(deps): update rust crate multihash to 0.19.1 (#748)
* chore(deps): update rust crate multihash to 0.19.1
* Coordinated update of `cid` and `multihash` crates

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-12-08 00:32:16 +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
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
renovate[bot]
7d4dfb76ea
chore(deps): update rust crate multimap to 0.9.1 (#738)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-29 15:41:30 +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]
1d02b426b5
chore(deps): update rust crate num-traits to 0.2.17 (#669)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 13:39:31 +03: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]
4d4c946eaa
chore(deps): update rust crate regex to 1.10.2 (#603)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-23 12:11:13 +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
Ivan Boldyrev
a84716dad6
chore(interpreter-cid): fix compilation with correct featureflag (#724)
fix(interpreter-cid): fix compilation with correct featureflag
2023-10-19 13:02:24 +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
Ivan Boldyrev
8a07613027
feat(aquavm-air)!: signature checking (#607) 2023-10-13 22:19:02 +03:00
fluencebot
b6c4eaaddc
chore: release master (#715) 2023-10-13 21:19:14 +03:00
fluencebot
40cad86b49
chore: release master (#707)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.49.0
2023-10-13 20:42:40 +03:00
fluencebot
8f23d90ece
chore: release master (#698)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.48.0
2023-09-22 00:46:21 +03:00
raftedproc
45035ccff5
feat(execution-engine)!: this patch prohibits error code = 0 (#702) 2023-09-21 17:33:57 +03:00
renovate[bot]
b713e447fc
fix(deps): update rust crate marine-rs-sdk to 0.10.0 (#640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Valery Antopol <valery.antopol@gmail.com>
Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
2023-09-19 17:04:40 +07:00
Ivan Boldyrev
bd80a127ea
feat(parser,execution-engine): allow :error: in fail (#696)
The `(fail :error:)` was previously rejected by parser.  Now it is
executed, but is of limited use.
2023-09-19 14:21:30 +07:00
Ivan Boldyrev
d41f7646d9
chore: Rust channel update dedicated to Software Engineer Day (#699) 2023-09-14 18:55:06 +07:00
fluencebot
244bed3326
chore: release master (#694)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.47.0
2023-09-07 17:56:11 +07:00
raftedproc
b4cbf8f621
feat(execution-engine)!: canon stream map support [fixes VM-301] (#648)
* feat(execution-engine)!: canon stream map support [fixes VM-301]
	Canon stream map is a CRDT-like map structure that contains a
	canonicalized stream map and allows indexed access to its
	contents. ATM CSM supports both strings and int64 keys.
2023-09-07 11:30:24 +03:00
fluencebot
bf64366750
chore: release master (#692)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.46.0
2023-09-05 02:20:03 +02:00
fluencebot
3dd239dc10
chore: release master (#690) 2023-09-05 00:28:26 +02:00
raftedproc
20afb79e3f
feat(execution-engine): a new :error: runtime attribute according with FLIP-11 [fixes VM-329] (#683)
* feat(execution-engine): a new :error: runtime attribute according with FLIP-11 [fixes VM-329]
2023-09-04 22:57:51 +03:00
fluencebot
46142f3163
chore: release master (#688)
* chore: release master

* chore: Bump air-interpreter and air-near-contract version to 0.45.0
2023-08-31 17:22:44 +07:00
Anatolios Laskaris
c41c101083
chore: Revert release and fix typo in release-please (#684)
* Fix component name

* Revert "chore: release master (#680)"

This reverts commit d6bd1c0348d163ae9b7d4c45b41399e84fd60ac0.
2023-08-31 10:48:50 +03:00
fluencebot
d6bd1c0348
chore: release master (#680)
* chore: release master

* chore: Bump air-interpreter version to 0.45.0
2023-08-29 19:36:08 +02:00
Ivan Boldyrev
2b636e808a
feat(execution-engine,interpreter-data)!: insert state for canon join (#682)
If `canon` is to be executed on another peer and the particle is to be
sent here, current peer inserts canon request-sent-by state to avoid
repeated requests, similar to `call` instruction.
2023-08-29 18:18:42 +02:00
fluencebot
27a99fcca0
chore: release master (#668)
* chore: release master

* chore: Bump air-interpreter version to 0.44.0
2023-08-17 16:06:59 +03:00
Ivan Boldyrev
0e80ee7908
feat(aquavm-air-cli): --near execution mode [fixes VM-322] (#672)
Adding the NEAR execution mode that executes AIR NEAR smart contract, measuring its gas consumption.
2023-08-17 13:40:29 +02:00
Valery Antopol
7a8a460572
feat(polyplets)!: move SecurityTetraplets to marine-rs-sdk (#674)
* wip

* remove patch.crates-io section

* switch from Into to From

* fmt + Cargo.lock update

* try use marine-rs-sdk 0.9.0

* Revert "try use marine-rs-sdk 0.9.0"

This reverts commit 603c18fb71e88c2ad9f221990bb0bca4fc053dca.
2023-08-17 00:04:36 +03:00
Ivan Boldyrev
f3b00eafd1
chore: PartialOrd uses Ord's implementation (#676)
It was vice versa.  The problem was found by clippy.
2023-08-16 15:39:31 +07:00
Valery Antopol
4b4e3bde83
feat: updating marine-rs-sdk minor version (#667)
* 1st polyplets update: minor marine-rs-sdk-main bump

* renovate manifest update

* update marine-rs-sdk

* update marine runtime

* bump minor versions
2023-08-09 22:11:45 +03:00
raftedproc
6383a74680
chore(trace-handler,air-parser): replace matches! with equality comparison where applicable (#662)
chore(trace-handler,air-parser): replace matches! with equalite comparison where applicable
2023-08-08 11:58:15 +03:00
fluencebot
e5039086cd
chore: release master (#665) 2023-08-08 11:46:32 +03:00