Peer-to-Peer Data Storage for Offline File Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Packet-based communication systems require both sender and recipient to be online simultaneously for file transfer, limiting the utility of file transfer functionality.
Innovation Solution
A method where the source node selects storage nodes from a network of end-user nodes to store data, allowing the recipient node to retrieve it without being online at the same time, using a communication client application to transmit and receive data through a peer-to-peer network, with encryption and notification messages ensuring privacy and security.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If both sender and recipient must be online simultaneously for file transfer, then direct peer-to-peer communication is maintained, but file transfer utility and accessibility are reduced
Solution Approach 1:
The sender node performs preliminary actions by uploading the data file to the server node before the recipient is online. The server node stores the file and notifies the recipient when it becomes available, allowing the recipient to download later without requiring simultaneous online presence with the sender.
Solution Approach 2:
A server node is introduced as an intermediary to facilitate file transfers when sender and recipient are not simultaneously online. The server receives files from senders, stores them temporarily, and makes them available to recipients who come online later, acting as a mediator that decouples the timing requirements between communicating parties.
2Adaptability or versatility
If a server is used to store data for offline recipients, then file transfer flexibility is improved, but network infrastructure cost and complexity increase
Solution Approach 1:
Existing server nodes in the peer-to-peer network are made multi-functional by enabling them to perform both their original peer-to-peer communication functions and additional data storage functions. This allows the same infrastructure to support both direct file transfers and offline storage without requiring separate dedicated storage servers.
Solution Approach 2:
The network utilizes its own existing server nodes to provide storage services rather than requiring external or dedicated storage infrastructure. The server nodes serve themselves and other nodes by storing data temporarily, making the network self-sufficient and reducing external infrastructure requirements.
3Device complexity
If end-user nodes are used for data storage, then central server reliance is reduced and costs are lowered, but network security and data privacy requirements increase
Solution Approach 1:
The sender node acts as an intermediary that encrypts data with the recipient's public key before uploading to the server. This ensures that even though the server stores the encrypted data, it cannot access the plaintext content, and only the intended recipient with the private key can decrypt and access the original data, maintaining security in the distributed storage model.
Solution Approach 2:
The server node stores only encrypted data in an effectively secure environment where the ciphertext cannot be interpreted without the corresponding private key. This creates an inert storage environment where the stored data is harmless and cannot be misused even if the server is compromised, as the encrypted data appears as random noise without the decryption key.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The present invention provides a method of transmitting data in a network of interconnectable end-user nodes comprising a source node, a recipient node and a plurality of further nodes, wherein each of the end-user nodes is executing an instance of a communication client application. The invention also provides corresponding method of receiving data, and corresponding computer programs and user terminals. The method of transmitting data comprises: comprising: the communication client of the source node receiving a command to transmit the data to the recipient node; the source node selecting from the plurality of further nodes at least one storage node to store the data from the source node before being retrieved by the recipient node; transmitting the data from the source node to the at least one storage node; and the source node providing a network identity for each of the at least one storage nodes to the recipient node.