一种基于随机共识机制的图式账本数据发布方法和装置制造方法及图纸

技术编号:26793513 阅读:34 留言:0更新日期:2020-12-22 17:09
本申请提供了一种基于随机共识机制的图式账本数据发布方法和装置,涉及区块链技术领域。旨在提供一种能够在对区块数据进行随机共识的同时,建立区块数据的存储位置与区块数据内容的索引的方法。本申请中图式账本系统的产块节点在生成新区块后,获取区块的哈希值,根据哈希值生成内容身份证,再将选择的对新区块进行随机共识的节点的位置与内容身份证绑定,进而实现在完成新区块随机共识的同时,将新区块的存储位置发布到其他节点的分布式哈希表,由于哈希值是数据内容的唯一标识,因此本申请通过将内容身份证发布到分布式哈希表的方式,建立了新区块的数据内容与数据内容存储位置的索引,为快速定位数据的存储节点提供基础。

【技术实现步骤摘要】
一种基于随机共识机制的图式账本数据发布方法和装置
本申请涉及区块链
,特别是涉及一种基于随机共识机制的图式账本数据发布方法和装置。
技术介绍
以比特币为代表的区块链问世以来,由于其去中心化、难以篡改、不可抵赖和数据一致性的特性,受到了工业和学术界的广泛关注。区块链技术主要采用节点状态机复制,即全网所有节点都对指令和数据达成一致,但由于在一段时间内全网只能产生一个有效区块,使得区块链存在系统瓶颈,不可拓展。为了解决以比特币为代表的第一代区块链技术的性能瓶颈,实现区块链的可扩展性,有人提出将链式结构替换为图式结构,不同于链式结构,图结构的区块链中,每个区块有多个前驱区块和后驱区块,同时将随机共识算法应用到图式结构中,例如PBFT、Paxos、Raft等,随机共识算法本质是在全网的节点中选择部分节点对新生成的区块进行验证和备份,因此基于随机共识的图式结构的区块链(图式账本)在一段时间内,可以并行产生多个有效区块,使整个系统的交易笔数大幅增加,存储量可扩展。各式各样的数据被记录到图式账本之后,还需要满足用户的各种查询需求,例如查询账户信息、账户余额、交易历史、交易内容等,这是包括区块链、图式账本在内的分布式账本的核心功能需求,是溯源、存证的基础,因此,高效的查询操作必不可少。然而,在随机共识的图式账本中,单个节点随机存储部分区块数据,导致区块数据存储位置不可知,无法快速定位并获取用户查询的区块数据。
技术实现思路
本申请实施例提出的一种基于随机共识机制的图式账本数据发布方法和装置,旨在提供一种能够在对区块数据进行随机共识的同时,建立区块数据的存储位置与区块数据内容的索引的方法。本申请实施例第一方面提供一种基于随机共识机制的图式账本数据发布方法,所述方法包括:产块节点在接收的交易数据达到预设数量时,将达到预设数量的交易数据打包成新区块;所述产块节点是所述图式账本系统的任意节点;所述产块节点在所述图式账本系统中选择多个第一随机节点,并将所述多个第一随机节点确定为见证节点;所述产块节点将所述新区块发送给所述见证节点,以使所述见证节点对所述新区块进行共识;所述产块节点和所述见证节点从所述新区块的区块头获取区块数据的哈希值;所述产块节点和所述见证节点分别根据所述哈希值生成第一内容身份证和第二内容身份证;所述产块节点利用预设路由算法,在所述图式账本系统中确定存储所述内容身份证的多个第一存储节点,所述见证节点利用预设路由算法,在所述图式账本系统中确定存储所述内容身份证的多个第二存储节点;所述产块节点和所述见证节点分别获取所述新区块的第一存储位置和所述新区块的第二存储位置;所述产块节点绑定所述第一存储位置和所述第一内容身份证,并将绑定第一存储位置的第一内容身份证发送给所述多个第一存储节点;所述见证节点绑定所述第二存储位置和所述第二内容身份证,并将绑定所述第二存储位置的第二内容身份证发送给所述多个第二存储节点;所述多个第一存储节点和所述多个第二存储节点分别将接收的内容身份证写入本地的分布式哈希表。可选地,在所述产块节点将所述新区块发送给所述见证节点之后,所述方法还包括:所述见证节点在所述新区块通过共识后,在所述图式账本系统的其他节点中选择多个第二随机节点;所述其他节点是除所述产块节点和所述见证节点外的节点;所述见证节点将所述新区块写入本地的图式账本,并将所述新区块发送给所述多个第二随机节点;所述产块节点和所述见证节点分别获取所述新区块的第一存储位置和所述新区块的第二存储位置,包括:所述产块节点将本地位置和所述见证节点的位置确定为所述第一存储位置;所述见证节点将本地位置和所述多个第二随机节点的位置确定为所述第二存储位置。可选地,所述产块节点和所述见证节点分别根据所述哈希值生成第一内容身份证和第二内容身份证,包括:所述产块节点和所述见证节点从所述新区块中获取计算所述哈希值的区块哈希函数;所述产块节点根据生成所述新区块的时间,得到第一有效期;所述产块节点根据所述哈希值、所述第一有效期和所述区块哈希函数的标识生成所述第一内容身份证;所述见证节点根据接收所述新区块的时间,得到第二有效期;所述产块节点根据所述哈希值、所述第二有效期和所述区块哈希函数的标识生成所述第二内容身份证。可选地,产块节点在接收的交易数据达到预设数量时,将达到预设数量的交易数据打包成新区块之前,所述方法还包括:所述产块节点利用目标哈希函数计算当前接收的交易数据的内容哈希;所述产块节点根据接收所述交易数据的时间,得到第三有效期;所述产块节点根据所述内容哈希、所述第三有效期、所述目标哈希函数和所述交易数据的数据类型,生成第三内容身份证;所述产块节点将所述多个第一存储节点的节点位置、所述交易数据和所述第三内容身份证;所述产块节点将绑定所述多个第一存储节点的节点位置的第三内容身份证发送给所述多个第一存储节点;所述第一存储节点将所述第三内容身份证和所述多个第一存储节点的节点位置写入本地的分布式哈希表。可选地,所述产块节点利用预设路由算法,在所述图式账本系统中确定存储所述内容身份证的多个第一存储节点,包括:获取与所述产块节点相邻的多个节点;分别计算所述多个节点中的每个节点的节点编码与所述哈希值的第一异或距离;将所述多个节点按照各自对应的第一异或距离进行排序;在排序后的所述多个节点中选择第一异或距离在最小距离范围内的第一预设个数的第一请求节点;向所述第一请求节点发送计算请求,以使所述第一请求节点计算相邻节点的节点编码与所述哈希值的第二异或距离,并根据所述第二异或距离返回第二预设个数的第二请求节点;在所述第二请求节点的第二异或距离大于所述第一请求节点的第一异或距离,或所述第二请求节点的第二异或距离为零时,将所述第一预设个数的第一请求节点和所述第二预设个数的第二请求节点中异或距离在最小距离范围内的第二预设个数的节点确定为所述多个第一存储节点。本申请实施例第二方面提供一种基于随机共识机制的图式账本数据发布装置,应用于图式账本系统,所述图式账本系统的节点设置有分布式哈希表;所述装置包括:新区块生成模块,用于使产块节点在接收的交易数据达到预设数量时,将达到预设数量的交易数据打包成新区块;所述产块节点是所述图式账本系统的任意节点;见证节点确定模块,用于使所述产块节点在所述图式账本系统中选择多个第一随机节点,并将所述多个第一随机节点确定为见证节点;新区块共识模块,用于使所述产块节点将所述新区块发送给所述见证节点,以使所述见证节点对所述新区块进行共识;哈希值获取模块,用于使所述产块节点和所述见证节点从所述新区块的区块头获取区块数据的哈希值;内容身份证生成模块,用于使所述产块节点和所述见证节点分别根据所述哈希值生成第一内容身份证和第二内容身份证;存储节点确定模本文档来自技高网...

【技术保护点】
1.一种基于随机共识机制的图式账本数据发布方法,其特征在于,应用于图式账本系统,所述图式账本系统的节点设置有分布式哈希表;所述方法包括:/n产块节点在接收的交易数据达到预设数量时,将达到预设数量的交易数据打包成新区块;所述产块节点是所述图式账本系统的任意节点;/n所述产块节点在所述图式账本系统中选择多个第一随机节点,并将所述多个第一随机节点确定为见证节点;/n所述产块节点将所述新区块发送给所述见证节点,以使所述见证节点对所述新区块进行共识;/n所述产块节点和所述见证节点从所述新区块的区块头获取区块数据的哈希值;/n所述产块节点和所述见证节点分别根据所述哈希值生成第一内容身份证和第二内容身份证;/n所述产块节点利用预设路由算法,在所述图式账本系统中确定存储所述内容身份证的多个第一存储节点,所述见证节点利用预设路由算法,在所述图式账本系统中确定存储所述内容身份证的多个第二存储节点;/n所述产块节点和所述见证节点分别获取所述新区块的第一存储位置和所述新区块的第二存储位置;/n所述产块节点绑定所述第一存储位置和所述第一内容身份证,并将绑定第一存储位置的第一内容身份证发送给所述多个第一存储节点;/n所述见证节点绑定所述第二存储位置和所述第二内容身份证,并将绑定所述第二存储位置的第二内容身份证发送给所述多个第二存储节点;/n所述多个第一存储节点和所述多个第二存储节点分别将接收的内容身份证写入本地的分布式哈希表。/n...

