Method and system for delivering files in digital file marketplace
First Claim
1. A method for obtaining a digital file in a peer-to-peer network, comprising:
- receiving a list comprising a plurality of URLs from a server, wherein each of the plurality of URLs identifies a location of a copy of a file on a different one of a plurality of nodes;
receiving a plurality of precalculated error detecting codes from the server, wherein each of the plurality of precalculated error detecting codes corresponds to one of a plurality of file chunks of the file;
concurrently initiating a plurality of requests for ones of the plurality of file chunks of the file, including a first request for a first file chunk from a first node of the plurality of nodes, a second request for a second file chunk from a second node of the plurality of nodes, and a third request for a third file chunk from a third node of the plurality of nodes;
receiving the first file chunk, the second file chunk, and the third file chunk;
calculating new error detecting codes for each of the first file chunk, the second file chunk, and the third file chunk in response to receiving the first, second and third file chunks, respectively;
for each of the first, second, and third file chunks comparing the corresponding new error detecting code to a corresponding precalculated error detecting code from the list, and if the corresponding new error detecting code does not match the corresponding precalculated error detecting code, requesting a corresponding file chunk from one of the plurality of nodes that is a different node from the node from which the corresponding file chunk was originally received.
5 Assignments
0 Petitions
Accused Products
Abstract
A method and system for delivering digital files in a peer-to-peer network comprising a plurality of nodes including at least one server is disclosed. The network includes a plurality of files that are available for accessibility by the nodes in which respective fingerprints are computed for each of the files based on content of the files. The method and system include partitioning each of the files into a plurality of file chunks, and assigning an error detecting code to each of the chunks. The file is then transmitted to a first node from at least one other node by transmitting the chunks of the file to the first node. The method and system further include computing a new error detecting code upon receipt of each chunk by the first node, and comparing the new error detecting code to the assigned error detecting code to verify that each chunk has been transmitted correctly, whereby the entire contents of the file does not have to be received before the first node discovers that the file is corrupt. In a further embodiment of the present invention, the method and system include determining the bandwidth contributed by each node that successfully transmitted a chunk of the file, and paying an owner of each node a fee based on the contributed bandwidth.
66 Citations
18 Claims
-
1. A method for obtaining a digital file in a peer-to-peer network, comprising:
-
receiving a list comprising a plurality of URLs from a server, wherein each of the plurality of URLs identifies a location of a copy of a file on a different one of a plurality of nodes; receiving a plurality of precalculated error detecting codes from the server, wherein each of the plurality of precalculated error detecting codes corresponds to one of a plurality of file chunks of the file; concurrently initiating a plurality of requests for ones of the plurality of file chunks of the file, including a first request for a first file chunk from a first node of the plurality of nodes, a second request for a second file chunk from a second node of the plurality of nodes, and a third request for a third file chunk from a third node of the plurality of nodes; receiving the first file chunk, the second file chunk, and the third file chunk; calculating new error detecting codes for each of the first file chunk, the second file chunk, and the third file chunk in response to receiving the first, second and third file chunks, respectively; for each of the first, second, and third file chunks comparing the corresponding new error detecting code to a corresponding precalculated error detecting code from the list, and if the corresponding new error detecting code does not match the corresponding precalculated error detecting code, requesting a corresponding file chunk from one of the plurality of nodes that is a different node from the node from which the corresponding file chunk was originally received. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer readable medium containing program instructions for receiving a digital file in a peer-to-peer network, the program instructions for:
-
receiving a list comprising a plurality of URLs from a server, wherein each of the plurality of URLs identifies a location of a copy of a digital file on a different one of a plurality of nodes; receiving a plurality of precalculated error detecting codes from the first server, wherein each of the plurality of precalculated error detecting codes corresponds to one of a plurality of file chunks of the digital file; concurrently initiating a plurality of requests for ones of the plurality of file chunks of the digital file, including a first request for a first file chunk from a first node of the plurality of nodes, a second request for a second file chunk from a second node of the plurality of nodes, and a third request for a third file chunk from a third node of the plurality of nodes; receiving the first file chunk, the second file chunk, and the third file chunk; calculating new error detecting codes for each of the first file chunk, the second file chunk, and the third file chunk in response to receiving the first, second, and third file chunks, respectively; for each of the first, second, and third file chunks, comparing the corresponding new error detecting code to a corresponding precalculated error detecting code from the list, and if the corresponding new error detecting code does not match the corresponding precalculated error detecting code, requesting a corresponding file chunk from one of the plurality of nodes that is a different node from the node from which the corresponding file chunk was originally received. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A method for receiving a digital file in a peer-to-peer network, the method comprising the steps of:
-
receiving a list comprising a plurality of URLs from a server, wherein each URL in the list identifies a corresponding node of a plurality of nodes that contains a copy of the digital file, wherein the digital file is partitioned into a plurality of file chunks on each of the plurality of nodes, and each of the plurality of file chunks has a corresponding error detecting code maintained on the server; receiving a second list comprising a plurality of corresponding error detecting codes from the server; eliminating at least one URL from the list of URLs based on an identifier indicating the node corresponding to the at least one URL is unreliable; sorting the list to place each URL in the list in an order according to a bandwidth speed associated with each of the corresponding nodes; and initiating a download of distinct chunks from a second plurality of nodes corresponding to a plurality of successive URLs in the list; and upon receipt of the distinct chunks, computing a new error detecting code and comparing the new error detecting code to the corresponding error detecting code to verify that each distinct chunk has been downloaded correctly; and requesting a chunk from a different node from an initial node from which the chunk was received if the new error detecting code associated with the chunk does not match the corresponding error detecting code associated with the chunk.
-
Specification