From 33360556b0945272883c3f742c3fb404cd4c7fb0 Mon Sep 17 00:00:00 2001 From: Robin Salen <30937548+Nashtare@users.noreply.github.com> Date: Tue, 16 Jul 2024 03:24:33 +0900 Subject: [PATCH] Release v0.6.0 (`Cancun` HF support) (#397) --- CHANGELOG.md | 125 +++++++++++++++++++++------------ Cargo.lock | 10 +-- Cargo.toml | 12 ++-- evm_arithmetization/Cargo.toml | 2 +- mpt_trie/Cargo.toml | 2 +- proof_gen/Cargo.toml | 2 +- smt_trie/Cargo.toml | 2 +- trace_decoder/Cargo.toml | 2 +- 8 files changed, 98 insertions(+), 59 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88e67f860..474a41e3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,53 +8,92 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.6.0] - 2024-07-15 + +### Changed +- Implement EIP-4788 for Cancun ([#40](https://github.com/0xPolygonZero/zk_evm/pull/40)) +- Implement Blob transactions (type-3) and BLOBHASH opcode ([#50](https://github.com/0xPolygonZero/zk_evm/pull/50)) +- Fix beacons root contract bytecode ([#70](https://github.com/0xPolygonZero/zk_evm/pull/70)) +- LxLy exit roots ([#90](https://github.com/0xPolygonZero/zk_evm/pull/90)) +- Eip 1153 (TLOAD/TSTORE) ([#59](https://github.com/0xPolygonZero/zk_evm/pull/59)) +- Remove blobbasefee from block header ([#100](https://github.com/0xPolygonZero/zk_evm/pull/100)) +- Fix MCOPY from rebasing ([#103](https://github.com/0xPolygonZero/zk_evm/pull/103)) +- Fix storage write for beacons root contract ([#102](https://github.com/0xPolygonZero/zk_evm/pull/102)) +- EIP-4844 part 2: Point evaluation precompile ([#133](https://github.com/0xPolygonZero/zk_evm/pull/133)) +- Some fixes to Cancun ([#187](https://github.com/0xPolygonZero/zk_evm/pull/187)) +- Insert blob versioned hashes in signature payload for hashing ([#209](https://github.com/0xPolygonZero/zk_evm/pull/209)) +- Fix KZG precompile context setup ([#210](https://github.com/0xPolygonZero/zk_evm/pull/210)) +- Fix txn type encoding for receipts ([#214](https://github.com/0xPolygonZero/zk_evm/pull/214)) +- Add blob gas fee burn for type-3 txns ([#219](https://github.com/0xPolygonZero/zk_evm/pull/219)) +- Update decoder processing for cancun ([#207](https://github.com/0xPolygonZero/zk_evm/pull/207)) +- cancun: Add a full block test ([#223](https://github.com/0xPolygonZero/zk_evm/pull/223)) +- Fix KZG precompile I/O ([#213](https://github.com/0xPolygonZero/zk_evm/pull/213)) +- Fix selfdestruct address listing ([#225](https://github.com/0xPolygonZero/zk_evm/pull/225)) +- Fix withdrawals without txns and add test for empty block ([#228](https://github.com/0xPolygonZero/zk_evm/pull/228)) +- doc: update README ([#242](https://github.com/0xPolygonZero/zk_evm/pull/242)) +- Cleanup and bring back deadcode lint ([#232](https://github.com/0xPolygonZero/zk_evm/pull/232)) +- fix(cancun): dummy payloads and public input retrieval ([#249](https://github.com/0xPolygonZero/zk_evm/pull/249)) +- fix: encode calldata for EIP-4780 as U256 ([#253](https://github.com/0xPolygonZero/zk_evm/pull/253)) +- fix: handle KZG precompile errors properly ([#251](https://github.com/0xPolygonZero/zk_evm/pull/251)) +- fix(cancun): `mcopy` check offsets and overwrites ([#252](https://github.com/0xPolygonZero/zk_evm/pull/252)) +- fix(cancun): correct search loop in transient storage ([#257](https://github.com/0xPolygonZero/zk_evm/pull/257)) +- perf: Charge gas before tload search ([#272](https://github.com/0xPolygonZero/zk_evm/pull/272)) +- fix: add check on decoded versioned hashes ([#278](https://github.com/0xPolygonZero/zk_evm/pull/278)) +- fix: Add beacon roots touched slots into `state_access` with native tracer ([#353](https://github.com/0xPolygonZero/zk_evm/pull/353)) +- feat(cancun): update test blocks ([#365](https://github.com/0xPolygonZero/zk_evm/pull/365)) +- fix: failed to send proof ([#366](https://github.com/0xPolygonZero/zk_evm/pull/366)) +- feat: cancun jerigon test network ([#367](https://github.com/0xPolygonZero/zk_evm/pull/367)) +- fix(cancun): properly update accumulator in fake_exponential() ([#376](https://github.com/0xPolygonZero/zk_evm/pull/376)) +- fix(cancun): tweak ranges in integration tests ([#377](https://github.com/0xPolygonZero/zk_evm/pull/377)) +- `cancun`: cleanup pre-release ([#392](https://github.com/0xPolygonZero/zk_evm/pull/392)) + ## [0.5.0] - 2024-07-15 ### Changed -- fix: docker images (#108) -- feat: add transaction hash to zero trace (#103) -- perf: add benchmarks for different components (#273) -- fix: add check on decoded versioned hashes (#278) -- fix: discard intermediate proofs (#106) -- feat: stdio parallel proving (#109) -- Fixes related to nightly and alloy (#101) -- Introduce native tracer support (#81) -- chore: bump alloy to v0.1.1 (#111) +- fix: docker images ([#108](https://github.com/0xPolygonZero/zk_evm/pull/108)) +- feat: add transaction hash to zero trace ([#103](https://github.com/0xPolygonZero/zk_evm/pull/103)) +- perf: add benchmarks for different components ([#273](https://github.com/0xPolygonZero/zk_evm/pull/273)) +- fix: add check on decoded versioned hashes ([#278](https://github.com/0xPolygonZero/zk_evm/pull/278)) +- fix: discard intermediate proofs ([#106](https://github.com/0xPolygonZero/zk_evm/pull/106)) +- feat: stdio parallel proving ([#109](https://github.com/0xPolygonZero/zk_evm/pull/109)) +- Fixes related to nightly and alloy ([#101](https://github.com/0xPolygonZero/zk_evm/pull/101)) +- Introduce native tracer support ([#81](https://github.com/0xPolygonZero/zk_evm/pull/81)) +- chore: bump alloy to v0.1.1 ([#111](https://github.com/0xPolygonZero/zk_evm/pull/111)) - Migrate `zero-bin` into `zk-evm` -- fix: Bring back Cargo.lock (#280) -- ci: add labeler flag for new `zero-bin` crate + update `CODEOWNERS` (#281) -- fix: only executables should choose a global allocator (#301) -- doc: fix typos (#298) -- misc: fix logging filename (#305) -- refactor zero_bin leader cli (#317) -- Removed non-existing dep public `__compat_primitive_types` (#321) -- perf: Check for zero amount early in 'add_eth' (#322) -- fix: interval (#324) -- fix: optimize previous hashes retrieval (#316) -- feat: add jerigon test workflow (#303) -- fix: do not add selfdestruct journal entry for empty accounts (#328) -- ci: add PR check job (#332) -- Constrain FP254 operations and SUBMOD to be kernel-only (#333) -- fix: add recipient to touched_addresses even when skipping empty transfer (#336) -- Fixed leader crashing when `.env` not present (#335) -- perf: reduce overhead in final iteration of memset (#339) -- Make leader work no matter what the CWD is (#307) -- Cleanup/clippy and update pass (#341) -- Add `Columns` and `DerefColumns` derive macros (#315) -- migrate compat to micro crate (#308) -- fix: docker build for worker and leader (#329) -- parse embedded short nodes (#345) -- Add `LogicColumnsView` struct for `LogicStark` (#347) -- fix: properly log final result when due (#352) -- fix: Check valid range for s and add test (#363) -- feat: add caching for `get_block` (#346) -- refactor!: docker builds (#357) -- fix: tweak fetching of previous block hashes (#370) -- fix(evm_arithmetization): Adjust layout of `CpuGeneralColumnsView` (#355) -- feat: skip range-checking `PUSH` operations in `KERNEL` mode (#373) -- Fix iterator length when fetching block hashes (#374) -- fix: scale withdrawals amount to gwei (#371) -- refactor: frontend of `trace_decoder` (#309) +- fix: Bring back Cargo.lock ([#280](https://github.com/0xPolygonZero/zk_evm/pull/280)) +- ci: add labeler flag for new `zero-bin` crate + update `CODEOWNERS` ([#281](https://github.com/0xPolygonZero/zk_evm/pull/281)) +- fix: only executables should choose a global allocator ([#301](https://github.com/0xPolygonZero/zk_evm/pull/301)) +- doc: fix typos ([#298](https://github.com/0xPolygonZero/zk_evm/pull/298)) +- misc: fix logging filename ([#305](https://github.com/0xPolygonZero/zk_evm/pull/305)) +- refactor zero_bin leader cli ([#317](https://github.com/0xPolygonZero/zk_evm/pull/317)) +- Removed non-existing dep public `__compat_primitive_types` ([#321](https://github.com/0xPolygonZero/zk_evm/pull/321)) +- perf: Check for zero amount early in 'add_eth' ([#322](https://github.com/0xPolygonZero/zk_evm/pull/322)) +- fix: interval ([#324](https://github.com/0xPolygonZero/zk_evm/pull/324)) +- fix: optimize previous hashes retrieval ([#316](https://github.com/0xPolygonZero/zk_evm/pull/316)) +- feat: add jerigon test workflow ([#303](https://github.com/0xPolygonZero/zk_evm/pull/303)) +- fix: do not add selfdestruct journal entry for empty accounts ([#328](https://github.com/0xPolygonZero/zk_evm/pull/328)) +- ci: add PR check job ([#332](https://github.com/0xPolygonZero/zk_evm/pull/332)) +- Constrain FP254 operations and SUBMOD to be kernel-only ([#333](https://github.com/0xPolygonZero/zk_evm/pull/333)) +- fix: add recipient to touched_addresses even when skipping empty transfer ([#336](https://github.com/0xPolygonZero/zk_evm/pull/336)) +- Fixed leader crashing when `.env` not present ([#335](https://github.com/0xPolygonZero/zk_evm/pull/335)) +- perf: reduce overhead in final iteration of memset ([#339](https://github.com/0xPolygonZero/zk_evm/pull/339)) +- Make leader work no matter what the CWD is ([#307](https://github.com/0xPolygonZero/zk_evm/pull/307)) +- Cleanup/clippy and update pass ([#341](https://github.com/0xPolygonZero/zk_evm/pull/341)) +- Add `Columns` and `DerefColumns` derive macros ([#315](https://github.com/0xPolygonZero/zk_evm/pull/315)) +- migrate compat to micro crate ([#308](https://github.com/0xPolygonZero/zk_evm/pull/308)) +- fix: docker build for worker and leader ([#329](https://github.com/0xPolygonZero/zk_evm/pull/329)) +- parse embedded short nodes ([#345](https://github.com/0xPolygonZero/zk_evm/pull/345)) +- Add `LogicColumnsView` struct for `LogicStark` ([#347](https://github.com/0xPolygonZero/zk_evm/pull/347)) +- fix: properly log final result when due ([#352](https://github.com/0xPolygonZero/zk_evm/pull/352)) +- fix: Check valid range for s and add test ([#363](https://github.com/0xPolygonZero/zk_evm/pull/363)) +- feat: add caching for `get_block` ([#346](https://github.com/0xPolygonZero/zk_evm/pull/346)) +- refactor!: docker builds ([#357](https://github.com/0xPolygonZero/zk_evm/pull/357)) +- fix: tweak fetching of previous block hashes ([#370](https://github.com/0xPolygonZero/zk_evm/pull/370)) +- fix(evm_arithmetization): Adjust layout of `CpuGeneralColumnsView` ([#355](https://github.com/0xPolygonZero/zk_evm/pull/355)) +- feat: skip range-checking `PUSH` operations in `KERNEL` mode ([#373](https://github.com/0xPolygonZero/zk_evm/pull/373)) +- Fix iterator length when fetching block hashes ([#374](https://github.com/0xPolygonZero/zk_evm/pull/374)) +- fix: scale withdrawals amount to gwei ([#371](https://github.com/0xPolygonZero/zk_evm/pull/371)) +- refactor: frontend of `trace_decoder` ([#309](https://github.com/0xPolygonZero/zk_evm/pull/309)) ## [0.4.0] - 2024-06-12 diff --git a/Cargo.lock b/Cargo.lock index 62f276049..894e1ee61 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1903,7 +1903,7 @@ dependencies = [ [[package]] name = "evm_arithmetization" -version = "0.3.0" +version = "0.4.0" dependencies = [ "anyhow", "bytes", @@ -2899,7 +2899,7 @@ checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" [[package]] name = "mpt_trie" -version = "0.4.0" +version = "0.4.1" dependencies = [ "bytes", "enum-as-inner", @@ -3698,7 +3698,7 @@ dependencies = [ [[package]] name = "proof_gen" -version = "0.3.0" +version = "0.4.0" dependencies = [ "evm_arithmetization", "log", @@ -4467,7 +4467,7 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smt_trie" -version = "0.1.0" +version = "0.1.1" dependencies = [ "ethereum-types", "hex-literal", @@ -4943,7 +4943,7 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "trace_decoder" -version = "0.5.0" +version = "0.6.0" dependencies = [ "anyhow", "bitflags 2.6.0", diff --git a/Cargo.toml b/Cargo.toml index aa6c0af83..22c913324 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -107,11 +107,12 @@ url = "2.5.2" winnow = "0.6.13" # local dependencies -evm_arithmetization = { path = "evm_arithmetization", version = "0.3.0" } -mpt_trie = { path = "mpt_trie", version = "0.4.0" } -proof_gen = { path = "proof_gen", version = "0.3.0" } -smt_trie = { path = "smt_trie", version = "0.1.0" } -trace_decoder = { path = "trace_decoder", version = "0.5.0" } +evm_arithmetization = { path = "evm_arithmetization", version = "0.4.0" } +mpt_trie = { path = "mpt_trie", version = "0.4.1" } +proof_gen = { path = "proof_gen", version = "0.4.0" } +smt_trie = { path = "smt_trie", version = "0.1.1" } +trace_decoder = { path = "trace_decoder", version = "0.6.0" } +zk_evm_proc_macro = { path = "proc_macro", version = "0.1.0" } # zero-bin related dependencies ops = { path = "zero_bin/ops" } @@ -130,4 +131,3 @@ proc-macro2 = "1.0" quote = "1.0" syn = "2.0" trybuild = "1.0" -zk_evm_proc_macro = { path = "proc_macro", version = "0.1.0" } diff --git a/evm_arithmetization/Cargo.toml b/evm_arithmetization/Cargo.toml index cb38bfc6b..45e9ccb8f 100644 --- a/evm_arithmetization/Cargo.toml +++ b/evm_arithmetization/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "evm_arithmetization" description = "Implementation of STARKs for the Ethereum Virtual Machine" -version = "0.3.0" +version = "0.4.0" authors = [ "Daniel Lubarov ", "William Borgeaud ", diff --git a/mpt_trie/Cargo.toml b/mpt_trie/Cargo.toml index fa6de60f5..0d64fafa6 100644 --- a/mpt_trie/Cargo.toml +++ b/mpt_trie/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "mpt_trie" description = "Types and utility functions for building/working with partial Ethereum tries." -version = "0.4.0" +version = "0.4.1" authors = ["Polygon Zero "] readme = "README.md" edition.workspace = true diff --git a/proof_gen/Cargo.toml b/proof_gen/Cargo.toml index 30f993440..785fbe8b0 100644 --- a/proof_gen/Cargo.toml +++ b/proof_gen/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "proof_gen" description = "Generates block proofs from zero proof IR." -version = "0.3.0" +version = "0.4.0" authors = ["Polygon Zero "] edition.workspace = true license.workspace = true diff --git a/smt_trie/Cargo.toml b/smt_trie/Cargo.toml index f3008c5f7..d87658c3d 100644 --- a/smt_trie/Cargo.toml +++ b/smt_trie/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "smt_trie" description = "Types and utility functions for building/working with Polygon Hermez Sparse Merkle Trees." -version = "0.1.0" +version = "0.1.1" authors = ["William Borgeaud "] readme = "README.md" categories = ["cryptography"] diff --git a/trace_decoder/Cargo.toml b/trace_decoder/Cargo.toml index 39c5b279f..f7a07bb7b 100644 --- a/trace_decoder/Cargo.toml +++ b/trace_decoder/Cargo.toml @@ -2,7 +2,7 @@ name = "trace_decoder" description = "Ethereum node witness -> Prover input" authors = ["Polygon Zero"] -version = "0.5.0" +version = "0.6.0" edition.workspace = true license.workspace = true repository.workspace = true