Skip to content

Latest commit

 

History

History
394 lines (371 loc) · 36.5 KB

CHANGELOG.md

File metadata and controls

394 lines (371 loc) · 36.5 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[0.7.0] - 2024-11-25

Changed

  • Implement first iteration of continuations by @LindaGuiga in #69
  • Fix trace lengths by @hratoanina in #110
  • Merge clock fix by @hratoanina in #114
  • Add context pruning by @hratoanina in #112
  • continuations: initial cleanup pass by @Nashtare in #181
  • Generate all segments before proving. by @LindaGuiga in #135
  • Put kernel code in first MemBefore by @hratoanina in #178
  • continuations: Remove GenerationInputs cloning for segment generation by @Nashtare in #186
  • Adapt the circuitry to zero-bin by @LindaGuiga in #184
  • Add dummy segment to the left by @LindaGuiga in #185
  • Add segment indexing by @Nashtare in #191
  • Introduce verify_all_proofs and update integration tests by @LindaGuiga in #192
  • New context pruning logic by @LindaGuiga in #170
  • Merge with develop by @LindaGuiga in #195
  • Add log for end of jumpdest analysis simulation. by @LindaGuiga in #201
  • continuations: Remove redundant simulation by @Nashtare in #203
  • feat(continuations): trim public values at block proof level by @Nashtare in #235
  • Merge develop into feat/continuations by @LindaGuiga in #250
  • Bring back support for multi-txn batches by @Nashtare in #227
  • feat(continuations): reduce some memory overhead by @Nashtare in #260
  • perf(continuations): Only copy non-stale contexts by @Nashtare in #264
  • continuations: Remove the need for dummy segments by @LindaGuiga in #245
  • Merge develop into feat/continuations by @LindaGuiga in #359
  • Improve get_descriptor() by @LindaGuiga in #380
  • feat: expand trace decoder tests by @atanmarko in #394
  • refactor: use typed tries in trace_decoder by @0xaatif in #393
  • Cleanup KeccakSpongeStark index accesses by @Nashtare in #418
  • Serialize flaky inputs as 'json' files by @Nashtare in #420
  • feat: Implement Columns view for MemoryStark by @Nashtare in #417
  • Now warns if file descriptor limit is too small for native mode by @BGluth in #411
  • chore(deps): bump openssl from 0.10.64 to 0.10.66 by @dependabot in #431
  • Make prove_stdio.sh work on apple chips by @Nashtare in #430
  • feat: add conditional feature support in the kernel assembly by @Nashtare in #416
  • Reinitialize TO transaction field in main by @LindaGuiga in #440
  • Add overflow check in codecopy by @Nashtare in #444
  • Check for overflow in context_id increment by @Nashtare in #443
  • fix: StorageTrie, ReceiptTrie and TransactionTrie shouldn't use TypedMpt by @0xaatif in #446
  • fix: cleanup alloy dependencies by @atanmarko in #449
  • Ensure proper offset + size bounds in wcopy by @Nashtare in #445
  • fix: set min stack length for transient opcodes by @Nashtare in #450
  • feat: test native tracer by @atanmarko in #423
  • Increase MAXCODESIZE for Polygon PoS by @Nashtare in #419
  • Fix jump_to by @LindaGuiga in #453
  • Fix Arithmetic trace length by @hratoanina in #454
  • Linked lists for the state trie by @LindaGuiga in #402
  • Added derives to pub types where possible for mpt_trie by @BGluth in #456
  • perf(continuations): Improve initializations and reduce redundant computations by @Nashtare in #429
  • feat(continuations): write storage values directly in linked lists by @LindaGuiga in #433
  • Remove self destructs from the native tracer by @4l0n50 in #461
  • implement version command for all zero bin binaries by @temaniarpit27 in #451
  • Preinitialize segments in all contexts by @hratoanina in #466
  • Fix 2-to-1 test for Cancun by @Nashtare in #464
  • Process state trie at the end by @LindaGuiga in #476
  • bug(zero-bin): verifier binary not picking up pre-processed circuits by @temaniarpit27 in #474
  • feat: Implement Columns view for BytePackingStark by @Nashtare in #422
  • chore: flush logs upon success by @Nashtare in #481
  • Fix account creation reversion in decoder processing by @Nashtare in #480
  • Feat/237 mpt trie ext to branch collapse error by @BGluth in #455
  • Fix SELFDESTRUCT by @Nashtare in #487
  • Circuit cache dir now uses os cache dir by @BGluth in #405
  • refactor: trace_decoder::decoding by @0xaatif in #469
  • fix: do not force precompile address access in case of txn reversion by @Nashtare in #488
  • chore: reorganize cli params and rename some types by @atanmarko in #485
  • Fix txn indexing in error message by @Nashtare in #490
  • Revert "Fix SELFDESTRUCT" by @Nashtare in #491
  • Allow features with macros within macros by @LindaGuiga in #492
  • Check the global variable GLOBAL_METADATA_TRIE_DATA_SIZE by @LindaGuiga in #483
  • Update CODEOWNERS to add more folks by @muursh in #497
  • Do not propagate zero values by @hratoanina in #484
  • handle case when contract creation was reverted by @temaniarpit27 in #482
  • refactor: use typed_mpt in the backend by @0xaatif in #494
  • chore: add common crate for project wide definitions by @atanmarko in #500
  • feat: Remove duplicate new_txn_trie_node_byte by @Nashtare in #477
  • Fix selfdestruct for EIP-6780 with non-empty balances by @Nashtare in #493
  • Fix: zero-bin is now able again to accesses evm_arithmetization for circuit versions by @BGluth in #310
  • Add collapse strategy to PartialTrie variants by @Nashtare in #501
  • refactor: remove dead client_code_hash_resolve_f by @0xaatif in #514
  • continuations: have segment iterator return a Result by @Nashtare in #509
  • feat: retrieve prover input per block by @atanmarko in #499
  • refactor: Hash2Code by @0xaatif in #522
  • Made sub-trie errors better by @BGluth in #520
  • Feat/continuations by @Nashtare in #171
  • add check for checkpoint block number by @temaniarpit27 in #517
  • feat: add leader command to flush cache by @Nashtare in #527
  • fix: output block proof to array format by @atanmarko in #536
  • Ignore too_long_first_doc_paragraph lint by @LindaGuiga in #545
  • Add txn parsing tests by @hratoanina in #540
  • Check the keys in the state trie correspond to accounts and storage linked lists by @LindaGuiga in #502
  • Reuse txn rlp by @hratoanina in #547
  • refactor: StateTrie operations are keyed by Address where possible by @0xaatif in #537
  • feat: use eth_call with sc to retrieve block hashes by @atanmarko in #519
  • feat: extract decoded transaction from the block by @atanmarko in #504
  • fix: limit number of connections by @atanmarko in #546
  • fix: eth_call for previous block hashes by @atanmarko in #556
  • refactor: trait StateTrie by @0xaatif in #542
  • Move documentation to Github Pages by @Nashtare in #557
  • Remove unnecessary global metadata by @hratoanina in #549
  • fix: dockerhub access by @atanmarko in #486
  • chore: move provider to the common crate by @atanmarko in #567
  • refactor: trace_decoder input structures by @0xaatif in #558
  • Reuse the same RLP blob by @hratoanina in #552
  • Prune non-necessary values from PublicValues prior 2-to-1 aggregation by @Nashtare in #526
  • Introduce a burn address for cdk_erigon by @LindaGuiga in #463
  • chore: update alloy by @0xaatif in #573
  • trace_decoder: Tweak batch size for small blocks by @Nashtare in #576
  • chore: fix some variable names and comments by @Nashtare in #578
  • Reduce overhead in storage reads and fix stack descriptions by @Nashtare in #572
  • Fix pairing tests for null accumulated values by @Nashtare in #579
  • Expand conditional blocks logic in Kernel parsing by @Nashtare in #574
  • feat: follow from block interval by @atanmarko in #582
  • Fix clean leader's command by @Nashtare in #586
  • fix: disable dockerhub login in ci tests by @atanmarko in #588
  • chore: Add additional people as code owners for CI related changes by @Nashtare in #589
  • fix: Do not write proofs to disk in test only mode by @Nashtare in #592
  • chore: cleanup rpc tool parameters by @atanmarko in #595
  • refactor: trace decoder tests by @0xaatif in #596
  • Mark constant functions with const by @julianbraha in #571
  • chore: remove unused code by @Nashtare in #602
  • Bring in Poseidon implementation under cdk_erigon feature flag by @Nashtare in #577
  • feat: add pre-state execution for polygon-cdk by @Nashtare in #594
  • feat: Add feature-gating in prover code based on target network by @Nashtare in #598
  • optimize: limit number of blocks proving in parallel by @atanmarko in #600
  • doc(book): Fill up empty sections and add table diagram by @Nashtare in #608
  • Fix github pages deployment by @Nashtare in #616
  • Enable withdrawals only for Eth mainnet by @Nashtare in #610
  • Clarify eth_to_gwei helper name and move to common crate by @Nashtare in #619
  • chore: move utility functions to common crate by @atanmarko in #615
  • refactor: trace decoder backend by @0xaatif in #583
  • feat: add consolidated block hashes across checkpoints by @Nashtare in #551
  • Skip missing Cancun bits for non Eth mainnet chains by @Nashtare in #605
  • Search in linked lists using a BTree by @4l0n50 in #603
  • Small fixes to rpc and common modules by @Nashtare in #629
  • refactor: one zero package by @0xaatif in #625
  • feat(type2): Skip jumpdest analysis by @Nashtare in #631
  • refactor: --version in the CLI by @0xaatif in #632
  • Refactor linked lists initial hashing by @4l0n50 in #581
  • Fix address masking in trace_decoder processing by @Nashtare in #639
  • make pool size configurable by @temaniarpit27 in #644
  • Check block_timestamp always increases. by @LindaGuiga in #638
  • Remove unnecessary overhead in linked list preprocessing by @Nashtare in #642
  • misc: Do not perform sanity check on test_only runs by @Nashtare in #635
  • Refactor recursive circuit initialization and per table proving and verification with macros by @sai-deng in #647
  • feat: add network-specific pre-state execution in decoder by @Nashtare in #633
  • Hide associated types and remove types module in proof_gen by @Nashtare in #649
  • Remove proof_gen crate by @Nashtare in #650
  • feat: trie diff tool by @atanmarko in #630
  • build: pin toolchain by @0xaatif in #665
  • Fix misplaced overflow check in wcopy by @Nashtare in #661
  • Refactor access list search by @4l0n50 in #637
  • perf: Remove some binary ops & make KERNEL init section free of logic operations by @Nashtare in #658
  • refactor: sort, merge, cleanup dependencies by @0xaatif in #677
  • fix(ci): use install-action instead of cargo-binstall by @0xaatif in #679
  • Refactor proof types and method outputs by @Nashtare in #672
  • fix: add timeouts to ci tests by @atanmarko in #687
  • misc: print script logs upon failure by @Nashtare in #686
  • Fix flaky test when DEBUG logging is enabled by @Nashtare in #685
  • Add Tests for Segment Proving Without Keccak Tables by @sai-deng in #648
  • dev: syntax highlighting for EVM Assembly by @0xaatif in #674
  • Expand error messages by @Nashtare in #689
  • Fix decoder parsing with new storage tries by @Nashtare in #692
  • Fix invalid blob_gas_fee burn by @Nashtare in #691
  • Fix address marking for state reads by @Nashtare in #695
  • fix: missing code read in state write by @Nashtare in #699
  • feat: trie multi diff comparison by @atanmarko in #655
  • Gate Code for Testing Purposes Under testing Modules by @sai-deng in #688
  • perf: Improve PUSH checking in JDA by @hratoanina in #696
  • Update the root circuit to conditionally verify Keccak proofs by @sai-deng in #652
  • Enables optional verification of Keccak tables by @sai-deng in #657
  • Fix zero_bin test by @sai-deng in #708
  • Fix contract call reversion by @Nashtare in #709
  • fix: Add jump DDOS protection by @Nashtare in #710
  • fix: check for gas limit overflow by @Nashtare in #711
  • perf: Inline some hot spots in witness generation by @Nashtare in #715
  • perf: reduce MemBefore initial size by @Nashtare in #684
  • Optimize code by using De Morgan laws by @einar-polygon in #670
  • fix: reset global metadata fields in memory post txn processing by @Nashtare in #717
  • Fix check against 0xEF byte in contract creation. by @LindaGuiga in #719
  • Optimize zkVM Proving by Skipping Unused Keccak Tables by @sai-deng in #690
  • Assign specific jobs to dedicated workers by @temaniarpit27 in #564
  • feat: SMT support in trace_decoder ignores storage by @0xaatif in #693
  • Bump plonky2 (serialization fix) by @Nashtare in #729
  • Fix max_cpu_len_log by @sai-deng in #714
  • feat: Enable more optional tables by @sai-deng in #724
  • fix: unused MemAfter table by @sai-deng in #738
  • fix: more robust SMT parsing by @0xaatif in #733
  • Move opcode_count Under Test Configuration by @sai-deng in #736
  • feat: trait World for trace_decoder by @0xaatif in #732
  • BlockInterval support for hash ranges by @sergerad in #728
  • chore: update codeowners by @atanmarko in #750
  • ci: warn on outdated top level dependencies by @0xaatif in #757
  • chore: remove conditional ci execution by @atanmarko in #754
  • feat: add yaml linter by @atanmarko in #756
  • Replace regex in trie diff main by @sergerad in #758
  • feat: add ci shellcheck by @atanmarko in #753
  • Add faster STARK configuration for testing purposes by @sai-deng in #739
  • Add test config in zero bin by @sai-deng in #742
  • ci: update actions/checkout@v3 -> v4 by @0xaatif in #771
  • Prune child context in create and call faults by @LindaGuiga in #747
  • Refactor recursion params by @sai-deng in #769
  • feat: use abort signal for proving tasks by @atanmarko in #748
  • feat: github proving benchmark by @atanmarko in #701
  • feat: prove stdio using amqp docker compose setup by @atanmarko in #763
  • Fix witness endpoint for cdk by @Nashtare in #773
  • Use test config in CI by @sai-deng in #770
  • Fix bytecode hashing for Type2 SMT by @Nashtare in #782
  • feat: Add env support to all leader prog args by @BGluth in #786
  • fix: follow from block interval by @atanmarko in #789
  • Replace ethereum_types with alloy::primitives in smt_trie crate by @sergerad in #772
  • refactor: remove the compat crate by @0xaatif in #795
  • Oxidize prove_rpc.sh by @sergerad in #796
  • feat: revamp zero prove function by @atanmarko in #793

