当前位置: 首页 > 专利查询>山东大学专利>正文

一种区块链交易排序方法、存储介质及设备技术

技术编号:29960797 阅读:14 留言:0更新日期:2021-09-08 09:19
本发明专利技术提供了一种区块链交易排序方法、存储介质及设备,获取区块链网络节点的本地交易池中的交易信息,计算交易的发起账户的活跃度值、交易的存在时间及交易花费,进而计算交易的综合优先级排序值,根据所述综合优先级排序值的高低,对对应的交易进行排队,按照排队顺序将所述交易打包进区块。本发明专利技术能够有效实现交易的自动优化上链,多维度最优化满足用户交易上链需求的成本,保证系统生态的可持续以及安全发展。安全发展。安全发展。

【技术实现步骤摘要】
一种区块链交易排序方法、存储介质及设备


[0001]本专利技术属于区块链
,具体涉及一种区块链交易排序方法、存储介质及设备。

技术介绍

[0002]本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
[0003]区块链作为一种新兴技术,凭借其去中心化、匿名性、不可篡改性等特点,越来越多地受到各行各业的关注,包括供应链、金融、教育等领域。与此同时,这些领域通常涉及到了具有不同延迟要求的交易,用户对交易的时效性需求变得越来越强烈。因此我们期望用户生成的交易需要经过交易排序等步骤,才会被区块链网络中的矿工打包到区块,才能写入到区块链账本中。
[0004]为实现这一目标,近年来,众多相关平台以及研究工作者做了大量工作,从静态优化角度提出各种类型的交易排序策略,例如事先规定好每笔交易的gasPrice或者截止延迟要求,从而实现对交易的排序。目前,交易排序机制主要有以下几种主流的解决方案。第一种解决方案是矿工是按交易的gasPrice进行排序的,交易的gasPrice越高,处理的优先级就越高。以以太坊为例,首先账户的区块链客户端构造一笔交易,并使用加密算法生成唯一签名,将加密后的交易广播到整个区块链网络中,网络中的其他节点接受到交易信息验证交易信息的合法性,节点会有一个待处理的交易列表,依据油费(Gas)进行交易排序,从待处理的交易池中选择油费高的交易放入新的区块并广播出去,并得到交易的油费作为挖矿回报。如果交易的gasPrice过低,则有可能一直得不到矿工的处理,从而被忽略,导致饥饿现象的发生。
[0005]第二种解决方案是先到先得排序策略,每个矿工会在本地维护一个待处理交易的列表,根据账户发出交易的到达顺序将交易打包到块中,在目前较成熟的模型中,Fabric就利用了这种解决方案。第三种解决方案是基于单一优先级队列的排序策略,根据账户发出的交易的绝对截止日期(到达交易池时间+截止时间要求)维护交易的优先级队列。此外,还有最后一种解决方案是基于多级队列的排序策略,多级队列是具有预定义级别数的队列,来自同一服务的交易被分组在一起。每个矿工维护一个包含N个对应于每个服务的队列的多级队列,其中每个队列中的交易按照它们的绝对截止时间(到达时间+截止要求)排序,目前三星研究院在自己搭建的智能建筑场景中应用了该策略。
[0006]以上解决方案虽然在一定程度上满足了用户对不同交易的时效性需求,但是,目前的交易排序策略都只在单一维度(gas花费、时延要求、到达时间)上考虑用户的条件,只考虑单一维度的要素作为最佳交易排序策略,性能上显然是受到限制的。

技术实现思路

