Commit graph

13521 commits

Author SHA1 Message Date
colin
60cbf64f9c
feat: add EIP-7702 (#1112)
* feat: add EIP-7702

* fix goimport

* add unit tests

* add api test

* sync txpool update

* update generated code

* make code readable

* fix goimport

* fix TestAsyncChecker unit test

* add AuthorizationList in fuzz tests for completeness sake

* add EuclidV2 test, EIP-7702 transaction in TestT8n

* clean up logs

* bump version

* fix TestAsyncChecker

* Revert "fix TestAsyncChecker"

This reverts commit 314478303d4a504a3948bd6595568916ba7d82f0.

* accept eip-7702 txns only after enabling eip-7702

* revert IntrinsicGas param name from setCodeAuthorizations to authList

* fix a bug

* align upstream implementation in Encoding Receipts

* fix one test case

* fix tracer

* return precode copy

* support setcode tx in EstimateGas and add unit tests

* add TestValidateAuthorizations

* poseidon hash fix

* migrate a fix before the fix pr is merged

* support setcode type transactions in TransactionData

* chore: auto version bump [bot]

* add a nonce-gapped-auth-does-not-block-pending-tx unit test

* make the auth invalid

* Apply suggestions from code review

* change usedAndLeftSlots and knownConflicts to util functions

* add comments about different return of applyAuthorization

* remove gencodec:required in transaction signatures

* fix goimport

* update StructLogger and AccessListTracer

* fix a bug

* fix flaky test

---------

Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2025-02-25 14:56:51 +01:00
Ömer Faruk Irmak
684383275b
fix: post-euclid block tracing (#1119)
* fix: post euclid debugs tracers

* fix: disallow tracing post-euclid blocks with scroll specific RPC methods

* fix panic when tracing pre-euclid blocks on mpt nodes

* fix: scroll tracing on mpt nodes

* chore: auto version bump [bot]

---------

Co-authored-by: omerfirmak <omerfirmak@users.noreply.github.com>
2025-02-21 15:07:18 +01:00
Jonas Theis
b4f36b2489
feat(MessageQueueV2): add reading of MessageQueueV2 and transition logic from V1 to V2 for EuclidV2 (#1108)
* port changes from #1013

* port changes from #1068

* go.mod tidy

* fix compile error

* fix goimports

* fix log

* address review comments

* upgrade golang.org/x/net to 0.23.0

* port changes from #1018

* fix tests and linter errors

* address review comments

* refactor rollup sync service / verifier to use CalldataBlobSource to retrieve data from L1

* add configuration and initialize blob clients

* fix unit tests

* remove unused code

* address review comments

* address more review comments

* implement first version of new da-codec and to handle multiple batches submitted in one transaction

* add CommitBatchDAV7 and handle multiple commit events submitted in a single transactions

* fix bug due to previous batch being empty when processing the first batch within a set of batches

* Allow using MPT

* implement reading of QueueTransaction from  L1MessageQueueV1 and V2

* implement access to V1 and V2 messages and replace usage so that V1 is used before EuclidV2 fork and V2 afterward

* add tests

* update to latest da-codec

* add field to CommittedBatchMeta to store LastL1MessageQueueHash for CodecV7 batches

* adjust rollup verifier to support CodecV7 batches

* address review comments

* consume all L1 messages before EuclidV2 fork

* address review comments

* address review comments

* fix issues after merge

* go mod tidy

* fix unit tests

* update da-codec

* add test TestValidateBatchCodecV7

* go mod tidy

* do not log error on shutdown

* add flag to explicitly disable L1MessageQueueV2

* add TestEuclidV2HardForkMessageQueue to scroll worker

* add sanity check for version to deserialization of committedBatchMetaV7

* add mechanism for nodes to retrieve V2 messages even if they upgrade after L1MessageQueueV2 is deployed

* chore: auto version bump [bot]

* address review comments

* Update core/rawdb/accessors_l1_message.go

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

* address review comments

---------

Co-authored-by: Ömer Faruk Irmak <omerfirmak@gmail.com>
Co-authored-by: Thegaram <Thegaram@users.noreply.github.com>
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2025-02-14 12:57:07 +01:00
Péter Garamvölgyi
b8c5c7492e
fix: print Euclid genesis config on startup (#1118) 2025-02-14 12:48:59 +01:00
Jonas Theis
7de11edcd9
feat(L1 follower and rollup verifier): support CodecV7 in L1 follower mode and rollup verifier (#1105)
* port changes from #1013

* port changes from #1068

* go.mod tidy

* fix compile error

* fix goimports

* fix log

* address review comments

* upgrade golang.org/x/net to 0.23.0

* port changes from #1018

* fix tests and linter errors

* address review comments

* refactor rollup sync service / verifier to use CalldataBlobSource to retrieve data from L1

* add configuration and initialize blob clients

* fix unit tests

* remove unused code

* address review comments

* address more review comments

* implement first version of new da-codec and to handle multiple batches submitted in one transaction

* add CommitBatchDAV7 and handle multiple commit events submitted in a single transactions

* fix bug due to previous batch being empty when processing the first batch within a set of batches

* Allow using MPT

* update to latest da-codec

* add field to CommittedBatchMeta to store LastL1MessageQueueHash for CodecV7 batches

* adjust rollup verifier to support CodecV7 batches

* address review comments

* fix issues after merge

* go mod tidy

* fix unit tests

* update da-codec

* add test TestValidateBatchCodecV7

* go mod tidy

* do not log error on shutdown

* add sanity check for version to deserialization of committedBatchMetaV7

* chore: auto version bump [bot]

* address review comments

* chore: auto version bump [bot]

---------

Co-authored-by: Ömer Faruk Irmak <omerfirmak@gmail.com>
Co-authored-by: Thegaram <Thegaram@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2025-02-13 10:28:21 +01:00
Ömer Faruk Irmak
127845d3d0
fix: avoid using snapshots when generating witness (#1116) 2025-02-13 09:56:07 +03:00
Jonas Theis
b56dd9f31b
refactor(rollup sync service): use CalldataBlobSource to retrieve data from L1 (#1103)
* port changes from #1013

* port changes from #1068

* go.mod tidy

* fix compile error

* fix goimports

* fix log

* address review comments

* upgrade golang.org/x/net to 0.23.0

* port changes from #1018

* fix tests and linter errors

* address review comments

* refactor rollup sync service / verifier to use CalldataBlobSource to retrieve data from L1

* add configuration and initialize blob clients

* fix unit tests

* remove unused code

* address review comments

* address more review comments

* Allow using MPT

* fix issues after merge

* bump version

---------

Co-authored-by: Ömer Faruk Irmak <omerfirmak@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2025-02-07 11:43:27 +01:00
colin
ea43834c19
feat: enable p256Verify in EuclidV2 (#1111)
* enable p256Verify in euclid v2

* try enabling all test cases under ./core

* add secp256r1 precompile test in CI

* remove unused export

* Update params/config.go

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

* add EuclidV2Time in ChainConfig

* fix a typo

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2025-02-06 16:37:28 +08:00
Ömer Faruk Irmak
4bdf6d096c
feat: Add support for L1 MPT (#1104)
* Allow using MPT

* Load leaves and compare in-memory

* Update api.go

* remove checker

* chore: auto version bump [bot]

---------

Co-authored-by: omerfirmak <omerfirmak@users.noreply.github.com>
2025-02-05 14:57:40 +01:00
Jonas Theis
8ecaeec8b8
feat(l1 follower): add periodic logs for L1 follower mode sync progress (#1110)
* add periodic logs for L1 follower mode sync progress

* print full hex string

* bump version

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2025-02-04 14:02:17 +01:00
Péter Garamvölgyi
d2f19ff58e
feat: txpool pending limit (#1107)
* feat: txpool pending limit

* fix eviction

* fix lifetime eviction tests

* update metric

* add unit test

* simplify test

* fix pool.beats handling

* bump version
2025-01-29 21:41:58 +01:00
Péter Garamvölgyi
447fed2573
feat: include L1 message with insufficient balance (#462)
* feat: include L1 message with insufficient balance

* fix tests

* add comment

* bump version
2025-01-22 12:42:05 +01:00
Jonas Theis
e5dfc7535a
feat: L1Reader (#1099)
* port changes from #1013

* port changes from #1068

* go.mod tidy

* fix compile error

* fix goimports

* fix log

* address review comments

* upgrade golang.org/x/net to 0.23.0

* port changes from #1018

* fix tests and linter errors

* address review comments
2025-01-21 09:30:19 +08:00
Jonas Theis
ac8164f5a4
feat: follower node sync from DA (#1098)
* port changes from #1013

* port changes from #1068

* go.mod tidy

* fix compile error

* fix goimports

* fix log

* address review comments

* upgrade golang.org/x/net to 0.23.0

* bump version

* remove unused flag

* update da-codec commit

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2024-12-18 17:27:51 +01:00
colin
bdf64cfb39
fix(GPO): make default gas tip configurable (#1096)
* fix(GPO): increase min suggested tip to 100 wei

* chore: auto version bump [bot]

* make DefaultGasTip configurable

* revert a comment change

* fix unit tests

* rename GasTip to GasTipCap, more consistent with geth naming conventions

* yet another comment tweak

* tweak

* address comments

* another

* make defaultGasTipCap.Int64 >0

---------

Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
2024-12-10 18:43:12 +08:00
colin
a5ecce2dc3
fix(async-ccc): print whole block hash and tx hash when failure (#1097)
* fix-async-ccc-print-whole-block-hash-and-tx-hash

* chore: auto version bump [bot]

* chore: auto version bump [bot]

---------

Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
2024-12-06 17:06:35 +08:00
georgehao
17ac3e67a9
feat(txpool): add logs to track txns (#1046)
* add log for txpool tx track

* chore: auto version bump [bot]

* Update core/tx_pool.go

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

* Update core/tx_pool.go

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

* chore: auto version bump [bot]

* address comment

* update level

* update

* tweak logs and print whole tx hashes

* fix a bug

* tweaks

* fix a nil pointer bug

---------

Co-authored-by: georgehao <georgehao@users.noreply.github.com>
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
Co-authored-by: colinlyguo <colinlyguo@scroll.io>
2024-12-06 16:39:19 +08:00
colin
d2fe42ba8f
internal/ethapi: eth_call block parameter is optional (#28165) (#1095)
* internal/ethapi: eth_call block parameter is optional (#28165)

So apparently in the spec the base block parameter of eth_call is optional.
I agree that "latest" is a sane default for this that most people would use.

* chore: auto version bump [bot]

---------

Co-authored-by: Sina Mahmoodi <1591639+s1na@users.noreply.github.com>
Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
2024-12-03 14:32:37 +08:00
Morty
9fff27e4f3
fix(api): change gas_price to use pending block (#1082)
* fix(api): change gas_price to use pending block
2024-10-29 16:07:33 +08:00
sbaizet
c88cc480b0
add debugging tool to l2geth images (#1066) 2024-10-14 16:45:58 +02:00
Ömer Faruk Irmak
aa3af46a37
fix: TestValidateTxBlockSize (#1067) 2024-10-11 17:05:08 +03:00
Ömer Faruk Irmak
f00dc06628
fix: account for tx subcircuit confidence factor (#1065) 2024-10-11 09:19:04 +03:00
Péter Garamvölgyi
2ed7456a4b
feat: update L2 base fee formula (#1053)
* feat: update L2 base fee formula

* update 1559 unit test

* use current block's base fee in txpool

* fix unit test

* Revert "use current block's base fee in txpool"

This reverts commit 8a7d7ff87d6a9fb5124d72767c9ca24302673752.
2024-10-01 13:20:20 -07:00
colin
cf1ca84e0e
feat: allow changing L1 synced height via admin RPC/CLI (#1044)
* feat: allow changing L1 synced height via RPC/CLI

* chore: auto version bump [bot]

* fix typos

* add height validity check

* change implementation

* moved hotfix apis from ScrollAPI to PrivateAdminAPI

* change namespace from scroll to admin

* fix bugs

* add locks

* add a lock to protect latestProcessedBlock and db state

* revert some changes

* remove lock and use atomic in latestProcessedBlock

* fix CI

* tweak

* use cas in updating latestProcessedBlock

* renaming

* also update sync height in error paths

* fix a bug

* use mutex lock

---------

Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
2024-09-25 03:18:37 +08:00
Ömer Faruk Irmak
7ff93ca224
fix: initialize pending block with an empty block (#1052) 2024-09-20 17:19:50 +03:00
Ömer Faruk Irmak
c0094ee0b4
fix: avoid committing empty blocks after the deadline (#1051) 2024-09-20 14:59:23 +03:00
Ömer Faruk Irmak
d599666894
fix: make reorg mode explicit (#1049) 2024-09-20 10:19:05 +03:00
colin
f044582cf9
fix: remove a duplicated cmd in Dockerfile.mockccc (#1048)
* fix: remove a duplicated cmd in Dockerfile.mockccc

* increase version
2024-09-20 14:59:44 +08:00
colin
86965f8a48
feat(tx-pool): fast reject transactions that cannot fit into a block (#1042)
* feat(tx pool): fast reject transactions that cannot fit into a block

* add a TestValidateTxBlockSize unit test

* chore: auto version bump [bot]

---------

Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
2024-09-17 23:43:54 +08:00
Ömer Faruk Irmak
89639dd74a
feat: allow triggering one-off CCC on a block (#1043)
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2024-09-17 18:18:23 +03:00
colin
1d02d04b5d
feat(scroll-worker): add nil consumption block metrics (#1033)
* feat(scroll-worker): add nil consumption block metrics

* increase the version
2024-09-17 22:03:15 +08:00
Ömer Faruk Irmak
521a074f60
feat: allow removing txns from pool via CLI/RPC (#1041) 2024-09-16 13:56:11 +03:00
Ömer Faruk Irmak
7f79c7f21f
refactor: eliminate double re-execution in AsyncChecker (#1036) 2024-09-16 11:04:25 +03:00
Ömer Faruk Irmak
6cdcff6275
fix: reuse timestamp for blocks failing CCC (#1031)
we assume that same height wont trigger multiple reorgs to be able
to put an upper bound on the reorg depth. We rely on the fact that
AsyncChecker executes transactions one-by-one and tells worker the
safe set of transactions to include in the replacement block that
wont trigger another error on the same block. If worker changes the
timestamp and that causes significant changes to the execution flow
of included transactions; we might have a height where multiple
reorgs happen.
2024-09-10 14:59:42 +03:00
Ömer Faruk Irmak
51082b29c5
fix: properly handle wrapped retryable errors (#1030)
* fix: properly handle wrapped retryable errors

* chore: auto version bump [bot]

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Co-authored-by: Thegaram <Thegaram@users.noreply.github.com>
2024-09-09 18:37:32 +02:00
Ömer Faruk Irmak
e426d4bffa
fix: ignore RC check if force committing (#1029)
* fix: ignore RC check if force committing

* rename force to reorging

* use prev goimports version
2024-09-09 18:31:22 +02:00
Ömer Faruk Irmak
590e104111
fix: increase keccak usage safety buffer (#1028) 2024-09-09 18:48:12 +03:00
Zhang Zhuo
665f6c3413
feat(rpc): add getTxByTxTrace api, used for ccc testing & debugging (#1026)
* ++

* upgrade go lint version

* lint

* remove a useless "`"

* Update l2geth_ci.yml

---------

Co-authored-by: Ömer Faruk Irmak <omerfirmak@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
2024-09-06 23:22:47 +08:00
Ömer Faruk Irmak
a4b738f815
fix: skip ccc.ErrUnknown txns immediately (#1027) 2024-09-06 16:12:53 +03:00
Ömer Faruk Irmak
bf5cca7c29
fix: nil-check curRc (#1024)
* fix: nil-check curRc

* chore: auto version bump [bot]

---------

Co-authored-by: omerfirmak <omerfirmak@users.noreply.github.com>
2024-09-05 15:15:24 -07:00
Ömer Faruk Irmak
bdb1ffb97a
feat: add miner idle metric (#1023) 2024-09-05 17:50:04 +03:00
Ömer Faruk Irmak
e0203bf9b7
feat: double check ancestor RowConsumption before committing (#1022) 2024-09-05 16:54:12 +03:00
Ömer Faruk Irmak
0573f6e440
fix: disable headCCCCheck for follower nodes (#1021) 2024-09-05 13:38:45 +03:00
HAOYUatHZ
8f8ef30931
feat(txpool): add more logs to runReorg (#1019)
* feat(txpool): add more logs to `runReorg`

* chore: auto version bump [bot]

* improve

* chore: auto version bump [bot]

---------

Co-authored-by: HAOYUatHZ <HAOYUatHZ@users.noreply.github.com>
2024-09-05 09:31:49 +10:00
Ömer Faruk Irmak
e9259b783f
feat: implement and integrate counter-based CCC (#982)
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
Co-authored-by: Zhang Zhuo <mycinbrin@gmail.com>
Co-authored-by: Xi Lin <zimpha@gmail.com>
2024-09-04 13:33:51 +03:00
HAOYUatHZ
2865e13e5b
fix(metrics): fix tx broadcast investigation metrics again (#1012)
* update eth/protocols/eth/broadcast.go

* chore: auto version bump [bot]

* update eth/protocols/eth/handlers.go

---------

Co-authored-by: HAOYUatHZ <HAOYUatHZ@users.noreply.github.com>
2024-08-28 20:17:49 +10:00
HAOYUatHZ
89e9a21577
fix(metrics): fix tx broadcast investigation metrics (#1010)
* update eth/protocols/eth/broadcast.go

* update eth/protocols/eth/handlers.go

* chore: auto version bump [bot]

---------

Co-authored-by: HAOYUatHZ <HAOYUatHZ@users.noreply.github.com>
2024-08-28 15:11:35 +10:00
HAOYUatHZ
118a80b734
feat: add more metrics to investigate tx broadcast issue (#1007)
* update eth/fetcher/tx_fetcher.go

* update eth/handler.go

* update eth/handler.go

* update eth/protocols/eth/peer.go

* update eth/protocols/eth/broadcast.go

* update eth/protocols/eth/handlers.go

* chore: auto version bump [bot]

* fix

---------

Co-authored-by: HAOYUatHZ <HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2024-08-27 23:03:26 +02:00
HAOYUatHZ
77a565943f
feat: add more logs to investigate tx broadcast issue (#1005)
* 1. broadcast + announce

* 2. broadcast

* 3. broadcast

* 5. announce

* 6. announce

* 7. announce

* 8. announce

* 9. announce

* 10. announce

* minor

* chore: auto version bump [bot]

---------

Co-authored-by: HAOYUatHZ <HAOYUatHZ@users.noreply.github.com>
2024-08-27 14:06:13 +02:00
colin
c252ee1ee0
feat(tx-pool): fast reject known skipped txs (#1004)
* feat(tx-pool): fast reject known skipped txs (#1001)

* feat(tx-pool): fast reject known skipped txs

* fix make lint

* add miner flag to tx pool

* bump version
2024-08-26 22:48:44 +08:00