一种区块链网络的文件存储方法及装置制造方法及图纸

技术编号:20369925 阅读:20 留言:0更新日期:2019-02-16 20:05
本发明专利技术公开了一种区块链网络的文件存储方法及装置,该文件存储方法包括:S1,将输入文件划分为多个文件块;S2,建立多个存储节点的索引值与多个存储节点的识别id之间的对应关系;S3,对多个文件块中的一个文件块进行哈希运算,并根据哈希运算的结果和对应关系得到第一识别id;S4,将一个文件块存储至第一识别id对应的第一存储节点上。本发明专利技术的上述技术方案提供了一种使用hash值来分配存储节点的方法,因为每个文件块的hash值是固定的、并且是不可更改的,所以对于提交上来的文件,能够简单的查询到对应的存储关系,从而避免了调度上的作弊。

A File Storage Method and Device for Block Chain Network

The invention discloses a file storage method and device of block chain network. The file storage method includes: S1, dividing input files into multiple file blocks; S2, establishing the corresponding relationship between index values of multiple storage nodes and identification IDs of multiple storage nodes; S3, hashing one file block in multiple file blocks, and according to the results of hashing operation and pairing. The first identification ID should be obtained from the relationship; S4, which stores a file block on the first storage node corresponding to the first identification ID. The technical scheme of the present invention provides a method of using hash value to allocate storage nodes, because the hash value of each file block is fixed and immutable, the corresponding storage relationship can be simply queried for the submitted files, thus avoiding cheating in scheduling.

【技术实现步骤摘要】
一种区块链网络的文件存储方法及装置
本专利技术涉及区块链
,具体来说,涉及一种区块链网络的文件存储方法及装置。
技术介绍
现有区块链系统的存储方法有两种。一种是中心化存储的方法,这种方法会占用很多的IDC(InternetDataCenter,互联网数据中心)资源存储,但是因为不是所有文件都是经常被访问,而热门的被访问文件的数量占比其实不高,所以存在很多高性能、高质量的存储空间存储了低效益的文件。另一种存储方法是分布式的P2P存储方法,这种方法价格低廉,但是分享速度慢,并且大部分主机是个人节点,因此流量吞吐性能不好。目前已有的文件存储方法,在文件分配上,是按机器性能和存储空间去分配,由中心系统按一定的公式去分配,存在着不公平性。对于区块链系统,需要一种文件存储方法,能够公平处理每个业务,并且不受其他手段影响又能简单验证是否公平合理。
技术实现思路
针对相关技术中的上述问题,本专利技术提出一种区块链网络的文件存储方法及装置。本专利技术的技术方案是这样实现的:根据本专利技术的一个方面,提供了一种区块链网络的文件存储方法,包括:S1,将输入文件划分为多个文件块;S2,建立多个存储节点的索引值与多个存储节点的识别id之间的对应关系;S3,对多个文件块中的一个文件块进行哈希运算,并根据哈希运算的结果和所述对应关系得到第一识别id;S4,将所述一个文件块存储至所述第一识别id对应的第一存储节点上。根据本专利技术的实施例,对所述一个文件块进行安全散列算法1(SHA-1)运算。根据本专利技术的实施例,步骤S3包括:将所述安全散列算法1运算的多个结果相加得到Mi;取K=MimodMaxPP,其中,MaxPP表示所述多个存储节点的数量;将K作为索引值,在所述对应关系中得到所述第一识别id。根据本专利技术的实施例,在步骤S2之前还包括:按照各个存储节点加入区块链网络的时间为各个存储节点设置索引值。根据本专利技术的实施例,在步骤S4之后还包括:根据哈希运算的结果和所述对应关系得到第二识别id;将所述一个文件块的备份数据存储至所述第二识别id对应的第二存储节点上。根据本专利技术的实施例,其中,取Kj=(K+j)modMaxPP,其中j为大于等于1小于等于MaxPP的整数;将Kj作为索引值,在所述对应关系中得到所述第二识别id;将j份备份数据存储至j个第二存储节点上,所述j个第二存储节点的识别id分别是以K1至Kj作为索引值得到的识别id。根据本专利技术的实施例,在步骤S4之后还包括:S5,当多个存储节点中存储的文件的最后访问时间超过预定值时,将所述存储的文件的所有文件块调度至网络主机节点存储。根据本专利技术的实施例,步骤S5包括:获取所述存储的文件的所有文件块;建立多个网络主机节点的索引值与多个网络主机节点的识别id之间的第二对应关系;对所述所有文件块中的一个文件块进行第二哈希运算,并根据第二哈希运算的结果和所述第二对应关系得到第三识别id;将所述所有文件块中的一个文件块存储至所述第三识别id对应的网络主机节点上。根据本专利技术的实施例,在步骤S5还包括:根据第二哈希运算的结果和所述第二对应关系得到第四识别id;将所述所有文件块中的一个文件块的备份数据存储至所述第四识别id对应的网络主机节点上。根据本专利技术的另一方面,提供了一种区块链网络的文件存储装置,包括:分块模块,用于将输入文件划分为多个文件块;关系建立模块,用于建立多个存储节点的索引值与多个存储节点的识别id之间的对应关系;哈希运算模块,用于对多个文件块中的一个文件块进行哈希运算,并根据哈希运算的结果和对应关系得到第一识别id;存储模块,用于将一个文件块存储至第一识别id对应的第一存储节点上。本专利技术的上述技术方案,提供了一种使用hash值来分配存储节点的方法,因为每个文件块的hash值是固定的、并且是不可更改的,所以对于提交上来的文件,能够简单的查询到对应的存储关系,从而避免了调度上的作弊。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本专利技术实施例的区块链网络的文件存储方法的流程图;图2是根据本专利技术实施例的区块链网络的结构示意图;图3是根据本专利技术具体实施例的区块链网络的文件存储方法的流程图;图4是根据本专利技术具体实施例的区块链网络的文件存储方法的流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,本专利技术提供了一种区块链网络的文件存储方法,该文件存储方法包括:步骤S102,将输入文件划分为多个文件块;步骤S104,建立多个存储节点的索引值与多个存储节点的识别id之间的对应关系;步骤S106,对多个文件块中的一个文件块进行hash(哈希)运算,并根据hash运算的结果和对应关系得到第一识别id;步骤S108,将一个文件块存储至第一识别id对应的第一存储节点上。本专利技术的上述技术方案,提供了一种使用hash值来分配存储节点的方法,因为每个文件块的hash值是固定的、并且是不可更改的,所以对于提交上来的文件,能够简单的查询到对应的存储关系,从而避免了调度上的作弊。图2示出了区块链网络的一个示例性实施例。该区块链网络包括:管理节点SP以及与管理节点SP通信连接的多个存储节点PP。各个存储节点PP分别通信连接于多个网络主机节点P。其中,管理节点SP的功能包括:任务调度、数据读取的地址映射、存储节点PP的状态信息在管理节点SP中全量同步;数据的存储索引关系信息在多个SP节点组成的集群中存储和备份。存储节点PP的功能包括:完成数据存储任务、提供稳定快速的数据访问加速服务、向网络主机节点P分配数据存储任务、管理与其连接的多个网络主机节点P。网络主机节点P的功能包括:提供数据存取与上行带宽流量分享。以下结合图2所示,对本专利技术的区块链网络的文件存储方法进行具体说明。应当理解,在其他的实施例中,本专利技术的文件存储方法也可应用于其他架构的区块链网络。可以在图3至图4所描述的步骤之前、期间和/或之后提供附加步骤。可以针对不同的实施例替换或去除所描述的一些步骤。图3示出了文件分块和文件分配的流程图。结合图2和图3所示,管理节点SP负责文件的分块调度。管理节点SP会给每个存储节点PP分配一个固定的识别id,例如,该识别id可由5个4字节整型数字形成。在步骤S302处,对输入文件进行分块,具体的可按每个文件块大小为32M对输入文件进行分块,不足32M的作为最后一个文件块。另外,在进行步骤S304之前,还可以按照各个存储节点加入区块链网络的时间为各个存储节点设置索引值。具体的,对于新增的存储节点PP,按照加入网络的时间进行排序,按照排序的序号设置每个存储节点PP的索引值。例如,第一个加入的存储节点PP的索引值为0,第二个加入的存储节点PP的索引值为1,以此类推。类似的,对于新增的网络主机节点P,也按照加入网络的时间进行排序,本文档来自技高网...

【技术保护点】
1.一种区块链网络的文件存储方法,其特征在于,包括:S1,将输入文件划分为多个文件块;S2,建立多个存储节点的索引值与多个存储节点的识别id之间的对应关系;S3,对多个文件块中的一个文件块进行哈希运算,并根据哈希运算的结果和所述对应关系得到第一识别id;S4,将所述一个文件块存储至所述第一识别id对应的第一存储节点上。

【技术特征摘要】
1.一种区块链网络的文件存储方法,其特征在于,包括:S1,将输入文件划分为多个文件块;S2,建立多个存储节点的索引值与多个存储节点的识别id之间的对应关系;S3,对多个文件块中的一个文件块进行哈希运算,并根据哈希运算的结果和所述对应关系得到第一识别id;S4,将所述一个文件块存储至所述第一识别id对应的第一存储节点上。2.根据权利要求1所述的区块链网络的文件存储方法,其特征在于,对所述一个文件块进行安全散列算法1(SHA-1)运算。3.根据权利要求2所述的区块链网络的文件存储方法,其特征在于,步骤S3包括:将所述安全散列算法1运算的多个结果相加得到Mi;取K=MimodMaxPP,其中,MaxPP表示所述多个存储节点的数量;将K作为索引值,在所述对应关系中得到所述第一识别id。4.根据权利要求1所述的区块链网络的文件存储方法,其特征在于,在步骤S2之前还包括:按照各个存储节点加入区块链网络的时间为各个存储节点设置索引值。5.根据权利要求3所述的区块链网络的文件存储方法,其特征在于,在步骤S4之后还包括:根据哈希运算的结果和所述对应关系得到第二识别id;将所述一个文件块的备份数据存储至所述第二识别id对应的第二存储节点上。6.根据权利要求5所述的区块链网络的文件存储方法,其特征在于,其中,取Kj=(K+j)modMaxPP,其中j为大于等于1小于等于MaxPP的整数;将Kj作为索引值,在所述对应关系中得到所述第二识别id;将j份...

【专利技术属性】
技术研发人员:朱达欣王宇蔡鸿志
申请(专利权)人:玄章技术有限公司
类型:发明
国别省市:维尔京群岛,VG

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1