Skip to content
This repository was archived by the owner on Apr 18, 2025. It is now read-only.

fix: only enable circuit for BASEFEE opcode (without opcode mapping) #1033

Merged
merged 3 commits into from
Nov 22, 2023

Conversation

silathdiir
Copy link

@silathdiir silathdiir commented Nov 16, 2023

Description

BASEFEE opcode is disabled by l2geth for now and converted to an invalid opcode in eth-types, but it will be enabled soon (draft l2geth PR scroll-tech/go-ethereum#573, after discussing with @NazariiDenha , he will send another PR).

This PR enables the BlockCtxU256Gadget for BASEFEE (separated with DIFFICULTY which always returns 0 for scroll), and tested with geth mainnet in integration-tests as described in PR #1034.

@silathdiir silathdiir changed the title fix: enable BASEFEE circuit (unnecessary for now) [WIP] fix: enable BASEFEE circuit (unnecessary for now) Nov 16, 2023
@silathdiir silathdiir changed the title [WIP] fix: enable BASEFEE circuit (unnecessary for now) fix: enable BASEFEE circuit (unnecessary for now) Nov 16, 2023
@silathdiir silathdiir force-pushed the enable-basefee-circuit branch from f7914f7 to 4491513 Compare November 16, 2023 09:45
@silathdiir silathdiir requested review from lispc and noel2004 November 16, 2023 10:36
@silathdiir silathdiir changed the title fix: enable BASEFEE circuit (unnecessary for now) fix: enable circuit for BASEFEE opcode Nov 21, 2023
@silathdiir silathdiir changed the title fix: enable circuit for BASEFEE opcode fix: only enable circuit for BASEFEE opcode (without opcode mapping) Nov 21, 2023
@kunxian-xia kunxian-xia merged commit abb7564 into develop Nov 22, 2023
@kunxian-xia kunxian-xia deleted the enable-basefee-circuit branch November 22, 2023 01:41
naure added a commit that referenced this pull request Dec 13, 2023
* [FEAT] support mainnet block in mainnet.rs (#814) (#1004)

* patch for L2 node rpc

* constrain max_txs to pass pi circuit

* revert get access set to the same implement as upstream

* update for using prestateTracer for state

* fix coinbase issue

* apply mock fill root

* better form for mock filling mpt

* dep issue

* some trivial optimizations

* grep mpt standlone circuit from test

* update poseidon row params

* fix issues in old_root setting

* update ethblock for some fields

* update more fields

* update keccak inputs

* update prev state root

* update more fields for state root

* update code size

* fix storage issue on missing field

* optimize the pre state handling

* induce relax mode to raise some restrict

* picking coinbase/difficulity from block instead of default constants

* custom diff/coinbase in padding

* fix the max_txs issue in pi_circuit

* clippy and fmt

* support single tx test

* adjust params

* rebuild mpt state in mock tx proven

* fmt

* resume some fields in prestate trace

* test creating supercircuit from dummy witness block

* revert most params

* mitigate an issue in prestate tracer

* add timeout spec for robust API call

* fmt

* add readme for test

* add more comment according to review

---------

Co-authored-by: Steven <asongala@163.com>

* fix: only enable circuit for `BASEFEE` opcode (without opcode mapping) (#1033)

* Enable `BlockCtxU256Gadget` for `BASEFEE` opcode in `scroll` feature.

* Fix to restrict `DIFFICULTY` execution state only for scroll (to avoid soundness).

* Disable applying MPT if non-scroll in integration-tests. (#1034)

* Add `AccessListGasCost` to `TxContextFieldTag`. (#1041)

* [feat] enum error in GethExecStep  (#1037)

* make error enum

* remove non_exhaustive

* [feat] add feature switch of memory/stack/storage (#1038)

* add feature switch

* add missing

* fix merge

* parallel assignment of evm circuit (#1027)

* done

* retry

* seem done

* fix

* Temp to comment out `Cached assign at ...` log.

* clean-codes

---------

Co-authored-by: Steven Gu <asongala@163.com>

* Refactor PI Circuit (#1042)

* refactor assign into sub-methods, more docs

* fmt

* fix: doc escape square braces

* fix offset increment

* fix macos build (#1047)

* remove halo2wrong (#1048)

* feat: Add `TxEip2930Gadget` to handle EIP-2930 (for evm-circuit part) (#1045)

* Add `TxEip2930Gadget` to begin-tx to handle EIP-2930 in evm circuit.

* Move `AccessList*` to the front of `BlockNumber` to fix tx-circuit tests.

* Merge `CopyDataType` of access list to `AccessListAddresses` and `AccessListStorageKeys`.

* Delete `is_eip1559_tx` function which should be better to add in the EIP-1559 PR.

* Rename function `access_list_address_and_storage_key_sizes` to `access_list_size`.

* Add `AccessListRLC` to tx-table.

* Fix test.

* Remove `AccessListGasCost`, and try to calculate it by `AccessListAddressesLen` and `AccessListStorageKeysLen`

---------

Co-authored-by: Rohit Narurkar <rohit.narurkar@protonmail.com>

* [FEAT] precompile-sha256 (#1032)

* init table16 with generic refactoring

* update cargo

* add required cfgs

* add benchmarking

* customable bench

* fmt

* config gates for sha256 circuit

* complete sha256 circuit

* induce SHA256 in bus mapping

* better challenge spec

* integrate sha256 circuit into super

* readme (wip)

* complete precompile and sha256 table

* clippies

* fmt

* better tests

* fix issues and better printing for circuit layout

* refine and fix issues

* fix digest in table16

* fix layout, clippy and fmt

* complete sha256 table

* fix rw

* fix rlc on padding

* clippy and fmt

* more tests

* test added

* sha256: update row cost per block

* update readme (wip)

* lookup input len

* enable sha256

* more tests cases

* refactoring aux data

* fmt

* fix precompile call test

* fix another callop test

* + update bench to circuit-sha256,
+ update readme

* fix vk issue, add more test

* trivial fixs

* move sha256 circuit into zkevm-circuits

* purge unused sha256 dir

* bump halo2 version

* fix blank comment

* fix fmt (#1049)

* chore: upgrade group/ff/halo2 and rust version (#1022)

* wip

* enforce eth v2.0.7

* update links

* clean up zktrie

* fix keccak circuit

* fix gadgets

* fix bus-mapping

* everything compiles now

* compiles

* compiles

* clean up

* update zktrie links

* update dep for zktrie

* Fix all dep/compliation issues in Sync ff 0.13 (#1056)

* fix all dep issue

* use updated misc-precompile

* fix test issue

* purge lock file by upgrading mpt-circuit

* final update for dep of mpt-circuits

* update deps

* build?

---------

Co-authored-by: Zhang Zhuo <mycinbrin@gmail.com>

* upgrade halo2;

* build

* Upgrade rust-toolchain to `nightly-2023-10-27` in CI.

* Fix some byte values (u8) from `u128` to `u64` in `SAR`.

* uncomment unit tests for aggregator

* fix clippy

* uncomment sig circuit and tx circuit

* uncomment rlc gates unit tests

* fix make doc

* uncomment sig/ecc related code

* minor fix

* clippy

* undo last clippy..

* disable some super circuit tests

---------

Co-authored-by: Ho Vei <noelwei@gmail.com>
Co-authored-by: Ho <noel.wei@gmail.com>
Co-authored-by: Zhang Zhuo <mycinbrin@gmail.com>
Co-authored-by: Steven Gu <asongala@163.com>

* [chore] update rust toolchain to 1.76 nightly; replace  lazy_static/once_cell with std::sync::LazyLock (#1050)

* part1

* part2

* wip

* enforce eth v2.0.7

* update links

* clean up zktrie

* fix keccak circuit

* fix gadgets

* fix bus-mapping

* everything compiles now

* compiles

* compiles

* clean up

* update zktrie links

* update dep for zktrie

* [chore] update rust toolchain to 1.76 nightly

* Fix all dep/compliation issues in Sync ff 0.13 (#1056)

* fix all dep issue

* use updated misc-precompile

* fix test issue

* purge lock file by upgrading mpt-circuit

* final update for dep of mpt-circuits

* update deps

* build?

---------

Co-authored-by: Zhang Zhuo <mycinbrin@gmail.com>

* upgrade halo2;

* remove lazy_static and once_cell

* update snark-verifier

* build

* Upgrade rust-toolchain to `nightly-2023-10-27` in CI.

* Fix some byte values (u8) from `u128` to `u64` in `SAR`.

* uncomment unit tests for aggregator

* fix clippy

* uncomment sig circuit and tx circuit

* uncomment rlc gates unit tests

* fix make doc

* uncomment sig/ecc related code

* minor fix

* clippy

* undo last clippy..

* disable some super circuit tests

* update ci script

* fix missing

* post merge

* soundness fix

* fix missing

* fix missing

---------

Co-authored-by: zhenfei <zhenfei.zhang@hotmail.com>
Co-authored-by: Ho Vei <noelwei@gmail.com>
Co-authored-by: lightsing <light.tsing@gmail.com>
Co-authored-by: Ho <noel.wei@gmail.com>
Co-authored-by: Steven Gu <asongala@163.com>

* bus-auto: fixes after merge

* bus-auto: support for parallel assign_regions

---------

Co-authored-by: Ho <noel.wei@gmail.com>
Co-authored-by: Steven <asongala@163.com>
Co-authored-by: Akase Cho <lightsing@users.noreply.github.com>
Co-authored-by: Zhang Zhuo <mycinbrin@gmail.com>
Co-authored-by: Rohit Narurkar <rohit.narurkar@protonmail.com>
Co-authored-by: zhenfei <zhenfei.zhang@hotmail.com>
Co-authored-by: Ho Vei <noelwei@gmail.com>
Co-authored-by: lightsing <light.tsing@gmail.com>
Co-authored-by: Aurélien Nicolas <info@nau.re>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants