Skip to content
This repository has been archived by the owner on Feb 17, 2025. It is now read-only.

Fix/3200 l1inforoot error on reorg #3201

Merged
merged 4 commits into from
Feb 5, 2024

Conversation

joanestebanr
Copy link
Contributor

@joanestebanr joanestebanr commented Feb 5, 2024

Closes #3200
Cherry-picked to develop #3207

What does this PR do?

  • Build L1InfoTree cache when needed
  • Discard cache when reorg

Reviewers

Main reviewers:

@joanestebanr joanestebanr added this to the v0.5.5 milestone Feb 5, 2024
@joanestebanr joanestebanr self-assigned this Feb 5, 2024
@cla-bot cla-bot bot added the cla-signed label Feb 5, 2024
@joanestebanr joanestebanr changed the base branch from develop to release/v0.5.5 February 5, 2024 12:09
@joanestebanr joanestebanr merged commit 112bdd0 into release/v0.5.5 Feb 5, 2024
16 checks passed
@joanestebanr joanestebanr deleted the fix/3200-l1inforoot_error_on_reorg branch February 5, 2024 17:12
joanestebanr added a commit that referenced this pull request Feb 5, 2024
* L1InfooTree cache is calculated when needed and is discard when a reorg happens
joanestebanr added a commit that referenced this pull request Feb 6, 2024
* Fix/3200 l1inforoot error on reorg (#3201)
* L1InfooTree cache is calculated when needed and is discard when a reorg happens
@joanestebanr joanestebanr added the cherry-picked Content has been cherry-picked into a higher version branch label Feb 6, 2024
rachit77 added a commit to 0xPolygon/cdk-validium-node that referenced this pull request Feb 8, 2024
* fix migration batch wip field. fix sequence when no wip batch (0xPolygonHermez#3126)

* fix Leaves smtproof (0xPolygonHermez#3127)

* fix Leaves smtproof

* pointer protection

* fix unit test

* Add l2block log dump when storing error. Refactor ProcessBatchV2 logs (0xPolygonHermez#3129)

* add l2block log dump when storing error. refactor ProcessBatchV2 logs

* add AddL2Block log

* fix index AddL2Block log

* use aux variable to avoid reusing poiner

---------

Co-authored-by: Toni Ramírez <toni@polygon.technology>

* fix panic etherman (0xPolygonHermez#3133)

* Fix GetL2Hash function. Use tx L2 hash returned by the executor when storing L2Block. Logs changes (0xPolygonHermez#3134)

* fix l2 hash when to is nill

* get l2 hash from executor

* fix use tx L2 hash returned by the executor when storing L2Block. Logs changes

* fix linter

* add L2block tracking number to process tx logs

* fix ProcessBatchV2 log format

* fix UTs. set useMainExecGenerated to true

* set prover image to v4.0.0-RC30

* test setting useMainExecGenerated = false

* fix independent_test

* fix non-e2e tests

---------

Co-authored-by: Toni Ramírez <toni@polygon.technology>

* remove l2 tx hash computation and use data stored in the state returned by the executor (0xPolygonHermez#3139)

* etrog: fix permissionless errors (0xPolygonHermez#3140)

* if got an error getting lastBlock produce a SIGSEGV

* reduce info logs

* fix unittest

* Fix missing batch bookmark (0xPolygonHermez#3122)

* fix missingBookMark

* fix missingBookMark

* fixes

* fix

* fix

* fix seq-sender config

* fixes

* doc

* fix wipL2Block deltaTimestamp (0xPolygonHermez#3142)

* improve open new wipL2Block logs

* fix wipL2Block deltaTimestamp

* ensure tx order in stream (0xPolygonHermez#3144)

* fix wipL2Block stateRoot (0xPolygonHermez#3145)

* fix panic NewStackTrie (0xPolygonHermez#3146)

* fix sync initalization for etrog (0xPolygonHermez#3147)

* fix wipL2block imStateRoot (0xPolygonHermez#3148)

* fix tracer to work by block stateroot instead of by tx (0xPolygonHermez#3150)

* update prover image (0xPolygonHermez#3151)

* if a trusted batch is empty and WIP just create the entry in state.batch (0xPolygonHermez#3152)

* fix trace for tx index greater than 0 (0xPolygonHermez#3153)

* add cardona.zip (0xPolygonHermez#3154)

* Fix default value when creating transaction.used_sha256_hashes field in the pool (0xPolygonHermez#3156)

* set DEFAULT 0 when creatingtransaction.used_sha256_hashes field in the pool

* update prover image to v4.0.0

* add cardona testnet (0xPolygonHermez#2909) (0xPolygonHermez#3155)

* add cardona testnet (0xPolygonHermez#2909)
* update config
* update cardona genesis

---------

Co-authored-by: Thiago Coimbra Lemos <tclemos@users.noreply.github.com>

* new fields in stream (0xPolygonHermez#3149)

* new fields in stream

* update test

* remove unused constant

* add UpgradeEtrogBatchNumber handling to stream

* doc

* add log to test

* add log to test

* add protection

* add check

* fix

* fix

* set stateManagerPurge to false in Cardona (0xPolygonHermez#3158)

* synchronizer: fix case emtpy batch and unittest (0xPolygonHermez#3159)

* fix case emtpy batch and unittest

* fix error in conversion

* fix unittest

* update prover image to v4.0.1 (0xPolygonHermez#3160)

* update prover image to v4.0.2 (0xPolygonHermez#3162)

* Add a note in deployment instruction to restart rpc after forkId 7 (0xPolygonHermez#3163)

* note to restart zkevm-rpc

* update comment

* change position of point 10

* add point 11

* add lines

* add breakline

* add lines

* add line

* Sync old network compatibility (0xPolygonHermez#3166)

* Sync old network compatibility

* logs

* synchronizer: unittest and remove pool_reorg  (0xPolygonHermez#3111) (0xPolygonHermez#3168)

* removed reorgPool call
* add test for l1 sequenced batches
* removed panic after halt call as PR comments ask for

* fix parentHash when storing a new L2 block (0xPolygonHermez#3171)

* Fix/rom error (0xPolygonHermez#3177)

* fix rom error

* linter

* fix

* Cherrypick/0xPolygonHermez#3179 geth version v1.13.11 (0xPolygonHermez#3180)

* new geth version v1.13.11

* Add sanity check: last L2 block timestamp in the sequence is also L1BlockTimestampMargin seconds behind "now" (0xPolygonHermez#3181)

* add sanity check L1BlockTimestampMargin vs now

* Update prover image to v4.0.4

* synchronizer: update fromTrusted fix cache update (0xPolygonHermez#3169)

* fix cache update and sync from Trusted of closed batch

* Feature/3173 sync trusted state in networks previous to  ETROG (0xPolygonHermez#3175)

* Fix/3164 eth syncing dont return expected values (0xPolygonHermez#3165)

* fix im state root in stream (0xPolygonHermez#3192)

* sync: fix getting URL from contract in compatibility mode, and set sequential by default (0xPolygonHermez#3191)

* fix getting URL from contract in compatibility mode
* synchronizer configuration  by default use `sequential` mode

* Fix isSynced function (0xPolygonHermez#3188)

* fix isSynced

* fix linter

* fix logs

* halt on sanity check error

* fix l2 block gas price to use value returned by the executor (0xPolygonHermez#3186) (0xPolygonHermez#3190)

* allow rpc to access the ForkID directly from DB (0xPolygonHermez#3196)

* allow rpc to access the ForkID directly from DB

* update docs

* allow rpc to access the ForkID directly from DB (0xPolygonHermez#3197)

* allow rpc to access the ForkID directly from DB

* update docs

* fix migration down; check for greater forkIDs instead of the next +1 (0xPolygonHermez#3182)

* fix state storage config initialization

* add tests and fix get forkID by block number

* fix test TestGetForkIDByBlockNumber

---------

Co-authored-by: agnusmor <agnusmor@gmail.com>

* Fix/3200 l1inforoot error on reorg (0xPolygonHermez#3201)

* L1InfooTree cache is calculated when needed and is discard when a reorg happens

* Fix/3203 panic if batch process fail and must be closed (0xPolygonHermez#3206)

* synchronizer avoid panic if process trusted batch fails

* Remove L1SynchronizationMode parameter from environments config files (it will use default "sequential" value) (0xPolygonHermez#3210)

* allow GetL2TxHashByTxHash to return null for txs prior to Etrog (0xPolygonHermez#3209)

* Fix L2 block gas limit to 2**50 (1125899906842624) (0xPolygonHermez#3219)

* set l2 block gas limit to 2**50 (1125899906842624)

* limit L2 block gasLimit in StoreL2Block function

* change 2^64-1 for an esmitation of blocks (0xPolygonHermez#3220)

* removed restart RPC on deploy instructions (0xPolygonHermez#3221)

* Cherry pick/3222 (0xPolygonHermez#3224)

* fix stream

* fix stream

* fix stream

* fix stream

* linter

* add retries in is Synced function when last virtual batch is greater than last SC sequenced batcj (0xPolygonHermez#3225)

* wip

* update mocks

* wip

* modified sequencesender interfaces signatures

* linter fix

* removed unused methods and linter fix

* wip

* update diff docs

* Fix errors when generating mocks and regenerate them

* cr fix

* cr fix

* docs update

* Generate mock_etherman for sequencesender package

* cr fix and docs update

* Fix etherman test

* fix UT

* update docs

---------

Co-authored-by: agnusmor <100322135+agnusmor@users.noreply.github.com>
Co-authored-by: Alonso Rodriguez <ARR552@users.noreply.github.com>
Co-authored-by: Toni Ramírez <toni@polygon.technology>
Co-authored-by: Thiago Coimbra Lemos <tclemos@users.noreply.github.com>
Co-authored-by: Joan Esteban <129153821+joanestebanr@users.noreply.github.com>
Co-authored-by: Toni Ramírez <58293609+ToniRamirezM@users.noreply.github.com>
Co-authored-by: agnusmor <agnusmor@gmail.com>
Co-authored-by: Stefan Negovanović <stefan@ethernal.tech>
Co-authored-by: bros <arnaubennassar5@gmail.com>
rachit77 added a commit to 0xPolygon/cdk-validium-node that referenced this pull request Feb 12, 2024
* fix migration batch wip field. fix sequence when no wip batch (0xPolygonHermez#3126)

* fix Leaves smtproof (0xPolygonHermez#3127)

* fix Leaves smtproof

* pointer protection

* fix unit test

* Add l2block log dump when storing error. Refactor ProcessBatchV2 logs (0xPolygonHermez#3129)

* add l2block log dump when storing error. refactor ProcessBatchV2 logs

* add AddL2Block log

* fix index AddL2Block log

* use aux variable to avoid reusing poiner

---------

Co-authored-by: Toni Ramírez <toni@polygon.technology>

* fix panic etherman (0xPolygonHermez#3133)

* Fix GetL2Hash function. Use tx L2 hash returned by the executor when storing L2Block. Logs changes (0xPolygonHermez#3134)

* fix l2 hash when to is nill

* get l2 hash from executor

* fix use tx L2 hash returned by the executor when storing L2Block. Logs changes

* fix linter

* add L2block tracking number to process tx logs

* fix ProcessBatchV2 log format

* fix UTs. set useMainExecGenerated to true

* set prover image to v4.0.0-RC30

* test setting useMainExecGenerated = false

* fix independent_test

* fix non-e2e tests

---------

Co-authored-by: Toni Ramírez <toni@polygon.technology>

* remove l2 tx hash computation and use data stored in the state returned by the executor (0xPolygonHermez#3139)

* etrog: fix permissionless errors (0xPolygonHermez#3140)

* if got an error getting lastBlock produce a SIGSEGV

* reduce info logs

* fix unittest

* Fix missing batch bookmark (0xPolygonHermez#3122)

* fix missingBookMark

* fix missingBookMark

* fixes

* fix

* fix

* fix seq-sender config

* fixes

* doc

* fix wipL2Block deltaTimestamp (0xPolygonHermez#3142)

* improve open new wipL2Block logs

* fix wipL2Block deltaTimestamp

* ensure tx order in stream (0xPolygonHermez#3144)

* fix wipL2Block stateRoot (0xPolygonHermez#3145)

* fix panic NewStackTrie (0xPolygonHermez#3146)

* fix sync initalization for etrog (0xPolygonHermez#3147)

* fix wipL2block imStateRoot (0xPolygonHermez#3148)

* fix tracer to work by block stateroot instead of by tx (0xPolygonHermez#3150)

* update prover image (0xPolygonHermez#3151)

* if a trusted batch is empty and WIP just create the entry in state.batch (0xPolygonHermez#3152)

* fix trace for tx index greater than 0 (0xPolygonHermez#3153)

* add cardona.zip (0xPolygonHermez#3154)

* Fix default value when creating transaction.used_sha256_hashes field in the pool (0xPolygonHermez#3156)

* set DEFAULT 0 when creatingtransaction.used_sha256_hashes field in the pool

* update prover image to v4.0.0

* add cardona testnet (0xPolygonHermez#2909) (0xPolygonHermez#3155)

* add cardona testnet (0xPolygonHermez#2909)
* update config
* update cardona genesis

---------

Co-authored-by: Thiago Coimbra Lemos <tclemos@users.noreply.github.com>

* new fields in stream (0xPolygonHermez#3149)

* new fields in stream

* update test

* remove unused constant

* add UpgradeEtrogBatchNumber handling to stream

* doc

* add log to test

* add log to test

* add protection

* add check

* fix

* fix

* set stateManagerPurge to false in Cardona (0xPolygonHermez#3158)

* synchronizer: fix case emtpy batch and unittest (0xPolygonHermez#3159)

* fix case emtpy batch and unittest

* fix error in conversion

* fix unittest

* update prover image to v4.0.1 (0xPolygonHermez#3160)

* update prover image to v4.0.2 (0xPolygonHermez#3162)

* Add a note in deployment instruction to restart rpc after forkId 7 (0xPolygonHermez#3163)

* note to restart zkevm-rpc

* update comment

* change position of point 10

* add point 11

* add lines

* add breakline

* add lines

* add line

* Sync old network compatibility (0xPolygonHermez#3166)

* Sync old network compatibility

* logs

* synchronizer: unittest and remove pool_reorg  (0xPolygonHermez#3111) (0xPolygonHermez#3168)

* removed reorgPool call
* add test for l1 sequenced batches
* removed panic after halt call as PR comments ask for

* fix parentHash when storing a new L2 block (0xPolygonHermez#3171)

* Fix/rom error (0xPolygonHermez#3177)

* fix rom error

* linter

* fix

* Cherrypick/0xPolygonHermez#3179 geth version v1.13.11 (0xPolygonHermez#3180)

* new geth version v1.13.11

* Add sanity check: last L2 block timestamp in the sequence is also L1BlockTimestampMargin seconds behind "now" (0xPolygonHermez#3181)

* add sanity check L1BlockTimestampMargin vs now

* Update prover image to v4.0.4

* synchronizer: update fromTrusted fix cache update (0xPolygonHermez#3169)

* fix cache update and sync from Trusted of closed batch

* Feature/3173 sync trusted state in networks previous to  ETROG (0xPolygonHermez#3175)

* Fix/3164 eth syncing dont return expected values (0xPolygonHermez#3165)

* fix im state root in stream (0xPolygonHermez#3192)

* sync: fix getting URL from contract in compatibility mode, and set sequential by default (0xPolygonHermez#3191)

* fix getting URL from contract in compatibility mode
* synchronizer configuration  by default use `sequential` mode

* Fix isSynced function (0xPolygonHermez#3188)

* fix isSynced

* fix linter

* fix logs

* halt on sanity check error

* fix l2 block gas price to use value returned by the executor (0xPolygonHermez#3186) (0xPolygonHermez#3190)

* allow rpc to access the ForkID directly from DB (0xPolygonHermez#3196)

* allow rpc to access the ForkID directly from DB

* update docs

* allow rpc to access the ForkID directly from DB (0xPolygonHermez#3197)

* allow rpc to access the ForkID directly from DB

* update docs

* fix migration down; check for greater forkIDs instead of the next +1 (0xPolygonHermez#3182)

* fix state storage config initialization

* add tests and fix get forkID by block number

* fix test TestGetForkIDByBlockNumber

---------

Co-authored-by: agnusmor <agnusmor@gmail.com>

* Fix/3200 l1inforoot error on reorg (0xPolygonHermez#3201)

* L1InfooTree cache is calculated when needed and is discard when a reorg happens

* Fix/3203 panic if batch process fail and must be closed (0xPolygonHermez#3206)

* synchronizer avoid panic if process trusted batch fails

* Remove L1SynchronizationMode parameter from environments config files (it will use default "sequential" value) (0xPolygonHermez#3210)

* allow GetL2TxHashByTxHash to return null for txs prior to Etrog (0xPolygonHermez#3209)

* Fix L2 block gas limit to 2**50 (1125899906842624) (0xPolygonHermez#3219)

* set l2 block gas limit to 2**50 (1125899906842624)

* limit L2 block gasLimit in StoreL2Block function

* change 2^64-1 for an esmitation of blocks (0xPolygonHermez#3220)

* removed restart RPC on deploy instructions (0xPolygonHermez#3221)

* Cherry pick/3222 (0xPolygonHermez#3224)

* fix stream

* fix stream

* fix stream

* fix stream

* linter

* add retries in is Synced function when last virtual batch is greater than last SC sequenced batcj (0xPolygonHermez#3225)

* Fix/3233 the etrog event UpdateEtrogSequence doesnt store the GER in batch table (0xPolygonHermez#3234)

* remove state.batch section from environments config files (0xPolygonHermez#3230)

* get GER for l2block on Etrog (0xPolygonHermez#3238)

* Cherry-pick 0xPolygonHermez#3240, 0xPolygonHermez#3137: Sequence batch only when sanity check is done. Do fatal for some finalizer halt events. Several fixes. Optmize purge pool (0xPolygonHermez#3241)

* sequence batch only when sanity check is done. Do fatal for some halt events. Several fixes

* feat: optimize purge txn pool query (0xPolygonHermez#3137)

* feat: optimize purge txn pool query

* fix: add new method to state interface

* feat: generate new state mocks

* fix merge

* fix %w

---------

Co-authored-by: Idris Hanafi <ifh101@gmail.com>

* fix

* docs update

* fix

---------

Co-authored-by: agnusmor <100322135+agnusmor@users.noreply.github.com>
Co-authored-by: Alonso Rodriguez <ARR552@users.noreply.github.com>
Co-authored-by: Toni Ramírez <toni@polygon.technology>
Co-authored-by: Thiago Coimbra Lemos <tclemos@users.noreply.github.com>
Co-authored-by: Joan Esteban <129153821+joanestebanr@users.noreply.github.com>
Co-authored-by: Toni Ramírez <58293609+ToniRamirezM@users.noreply.github.com>
Co-authored-by: agnusmor <agnusmor@gmail.com>
Co-authored-by: Idris Hanafi <ifh101@gmail.com>
zjg555543 added a commit to okx/xlayer-node that referenced this pull request Feb 19, 2024
* Fix/3200 l1inforoot error on reorg (0xPolygonHermez#3201)

* L1InfooTree cache is calculated when needed and is discard when a reorg happens

* Fix/3203 panic if batch process fail and must be closed (0xPolygonHermez#3206)

* synchronizer avoid panic if process trusted batch fails

* Remove L1SynchronizationMode parameter from environments config files (it will use default "sequential" value) (0xPolygonHermez#3210)

* allow GetL2TxHashByTxHash to return null for txs prior to Etrog (0xPolygonHermez#3209)

* Fix L2 block gas limit to 2**50 (1125899906842624) (0xPolygonHermez#3219)

* set l2 block gas limit to 2**50 (1125899906842624)

* limit L2 block gasLimit in StoreL2Block function

* change 2^64-1 for an esmitation of blocks (0xPolygonHermez#3220)

* removed restart RPC on deploy instructions (0xPolygonHermez#3221)

* Cherry pick/3222 (0xPolygonHermez#3224)

* fix stream

* fix stream

* fix stream

* fix stream

* linter

* add retries in is Synced function when last virtual batch is greater than last SC sequenced batcj (0xPolygonHermez#3225)

* Fix/3233 the etrog event UpdateEtrogSequence doesnt store the GER in batch table (0xPolygonHermez#3234)

* remove state.batch section from environments config files (0xPolygonHermez#3230)

* get GER for l2block on Etrog (0xPolygonHermez#3238)

* Cherry-pick 0xPolygonHermez#3240, 0xPolygonHermez#3137: Sequence batch only when sanity check is done. Do fatal for some finalizer halt events. Several fixes. Optmize purge pool (0xPolygonHermez#3241)

* sequence batch only when sanity check is done. Do fatal for some halt events. Several fixes

* feat: optimize purge txn pool query (0xPolygonHermez#3137)

* feat: optimize purge txn pool query

* fix: add new method to state interface

* feat: generate new state mocks

* fix merge

* fix %w

---------

Co-authored-by: Idris Hanafi <ifh101@gmail.com>

* fix lint

---------

Co-authored-by: Joan Esteban <129153821+joanestebanr@users.noreply.github.com>
Co-authored-by: agnusmor <100322135+agnusmor@users.noreply.github.com>
Co-authored-by: Thiago Coimbra Lemos <tclemos@users.noreply.github.com>
Co-authored-by: Toni Ramírez <58293609+ToniRamirezM@users.noreply.github.com>
Co-authored-by: Idris Hanafi <ifh101@gmail.com>
Co-authored-by: root <root@ip-172-31-46-182.ap-northeast-1.compute.internal>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
cherry-picked Content has been cherry-picked into a higher version branch cla-signed synchronizer zkevm-bridge-sync-rpc
Projects
None yet
Development

Successfully merging this pull request may close these issues.

When a L1 reorg happens, the L1InfoTree cache is not updated
2 participants