Peer-to-peer systems such as Gnutella are resilient to failures at a single point in the network because of their decentralized
nature. However an attack resulting in the removal of a small percentage of highly connected nodes could cripple such systems.
We believe that distributed attack recovery is not simply a reactive process but requires proactive measures by the nodes
in the system. We propose a distributed recovery method, where clients proactively detect attacks by monitoring the rate at
which their first and second-degree neighbors leave the network and reconfigure themselves to form a topology that is more
resilient to attacks when one has been detected. This topology is created and maintained through a new type of node discovery
mechanism that is used during normal network operations. The recovery method is able to reconnect the network and deal with
any ongoing attacks once one has started.