Chain is not always required to run sequencer. ex. testing, hackathons, etc.
Solution
Big part of the code had been refactored to keep things separated. Now integration tests are running twice. Once for onchain mode, and once for offchain mode. If some test doesn't make sense for offchain it is not being created.
There is also small fix to task monitor. Now when tasks was failed and we are shutting down process is not aborting. We just not rerun the task.
Also to make it possible to run tests in parallel I have changed how shutdown works. Now it is not a global field but regular struct created at the beginning of the application.
This version still requires semaphore-mtb running. Next step is to remove that requirement for offchain.
Motivation
Chain is not always required to run sequencer. ex. testing, hackathons, etc.
Solution
Big part of the code had been refactored to keep things separated. Now integration tests are running twice. Once for onchain mode, and once for offchain mode. If some test doesn't make sense for offchain it is not being created.
There is also small fix to task monitor. Now when tasks was failed and we are shutting down process is not aborting. We just not rerun the task.
Also to make it possible to run tests in parallel I have changed how shutdown works. Now it is not a global field but regular struct created at the beginning of the application.
This version still requires semaphore-mtb running. Next step is to remove that requirement for offchain.
PR Checklist