非全网共识区块链下的查询方法、设备及存储介质技术

技术编号:31803742 阅读:21 留言:0更新日期:2022-01-08 11:05
本申请实施例提供一种非全网共识区块链下的查询方法、设备及存储介质,涉及区块链技术领域,所述方法包括:接收查询请求消息,查询本地账本,确定能否在本地账本内命中满足查询请求消息的交易或区块;当未命中时,对邻居节点进行排序选择多个转发节点,向多个转发节点转发查询请求消息,当命中时,获取返回结果,向所有邻居节点发送命中信息,检查自身是否为查询请求消息的发起节点,若是发起节点,则返回查询请求结果;若不是发起节点,则向所述查询请求消息的发送节点转发所述返回结果。本申请在每次查询时每个节点向最适合的邻居节点转发查询请求,通过相似度指导请求转发,减少消息发送量,使查询具有较低的延迟和较高的查询成功率。成功率。成功率。

【技术实现步骤摘要】
非全网共识区块链下的查询方法、设备及存储介质


[0001]本申请实施例涉及区块链
,具体而言,涉及一种非全网共识区块链下的查询方法、设备及存储介质。

技术介绍

[0002]区块链技术是实现分布式账本的底层技术。所谓区块链,是指通过密码学哈希链接的一连串增长的交易记录(也被称为区块)。每个区块通常包含前一个区块的哈希值、时间戳和交易数据。目前,为了提高基于区块链的分布式账本的可扩展性,学术界和工业界已经提出了多种方案,包括从数据传输层、链上、链下方面进行优化。其中,链上方案包括分片、采用有向无环图(DAG,Directed Acyclic Graph)结构、修改共识机制、存储模式优化。在大数据存证的场景下,修改共识机制被认为是解决区块链在存储和吞吐量可扩展性问题一种有效方法。共识机制影响着分布式账本的去中心化的自治、群体结构、验证过程、数据完整性、不可抵赖性、拜占庭容错性和账本性能等方面,是分布式账本的核心。
[0003]但是,在采用非全网共识的账本中,节点不再具有全量数据,已经无法继续采用在全网共识的账本中仅通过节点本地数据库来完成查询的方法。在非全网共识的账本中,查询系统必须采用分布式的查询方法,而业界常用的分布式数据库中的查询方法,往往没有考虑节点之间不能完全信任的问题。因此,如何设计一种面向非全网共识账本的查询系统,成为一个亟待解决的问题。

技术实现思路

