You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently within the simulator we really only have a single random number generator which gets used for creating random params for all the different modules. Due to this design, whenever we integrate in a new module into the simulation, the random parameter generation is totally thrown off from previous simulations on that same seed prior to integrating in the new module.
If we instead deterministically create a series of random generators (still from one seed) for each module, we can avert this problem, the params will be generated with independant randomness for each module, hence, when we integrate in a new module it will not affect the deterministic creation of other modules params.
This is seen recently when a bug has been found for a commit series (#4383 (comment)) however the bug is no longer found after a new module was integrated into the simulation. I would like it if the simulation was failing after the new simulation modifications were made here.
It gets a bit more complicated with transaction creation ideally this would be the scenario: In original simulator the following transactions are created for let's say Seed 100:
Module A: Transaction 123
Module A: Transaction 13
Module B: Transaction 12
Module D: Transaction 1231
Module C: Transaction 124
Module A: Transaction 14
Now after a new module, say Module E was integrated into the simulator, its functions will still need to be included in list, however, ideally the order and "value" of each transaction will not be affected, new transactions from Module E will simply be inserted into the simulators list:
Module A: Transaction 123
Module A: Transaction 13
Module E: Transaction 145
Module B: Transaction 12
Module D: Transaction 1231
Module E: Transaction: 545
Module C: Transaction 124
Module A: Transaction 14
This could be accomplished by having independent random generators for each modules when generating transaction input. I'm not totally positive on the solution for the ordering of transactions remaining as I've described, but I'm sure it's possible, just going to think about it a bit more.
I think this is entirely possible and ideal. As you've already mentioned, the only corner case is tx/op generation which may be dependent on state and other modules. Regardless, this should be pretty trivial.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Currently within the simulator we really only have a single random number generator which gets used for creating random params for all the different modules. Due to this design, whenever we integrate in a new module into the simulation, the random parameter generation is totally thrown off from previous simulations on that same seed prior to integrating in the new module.
If we instead deterministically create a series of random generators (still from one seed) for each module, we can avert this problem, the params will be generated with independant randomness for each module, hence, when we integrate in a new module it will not affect the deterministic creation of other modules params.
This is seen recently when a bug has been found for a commit series (#4383 (comment)) however the bug is no longer found after a new module was integrated into the simulation. I would like it if the simulation was failing after the new simulation modifications were made here.
It gets a bit more complicated with transaction creation ideally this would be the scenario: In original simulator the following transactions are created for let's say Seed 100:
Now after a new module, say Module E was integrated into the simulator, its functions will still need to be included in list, however, ideally the order and "value" of each transaction will not be affected, new transactions from Module E will simply be inserted into the simulators list:
This could be accomplished by having independent random generators for each modules when generating transaction input. I'm not totally positive on the solution for the ordering of transactions remaining as I've described, but I'm sure it's possible, just going to think about it a bit more.
CC: @cwgoes @alexanderbez
The text was updated successfully, but these errors were encountered: