* fix(controller): immediately exits when receiving the SIGTERM without waiting for the kill to complete
* feat(tmp-response): also remove the tmp response file in case it exists
* minor(execution): adds a comment explaining why we can safely close
* feat(spot): adds early graceful exit mechanism to exit the process in time.
* minor(controller): explicit the fact that os.Rename cannot fail post execution.
---------
Signed-off-by: AlexandreBelling <alexandrebelling8@gmail.com>
* bumping Hardhat and Solidity to latest
* bump coverage plugin
* add coverage var to command execute
* revert test
* update build script to use 0.8.28
* fix execution large circuitID and add sanity-check for traces limits checksum between setup and config
* fix: add sync.once fullZkEvmSetup and fullZkEvmSetupLarge for setup
* fix: prover large cbor Unmarshal error "exceeded max number of elements"
- use default value (131072) x 1024 for MaxArrayElements and MaxMapPairs
* update `go-corset` to `v0.9.4`
* feat: add binfile / tracefile compatibility check
This adds a compatibility check between the zkevm.bin file and the lt
trace file. The compatibility check extracts the constraints commit
used to generate the respective asset, and ensures a match. If not, the
code panics with an error. Likewise, if the metadata is missing then
code will panic with an error.
* support "relaxed mode"
This intention here is to enable the strong compatibility check to be
disabled. It seems sensible to have an option to turn it off, and a
flag is added to the `bin/checker` to disable it.
* remove file-based constraints version check
* update to later version of `go-corset`
In order to allow embedded line count information (as requested
separately from this PR), go-corset now uses a structured form of
metadata. This simply updates this PR to use the revised API.
* rename "RelaxedMode" => "IgnoreCompabitilityCheck"
This simply renames the "relaxed mode" to something more direct, namely
"IgnoreCompatiblityCheck" which does what it says on the tin.
* update `go-corset` to v1.0.0
* add IgnoreCompatibilityCheck option to prover config
* remove unnecessary variable
* Update compatibility check to fail early on incompatibility
* add log when IgnoreCompatibilityCheck is enabled
---------
Co-authored-by: gusiri <dreamerty@postech.ac.kr>
This adds the option to run the checker in "bench" mode, and also adds support for passing a go-corset optimisation level via the bin/checker. The purpose of this is to enable testing at different optimisation levels to see what effect this has. Finally, it exposes the metadata stored in the zkevm.bin file, such that it can be used for cross-checking purposes. For example, the metadata includes the git commit of the enclosing repository when it was built.
---------
Co-authored-by: AlexandreBelling <alexandrebelling8@gmail.com>
* feat(setup): run setup in deterministic order
* fix(pubinp): fix the public input names
* fix(gate-wire): bumps gnark's version to incorporate the fix
* feat(dummy): the dummy prover does not change the columns status anymore
* tmp(ecpair): deactivate the ecpair module
* edit Makefile
* edit prover Makefile to capture tracefile dep.
* added prover arithmetization version validation check
* added regex check for conflated trace files
* add log msgs to prover validation checks
* add check for traces engine version and conflated trace file
* impl soft changes
* impl soft changes and replace zkevm.bim with version from main branch
* replace config-sepolia-full.toml with the version from main branch
* undo change to set the conflate dir to default value
* fix typo in comments
* embed constraint version files at compile time
* update regex check to include optional dir path in trace file
* feat(conf): adds a config field to explicitly set the dictionary path
* fix(typo): prover assets path
* fix(e2e): specifies an explicit dict path
* comment(dict_path): adds a comment stressing to not use the field outside E2E testing context.
* feat(corset): implements and test the constraint declaration
* feat: integrate all the changes in the wizard
* tmp(mod): points to the go-corset feature branch
* feat(corset) register interleaved columns
* chores(mod): uses latest go corset to include the optimizations
* disable the problematic linters
* ignore the arithmetization folder in the linting process
* adds zkevm.bin in the repo
* fix simplified public input embedding
* update integration test
* build bump go-ethereum version
* fix pi setup in integration test
* feat dummy pi circuit
* refactor move ToVariableSlice to utils
* test small "integration test" for aggr
* fix max = 0 edge case for NewRange
* truncate cvks (unnecessary)
* build update gnark dep
* refactor simplify aggregation backend logic
* disconnect the hub from the actual arithmetization
* adds the missing columns from the arithmetization
* fix invalid bound constraint for ecdsa
* adds the settings for all the modules
* deduplicating the columns names between sha2.packing and keccak.packing
* adjust the number of inputs for ecadd and ecmul
* sanity-checks against creating giant columns and giant range-checks
* more informative message about failing to split a global constraint
* fixing a mistake in the multi-limb cmp
* splitter: adding support for periodic sample with larger period
* ecpair: adjust the number of G2 check per circuit
* fix: generate missing twiddles for specific sis instances
* optime the FromAccessor verifier col to make it lighter
* fix: make all fields of ConstCol public
* serialization: add checks to panic when entering a private field
* factorization: remove false edge-case
* added logs for the artefact writing
* lookup: fix ensuring that the zCatalog are processed in deterministic order
* corset.go: remove deadcode
* artefacts: fix the file existence check in wizard.Artefact
* codehash: fix state-manager assignment code hash
* adds sha2 circuit
* ecdsa: fix a few bugs in the assignment part
* implements the tx-signature getter
* config: fix maximal value for the log level
* remove-me: making debugging simpler
* fixup + add some more informations
* batch-interpolate: fix the batch interpolation algorithm
* add more logs in the vortex prover
* fixup: remove the test acceleration
* vector builder: more friendly-message repush last on top of an empty builder
* public input: set the name in the settings automatically
* sha2: address the case where sha2 is never called
* keccak: remove trailing printf
* fix: sha2 failing test
* lookup: fix error message on lookup prover
* const-col: simplify the return of GetColAssignmentAt
* lane: address case where sha2 is never called
* mimccodehash: address the case where the codehash is empty
* multi-limbs: fix incorrect range query
* storage-peek: adjust the storage key decomposition to use less limbs
* fixup: remove trailing printf
* fixup: (from accessors) fix invalid getterAt
* more informative message for the projection queries
* log (dummy verifier): add a log when a query fails
* fix(nbZeroes): address the case where the number of inputs is zero
* fix(sha2): address the case where sha2 is not called
* fix(state-summary): address the fact that read|readzero follow a different pattern of account traces
* fix(state-summary): change the ordering in the state-summary
* fix(mimcCodeHash): reverse the direction of the lookup
* chores(inclusion): make the error more comprehensive by listing all the missing rows
* feat(state-manager): adds constraints for ensuring writes happen after reads
* feat(compressor): revert to the old way of hashing
* fix: comment out the checks that are pertaining to assessed issues in the arithmetization
* chores(projection): sends more insightful logs in the projection query
* style(ecdsa): remove nbTxs from assignTxSignature
* fix(vortex): adds a missing column ignoral
* adding new SIS parameters to the test
* feat(vortex): change the default SIS parameters
* chores(fs): skip the fiat-shamir update when running in dummy.Compile
* fix(vortex): bug when handling shadow columns
* fix(gnark-interpolation): better handling of constant terms
* fix(public-input): fix wrong query addressing
* fix(execution): change the structure of the circuit builder
* fixup
* feat(setup): change the ordering of the circuit generation
* fix(execution): allocate explicitly the L2 message hashes
* fixup
* fixup: remove debugging line
* fix(s3): change the line in the makefile to use include/exclude
* fix(circuit): fix incorrect assignment function
* fix(execution): correct the FinalBlockNumber assignment
* fix(execution): adjust the hashing of the L2 message hashes
* fix the assignment of modexp
* rm gitignore
* feat: Add the wizard to the zkevm instantiation
* make the l2BridgeAddress part of the witness
* add L2Message in the extractor
* update the backend so that it works with the new zkevm api
* compute the functional inputs
* update rand
* solves a cyclic dependency issue by moving some code of blob decompression into utils
* arrange the way the func inputs are computed from the crafting
* integrate the changes with the aggregation package
* fix invalid go:generate statement
* fixup: invalid import
* update golangci.yml to relax the linting rules (were breaking the CI)
* rename package ecrecover to ecdsa
* move everything into ecdsa folder
* refactor the api of the antichamber module
* adjust the arithmetization interface
* rename the ecdsa API to EcdsaZkEvm
* adjust the API of ecadd/ecmul
* simplify the API for keccak
* simplify the API for modexp
* unexport the sha2 blocks
* adjust the ecpairing interface
* NewStateManager returns a pointer
* perfect the zk-evm API
* remove "features" from the config
* remove unused parameter in ecadd/ecmul.Assign
* implements the assignment part of the main zkevm
* add missing settings assignment to the keccak_zkevm
* remove outdated comment in keccak_single_provider
* doc: fixing a wrong comment for keccak
* adds sha2 as part of the zkevm
* skip flacky test in e2e_test for pi-interconnection
* fix bug in lookup compiler when no lookup are parts of the protocol
* fix a handful of bugs in plonk in wizard
* skip second flacky test in the pi-interconnection
* fix bug in ecpair
* remove features from the e2e testing config