一种基于用户等级的区块链交易出块的方法技术

技术编号:20727046 阅读:22 留言:0更新日期:2019-03-30 18:09
本发明专利技术公开了一种基于用户等级的区块链交易出块的方法,属于互联网领域。该方法包括以下步骤:S1:创建用户交易的等级信息;S2:构建并提交交易;S3:将一段时间内提交的交易放进交易池并等待触发出块条件;S4:出块条件触发后,对交易等级进行动态调整并排序;S5:获取交易池中的高等级的交易封装区块;S6:进行交易共识上链。本发明专利技术利用区块链网络各节点中的交易池和用户提交的交易级别,来保证用户的交易的优先级别,具有优先写入区块的特性。

【技术实现步骤摘要】
一种基于用户等级的区块链交易出块的方法
本专利技术涉及一种基于用户等级的区块链交易出块的方法,属于互联网领域。
技术介绍
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。区块链(Blockchain)是比特币的一个重要概念,它本质上是一个去中介化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。但是,目前的区块链交易没有划分优先级,存在交易混乱和处理缓慢的问题。
技术实现思路
有鉴于此,本专利技术的目的是提供一种基于用户等级的区块链交易出块的方法,解决目前区块链交易慢、交易无优先级的问题。本专利技术的目的是通过以下技术方案实现的:一种基于用户等级的区块链交易出块的方法,该方法包括以下步骤:S1:创建用户交易的等级信息;S2:构建并提交交易;S3:将一段时间内提交的交易放进交易池并等待触发出块条件;S4:出块条件触发后,对交易等级进行动态调整并排序;S5:获取交易池中的高等级的交易封装区块;S6:进行交易共识上链。进一步,所述步骤S1具体为:在用户加入区块链网络时,为用户创建一个用户交易的初始等级信息,通过智能合约接口,将用户的等级信息存储在区块链网络各节点的分布式DB中。进一步,所述步骤S2具体为:根据用户交易的等级信息,把用户提交的普通交易提案进行包含交易等级信息的提案封装;用户在构建交易提案时,区块链网络节点收到交易提案后先进行区块链网络共识认证,然后代理节点根据提案中的用户信息,去调取分布式DB中存储的该用户的级别信息,最后创建一个包含用户交易级别的交易提案。进一步,所述步骤S3具体为:在区块链网络中,各节点将一段时间内收到的包含等级信息的提案放入交易池中,等待出块条件达成后进行出块;在代理节点构建好待交易级别的提案后,将提案加入到交易池中;在交易池中,等待出块条件的触发,其中,出块条件包括:(1)系统规定的固定出块时间值;(2)系统规定的交易池中的交易提案数量来进行区块封装;当满足出块条件时,代理节点开始做出块准备。进一步,所述步骤S3具体为:出块条件触发后,在出块前,对交易池中的每笔交易进行一次交易等级的动态调整,具体公式如下Vt=Vinit+w1/(Tt-Tt-1)+w2(A)+w3(Tnow-Tt)其中,Vt表示在本次出块前的交易的动态等级,最后根据动态等级的大小进行排序,决定交易的出块顺序;Vinit表示此次交易的提交用户的初始等级;(Tt-Tt-1)表示用户此次交易发生时间与上一次交易发生时间的时间差,即越是频繁交易的用户,此次打包出块的优先级越高;A表示本笔交易的总金额,即越是大额的交易,此次打包出块的优先级越高;Tnow-Tt表示当前时间与此次交易发生的时间差,即越是等待时间长的交易,此次打包出块的优先级越高。w1、w2、w3表示交易频率、交易金额、交易等待时间三个参数的三个权重,可以在系统中根据需要动态调整,从而改变交易频率、交易金额、交易等待时间三个因素对打包出块优先级的影响力度。将交易池中的所有交易等级动态调整后,再按照调整后数值进行排序。进一步,所述步骤S4具体为:根据出块条件,代理节点从交易池中取出部分或全部交易信息进行区块的封装;代理节点会从交易池中按照等级顺序取出一定数量的交易提案,根据封装的提案的hash值形成默克尔根节点hash值,并按提交的提交时间顺序进行区块的封装。进一步,所述步骤S5~S6具体为具体为:节点把封装好的区块进行全网共识认证后,进行区块上链操作;代理节点把提案进行区块封装好后,进行全网共识认证,区块链网络中的各节点收到共识消息后,先验证,验证通过后把该节点下的交易池中的相应交易提案取出,并将区块进行上链;Master节点也将区块追加到链上;最后,给用户返回交易结果。本专利技术的有益效果是:本专利技术利用区块链网络各节点中的交易池和用户提交的交易级别,来保证用户的交易的优先级别,具有优先写入区块的特性。本专利技术的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本专利技术的实践中得到教导。本专利技术的目标和其他优点可以通过下面的说明书和权利要求书来实现和获得。附图说明为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步的详细描述,其中:图1为本专利技术步骤S1示意图;图2为本专利技术步骤S2~S6示意图具体实施方式以下将参照附图,对本专利技术的优选实施例进行详细的描述。应当理解,优选实施例仅为了说明本专利技术,而不是为了限制本专利技术的保护范围。区块链的交易流程如下:1)App/CLI端向指定的endorser节点发送Instantiate/invoke请求;2)endorser接收到请求之后,如果相关chaincode存在,就会将请求发送到chaincode端,并执行相关函数(由于执行过程中,可能涉及到多次的state读写,而每一次读写都会涉及到底层DB的操作,所以这个过程会涉及到多次与endorser节点的通信);3)chaincode执行完毕之后,会发送消息给endorser节点,如果执行成功,endorser节点就会封装执行结果并对齐endorse,并把结果返回给App/CLI端;4)App/CLI端收到endorser节点的执行结果后,会将交易(包含上一步返回的读写集)发送给order节点;5)order节点会将若干交易进行排序和打包成block,发送到commiter节点;6)commiter节点校验各个节点的交易;7)验证通过,同步区块,写入状态数据库,交易完成。基于该流程,提出本专利技术的方法,具体包括以下步骤:S1:创建用户交易的等级信息;S2:构建并提交交易;S3:将一段时间内提交的交易放进交易池并等待触发出块条件;S4:出块条件触发后,对交易等级进行动态调整并排序;S5:获取交易池中的高等级的交易封装区块;S6:进行交易共识上链。如图1所示,步骤S1具体为:在用户加入区块链网络时,为用户创建一个用户交易的等级信息,通过智能合约接口,将用户的等级信息存储在区块链网络各节点的分布式DB中。如图2所示,步骤S2具体为:根据用户交易的等级信息,把用户提交的普通交易提案进行包含交易等级信息的提案封装;用户在构建交易提案时,区块链网络节点收到交易提案后先进行区块链网络共识认证,然后代理节点根据提案中的用户信息,去调取分布式DB中存储的该用户的级别信息,最后创建一个包含用户交易级别的交易提案。步骤S3具体为:在区块链网络中,各节点将一段时间内收到的包含等级信息的提案放入交易池中,等待出块条件达成后进行出块;在代理节点构建好待交易级别的提案后,将提案加入到交易池中;在交易池中,等待出块条件的触发,其中,出块条件包括:(1)系统规定的固定出块时间值;(2)系统规定的交易池中的交易提案数量来进行区块封装;当满足出块条件时,代理节点开始做出块准备;出块条件触发后,在出块前,对交易池中的每笔交易进行一次交易等级的动态调整,,并根据动态调整的等级排序,本文档来自技高网...

