CN110838924A - 区块传输方法及装置 - Google Patents
区块传输方法及装置 Download PDFInfo
- Publication number
- CN110838924A CN110838924A CN201911137244.3A CN201911137244A CN110838924A CN 110838924 A CN110838924 A CN 110838924A CN 201911137244 A CN201911137244 A CN 201911137244A CN 110838924 A CN110838924 A CN 110838924A
- Authority
- CN
- China
- Prior art keywords
- block
- network node
- data information
- hash value
- memory
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1854—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开实施例提供一种区块传输方法及装置,第一网络节点确定出第一内存中的各数据信息的哈希值后,根据各数据信息的哈希值生成第二区块,该第二区块不包含数据信息的具体内容。之后,第一网络节点将不包含数据信息具体内容的第一区块发送给第二网络节点,使得网络节点根据第一区块构建第二区块。该过程中,由于第一区块不包含数据信息的具体内容,使得第一区块的体积较小,因此能够减少传输时长和占用的传输资源。
Description
技术领域
本公开实施例涉及区块链技术领域,尤其涉及一种区块传输方法及装置。
背景技术
区块链(block chain)技术是一种使用去中心化共识机制维护一个完整的、分布式的、不可篡改的账本数据库的技术,随着信息技术的飞速发展,区块链技术得到大力发展。
区块链技术中,区块链网络中的一个网络节点根据数据信息生成区块后,需要向其他网络节点广播该区块。接收到区块的网络节点按照时间顺序,将接收到的区块以及自身生成的区块,以顺序相连的方式组合成一种链式数据结构从而得到区块链,该区块链可以视为以密码学方式保证的不可篡改和不可伪造的分布式账本。
上述区块传输过程中,一个区块包含数据信息的具体内容,使得网络节点生成的区块较大,由于区块的体积比较大,导致该区块被传输至其他网络节点所需的时间过长,且传输过程中占用过多的传输资源。
发明内容
本公开实施例提供一种区块传输方法及装置,第一网络节点生成的第一区块不包含数据信息的具体内容,使得第一区块的体积较小,因此能够减少传输时长和占用的传输资源。
第一方面,本公开实施例提供一种区块传输方法,包括:
第一网络节点确定第一内存中的数据信息的哈希值,所述第一内存是所述第一网络节点的内存,不同数据信息的哈希值不同;
所述第一网络节点根据所述数据信息的哈希值生成第一区块;
所述第一网络节点广播所述第一区块,以使得区块链网络中的第二网络节点根据所述第一区块构建第二区块以组装区块链。
一种可行的设计中,所述第一区块包含对应所述第一内存的第一数据信息的第一哈希值,所述第一哈希值同时存在于第一集合和第二集合,所述第一集合包括所述第一区块中的哈希值,所述第二集合包括所述第二网络节点的第二内存中的数据信息的哈希值。
一种可行的设计中,
所述第一区块包含对应所述第一内存的第二数据信息的第二哈希值,所述第二哈希值为存在于第一集合、但不存在于第二集合的哈希值,所述第一集合包括所述第一区块中的哈希值,所述第二集合包括所述第二网络节点的第二内存中的数据信息的哈希值,所述第一网络节点广播所述第一区块之后,还包括:
所述第一网络节点接收所述第二网络节点广播的查询消息,所述查询消息携带所述第二哈希值;
所述第一网络节点广播反馈信息,所述反馈信息携带所述第二哈希值对应的第二数据信息。
第二方面,本公开实施例提供一种区块传输方法,包括:
第二网络节点接收第一网络节点广播的第一区块,所述第一区块是所述第一网络节点根据第一内存中的数据信息的哈希值生成的,不同数据信息的哈希值不同,所述第一内存是所述第一网络节点的内存;
所述第二网络节点根据所述第一区块构建第二区块;
所述第二网络节点根据所述第二区块组装区块链。
一种可行的设计中,所述第二网络节点根据所述第一区块构建第二区块,包括:
所述第二网络节点根据第一集合和第二集合构建所述第二区块,所述第一集合包括所述第一区块中的哈希值,所述第二集合包括第二内存中的数据信息的哈希值,第二内存为所述第二网络节点上的内存。
一种可行的设计中,所述第二网络节点根据所述第一集合和所述第二集合构建所述第二区块,包括:
所述第二网络节点从所述第一集合中确定出第一哈希值,所述第一哈希值为同时存在于所述第一集合和所述第二集合的哈希值;
所述第二网络节点从所述第二内存中确定出所述第一哈希值对应的第一数据信息;
所述第二网络节点根据所述第一数据信息构建所述第二区块。
一种可行的设计中,所述第二网络节点根据所述第一集合和所述第二集合组装所述区块链,包括:
所述第二网络节点从所述第一集合中确定出第二哈希值,所述第二集合不包含所述第二哈希值;
所述第二网络节点构建所述第二区块,所述第二区块包括区块头和区块体,所述区块头为所述第一区块的区块头,所述区块体为空。
一种可行的设计中,所述第二网络节点从所述第一集合中确定出第二哈希值之后,还包括:
所述第二网络节点广播查询消息,所述查询消息携带所述第二哈希值;
所述第二网络节点接收所述第一网络节点发送的反馈消息,所述反馈消息携带所述第二哈希值对应的第二数据信息;
所述第二网络节点将所述第二数据信息填充至所述第二区块。
一种可行的设计中,所述第一区块的区块头包含第一区块高度,所述反馈消息还携带第一区块高度,所述第二网络节点将所述第二数据信息填充至所述第二区块之前,还包括:
所述第二网络节点判断所述反馈消息携带的第一区块高度与第二区块高度是否相同,所述第二区块高度是所述区块链尾部的最后一个区块的区块高度;
若所述第一区块高度和所述第二区块高度相同,则所述第二网络节点确定所述第二区块为所述区块链尾部的最后一个区块;
若所述第一区块高度和所述第二区块高度不同,则所述第二网络节点确定所述第二区块不是所述区块链尾部的最后一个区块,从所述区块链中确定出所述第二区块。
第三方面,本公开实施例提供一种区块传输装置,包括:
处理单元,用于确定第一内存中的数据信息的哈希值,所述第一内存是所述第一网络节点的内存,不同数据信息的哈希值不同,根据所述数据信息的哈希值生成第一区块;
收发单元,用于广播所述第一区块,以使得区块链网络中的第二网络节点根据所述第一区块构建第二区块以组装区块链。
一种可行的设计中,所述区块包含对应第一数据信息的第一哈希值,所述第一哈希值为同时存在于第一集合和第二集合的哈希值,所述第一集合是所述第二网络节点根据所述第一区块得到的,所述第二集合是所述第二网络节点根据第二内存中的数据信息确定出的。
一种可行的设计中,所述区块包含第二哈希值,所述第二哈希值为存在于第一集合、但不存在于第二集合的哈希值,所述第一集合是所述第二网络节点根据所述第一区块得到的,所述第二集合是所述第二网络节点根据第二内存中的数据信息确定出的,所述收发单元,在广播所述第一区块之后,还用于接收所述第二网络节点广播的查询消息,所述查询消息携带所述第二哈希值,广播反馈信息,所述反馈信息携带所述第二哈希值对应的第二数据信息。
第四方面,本公开实施例提供一种区块传输装置,包括:
收发单元,用于接收第一网络节点广播的第一区块,所述第一区块是所述第一网络节点根据第一内存中的数据信息的哈希值生成的,不同数据信息的哈希值不同;
处理单元,用于根据所述第一区块构建第二区块,根据所述第二区块组装区块链。
一种可行的设计中,所述处理单元,在根据所述第一区块构建第二区块时,获取所述第一区块中的哈希值,以得到第一集合,根据第二内存中的数据信息的哈希值,生成第二集合,根据所述第一集合和所述第二集合构建所述第二区块。
一种可行的设计中,所述处理单元,在根据所述第一集合和所述第二集合构建所述第二区块时,用于从所述第一集合中确定出第一哈希值,所述第一哈希值为同时存在于所述第一集合和所述第二集合的哈希值,从所述第二内存中确定出所述第一哈希值对应的第一数据信息,根据所述第一数据信息构建所述第二区块。
一种可行的设计中,所述处理单元,在根据所述第一集合和所述第二集合构建所述第二区块时,用于从所述第一集合中确定出第二哈希值,所述第二集合不包含所述第二哈希值,构建所述第二区块,所述第二区块包括区块头和区块体,所述区块头为所述第一区块的区块头,所述区块体为空。
一种可行的设计中,所述收发单元,在从所述第一集合中确定出第二哈希值之后,还用于广播查询消息,所述查询消息携带所述第二哈希值,接收所述第一网络节点发送的反馈消息,所述反馈消息携带所述第二哈希值对应的第二数据信息;
所述处理单元,还用于将所述第二数据信息填充至所述第二区块。
一种可行的设计中,所述第一区块的区块头包含第一区块高度,所述反馈消息还携带第一区块高度,所述处理单元,在将所述第二数据信息填充至所述第二区块之前,还用于判断所述反馈消息携带的第一区块高度与第二区块高度是否相同,所述第二区块高度是所述区块链尾部的最后一个区块的区块高度,若所述第一区块高度和所述第二区块高度相同,则确定所述第二区块为所述区块链尾部的最后一个区块;若所述第一区块高度和所述第二区块高度不同,则确定所述第二区块不是所述区块链尾部的最后一个区块,从所述区块链中确定出所述第二区块。
第五方面,本公开实施例提供一种第一网络节点,包括处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上第一方面或第一方面的各种可行的实现方式所述的方法。
第六方面,本公开实施例提供一种第二网络节点,包括处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上第二方面或第二方面的各种可行的实现方式所述的方法。
第七方面,本公开实施例提供一种存储介质,所述存储介质中存储有指令,当其在第一网络节点上运行时,使得第一网络节点执行如上第一方面或第一方面的各种可行的实现方式所述的方法。
第八方面,本公开实施例提供一种存储介质,所述存储介质中存储有指令,当其在第二网络节点上运行时,使得第二网络节点执行如上第二方面或第二方面的各种可行的实现方式所述的方法。
第九方面,本公开实施例提供一种计算机程序产品,所述计算机程序产品在第一网络节点上运行时,使得第一网络节点执行如上第一方面或第一方面的各种可行的实现方式所述的方法。
第十方面,本公开实施例提供一种计算机程序产品,所述计算机程序产品在第二网络节点上运行时,使得第二网络节点执行如上第二方面或第二方面的各种可行的实现方式所述的方法。
本公开实施例提供的区块传输方法及装置,第一网络节点确定出第一内存中的各数据信息的哈希值后,根据各数据信息的哈希值生成第二区块,该第二区块不包含数据信息的具体内容。之后,第一网络节点将不包含数据信息具体内容的第一区块发送给第二网络节点,使得网络节点根据第一区块构建第二区块。该过程中,由于第一区块不包含数据信息的具体内容,使得第一区块的体积较小,因此能够减少传输时长和占用的传输资源。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的区块传输方法的运行环境示意图;
图2是本公开实施例提供的一种区块传输方法的流程图;
图3是本公开实施例提供的区块传输方法中第一区块的结构示意图;
图4为本公开实施例提供的一种区块传输装置的结构示意图;
图5为本公开实施例提供的另一种区块传输装置的结构示意图;
图6为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
区块链(Block chain)技术是一种使用去中心化共识机制去维护一个完整的、分布式的、不可篡改的账本数据库的技术,它能够让区块中的参与者在无需建立信任关系的前提下实现一个统一的账本系统。区块是公共账本,多点维护;链指盖上时间戳(timestamps),不可伪造,区块链本质上是一个注重安全和可信度胜过效率的一项技术。通常情况下,区块链网络中的网络节点根据本地内存中的数据信息生成区块,该区块包含每条数据信息的具体内容。之后,网络节点广播该区块,使得其他网络节点接收该区块并组装区块链。
上述区块传输过程中,一个区块包含数据信息的具体内容,使得网络节点生成的区块较大,由于区块的体积比较大,导致该区块被传输至其他网络节点所需的时间过长,且传输过程中占用过多的传输资源。
有鉴于此,本公开实施例提供一种区块传输方法及装置,第一网络节点将不包含数据信息具体内容的第一区块发送给第二网络节点,使得网络节点根据第一区块构建第二区块。该过程中,由于第一区块不包含数据信息的具体内容,使得第一区块的体积较小,因此能够减少传输时长和占用的传输资源。
图1是本公开实施例提供的区块传输方法的运行环境示意图。请参照图1,该运行环境包括不包括中心服务器,而仅仅包括多个网络节点,如图中的网络节点1~网络节点5,网络节点1~网络节点5中的每一个网络节点与其他网络节点中的至少一个相连。网络节点1~网络节点5例如为供应链追溯、供应链管理等场景中的终端设备、服务器等。
请参照图1,一个网络节点(以下称之为第一网络节点)根据数据信息的哈希值生成第一区块后,广播该第一区块,与该第一网络节点相连的网络节(以下称之为第二网络节点)接收到第一区块后,读取第一区块中的哈希值,并根据读取出的哈希值构建第二区块,之后将第二区块组装至区块链。
下面,基于图1所示架构,对本公开实施例所述的区块传输方法进行详细说明。示例性的,可参见图2。图2是本公开实施例提供的一种区块传输方法的流程图,本实施例是从区块链网络中的第一网络节点和第二网络节点交互的角度,对本公开实施例所述的区块传输方法进行详细说明的。本实施例包括:
101、第一网络节点确定第一内存中的数据信息的哈希值。
其中,所述第一内存是所述第一网络节点的内存,不同数据信息的哈希值不同。
示例性的,第一网络节点的本地内存,即第一内存中存储多条数据信息。生成第一区块时,第一网络节点读取多条数据信息的全部或部分数据信息,对于读取到的数据信息中的每一条数据信息,第一网络节点根据该条数据信息的具体内容,生成该条数据信息的哈希值。哈希值是指第一网络节点对任意的数据信息计算出的固定长度的特征值,不同数据信息的哈希值的长度相同。例如,哈希值的长度是256位,也就是说,不管数据信息的具体内容是什么,第一网络节点都可以根据该数据信息的具体内容计算出一个256位的二进制数字。而且,只要两个数据信息分别对应的具体内容不同,则第一网络节点针对该两个数据信息得到的两个哈希值一定不同。以其中一条数据信息的具体内容为字符串123为例,第一网络节点确定出字符串123的哈希值是a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0,该十六进制的哈希值转换成二进制就是256位,而且只有字符串123能够得到这个256位的哈希值。理论上,其他数据信息也可以得到这个哈希值,但是概率极低,可以近似认为不可能发生。
102、第一网络节点根据所述数据信息的哈希值生成第一区块。
本步骤中,第一网络节点根据步骤101中各数据的哈希值,生成第一区块。示例性的,可参见图3,图3是本公开实施例提供的区块传输方法中第一区块的结构示意图。请参照图3,第一区块包括区块头和区块体,区块头包含该第一区块的时间戳、第一区块的区块高度,区块体至少包含各数据信息的哈希值。例如,第一网络节点为每一条数据信息建立一个键值(key-value)对,键值对中的key表示该数据信息的哈希值,而value为空(null)。
103、第一网络节点广播所述第一区块。
示例性的,第一网络节点向区块链网络中的各网络节点广播第一区块。
相应的,区块链网络节点中的第二网络节点接收该第一区块。
104、第二网络节点根据所述第一区块构建第二区块。
示例性的,第二网络节点读取出第一区块中的哈希值,对于每一个哈希值,确定该哈希值对应的数据信息,将该数据信息填充到区块体里,然后,根据第一区块的区块头和该区块体得到一个新的区块,该新的区块即为第二区块。
105、第二网络节点根据第二区块组装区块链。
示例性的,第二网络节点维护本地的区块链,每次构建出第二区块后,将该第二区块组装在区块链的尾部。
本公开实施例提供的区块传输方法,第一网络节点确定出第一内存中的各数据信息的哈希值后,根据各数据信息的哈希值生成第二区块,该第二区块不包含数据信息的具体内容。之后,第一网络节点将不包含数据信息具体内容的第一区块发送给第二网络节点,使得网络节点根据第一区块构建第二区块。该过程中,由于第一区块不包含数据信息的具体内容,使得第一区块的体积较小,因此能够减少传输时长和占用的传输资源。
下面,对上述实施例中,第二网络节点如何根据第一区块构建第二区块进行详细说明。
一种可行的实现方式中,第二网络节点根据第一区块构建第二区块时,第二网络节点根据第一集合和第二集合构建第二区块,第一集合包括第一区块中的哈希值,第二集合包括第二内存中的数据信息的哈希值,第二内存为第二网络节点上的内存。
示例性的,第一网络节点还广播第一内存中的数据信息,相应的,第二网络节点接收该些数据信息,并将该些数据信息存储在第二网络节点的本地内存,即第二内存中。由于同一时间或一个时间段内,区块链网络内可能存在多个广播数据信息的网络节点,即第一网络节点为多个。因此,第二网络节点的第二内存中的数据信息可能是多个网络节点广播的数据信息。第二网络节点确定出第二内存中的各数据信息的哈希值,得到第二集合。另外,第二网络节点还为第二内存中的各数据信息生成键值对,对于第二内存中的每一个数据信息,键值对中的key表示该数据信息的哈希值,键值对中的value表示该数据信息的具体内容。
第二网络节点根据第二内存中的数据信息得到第二集合后,第二网络节点根据第一集合和的第二集合构建第二区块。
采用本实施例提供的方案,实现第二网络节点根据第一区块构建出第二区块的目的。
下面,对上述实施例中,第二网络节点根据第二内存中的数据信息得到第二集合后,如何根据的第一集合和的第二集合构建第二区块进行详细说明。
一种可行的设计中,第二网络节点根据第一集合和第二集合构建第二区块时,第二网络节点从第一集合中确定出第一哈希值,第一哈希值为同时存在于第一集合和第二集合的哈希值;然后,第二网络节点从第二内存中确定出第一哈希值对应的第一数据信息,并根据第一数据信息构建第二区块。
示例性的,由于第二网络节点能够从第二内存中确定出第二集合中的哈希值对应的数据信息,因此,对于同时存在于第一集合和第二集合中的第一哈希值,第二网络节点根据第一哈希值从第二内存中确定出该第一哈希值对应的第一数据信息,然后,将该第一数据信息填充到第一区块的区块体里,即可得到第二区块。
采用本实施例提供的方案,第二网络节点根据第一区块构建出第二区块,使得包含第二区块的区块链包含更多的有效信息,提高了区块链的质量。
另一种可行的设计中,第二网络节点根据第一集合和第二集合构建第二区块时,第二网络节点从第一集合中确定出第二哈希值,第二集合不包含第二哈希值。之后,第二网络节点构建第二区块,该第二区块包括区块头和区块体,区块头为第一区块的区块头,区块体为空。
示例性的,对于存在于第一集合、但不存在于第二集合中的第二哈希值,由于第二网络节点无法从第二内存中获取到该第二哈希值对应的第二数据信息,因此,第二网络节点构建出的第二区块与第一区块相同,即第二区块和第二区块的区块头均为第一区块的区块头,且第一区块和第二区块的区块体为空。
采用本实施例提供的方案,实现第二网络节点根据第一区块构建出第二区块的目的。
上述实施例中,第二网络节点构建出第二区块后,将该第二区块放入本地区块链的尾部,即将该第二区块组长至区块链。
上述实施例中,当第二区块的区块体为空时,该第二区块会降低区块链的质量。为此,需要对第二区块的区块体进行填充,下面,对如何填充第二区块的区块体进行详细说明。
一种可行的实现方式中,第二网络节点从第一集合中确定出第二哈希值之后,该第二网络节点广播查询消息,该查询消息携带第二哈希值。第一网络节点接收到查询消息后,广播反馈信息,该反馈信息携带第二哈希值对应的第二数据信息。之后,第二网络节点接收第一网络节点发送的携带第二哈希值对应的第二数据信息的反馈消息,并将第二数据信息填充至第二区块。
示例性的,第二网络节点从第一集合中确定出第二哈希值后,由于本地内存,即第二内存中没有该第二哈希值对应的数据信息,因此,第二网络节点广播查询消息,该查询消息携带该第二哈希值以及第二网络节点的标识。其他网络节点接收到该广播消息后,根据第二哈希值判断本地内存是否存储该第二哈希值对应的第二数据信息。例如,第一网络节点判断第一内存中的数据信息对应的哈希值中是否存在第二哈希值,若第一内存中的数据信息对应的哈希值存在第二哈希值,则第一网络节点广播反馈信息,该反馈信息包含第二哈希值、第二哈希值对应的第二数据信息、第二网络节点的标识。
第二网络节点接收到反馈信息后,发现该反馈信息携带的自身的标识,则读取反馈信息携带的第二数据信息,并将该第二数据信息填充至第二区块的区块体中,使得第二区块的区块体不为空。
采用本实施例提供的方案,第二网络节点对第二区块的区块体进行填充,使得第二区块不为空,实现提高区块链质量的目的。
上述实施例中,不论第二区块的区块体是否为空,第二网络节点构建出第二区块后,均将该第二区块组装至区块链尾部。但是,若第二区块为空,第二网络节点从广播查询消息至接收到反馈消息并确定出第二数据信息的过程中,很有可能第二区块的后面被组装了其他区块,即第二区块很有可能不是区块链尾部的最后一个区块了,为了将第二数据信息填充至正确的位置,需要从区块链中确定出第二区块。下面,对第二网络节点如何从区块链中确定出第二区块进行详细说明。
一种可行的实现方式中,第二网络节点广播的查询消息中除了携带第二哈希值和第二网络节点的标识外,还携带第二区块的区块高度;第二网络节点接收到的反馈消息除了携带第二网络节点的标识、第二哈希值对应的第二数据信息外,还携带第二区块的区块高度。当第二网络节点接收到反馈信息、根据反馈信息携带的第二网络节点的标识判断出自身是查询第二数据信息的网络节点后,比对反馈信息携带的第二区块的区块高度和区块链中各区块的区块高度,直到从区块链中确定出一个区块,该区块的区块高度与反馈信息携带的区块高度相同,然后,第二网络节点将从区块链中确定出的区块作为第二区块,并对该第二区块的区块体进行填充。
采用该种方案,第二网络节点从区块链中确定出第二区块,实现对第二区块进行准确填充的目的。
另一种可行的实现方式中,第二网络节点将第二数据信息填充至第二区块之前,还判断反馈消息携带的第一区块高度与第二区块高度是否相同,该第二区块高度是区块链尾部的最后一个区块的区块高度;若第一区块高度和第二区块高度相同,则第二网络节点确定第二区块为区块链尾部的最后一个区块;若第一区块高度和第二区块高度不同,则第二网络节点确定第二区块不是区块链尾部的最后一个区块,从区块链中确定出第二区块。
该种方式中,第二网络节点每次接收到反馈信息后,根据反馈信息携带的第二网络节点的标识判断出自身为是查询第二数据信息的网络节点后,先判断当前区块链的最后一个区块的区块高度,即第二区块的区块高度是否与反馈信息携带的区块高度是否相同,若相同,则说明从第二网络节点广播查询消息至接收到反馈消息并确定出第二数据信息的过程中,区块链的尾部并未被组装其他区块,即区块链尾部的最后一个区块就是第二区块,此时,第二网络节点将第二数据信息填充至区块链尾部的最后一个区块的区块体内。
反之,若当前区块链的最后一个区块的区块高度,即第二区块的区块高度与反馈信息携带的区块高度不相同,说明从第二网络节点广播查询消息至接收到反馈消息并确定出第二数据信息的过程中,区块链的尾部被组装了其他区块,此时,比对反馈信息携带的第二区块的区块高度和区块链中各区块的区块高度,直到从区块链中确定出一个区块,该区块的区块高度与反馈信息携带的区块高度相同,然后,第二网络节点将从区块链中确定出的区块作为第二区块,并对该第二区块的区块体进行填充。
采用该种方案,第二网络节点从区块链中确定出第二区块,实现快速对第二区块进行准确填充的目的。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图4为本公开实施例提供的一种区块传输装置的结构示意图。该区块传输装置100可以通过软件和/或硬件的方式实现。如图4所示,该区块传输装置100包括:
处理单元11,用于确定第一内存中的数据信息的哈希值,所述第一内存是所述第一网络节点的内存,不同数据信息的哈希值不同,根据所述数据信息的哈希值生成第一区块;
收发单元12,用于广播所述第一区块,以使得区块链网络中的第二网络节点根据所述第一区块构建第二区块以组装区块链。
一种可行的设计中,所述第一区块包含对应所述第一内存的第一数据信息的第一哈希值,所述第一哈希值同时存在于第一集合和第二集合,所述第一集合包括所述第一区块中的哈希值,所述第二集合包括所述第二网络节点的第二内存中的数据信息的哈希值。
一种可行的设计中,所述第一区块包含对应所述第一内存的第二数据信息的第二哈希值,所述第二哈希值为存在于第一集合、但不存在于第二集合的哈希值,所述第一集合包括所述第一区块中的哈希值,所述第二集合包括所述第二网络节点的第二内存中的数据信息的哈希值,所述收发单元12,在广播所述第一区块之后,还用于接收所述第二网络节点广播的查询消息,所述查询消息携带所述第二哈希值,广播反馈信息,所述反馈信息携带所述第二哈希值对应的第二数据信息。
本公开实施例提供的区块传输装置,可以执行上述实施例中第一网络节点的动作,其实现原理和技术效果类似,在此不再赘述。
图5为本公开实施例提供的另一种区块传输装置的结构示意图。该区块传输装置200可以通过软件和/或硬件的方式实现。如图5所示,该区块传输装置200包括:
收发单元21,用于接收第一网络节点广播的第一区块,所述第一区块是所述第一网络节点根据第一内存中的数据信息的哈希值生成的,不同数据信息的哈希值不同,所述第一内存是所述第一网络节点的内存;
处理单元22,用于根据所述第一区块构建第二区块,根据所述第二区块组装区块链。
一种可行的设计中,所述处理单元22,在根据所述第一区块构建第二区块时,根据第一集合和第二集合构建所述第二区块,所述第一集合包括所述第一区块中的哈希值,所述第二集合包括第二内存中的数据信息的哈希值,第二内存为所述第二网络节点上的内存。
一种可行的设计中,所述处理单元22,在根据所述第一集合和所述第二集合构建所述第二区块时,用于从所述第一集合中确定出第一哈希值,所述第一哈希值为同时存在于所述第一集合和所述第二集合的哈希值,从所述第二内存中确定出所述第一哈希值对应的第一数据信息,根据所述第一数据信息构建所述第二区块。
一种可行的设计中,所述处理单元22,在根据所述第一集合和所述第二集合构建所述第二区块时,用于从所述第一集合中确定出第二哈希值,所述第二集合不包含所述第二哈希值,构建所述第二区块,所述第二区块包括区块头和区块体,所述区块头为所述第一区块的区块头,所述区块体为空。
一种可行的设计中,所述收发单元21,在从所述第一集合中确定出第二哈希值之后,还用于广播查询消息,所述查询消息携带所述第二哈希值,接收所述第一网络节点发送的反馈消息,所述反馈消息携带所述第二哈希值对应的第二数据信息;
所述处理单元22,还用于将所述第二数据信息填充至所述第二区块。
一种可行的设计中,所述第一区块的区块头包含第一区块高度,所述反馈消息还携带第一区块高度,所述处理单元22,在将所述第二数据信息填充至所述第二区块之前,还用于判断所述反馈消息携带的第一区块高度与第二区块高度是否相同,所述第二区块高度是所述区块链尾部的最后一个区块的区块高度,若所述第一区块高度和所述第二区块高度相同,则确定所述第二区块为所述区块链尾部的最后一个区块;若所述第一区块高度和所述第二区块高度不同,则确定所述第二区块不是所述区块链尾部的最后一个区块,从所述区块链中确定出所述第二区块。
本公开实施例提供的区块传输装置,可以执行上述实施例中第二网络节点的动作,其实现原理和技术效果类似,在此不再赘述。
图6为本公开实施例提供的一种电子设备的结构示意图。该电子设备可以是第一网络节点或第二网络节点,如图6所示,该电子设备300包括:
至少一个处理器31和存储器32;
所述存储器32存储计算机执行指令;
所述至少一个处理器31执行所述存储器32存储的计算机执行指令,使得所述至少一个处理器31执行如上第一网络节点或第二网络节点对应的区块传输方法。
可选地,该终端设备300还包括通信部件33。其中,处理器31、存储器32以及通信部件33可以通过总线34连接。
本公开实施例还提供一种存储介质,所述存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上所述的区块传输方法。
本公开实施例还提供一种计算机程序产品,当所述计算机程序产品在第一网络节点上运行时,使得第一网络节点执行如上述区块传输方法。
本公开实施例还提供一种计算机程序产品,当所述计算机程序产品在第二网络节点上运行时,使得第二网络节点执行如上述区块传输方法。
在上述的实施例中,应该理解到,所描述的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。
Claims (15)
1.一种区块传输方法,其特征在于,包括:
第一网络节点确定第一内存中的数据信息的哈希值,所述第一内存是所述第一网络节点的内存,不同数据信息的哈希值不同;
所述第一网络节点根据所述数据信息的哈希值生成第一区块;
所述第一网络节点广播所述第一区块,以使得区块链网络中的第二网络节点根据所述第一区块构建第二区块以组装区块链。
2.根据权利要求1所述的方法,其特征在于,所述第一区块包含对应所述第一内存的第一数据信息的第一哈希值,所述第一哈希值同时存在于第一集合和第二集合,所述第一集合包括所述第一区块中的哈希值,所述第二集合包括所述第二网络节点的第二内存中的数据信息的哈希值。
3.根据权利要求1所述的方法,其特征在于,所述第一区块包含对应所述第一内存的第二数据信息的第二哈希值,所述第二哈希值为存在于第一集合、但不存在于第二集合的哈希值,所述第一集合包括所述第一区块中的哈希值,所述第二集合包括所述第二网络节点的第二内存中的数据信息的哈希值,所述第一网络节点广播所述第一区块之后,还包括:
所述第一网络节点接收所述第二网络节点广播的查询消息,所述查询消息携带所述第二哈希值;
所述第一网络节点广播反馈信息,所述反馈信息携带所述第二哈希值对应的第二数据信息。
4.一种区块传输方法,其特征在于,包括:
第二网络节点接收第一网络节点广播的第一区块,所述第一区块是所述第一网络节点根据第一内存中的数据信息的哈希值生成的,不同数据信息的哈希值不同,所述第一内存是所述第一网络节点的内存;
所述第二网络节点根据所述第一区块构建第二区块;
所述第二网络节点根据所述第二区块组装区块链。
5.根据权利要求4所述的方法,其特征在于,所述第二网络节点根据所述第一区块构建第二区块,包括:
所述第二网络节点根据第一集合和第二集合构建所述第二区块,所述第一集合包括所述第一区块中的哈希值,所述第二集合包括第二内存中的数据信息的哈希值,第二内存为所述第二网络节点上的内存。
6.根据权利要求5所述的方法,其特征在于,所述第二网络节点根据所述第一集合和所述第二集合构建所述第二区块,包括:
所述第二网络节点从所述第一集合中确定出第一哈希值,所述第一哈希值为同时存在于所述第一集合和所述第二集合的哈希值;
所述第二网络节点从所述第二内存中确定出所述第一哈希值对应的第一数据信息;
所述第二网络节点根据所述第一数据信息构建所述第二区块。
7.根据权利要求5所述的方法,其特征在于,所述第二网络节点根据所述第一集合和所述第二集合组装所述区块链,包括:
所述第二网络节点从所述第一集合中确定出第二哈希值,所述第二集合不包含所述第二哈希值;
所述第二网络节点构建所述第二区块,所述第二区块包括区块头和区块体,所述区块头为所述第一区块的区块头,所述区块体为空。
8.根据权利要求7所述的方法,其特征在于,所述第二网络节点从所述第一集合中确定出第二哈希值之后,还包括:
所述第二网络节点广播查询消息,所述查询消息携带所述第二哈希值;
所述第二网络节点接收所述第一网络节点发送的反馈消息,所述反馈消息携带所述第二哈希值对应的第二数据信息;
所述第二网络节点将所述第二数据信息填充至所述第二区块。
9.根据权利要求8所述的方法,其特征在于,所述第一区块的区块头包含第一区块高度,所述反馈消息还携带第一区块高度,所述第二网络节点将所述第二数据信息填充至所述第二区块之前,还包括:
所述第二网络节点判断所述反馈消息携带的第一区块高度与第二区块高度是否相同,所述第二区块高度是所述区块链尾部的最后一个区块的区块高度;
若所述第一区块高度和所述第二区块高度相同,则所述第二网络节点确定所述第二区块为所述区块链尾部的最后一个区块;
若所述第一区块高度和所述第二区块高度不同,则所述第二网络节点确定所述第二区块不是所述区块链尾部的最后一个区块,从所述区块链中确定出所述第二区块。
10.一种区块传输装置,其特征在于,包括:
处理单元,用于确定第一内存中的数据信息的哈希值,所述第一内存是第一网络节点的内存,不同数据信息的哈希值不同,根据所述数据信息的哈希值生成第一区块;
收发单元,用于广播所述第一区块,以使得区块链网络中的第二网络节点根据所述第一区块构建第二区块以组装区块链。
11.一种区块传输装置,其特征在于,包括:
收发单元,用于接收第一网络节点广播的第一区块,所述第一区块是所述第一网络节点根据第一内存中的数据信息的哈希值生成的,不同数据信息的哈希值不同,所述第一内存是所述第一网络节点的内存;
处理单元,用于根据所述第一区块构建第二区块,根据所述第二区块组装区块链。
12.一种网络节点,其特征在于,所述网络节点为第一网络节点,所述第一网络节点包括:处理器、存储器以及计算机程序;其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如权利要求1-3任一项所述的方法的指令。
13.一种存储介质,其特征在于,所述存储介质中存储有指令,当其在第一网络节点上运行时,使得第一网络节点执行如权利要求1-3任一项所述的方法。
14.一种网络节点,其特征在于,所述网络节点为第二网络节点,所述第二网络节点包括:处理器、存储器以及计算机程序;其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如权利要求4-9任一项所述的方法的指令。
15.一种存储介质,其特征在于,所述存储介质中存储有指令,当其在第二网络节点上运行时,使得第二网络节点执行如权利要求4-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911137244.3A CN110838924B (zh) | 2019-11-19 | 2019-11-19 | 区块传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911137244.3A CN110838924B (zh) | 2019-11-19 | 2019-11-19 | 区块传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110838924A true CN110838924A (zh) | 2020-02-25 |
CN110838924B CN110838924B (zh) | 2022-04-12 |
Family
ID=69576690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911137244.3A Active CN110838924B (zh) | 2019-11-19 | 2019-11-19 | 区块传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110838924B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113381863A (zh) * | 2020-03-10 | 2021-09-10 | 本无链科技(深圳)有限公司 | 一种用于区块链的招呼型广播系统及方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106506638A (zh) * | 2016-11-04 | 2017-03-15 | 江苏通付盾科技有限公司 | 区块链中的区块存储方法及装置 |
US20170346693A1 (en) * | 2016-05-27 | 2017-11-30 | Mastercard International Incorporated | Method and system for efficient distribution of configuration data utilizing permissioned blockchain technology |
WO2018076761A1 (zh) * | 2016-10-27 | 2018-05-03 | 上海亿账通区块链科技有限公司 | 基于区块链交易的权限管制方法、系统、电子装置及存储介质 |
US20180205558A1 (en) * | 2015-01-23 | 2018-07-19 | Daniel Robert Ferrin | Method and apparatus for the limitation of the mining of blocks on a block chain |
CN108390872A (zh) * | 2018-02-09 | 2018-08-10 | 北京京东尚科信息技术有限公司 | 证书管理方法、装置、介质及电子设备 |
CN108810119A (zh) * | 2018-05-31 | 2018-11-13 | 中国联合网络通信集团有限公司 | 区块链处理方法、装置及区块链节点 |
CN108984662A (zh) * | 2018-06-28 | 2018-12-11 | 杭州复杂美科技有限公司 | 一种区块链数据同步方法 |
CN109033422A (zh) * | 2018-08-08 | 2018-12-18 | 云南天之游科技股份有限公司 | 一种生成区块链的方法、装置及区块链 |
CN109246084A (zh) * | 2018-08-13 | 2019-01-18 | 中国联合网络通信集团有限公司 | 新区块生成方法、装置、电子设备与存储介质 |
WO2019023289A1 (en) * | 2017-07-27 | 2019-01-31 | Eland Blockchain Fintech Inc. | ELECTRONIC TRANSACTION SYSTEM AND METHOD USING A BLOCK CHAIN TO STORE TRANSACTION RECORDINGS |
WO2019158001A1 (zh) * | 2018-02-14 | 2019-08-22 | 华为技术有限公司 | 一种区块链生成的方法、相关设备及系统 |
CN110224814A (zh) * | 2019-06-27 | 2019-09-10 | 深圳前海微众银行股份有限公司 | 一种区块链数据共享方法及装置 |
CN110336677A (zh) * | 2019-07-15 | 2019-10-15 | 杭州复杂美科技有限公司 | 区块打包、广播方法和系统、设备及存储介质 |
CN110445626A (zh) * | 2019-07-15 | 2019-11-12 | 杭州复杂美科技有限公司 | 区块打包、广播方法和系统、设备及存储介质 |
-
2019
- 2019-11-19 CN CN201911137244.3A patent/CN110838924B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180205558A1 (en) * | 2015-01-23 | 2018-07-19 | Daniel Robert Ferrin | Method and apparatus for the limitation of the mining of blocks on a block chain |
US20170346693A1 (en) * | 2016-05-27 | 2017-11-30 | Mastercard International Incorporated | Method and system for efficient distribution of configuration data utilizing permissioned blockchain technology |
WO2018076761A1 (zh) * | 2016-10-27 | 2018-05-03 | 上海亿账通区块链科技有限公司 | 基于区块链交易的权限管制方法、系统、电子装置及存储介质 |
CN106506638A (zh) * | 2016-11-04 | 2017-03-15 | 江苏通付盾科技有限公司 | 区块链中的区块存储方法及装置 |
WO2019023289A1 (en) * | 2017-07-27 | 2019-01-31 | Eland Blockchain Fintech Inc. | ELECTRONIC TRANSACTION SYSTEM AND METHOD USING A BLOCK CHAIN TO STORE TRANSACTION RECORDINGS |
CN108390872A (zh) * | 2018-02-09 | 2018-08-10 | 北京京东尚科信息技术有限公司 | 证书管理方法、装置、介质及电子设备 |
WO2019158001A1 (zh) * | 2018-02-14 | 2019-08-22 | 华为技术有限公司 | 一种区块链生成的方法、相关设备及系统 |
CN108810119A (zh) * | 2018-05-31 | 2018-11-13 | 中国联合网络通信集团有限公司 | 区块链处理方法、装置及区块链节点 |
CN108984662A (zh) * | 2018-06-28 | 2018-12-11 | 杭州复杂美科技有限公司 | 一种区块链数据同步方法 |
CN109033422A (zh) * | 2018-08-08 | 2018-12-18 | 云南天之游科技股份有限公司 | 一种生成区块链的方法、装置及区块链 |
CN109246084A (zh) * | 2018-08-13 | 2019-01-18 | 中国联合网络通信集团有限公司 | 新区块生成方法、装置、电子设备与存储介质 |
CN110224814A (zh) * | 2019-06-27 | 2019-09-10 | 深圳前海微众银行股份有限公司 | 一种区块链数据共享方法及装置 |
CN110336677A (zh) * | 2019-07-15 | 2019-10-15 | 杭州复杂美科技有限公司 | 区块打包、广播方法和系统、设备及存储介质 |
CN110445626A (zh) * | 2019-07-15 | 2019-11-12 | 杭州复杂美科技有限公司 | 区块打包、广播方法和系统、设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
QIUHONG ZHENG: "《An Innovative IPFS-Based Storage Model for Blockchain》", 《2018 IEEE/WIC/ACM INTERNATIONAL CONFERENCE ON WEB INTELLIGENCE (WI)》 * |
张舒等: "区块链技术基础及应用", 《信息安全研究》 * |
沈鑫等: "区块链技术综述", 《网络与信息安全学报》 * |
翟社平等: "区块链关键技术中的数据一致性研究", 《计算机技术与发展》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113381863A (zh) * | 2020-03-10 | 2021-09-10 | 本无链科技(深圳)有限公司 | 一种用于区块链的招呼型广播系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110838924B (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107888562B (zh) | 一种平行链接入互联链的数据验证和收发方法、节点及系统 | |
CN109587253B (zh) | 一种基于区块链对文件实现分布式存储的方法 | |
CN108965484A (zh) | 一种物联网数据的传输方法、系统及终端 | |
WO2017012510A1 (zh) | 传输灵活以太网的业务流的方法和装置 | |
CN111083161A (zh) | 数据传输的处理方法及装置、物联网设备 | |
JP7509797B2 (ja) | ショートトランザクション識別子衝突検出及び調停 | |
CN112954045B (zh) | 节点中的数据传输方法、装置、介质及电子设备 | |
US20120011566A1 (en) | System and method for sensor network authentication based on xor chain | |
CN104301141A (zh) | 一种保存配置信息的方法、装置及系统 | |
CN112817602A (zh) | 一种json格式数据发送、接收方法、设备及介质 | |
CN109067754B (zh) | 一种请求端与服务端的通信方法及系统 | |
CN114362885A (zh) | 物联网数据传输方法、装置、设备和介质 | |
CN110838924B (zh) | 区块传输方法及装置 | |
EP3920464A1 (en) | Method for storing transaction that represents asset transfer to distributed network and program for the same | |
CN113179215B (zh) | 组网通信方法、系统、节点设备、存储介质和电子设备 | |
JP2022515637A (ja) | データの再送復号方法、装置、システム及び通信装置 | |
CN116723239B (zh) | 区块链数据的传输方法、装置、电子设备和可读介质 | |
US20210176293A1 (en) | Method, device and system for transmitting data | |
CN108460044B (zh) | 数据的处理方法和装置 | |
CN112566123B (zh) | 一种确定异常网络节点的方法及装置 | |
CN103220260B (zh) | 更新数据的方法、服务器、客户端及系统 | |
CN114157716B (zh) | 基于区块链的数据处理方法、装置和电子设备 | |
CN112688870B (zh) | 一种路由方法、路由装置及节点设备 | |
CN103503358A (zh) | 一种群组资源交互消息的方法及其装置 | |
CN115085926A (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 |