sin7y / olavm Goto Github PK
View Code? Open in Web Editor NEWA STARK-based ZKVM which aims to Programmable Scalability, Programmable Privacy
License: MIT License
A STARK-based ZKVM which aims to Programmable Scalability, Programmable Privacy
License: MIT License
We need more utils gates, like range check
, comparison
. So we can use these gates whenever we need. And we can also use these gates internally in builtins.
For example, something like PSE's lt gadget.
The execute
function in executor::Process
is way too large, consider refactor it to multiple smaller functions based on each instruction.
I found that the verification command only needs to input a proof file, so how to ensure that the proof received by the verifier is the proof of the given program. Some stark proofs I have learned will include the hash of the program in order to bind the program and the proof.
I followed the tutorial to run the asm file and wanted to generate a code file, but this step reported an error:
$ ola asm --input fib.asm --output fib.code
Input assemble file path: fib.asm
thread 'main' panicked at assembler/src/encode.rs:263:18:
not match opcode:{
note: run with RUST_BACKTRACE=1
environment variable to display a backtrace
There are three pr merge strategies: (normal) merge, squash, rebase.
More info about them on https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/about-merge-methods-on-github .
Pr title
+ pr num
. We can easy track the pr context of a commit.repo->settings->General
Pull Requests
like below:We use plonky2, which requires a recent nightly toolchain, we better override toolchain to nightly.
For now, there are 2 builtins use transpose, bitwise and range_check.
Right now, we use serde to serialize StarkProof
, which wastes quite a bit of space. We should make custom serializer, like plonky2 proof do. We better 'inherit' Buffer
, add StarkOpeningSet
read/write function.
At present, there is no constraint on the reading and writing of register, but after preprocessing, the data of register is taken out and constructed into AIR trace. We should consider make these constraints.
When we get memory trace from vm, we call this raw memory trace raw_mem_trace
, we need sort it by address, clk, pc. We call sorted memory trace sorted_mem_trace
,
address | clk | pc | value | rw |
---|---|---|---|---|
12 | 322 | 87 | 100 | w |
12 | 323 | 88 | 100 | r |
12 | 435 | 138 | 100 | r |
we then can do memory constraint:
write
.read
, the value
must be same as last operation.Constraint sorted memory is not enough, we need permutation argument to make sure raw_mem_trace
and sorted_mem_trace
are permuted.
many testdata was missing in executor\src\tests.rs
For now, there are several broken color tags in readme, e.g the status (done, doing, to do). Fix these with emoji.
Hey guys,
I'm new at this field and I just read your documentation and I'm a little confused.
I don't know the step-by-step process for writing a guest program on the circuit and validating it.
I would appreciate it if you guys help me through this.
Thanks.
Should we use u64
as our main type for operands? In contrast, currently we use GoldilocksField
, which is a 63 bit field(more precisely, P = 2^64 - 2^33 + 1
). So the question is: what are the pros vs cons?
Hello,
I would like to request the creation of a Turkish version of the current English README. Providing a Turkish translation will help to make the project more accessible to Turkish-speaking users and contributors.
Translate the entire README from English to Turkish.
Ensure that all technical terms are accurately translated or appropriately kept in English if they do not have a direct Turkish equivalent.
Add a link to the Turkish version at the top of the existing README for easy access.
I am a Turkish speaker and would be happy to assist with or fully handle the translation process. Please let me know if this is something the project maintainers are open to, and if there are any specific guidelines or formats that I should follow.
Thank you for considering this request!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.