fix: overwrite mem block timestamp if CKB median time is less than tip block #625
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Godwoken relies on CKB median time to produce layer2 block. In some situation, the CKB median time will be less than tip layer2 block's timestamp, for example: CKB re-org.
So a contract developer may submit a transaction with a timestamp t1, and then execute a tx with a timestamp t2, and the t2 may be less than t1. This may cause logic error in contract.
This PR fix this by overwrite a later timestamp to mem-pool's block info if median time is less than the tip block's timestamp. This PR also adjust the default genesis block's timestamp, if user doesn't specific the timestamp of the genesis, we would use a earlier timestamp as the genesis, so it won't conflict with the CKB's median time in the development environment.