1. A method for providing a file fetcher arranged for serving and retrieving files to and from endpoints on a network supporting peer-to-peer file transfer, the method comprising the steps of: associating work items in a work list with pending file requests from a caller at an endpoint, the work list being arranged to support prioritization of the work items; obtaining a list of endpoints that contain at least a portion of files associated with the pending file requests; maintaining a state for a file, the state identifying the file as being partially or completely downloaded; retrieving at least a portion of a file in accordance with the work list, the list of endpoints, and the file state; and serving at least a portion of a file responsively to a request from a caller at a remote endpoint.