Commit graph

623 commits

Author SHA1 Message Date
colin
a807a41fd1
fix(txJSON): L1 message type MarshalJSON (#630)
* fix(txJSON): L1 message type MarshalJSON

* address comments

* bump version

* trigger ci

* bump version

* bump version
2024-03-05 20:12:10 +08:00
georgehao
06a21f327d
feat: add transactions len metrics of block processer (#650)
* feat: add transactions len metrics of block processer

* feat: bump version
2024-03-04 10:21:05 +08:00
georgehao
bfa7abcc50
feat: add metric to evm call (#646)
* feat: add metric to evm

* feat: bump version
2024-02-28 09:45:38 +08:00
colin
483949b87e
fix(rollup sync service): remove syscall.Kill (#636)
* fix(rollup sync service): remove syscall.Kill

* bump version
2024-02-21 16:57:09 +08:00
Nazarii Denha
ee381b2451
feat: setup configuration for upcoming hard fork and re-enable sha256 precompile (#562)
* setup configuration for upcoming hard fork

* bump version

* bump version

* enable sha256

* rename to kepler

* update

* update lint

* rename Kepler to Banach

* goimports

* reorder precompile forks

* typo

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2024-02-09 13:46:33 +01:00
colin
ae7cbae19c
feat(transactions): support blob tx only in encoding/decoding (#626)
* draft change

* fix CI

* remove CancunBlock params and change cancunSigner to londonSignerWithEIP4844

* support blob transactions in receipt

* trigger ci

* bump version
2024-02-01 18:35:12 +01:00
colin
d86b42cdaa
fix(ethclient): support new cancun fields in header (#623) 2024-01-31 09:04:56 +08:00
HAOYUatHZ
88349c600d
feat: add mux tracer for native call tracer and native prestate tracers (#615)
* hack to use native tracers

* update

* fix

* add prestate

* fix marshal

* format

* draft

* move

* separate `MuxTracer`

* fix

* update miner/worker.go

* update api

* rename

* remove

* bump go version

* bump golangci

* goimports lint

* fix tests

* minor

* clean up

* fix tests

* sync error handling

* bump go version in Dockerfiles

* bump version

* lint: disable `goconst` & `goimports`

* bump version again

* add comments

---------

Co-authored-by: lightsing <light.tsing@gmail.com>
2024-01-18 14:58:27 +08:00
colin
fc06826a04
fix(receipt): L1 message type tx RLP decoding (#616)
* fix(receipt): L1 message type tx RLP decoding

* another
2024-01-15 15:07:41 +08:00
colin
219b84e1af
fix(txpool): revert duplicated l1 data fee check (#612)
* Revert "fix(tx-pool): consider L1 data fee in validateTx"

This reverts commit 0a5c04b85d0f8b509542306894c03bd3feff65bd.

* simplify veriftfee

* bump version

* address comments

* keep the original behavior

* fix again

* nit

* tweak comments
2024-01-08 20:25:46 +08:00
colin
5b7079b3a4
fix(tx-pool): consider L1 data fee in validateTx (#609)
* fix(tx-pool): consider L1 data fee in validateTx

* bump version
2023-12-26 10:12:26 +08:00
HAOYUatHZ
640b39161c
feat: remove instead of pop insufficient-funds tx (#608)
* feat: remove instead of pop insufficient-funds tx

* bump version

* update

* update
2023-12-26 00:47:39 +08:00
HAOYUatHZ
833f9041bb
feat: improve balance check (#607)
* feat: improve balance check

* clean up
2023-12-26 00:09:41 +08:00
colin
b235afbccf
feat(rollup): add fallback if TransactionByHash fails in getting commitBatch calldata (#601)
* feat(rollup): add fallback if TransactionByHash fails in getting commitBatch calldata

* Update rollup/rollup_sync_service/rollup_sync_service.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* change log.Warn to log.Debug

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-12-18 14:51:46 +01:00
HAOYUatHZ
38a3a9c919
fix(tracing): fix getTxResult returned error format (#561)
* fix(tracing): fix `getTxResult` returned error format

* Update version.go
2023-11-30 08:51:11 +08:00
Zhang Zhuo
9f143b47b2
feat (libzkp-v0.9.8): recordStorageDetail even when LogConfig.DisableStorage == true (#564)
* trace: recordStorageDetail even when LogConfig.DisableStorage == true

* Set `DisableStorage` to true.

* Update libzkp to zkevm-circuits `feat/remove-step-storage-from-trace` branch.

* Add `strict-ccc` feature to libzkp.

* Upgrade libzkp to use prover `v0.9.8`.

* Update params version.

* Update params version.

---------

Co-authored-by: Steven Gu <asongala@163.com>
2023-11-22 14:44:08 +08:00
HAOYUatHZ
f4b247da15
feat: add scroll_getTxBlockTraceOnTopOfBlock API (#558)
* init

* more

* fix draft

* refactor

* fix

* clean up

* minor

* fix

* fix

* clean up

* clean up

* improve
2023-11-20 13:59:20 +08:00
Péter Garamvölgyi
3f9b23d33e
fix(worker): prioritize overflow tx as first tx in next block (#563)
* fix(worker): prioritize overflow tx as first tx in next block

* add tests

* bump version
2023-11-14 20:06:16 +01:00
vyzo
65a3a7fc23
Add metrics around block commit, block traces, and CCC (#552)
* Add metrics around block commit, block traces, and CCC

* add timer.Time wrapper

* more traces

* bump version

* bump version

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-11-09 14:24:00 +01:00
colin
1bf26286db
feat(rpc): add scroll_* rollup APIs (#548)
* feat(rpc): add scroll_* rollup APIs

* address comments

* address comments

* address comments

* support finalized tag in eth_feeHistory

* Update internal/web3ext/web3ext.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* tweak

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-11-09 09:55:13 +01:00
colin
441212200a
feat(rollup): sync finalized batches from L1 (#515)
* feat(rollup): sync finalized batches from L1

* tweak

* address comments

* address comments

* tweak

* address comments

* Update rollup/eventwatcher/eventwatcher.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* address comments

* address comments

* address comments

* add s.rollupSyncService.Stop()

* add block chunk batch tests

* fix goimports-lint

* address comments

* address comments

* remove

* add TestUnpackLog test

* add decodeChunkRanges tests

* add commit batch version check

* fix goimport & golint

* tweak

* fixes

* add TestRollupSyncServiceStartAndStop

* add TestGetChunkRanges

* address comments

* add TestValidateBatch

* add TestCalculateFinalizedBatchMeta

* address comments

* address comments

* fix

* address comments

* address comments

* fix

* tweak log

* fix

* tweak logs

* increase wait time

* add --rollup.verify flag

* add flag check in s.rollupSyncService.Stop()

* bump version

* refactor

* tweak configs

* tweak

* refactor getLocalInfoForBatch

* use syscall.Kill(os.Getpid(), syscall.SIGTERM) to shutdown

* refactor decodeChunkBlockRanges

* nit

* address comments

* address comments

* add WithdrawRoot and StateRoot in FinalizedBatchMeta

* address comments

* address comments

* add ctx.Err() check in retry

* add configs in gen_config.go

* bump version

* fix goimport & golint

* try to fix goimport

* revert change

* fix goimport & golint

* tweak

* bump version

* add l2 block -> batch index mapping

* bump version

* add mainnet config

* bump version

* address comments

* rename some vars

* feat: add more detailed logs in crash case (#547)

add more detailed logs in crash case

* trigger ci

* re-add batch finalization progress log

* remove block number -> batch index mapping

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-10-28 06:29:31 +08:00
colin
bbf42042e2
fix: eth_estimateGas error in zero balance address (#537)
* fix: eth_estimateGas zero balance error

* bump version

* revert irrelevant auto format

* remove isEstimateGas in DoCall

* fix CI

* bump version

---------

Co-authored-by: maskpp <maskpp266@gmail.com>
2023-10-25 11:52:40 +02:00
Steven
adde9ce118
fix (libzkp): free Rust CString by from_raw (potential memory leak) (#539)
* Free Rust CString by `from_raw`.

* Update params version.
2023-10-25 15:04:13 +08:00
Steven
9a0a87f4ca
fix(libzkp): upgrade to use prover v0.9.7 (#535)
* Upgrade to use prover `v0.9.7`.

* Update version.
2023-10-13 08:45:26 +02:00
Péter Garamvölgyi
cfd9de0f92
feat: update network configuration (#533) 2023-10-08 16:03:41 +02:00
Péter Garamvölgyi
b3d0f164ea
feat: add new configuration (#526)
* add new configuration

* update

* update

* bump version

* remove todo
2023-10-08 13:29:09 +02:00
Péter Garamvölgyi
68697b0fee
fix: use non-overlapping DB prefix for L1 messages (#532)
* fix: use non-overlapping db prefix for L1 messages

* bump version
2023-10-04 19:28:26 +02:00
Nazarii Denha
fea7d94ebd
Fix/config fix small bug and set default maxBlockRange to -1 to not use it (#529)
* feat: configure max block range for eth_getLogs (#521)

* configure max block range for eth_getLogs

* bump version

* address comments, add test

* set default value

* address comments

* fix golint

* Update cmd/utils/flags.go

Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>

---------

Co-authored-by: colinlyguo <colinlyguo@scroll.io>
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>

* set dafault maxblockrange to -1 and fix nil pointer bug

* update version

* change error logic

* check for range in filter

* Update eth/ethconfig/config.go

Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>

* adjust error message

* fix duplicate version

---------

Co-authored-by: colinlyguo <colinlyguo@scroll.io>
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-10-04 19:18:52 +02:00
Steven
d4301334b8
fix(libzkp): upgrade libzkp to v0.9.5 (#531)
* Upgrade libzkp to `v0.9.5`.

* bump version

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-10-04 16:49:19 +02:00
Péter Garamvölgyi
df41822bcf
fix: re-enable CCC light mode (#530)
fix: re-enable light mode
2023-10-04 14:01:55 +02:00
Steven
7cebee85a8
fix(libzkp): upgrade libzkp to v0.9.4 and add ccc SetLightMode (#522)
* Upgrade to prover `v0.9.4`, and add `SetLightMode` function.

* set ccc light_mode = false for validator

* fix

* bump version

---------

Co-authored-by: Zhang Zhuo <mycinbrin@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-10-03 15:42:54 +02:00
Péter Garamvölgyi
736cf7b1fb
Revert "feat: configure max block range for eth_getLogs (#521)" (#528)
This reverts commit de5aebdad5.
2023-10-03 15:07:43 +02:00
Nazarii Denha
de5aebdad5
feat: configure max block range for eth_getLogs (#521)
* configure max block range for eth_getLogs

* bump version

* address comments, add test

* set default value

* address comments

* fix golint

* Update cmd/utils/flags.go

Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>

---------

Co-authored-by: colinlyguo <colinlyguo@scroll.io>
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
2023-10-02 17:11:50 +02:00
Péter Garamvölgyi
751dbda234
feat: add metrics in L1 message iterator (#527)
* feat: add metrics in L1 message iterator

* add L1 message size metric
2023-10-01 14:48:59 +02:00
Péter Garamvölgyi
fe8232a40f
fix(worker): short-circuit l1 message iteration (#525)
* fix(worker): short-circuit l1 message iteration

* Update core/rawdb/accessors_l1_message_test.go

Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>

---------

Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
2023-09-29 21:16:37 +02:00
Péter Garamvölgyi
abcf48f20c
fix(ccc): revert light mode (#524)
* Revert "feat: use light_mode = false for block ccc (#519)"

This reverts commit a51434da5a.

* bump version
2023-09-27 16:03:37 +02:00
Zhang Zhuo
a51434da5a
feat: use light_mode = false for block ccc (#519) 2023-09-27 07:30:44 +01:00
Steven
fa0be69a3f
fix(libzkp): upgrade libzkp to v0.9.2 (fix ccc panic CodeNotFound) (#520)
Upgrade libzkp to `v0.9.2` (fix ccc bug).
2023-09-19 10:41:51 +08:00
Péter Garamvölgyi
93a9497d75
refactor(worker): order L1 messages by queue index (#512)
* refactor(worker): order L1 messages by queue index

* bump version

* bump version
2023-09-18 10:34:51 +02:00
Steven
5b787be12c
fix(libzkp): upgrade to use prover v0.9.1 (#517)
Upgrade libzkp to use prover `v0.9.1`.
2023-09-17 08:30:23 +08:00
Steven
2b22bf9138
fix(libzkp): upgrade to use prover v0.9.0 (#513) 2023-09-14 19:28:24 +08:00
Péter Garamvölgyi
530830a01c
fix(worker): check gas limit before running ccc (#511)
Co-authored-by: maskpp <maskpp266@gmail.com>
2023-09-13 16:19:14 +02:00
iczc
734021fc27
p2p: limit ping requests from a single peer (#510)
* p2p: move ping handling into pingLoop goroutine (#27887)

Moving the response sending there allows tracking all peer goroutines
in the peer WaitGroup.

* bump version

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2023-09-12 19:27:16 +02:00
Péter Garamvölgyi
9c1433b62a
fix(trace): use correct roots in trace of block with one transaction (#508)
fix: use correct roots in trace of block with one transaction
2023-09-11 12:13:50 +02:00
Péter Garamvölgyi
1d824f42bd
fix(ccc): fix CCC build errors (#506) 2023-09-08 22:18:21 +08:00
Steven
7d79f27e6f
fix (libzkp): check tx num when CCC ErrUnknown error occurred (#505)
* Check tx num for CCC ErrUnknown error.

* Update worker.go

* Small fix.

* Update

* Fix log.

* Update version.

* Update miner/worker.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* Update according to review.

* Fix to return 0 for uint64.

* Add `tcount` to mock CCC, and function `SetTxNum`.

* refactor

* fix

* add comments

---------

Co-authored-by: Zhang Zhuo <mycinbrin@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2023-09-08 13:17:02 +02:00
HAOYUatHZ
dade96d416
fix(rawdb, api): fix rawdb.writeSkippedTransaction & api.GetSkippedTransaction (#503)
* fix(rawsdb): fix `writeSkippedTransaction`

* Update version.go

* minor

* clean up
2023-09-07 15:35:04 +08:00
Steven
c75ebdbdb0
fix(libzkp): upgrade to v0.8.2 (#504) 2023-09-07 14:12:03 +08:00
Steven
fde2c3b6a7
fix: libzkp v0.8.1 (#502) 2023-09-07 11:11:31 +08:00
Xinran
293deff873
refactor(ccc): throw error instead of panic for recognized errors (#499) 2023-09-06 15:15:36 +08:00
HAOYUatHZ
0b6c3be40d
feat(api/rawdb): allow storing traces for skipped txs (#500) 2023-09-05 11:03:15 +08:00
Zhang Zhuo
2d9d48d463
fix(trace): record account proof for ErrContractAddressCollision (#488)
* fix(trace): record account proof for ErrContractAddressCollision

* bump version

* fix memory reading

* bump version

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2023-09-04 04:05:42 +00:00
Zhang Zhuo
c60fa3a643
fix(trace): fix memory trace size (#497)
* core/vm: for tracing, do not report post-op memory

* fmt

* bump version

---------

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-09-01 17:01:53 +08:00
Zhang Zhuo
d45613f4b5
fix(trace): more consistent invalid opcode trace (#487)
* fix: more consistent invalid opcode trace

* Update version.go

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-31 15:30:22 +02:00
Xinran
24d856758b
feat(metrics): add skipped txs metrics for miner (#494) 2023-08-31 11:04:25 +08:00
Zhang Zhuo
ef328dbb6e
fix(modexp): disallow len of 0x8000000000000000000000000000000000000000000… (#496)
* modexp: disallow len of 0x8000000000000000000000000000000000000000000000000000000000000000

* minor

---------

Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2023-08-31 10:33:31 +08:00
Zhang Zhuo
63cbb77cdc
chore(ccc): v0.7.6: fix: if rws reaches limit, stop early (#495)
* chore(ccc): v0.7.6: fix: if rws reaches limit, stop early

* Update version.go

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-08-30 15:07:10 +08:00
HAOYUatHZ
ea3a3c9a5d
fix(miner): fix repeatedly processing dropped txs in a new block (#491)
* squash

* improve comments

* Remove tx (#493)

* force drop

* minor

* store skipped L2 tx for `circuitcapacitychecker.ErrUnknown`

* Update miner/worker.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* add lock

* use mu

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-30 14:38:04 +08:00
HAOYUatHZ
f883dcdc21
docs(ccc): add more logs for skipping msg (#490)
* docs(ccc): add more logs for skipping msg

* bump version

* format codes

* improve
2023-08-29 08:05:27 +08:00
HAOYUatHZ
d650299a36
feat(miner): consider l1msg in txCount (#486)
* feat(miner): consider l1msg in txCount

* refactor

* tweak

* fix comments

* fix unit test

* set chainConfig.Scroll.MaxTxPerBlock in l1 message test

* add a skipped tx in TestAcceptableTxlimit

* add l1 skipped msg in test

* fix unit test

* fix unit test

* Update miner/worker.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* revert some test changes

* tweak

* bump version

---------

Co-authored-by: colinlyguo <colinlyguo@scroll.io>
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-27 00:08:04 +08:00
Péter Garamvölgyi
7de261b1be
feat: store skipped transactions in local db (#467)
* feat: store skipped txs in local db

* bump version

* bump version

* fix test

* include L2 txs in skipped index

* goimports

* rename more

* bump version

* fix missed renames

* fix the bug when calculating l2TxCount. (#479)

* fix bug when calculate l2 tx count

* Update version

* fix: exclude L1 message from block payload size validation (#476)

* fix: exclude L1 message from block payload size validation

* fix the bug when calculating l2TxCount. (#479)

* fix bug when calculate l2 tx count

* Update version

* bump version

---------

Co-authored-by: maskpp <maskpp266@gmail.com>

* fix: update row estimation with scroll-prover `v0.7.2` (#475)

* Fix row estimation.

* Update libzkp.

* more

* prepare

* finish

* upgrade

* bump version

* fix tests

* Update to scroll-prover `v0.7.2`.

* fix tests

* Update miner/worker.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* Update miner/worker.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* Reset ccc when skips first tx.

* do not unnecessarily skip L1 message

* fix ccc reset and improve code readability

* seal block on circuitcapacitychecker.ErrUnknown

---------

Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* refactor: simplify ccc revert to snapshot (#480)

* simplify ccc revert to snapshot

* Update version.go

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>

* feat: use --gcmode=archive and --cache.noprefetch=true by default (#482)

* feat: use --gcmode=archive and --cache.noprefetch=true by default

* refuse to start with invalid config

* lint

* lint

* feat(sdk): support compressed response (#469)

* enable use compression algorithm

* fix ci

* Just enable decode compressed content at ethclient

* fix comments

---------

Co-authored-by: Haichen Shen <shenhaichen@gmail.com>

* fix: disable pruning and prefetch if not flags are provided (#483)

Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>

* fix: update libzkp to use scroll-prover `v0.7.5` (#484)

* Update libzkp to use scroll-prover `v0.7.5`.

* Update version.

* address comments

* bump version

* nit

---------

Co-authored-by: maskpp <maskpp266@gmail.com>
Co-authored-by: Steven <asongala@163.com>
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
Co-authored-by: iczc <iczcalan@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
2023-08-25 15:41:05 +02:00
Steven
637cb3777f
fix: update libzkp to use scroll-prover v0.7.5 (#484)
* Update libzkp to use scroll-prover `v0.7.5`.

* Update version.
2023-08-25 07:33:39 +02:00
Péter Garamvölgyi
b0657a7e45
fix: disable pruning and prefetch if not flags are provided (#483)
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
2023-08-24 18:15:45 +02:00
Péter Garamvölgyi
e93930d6ba
feat: use --gcmode=archive and --cache.noprefetch=true by default (#482)
* feat: use --gcmode=archive and --cache.noprefetch=true by default

* refuse to start with invalid config

* lint

* lint
2023-08-24 11:51:20 +02:00
iczc
d02a410b36
refactor: simplify ccc revert to snapshot (#480)
* simplify ccc revert to snapshot

* Update version.go

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-08-24 10:30:00 +08:00
Steven
6992cfe8c5
fix: update row estimation with scroll-prover v0.7.2 (#475)
* Fix row estimation.

* Update libzkp.

* more

* prepare

* finish

* upgrade

* bump version

* fix tests

* Update to scroll-prover `v0.7.2`.

* fix tests

* Update miner/worker.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* Update miner/worker.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* Reset ccc when skips first tx.

* do not unnecessarily skip L1 message

* fix ccc reset and improve code readability

* seal block on circuitcapacitychecker.ErrUnknown

---------

Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-23 14:27:00 +02:00
Péter Garamvölgyi
727f88bc5f
fix: exclude L1 message from block payload size validation (#476)
* fix: exclude L1 message from block payload size validation

* fix the bug when calculating l2TxCount. (#479)

* fix bug when calculate l2 tx count

* Update version

* bump version

---------

Co-authored-by: maskpp <maskpp266@gmail.com>
2023-08-23 14:06:06 +02:00
maskpp
b65f42b41a
fix the bug when calculating l2TxCount. (#479)
* fix bug when calculate l2 tx count

* Update version
2023-08-23 13:46:28 +02:00
Péter Garamvölgyi
e85c70c156
fix: free raw result returned from CCC (#477) 2023-08-22 11:27:17 +08:00
Ho
be1600f078
refactor(trace): wrap the core routine in CreateTraceEnv (#460) 2023-08-20 18:39:20 +08:00
Péter Garamvölgyi
d4597e369e
fix: enable worker but skip CCC on follower nodes (#474)
* fix: enable worker but skip CCC on follower nodes

* fix worker snapshot

* fix worker snapshot
2023-08-19 15:51:49 +02:00
Haichen Shen
e8d9d60cf0
fix: use FeeVault address in the EVM BlockContext (#473)
* fix: use Feevault address in the EVM BlockContext

* bump version

* revert format change

* fix
2023-08-19 14:01:14 +02:00
Péter Garamvölgyi
ad4ddbf60f
fix: disable commitNewWork on follower nodes (#472)
fix: disable mining on follower nodes
2023-08-18 16:06:15 +02:00
Zhang Zhuo
b2bd2838ac
fix(ccc): fix poseidon circuit row estimation under-estimation (#470)
* upgrade ccc: better row estimation

* update cargo lock

* update version
2023-08-18 10:41:13 +02:00
Péter Garamvölgyi
81dc3649a8
fix: seal block if single tx overflows (#468) 2023-08-18 07:09:53 +02:00
Péter Garamvölgyi
626ae08ebf
fix: update worker nextL1MsgIndex for unknown errors (#464)
* fix: update worker nextL1MsgIndex for strange errors

* more tests

* bump version

* refactor: add more context to tracing failure (#466)

* bump version

* bump version
2023-08-17 19:55:56 +02:00
Steven
7b8c20f3c2
fix: upgrade libzkp necessary for ccc (normalize row usage) (#461)
* Upgrade libzkp.

* Upgrade to scroll-prover `v0.5.20`.
2023-08-17 18:10:43 +08:00
Péter Garamvölgyi
3027111956
refactor: add more context to tracing failure (#466) 2023-08-17 07:25:03 +02:00
maskpp
6195e2e77d
fix(trace): fix contract call's ByteCode (#465)
* fix bug

* update version
2023-08-14 18:09:39 +08:00
Péter Garamvölgyi
25fe3ba69a
feat: add startL1QueueIndex field to traces (#463)
* feat: include startL1QueueIndex in traces

* fix

* update example
2023-08-12 11:07:36 +08:00
Steven
fcd7212b60
fix: upgrade libzkp to use scroll-prover v0.5.10 (#454)
Update libzkp to use scroll-prover `v0.5.10`.
2023-08-08 15:07:18 +02:00
Péter Garamvölgyi
4175f65734
fix: skip payload size check for L1 messages (#457) 2023-08-08 05:50:45 +02:00
Péter Garamvölgyi
eda99eec35
fix: skip L1 message that leads to gas limit exceeded (#455)
* skip L1 message that leads to gas limit exceeded

* add test

* do not skip l1 messages from the same account
2023-08-08 01:59:11 +02:00
HAOYUatHZ
b428fa1339
fix(trace): fix commit state when tracing (#451)
* fix(trace): fix commit state when tracing

* bump version
2023-08-07 14:15:21 +08:00
Steven
5c4530cd2a
fix: upgrade libzkp to use scroll-prover v0.5.6 (#450)
Upgrade libzkp to use scroll-prover `v0.5.6`.
2023-08-07 12:25:08 +08:00
Péter Garamvölgyi
805676e227
feat: Update Sepolia genesis (#449)
update Sepolia genesis
2023-08-06 19:25:10 +02:00
HAOYUatHZ
9997324b0d
feat(libzkp): update Cargo.lock (#448)
* feat(libzkp): update Cargo.lock

* update version

---------

Co-authored-by: Your Name <you@example.com>
2023-08-07 01:03:31 +08:00
xkx
805a2f415e
fix(libzkp): fix ethers-core dep (#447)
* fix the ethers-core dep in libzkp crate

* bump version

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-07 00:47:09 +08:00
Péter Garamvölgyi
e70a07cc98
fix: Initialize nextL1MsgIndex before commit (#444)
* initialize nextL1MsgIndex before commit

* bump version

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-08-06 21:48:03 +08:00
Péter Garamvölgyi
69dd39afba
fix: do not overwrite correct L1 index on signer startup (#443)
* fix signer worker

* add logs

* bump version

* Fix
2023-08-06 14:22:02 +02:00
Steven
8f431845c3
fix: upgrade libzkp to use scroll-prover v0.5.3 (#442)
Upgrade libzkp to use scroll-prover `v0.5.3`.
2023-08-06 20:02:51 +08:00
vyzo
94190f0163
feat: sepolia flag and config (#377)
* add sepolia flag and configuration

* bump patch version

* Update params/version.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* Update params/config.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* Update params/config.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* explicitly set l1.confirmations and l1.sync.startblock for sepolia

* update config

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-04 19:45:39 +02:00
HAOYUatHZ
86c7cbe020
fix(ccc): remove debug-assertions in release (#441) 2023-08-04 16:26:15 +08:00
Ho
6b20ce624f
fix: correctly initialize ZkTrieTracer for ccc (#440)
* fix issue for zktrieTracer not inited

* bump version

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-04 07:54:55 +02:00
Péter Garamvölgyi
cf42026e58
fix: do not skip QueueIndex 0 in worker (#439)
fix: do not skip QueueIndex 0
2023-08-04 06:07:34 +02:00
Péter Garamvölgyi
26eeb40ea3
fix: use correct hash for ccc write in worker (#438) 2023-08-04 04:22:47 +02:00
Péter Garamvölgyi
5611b8296a
refactor: add more ccc logs (#436)
* refactor: add more ccc logs

* format hashes

* more logs

* more logs
2023-08-03 18:16:32 +02:00
Péter Garamvölgyi
f87eb3127a
fix: do not reuse same snapshot twice (#435)
fix: create new snapshot
2023-08-03 16:45:45 +02:00
HAOYUatHZ
5b0b08b104
fix(miner): fix trace for empty block (#434)
* fix(miner): fix trace for empty block

* update version

* try fix

* improve docs
2023-08-03 16:19:52 +02:00
Péter Garamvölgyi
37ef8cad30
fix: ccc debug log Rust syntax (#433)
* fix ccc debug log syntax

* fix ccc debug log syntax
2023-08-03 13:56:24 +02:00
Péter Garamvölgyi
42e17229d5
fix: decode traces as UTF-8 string (#432)
decode traces as UTF-8 string
2023-08-03 13:21:30 +02:00
HAOYUatHZ
ef67ff8bbb
fix(miner): fix acc_rows for empty block (#431)
* Revert "fix(worker): set row consumption for genesis and empty blocks (#428)"

This reverts commit b51736fd3c.

* fix: fix accRows for empty block

* bump version

* remove log

* fix

* set default accRows as nil explicitly

* fix genesis block

* fix
2023-08-03 13:09:59 +02:00
Péter Garamvölgyi
21d430f018
feat: add ccc debug logs (#430)
add ccc debug logs
2023-08-03 16:11:09 +08:00
HAOYUatHZ
60e260b2f1
fix: fix block validator createTraceEnv (#429) 2023-08-03 15:56:11 +08:00
Péter Garamvölgyi
b51736fd3c
fix(worker): set row consumption for genesis and empty blocks (#428)
* fix: initialize row consumption for genesis and empty blocks

* bump version
2023-08-03 09:48:03 +02:00
HAOYUatHZ
4b2bbf6225
feat(rollup): update libzkp for new hash schema (#423) 2023-08-02 17:59:50 +08:00
Péter Garamvölgyi
a849722ba0
fix: expose -ccc flag on CLI (#424) 2023-08-02 10:34:19 +02:00
Péter Garamvölgyi
dbdc463006
refactor(ccc): log ccc error in Rust (#422)
log ccc error in Rust
2023-08-02 07:22:43 +02:00
Péter Garamvölgyi
96d12015e1
fix: decode subcircuit row usage as integer (#421)
* fix subcircuit row usage type

* bump version
2023-08-02 06:03:18 +02:00
Ho
11b35cd014
feat: upgrade zktrie to v0.6.0 (#403)
* add domain-spec poseidon hash

* add warning message for deprecated method

* update goimports

* update zktrie to v0.6

* fixes for upgrade

* resume deletion proof

* update alpha genesis since new hash sch eme

* dump zktrie to 0.6

* induce genesis block for scroll sepolia network

* Update version.go

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-02 10:54:41 +08:00
Nazarii Denha
7b75f163b0
feat(rpc): add scroll_getBlockByNumber (#413)
* add scroll_getBlockByNumber rpc api

* bump version

* fix

* bump version

* Update version.go

* Revert "Update version.go"

This reverts commit 1be1d9c4fdbb64254659ac193cffd23dbbacfb5e.

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2023-08-01 15:32:12 +02:00
HAOYUatHZ
22fec5714e
fix(rollup): fix error message and compile error (#416)
fix(rollup): fix compile error
2023-08-01 12:30:06 +02:00
HAOYUatHZ
2f9edf73ca
feat(rollup): add circuits capacity checker (#321)
* add proof for predeployed storages

* reverse inneeded code

* update for mainbranch merging

* add pertx storage trace

* dummy tx proof

* add txstorage trace

* add coinbase storage as trace

* enable (sync) tracing by default

* basic

* init cgo framework

* fix break loop

* integrate the right zkevm version (#323)

* finish rust codes

* use dylib (#325)

* flip

* ?

* use cdylib

* revert

* fix

* apply_tx

* rename

* fixing types

fixing types

fixing types

* clean up

* ExecutionResults (#328)

* filling

* filling

* more

* clean up

* filling

* coinbase

* add

* MPTWitness

* ExecutionResults WIP

* L1fee

L1fee

* sender

* to

* Failed & ReturnValue

* createdAcc & after

* remove MPTWitness

* txStorageTrace

* add FeeRecipient

* add StorageTrace

* fix FFI types

* better logger

* cargo fmt

* fix

* add build tags

* update Makefile

* fix library

* improve ld path

* correctly deal with circuit_capacity_checker returned result

* fix return value

* update cargo (#333)

* update cargo

* update

* update go

* refactor

* raname `circuits capacity checker` to `circuit capacity checker`

* some refactorings

* [Fix] storage proof generation in capacity checker (#348)

* make per-tx storage and deletion proof work

* format

* fix misplaced markdeletion

---------

Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>

* docker (#363)

* update Dockerfile

* build: update go version to 1.19

* update

* fix

* fix

* try

* simplify

* revert go version

update l2geth Dockerfiles

* fix

* fix coinbase

* fix (#369)

* format

* Update version.go

* address comments

* Capacity refactor (#374)

* init

* id

* support multiple instances

* fix id

* fix conflicts

* refactor to use same codes (#379)

* re-init

* WIP

* WIP

* refactor

* go

* minor

* fix storage proof of l1gas price oracle

* move 1

* move 2

* move 3

* move 4

* move 5

move 5

* move 6

move 6

* move 7

* move 8

* move 9

* move 10

* clean up

clean up

---------

Co-authored-by: Ho Vei <noelwei@gmail.com>

* finish basic

* minor

* config capacity check in block_validator (#380)

* init

* done

ref

* fix tests

fix tests

fix tests

fix tests

* add more comments

* apply_block

* improve logs

* cargo fmt

* Capacity big refactor (#383)

* CreateTraceEnv

* WIP

* draft

more

fix

* for test

* fortet

* clean up

* add more comments

* goimports -local github.com/scroll-tech/go-ethereum -w .

* fix typos

* attempt 1

* attempt 2

* attempt 3

* gogogo

* clean up

* fix

* fix

* rename

* minor

* fix

* minor

* minor

* improve doc

* use dedicated `checkCircuitCapacity` flag (#394)

* refactor

* fix

* add lock

* [feat] capacity checking: upgrade libzkp (#395)

* upgrade

* upgrade libzkp

* write RowConsumption (#396)

* write RowConsumption

* name alignments

* revert some formatting

* add lock to CircuitCapacityChecker in BlockValidator

* remove mutex pointer

* improve github workflow

* improve

* store row consumption in mining (#397)

* prepare

* finish

* add more logs

* mark `ApplyBlock` as ready

* update libzkp (#401)

* fix

* Capacity detail (#402)

* fix(block-validation): consider skipping in ValidateL1Messages (#405)

* fix(block-validation): consider skipping in ValidateL1Messages

* fix(block): consider skipping in L1MessageCount

* fix l1 validation tests

* fix NumL1Messages

* fix impl.go return types

fix

* better error handling (#407)

* add

add

* add

* add

* add

* add

* cargo fmt

* add

* update

* add

* WIP

* minor

* gogogo

* gogogo

* fix

* fix

* fix

* cargo clippy

* improve

* improve

* creation lock (#408)

* creation lock

* update

* Debug log (#409)

* add more logs

* more

* more

* fix

* improve

* Update cmd/utils/flags.go

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* refactor worker.commit()

* avoid re-calculate

* txpool ccc err handling (#411)

* more explicit error comments

* add more logs

* fix unnecessary commit

* add more logs

* fix `ineffassign`

* add more comments

* log id for `NewCircuitCapacityChecker` (#414)

add log to `NewCircuitCapacityChecker`

* Persist skip info for block where all L1 msgs are skipped (#415)

persist skip info for block where all L1 msgs are skipped

* Update version.go

---------

Co-authored-by: Ho Vei <noelwei@gmail.com>
Co-authored-by: Zhang Zhuo <mycinbrin@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-01 13:52:31 +08:00
Ho
134e1b8f92
feat&perf: reversed bit of key when persisting zktrie (#410)
* bit reverse when persisting zktrie

* fix according to review

* Update version.go

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-07-31 16:13:12 +08:00
Nazarii Denha
a677ee3ccf
fix(ethapi): change scroll_getBlockByHash ethapi behaviour (#398)
* fix api behaviour

* update version

* not retrun error in ethclient

* add comment

* modify rowconsumption struct

* fix lint

* change naming
2023-07-20 00:10:34 +08:00
Nazarii Denha
3943547960
feat(rawdb&rpc): add block row consumption rpc (#388)
* add db api for rowconsumption

* add rpc api for block row consumption

* return nil if rc is is not known

* add method to sdk

* bump version

* small fix

* update version

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-07-11 22:07:09 +08:00
Nazarii Denha
5eac3a73bc
feat(core/vm): modexp precompiled support also less than 32-bytes inputs (#393)
* modexp support 32-bytes or less inputs

* change revert string

* bump version

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-07-10 22:04:14 +08:00
Ho
2dcc60a082
fix(trace): fix storage proof of l1gas price oracle (#376)
* fix storage proof of l1gas price oracle

* Update version.go

* fix(trace): fix

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-07-07 10:35:19 +08:00
HAOYUatHZ
8c5bf3069f
fix(trace): fix statesAffected in traceLastNAddressAccount (#367)
* fix(trace): fix

* Update version.go
2023-07-07 10:27:55 +08:00
HAOYUatHZ
3cf5ba882d
feat(trace): add per_tx_storage_trace (#372)
* add proof for predeployed storages

* reverse inneeded code

* update for mainbranch merging

* add pertx storage trace

* dummy tx proof

* add txstorage trace

* add coinbase storage as trace

* Update version.go

* address comments

---------

Co-authored-by: Ho Vei <noelwei@gmail.com>
2023-07-04 22:21:12 +08:00
Péter Garamvölgyi
38a6a1e964
fix: include L1MessageTx fields in transaction RPC result (#375)
* fix: include L1MessageTx fields in tx RPC result

* bump version
2023-06-30 15:52:57 +02:00
Péter Garamvölgyi
8c141eb90f
feat(evm): limit ecPairing precompile to use up to 4 inputs (#373)
* feat(evm): limit ecPairing precompile to use up to 4 inputs

* update test cases

* reorder test functions
2023-06-29 09:22:48 +02:00
Péter Garamvölgyi
5abc15db78
feat: update contract ABI QueueIndex type to uint64 (#371)
* update contract ABI QueueIndex type to uint64

* Update bindings.go
2023-06-28 15:51:58 +02:00
Péter Garamvölgyi
b14a4024cd
fix: improve L1Message RPC encoding (#368)
correctly encode L1 messages in RPC response
2023-06-19 16:44:04 +02:00
Richord
b5e8d12c06
feat: return keccak(chainId || height) for BLOCKHASH opcode (#359)
* changed blockhash behavior

* added patch version

* Update core/vm/runtime/runtime_test.go

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>

* Update core/vm/runtime/runtime_test.go

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>

* lint fix

* changed wording

* used interpreter.hasher and padded chainId to uint64

* used interpreter.hasher and padded chainId to uint64

* undo changes

* bump version

---------

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-06-14 13:11:31 -07:00
HAOYUatHZ
f055f50f9d
feat: update l1fee calculation (#351) 2023-06-13 10:57:59 +08:00
Péter Garamvölgyi
4e0daeb300
fix(trace): change l1Fee type from uint64 to *big.Int (#360)
* fix: change l1Fee type from uint64 to *big.Int

* use hexutil.Big
2023-06-09 22:28:40 +08:00
Péter Garamvölgyi
983d630244
feat: Sync and relay L1 messages (#350)
* add l1 config in genesis config (#249)

* add l1 config in genesis config

* fix lint

* Update params/config.go

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>

---------

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>

* extend node configuration (#251)

* extend node configuration

* use block number instead of hash

* accept safe, finalized and numbers for L1Confirmations

* fix typos

---------

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* Fix/improve node config parsing (#260)

* raise error on failed parsing

* default value

* add l1-message-type, transaction methods (#252)

* add l1-message-type, transaction methods

* goimports

* Update core/types/transaction.go

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>

* txpool l1 check, pointer change, marhsal test

* draft: start implementing l1message gas behavior

* draft: start implementing l1message gas behavior

* change to gas usage

* error comment typo

Co-authored-by: Haichen Shen <shenhaichen@gmail.com>

* goimports

* update nonce, add hash test (fails), marshal test

* goimports

* target addr cant be nil

* change call msg

* comment out test

* lint

---------

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>

* Add L1 message database (#255)

* add l1-message-type, transaction methods

* goimports

* Update core/types/transaction.go

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>

* add L1 message store to rawdb

* remove comments

* rename to l1_message

* rename variables and add comments

* write l1 msgs in a batch

* add more comments

* update tests

* allow batched and non-batched writes

* rename to accessors_l1_message

* handle error

* add range check

* fix tests

* update comments

* nit

* support blocks with 0 l1 messages

---------

Co-authored-by: Max Wolff <maxcwolff@gmail.com>
Co-authored-by: Max Wolff <max@scroll.io>

* Fix L1Message Deep Copy, Complete Bridge Tx Hash test (#269)

* deep copy value field, add tx hash test

comment

* typo

* Rename nonce to queueindex, increment sender nonce on L1 message execution (#271)

* change nonce to queueindex, increment nonce on L1 message

* fix db acccessors

* Update core/types/transaction_marshalling.go

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>

---------

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>

* Fix db inspect command (#276)

fix db inspect command

* Add l1 sync service (#256)

* extend node configuration

* add l1-message-type, transaction methods

* goimports

* Update core/types/transaction.go

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>

* use block number instead of hash

* accept safe, finalized and numbers for L1Confirmations

* add L1 message store to rawdb

* remove comments

* fix typos

* add L1 message sync service

* use l1 contract address and chain ID

* use L1DeploymentBlock

* add confirmation config

* move bridge client to separate file

* use uint64 block number

* fix bigint comparison

* rename constants

* add more logs

* rename to l1_message

* rename variables and add comments

* write l1 msgs in a batch

* add more comments

* update tests

* allow batched and non-batched writes

* rename to accessors_l1_message

* handle error

* check if config is provided

* improve sync service DB batched writes

* add range check

* fix tests

* update comments

* nit

* fix flush range and improve comments

* solve circular dependency

* update stress tests

* initialize l1 client for geth

* start sync service

* add more comments

* check nil correctly

* address comments

* fix merge

* fix genesis l1config deserialization

* add sync progress logs

* initial sync

* handle leveldb not found error

* use errors.Is

* address comments

* update DefaultPollInterval

---------

Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com>
Co-authored-by: Max Wolff <maxcwolff@gmail.com>
Co-authored-by: Max Wolff <max@scroll.io>

* Add L1 message validation (#272)

* add L1 message validation

* add comments and better error handling

* handle leveldb not found error

* update incorrect condition for genesis block

* typo

* change inclusion index logic

* disable L1 message check for legacy tests

* set NumL1MessagesPerBlock to 0 in tests

* update default genesis config

* Add L1 msg validation tests (#303)

add L1 msg validation tests

* Update miner include l1 messages (#265)

* add l1-message-type, transaction methods

* goimports

* Update core/types/transaction.go

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>

* add L1 message store to rawdb

* add L1 message sync service

* remove comments

* use l1 contract address and chain ID

* extend node configuration

* use block number instead of hash

* accept safe, finalized and numbers for L1Confirmations

* fix typos

* use L1DeploymentBlock

* add confirmation config

* move bridge client to separate file

* use uint64 block number

* fix bigint comparison

* rename constants

* add more logs

* Fix/improve node config parsing (#260)

* raise error on failed parsing

* default value

* rename to l1_message

* rename variables and add comments

* write l1 msgs in a batch

* add more comments

* update tests

* allow batched and non-batched writes

* rename to accessors_l1_message

* handle error

* check if config is provided

* improve sync service DB batched writes

* include l1 messages in blocks: part 1

* add l1-message-type, transaction methods (#252)

* add l1-message-type, transaction methods

* goimports

* Update core/types/transaction.go

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>

* txpool l1 check, pointer change, marhsal test

* draft: start implementing l1message gas behavior

* draft: start implementing l1message gas behavior

* change to gas usage

* error comment typo

Co-authored-by: Haichen Shen <shenhaichen@gmail.com>

* goimports

* update nonce, add hash test (fails), marshal test

* goimports

* target addr cant be nil

* change call msg

* comment out test

* lint

---------

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>

* Add L1 message database (#255)

* add l1-message-type, transaction methods

* goimports

* Update core/types/transaction.go

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>

* add L1 message store to rawdb

* remove comments

* rename to l1_message

* rename variables and add comments

* write l1 msgs in a batch

* add more comments

* update tests

* allow batched and non-batched writes

* rename to accessors_l1_message

* handle error

* add range check

* fix tests

* update comments

* nit

* support blocks with 0 l1 messages

---------

Co-authored-by: Max Wolff <maxcwolff@gmail.com>
Co-authored-by: Max Wolff <max@scroll.io>

* build(docker): auto docker push when pushing git tags (#258)

* build(docker): update docker trigger tag prefix (#259)

* Fix L1Message Deep Copy, Complete Bridge Tx Hash test (#269)

* deep copy value field, add tx hash test

comment

* typo

* commitl1messages

* lint

* Revert "add L1 message sync service"

This reverts commit 5305e8a5de14766ed249e1a7d64042c7a72cf5c2.

* Revert "move bridge client to separate file"

This reverts commit 0b220bee37de93c3250545e23430db2c401a2f90.

* update branch

* use commitMessages for l1Txs

* little fix

* fix config

* fix test

* comment fixes

* fix

* fix config check

---------

Co-authored-by: Max Wolff <maxcwolff@gmail.com>
Co-authored-by: Max Wolff <max@scroll.io>
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>

* Add ErrUnknownAncestor tests (#305)

add ErrUnknownAncestor tests

* worker test include l1 msgs (#306)

* worker test include l1 msgs

* move L1 message index update next to block insertion

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* exclude l1 messages from transaction count limit in block (#307)

* exclude l1 messages from transaction count limit in block

* fix comments

* trigger ci

* nit

---------

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>

* Expose queueIndex on Transaction (#316)

expose queueIndex on Transaction

* test that l1msg doesn't count in maxTxPerBlock limit (#312)

* test that l1msg doesn't count in maxTxPerBlock limit

* fix, comment

* retrigger ci

* change order inside test

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>

* reuse trace nonce field for queueIndex

* expose scroll APIs on the geth console

* add L1 message query APIs

* Trigger new block on new l1 messages (#343)

* trigger new block on new l1 messages

* typo

* initialize l1MsgCh

* fix worker l1msg tests (#345)

---------

Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com>

* test(worker): ensure that l1 messages are included in the correct order (#346)

test that l1msgs added in correct order

* rename enqueueIndex --> queueIndex

* move QueueIndex into transaction

* improve l1 db interface

* formatting

* bump version

* print l1config

* add API to query latest included message queue index

* clean up tx limit logic

* add clarifying comments and todos to ValidateL1Messages

* improve db comments and logs

* clean up L1MessageTx type handling

* format

* format

* improve L1 message block check

* fix missing L1 event handling

* fix TestL1MessageValidationFailure

* simplify sync height resume logic

* make l1Config.l1MessageQueueAddress non-pointer

* improve command line flags

* remove todo

* use abigen tools for log filtering

* cache block L1 message count

* nit: fix variable name case

* improve logs

* flush pending writes to DB before shutdown

---------

Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com>
Co-authored-by: Max Wolff <max@scroll.io>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
Co-authored-by: Max Wolff <maxcwolff@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2023-06-07 07:24:19 -07:00
Ho
4867699afa
fix(tracing): fix ZktrieTracer race condition (#356)
* fix race condition of zktrie tracer

* Update version.go

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-06-07 09:16:45 +08:00
Richord
1f167bd730
fix(ethclient): support WithdrawalsHash in Scroll Go SDK (#354)
* added withdrawalsHash to header

* bump version

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-06-05 09:52:46 -07:00
Ho
9b943f3e0b
fix: add missing term when merging two deletion proofs (#353)
* fix: merge emptyTermPaths

* bump version

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-06-01 11:00:37 +02:00
Richord
ad43d0ea3f
feat(block_validator): check payload size during block validation (#322)
* added block size check in validate body

* added payload method to block

* Update core/types/block.go

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>

* fixed test

* fix

* bump version

* fix test

---------

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-05-24 15:23:57 +02:00
Péter Garamvölgyi
31b754e14b
Fix transaction DA cost under-estimation (#332)
* fix tx DA cost under-estimation

* bump version

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-05-24 14:22:54 +02:00
Péter Garamvölgyi
060815e901
feat: delay Archimedes on Alpha by a week (#342)
* delay Archimedes on Alpha by a week

* bump version

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-05-24 14:10:42 +02:00
Péter Garamvölgyi
334892ae07
Return error for disabled precompile calls (#337)
return error for disabled precompile calls
2023-05-24 11:41:33 +02:00
Richord
2f7085715b
refactor(config): moved fee vault addr to rollup config (#341)
* moved fee vault addr to rollup config

* fixed linter issue

* added back FeeVaultAddress

---------

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
2023-05-22 22:37:27 +08:00
maskpp
a89ab83089
fix(API): use hexutil.Big for l1Fee in GetTransactionReceipt (#336)
* It's not a bug, but if just translate to hexutil.Big can be better.

* Revert editor's auto change.

* Update version.

* Update version.
2023-05-22 16:52:13 +08:00
Ho
149419cf09
fix(trace): deletion proof missed path terminated by empty node (#330)
* fix deletion proof issue on empty node

* refine for better implement and fix unittest

* Update version.go

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-05-22 15:24:49 +08:00
Nazarii Denha
1094569b5b
feat: enable eip and update check (#335)
* enable eip and update check

* Update version.go

---------

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-05-19 21:41:58 +08:00
Ho
910d4f1a70
feat(trace): add storage proof about l1fee (baseFee, overhead, scalar) and withdraw root into trace (#314)
* add proof for predeployed storages

* reverse inneeded code

* update for mainbranch merging

* add coinbase storage as trace

* comment for clarify

* Update version.go

---------

Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-05-18 21:49:09 +08:00
Péter Garamvölgyi
b8d22a104d
Add Archimedes hard fork block number for Scroll Alpha (#331)
* add Archimedes hard fork block number for Scroll Alpha

* bump version
2023-05-18 12:38:53 +02:00
Nazarii Denha
c5da652c29
core/vm: implement EIP-3860: Limit and meter initcode (#23847) (#318)
* core/vm: implement EIP-3860: Limit and meter initcode (#23847)

Implementation of https://eips.ethereum.org/EIPS/eip-3860, limit and meter initcode. This PR enables EIP-3860 as part of the Shanghai fork.

Co-authored-by: lightclient@protonmail.com <lightclient@protonmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>

* add ishanghai

* fix test

* fix

---------

Co-authored-by: Andrei Maiboroda <andrei@ethereum.org>
Co-authored-by: lightclient@protonmail.com <lightclient@protonmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-05-18 12:11:53 +02:00
Nazarii Denha
b1e5eea84d
add isShanghai rule based on block number (#319)
* add isShanghai rule based on block number

* fix lint

* nit

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-05-10 15:09:55 +02:00
Max Wolff
b0b0bf1133
Archimedes hard fork: Disable sha2, ripemd, blake2f precompiles (#280)
* add placeholder block

* add test, more changes

* revert aleth changes

* typo

* typo

* precompile switch

* change precomiles

* rename placeholder to archimedes

* fix comment

* ScrollAlphaChainConfig

* add nil for archimedes block for now

* fix test typo
2023-05-09 09:04:46 -07:00
Péter Garamvölgyi
27a3830afa
Improve oversized block handling (#315)
* improve oversized block handling

* bump version
2023-05-08 18:58:58 +02:00
Ho
c913b3e2f1
fix(zktrie): fix deletion proofs and collect them in commiting phase (#263)
* new deletion proof

* complete tracer and test

* extend proof for parallel tracing

* integrating into blocktrace

* lint

* deduplication of deletion proofs

* fix an issue on marking deletion

* fixs since last review

* Update version.go

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Ubuntu <ubuntu@ip-10-2-9-63.us-west-2.compute.internal>
2023-05-08 15:40:54 +08:00
Péter Garamvölgyi
1263e6349d
Bump version (#310)
bump version to 3.1.10
2023-05-03 17:55:34 +02:00
Péter Garamvölgyi
5017dcb92a
Add block payload size limit (#309)
add block payload size limit
2023-05-03 17:45:17 +02:00
Ho
ba4feee9ff
feat(zktrie): upgrade zktrie to 0.5.3 (#278)
* upgrade zktrie to 0.5.3

* Update version.go

---------

Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-04-24 21:32:50 +08:00
HAOYUatHZ
61d15e9d56
feat: print ScrollConfig when starting node (#291)
* feat: print ScrollConfig when starting node

* Update version.go
2023-04-24 20:49:50 +08:00