Claims
- 1. A method for delivering digital files in a peer-to-peer network comprising a plurality of nodes including at least one server, the method comprising the steps of:
(a) making a plurality of files available on the network for accessibility by the nodes; (b) computing a respective fingerprint for each of the digital files based on content of the files; (c) partitioning each of the files into a plurality of file chunks; (d) assigning an error detecting code to each of the chunks; (e) transmitting the file to a first node from at least one other node by transmitting the chunks of the file to the first node; and (f) upon receipt of each chunk by the first node, computing a new error detecting code 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.
- 2. The method of claim 1 wherein step (d) further includes the step of: transmitting the file chunks from multiple nodes.
- 3. The method of claim 2 furthering including the step of: for each node that successfully transmitted a chunk of the file, determining bandwidth contributed by the node and paying an owner of the node a fee based on the contributed bandwidth.
- 4. The method of claim 3 furthering including the steps of: maintaining an error report for each node and designating each node having a total number of reported errors greater than a predetermined threshold as ineligible to serve future file requests.
- 5. The method of claim 1 wherein step (c) further includes the step of: partitioning each of the files such that the file chunks are fixed sized blocks.
- 6. The method of claim 1 wherein step (c) further includes the step of: providing a cycle redundancy check (CRC) as the error detecting code.
- 7. The method of claim 1 wherein step (d) further includes the step of: storing the error detecting code for each chunk on the server.
- 8. The method of claim 7 wherein the file is published for sharing on the network from a second node, the method further including the step of: computing the fingerprint and assigning the error detecting codes by the second node.
- 9. The method of claim 8 further including the step of: uploading business rules associated with the file, file metadata, the fingerprint, the chunks, and the error detecting codes from the second node to the server.
- 10. The method of claim 9 further including the step of:
storing the file metadata in a query database; and storing a peer ID and bandwidth speed of the second peer node and a URL of the file on the second peer node in the location database.
- 11. The method of claim 10 wherein step (e) further includes the step of: transmitting the file in response to a user of the first node clicking a link to the URL for the file.
- 12. The method of claim 11 further including the step of: contacting by the first node, the server to retrieve the fingerprint and the error detection codes, and a list of known sources on the network containing the file.
- 13. The method of claim 12 further including the step of: receiving a list of known URLs from the server, eliminating unreliable nodes, and sorting remaining node by bandwidth speed, and initiating a download of distinct chunks from successive nodes on the list.
- 14. The method of claim 1 wherein step (f) further includes the step of: if the error detecting codes of a particular chunk do not match, requesting the chunk from a different node.
- 15. The method of claim 1 wherein further including the steps of:
reassembling the file from the chunks; and recomputing the fingerprint for the file and comparing it with the fingerprint received from the server to verify the file.
- 16. A computer readable medium containing program instructions for delivering digital files in a peer-to-peer network comprising a plurality of nodes including at least one server, the program instructions for:
(a) making a plurality of files available on the network for accessibility by the nodes; (b) computing a respective fingerprint for each of the digital files based on content of the files; (c) partitioning each of the files into a plurality of file chunks; (d) assigning an error detecting code to each of the chunks; (e) transmitting the file to a first node from at least one other node by transmitting the chunks of the file to the first node; and (f) upon receipt of each chunk by the first node, computing a new error detecting code 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.
- 17. The computer readable medium of claim 16 wherein instruction (d) further includes the instruction of: transmitting the file chunks from multiple nodes.
- 18. The computer readable medium of claim 17 furthering including the instruction of: for each node that successfully transmitted a chunk of the file, determining bandwidth contributed by the node and paying an owner of the node a fee based on the contributed bandwidth.
- 19. The computer readable medium of claim 18 furthering including the instructions of: maintaining an error report for each node and designating each node having a total number of reported errors greater than a predetermined threshold as ineligible to serve future file requests.
- 20. The computer readable medium of claim 16 wherein instruction (c) further includes the instruction of: partitioning each of the files such that the file chunks are fixed sized blocks.
- 21. The computer readable medium of claim 16 wherein instruction (c) further includes the instruction of: providing a cycle redundancy check (CRC) as the error detecting code.
- 22. The computer readable medium of claim 16 wherein instruction (d) further includes the instruction of: storing the error detecting code for each chunk on the server.
- 23. The computer readable medium of claim 22 wherein the file is published for sharing on the network from a second node, the computer readable medium further including the instruction of: computing the fingerprint and assigning the error detecting codes by the second node.
- 24. The computer readable medium of claim 23 further including the instruction of: uploading business rules associated with the file, file metadata, the fingerprint, the chunks, and the error detecting codes from the second node to the server.
- 25. The computer readable medium of claim 24 further including the instruction of:
storing the file metadata in a query database; and storing a peer ID and bandwidth speed of the second peer node and a URL of the file on the second peer node in the location database.
- 26. The computer readable medium of claim 25 wherein instruction (e) further includes the instruction of: transmitting the file in response to a user of the first node clicking a link to the URL for the file.
- 27. The computer readable medium of claim 26 further including the instruction of: contacting by the first node, the server to retrieve the fingerprint and the error detection codes, and a list of known sources on the network containing the file.
- 28. The computer readable medium of claim 27 further including the instruction of: receiving a list of known URLs from the server, eliminating unreliable nodes, and sorting remaining node by bandwidth speed, and initiating a download of distinct chunks from successive nodes on the list.
- 29. The computer readable medium of claim 16 wherein instruction (f) further includes the instruction of: if the error detecting codes of a particular chunk do not match, requesting the chunk from a different node.
- 30. The computer readable medium of claim 16 wherein further including the instructions of:
reassembling the file from the chunks; and recomputing the fingerprint for the file and compares it with the fingerprint received from the server to verify the file.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 09/963,812, entitled “Method And System For Generating Revenue In A Peer-To-Peer File Delivery Network” (2060P), filed on Sep. 26, 2001, which is incorporated by reference herein.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09963812 |
Sep 2001 |
US |
Child |
10159224 |
May 2002 |
US |