Design a Peer-to-Peer Network — Hard System Design Problem