github 0xPolygonHermez/zkevm-prover v2.0.1

latest releases: v9.0.0-RC2, v9.0.0-RC1, v6.0.8...
pre-release16 months ago

Compatible versions

Changelog

This is an important version as it supports the next coming version Upgrade ForkID5 and also known as Dragon_Fruit. This version offers

  • Protect grpc input from invalid values
  • Added several generalizations to the prover code:
    -- When calling getCommittedPols, the number of committed pols is sent by getting that info from starkInfo.
    -- CompressorCommitPolsStarks is now agnostic to the number of committed polynomials, which is specified by parameter.
    -- ConstantPolsStarks is now agnostic to the number of constant polynomials.
    -- ExecFile is now agnostic to the number of committed polynomials.
    -- Proof2zkinStark, which is used to generate the zkin of the recursive2, is now generalized so the number of steps isn't fixed but sent by parameter
  • Supporting Goldilocks avx512
  • Created LICENSE file
  • Fixed README file
  • Added new rapidSnark and ffiasm files for FFlonk optimizations
  • Renamed StateDB to HashDB
  • Only last state is now written to Database, deleting unrequired hashes/nodes before inserting them to Database.
  • Created SMT::hashSaveZero() and SMT::hashSaveOne()
  • Created Database::saveStateRoot() and call it from SMT
  • Removed update from Database and HashDB
  • Fixed: add multiWrite.Lock() to Database:dbSenderThread()
  • Fixed program insertion in Database::sendData() query
  • Call ctx.pHashDB->semiFlush() from FullTracer::onFinishTx(), in all forks
  • Cache last EC points addition result
  • New executor.proto: external request ID, effective gas price
  • Fixed STOP missing opcode
  • When exitProces() notify the rest of threads, not to start new activities
  • Report evaluation counter in main SM executor logError method
  • Upgrading number of threads for calcwitness
  • Removed batches when calculating linear hashes since there is no intention of moving to GPU in a short period of time.
  • Integrate E2E test into Github Actions (GHA) for continuous integration
  • Created ForkID5 with new ROM
  • Fixed Aggregator service test code to get final proof
  • Read all rom.json constants
  • Encoded FullTracer trace to save space (from release)
  • Fixed OOC errors when no_counters=1 has been requested (from release)
  • Deleted ctx.outLogs, which were unused
  • Fixed DatabaseCache memory leak
  • Implemented Unit Testing (UT)
  • Replaced Tonelli-Shanks square root implementation by a power, given the prime mod 4 characteristics.
  • Fixed depth in FullTracer ForkID5 (from release)
  • Fixed FullTracer DELEGATECALL format not to include leading zeros
  • Completed Optimizations on ECRecover: New implementation using Jacobian coordinates has been integrated in the different versions of Executors available. For the ROM-based executor, as intermediate results are needed, those are stored into an intermediate buffer and once the calculation is finished are converted from projective to affine coordinates in parallel.
  • Added LOG_SMT_KEY_DETAILS to Main Executor
  • Fixed FullTracer logs index to be sequential
  • Updated testvectors/performance with new files including effective gas price byte
  • Checked that pEntry→ifa_addr is not null in getIPAddress()
  • Changed default value of config.dbReadRetryCounter to 10
  • Logging executor input in a trace
  • Fixed database connection management in exception catch
  • Call multiWrite.acceptIntray() from Database::senderThread() to rescue the hashes from nodesIntray/programIntray
  • Disabled Input.bUpdateMerkleTree by default, so that Prover.genBatchProof() does not write data in Database
  • Integrated HashDBTest into UnitTest
  • Fixed Database to search not only in cache, but also in multiWrite data
  • Fixed DatabaseCache to clear dataSize when reset
  • Updated state root instead of inserting; create it during initialization if database is empty
  • New invalid RLP ROM error support
  • Fixed ECRecover for case posUsed=-1 in native main executor code

Prover v2.0.0 config changes

  • Renamed Elements
    -- bool runStateDBServer has been renamed to runHashDBServer
    -- bool runStateDBTest has been renamed to runHashDBTest
    -- uint16_t stateDBServerPort has been renamed to hashDBServerPort
    -- string stateDBURL has been renamed to hashDBURL
    -- uint64_t maxStateDBThreads has been renamed to maxHashDBThreads

  • New elements that normally should not be used
    -- bool runECRecoverTest;
    -- bool runDatabaseCacheTest;
    -- bool runUnitTest;
    -- bool useMainExecC;
    -- string dbCacheSynchURL;
    -- uint64_t aggregatorClientMaxStreams; // Max number of streams, used to limit E2E test execution; if 0 then there is no limit

  • Deleted elements, no longer supported

  • bool dbFlushInParallel;

  • New elements
    -- bool dbMultiWriteSinglePosition; → it should be set to true
    -- bool ECRecoverPrecalc; → it should be set to true
    -- uint64_t ECRecoverPrecalcNThreads; → it should be set to 16

Don't miss a new zkevm-prover release

NewReleases is sending notifications on new releases.