triton-vm
triton-vm copied to clipboard
Triton is a virtual machine that comes with Algebraic Execution Tables (AET) and Arithmetic Intermediate Representations (AIR) for use in combination with a STARK proof system.
Suggested by @aszepieniec. By returning the result of the quintuple equality test instead of crashing the VM on inequality, a programmer can test whether a hash digest equals the Merkle...
Bug-hunt 2aed4267c0a21d4e6b6212b263c64433abc0c0d4 identified two types of errors that can occur when running the VM. 1. Rust produces a "`failed to fill whole buffer`" message. This is probably related to stdin/secret_in...
I'm writing some code in `tasm-lib` where I could use the [`ConstraintType`](https://github.com/TritonVM/triton-vm/blob/master/triton-vm/src/table/extension_table.rs#L84) enum for a convenient closure. As it looks now, I have to define a local enum type which...
This is a tracking issue. We add imagined instructions that could make recursion (or consensus programs) faster. ## `read_mem_forward` ❌ - BEFORE: `*ptr` - AFTER: `(*ptr+n) [element]` - With this...
It would be very convenient if it was somehow possible to extract a FRI proof, or probably a FRI proof stream from a STARK proof (or a STARK proof stream)....
It would be very cool if there was a function to return the `TasmConstraintEvaluationMemoryLayout` used by the STARK prover/verifier. I think all values *can* be known at compile time. The...
I wrote this code: ```rust let asm_annotation_str = format!("hint {var_name}: {data_type} = stack[0..{last_stack_for_value_plus_one}]"); let asm_annotation = triton_asm!({ asm_annotation_str }); ``` Where `data_type` is `Vec`. This fails with the following error:...
From what it looks like, the `triton_instr` macro when used to create a `call` instruction, does not take the *value* of the variable of type `String` but its *name*. For...
This works ```rust let a: usize = 4; triton_asm!(write_io {a}); ``` but this does not ```rust let a: usize = 4; triton_instr!(write_io {a}); ``` I would be cool if this...
Nom parser errors are never (?) shown to the user, since the `label` parser is wrapped in an `alt`. With a custom error type, it is possible to have `alt`...