Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Timestamp Mismatch in sequencer processL2Block() for empty Block #3600

Open
EthanShang8989 opened this issue Apr 28, 2024 · 0 comments
Open

Comments

@EthanShang8989
Copy link

System Information

zkEVM Node

Version: fork by v0.6.4
OS & Version: Windows 10
Commit Hash: df539db
Network: Testnet
zkEVM Prover

Version: v6.0.1-RC1
OS & Version: Ubuntu 22.04.4 LTS
CPU: AMD EPYC 7282
Config Version: v6.0.0-rc.1-fork.9

Description

During the setup of my custom L2 test environment, I encountered an issue with incorrect timestamp handling. Specifically, the problem occurs in the first block, which contains no transactions other than the "change L2 block" transactions. This leads to a timestamp mismatch in the processL2Block() function, located at line 195 in l2block.go. The problematic timestamp is equal to the deltaTimestamp passed during the "change L2 block" build, which is initialized at the start of executeNewWIPL2Block. Additionally, I would appreciate an update to the prover's download script, as I had some difficulty finding the correct download content.

Expected Behaviour

// l2block.go
// Line 195
// Sanity check: Ensure blockResponse.timestamp matches l2Block.timestamp
if blockResponse.Timestamp != l2Block.timestamp {
	return fmt.Errorf("blockResponse.Timestamp %d doesn't match l2Block.timestamp %d", blockResponse.Timestamp, l2Block.timestamp)
}

Actual Behaviour

The blockResponse.Timestamp ==l2block.deltaTimestamp !=l2Block.timestamp.

Additional Details

In order to test the sequencer independently, I wrote a test function myself. I used mocks and simplified parts of the synchronizer's code (only executing SetGenesis and RequestAndProcessRollupGenesisBlock). The remaining steps follow the typical startup process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant