MinaProtocol / mina

Mina is a cryptocurrency protocol with a constant size blockchain, improving scaling while maintaining decentralization and security.
https://minaprotocol.com
Apache License 2.0
1.98k stars 526 forks source link

Replayer test in CI: User artificial blockchain instead of recorded one #15576

Open dkijania opened 2 months ago

dkijania commented 2 months ago

After we enabled Replayer test in Ci we found out another problem which is related to data. Currently we are using recorded data as we are unable to produce artificially generated. Recorded data generation is problematic as it requires a lot of time (> 6h ) or some hacks (like manually converting pending blocks to canonical). There are some ideas like:

Does the proof need to be valid? If not, you can generate the block contents and stick in the dummy blockchain proof
This is the job of the Block_producer.generate_next_state  function, which shouldn't be too bad to setup. (that didn't do quite as much as I hoped)

I can setup an alternative mode for the daemon where it sources its transaction and other data from JSON, but it's still going to be a daemon.