load_peer_list
// loads peers list from disk
save_peer_list
//save peer list to disk
clean_up
// clean up by discarding entries which are too much into future
IsPeerInList
// check whether an IP is in the map already
GetPeerInList
Peer_Add
// add connection to map
Peer_SetFail
// a peer marked as fail, will only be connected based on exponential back-off based on powers of 2
Peer_SetSuccess
// set peer as successfully connected
// we will only distribute peers which have been successfully connected by us
Peer_Delete
PeerList_Print
// prints all the connection info to screen
Peer_Counts
// this function return peer count which have successful handshake
find_peer_to_connect
// this function finds a possible peer to connect to keeping blacklist and already existing connections into picture
// it must not be already connected using outgoing connection
// we do allow loops such as both incoming/outgoing simultaneously
// this will return atmost 1 address, empty address if peer list is empty
get_peer_list
// return white listed peer list
// for use in handshake