* 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.
* 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>
* 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>
* 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>
* 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.
* 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>
* 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>
* 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.
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.