• Mark Tyneway's avatar
    l2geth: update timestamp logic · 57742a04
    Mark Tyneway authored
    This commit updates the timestamp updating logic
    such that `time.Now` is used instead of relying on
    L1 timestamps. This gives a higher fidelity for the
    `TIMESTAMP` opcode as well as makes the time on L2
    be closer to the time on L1.
    
    L1 to L2 transactions no longer have the property of
    having the same timestamp on L2 as the timestamp
    of the L1 block they were included in.
    
    This should be able to be turned on without needing
    hardfork logic as replicas should always accept the
    timestamp that the sequencer sets. The sequencer is
    a trusted entity in the existing implementation and
    it is expected that the sequencer will become more
    trustless in future iterations of the protocol.
    
    This change is added to improve both UX and devex.
    Users are confused by the timestamps on Etherscan
    being ~15 minutes behind. This is due to the timestamps
    being set based on L1 block numbers, and the system
    only pulls L1 data once a secure amount of PoW
    is placed on top. Developers would like the timestamps
    to have a higher fidelity and be closer to the timestamps
    on L1.
    57742a04
sync_service_test.go 30.5 KB