[0004]本申请实施例提供一种非全网共识区块链下的查询方法、设备及存储介质,旨在解决以上至少一项技术问题。
[0005]本申请实施例第一方面提供一种非全网共识区块链下的查询方法,所述非全网共识区块链包括本地节点和邻居节点,所述方法应用于本地节点,所述方法包括:
[0006]接收查询请求消息,将所述查询请求消息加入请求缓存,存储发送所述查询请求消息的节点的ID;
[0007]查询本地账本,判断能否在所述本地账本内命中满足所述查询请求消息的交易或区块;
[0008]当未命中时,对邻居节点进行相似度排序,依据所述排序选择多个转发节点;
[0009]向所述多个转发节点转发所述查询请求消息;
[0010]当命中时,获取返回结果,向所有邻居节点发送命中信息;
[0011]检查自身是否为所述查询请求消息的发起节点;
[0012]当自身是所述查询请求消息的发起节点时,则返回查询请求结果;
[0013]当自身不是所述查询请求消息的发起节点时,则向所述查询请求消息的发起节点转发所述返回结果。
[0014]可选地,所述请求缓存采用哈希链表结构,所述将所述查询请求消息加入请求缓
存,包括:
[0015]依据所述查询请求消息构建为键值对;
[0016]依据所述查询请求消息的接收时间将所述键值对插入哈希链表。
[0017]可选地,所述方法还包括:
[0018]调用查询接口,输入指定信息,所述指定信息包括指定查询类型和查询元信息;
[0019]根据所述查询类型和所述查询元信息,确定是否发起分布式查询及最终结果回调函数;
[0020]生成请求ID,依据所述指定信息及请求ID所述生成所述请求消息。
[0021]可选地,所述生成请求ID,包括:
[0022]将本地节点的ID与本地自增序列号结合,生成所述请求ID。
[0023]可选地,所述本地节点内包含邻居画像集合,所述邻居节点画像集合包括每一个邻居节点对应的邻居节点画像,所述邻居节点画像包括一个或多个查询请求消息的地址向量表示,所述对邻居节点进行排序,按照所述排序选择多个转发节点,包括:
[0024]在所述本地账本内查询所述查询请求消息对应的块头;
[0025]基于所述块头计算所述查询请求消息的地址向量表示;
[0026]计算所述地址向量表示与所述邻居节点画像集合的相似度;
[0027]依据所述相似度,查找最相似的K个邻居节点;
[0028]选择所述K个邻居节点外的R个邻居节点,将所述K个邻居节点和所述R个邻居节点作为转发节点。
[0029]可选地,所述方法还包括:
[0030]接收邻居节点的命中消息;
[0031]根据命中消息,更新发送所述命中消息的邻居节点对应的邻居节点画像。
[0032]可选地,所述方法还包括:
[0033]接收邻居节点的返回结果消息;
[0034]根据所述返回结果消息,更新发送所述返回结果消息的邻居节点对应的邻居节点画像;
[0035]从所述请求缓存中查询所述返回结果消息对应的缓存体,从所述缓存体查找来源节点ID;
[0036]判断所述来源节点ID是否为自身的ID;
[0037]当所述来源节点ID为自身的ID时,则依据所述返回结果消息返回查询结果;
[0038]当所述来源节点ID不为自身的ID时,则向来源节点ID对应的邻居节点转发所述返回结果。
[0039]可选地,所述方法还包括:
[0040]初始化本地节点,将已加入主题集合和主题邻居节点集合置为空集,所述已加入主题集合包含本地节点已加入的主题,所述主题邻居节点集合包含有多个主题及各主题下的邻居节点;
[0041]加入第一主题时,将向所述已加入主题集合加入所述第一主题,向邻居节点发送第一加入消息;
[0042]接收所述第一加入消息的第一回复消息,在所述主题邻居节点集合中的第一主题
下加入第一回复消息的发送节点;
[0043]通知上层应用有新节点加入;
[0044]所述方法还包括:
[0045]接收第二加入消息,确定所述第二加入消息的主题,在主题邻居节点集合中的相同主题下加入所述第二加入消息的发送节点,其中,所述第二加入消息由邻居节点加入任意主题时发送;
[0046]判断所述第二加入消息的主题是否在已加入的主题中;
[0047]当第二加入消息的主题在已加入的主题中时,则通知上层应用该主题下有新的节点加入,并向所述第二加入消息的发送节点发送第二回复消息。
[0048]本申请实施例第三方面提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本申请第一方面所述的方法中的步骤。
[0049]本申请实施例第四方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本申请第一方面所述的方法的步骤。
[0050]采用本申请提供的非全网共识区块链下的查询方法,本申请针对非全网共识区块链提供一种合适的查询方法,该查询方法使用了广播-结果返回的机制,每次查询时每个节点向最适合的邻居节点转发查询请求,能保证大部分节点接收到查询请求,并通过相似度指导请求转发,减少消息发送量,使查询具有较低的延迟和较高的查询成功率。
[0051]同时本申请通过每个节点维护的请求缓存,使命中节点能根据请求转发的路径原路返回给查询节点,通过本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种非全网共识区块链下的查询方法,其特征在于,所述非全网共识区块链包括本地节点和邻居节点,所述方法应用于本地节点,所述方法包括:接收查询请求消息,将所述查询请求消息加入请求缓存,存储发送所述查询请求消息的节点的ID;查询本地账本,判断能否在所述本地账本内命中满足所述查询请求消息的交易或区块;当未命中时,对邻居节点进行相似度排序,依据所述排序选择多个转发节点;向所述多个转发节点转发所述查询请求消息;当命中时,获取返回结果,向所有邻居节点发送命中信息;检查自身是否为所述查询请求消息的发起节点;当自身是所述查询请求消息的发起节点时,则返回查询请求结果;当自身不是所述查询请求消息的发起节点时,则向所述查询请求消息的发起节点转发所述返回结果。2.根据权利要求1所述方法,其特征在于,所述请求缓存采用哈希链表结构,所述将所述查询请求消息加入请求缓存,包括:依据所述查询请求消息构建为键值对;依据所述查询请求消息的接收时间将所述键值对插入哈希链表。3.根据权利要求1所述方法,其特征在于,所述方法还包括:调用查询接口,输入指定信息,所述指定信息包括指定查询类型和查询元信息;根据所述查询类型和所述查询元信息,确定是否发起分布式查询及最终结果回调函数;生成请求ID,依据所述指定信息及请求ID所述生成所述请求消息。4.根据权利要求3所述方法,其特征在于,所述生成请求ID,包括:将本地节点的ID与本地自增序列号结合,生成所述请求ID。5.根据权利要求1所述方法,其特征在于,所述本地节点内包含邻居画像集合,所述邻居节点画像集合包括每一个邻居节点对应的邻居节点画像,所述邻居节点画像包括一个或多个查询请求消息的地址向量表示,所述对邻居节点进行排序,按照所述排序选择多个转发节点,包括:在所述本地账本内查询所述查询请求消息对应的块头;基于所述块头计算所述查询请求消息的地址向量表示;计算所述地址向量表示与所述邻居节点画像集合的相似度;依据所述相似度,查找最相似的K个邻居节点;选择所述K个邻居节点外的R个邻居节点,将所述K个邻居节...

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

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

1