Dal/Node: architecture hardening
Context
Currently the DAL Node is designed as a draft and has the following behavior:
- Load config, storage
- Track L1 heads as a stream until a protocol containing the Dal Plugin starts.
- Load the DAL Plugin
- Start RPC Server
- Run ad vitam
This contains several flaws we would like to fix:
- Not handling L1 disconnections
- Not handling proto changes
- Not handling multiple kind of requests in parallel
- RPC server depends on the plugin.
Solutions
-
Mid term Handle L1 node disconnection using exponentially checks on health -
Mid term Add a general state instead of using a readyboolean reference -
Mid term Use a worker to handle various type of requests in parallel -
Mid term Starts the RPC Server before checking for the plugin with an error if the plugin is not started -
Long term If the protocol changes, the plugin should be reloaded (beware of reorgs)
Edited by Mohamed IGUERNLALA