Commit graph

13537 commits

Author SHA1 Message Date
Jonas Theis
974cfcd726
feat(L1 follower): add commitAndFinalizeBatch method (#1140)
* add commitAndFinalizeBatch method to L1Reader to support enforced batches in L1 follower and rollup verifier

* chore: auto version bump [bot]

* update ABI

---------

Co-authored-by: jonastheis <jonastheis@users.noreply.github.com>
2025-03-12 13:34:56 +08:00
Péter Garamvölgyi
61cfff3bc5
fix: print genesisStateRoot on startup (#1136) 2025-03-06 13:08:59 +01:00
Péter Garamvölgyi
478940e796
feat: Euclid release on Scroll Sepolia (#1122)
* feat: Euclid release on Scroll Sepolia (wip)

* update system contract consensus params

* update timestamp

* improve logs

* fix

* adjust logs

* undo some changes
2025-03-05 16:10:38 +01:00
Jonas Theis
e62c6f08e2
fix: add ABI with removed functions from contract (#1135)
* add ABI with removed functions from contract

* chore: auto version bump [bot]

---------

Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Co-authored-by: Thegaram <Thegaram@users.noreply.github.com>
2025-03-05 11:26:41 +01:00
Jonas Theis
6954c73459
fix(sync service): skip messages with lower index (#1134)
* skip messages with lower index

* address review comments

* chore: auto version bump [bot]

---------

Co-authored-by: Thegaram <Thegaram@users.noreply.github.com>
2025-03-05 11:00:31 +01:00
Péter Garamvölgyi
3c454e7101
fix: correctly select consensus engine during EuclidV2 transition (#1130)
* fix: correctly select consensus engine during EuclidV2 transition

* correctly backdate transition blocks

* nit

* correctly unset fields

* nit
2025-03-04 12:25:38 +01:00
Péter Garamvölgyi
4797ee9565
ci: update Rust version for build-geth workflow (#1131) 2025-03-04 08:55:02 +01:00
Péter Garamvölgyi
748fb82899
fix: accept header at most 100ms earlier than timestamp (#1129)
* fix: address timing issue in system config worker

* make code easier to understand

* add 100ms header verification grace period to Clique
2025-03-03 16:31:57 +01:00
Jonas Theis
40ebbd6491
feat(L1 follower): adjust to recent CodecV7 and contract changes (#1120)
* 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

* port changes from #1073

* chore: auto version bump [bot]

* address review comments

* add more logs

* disable ENRUpdater if DA sync mode is enabled

* exit pipeline if context is cancelled

* correctly handle override by setting the head of the chain to the parent's height so that created blocks will always become part of canonical chain

* fix error with genesis event being nil

* chore: auto version bump [bot]

* chore: auto version bump [bot]

* adjust to renaming in CodecV7

* implement carrying forward of L1 MessageQueue index

* fix issue after upgrading from old storage to new format where batchIndex was 0 and all batches would be skipped

* add new RevertBatch event

* add commitBatches to be able to read calldata of CodecV7/EuclidV2 committed batches

* implement finding of L1 message queue height for initial batch in recovery mode

* add sanity checks for computed batches from events and batch hashes given via calldata from commit transaction

* update ScrollChain ABI

* chore: auto version bump [bot]

* remove initial batch form DAQueue

* go mod tidy

* fix underflow bug when l1DeploymentBlock==0

* fix bug with wrong parentBatchHash of first batch of batches submitted in a single tx

* update to latest da-codec

* address review comments

* address review comments

* fix bug when l1MessageV2StartIndex==0 serialized to [] (empty slice) which would always be decoded to non-existing instead of 0

* chore: auto version bump [bot]

* cache go dependencies in Dockerfile.mockccc

* chore: auto version bump [bot]

* add INFO log when reverting rollup events in L1 follower mode

* change LastProcessedMessageQueueIndex of finalize event to  totalL1MessagesPoppedOverall

* cleanup

* 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: jonastheis <jonastheis@users.noreply.github.com>
2025-03-03 13:14:32 +01:00
Péter Garamvölgyi
87e196052a
fix(system-contract): Check coinbase during header verification (#1128) 2025-03-03 10:06:50 +01:00
Péter Garamvölgyi
1ceb1ba496
fix(system-contract): Ensure header.coinbase is not set (#1127) 2025-03-03 09:53:19 +01:00
Péter Garamvölgyi
1dedddbffb
feat: address system contract consensus issues and comments (#1126)
* feat: address system contract consensus issues and comments

* fix Euclid header chain verification
2025-03-02 21:01:28 +01:00
Morty
365b82953d
feat: add system config consensus to deprecate clique (#1102)
* feat: add system config consensus to deprecate poa

* fix: check extra field lens

* Finish implementation with one signer only

* Implement unit tests

* Only check signature if block not requested

* Remove Extra from rlp encoding (and hashing)

* Implement UpgradableEngine as middleware for Clique/SystemContract

* Use isEuclid, add json tag to Requested, make go idiomatic

* Changes post integration test

* Remove comment

* Address comments

* Merge

* New field BlockSignature (not used in hashing/JSON)

* Enforce .Extra to be an empty slice

* replace header.Requested for header.IsNewBlock

* mark new block as IsNewBlock

* Make new RLP optional fields always default for legacy/reth compatibility

* Placing new fields as last non-zero rlp:optional values used by Scroll

* Penalize nodes that send non-zero Euclid V2 header field values

* Bring back .Requested to downloader instead of .IsNewBlock

* Replace IsNewBlock for Requested

* Address comments

* merge

* prevent timing issues in tests

* fix ci

* chore: auto version bump [bot]

* Update consensus/system_contract/consensus.go

Co-authored-by: Morty <70688412+yiweichi@users.noreply.github.com>

* chore: auto version bump [bot]

* Update consensus/system_contract/consensus.go

Co-authored-by: Jonas Theis <4181434+jonastheis@users.noreply.github.com>

* Remove whitespaces and merge version number

* chore: auto version bump [bot]

* validate that the read address from L1 is not empty and improved error handling when fetching address

* Fix indentation issue

* Fix test

* goimports fix

* goimports

---------

Co-authored-by: Alejandro Ranchal-Pedrosa <a.ranchalpedrosa@gmail.com>
Co-authored-by: jonastheis <4181434+jonastheis@users.noreply.github.com>
Co-authored-by: jonastheis <jonastheis@users.noreply.github.com>
Co-authored-by: ranchalp <ranchalp@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2025-02-28 15:53:32 +01:00
colin
bcfdb48dd9
fix(rollup-fee): support set code tx in asUnsignedTx (#1123)
* fix asUnsignedTx

* fix goimport

* prevent panic
2025-02-25 16:26:58 +01:00
Jonas Theis
3d3032c0e1
feat(permissionless batches): block production without signature (#1117)
* 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

* port changes from #1073

* chore: auto version bump [bot]

* address review comments

* add more logs

* disable ENRUpdater if DA sync mode is enabled

* exit pipeline if context is cancelled

* correctly handle override by setting the head of the chain to the parent's height so that created blocks will always become part of canonical chain

* fix error with genesis event being nil

* rebase #1087 to new base branch

* 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: jonastheis <jonastheis@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2025-02-25 15:38:48 +01:00
Jonas Theis
65a0d4e87d
feat(permissionless batches): recovery mode after permissionless batches (#1115)
* 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

* port changes from #1073

* chore: auto version bump [bot]

* address review comments

* add more logs

* disable ENRUpdater if DA sync mode is enabled

* exit pipeline if context is cancelled

* correctly handle override by setting the head of the chain to the parent's height so that created blocks will always become part of canonical chain

* fix error with genesis event being nil

* chore: auto version bump [bot]

* chore: auto version bump [bot]

* goimports

---------

Co-authored-by: Ömer Faruk Irmak <omerfirmak@gmail.com>
Co-authored-by: Thegaram <Thegaram@users.noreply.github.com>
Co-authored-by: jonastheis <jonastheis@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2025-02-25 15:25:05 +01:00
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