Currently general node storage situation:
- Connection objects are stored inside of Smartnode.nodes (eg.
{node_id: Connection})
- contains information directly related to p2p connections (ip, port, ping, reputation/rate-monitor).
- Job information and general node information for network queries are stored in
Smartnode.routing_table
- Job info dictionaries & worker info dictionaries containing memory, connection info, etc.
- Proposal information for validator nodes
- Validator.proposal_monitor stores and monitors ongoing proposals
- Validator.job_monitor stores and monitors ongoing jobs
A more unified and clean node monitor system would be ideal as well to ensure resource usage tracking across users, resource donation tracking across workers, etc.
It would also be good to ensure no copies of data are being stored in different places. For example, if job information is stored in the job monitor, it should directly point to the routing table stored version instead. Same with the proposal storage solution in proposal monitor.
Currently general node storage situation:
{node_id: Connection})Smartnode.routing_tableA more unified and clean node monitor system would be ideal as well to ensure resource usage tracking across users, resource donation tracking across workers, etc.
It would also be good to ensure no copies of data are being stored in different places. For example, if job information is stored in the job monitor, it should directly point to the routing table stored version instead. Same with the proposal storage solution in proposal monitor.