aquavm icon indicating copy to clipboard operation
aquavm copied to clipboard

Deterministic AIR execution

Open mikevoronov opened this issue 4 years ago • 1 comments

At the moment, AIR consists of several instructions and every their combintation must work in a deterministic way on one peer. Deterministic problems arise while working with streams:

  • streams must be CRDT-like and deterministic on one peer
  • all operations with streams should be deterministic and don't depend on a CRDT nature of streams

The solution for the second issue is a stream canonicalization before its usage in any instruction except the fold instruction. This allows safely usage of streams in match and mismatch instructions, because after a canonicalization a stream become a scalar value.

Roadmap

  • [x] make streams CRDT-like #89
  • [x] introduce stream canonicalization #158
  • [x] fix ap position generation #326
  • [ ] reduce streams scope usage #297

mikevoronov avatar Oct 12 '21 12:10 mikevoronov

Fixes #204.

mikevoronov avatar Jan 25 '22 11:01 mikevoronov

Finally fixed in #297

mikevoronov avatar Dec 04 '22 14:12 mikevoronov