【技术保护点】
1.一种基于用户等级的区块链交易出块的方法,其特征在于:该方法包括以下步骤:S1:创建用户交易的等级信息;S2:构建并提交交易;S3:将一段时间内提交的交易放进交易池并等待触发出块条件;S4:出块条件触发后,对交易等级进行动态调整并排序;S5:获取交易池中的高等级的交易封装区块;S6:进行交易共识上链。

【技术特征摘要】
1.一种基于用户等级的区块链交易出块的方法,其特征在于:该方法包括以下步骤:S1:创建用户交易的等级信息;S2:构建并提交交易;S3:将一段时间内提交的交易放进交易池并等待触发出块条件;S4:出块条件触发后,对交易等级进行动态调整并排序;S5:获取交易池中的高等级的交易封装区块;S6:进行交易共识上链。2.根据权利要求1所述的一种基于用户等级的区块链交易出块的方法,其特征在于:所述步骤S1具体为:在用户加入区块链网络时,为用户创建一个用户交易的等级信息,通过智能合约接口,将用户的等级信息存储在区块链网络各节点的分布式DB中。3.根据权利要求2所述的一种基于用户等级的区块链交易出块的方法,其特征在于:所述步骤S2具体为:根据用户交易的等级信息,把用户提交的普通交易提案进行包含交易等级信息的提案封装;用户在构建交易提案时,区块链网络节点收到交易提案后先进行区块链网络共识认证,然后代理节点根据提案中的用户信息,去调取分布式DB中存储的该用户的级别信息,最后创建一个包含用户交易级别的交易提案。4.根据权利要求3所述的一种基于用户等级的区块链交易出块的方法,其特征在于:所述步骤S3具体为:在区块链网络中,各节点将一段时间内收到的包含等级信息的提案放入交易池中,等待出块条件达成后进行出块;在代理节点构建好待交易级别的提案后,将提案加入到交易池中;在交易池中,等待出块条件的触发,其中,出块条件包括:(1)系统规定的固定出块时间值;(2)系统规定的交易池中的交易提案数量来进行区块封装;当满足出块条件时,代理节点开始做出块准备;出块条件触发后,在出块前,对交易池中的每笔交易进行一次交易等级的动态调整,具体公式如下Vt=Vinit+w1/(Tt-Tt-1...

【专利技术属性】
技术研发人员:陈峰吴玉海李正道韦吉军
申请(专利权)人:贵阳信息技术研究院中科院软件所贵阳分部中国科学院软件研究所
类型:发明
国别省市:贵州,52

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

1