[0.6.0] - 2024-07-15

Changed

  • Implement EIP-4788 for Cancun (#40)
  • Implement Blob transactions (type-3) and BLOBHASH opcode (#50)
  • Fix beacons root contract bytecode (#70)
  • LxLy exit roots (#90)
  • Eip 1153 (TLOAD/TSTORE) (#59)
  • Remove blobbasefee from block header (#100)
  • Fix MCOPY from rebasing (#103)
  • Fix storage write for beacons root contract (#102)
  • EIP-4844 part 2: Point evaluation precompile (#133)
  • Some fixes to Cancun (#187)
  • Insert blob versioned hashes in signature payload for hashing (#209)
  • Fix KZG precompile context setup (#210)
  • Fix txn type encoding for receipts (#214)
  • Add blob gas fee burn for type-3 txns (#219)
  • Update decoder processing for cancun (#207)
  • cancun: Add a full block test (#223)
  • Fix KZG precompile I/O (#213)
  • Fix selfdestruct address listing (#225)
  • Fix withdrawals without txns and add test for empty block (#228)
  • doc: update README (#242)
  • Cleanup and bring back deadcode lint (#232)
  • fix(cancun): dummy payloads and public input retrieval (#249)
  • fix: encode calldata for EIP-4780 as U256 (#253)
  • fix: handle KZG precompile errors properly (#251)
  • fix(cancun): mcopy check offsets and overwrites (#252)
  • fix(cancun): correct search loop in transient storage (#257)
  • perf: Charge gas before tload search (#272)
  • fix: add check on decoded versioned hashes (#278)
  • fix: Add beacon roots touched slots into state_access with native tracer (#353)
  • feat(cancun): update test blocks (#365)
  • fix: failed to send proof (#366)
  • feat: cancun jerigon test network (#367)
  • fix(cancun): properly update accumulator in fake_exponential() (#376)
  • fix(cancun): tweak ranges in integration tests (#377)
  • cancun: cleanup pre-release (#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)
  • 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)

[0.4.0] - 2024-06-12

Changed

  • Some cleanup (#190)
  • Silence jumpdest analysis logs (#193)
  • Charge call value gas prior to call (#199)
  • refactor: fix todos (#162)
  • Remove print call in trace_decoder (#208)
  • Update CODEOWNERS (#224)
  • Fix access lists pointers check (#217)
  • Add a few QoL useability functions to the interface (#169)
  • Amortize sha2 compression loop (#231)
  • ci: add cargo audit job (#236)
  • fix: Revert interpreter stack display (#238)
  • Fix clippy doc_lazy_continuation (#247)
  • perf: Improve blake2 precompile (#239)
  • fix: rustdoc and tests (#255)
  • Native trace processing support (#246)
  • Added Clone to a few error types in mpt_trie (#259)
  • cleanup: remove outdated segment (#262)
  • fix: add G2 subgroup check for ECPAIRING (#268)
  • add partial trie builder (#258)

[0.3.1] - 2024-04-22

Changed

  • Fix withdrawals accesses in state trie (#176)

[0.3.0] - 2024-04-19

Changed

  • Update plonky2 dependencies (#119)
  • Swap out the internal U512 inside nibbles to [u64;5] (#132)
  • Charge gas before SLOAD and refactor insert_accessed_storage_keys (#117)
  • Increased the public interface for trie_tools (#123)
  • Mpt trie panic refactor (#118)
  • refactor: remove some reallocations from decoder (#126)
  • Charge cold access cost in CALL before accessing state (#124)
  • chore: add debug function for better logging in development (#134)
  • Make test_receipt_encoding more meaningful. (#131)
  • Add a getter for the KERNEL codehash (#136)
  • Remove interpreter-specific preinialization logic from State trait (#139)
  • Make some more functions constant (#154)
  • fix(keccak-sponge): properly constrain padding bytes (#158)
  • Reduce verbosity in logs (#160)
  • Bump with latest starky (#161)
  • Decouple trace_decoder and proof_gen (#163)
  • Extend trace decoder err info (#148)
  • Add debug function for better public values logging in development (#134)
  • Simplify withdrawals logic (#168)

[0.2.0] - 2024-03-19

Changed

  • Clean up logging output upon Kernel failure (#74)
  • Fix CPU Cycle display in logs during simulations (#77)
  • Fix blake2 precompile (#78)
  • Create subtries without ever hashing leaves (#76)
  • Fix generation inputs logging pre-transaction execution (#89)
  • Reduce state trie size for dummy payloads (#88)
  • Fix post-txn trie debugging output for multi-logs receipts (#86)
  • Fixed most failing blocks caused by the merged in aggressive pruning changes (#97)
  • Fixed trie hash collision issue when constructing storage tries (#75)
  • Fix interpreter rollback by adding the clock to generation state checkpoints (#109)

[0.1.1] - 2024-03-01

Changed

  • Add verification for invalid jumps (#36)
  • Refactor accessed lists as sorted linked lists (#30)
  • Change visibility of compact mod (#57)
  • Fix running doctests in release mode (#60)
  • Fix block padding without withdrawals (#63)
  • Change position of empty node encoding in RLP segment (#62)
  • Unify interpreter and prover witness generation (#56)
  • Add utility method for testing CPU execution (#71)
  • Expose common types and dummy proof method for testing (#73)

[0.1.0] - 2024-02-21

  • Initial release.