Dynamics And Cooperation Algorithmic Challenges In Peer-To-Peer Computing