CN109040258B - 一种基于私有种子文件的数据处理方法及装置 - Google Patents
一种基于私有种子文件的数据处理方法及装置 Download PDFInfo
- Publication number
- CN109040258B CN109040258B CN201810903698.6A CN201810903698A CN109040258B CN 109040258 B CN109040258 B CN 109040258B CN 201810903698 A CN201810903698 A CN 201810903698A CN 109040258 B CN109040258 B CN 109040258B
- Authority
- CN
- China
- Prior art keywords
- encrypted data
- data blocks
- address
- tracking server
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 31
- 238000003860 storage Methods 0.000 claims abstract description 12
- 238000005520 cutting process Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 238000011084 recovery Methods 0.000 description 8
- 238000009826 distribution Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种基于私有种子文件的数据处理方法,包括:通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器;向所述至少一个跟踪服务器发送一组加密后的数据块的上传请求,所述一组加密后的数据块对应所述私有种子文件;接收所述至少一个跟踪服务器根据所述上传请求分配的能够存储所述一组加密后的数据块的各个节点的地址,所述一个加密后的数据块对应一个节点地址;根据所述各个节点的地址连接各个节点,将与所述私有种子文件对应的一组加密后的数据块上传至所述各个节点。本申请支持不公开的内容分散存储,基于P2P网络建立一个去中心的私有文件存储体系。
Description
技术领域
本申请属于内容分发协议技术领域,具体涉及一种基于私有种子文件的数据处理方法及装置。
背景技术
BitTorrent(比特流)是一种内容分发协议,由布拉姆·科恩自主开发,BitTorrent不同于一般的下载服务器,它采用点对点技术和高效的软件分发系统共享大体积文件。
BitTorrent下载工具软件可以说是一个最新概念P2P(PEER-TO-PEER)的下载工具,它采用了多点对多点的原理,一般简称BT,也就是变态下载。该软件相当的特殊,一般的下载服务器为每一个发出下载请求的用户提供下载服务,若同时间下载人数多时,基于该下载服务器频宽的因素,速度会减慢许多,而该软件却不同,恰巧相反,同时间下载的人数越多下载的速度便越快,因为它采用了多点对多点的传输原理。P2P的核心思想就是没有服务器的概念,任何一个下载者既是client(客户),又是server(服务者)。简单的说,P2P就是让所有能上网的电脑都成为服务器,当你下载别人资源的时候别人也在下载你的资源,而一般的下载服务器只是单纯的下载其它人的资源,是单向的。
BitTorrent的分配器或文件的持有者将文件发送给其中一名用户,再由这名用户转发给其它用户,用户之间相互转发自己所拥有的文件部分,直到每个用户的下载都全部完成。这种方法可以使下载服务器同时处理多个大体积文件的下载请求,而无须占用大量带宽。
BitTorrent整套机制是用来共享文件的,如果我制作了一个套资源的种子文件,不把它传递给其他人,那这套资源不会被传递到P2P网络的其他地方,如果我传递给其他人,意味着那个人可以获取到我的资源。
但是BitTorrent有以下缺点,设想这样一种场景,我有一套资源,只是想上传并保存在P2P网络中,其他人替我保存但不能获取到其中的内容,当我想取回它的时候,用最初的种子文件就可以恢复。这在现有的P2P文件共享网络里是不能实现的。
发明内容
本申请针对现有的BitTorrent只能共享文件,不能私密分发和恢复的问题,提供一种基于私有种子文件的数据处理方法及装置。
本申请提供一种基于私有种子文件的数据处理方法,包括:
通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器;
向所述至少一个跟踪服务器发送一组加密后的数据块的上传请求,所述一组加密后的数据块对应所述私有种子文件;
接收所述至少一个跟踪服务器根据所述上传请求分配的能够存储所述一组加密后的数据块的各个节点的地址,所述一个加密后的数据块对应一个节点地址;
根据所述各个节点的地址连接各个节点,将与所述私有种子文件对应的一组加密后的数据块上传至所述各个节点。
可选的,所述通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器步骤之前,还包括:
将压缩文件切分成各个数据块;
通过各个数据块对应的密钥对所述各个数据块进行加密形成各个加密后的数据块,并记录所述各个加密后的数据块对应的密钥;
获取所述至少一个跟踪服务器的地址;
生成所述私有种子文件并保存至本地,所述私有种子文件包括所述各个加密后的数据块的密钥和所述至少一个跟踪服务器的地址。
可选的,所述根据所述各个节点的地址连接所述各个节点,将与所述私有种子文件对应的一组加密后的数据块上传至所述各个节点步骤之后,还包括:
将剩余的加密后的数据块和/或上传失败的加密后的数据块组合形成一个新的一组加密后的数据块,返回向所述至少一个跟踪服务器发送一组加密后的数据块的上传请求的步骤。
可选的,所述根据所述各个节点的地址连接所述各个节点,将与所述私有种子文件对应的一组加密后的数据块上传至所述各个节点步骤之后,还包括:
将上传成功的一组加密后的数据块分别对应的各个节点的地址写入所述私有种子文件中。
本申请还提供一种基于私有种子文件的数据处理方法,包括:
通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器;
向所述至少一个跟踪服务器发送一组加密后的数据块的下载请求,所述一组加密后的数据块对应所述私有种子文件;
接收所述至少一个跟踪服务器根据所述下载请求获取的能够下载所述一组加密后的数据块的各个节点的地址,所述一个加密后的数据块对应一个节点地址;
根据所述各个节点的地址连接所述各个节点,下载与所述私有种子文件对应的一组加密后的数据块。
可选的,所述根据所述各个节点的地址连接所述各个节点,下载与所述私有种子文件对应的一组加密后的数据块步骤之后,包括:
将所述各个加密后的数据块通过所述私有种子文件中的一组加密后的数据块的密钥进行解密,并将各个解密后的数据块组合形成压缩文件。
可选的,所述根据所述各个节点的地址连接所述各个节点,下载与所述私有种子文件对应的一组加密后的数据块步骤之后,还包括:
将剩余的加密后的数据块和/或下载失败的加密后的数据块组合形成一个新的一组加密后的数据块,返回向所述至少一个跟踪服务器发送一组加密后的数据块的下载请求的步骤。
可选的,所述将剩余的加密后的数据块和/或下载失败的加密后的数据块组合形成一个新的一组加密后的数据块,返回向所述至少一个跟踪服务器发送一组加密后的数据块的下载请求步骤之后,还包括:
若多次下载仍然失败,通过所述私有种子文件中预先存储的一组加密后的数据块分别对应的各个节点的地址直接连接所述各个节点进行下载。
本申请还提供一种客户端,包括:
跟踪服务器连接模块,用于通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器;
上传请求发送模块,用于向所述至少一个跟踪服务器发送一组加密后的数据块的上传请求,所述一组加密后的数据块对应所述私有种子文件;
节点地址接收模块,用于接收所述至少一个跟踪服务器根据所述上传请求分配的能够存储所述一组加密后的数据块的各个节点的地址,所述一个加密后的数据块对应一个节点地址;
上传模块,用于根据所述各个节点的地址连接所述各个节点,将与所述私有种子文件对应的一组加密后的数据块上传至所述各个节点。
本申请还提供一种客户端,包括:
跟踪服务器连接模块,用于通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器;
哈希值发送模块,用于向所述至少一个跟踪服务器发送一组加密后的数据块的下载请求,所述一组加密后的数据块对应所述私有种子文件;
节点地址接收模块,用于接收所述至少一个跟踪服务器根据所述下载请求获取的能够下载所述一组加密后的数据块的各个节点的地址,所述一个加密后的数据块对应一个节点地址;
下载模块,用于根据所述各个节点的地址连接所述各个节点,下载与所述私有种子文件对应的一组加密后的数据块。
本申请实施例基于BitTorrent做了改进和创新,通过预先生成的私有种子文件和跟踪服务器的节点的分配,使其支持不公开的内容分散存储,基于此可以建立一个去中心的私有文件存储体系。
附图说明
图1为本申请第一实施例提供的一种基于私有种子文件的数据处理方法的流程图;
图2为本申请第二实施例提供的一种基于私有种子文件的数据处理方法的流程图;
图3为本申请第三实施例提供的一种基于私有种子文件的数据处理方法的流程图;
图4为本申请第四实施例提供的一种基于私有种子文件的数据处理装置的结构示意图;
图5为本申请第五实施例提供的一种基于私有种子文件的数据处理装置的结构示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
本申请提供一种基于私有种子文件的数据处理方法、装置。以下分别结合本申请提供的实施例的附图逐一进行详细说明。
本申请第一实施例提供的一种基于私有种子文件的数据处理方法如下:
本申请实施例的执行主体是客户端,如图1所示,其示出了本申请实施例提供的一种基于私有种子文件的数据处理方法的流程图,包括以下步骤。
步骤S101,通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器。
步骤S102,向所述至少一个跟踪服务器发送一组加密后的数据块的上传请求,所述一组加密后的数据块对应所述私有种子文件。
步骤S103,接收所述至少一个跟踪服务器根据所述上传请求分配的能够存储所述一组加密后的数据块的各个节点的地址,所述一个加密后的数据块对应一个节点地址。
步骤S104,根据所述各个节点的地址连接各个节点,将与所述私有种子文件对应的一组加密后的数据块上传至所述各个节点。
本申请实施例通过预先生成的私有种子文件连接至少一个跟踪服务器,进而通过跟踪服务器分配的各个节点的地址上传加密后的数据块,使其支持不公开的内容分散存储,基于此可以建立一个去中心的私有文件存储体系。
本申请第二实施例提供的一种基于私有种子文件的数据处理方法如下:
本申请实施例的执行主体是客户端,如图2所示,其示出了本申请实施例提供的一种基于私有种子文件的数据处理方法的流程图,包括以下步骤。
步骤S201,通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器。
步骤S202,向所述至少一个跟踪服务器发送一组加密后的数据块的下载请求,所述一组加密后的数据块对应所述私有种子文件。
步骤S203,接收所述至少一个跟踪服务器根据所述下载请求获取的能够下载所述一组加密后的数据块的各个节点的地址,所述一个加密后的数据块对应一个节点地址。
步骤S204,根据所述各个节点的地址连接所述各个节点,下载与所述私有种子文件对应的一组加密后的数据块。
本申请实施例通过预先生成的私有种子文件连接至少一个跟踪服务器,进而通过跟踪服务器获取的各个节点的地址下载加密后的数据块,使其支持不公开的内容恢复,基于此可以建立一个去中心的私有文件下载体系。
本申请第三实施例提供的一种基于私有种子文件的数据处理方法如下:
本申请实施例的执行主体是客户端,如图3所示,其示出了本申请实施例提供的一种基于私有种子文件的数据处理方法的流程图,包括以下步骤。
步骤S301,将压缩文件切分成各个数据块。
步骤S302,通过各个数据块对应的密钥对所述各个数据块进行加密形成各个加密后的数据块,并记录所述各个加密后的数据块对应的密钥。
步骤S303,获取所述至少一个跟踪服务器的地址。
步骤S304,生成所述私有种子文件并保存至本地,所述私有种子文件包括所述各个加密后的数据块的密钥和所述至少一个跟踪服务器的地址。
为了实现文件的私密分发和恢复,需要先制作一个pTorrent文件(私有种子文件)。Torrent(种子文件)本质上是一种文本文件,包含Tracker(跟踪服务器)信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker的地址和针对Tracker的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的B编码规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方,并把每个块的索引信息和Hash验证码(哈希值)写入Torrent中。所以,Torrent就是被下载文件的"索引"。
不同于Torrent,pTorrent文件由如下部分组成:
1、文件或文件夹中数据的密钥或加密算法、hash值(哈希值)。比如一个1G的文件,如果按1M每块进行分块,则会被分为了1000块,每一块的数据都会加密且加密算法都可以不同,pTorrent文件中就会有这1000个加密后的数据块的hash值和对应的加密算法/密钥。对每一个数据块都进行加密,使得数据块在传输过程中,即使其他用户下载到数据块,也会因为没有相应的加密算法/密钥而不能进行解密,只有有pTorrent文件的人才能获取加密后的数据块中的内容。
2、pTracker(pTorrent文件中的跟踪服务器)的地址列表。pTorrent文件中至少应该包含一个pTracker的地址,类似http://www.a.com:8080/announce这样的地址。pTracker提供一个查询接口,供客户端查询所有关联的pTracker地址。客户端会调用这个查询接口并将结果写入pTorrent文件,更多的pTracker地址可以降低内容还原的难度。
pTracker与BitTorrent中的Tracker功能上有较大区别。BitTorrent中的Tracker只是用作查询和记录的,收集下载者信息,并将此信息提供给其他下载者,使下载者们相互连接起来,传输数据。pTracker负责衔接加密后的数据块的分发和收集,在上传者需要上传各个加密后的数据块的时候,收集能够存储各个加密后的数据块的各个peer(节点),并控制客户端将各个加密后的数据块发送至各个peer。在下载者需要下载各个加密后的数据块的时候,获取能够下载各个加密后的数据块的各个peer(节点),并控制客户端从各个peer下载各个加密后的数据块。
3、文件信息,电脑唯一标识,原始存放位置,直接恢复至磁盘位置。原始存放位置,是客户端备份原始文件的整个目录,防止原始文件丢失。直接恢复至磁盘位置是指下载文件时,磁盘上直接命名好跟原始数据一样的目录结构、文件名,方便直接恢复。
4、其他辅助扩展信息,方便以后扩展使用,比如可以配置一个P2SP的http地址辅助下载,比如制作软件的名字、备注等。
将一个硬盘上的压缩文件制作成原始pTorrent文件的过程如下:
将压缩文件(例如,MyPhotos.zip)切分成各个数据块,例如按照1M1块,切分成100块,并临时存储。此时这些数据块组成一个完整的副本。
通过各个数据块对应的密钥/加密算法对所述各个数据块进行加密形成各个加密后的数据块,记录下对应的加密算法/密钥并临时存储。然后还需计算各个加密后的数据块的hash值,计算hash值的主要目的是确保传输的正确性。
获取所述至少一个pTracker的地址,生成所述私有种子文件并保存至本地,所述私有种子文件包括所述各个加密后的数据块的密钥/加密算法和所述至少一个跟踪服务器的地址,还包括加密后的数据块的hash值、加密后块临时存储位置、文件信息(例如,文件或者文件夹内每个文件的名字)、电脑唯一标识、原始存放路径、直接恢复至磁盘位置、其他辅助扩展信息等,将以上信息均写入pTorrent文件中。
基于以上过程就可以生成一个pTorrent文件(例如,MyPhotosZip.ptorrent),pTorrent文件不能拷给其他用户,只能保存至本地,即只有生成pTorrent文件的用户才能获得pTorrent文件。
步骤S305,通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器。
步骤S306,向所述至少一个跟踪服务器发送一组加密后的数据块的上传请求,所述一组加密后的数据块对应所述私有种子文件。
步骤S307,接收所述至少一个跟踪服务器根据所述上传请求分配的能够存储所述一组加密后的数据块的各个节点的地址,所述一个加密后的数据块对应一个节点地址。
本申请实施例的执行主体是客户端,在本步骤中,需配合跟踪服务器共同实现本步骤,具体过程见下文的论述。
步骤S308,根据所述各个节点的地址连接各个节点,将与所述私有种子文件对应的一组加密后的数据块上传至所述各个节点。
根据所述步骤S301至步骤S304,就可以实现制作压缩文件对应的pTorrent文件。接下来根据制作好的pTorrent文件就可以实现数据的上传,此处的上传是指将文件上传至其他用户的电脑上。
具体的,首先启动pTorrent客户端,打开上面制作好的pTorrent文件,执行上传功能。根据预先生成的pTorrent文件中的至少一个pTracker的地址,连接与各个所述至少一个pTracker的地址对应的至少一个pTracker。
在各个加密后的数据块上传过程中,pTracker负责分配能够存储一组加密后的数据块的各个节点的地址,判断有多少个peer可以用的,即判断有多少个peer在线并且与pTracker相连。各个peer需启动pTorrent客户端,并进行相关接收加密后的数据块的设置,才能接收另外的peer传输过来的加密后的数据块。pTracker可以有一个,也可以有多个,并且可以相互替代,以备随时宕机。在各个加密后的数据块上传过程中,pTracker的主要功能是保证所有的加密后的数据块上传成功,保证至少有一个副本上传成功。
需要说明的是,所述一组加密后的数据块对应所述私有种子文件,即所述一组加密后的数据块是一个完整的副本拆分成的各个加密后的数据块。
在一种优选的实施方案中,pTracker还可以保证一组加密的数据块存有多个副本,扩大下载成功的几率。
pTracker之间可以相互分发,假设有两个pTracker,分别叫PT1和PT2。PT1已经加入网络,PT2加入网络时被要求通知至少一个已有的pTracker,他通知了PT1,此时PT1和PT2的列表中都有两个pTracker,每次上传了新的加密的数据块,两个pTracker会互相保存对方的数据。例如,PT1有500个节点,PT2有500个节点,PT1和PT2可以分享节点,每次上传了新的加密的数据块,PT1和PT2会互相保存对方的数据。这样就保证一组加密的数据块存有多个副本,使数据不容易丢失,扩大了下载成功的几率。
在一种优选的实施方案中,pTracker还可以鼓励存储贡献。
pTracker记录每一个Peer接受的内容数和在线时长,以此分配每一个Peer可以上传的数据量。每一个Peer接受的内容数越多和在线时长越长,每一个Peer可以上传的数据量越大,以此鼓励分享。
其次,在客户端连接完至少一个pTracker之后,客户端向至少一个pTracker发送一组加密后的数据块的上传请求,并把每个加密后的数据块的hash值传给pTracker。客户端接收至少一个pTracker根据上传请求分配的能够存储所述一组加密后的数据块的各个Peer的地址,以供客户端连接并上传。
最后,客户端根据各个Peer的地址连接各个Peer,将与私有种子文件对应的一组加密后的数据块上传至各个Peer,并记录上传结果。
在加密后的数据块上传过程中,pTracker根据上传请求查找有多少个peer在线并且连接pTracker,获取在线并且连接pTracker的各个peer的地址并发送至客户端。客户端根据各个Peer的地址连接各个Peer,将之前请求上传的与私有种子文件对应的一组加密后的数据块上传到各个Peer中。pTracker记录每一个加密后的数据块的hash值、各个加密后的数据块的hash值之间的联系和每一个上传成功的加密后的数据块的peer的地址,以保存各个加密后的数据块之间的关系。使得pTracker能识别一个完整的副本由哪些加密后的数据块组成,以供在之后的加密后的数据块的下载过程中,pTracker能找到可以下载一个完整的副本文件的各个peer的地址,进而完成一个完整的副本文件的下载。
需要说明的是,一个加密后的数据块对应一个Peer地址。
在一种优选的实施方案中,一个Peer地址对应多个加密后的数据块。本申请实施例并不限定必须一个peer接收一个加密后的数据块,一个peer可以存储多个加密后的数据块,根据需求自行设定。
在一种优选的实施方案中,一个加密后的数据块对应多个Peer地址。同样,在防止丢失等原因的考虑下,可以将一个加密后的数据块存储在多个peer中。
在一种优选的实施方案中,部分peer可以当作pTracker执行相应的功能。本申请实施例并不限定pTracker必须是额外的跟踪服务器,peer也可以执行pTracker相应的功能,但不是所有的peer都可以当作pTracker,还是有部分peer仅仅只能上传加密后的数据块。
基于上述步骤S304至步骤S308,就可以将压缩文件的一个完整的副本通过拆分成各个加密后的数据块上传至P2P网络,本地原始文件、临时文件都可以删除。这个过程并没有把pTorrent文件分发出去,这个pTorrent文件是私有的,拥有这个pTorrent文件的人才可以恢复文件。
步骤S309,将剩余的加密后的数据块和/或上传失败的加密后的数据块组合形成一个新的一组加密后的数据块,返回步骤S306。
若还有剩余的加密后的数据块和/或上传失败的加密后的数据块,则将其组合在一起形成一个新的一组加密后的数据块,重复返回步骤S305重复执行,直到所有的加密后的数据块上传成功。
步骤S310,将上传成功的一组加密后的数据块分别对应的各个节点的地址写入所述私有种子文件中。
在pTorrent文件中新增各个加密后的数据块上传成功的各个Peer的地址列表,以供客户端通过pTorrent文件中的各个peer的地址直接连接各个peer。
步骤S311,通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器。
步骤S312,向所述至少一个跟踪服务器发送一组加密后的数据块的下载请求,所述一组加密后的数据块对应所述私有种子文件。
步骤S313,接收所述至少一个跟踪服务器根据所述下载请求获取的能够下载所述一组加密后的数据块的各个节点的地址,所述一个加密后的数据块对应一个节点地址。
本申请实施例的执行主体是客户端,在本步骤中,需配合跟踪服务器共同实现本步骤,具体过程见下文的论述。
步骤S314,根据所述各个节点的地址连接所述各个节点,下载与所述私有种子文件对应的一组加密后的数据块。
基于上述步骤S304至步骤S308,就可以将压缩文件的一个完整的副本通过拆分成各个加密后的数据块上传至P2P网络。下载者要下载文件内容,需要先得到相应的pTorrent文件,然后使用客户端进行下载。
具体的,首先启动pTorrent客户端,打开上面制作好的pTorrent文件,执行下载功能。根据预先生成的pTorrent文件中的至少一个pTracker的地址,连接与各个所述至少一个pTracker的地址对应的至少一个pTracker。
在各个加密后的数据块下载过程中,pTracker负责获取能够下载所述一组加密后的数据块的各个Peer的地址,即判断有多少个peer可以下载与一组加密后的数据块对应的加密后的数据块。各个peer需在线并且与pTracker相连,另外的peer才能下载存储在其中的加密后的数据块。pTracker可以从一大堆碎片,收集与所述一组加密后的数据块对应的各个Peer的地址,保证能够正确的下载和还原机制,但不保证每个加密后的数据块都下载成功。pTracker可以有一个,也可以有多个,并且可以相互替代,以备随时宕机。
需要说明的是,所述一组加密后的数据块对应所述私有种子文件,即所述一组加密后的数据块是一个完整的副本拆分成的各个加密后的数据块。
其次,在客户端连接完至少一个pTracker之后,客户端向至少一个pTracker发送一组加密后的数据块的下载请求,并把每个加密后的数据块的hash值传给pTracker。接收至少一个pTracker根据下载请求获取的能够下载所述一组加密后的数据块的各个Peer的地址,以供客户端连接并下载。
最后,根据各个Peer的地址连接各个Peer,下载与所述私有种子文件对应的一组加密后的数据块,并记录下载结果。
pTracker预先记录每一个加密后的数据块的hash值、各个加密后的数据块的hash值之间的联系和每一个上传成功的加密后的数据块的peer的地址,在加密后的数据块下载过程中,pTracker能识别一个完整的副本由哪些加密后的数据块组成,进而能找到组成完整的副本的加密后的数据块的预先上传的各个peer的地址。pTracker根据接收的需要下载的加密后的数据块的hash值查找对应的存储的peer的地址,并将其发送至客户端。客户端根据各个Peer的地址连接各个Peer,下载与所述私有种子文件对应的一组加密后的数据块。
需要说明的是,一个加密后的数据块对应一个Peer地址。
在一种优选的实施方案中,一个Peer地址对应多个加密后的数据块。本申请实施例并不限定必须一个peer存储一个加密后的数据块,一个peer可以存储多个加密后的数据块,根据需求自行设定。
在一种优选的实施方案中,一个加密后的数据块对应多个Peer地址。同样,在防止丢失等原因的考虑下,可以将一个加密后的数据块存储在多个peer中。
在一种优选的实施方案中,部分peer可以当作pTracker执行相应的功能。本申请实施例并不限定pTracker必须是额外的跟踪服务器,peer也可以执行pTracker相应的功能,但不是所有的peer都可以当作pTracker,还是有部分peer仅仅只能下载加密后的数据块。
基于上述步骤S311至步骤S314,就可以通过下载压缩文件拆分成的一组加密后的数据块下载压缩文件的一个完整的副本,本地原始文件、临时文件都可以删除。这个过程并没有把pTorrent文件分发出去,这个pTorrent文件是私有的,拥有这个pTorrent文件的人才可以恢复文件。
步骤S315,将所述一组加密后的数据块通过所述私有种子文件中的各个加密后的数据块的密钥进行解密,并将各个解密后的数据块组合形成压缩文件。
将下载的各个加密后的数据块,对照pTorrent文件中的加密算法/秘钥解密并拼成压缩文件。
步骤S316,将剩余的加密后的数据块和/或下载失败的加密后的数据块组合形成一个新的一组加密后的数据块,返回步骤S312。
将剩余的加密后的数据块和/或下载失败的加密后的数据块组合形成一个新的一组加密后的数据块,返回步骤S311重复下载。这个过程中,可以更换pTracker尝试下载所有的加密后的数据块。
步骤S317,若多次下载仍然失败,通过所述私有种子文件中预先存储的一组加密后的数据块分别对应的各个节点的地址直接连接所述各个节点进行下载。
若经过多次尝试仍然下载失败,尝试根据pTorrent文件中记录的与上传成功的一组加密后的数据块对应的各个Peer的地址列表,直接连接各个Peer进行下载。
需要说明的是,若pTorrent文件中记录了直接恢复至磁盘位置,可以将压缩文件移动至直接恢复至磁盘位置,临时文件可以删除。
本申请实施例,利用P2P网络帮助用户将内容分散存储,同时pTorrent文件基于原有BitTorrent进行改进,改变了种子文件的内容和分发机制,改进了pTracker和peer和的功能,使私密分发和恢复成为可能。目前有加密的云盘,由运营商服务器管理,基于P2P的无中心的私有存取方案还没有,加密的云盘运营商需要收费,本申请不需要运营商收费,降低了成本,运行简单方便。
本申请第四实施例提供的一种客户端如下:
在上述的第一实施例中,提供了客户端为执行主体的一种私有种子文件的数据处理方法,与之相对应的,本申请还提供了一种客户端。
由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的第一实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的,下面结合附图进行说明。
如图4所示,其示出了本申请实施例提供的客户端的结构示意图,包括以下模块。
切分模块11,用于将压缩文件切分成各个数据块;
加密模块12,用于通过各个数据块对应的密钥对所述各个数据块进行加密形成各个加密后的数据块,并记录所述各个加密后的数据块对应的密钥;
获取模块13,用于获取所述至少一个跟踪服务器的地址;
生成模块14,用于生成所述私有种子文件并保存至本地,所述私有种子文件包括所述各个加密后的数据块的密钥和所述至少一个跟踪服务器的地址;
跟踪服务器连接模块15,用于通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器;
上传请求发送模块16,用于向所述至少一个跟踪服务器发送一组加密后的数据块的上传请求,所述一组加密后的数据块对应所述私有种子文件;
节点地址接收模块17,用于接收所述至少一个跟踪服务器根据所述上传请求分配的能够存储所述一组加密后的数据块的各个节点的地址,所述一个加密后的数据块对应一个节点地址;
上传模块18,用于根据所述各个节点的地址连接各个节点,将与所述私有种子文件对应的一组加密后的数据块上传至所述各个节点;
返回模块19,用于将剩余的加密后的数据块和/或上传失败的加密后的数据块组合形成一个新的一组加密后的数据块,返回所述上传请求发送模块16;
更新模块110,用于将上传成功的一组加密后的数据块分别对应的各个节点的地址写入所述私有种子文件中。
本申请第五实施例提供的一种客户端如下:
在上述的第二实施例中,提供了客户端为执行主体的一种私有种子文件的数据处理方法,与之相对应的,本申请还提供了一种客户端。
由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的第二实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的,下面结合附图进行说明。
如图5所示,其示出了本申请实施例提供的客户端的结构示意图,包括以下模块。
跟踪服务器连接模块21,用于通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器;
下载请求发送模块22,用于向所述至少一个跟踪服务器发送一组加密后的数据块的下载请求,所述一组加密后的数据块对应所述私有种子文件;
节点地址接收模块23,用于接收所述至少一个跟踪服务器根据所述下载请求获取的能够下载所述一组加密后的数据块的各个节点的地址,所述一个加密后的数据块对应一个节点地址;
下载模块24,用于根据所述各个节点的地址连接所述各个节点,下载与所述私有种子文件对应的一组加密后的数据块。
解密模块25,用于将所述一组加密后的数据块通过所述私有种子文件中的各个加密后的数据块的密钥进行解密,并将各个解密后的数据块组合形成压缩文件。
返回模块26,用于将剩余的加密后的数据块和/或下载失败的加密后的数据块组合形成一个新的一组加密后的数据块,返回所述下载请求发送模块22。
节点下载模块27,用于若多次下载仍然失败,通过所述私有种子文件中预先存储的一组加密后的数据块分别对应的各个节点的地址直接连接所述各个节点进行下载。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (8)
1.一种基于私有种子文件的数据处理方法,其特征在于,包括:
将压缩文件切分成各个数据块;
通过各个数据块对应的密钥对所述各个数据块进行加密形成各个加密后的数据块,并记录所述各个加密后的数据块对应的密钥;
获取至少一个跟踪服务器的地址;
生成私有种子文件并保存至本地,所述私有种子文件包括所述各个加密后的数据块的密钥和所述至少一个跟踪服务器的地址;
通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器;
向所述至少一个跟踪服务器发送一组加密后的数据块的上传请求和所述一组加密后的数据块的哈希值,所述一组加密后的数据块包括所述压缩文件切分出的所有数据块加密后的结果;
接收所述至少一个跟踪服务器根据所述上传请求分配的能够存储所述一组加密后的数据块的各个节点的地址,一个加密后的数据块对应一个节点地址;
根据所述各个节点的地址连接各个节点,将与所述私有种子文件对应的一组加密后的数据块上传至所述各个节点。
2.根据权利要求1所述的基于私有种子文件的数据处理方法,其特征在于,所述根据所述各个节点的地址连接所述各个节点,将与所述私有种子文件对应的一组加密后的数据块上传至所述各个节点步骤之后,还包括:
将剩余的加密后的数据块和/或上传失败的加密后的数据块组合形成一个新的一组加密后的数据块,返回向所述至少一个跟踪服务器发送一组加密后的数据块的上传请求的步骤。
3.根据权利要求2所述的基于私有种子文件的数据处理方法,其特征在于,所述将剩余的加密后的数据块和/或上传失败的加密后的数据块组合形成一个新的一组加密后的数据块,返回向所述至少一个跟踪服务器发送一组加密后的数据块的上传请求的步骤之后,还包括:
将上传成功的一组加密后的数据块分别对应的各个节点的地址写入所述私有种子文件中。
4.一种基于私有种子文件的数据处理方法,其特征在于,包括:
通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器;
向所述至少一个跟踪服务器发送一组加密后的数据块的下载请求和所述一组加密后的数据块的哈希值,所述一组加密后的数据块包括压缩文件切分出的所有数据块加密后的结果;
接收所述至少一个跟踪服务器根据所述下载请求获取的能够下载所述一组加密后的数据块的各个节点的地址,一个加密后的数据块对应一个节点地址,所述各个节点的地址是所述跟踪服务器根据预先存储的所述一组加密后的数据块的哈希值与存储节点的地址的映射关系确定出的;
根据所述各个节点的地址连接所述各个节点,下载与所述私有种子文件对应的一组加密后的数据块;
将各个加密后的数据块通过所述私有种子文件中的一组加密后的数据块的密钥进行解密,并将各个解密后的数据块组合形成压缩文件。
5.根据权利要求4所述的基于私有种子文件的数据处理方法,其特征在于,所述根据所述各个节点的地址连接所述各个节点,下载与所述私有种子文件对应的一组加密后的数据块步骤之后,还包括:
将剩余的加密后的数据块和/或下载失败的加密后的数据块组合形成一个新的一组加密后的数据块,返回向所述至少一个跟踪服务器发送一组加密后的数据块的下载请求的步骤。
6.根据权利要求5所述的基于私有种子文件的数据处理方法,其特征在于,所述将剩余的加密后的数据块和/或下载失败的加密后的数据块组合形成一个新的一组加密后的数据块,返回向所述至少一个跟踪服务器发送一组加密后的数据块的下载请求步骤之后,还包括:
若多次下载仍然失败,通过所述私有种子文件中预先存储的一组加密后的数据块分别对应的各个节点的地址直接连接所述各个节点进行下载。
7.一种客户端,其特征在于,包括:
切分模块,用于将压缩文件切分成各个数据块;
加密模块,用于通过各个数据块对应的密钥对所述各个数据块进行加密形成各个加密后的数据块,并记录所述各个加密后的数据块对应的密钥;
获取模块,用于获取至少一个跟踪服务器的地址;
生成模块,用于生成私有种子文件并保存至本地,所述私有种子文件包括所述各个加密后的数据块的密钥和所述至少一个跟踪服务器的地址;
跟踪服务器连接模块,用于通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器;
上传请求发送模块,用于向所述至少一个跟踪服务器发送一组加密后的数据块的上传请求和所述一组加密后的数据块的哈希值,所述一组加密后的数据块包括所述压缩文件切分出的所有数据块加密后的结果;
节点地址接收模块,用于接收所述至少一个跟踪服务器根据所述上传请求分配的能够存储所述一组加密后的数据块的各个节点的地址,一个加密后的数据块对应一个节点地址;
上传模块,用于根据所述各个节点的地址连接所述各个节点,将与所述私有种子文件对应的一组加密后的数据块上传至所述各个节点。
8.一种客户端,其特征在于,包括:
跟踪服务器连接模块,用于通过预先生成的私有种子文件中的至少一个跟踪服务器的地址,连接与各个所述至少一个跟踪服务器的地址对应的至少一个跟踪服务器;
哈希值发送模块,用于向所述至少一个跟踪服务器发送一组加密后的数据块的下载请求,所述一组加密后的数据块包括压缩文件切分出的所有数据块加密后的结果;
节点地址接收模块,用于接收所述至少一个跟踪服务器根据所述下载请求获取的能够下载所述一组加密后的数据块的各个节点的地址,一个加密后的数据块对应一个节点地址,所述各个节点的地址是所述跟踪服务器根据预先存储的所述一组加密后的数据块的哈希值对应的存储节点的地址确定出的;
下载模块,用于根据所述各个节点的地址连接所述各个节点,下载与所述私有种子文件对应的一组加密后的数据块;
解密模块,用于将所述一组加密后的数据块通过所述私有种子文件中的各个加密后的数据块的密钥进行解密,并将各个解密后的数据块组合形成压缩文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810903698.6A CN109040258B (zh) | 2018-08-09 | 2018-08-09 | 一种基于私有种子文件的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810903698.6A CN109040258B (zh) | 2018-08-09 | 2018-08-09 | 一种基于私有种子文件的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109040258A CN109040258A (zh) | 2018-12-18 |
CN109040258B true CN109040258B (zh) | 2021-06-18 |
Family
ID=64632484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810903698.6A Active CN109040258B (zh) | 2018-08-09 | 2018-08-09 | 一种基于私有种子文件的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109040258B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107770115A (zh) * | 2016-08-15 | 2018-03-06 | 华为技术有限公司 | 在对等网络中分发数字内容的方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098268A (zh) * | 2006-06-26 | 2008-01-02 | 林能敬 | 网络教学的p2p服务方法 |
GB2440762B (en) * | 2006-08-11 | 2011-11-02 | Cachelogic Ltd | Content distribution network |
CN101026543A (zh) * | 2007-03-28 | 2007-08-29 | 华为技术有限公司 | 点到点p2p内容共享的方法及系统 |
US20080307094A1 (en) * | 2007-06-11 | 2008-12-11 | Olli Karonen | Association of peer-to-peer contribution credits with multiple devices |
CN102420864B (zh) * | 2011-12-01 | 2014-03-26 | 河海大学 | 一种面向海量数据的数据交换方法 |
-
2018
- 2018-08-09 CN CN201810903698.6A patent/CN109040258B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107770115A (zh) * | 2016-08-15 | 2018-03-06 | 华为技术有限公司 | 在对等网络中分发数字内容的方法和系统 |
Non-Patent Citations (1)
Title |
---|
"Private Tracker(PT)新手使用小记";Momo_Kong;《简书》;20150823;第1-2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109040258A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11863380B2 (en) | Community internet drive | |
US8051205B2 (en) | Peer-to-peer distributed storage | |
EP3556045B1 (en) | P2p network data distribution and retrieval using blockchain log | |
KR102074006B1 (ko) | 클라우드-기반 분산 데이터 시스템 | |
CN113572618B (zh) | 结合Fabric和IPFS的去中心化存储系统及其数据存储方法 | |
AU2009244352B2 (en) | Deletion in data file forwarding framework | |
US20120110005A1 (en) | System and method for sharing online storage services among multiple users | |
AU2009296744B2 (en) | Selective data forwarding storage | |
EP2622456B1 (en) | Optimized recovery | |
WO2012080744A1 (en) | Distributed file systems | |
US9390101B1 (en) | Social deduplication using trust networks | |
KR20130137897A (ko) | 비대칭형 클러스터 파일 시스템의 데이터 관리 방법 | |
JP6671617B1 (ja) | ブロックチェーン技術と分散ストレージ技術とにより実現した分散型ストレージプラットフォームおよびアプリケーションプログラム | |
CN109040258B (zh) | 一种基于私有种子文件的数据处理方法及装置 | |
JP2004046874A (ja) | データ送信装置および方法、データ受信装置および方法、ならびに、データ分散システムおよび方法 | |
JP7119324B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP7462922B2 (ja) | ブロックチェーン技術と分散ストレージ技術とにより実現した分散型ストレージプラットフォームおよびアプリケーションプログラム | |
WO2016094614A1 (en) | Nas off-loading of network traffic for shared files | |
Bouffard et al. | Improving the Speed of Peer to Peer Backup Systems with BitTorrent | |
Hammami et al. | A System Architecture for Data Storage in the Cloud | |
Annapureddy | Scaling data servers via cooperative caching | |
Rangdale | Data Deduplication using Hybrid Cloud Architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |