CN108924252B - 区块链***中减轻节点存储负荷的方法、介质及区块链*** - Google Patents
区块链***中减轻节点存储负荷的方法、介质及区块链*** Download PDFInfo
- Publication number
- CN108924252B CN108924252B CN201810856931.XA CN201810856931A CN108924252B CN 108924252 B CN108924252 B CN 108924252B CN 201810856931 A CN201810856931 A CN 201810856931A CN 108924252 B CN108924252 B CN 108924252B
- Authority
- CN
- China
- Prior art keywords
- block
- node
- nodes
- network
- storage
- 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
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/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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9015—Buffering arrangements for supporting a linked list
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3297—Cryptographic 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 time stamps, e.g. generation of time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种区块链***中减轻节点存储负荷的方法,包括以下步骤:区块生产节点获取任务请求并执行后,满足区块生产条件时区块生产节点问询上个区块的存储节点地址;上个区块的存储节点将自身地址和区块哈希发送给区块生产节点;区块生产节点打包新区块,并根据节点总数生成随机数集合,以及将随机数集合与新区块打包为网络广播包进行广播;当其他节点接收到网络广播包后,对网络广播包进行解析并执行新区块中的任务,判断随机数中是否有代表节点指向自身;如果有,则对新区块进行存储;相应地,本发明还公开了一种介质和区块链***,能够实现随机选择对区块进行存储的节点,保证区块链文件完整性的同时,减轻区块链***中节点的存储负荷。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种区块链***中减轻节点存储负荷的方法、介质及区块链***。
背景技术
区块链,因其去中心化和去信任的方式而在各技术领域中被广泛地运用,现有的区块链***中,每个节点总会存储区块链中所有的历史区块,以保证区块链文件的完整性以及方便用户查询。然而,这种方法在区块链达到一定长度时,对单一节点的存储资源耗费很大。
发明内容
本发明旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本发明的一个目的在于提出一种区块链***中减轻节点存储负荷的方法,能够实现随机选择对区块进行存储的节点,保证区块链文件完整性的同时,减轻区块链***中节点的存储负荷。
本发明的第二个目的在于提出一种计算机可读存储介质。
本发明的第三个目的在于提出一种区块链***。
为达到上述目的,本发明第一方面实施例提出了一种区块链***中减轻节点存储负荷的方法,包括以下步骤:当区块链***中任一具有区块生产权限的节点获取任务请求并执行后,判断当前是否满足区块生产条件;如果满足区块生产条件,该具有区块生产权限的节点则向区块链网络广播问询上个区块的存储节点地址;上个区块的存储节点将自身地址和区块哈希信息发送给该具有区块生产权限的节点;该具有区块生产权限的节点将上个区块的存储节点地址编进地址列表,并与上个区块的区块哈希信息、上个区块时间线之后的任务信息和时间戳一起打包成新区块,以及根据所述区块链网络中的节点总数生成随机数集合,并将所述随机数集合与所述新区块打包为网络广播包以向所述区块链网络进行广播,其中,所述随机数集合中的随机数的个数小于等于节点总数;当所述区块链网络中的其他节点接收到所述网络广播包后,对所述网络广播包进行解析并执行新区块中的任务,以及在任务执行完成后根据所述随机数集合查询所述区块链网络的当前节点地址表,以判断随机数中是否有代表节点指向自身;如果有,则该节点对新区块进行存储。
根据本发明实施例的区块链***中减轻节点存储负荷的方法,首先,当区块链***中任一具有区块生产权限的节点获取任务请求并执行后,判断当前是否满足区块生产条件;接着,如果满足区块生产条件,该具有区块生产权限的节点则向区块链网络广播问询上个区块的存储节点地址;然后,上个区块的存储节点将自身地址和区块哈希信息发送给该具有区块生产权限的节点;接着,该具有区块生产权限的节点将上个区块的存储节点地址编进地址列表,并与上个区块的区块哈希信息、上个区块时间线之后的任务信息和时间戳一起打包成新区块,以及根据区块链网络中的节点总数生成随机数集合,并将随机数集合与新区块打包为网络广播包以向区块链网络进行广播,其中,随机数集合中的随机数的个数小于等于节点总数;然后,当区块链网络中的其他节点接收到网络广播包后,对网络广播包进行解析并执行新区块中的任务,以及在任务执行完成后根据随机数集合查询区块链网络的当前节点地址表,以判断随机数中是否有代表节点指向自身;接着,如果有,则该节点对新区块进行存储;从而实现对存储区块的节点进行随机选择,并通过随机选择出的节点对区块进行存储,保证区块链文件完整性的同时,减轻区块链***中节点的存储负荷。
另外,根据本发明上述实施例提出的区块链***中减轻节点存储负荷的方法还可以具有如下附加的技术特征:
可选地,随机数之间保持不重复,且随机数的个数根据以下公式得到:M=取整(n/k),其中,M为随机数的个数,n为节点总数,k为根据区块链网络的实际情况选取的预设整数。
可选地,存储节点的数量与k值呈反相关关系。
可选地,区块链网络中的每个节点还定时向区块链网络发送网络问询包,以问询区块链网络中当前存在的节点,并在获得返回的应答后更新当前节点地址表和节点总数。
可选地,当判断随机数中没有代表节点指向自身时,该节点将新区块丢弃。
为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有区块链***中减轻节点存储负荷的程序,该区块链***中减轻节点存储负荷的程序被处理器执行时实现上述的区块链***中减轻节点存储负荷的方法。
为达到上述目的,本发明第三方面实施例提出了一种区块链***,包括多个节点,其中当多个节点中任一具有区块生产权限的节点获取任务请求并执行时,判断当前是否满足区块生产条件,并在满足区块生产条件时向区块链网络广播问询上个区块的存储节点地址;上个区块的存储节点将自身地址和区块哈希信息发送给该具有区块生产权限的节点;该具有区块生产权限的节点将上个区块的存储节点地址编进地址列表,并与上个区块的区块哈希信息、上个区块时间线之后的任务信息和时间戳一起打包成新区块,以及根据所述区块链网络中的节点总数生成随机数集合,并将所述随机数集合与所述新区块打包为网络广播包以向所述区块链网络进行广播,其中,所述随机数集合中的随机数的个数小于等于节点总数;当所述区块链网络中的其他节点接收到所述网络广播包后,对所述网络广播包进行解析并执行新区块中的任务,以及在任务执行完成后根据所述随机数集合查询所述区块链网络的当前节点地址表,以判断随机数中是否有代表节点指向自身;如果有,则该节点对新区块进行存储。
根据本发明实施例的区块链***,包括多个节点,其中当多个节点中任一具有区块生产权限的节点获取任务请求并执行时,判断当前是否满足区块生产条件,并在满足区块生产条件时向区块链网络广播问询上个区块的存储节点地址;上个区块的存储节点将自身地址和区块哈希信息发送给该具有区块生产权限的节点;该具有区块生产权限的节点将上个区块的存储节点地址编进地址列表,并与上个区块的区块哈希信息、上个区块时间线之后的任务信息和时间戳一起打包成新区块,以及根据区块链网络中的节点总数生成随机数集合,并将随机数集合与新区块打包为网络广播包以向区块链网络进行广播,其中,随机数集合中的随机数的个数小于等于节点总数;当区块链网络中的其他节点接收到网络广播包后,对网络广播包进行解析并执行新区块中的任务,以及在任务执行完成后根据随机数集合查询区块链网络的当前节点地址表,以判断随机数中是否有代表节点指向自身;如果有,则该节点对新区块进行存储;从而实现对存储区块的节点进行随机选择,并通过随机选择出的节点对区块进行存储,保证区块链文件完整性的同时,减轻区块链***中节点的存储负荷。
另外,根据本发明上述实施例提出的区块链***还可以具有如下附加的技术特征:
可选地,所述随机数之间保持不重复,且所述随机数的个数根据以下公式得到:M=取整(n/k),其中,M为所述随机数的个数,n为所述节点总数,k为根据所述区块链网络的实际情况选取的预设整数。
可选地,所述多个节点中的每个节点还定时向所述区块链网络发送网络问询包,以问询所述区块链网络中当前存在的节点,并在获得返回的应答后更新当前节点地址表和节点总数。
可选地,当判断随机数中没有代表节点指向自身时,该节点将新区块丢弃。
附图说明
图1为根据本发明实施例的区块链***中减轻节点存储负荷的方法的流程示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
现有的区块链***中,每个节点总会存储区块链中所有的历史区块,这种方法在区块链达到一定长度时,对单一节点的存储资源耗费很大;本发明实施例提出的区块链***中减轻节点存储负荷的方法,首先,当具有区块生产权限的节点获取到任务请求并执行,然后,在满足区块生产条件时,向区块链网络问询上个区块的存储节点地址,接着,上个区块的存储节点将自身地址和区块哈希信息发送给该具有区块生产权限的节点,然后,该具有区块生产权限的节点将上个区块的存储节点地址编进地址列表,并打包新区快,以及根据节点总数生成随机数集合,并将随机数集合与新区快打包为网络广播包进行广播;接着,当其他节点接收到网络广播包后,进行解析并判断随机数中是否有代表节点指向自身,如果有,则该节点对新区快进行存储;从而实现对存储区块的节点进行随机选择,并通过随机选择出的节点对区块进行存储,保证区块链文件完整性的同时,减轻区块链***中节点的存储负荷。
为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
图1为本发明实施例提出的一种区块链***中减轻节点存储负荷的方法的流程示意图,如图1所示,该区块链***中减轻节点存储负荷的方法包括以下步骤:
S101,当区块链***中任一具有区块生产权限的节点获取任务请求并执行后,判断当前是否满足区块生产条件。
也就是说,当区块链***中任一具有区块生产权限的节点获取到任务请求之后,对任务请求进行解析并执行,对任务请求进行执行之后,判断当前是否满足区块生成条件。
其中,区块生产权限指的是在满足区块生产条件之后,将上一区块时间线之后的任务打包为新区块的权限,需要说明的是,区块生产权限的确定方式有多种,例如:pos权益证明方式、pow工作量证明方式和dpos股份授权证明方式;因此,此处不对区块生产权限的确定方式加以限定。
其中,判断当前是否满足区块生产条件的方式有多种,例如:通过预设区块生产时间,具有区块生产权限的节点在执行任务请求之后,判断当前时间与上一区块中时间戳之间的时间差是否大于预设的区块生产时间;并在判断结果为是时确定当前满足区块生产条件;或者,预设每一区块的任务数量阈值,具有区块生产权限的节点在执行任务请求之后,判断上一区块中时间线之后的任务数量是否达到任务数量阈值,并在判断结果为是时确定当前满足区块生产条件。
S102,如果满足区块生产条件,该具有区块生产权限的节点则向区块链网络广播问询上个区块的存储节点地址。
也就是说,具有区块生产权限的节点在判断当前满足区块生产条件时,则向区块链网络广播问询上个区块的存储节点地址,以获取上个区块的存储节点的地址集,便于后续将上个区块的存储节点的地址集写入新的区块,从而任一节点在获取新的区块之后,可根据区块中存储的上个区块的存储节点的地址集进行上个区块的下载,进而以递归的方式获取整个区块链文件。
S103,上个区块的存储节点将自身地址和区块哈希信息发送给该具有区块生产权限的节点。
也就是说,具有区块生产权限的节点向区块链网络广播问询上个区块的存储节点地址,上个区块的存储节点接收到该问询之后,将自身地址和区块哈希信息发送给该具有区块生产权限的节点。
S104,该具有区块生产权限的节点将上个区块的存储节点地址编进地址列表,并与上个区块的区块哈希信息、上个区块时间线之后的任务信息和时间戳一起打包成新区块,以及根据区块链网络中的节点总数生成随机数集合,并将随机数集合与新区块打包为网络广播包以向区块链网络进行广播,其中,随机数集合中的随机数的个数小于等于节点总数。
即言,具有区块生产权限的节点在接收到各上个区块的存储节点发送的自身地址以及区块哈希信息之后,将所有上个区块的存储节点地址编进地址列表;并将该地址列表、上个区块的区块哈希信息、上个区块时间线之后的任务信息以及时间戳一起打包成新的区块;并根据区块链网络中的节点总数生成随机数集合,以及将随机数集合与新区块打包为网络广播包以在区块链网络中广播,其中,随机数集合中的随机数的个数小于等于节点总数。
其中,节点总数的获取方式有多种,例如,在新节点加入区块链网络时,将新节点地址添加如区块链***中的节点地址表,并控制区块链***中的节点每隔预设时间向区块链网络发送心跳包,以更新区块链网络的当前节点地址表。
作为一种示例,区块链网络中的每个节点定时向区块链网络发送网络问询包,以问询区块链网络中当前存在的节点,并在获得返回的应答后更新当前节点地址表和节点总数。也就是说,每个节点定时向区块链网络发送网络问询包以问询区块链网络中当前存在的节点,其他节点在接收到该网络问询包时,返回确认信息以及自身节点地址,以便发送网络问询包的节点根据接收到的确认信息以及自身节点地址更新当前节点地址表和节点总数。
其中,随机数的生成算法有多种,例如,蒙特卡洛算法、拉斯维加斯算法、舍伍德算法等;在此不对随机数的生成算法进行限制。
其中,随机数的生成个数的设置方式有多种,例如:直接根据区块链网络中的节点总数,生成个数为小于等于节点总数的随机数。
作为一种示例,随机数之间保持不重复,以保证每个随机数都指向不同的节点;随机数的个数根据以下公式得到:M=取整(n/k),其中,M为随机数的个数,n为区块链网络中当前节点总数,k为根据区块链网络的实际情况选取的预设整数,其中,k的选取方式有多种,例如,根据当前区块链网络中的节点总数、各节点的健康值(包括各节点的硬件配置信息、各节点的网络速率以及各节点任务响应时长等)进行k值的选定;或者,根据当前区块链网络中的节点总数以及预设时段内任务请求书进行k值的选定;或者,根据当前区块链网络中的空闲节点数以及区块生产频率进行k值的选定;从而通过合理地确定k值,防止因存储区块的节点过少而导致区块链网络不稳定,因节点异常而导致的历史区块无法获取的情况发生。
需要说明的是,存储节点的数量与k值呈反相关关系,也就是说,k值越大,存储节点越少,区块链***中的节点存储负荷越小,反之,k值越小,存储节点越大,区块链***中的节点存储负荷越大。
S105,当区块链网络中的其他节点接收到网络广播包后,对网络广播包进行解析并执行新区块中的任务,以及在任务执行完成后根据随机数集合查询区块链网络的当前节点地址表,以判断随机数中是否有代表节点指向自身。
也就是说,当区块链网络中的其他节点接收到网络广播包之后,对网络广播包进行解析并执行其中的任务,以及在任务执行完成后,根据随机数集合查询区块链网络的当前节点地址表,判断随机数中是否有代表节点指向自身,即言,判断自身节点所在区块链网络的当前节点地址表的位置是否为随机数指向位置,以判断自身节点是否需要对新区块进行存储。
作为一种示例,在生成区块链网络的当前节点地址表时,按照节点地址表中的各节点地址进行编号,当区块链网络中的其他节点接收到网络广播包并对广播包进行解析和执行其中的任务之后,判断网络广播包中的随机数集合是否包含区块链网络的当前节点地址表中自身节点地址的编号,并在判断结果为是时,判断随机数中有代表节点指向自身。
S106,如果有,则该节点对新区块进行存储。
作为一种示例,当该节点判断随机数中有代表节点指向自身时,对新区块进行存储;当该节点判断随机数中没有代表节点指向自身时,则该节点将新区块丢弃,不对新区块进行存储。
综上所述,根据本发明实施例的区块链***中减轻节点存储负荷的方法,首先,当区块链***中任一具有区块生产权限的节点获取任务请求并执行后,判断当前是否满足区块生产条件;接着,如果满足区块生产条件,该具有区块生产权限的节点则向区块链网络广播问询上个区块的存储节点地址;然后,上个区块的存储节点将自身地址和区块哈希信息发送给该具有区块生产权限的节点;接着,该具有区块生产权限的节点将上个区块的存储节点地址编进地址列表,并与上个区块的区块哈希信息、上个区块时间线之后的任务信息和时间戳一起打包成新区块,以及根据区块链网络中的节点总数生成随机数集合,并将随机数集合与新区块打包为网络广播包以向区块链网络进行广播,其中,随机数集合中的随机数的个数小于等于节点总数;然后,当区块链网络中的其他节点接收到网络广播包后,对网络广播包进行解析并执行新区块中的任务,以及在任务执行完成后根据随机数集合查询区块链网络的当前节点地址表,以判断随机数中是否有代表节点指向自身;接着,如果有,则该节点对新区块进行存储;从而实现对存储区块的节点进行随机选择,并通过随机选择出的节点对区块进行存储,保证区块链文件完整性的同时,减轻区块链***中节点的存储负荷。
为了实现上述实施例,本发明实施例提出了一种计算机可读存储介质,其上存储有区块链***中减轻节点存储负荷的程序,该区块链***中减轻节点存储负荷的程序被处理器执行时实现上述的区块链***中减轻节点存储负荷的方法。
为了实现上述实施例,本发明实施例提出了一种区块链***,该区块链***包括多个节点,其中,当多个节点中任一具有区块生产权限的节点获取任务请求并执行时,判断当前是否满足区块生产条件,并在满足区块生产条件时向区块链网络广播问询上个区块的存储节点地址;上个区块的存储节点将自身地址和区块哈希信息发送给该具有区块生产权限的节点;该具有区块生产权限的节点将上个区块的存储节点地址编进地址列表,并与上个区块的区块哈希信息、上个区块时间线之后的任务信息和时间戳一起打包成新区块,以及根据区块链网络中的节点总数生成随机数集合,并将随机数集合与新区块打包为网络广播包以向区块链网络进行广播,其中,随机数集合中的随机数的个数小于等于节点总数;当区块链网络中的其他节点接收到网络广播包后,对网络广播包进行解析并执行新区块中的任务,以及在任务执行完成后根据随机数集合查询区块链网络的当前节点地址表,以判断随机数中是否有代表节点指向自身;如果有,则该节点对新区块进行存储。
综上所述,根据本发明实施例的区块链***,包括多个节点,其中当多个节点中任一具有区块生产权限的节点获取任务请求并执行时,判断当前是否满足区块生产条件,并在满足区块生产条件时向区块链网络广播问询上个区块的存储节点地址;上个区块的存储节点将自身地址和区块哈希信息发送给该具有区块生产权限的节点;该具有区块生产权限的节点将上个区块的存储节点地址编进地址列表,并与上个区块的区块哈希信息、上个区块时间线之后的任务信息和时间戳一起打包成新区块,以及根据区块链网络中的节点总数生成随机数集合,并将随机数集合与新区块打包为网络广播包以向区块链网络进行广播,其中,随机数集合中的随机数的个数小于等于节点总数;当区块链网络中的其他节点接收到网络广播包后,对网络广播包进行解析并执行新区块中的任务,以及在任务执行完成后根据随机数集合查询区块链网络的当前节点地址表,以判断随机数中是否有代表节点指向自身;如果有,则该节点对新区块进行存储;从而实现对存储区块的节点进行随机选择,并通过随机选择出的节点对区块进行存储,保证区块链文件完整性的同时,减轻区块链***中节点的存储负荷。
在一些实施例中,本发明实施例提出的区块链***中,随机数之间保持不重复,且随机数的个数根据以下公式得到:M=取整(n/k),其中,M为随机数的个数,n为节点总数,k为根据区块链网络的实际情况选取的预设整数。
在一些实施例中,本发明实施例提出的区块链***中,多个节点中的每个节点还定时向区块链网络发送网络问询包,以问询区块链网络中当前存在的节点,并在获得返回的应答后更新当前节点地址表和节点总数。
在一些实施例中,本发明实施例提出的区块链***中,当判断随机数中没有代表节点指向自身时,该节点将新区块丢弃。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征 “上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种区块链***中减轻节点存储负荷的方法,其特征在于,包括以下步骤:
当区块链***中任一具有区块生产权限的节点获取任务请求并执行后,判断当前是否满足区块生产条件;
如果满足区块生产条件,该具有区块生产权限的节点则向区块链网络广播问询上个区块的存储节点地址;
上个区块的存储节点将自身地址和区块哈希信息发送给该具有区块生产权限的节点;
该具有区块生产权限的节点将上个区块的存储节点地址编进地址列表,并与上个区块的区块哈希信息、上个区块时间线之后的任务信息和时间戳一起打包成新区块,以及根据所述区块链网络中的节点总数生成随机数集合,并将所述随机数集合与所述新区块打包为网络广播包以向所述区块链网络进行广播,其中,所述随机数集合中的随机数的个数小于等于节点总数;
当所述区块链网络中的其他节点接收到所述网络广播包后,对所述网络广播包进行解析并执行新区块中的任务,以及在任务执行完成后根据所述随机数集合查询所述区块链网络的当前节点地址表,以判断随机数中是否有代表节点指向自身;
如果有,则该节点对新区块进行存储。
2.如权利要求1所述的区块链***中减轻节点存储负荷的方法,其特征在于,所述随机数之间保持不重复,且所述随机数的个数根据以下公式得到:
M=取整(n/k),其中,M为所述随机数的个数,n为所述节点总数,k为根据所述区块链网络的实际情况选取的预设整数。
3.如权利要求2所述的区块链***中减轻节点存储负荷的方法,其特征在于,存储节点的数量与k值呈反相关关系。
4.如权利要求1-3中任一项所述的区块链***中减轻节点存储负荷的方法,其特征在于,所述区块链网络中的每个节点还定时向所述区块链网络发送网络问询包,以问询所述区块链网络中当前存在的节点,并在获得返回的应答后更新当前节点地址表和节点总数。
5.如权利要求1所述的区块链***中减轻节点存储负荷的方法,其特征在于,当判断随机数中没有代表节点指向自身时,该节点将新区块丢弃。
6.一种计算机可读存储介质,其特征在于,其上存储有区块链***中减轻节点存储负荷的程序,该区块链***中减轻节点存储负荷的程序被处理器执行时实现如权利要求1-5中任一项所述的区块链***中减轻节点存储负荷的方法。
7.一种区块链***,其特征在于,包括多个节点,其中,
当多个节点中任一具有区块生产权限的节点获取任务请求并执行时,判断当前是否满足区块生产条件,并在满足区块生产条件时向区块链网络广播问询上个区块的存储节点地址;
上个区块的存储节点将自身地址和区块哈希信息发送给该具有区块生产权限的节点;
该具有区块生产权限的节点将上个区块的存储节点地址编进地址列表,并与上个区块的区块哈希信息、上个区块时间线之后的任务信息和时间戳一起打包成新区块,以及根据所述区块链网络中的节点总数生成随机数集合,并将所述随机数集合与所述新区块打包为网络广播包以向所述区块链网络进行广播,其中,所述随机数集合中的随机数的个数小于等于节点总数;
当所述区块链网络中的其他节点接收到所述网络广播包后,对所述网络广播包进行解析并执行新区块中的任务,以及在任务执行完成后根据所述随机数集合查询所述区块链网络的当前节点地址表,以判断随机数中是否有代表节点指向自身;
如果有,则该节点对新区块进行存储。
8.如权利要求7所述的区块链***,其特征在于,所述随机数之间保持不重复,且所述随机数的个数根据以下公式得到:
M=取整(n/k),其中,M为所述随机数的个数,n为所述节点总数,k为根据所述区块链网络的实际情况选取的预设整数。
9.如权利要求7或8所述的区块链***,其特征在于,所述多个节点中的每个节点还定时向所述区块链网络发送网络问询包,以问询所述区块链网络中当前存在的节点,并在获得返回的应答后更新当前节点地址表和节点总数。
10.如权利要求7或8所述的区块链***,其特征在于,当判断随机数中没有代表节点指向自身时,该节点将新区块丢弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810856931.XA CN108924252B (zh) | 2018-07-31 | 2018-07-31 | 区块链***中减轻节点存储负荷的方法、介质及区块链*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810856931.XA CN108924252B (zh) | 2018-07-31 | 2018-07-31 | 区块链***中减轻节点存储负荷的方法、介质及区块链*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108924252A CN108924252A (zh) | 2018-11-30 |
CN108924252B true CN108924252B (zh) | 2021-06-04 |
Family
ID=64393371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810856931.XA Active CN108924252B (zh) | 2018-07-31 | 2018-07-31 | 区块链***中减轻节点存储负荷的方法、介质及区块链*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108924252B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109714398B (zh) * | 2018-12-11 | 2021-09-21 | 新华三技术有限公司 | 数据存储方法和装置 |
CN110009180B (zh) * | 2019-01-23 | 2020-12-22 | 曲阜师范大学 | 一种基于区块链的准时生产控制方法 |
CN110321723B (zh) * | 2019-07-08 | 2021-11-09 | 环玺信息科技(上海)有限公司 | 一种区块链安全信息处理***及方法、电子设备、介质 |
CN110427763B (zh) * | 2019-07-24 | 2021-07-23 | 上海朝夕网络技术有限公司 | 一种基于预定义执行代码的分布式***的共识方法 |
CN110851448B (zh) * | 2019-11-08 | 2022-05-03 | 四川长虹电器股份有限公司 | 一种基于区块链智能合约的本地数据存储优化方法 |
CN110990490B (zh) * | 2019-12-19 | 2023-09-01 | 京东科技信息技术有限公司 | 区块链网络中区块链的入账方法、装置、设备及介质 |
CN113672680A (zh) * | 2021-07-19 | 2021-11-19 | 哈尔滨工业大学(深圳) | 区块链中的轻量级概率验证方法、装置、区块链节点及介质 |
CN113867690B (zh) * | 2021-12-07 | 2022-03-04 | 中移(上海)信息通信科技有限公司 | 一种区块链中随机数的生成方法、装置及区块链节点 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106713412A (zh) * | 2016-11-09 | 2017-05-24 | 弗洛格(武汉)信息科技有限公司 | 一种区块链***及区块链***的架构方法 |
CN107079059A (zh) * | 2016-12-21 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 区块链存储方法、装置及节点设备 |
CN107122477A (zh) * | 2017-05-02 | 2017-09-01 | 成都中远信电子科技有限公司 | 一种区块链存储*** |
CN107657438A (zh) * | 2017-09-18 | 2018-02-02 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10740844B2 (en) * | 2016-09-26 | 2020-08-11 | Shapeshift Ag | System and method of managing trustless asset portfolios |
-
2018
- 2018-07-31 CN CN201810856931.XA patent/CN108924252B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106713412A (zh) * | 2016-11-09 | 2017-05-24 | 弗洛格(武汉)信息科技有限公司 | 一种区块链***及区块链***的架构方法 |
CN107079059A (zh) * | 2016-12-21 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 区块链存储方法、装置及节点设备 |
CN107122477A (zh) * | 2017-05-02 | 2017-09-01 | 成都中远信电子科技有限公司 | 一种区块链存储*** |
CN107657438A (zh) * | 2017-09-18 | 2018-02-02 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及*** |
Non-Patent Citations (2)
Title |
---|
"A Low Storage Room Requirement Framework for Distributed Ledger in Blockchain";Mingjun Dai等;《IEEE Access》;20180312;第6卷;第22970-22975页 * |
"区块链全局账本数据的拆分技术研究";于雷,金岩;《高技术通讯》;20180319;第27卷(第11期);第875-888页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108924252A (zh) | 2018-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108924252B (zh) | 区块链***中减轻节点存储负荷的方法、介质及区块链*** | |
CN109218408B (zh) | 区块链***的共识机制实现方法、介质、计算机设备及区块链*** | |
CN109347901B (zh) | 区块链***的共识机制实现方法、介质、装置及*** | |
CN109379396B (zh) | 区块链***中防止出现硬分叉现象的方法、介质、装置和区块链*** | |
CN110365747B (zh) | 网络请求的处理方法、装置、服务器及计算机可读存储介质 | |
RU2016103796A (ru) | Система и способ управления полосой пропускания данных | |
CN105703927A (zh) | 一种资源分配方法、网络设备和网络*** | |
CN108156257B (zh) | 一种信息推送方法及装置 | |
CN109120669B (zh) | 基于p2p互联网络构建区块链的方法、介质和*** | |
CN109309708B (zh) | 区块链***中区块生产速度的加快方法、介质、装置及区块链*** | |
CN109756533B (zh) | 一种镜像加速方法、装置及服务器 | |
CN110519121A (zh) | 一种分区域任务探测的方法及装置 | |
CN109240826B (zh) | 多区块链网络中节点共用计算设备时的计算资源分配方法 | |
CN108377268B (zh) | 一种调整任务优先级的方法与*** | |
US8521924B2 (en) | Method of context aware data-centric storage for wireless sensor networks | |
CN106021026B (zh) | 一种备份方法及装置 | |
Gavidia et al. | A probabilistic replication and storage scheme for large wireless networks of small devices | |
CN111611512B (zh) | 一种网络代理的质量评估方法、装置、存储介质及处理器 | |
CN109327349B (zh) | 区块链账户创建时的限制方法、介质、装置及*** | |
CN110333984B (zh) | 接口异常检测方法、装置、服务器及*** | |
WO2020133962A1 (zh) | 基于区块链的数据存储方法、相关设备及存储介质 | |
US9477736B2 (en) | Apparatus and method for active and passive data gathering using stochastic model in control network | |
JP5813771B2 (ja) | 分散型データ記憶システムにデータを記憶する方法およびこれに対応する装置 | |
CN110620736B (zh) | 一种流量调度的方法及装置 | |
CN106535340B (zh) | 一种提升流媒体数据的优先级的方法、装置及*** |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 361000 B1F-065, Zone A, Huaxun Building, Software Park, Xiamen Torch Hi-tech Zone, Huli District, Xiamen City, Fujian Province Patentee after: Ke'an (Xiamen) Technology Co.,Ltd. Address before: B1f-065, zone a, Huaxun building, software park, torch hi tech Zone, Xiamen City, Fujian Province, 361000 Patentee before: TAILIAN (XIAMEN) TECHNOLOGY Co.,Ltd. |