[0007]本专利技术为了解决上述问题,提出了一种区块链交易排序方法、存储介质及设备,本
专利技术面向账户交易时效性需求,能够有效实现交易的自动优化上链,多维度最优化满足用户交易上链需求的成本,保证系统生态的可持续以及安全发展。
[0008]根据一些实施例,本专利技术采用如下技术方案:
[0009]一种区块链交易排序方法,包括以下步骤:
[0010]获取区块链网络节点的本地交易池中的交易信息,计算交易的发起账户的活跃度值、交易的存在时间及交易花费,进而计算交易的综合优先级排序值,根据所述综合优先级排序值的高低,对对应的交易进行排队,按照排队顺序将所述交易打包进区块。
[0011]作为可选择的实施方式,上述方法中,定时更新账户状态信息,所述账户状态信息包含基于MPT模型构建的账户状态树,以及关于账户活跃度的信息字段,用于记录系统中存在账户的活跃度值。
[0012]作为可选择的实施方式,上述方法中,定时更新新区块内交易所涉及发起账户的账户活跃度值。
[0013]作为可选择的实施方式,所述本地交易池的构建过程包括:
[0014]当有交易发起账户创建交易时,将交易信息广播至全网;
[0015]网络中的其他节点接收到交易信息之后,进行合法性校验,判断交易是否合法,交易合法,则放入本地交易池,若交易不合法,返回错误信息并丢弃该笔交易。
[0016]作为可选择的实施方式,计算交易发起账户的活跃度的过程包括:根据当前最新区块内涉及账户活跃度改变的账户总数、区块链网络中账户的总数以及当前区块链的高度,计算当前滑动窗口大小;
[0017]根据账户状态信息和当前滑动窗口大小计算对应交易发起账户的活跃度。
[0018]作为可选择的实施方式,所述交易的存在时间为相应交易进入待处理交易列表的时间。
[0019]作为可选择的实施方式,所述交易花费的计算过程为:
[0020][0021]其中,m表示区块内的交易数量,t表示账户想要在t个区块上链,TOR
mt
表示本地当前待处理交易列表中依据交易排序算法排序后排名为mt的交易的TOR值,A(u)为该预测交易发起账户的活跃度,ω1、ω3为权重系数。
[0022]作为可选择的实施方式,计算交易的综合优先级排序值的具体过程为:根据交易的发起账户的活跃度值、交易的存在时间及交易花费三要素计算交易的综合优先级排序值,且对计算的三要素预先进行归一化处理。
[0023]一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成上述方法中的步骤。
[0024]一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成上述方法中的步骤。
[0025]与现有技术相比,本专利技术的有益效果为:
[0026]1、本专利技术有效解决了支持区块链的系统没有多维度考虑账户时效性需求所带来的用户体验差问题,是第一个将账户在整个网络中的活跃度与交易排序结合起来的方案。
[0027]2、本专利技术技术方案中构建A2MPT,账户状态中明确标识了账户活跃度,通过账户可以直接锁定当前账户活跃度值,基于A2MPT直接进行账户状态信息历史的检索和校验,并为采用动态滑动窗口来计算账户活跃度提供依据。
[0028]3、本专利技术技术方案中提出的动态滑动窗口,相较以往的固定滑动窗口在一定程度上减弱了恶意账户作恶行为的影响。
[0029]4、本专利技术的交易排序策略综合考虑了交易发起账户在整个网络中的活跃度、交易等待时间、gas花费,使得整体的区块链网络更加具有活性以及安全性。
[0030]为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
[0031]构成本专利技术的一部分的说明书附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。
[0032]图1为本专利技术方案中实施例提供的面向账户时效性需求的交易排序策略的流程示意图;
[0033]图2为本专利技术方案中实施例方法中步骤S6的流程示意图;
[0034]图3为本专利技术方案中实施例方法中步骤S7所涉及的A2MPT结构图;
[0035]图4为本专利技术本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链交易排序方法,其特征是:包括以下步骤:获取区块链网络节点的本地交易池中的交易信息,计算交易的发起账户的活跃度值、交易的存在时间及交易花费,进而计算交易的综合优先级排序值,根据所述综合优先级排序值的高低,对对应的交易进行排队,按照排队顺序将所述交易打包进区块。2.如权利要求1所述的一种区块链交易排序方法,其特征是:定时更新账户状态信息,所述账户状态信息包含基于MPT模型构建的账户状态树,以及关于账户活跃度的信息字段,用于记录系统中存在账户的活跃度值。3.如权利要求1所述的一种区块链交易排序方法,其特征是:定时更新新区块内交易所涉及发起账户的账户活跃度值。4.如权利要求1所述的一种区块链交易排序方法,其特征是:所述本地交易池的构建过程包括:当有交易发起账户创建交易时,将交易信息广播至全网;网络中的其他节点接收到交易信息之后,进行合法性校验,判断交易是否合法,交易合法,则放入本地交易池,若交易不合法,返回错误信息并丢弃该笔交易。5.如权利要求1所述的一种区块链交易排序方法,其特征是:计算交易发起账户的活跃度的过程包括:根据当前最新区块内涉及账户活跃度改变的账户总数、区块链网络中账户的总数以及当前区块链的高度,计算当前滑动窗口大小;根据账户状态信息...

【专利技术属性】
技术研发人员:孔兰菊刘文妍窦雅明宋啸霖钱进崔立真李庆忠闵新平
申请(专利权)人:山东大学
类型:发明
国别省市:

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

1