【技术特征摘要】
1.一种基于随机共识机制的图式账本数据发布方法,其特征在于,应用于图式账本系统,所述图式账本系统的节点设置有分布式哈希表;所述方法包括:
产块节点在接收的交易数据达到预设数量时,将达到预设数量的交易数据打包成新区块;所述产块节点是所述图式账本系统的任意节点;
所述产块节点在所述图式账本系统中选择多个第一随机节点,并将所述多个第一随机节点确定为见证节点;
所述产块节点将所述新区块发送给所述见证节点,以使所述见证节点对所述新区块进行共识;
所述产块节点和所述见证节点从所述新区块的区块头获取区块数据的哈希值;
所述产块节点和所述见证节点分别根据所述哈希值生成第一内容身份证和第二内容身份证;
所述产块节点利用预设路由算法,在所述图式账本系统中确定存储所述内容身份证的多个第一存储节点,所述见证节点利用预设路由算法,在所述图式账本系统中确定存储所述内容身份证的多个第二存储节点;
所述产块节点和所述见证节点分别获取所述新区块的第一存储位置和所述新区块的第二存储位置;
所述产块节点绑定所述第一存储位置和所述第一内容身份证,并将绑定第一存储位置的第一内容身份证发送给所述多个第一存储节点;
所述见证节点绑定所述第二存储位置和所述第二内容身份证,并将绑定所述第二存储位置的第二内容身份证发送给所述多个第二存储节点;
所述多个第一存储节点和所述多个第二存储节点分别将接收的内容身份证写入本地的分布式哈希表。


2.根据权利要求1所述的方法,其特征在于,在所述产块节点将所述新区块发送给所述见证节点之后,所述方法还包括:
所述见证节点在所述新区块通过共识后,在所述图式账本系统的其他节点中选择多个第二随机节点;所述其他节点是除所述产块节点和所述见证节点外的节点;
所述见证节点将所述新区块写入本地的图式账本,并将所述新区块发送给所述多个第二随机节点;
所述产块节点和所述见证节点分别获取所述新区块的第一存储位置和所述新区块的第二存储位置,包括:
所述产块节点将本地位置和所述见证节点的位置确定为所述第一存储位置;
所述见证节点将本地位置和所述多个第二随机节点的位置确定为所述第二存储位置。


3.根据权利要求1所述的方法,其特征在于,所述产块节点和所述见证节点分别根据所述哈希值生成第一内容身份证和第二内容身份证,包括:
所述产块节点和所述见证节点从所述新区块中获取计算所述哈希值的区块哈希函数;
所述产块节点根据生成所述新区块的时间,得到第一有效期;
所述产块节点根据所述哈希值、所述第一有效期和所述区块哈希函数的标识生成所述第一内容身份证;
所述见证节点根据接收所述新区块的时间,得到第二有效期;
所述产块节点根据所述哈希值、所述第二有效期和所述区块哈希函数的标识生成所述第二内容身份证。


4.根据权利要求1所述的方法,其特征在于,产块节点在接收的交易数据达到预设数量时,将达到预设数量的交易数据打包成新区块之前,所述方法还包括:
所述产块节点利用目标哈希函数计算当前接收的交易数据的内容哈希;
所述产块节点根据接收所述交易数据的时间,得到第三有效期;
所述产块节点根据所述内容哈希、所述第三有效期、所述目标哈希函数和所述交易数据的数据类型,生成第三内容身份证;
所述产块节点将所述多个第一存储节点的节点位置、所述交易数据和所述第三内容身份证;
所述产块节点将绑定所述多个第一存储节点的节点位置的第三内容身份证发送给所述多个第一存储节点;
所述第一存储节点将所述第三内容身份证和所述多个第一存储节点的节点位置写入本地的分布式哈希表。


5.根据权利要求1所述的方法,其特征在于,所述产块节点利用预设路由算法,在所述图式账本系统中确定存储所述内容身份证的多个第一存储节点,包括:
获取与所述产块节点相邻的多个节点;
分别计算所述多个节点中的每个节点的节点编码与所述哈希值的第一异或距离;
将所述多个节点按照各自对应的第一异或距离进行排序;
在排序后的所述多个节点中选择第一异或距离在最小距离范围内的第一预设个数的第一请求节点;
向所述第一请求节点发送计算请求,以使所述第一请求节点计算相邻节点的节点编码与所述哈希值的第二异或距离,并根据所述第二异或距离返回第二预设个数的第二请求节点;
在所述第二请求节点的第二异或距离大于所述第一请求节点的第一异或距离,或所述第二请求节点的第二异或距离为零时,将所述第一预设个数的第一请求节点和所述第二预设个数的第二请求节点中异或距离在最小距离范围内的第二预设个数的节点确定为所述多个第一存储节点。


6.一种基于随机共识机制的图式账本数据发布装置,其特征在于,应用于图式账本系统,所述图式账本系统的节点设置有分布式哈希表;所述装置包括:
新区块生成模块,用于使产块节点在接收的交易数据达到...

【专利技术属性】
技术研发人员:朱晓旻谢钰呈蔡华谦张舒汇郭京申舒俊宜
申请(专利权)人:北京智融云河科技有限公司
类型:发明
国别省市:北京;11

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

1