This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Description
The initializer module is responsible for coordinating between other modules for block initialization, finalization, and session changes.
Genesis configuration can also be managed by the initializer, calling into functions on each of its managed modules.
It should be setting:
- Configuration: Initial config
- Paras: Initial parachains
- Paras: Initial parathreads
- Scheduler: Initial validators and validator groups
This can be implemented in the Initializer by having an add_extra_genesis block in the decl_storage invocation. One viable way to implement this add_extra_genesis block is to call bookkeeping methods on modules (e.g. Paras::schedule_para_initialization and Configuration::set_* methods), then prepare a SessionChangeNotification and call initializer_on_new_session for each module.