Building a reliable P2P system out of unreliable P2P clients: the case of KAD