flare-foundation / go-songbird

BSD 3-Clause "New" or "Revised" License
66 stars 32 forks source link

Genesis block hard fork timestamps are ignored #20

Open awfm9 opened 2 years ago

awfm9 commented 2 years ago

A lot of code on the Avalanche / Flare side of things (meaning not the Coreth side) ignores the hard fork timestamps from the genesis block, and only uses the hard-coded timestamps. This means that staging / local testing of hard forks is impossible for code on the Flare side.

awfm9 commented 2 years ago

We should probably report this upstream. The issue is that the genesis block, containing the timestamps for the hard forks, is only decoded inside of the EVM. This means that the timestamps from the genesis block are not available from within the core Avalanche code.

I worked around this for debugging by allowing to override the hard fork timestamps with environment variables for non-standard networks, but that's not something that is clean enough to add it to a release, imo.