CN110149373B - 基于点对点网络的数据存储方法、装置、介质及服务器 - Google Patents

基于点对点网络的数据存储方法、装置、介质及服务器 Download PDF

Info

Publication number
CN110149373B
CN110149373B CN201910347838.0A CN201910347838A CN110149373B CN 110149373 B CN110149373 B CN 110149373B CN 201910347838 A CN201910347838 A CN 201910347838A CN 110149373 B CN110149373 B CN 110149373B
Authority
CN
China
Prior art keywords
data
hash
point
fragment
data fragment
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
Application number
CN201910347838.0A
Other languages
English (en)
Other versions
CN110149373A (zh
Inventor
雷琼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910347838.0A priority Critical patent/CN110149373B/zh
Publication of CN110149373A publication Critical patent/CN110149373A/zh
Priority to PCT/CN2019/118129 priority patent/WO2020220641A1/zh
Application granted granted Critical
Publication of CN110149373B publication Critical patent/CN110149373B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明属于计算机技术领域,尤其涉及一种基于点对点网络的数据存储方法、装置、计算机可读存储介质及服务器。所述方法在接收到终端设备上传的待存储数据后,首先将所述待存储数据划分为各个数据分片,并计算其哈希值,然后根据各个数据分片的哈希值在所述点对点网络中确定与各个数据分片分别对应的目标节点,再分别构造各个数据分片的授权信息,并向各个目标节点分别发送所述授权信息,最后分别接收各个目标节点在对所述授权信息进行验证后发送的反馈信息,若与某一数据分片对应的目标节点对该数据分片的授权信息的反馈信息为确认信息,则将该数据分片发送至与该数据分片对应的目标节点进行存储,保证了整个数据存储过程安全有序的进行。

Description

基于点对点网络的数据存储方法、装置、介质及服务器
技术领域
本发明属于计算机技术领域,尤其涉及一种基于点对点网络的数据存储方法、装置、计算机可读存储介质及服务器。
背景技术
点对点(Peer-to-Peer,P2P)网络是一种主要由大量的对等节点组成的网络架构,不同节点之间关系对等,可以互相传输资源。在资源传输过程中,每个节点既会从网络中其他拥有资源的节点获取所需的资源,也会将已下载的资源分发给网络中每个需要该资源的节点。
但目前大部分点对点网络在进行数据存储时,往往采取随机分发存储的方式,且在分发存储过程中,并没有有效的授权及验证机制,导致整个点对点网络缺乏整体协调,交互过程较为混乱。
发明内容
有鉴于此,本发明实施例提供了一种基于点对点网络的数据存储方法、装置、计算机可读存储介质及服务器,以解决现有的点对点网络在进行数据存储时缺乏整体协调,交互过程较为混乱的问题。
本发明实施例的第一方面提供了一种基于点对点网络的数据存储方法,可以包括:
接收终端设备上传的待存储数据,所述终端设备为所述点对点网络中的任意一个节点;
将所述待存储数据划分为各个数据分片,并使用预设的第一哈希函数分别计算各个数据分片的哈希值;
根据各个数据分片的哈希值在所述点对点网络中确定与各个数据分片分别对应的目标节点;
分别构造各个数据分片的授权信息,并向各个目标节点分别发送所述授权信息,其中,第s个数据分片的授权信息被发送至与第s个数据分片对应的目标节点,1≤s≤SN,SN为数据分片的数目;
分别接收各个目标节点在对所述授权信息进行验证后发送的反馈信息,若与第s个数据分片对应的目标节点对第s个数据分片的授权信息的反馈信息为确认信息,则将第s个数据分片发送至与第s个数据分片对应的目标节点进行存储。
本发明实施例的第二方面提供了一种数据存储装置,可以包括:
数据接收模块,用于接收终端设备上传的待存储数据,所述终端设备为所述点对点网络中的任意一个节点;
数据划分模块,用于将所述待存储数据划分为各个数据分片;
分片哈希值计算模块,用于使用预设的第一哈希函数分别计算各个数据分片的哈希值;
目标节点确定模块,用于根据各个数据分片的哈希值在所述点对点网络中确定与各个数据分片分别对应的目标节点;
授权信息构造模块,用于分别构造各个数据分片的授权信息;
授权信息发送模块,用于向各个目标节点分别发送所述授权信息,其中,第s个数据分片的授权信息被发送至与第s个数据分片对应的目标节点,1≤s≤SN,SN为数据分片的数目;
反馈信息接收模块,用于分别接收各个目标节点在对所述授权信息进行验证后发送的反馈信息;
数据分片发送模块,用于若与第s个数据分片对应的目标节点对第s个数据分片的授权信息的反馈信息为确认信息,则将第s个数据分片发送至与第s个数据分片对应的目标节点进行存储。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如下步骤:
接收终端设备上传的待存储数据,所述终端设备为所述点对点网络中的任意一个节点;
将所述待存储数据划分为各个数据分片,并使用预设的第一哈希函数分别计算各个数据分片的哈希值;
根据各个数据分片的哈希值在所述点对点网络中确定与各个数据分片分别对应的目标节点;
分别构造各个数据分片的授权信息,并向各个目标节点分别发送所述授权信息,其中,第s个数据分片的授权信息被发送至与第s个数据分片对应的目标节点,1≤s≤SN,SN为数据分片的数目;
分别接收各个目标节点在对所述授权信息进行验证后发送的反馈信息,若与第s个数据分片对应的目标节点对第s个数据分片的授权信息的反馈信息为确认信息,则将第s个数据分片发送至与第s个数据分片对应的目标节点进行存储。
本发明实施例的第四方面提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:
接收终端设备上传的待存储数据,所述终端设备为所述点对点网络中的任意一个节点;
将所述待存储数据划分为各个数据分片,并使用预设的第一哈希函数分别计算各个数据分片的哈希值;
根据各个数据分片的哈希值在所述点对点网络中确定与各个数据分片分别对应的目标节点;
分别构造各个数据分片的授权信息,并向各个目标节点分别发送所述授权信息,其中,第s个数据分片的授权信息被发送至与第s个数据分片对应的目标节点,1≤s≤SN,SN为数据分片的数目;
分别接收各个目标节点在对所述授权信息进行验证后发送的反馈信息,若与第s个数据分片对应的目标节点对第s个数据分片的授权信息的反馈信息为确认信息,则将第s个数据分片发送至与第s个数据分片对应的目标节点进行存储。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例在接收到终端设备上传的待存储数据后,首先将所述待存储数据划分为各个数据分片,并使用预设的第一哈希函数分别计算各个数据分片的哈希值,然后根据各个数据分片的哈希值在所述点对点网络中确定与各个数据分片分别对应的目标节点,再分别构造各个数据分片的授权信息,并向各个目标节点分别发送所述授权信息,最后分别接收各个目标节点在对所述授权信息进行验证后发送的反馈信息,若与某一数据分片对应的目标节点对该数据分片的授权信息的反馈信息为确认信息,则将该数据分片发送至与该数据分片对应的目标节点进行存储。在本发明实施例中,不再采用传统的随机分发存储方式,而是利用哈希运算从整体上协调确定数据分发的对象(即所述目标节点),并且通过与分发对象之间的授权及验证机制,保证了整个数据存储过程安全有序的进行。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例中一种基于点对点网络的数据存储方法的一个实施例流程图;
图2为根据各个数据分片的哈希值在点对点网络中确定与各个数据分片分别对应的目标节点的示意流程图;
图3为哈希环的示意图;
图4为点对点网络中的节点映射至哈希环上的示意图;
图5为在哈希环上查找目标节点的示意图;
图6为分别构造各个数据分片的授权信息的示意流程图;
图7为本发明实施例中一种数据存储装置的一个实施例结构图;
图8为本发明实施例中一种服务器的示意框图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例中一种基于点对点网络的数据存储方法的一个实施例可以包括:
步骤S101、接收终端设备上传的待存储数据。
所述终端设备为所述点对点网络中的任意一个节点。
在实际使用过程中,若某一用户需要将其手机、平板、电脑等等终端设备中的数据存储到所述点对点网络中,可以通过其终端设备向指定的服务器提交数据存储请求,在得到服务器的确认后,再通过该终端设备将待存储数据上传至服务器中。
步骤S102、将所述待存储数据划分为各个数据分片,并使用预设的第一哈希函数分别计算各个数据分片的哈希值。
服务器在接收到待存储数据后,首先对其进行分片处理,即按照一定的规则,将一个数据集(即所述待存储数据)划分成多个相互独立、正交的数据子集(即各个数据分片),以便于分布式存储。
具体地,服务器可以首先根据下式计算数据分片的数目:
Figure BDA0002042952950000061
其中,DataBytes为所述待存储数据的字节数,MaxShard为数据分片的最大字节数,其具体取值可以根据实际情况进行设置,例如,可以将其设置为1024、2048、4096或者其它取值,Ceil为向上取整函数,SN为数据分片的数目。
然后,将所述待存储数据划分为满足以下条件的SN个数据分片:
Figure BDA0002042952950000062
其中,s为各个数据分片的序号,1≤s≤SN,ShdBytess为第s个数据分片的字节数,Max为求最大值函数,Min为求最小值函数,Thresh为预设的比例阈值,其具体取值可以根据实际情况进行设置,例如,可以将其设置为0.1、0.2、0.3或者其它取值。
在完成数据分片的划分之后,服务器可以为每个数据分片均分配一个分片标识,且各个数据分片的标识在整个点对点网络中均是唯一的,任意两个数据分片的分片标识均不相同。然后服务器可以根据下式分别计算各个数据分片的哈希值:
ShardHashs=FsHashFunc(ShardIDs)
其中,ShardIDs为第s个数据分片的分片标识,FsHashFunc为所述第一哈希函数,ShardHashs为第s个数据分片的哈希值。
所有的哈希函数都有如下一个基本特性:如果两个哈希值是不相同的(根据同一哈希函数),那么这两个哈希值的原始输入也是不相同的。这个特性使哈希函数具有确定性的结果。但另一方面,哈希函数的输入和输出不是唯一对应关系的,如果两个哈希值相同,两个输入值很可能是相同的,但也可能不同,这种情况称为“哈希碰撞”,这通常是两个不同的输入值,刻意计算出相同的输出值。但对于现有技术中常用的哈希函数而言,其发生碰撞的概率极低,几乎可以忽略不计,输入一些数据计算出哈希值,然后部分改变输入值,一个具有强混淆特性的哈希函数会产生一个完全不同的哈希值。本实施例中的第一哈希函数以及其它哈希函数可以包括但不限于MD4、MD5、SHA1等任意一个现有技术中常用的哈希函数。
步骤S103、根据各个数据分片的哈希值在所述点对点网络中确定与各个数据分片分别对应的目标节点。
具体地,步骤S103可以包括如图2所示的过程:
步骤S1031、将预设的哈希环上与第s个数据分片的哈希值对应的位置点确定目标位置点。
所述哈希环为由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的圆环,即所述哈希环上的每个位置点均对应于所述第一哈希函数的一个函数值,若所述第一哈希函数的值域为[0,N],且以顺时针的顺序排列,则可构成如图3所示的哈希环。
步骤S1032、获取所述哈希环上的各个基准位置点。
其中,每个基准位置点均为与所述点对点网络中的一个节点对应的位置点。所述基准位置点的设置过程包括:
首先,获取所述点对点网络中的各个节点的身份标识。
某一节点的身份标识可以为该节点的国际移动设备身份码(InternationalMobile Equipment Identity,IMEI),国际移动设备身份码是由15位数字组成的电子串号,它与每个终端设备一一对应,而且该码是全世界唯一的。每一个终端设备在组装完成后都将被赋予一个全球唯一的号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。
将获取到的各个节点的身份标识分别表示为:NodeID1、NodeID2、…、NodeIDm、…、NodeIDM,其中,m为各个节点的序号,1≤m≤M,M为所述点对点网络中的节点数目,NodeIDm为第m个节点的身份标识。
然后,使用预设的第二哈希函数分别对所述点对点网络中的各个节点的身份标识进行哈希运算,得到各个节点的哈希值。
具体地,可以根据下式分别计算各个节点的哈希值:
NodeHashm=SdHashFunc(NodeIDm)
其中,SdHashFunc为所述第二哈希函数,且所述第二哈希函数的值域与所述第一哈希函数的值域一致,以此保证两者可以映射到同一个哈希环上,NodeHashm为第m个节点的哈希值。
最后,将所述哈希环上与第m个节点的哈希值对应的位置点确定为与第m个节点对应的基准位置点。
图4所示为4个节点的哈希值分别映射至哈希环上的情形,NodeHash1、NodeHash2、NodeHash3、NodeHash4所对应的位置点即为各个基准位置点。
步骤S1033、从所述目标位置点开始顺时针或者逆时针查找所述基准位置点,并将查找到的第一个基准位置点所对应的节点确定为与第s个数据分片对应的目标节点。
以图5为例,从第1个数据分片的哈希值ShardHash1对应的目标位置点开始顺时针查找,找到的第一个基准位置点为NodeHash2对应的位置点,则将所述点对点网络中的第2个节点确定为与第1个数据分片对应的目标节点。
通过上述方法,可以确定出以下的存储对应关系:
数据分片 目标节点
数据分片1、数据分片2 节点2
数据分片3 节点3
数据分片4、数据分片5 节点4
数据分片6、数据分片7 节点1
若采用逆时针查找的方法,其具体过程与逆时针查找的过程类似,具体可参照上述过程,此处不再赘述。
步骤S104、分别构造各个数据分片的授权信息,并向各个目标节点分别发送所述授权信息。
具体地,构造授权信息的过程可以包括如图6所示的步骤:
步骤S1041、将第s个数据分片的分片标识、哈希值、目标节点标识、授权时效信息、证书哈希值封装为第s个数据分片的授权内容。
所述授权时效信息一般为一个时间点,也即授权信息失效的时间点,在该时间点之前授权信息才是有效的。
所述证书哈希值为对所述点对点网络的电子证书进行哈希运算得到的哈希值。
优选地,在授权内容中还可以包括Nonce,Nonce是一个只被使用一次的任意或非重复的随机数值,确保信息不被重复使用以对抗重放攻击(Replay Attack)。
步骤S1042、使用预设的第三哈希函数对第s个数据分片的授权内容进行哈希计算,得到第s个数据分片的授权摘要。
步骤S1043、使用预设的数据加密算法对第s个数据分片的授权摘要进行加密,得到第s个数据分片的数字签名。
数字签名在此处起到两个作用,第一,可以确定授权内容来自于服务器,第二,可以确定授权内容在传输过程中未被篡改,也没有损失数据。因为哈希函数的特性,只要授权内容中的任一比特发生改变,则通过哈希函数计算的授权摘要就会发生变化,因此如果授权内容在传输过程中,其授权摘要未发生变化,即可以确定授权内容未被篡改,且授权内容被完整传输。
步骤S1044、将第s个数据分片的授权内容、所述数字签名、所述电子证书构造为第s个数据分片的授权信息。
所述电子证书由所述点对点网络中各个节点所信任的根证书所签发,用于证明服务器的公钥的真实性,使得各个节点可以使用服务器提供的公钥进行后续的解密操作。
在上述授权信息的构造过程完成后,第s个数据分片的授权信息被发送至与第s个数据分片对应的目标节点。
步骤S105、分别接收各个目标节点在对所述授权信息进行验证后发送的反馈信息,并根据所述反馈消息进行各个数据分片的存储。
任意一个目标节点在接收到服务器发送的授权信息后,可以通过如下过程对其进行四重验证:
第一重验证:提取授权信息中的电子证书,并对其进行哈希运算,得到其哈希值,将该哈希值记为verify_hash,然后提取授权信息中的证书哈希值,将其记为platform_certificate_hash,对这两者进行比对。若两者比对不一致,则说明电子证书已被篡改,则当前的目标节点可以拒绝此次接收到的授权信息,向服务器发送拒绝信息。若两者比对一致,则说明电子证书未被篡改,继续执行后续验证过程。
第二重验证:使用目标节点所信任的根证书对授权信息中的电子证书进行验证,若验证不通过,则说明该电子证书不是真实的电子证书,则当前的目标节点可以拒绝此次接收到的授权信息,向服务器发送拒绝信息。若验证通过,则说明该电子证书是真实的电子证书,继续执行后续验证过程。
第三重验证:提取授权信息中的数字签名,并对其进行验证。具体地,首先提取授权信息中的授权内容,并采用所述第三哈希函数计算出其授权摘要,然后从电子证书中提取出公钥,使用该公钥对数字签名进行解密,得到解密数据,最后将计算得到的授权摘要与解密数据两者进行比对,若两者比对不一致,则说明授权内容已被篡改,则当前的目标节点可以拒绝此次接收到的授权信息,向服务器发送拒绝信息。若两者比对一致,则说明授权内容未被篡改,继续执行后续验证过程。
第四重验证:提取授权信息中的目标节点标识,判断当前目标节点的节点标识是否与其一致,若两者不一致,则说明当前目标节点并不是需要执行存储数据分片的节点,则当前的目标节点可以拒绝此次接收到的授权信息,向服务器发送拒绝信息。若两者一致,则说明当前的目标节点是需要执行存储数据分片的节点,此时,当前的目标节点会向服务器发送确认信息。
服务器在接收到各个目标节点在对所述授权信息进行验证后发送的反馈信息之后,对其进行判断,若与第s个数据分片对应的目标节点对第s个数据分片的授权信息的反馈信息为拒绝信息,则按照执行步骤S104重新构造第s个数据分片的授权信息,并向与第s个数据分片对应的目标节点重新发送所述授权信息,直至收到与第s个数据分片对应的目标节点发送的确认信息为止。若与第s个数据分片对应的目标节点对第s个数据分片的授权信息的反馈信息为确认信息,则将第s个数据分片发送至与第s个数据分片对应的目标节点进行存储。
目标节点在接收到服务器发送的数据分片之后,将数据分片的分片标识与授权信息中的分片标识进行比对,若两者比对不一致,则说明数据分片接收有误,向服务器发送错误反馈信息,若两者比对一致,则说明数据分片无误,进一步对数据分片的内容进行核对,计算数据分片的哈希值,并将该哈希值与授权信息中的哈希值进行比对,若两者比对不一致,则说明当前接收到的数据分片内容已被篡改,向服务器发送错误反馈信息,若两者比对一致,则说明当前接收到的数据分片内容完整无误,将其存储在当前节点中进行存储。
综上所述,本发明实施例在接收到终端设备上传的待存储数据后,首先将所述待存储数据划分为各个数据分片,并使用预设的第一哈希函数分别计算各个数据分片的哈希值,然后根据各个数据分片的哈希值在所述点对点网络中确定与各个数据分片分别对应的目标节点,再分别构造各个数据分片的授权信息,并向各个目标节点分别发送所述授权信息,最后分别接收各个目标节点在对所述授权信息进行验证后发送的反馈信息,若与某一数据分片对应的目标节点对该数据分片的授权信息的反馈信息为确认信息,则将该数据分片发送至与该数据分片对应的目标节点进行存储。在本发明实施例中,不再采用传统的随机分发存储方式,而是利用哈希运算从整体上协调确定数据分发的对象(即所述目标节点),并且通过与分发对象之间的授权及验证机制,保证了整个数据存储过程安全有序的进行。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的一种基于点对点网络的数据存储方法,图7示出了本发明实施例提供的一种数据存储装置的一个实施例结构图。
本实施例中,一种数据存储装置可以包括:
数据接收模块701,用于接收终端设备上传的待存储数据,所述终端设备为所述点对点网络中的任意一个节点;
数据划分模块702,用于将所述待存储数据划分为各个数据分片;
分片哈希值计算模块703,用于使用预设的第一哈希函数分别计算各个数据分片的哈希值;
目标节点确定模块704,用于根据各个数据分片的哈希值在所述点对点网络中确定与各个数据分片分别对应的目标节点;
授权信息构造模块705,用于分别构造各个数据分片的授权信息;
授权信息发送模块706,用于向各个目标节点分别发送所述授权信息,其中,第s个数据分片的授权信息被发送至与第s个数据分片对应的目标节点,1≤s≤SN,SN为数据分片的数目;
反馈信息接收模块707,用于分别接收各个目标节点在对所述授权信息进行验证后发送的反馈信息;
数据分片发送模块708,用于若与第s个数据分片对应的目标节点对第s个数据分片的授权信息的反馈信息为确认信息,则将第s个数据分片发送至与第s个数据分片对应的目标节点进行存储。
进一步地,所述数据划分模块可以包括:
分片数目计算单元,用于根据下式计算数据分片的数目:
Figure BDA0002042952950000131
其中,DataBytes为所述待存储数据的字节数,MaxShard为数据分片的最大字节数,Ceil为向上取整函数;
数据划分单元,用于将所述待存储数据划分为满足以下条件的SN个数据分片:
Figure BDA0002042952950000132
其中,ShdBytess为第s个数据分片的字节数,Max为求最大值函数,Min为求最小值函数,Thresh为预设的比例阈值。
进一步地,所述目标节点确定模块可以包括:
目标位置点确定单元,用于将预设的哈希环上与第s个数据分片的哈希值对应的位置点确定目标位置点,所述哈希环为由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的圆环,即所述哈希环上的每个位置点均对应于所述第一哈希函数的一个函数值;
基准位置点获取单元,用于获取所述哈希环上的各个基准位置点,其中,每个基准位置点均为与所述点对点网络中的一个节点对应的位置点;
目标节点确定单元,用于从所述目标位置点开始顺时针或者逆时针查找所述基准位置点,并将查找到的第一个基准位置点所对应的节点确定为与第s个数据分片对应的目标节点。
进一步地,所述数据存储装置还可以包括:
身份标识获取模块,用于获取所述点对点网络中的各个节点的身份标识;
节点哈希值计算模块,用于使用预设的第二哈希函数分别对所述点对点网络中的各个节点的身份标识进行哈希运算,得到各个节点的哈希值,所述第二哈希函数的值域与所述第一哈希函数的值域一致;
基准位置点确定模块,用于将所述哈希环上与第m个节点的哈希值对应的位置点确定为与第m个节点对应的基准位置点,1≤m≤M,M为所述点对点网络中的节点数目。
进一步地,所述授权信息构造模块可以包括:
授权内容封装单元,用于将第s个数据分片的分片标识、哈希值、目标节点标识、授权时效信息、证书哈希值封装为第s个数据分片的授权内容,所述证书哈希值为对所述点对点网络的电子证书进行哈希运算得到的哈希值;
授权摘要计算单元,用于使用预设的第三哈希函数对第s个数据分片的授权内容进行哈希计算,得到第s个数据分片的授权摘要;
数据加密单元,用于使用预设的数据加密算法对第s个数据分片的授权摘要进行加密,得到第s个数据分片的数字签名;
授权信息构造单元,用于将第s个数据分片的授权内容、所述数字签名、所述电子证书构造为第s个数据分片的授权信息。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
图8示出了本发明实施例提供的一种服务器的示意框图,为了便于说明,仅示出了与本发明实施例相关的部分。
在本实施例中,所述服务器8可以包括:处理器80、存储器81以及存储在所述存储器81中并可在所述处理器80上运行的计算机可读指令82,例如执行上述的基于点对点网络的数据存储方法的计算机可读指令。所述处理器80执行所述计算机可读指令82时实现上述各个基于点对点网络的数据存储方法实施例中的步骤,例如图1所示的步骤S101至S105。或者,所述处理器80执行所述计算机可读指令82时实现上述各装置实施例中各模块/单元的功能,例如图7所示模块701至708的功能。
示例性的,所述计算机可读指令82可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器81中,并由所述处理器80执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令82在所述服务器8中的执行过程。
所述处理器80可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器81可以是所述服务器8的内部存储单元,例如服务器8的硬盘或内存。所述存储器81也可以是所述服务器8的外部存储设备,例如所述服务器8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器81还可以既包括所述服务器8的内部存储单元也包括外部存储设备。所述存储器81用于存储所述计算机可读指令以及所述服务器8所需的其它指令和数据。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机可读指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储计算机可读指令的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种基于点对点网络的数据存储方法,其特征在于,包括:
接收终端设备上传的待存储数据,所述终端设备为所述点对点网络中的任意一个节点;
将所述待存储数据划分为各个数据分片,并使用预设的第一哈希函数分别计算各个数据分片的哈希值;
根据各个数据分片的哈希值在所述点对点网络中确定与各个数据分片分别对应的目标节点;
分别构造各个数据分片的授权信息,并向各个目标节点分别发送所述授权信息,其中,第s个数据分片的授权信息被发送至与第s个数据分片对应的目标节点,1≤s≤SN,SN为数据分片的数目;
分别接收各个目标节点在对所述授权信息进行验证后发送的反馈信息,若与第s个数据分片对应的目标节点对第s个数据分片的授权信息的反馈信息为确认信息,则将第s个数据分片发送至与第s个数据分片对应的目标节点进行存储;
所述分别构造各个数据分片的授权信息包括:
将第s个数据分片的分片标识、哈希值、目标节点标识、授权时效信息、证书哈希值封装为第s个数据分片的授权内容,所述证书哈希值为对所述点对点网络的电子证书进行哈希运算得到的哈希值;
使用预设的第三哈希函数对第s个数据分片的授权内容进行哈希计算,得到第s个数据分片的授权摘要;
使用预设的数据加密算法对第s个数据分片的授权摘要进行加密,得到第s个数据分片的数字签名;
将第s个数据分片的授权内容、所述数字签名、所述电子证书构造为第s个数据分片的授权信息。
2.根据权利要求1所述的数据存储方法,其特征在于,所述将所述待存储数据划分为各个数据分片包括:
根据下式计算数据分片的数目:
Figure FDA0003297696780000021
其中,DataBytes为所述待存储数据的字节数,MaxShard为数据分片的最大字节数,Ceil为向上取整函数;
将所述待存储数据划分为满足以下条件的SN个数据分片:
Figure FDA0003297696780000022
其中,ShdBytess为第s个数据分片的字节数,Max为求最大值函数,Min为求最小值函数,Thresh为预设的比例阈值。
3.根据权利要求1所述的数据存储方法,其特征在于,所述根据各个数据分片的哈希值在所述点对点网络中确定与各个数据分片分别对应的目标节点包括:
将预设的哈希环上与第s个数据分片的哈希值对应的位置点确定目标位置点,所述哈希环为由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的圆环,即所述哈希环上的每个位置点均对应于所述第一哈希函数的一个函数值;
获取所述哈希环上的各个基准位置点,其中,每个基准位置点均为与所述点对点网络中的一个节点对应的位置点;
从所述目标位置点开始顺时针或者逆时针查找所述基准位置点,并将查找到的第一个基准位置点所对应的节点确定为与第s个数据分片对应的目标节点。
4.根据权利要求3所述的数据存储方法,其特征在于,所述基准位置点的设置过程包括:
获取所述点对点网络中的各个节点的身份标识;
使用预设的第二哈希函数分别对所述点对点网络中的各个节点的身份标识进行哈希运算,得到各个节点的哈希值,所述第二哈希函数的值域与所述第一哈希函数的值域一致;
将所述哈希环上与第m个节点的哈希值对应的位置点确定为与第m个节点对应的基准位置点,1≤m≤M,M为所述点对点网络中的节点数目。
5.一种数据存储装置,其特征在于,包括:
数据接收模块,用于接收终端设备上传的待存储数据,所述终端设备为点对点网络中的任意一个节点;
数据划分模块,用于将所述待存储数据划分为各个数据分片;
分片哈希值计算模块,用于使用预设的第一哈希函数分别计算各个数据分片的哈希值;
目标节点确定模块,用于根据各个数据分片的哈希值在所述点对点网络中确定与各个数据分片分别对应的目标节点;
授权信息构造模块,用于分别构造各个数据分片的授权信息;
授权信息发送模块,用于向各个目标节点分别发送所述授权信息,其中,第s个数据分片的授权信息被发送至与第s个数据分片对应的目标节点,1≤s≤SN,SN为数据分片的数目;
反馈信息接收模块,用于分别接收各个目标节点在对所述授权信息进行验证后发送的反馈信息;
数据分片发送模块,用于若与第s个数据分片对应的目标节点对第s个数据分片的授权信息的反馈信息为确认信息,则将第s个数据分片发送至与第s个数据分片对应的目标节点进行存储;
所述授权信息构造模块包括:
授权内容封装单元,用于将第s个数据分片的分片标识、哈希值、目标节点标识、授权时效信息、证书哈希值封装为第s个数据分片的授权内容,所述证书哈希值为对所述点对点网络的电子证书进行哈希运算得到的哈希值;
授权摘要计算单元,用于使用预设的第三哈希函数对第s个数据分片的授权内容进行哈希计算,得到第s个数据分片的授权摘要;
数据加密单元,用于使用预设的数据加密算法对第s个数据分片的授权摘要进行加密,得到第s个数据分片的数字签名;
授权信息构造单元,用于将第s个数据分片的授权内容、所述数字签名、所述电子证书构造为第s个数据分片的授权信息。
6.根据权利要求5所述的数据存储装置,其特征在于,所述数据划分模块包括:
分片数目计算单元,用于根据下式计算数据分片的数目:
Figure FDA0003297696780000041
其中,DataBytes为所述待存储数据的字节数,MaxShard为数据分片的最大字节数,Ceil为向上取整函数;
数据划分单元,用于将所述待存储数据划分为满足以下条件的SN个数据分片:
Figure FDA0003297696780000042
其中,ShdBytess为第s个数据分片的字节数,Max为求最大值函数,Min为求最小值函数,Thresh为预设的比例阈值。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现如权利要求1至4中任一项所述的数据存储方法的步骤。
8.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现如权利要求1至4中任一项所述的数据存储方法的步骤。
CN201910347838.0A 2019-04-28 2019-04-28 基于点对点网络的数据存储方法、装置、介质及服务器 Active CN110149373B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910347838.0A CN110149373B (zh) 2019-04-28 2019-04-28 基于点对点网络的数据存储方法、装置、介质及服务器
PCT/CN2019/118129 WO2020220641A1 (zh) 2019-04-28 2019-11-13 基于点对点网络的数据存储方法、装置、介质及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910347838.0A CN110149373B (zh) 2019-04-28 2019-04-28 基于点对点网络的数据存储方法、装置、介质及服务器

Publications (2)

Publication Number Publication Date
CN110149373A CN110149373A (zh) 2019-08-20
CN110149373B true CN110149373B (zh) 2022-01-07

Family

ID=67593901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910347838.0A Active CN110149373B (zh) 2019-04-28 2019-04-28 基于点对点网络的数据存储方法、装置、介质及服务器

Country Status (2)

Country Link
CN (1) CN110149373B (zh)
WO (1) WO2020220641A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110149373B (zh) * 2019-04-28 2022-01-07 平安科技(深圳)有限公司 基于点对点网络的数据存储方法、装置、介质及服务器
CN110933022A (zh) * 2019-10-11 2020-03-27 深圳壹账通智能科技有限公司 区块处理方法、装置、计算机设备及存储介质
CN111030930B (zh) * 2019-12-02 2022-02-01 北京众享比特科技有限公司 基于去中心化网络数据分片传输方法、装置、设备及介质
CN111176842A (zh) * 2019-12-23 2020-05-19 中国平安财产保险股份有限公司 数据处理方法、装置、电子设备及存储介质
CN111817844B (zh) * 2020-07-20 2021-06-25 西安电子科技大学 一种应急场景下的双链路无线自组网及安全防御方法
CN112052141B (zh) * 2020-09-02 2022-04-01 平安科技(深圳)有限公司 数据分片校验方法、装置、计算机设备及可读存储介质
CN112243160A (zh) * 2020-09-14 2021-01-19 视联动力信息技术股份有限公司 一种数据传输方法、装置、终端设备和存储介质
CN112819483A (zh) * 2020-12-30 2021-05-18 杭州趣链科技有限公司 基于区块链的产品溯源管理方法、装置及相关设备
CN112966545A (zh) * 2020-12-31 2021-06-15 杭州拓深科技有限公司 基于平均哈希的消防通道占用监测方法、装置、电子装置和存储介质
CN112953835B (zh) * 2021-01-18 2023-03-14 广州三七互娱科技有限公司 数据传输方法、装置及系统
CN112906016B (zh) * 2021-01-28 2023-10-27 北京金山云网络技术有限公司 数据处理方法、装置及电子设备
CN113132484B (zh) * 2021-04-20 2022-10-25 北京奇艺世纪科技有限公司 一种数据传输方法及装置
CN115190136B (zh) * 2021-04-21 2024-03-01 统信软件技术有限公司 一种数据存储方法、数据传输方法及计算设备
CN113612705B (zh) * 2021-08-02 2023-08-22 广西电网有限责任公司 基于哈希算法分片及重组的电网监控系统数据传输方法
CN114285903B (zh) * 2021-12-16 2024-04-19 奇安信科技集团股份有限公司 请求处理方法、装置、系统及电子设备
CN114629824B (zh) * 2022-03-24 2024-03-19 阿里巴巴(中国)有限公司 丢包定位方法、装置、计算设备及介质
CN114629908B (zh) * 2022-03-28 2023-10-13 浙江邦盛科技股份有限公司 一种基于服务器节点硬件资源密度的数据分片方法
CN114817272A (zh) * 2022-06-30 2022-07-29 北京聚通达科技股份有限公司 消息处理方法、装置、电子设备及存储介质
CN115544026B (zh) * 2022-12-02 2023-05-02 北京邮电大学 数据存储方法、装置、电子设备和存储介质
CN117240478B (zh) * 2023-11-13 2024-02-13 深圳合纵富科技有限公司 一种pos机数据传输方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107547657A (zh) * 2017-09-27 2018-01-05 柏科数据技术(深圳)股份有限公司 一种基于云存储系统中单点数据编号的方法、装置以及存储介质
CN109309650A (zh) * 2017-07-27 2019-02-05 华为技术有限公司 处理数据的方法、终端设备和网络设备
CN109347893A (zh) * 2018-08-09 2019-02-15 玄章技术有限公司 一种区块链网络的文件存储方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446250A (zh) * 2010-10-13 2012-05-09 索尼公司 数据完整性的保护和验证方法、设备和系统
CN107219997B (zh) * 2016-03-21 2020-08-18 阿里巴巴集团控股有限公司 一种用于验证数据一致性的方法及装置
CN106383665B (zh) * 2016-09-05 2018-05-11 华为技术有限公司 数据存储系统中的数据存储方法及协调存储节点
LU93377B1 (en) * 2016-12-15 2018-07-03 Luxembourg Inst Science & Tech List P2p network data distribution and retrieval using blockchain log
US10740733B2 (en) * 2017-05-25 2020-08-11 Oracle International Corporaton Sharded permissioned distributed ledgers
US10261711B1 (en) * 2018-01-25 2019-04-16 Merck Sharp & Dohme Corp. Proof of non-tampering for stored data
CN109327512B (zh) * 2018-09-19 2021-04-13 广东微链科技有限公司 基于区块链hash寻址和重加密的游戏数据分区储存方法
CN109522270A (zh) * 2018-10-19 2019-03-26 平安科技(深圳)有限公司 基于区块链的文件存读方法、电子装置及可读存储介质
CN109600357A (zh) * 2018-11-05 2019-04-09 电子科技大学 一种分布式身份认证系统、方法及服务器
CN110149373B (zh) * 2019-04-28 2022-01-07 平安科技(深圳)有限公司 基于点对点网络的数据存储方法、装置、介质及服务器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109309650A (zh) * 2017-07-27 2019-02-05 华为技术有限公司 处理数据的方法、终端设备和网络设备
CN107547657A (zh) * 2017-09-27 2018-01-05 柏科数据技术(深圳)股份有限公司 一种基于云存储系统中单点数据编号的方法、装置以及存储介质
CN109347893A (zh) * 2018-08-09 2019-02-15 玄章技术有限公司 一种区块链网络的文件存储方法及装置

Also Published As

Publication number Publication date
WO2020220641A1 (zh) 2020-11-05
CN110149373A (zh) 2019-08-20

Similar Documents

Publication Publication Date Title
CN110149373B (zh) 基于点对点网络的数据存储方法、装置、介质及服务器
CN107396360B (zh) 区块验证方法及装置
CN108769111B (zh) 一种服务器连接方法、计算机可读存储介质及终端设备
CN109543456B (zh) 区块生成方法及计算机存储介质
CN108805571B (zh) 数据保护方法、平台、区块链节点、系统和存储介质
CN110099112B (zh) 基于点对点网络的数据存储方法、装置、介质及终端设备
CN111428254A (zh) 密钥存储方法、装置、设备以及存储介质
US11362836B2 (en) Consensus protocol for permissioned ledgers
CN110995446B (zh) 证据验证方法、装置、服务器及存储介质
US20150278486A1 (en) Methods and nodes for handling usage policy
CN111367923A (zh) 数据处理方法、装置、节点设备及存储介质
CN109698806B (zh) 一种用户数据校验方法及系统
CN110191467A (zh) 一种物联网设备的鉴权方法、设备、装置及存储介质
CN114741704A (zh) 一种基于婚恋交友的隐私保护方法、装置、设备及介质
CN107770183B (zh) 一种数据传输方法与装置
CN111176567B (zh) 分布式云存储的存储供应量验证方法及装置
CN111835504B (zh) 识别码生成方法及服务器
CN110618989A (zh) 信息处理方法、信息处理装置及相关产品
CN110392083B (zh) 文件秒传的控制方法、装置及终端设备
CN107395772B (zh) 一种重复数据的管理方法及管理系统
CN112434231B (zh) 一种数据处理方法、装置及电子设备
CN112134884B (zh) 一种报文序列号的更新方法
CN110765147B (zh) 基于区块链加密存储的内容更新方法、用户节点及介质
CN115396123A (zh) 数据处理方法、装置、电子设备及存储介质
US20220067727A1 (en) Method for operating a distributed database system, distributed database system, and industrial automation system

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