TODO
- Implememt Vector Clocks
- Implement Node ID's using eiher the node IP address or assigning the node ID when the node comes into view
- Modifying GET and PULL to return Causal Payload (Vector Clock), timestamp and node ID
- Set up get_node_details and get_all_replicas" on the replicas
- Set up Timeout connects / heartbeat for failure detection of nodes