一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于共识排序的交易预处理方法与流程

2021-12-17 19:22:00 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,特别涉及一种基于共识排序的交易预处理方法。


背景技术:

2.联盟链需要以多个节点执行区块中交易的方式来保证网络的安全性,而在此过程中,现有共识算法和阻塞的交易处理机制又浪费了过多的时间,成为联盟链性能提升的主要障碍。并且,在共识阶段因为区块大小等问题限制了单次共识能够验证的交易数量,造成联盟链网络的交易处理速度过慢。


技术实现要素:

3.本发明提供一种基于共识排序的交易预处理方法,解决了传统交易处理机制中的阻塞问题,提高了交易的性能,避免了因为区块大小等问题而限制单次共识能够验证的交易数量,最终,提高交易处理速度。
4.一种基于共识排序的交易预处理方法,包括:
5.步骤1:所有验证节点接收并缓冲来自客户端的交易信息,并利用排序节点对所述交易信息进行共识排序,得到交易编号结果;
6.步骤2:每个验证节点按照所述交易编号结果依次预执行所述交易信息,并将交易执行结果进行阶段性保存;
7.步骤3:根据交易执行结果,从所述验证节点获取对应的区块进行出块,并利用共识节点根据出块信息完成对所述区块的验证。
8.在一种可能实现的方式中,
9.步骤1中,利用排序节点对所述交易信息进行共识排序,得到交易编号结果包括:
10.基于所述排序节点,对所述交易信息进行检查,剔除不法交易信息后,按照时间顺序对所述交易信息进行排序,得到交易编号结果。
11.在一种可能实现的方式中,
12.步骤1中,得到交易编号结果后还包括:
13.步骤101:将所述交易编号结果中的交易编号及所述交易编号对应的交易信息的键值广播到验证节点,验证所述客户端是否存在所述交易信息;
14.步骤102:若是,则安排所述交易信息进行排序执行准备;
15.步骤103:否则,则从所述排序节点除拉取对应的交易信息,并进行排序执行准备。
16.在一种可能实现的方式中,
17.步骤2中,将交易执行结果进行阶段性保存包括:
18.将预设条交易执行结果进行一次存储,存储至与验证节点最近的存储点上。
19.在一种可能实现的方式中,
20.步骤3中,根据交易执行结果,从所述验证节点获取对应的区块进行出块包括:
21.按照所述交易编号结果,对所述交易执行结果进行有序打包,得到对应的区块,并
将所述区块广播至各个验证节点;
22.其中,打包的方式为在预设时间段内,当客户端的交易执行结果数量超过预设阈值时,进行立即打包,若交易执行结果数量没有超过预设阈值时,按照所述预设时间段进行打包。
23.在一种可能实现的方式中,
24.利用共识节点根据出块信息完成对所述区块的验证包括:
25.基于所述出块信息,所述共识节点获取区块的广播签名、交易编号区间、区块哈希值、区块编号,并对所述广播签名、交易编号区间、区块哈希值、区块编号与标准状态进行比较,完成验证。
26.在一种可能实现的方式中,
27.对所述交易信息进行检查,剔除不法交易信息包括:
28.预先划分交易的类别,并确定在每个类别下根据交易的数据大小、交易类型设定交易难度等级;
29.定义在每个交易难度等级下交易的注意事项文本,并对所述注意事项文本进行分割形成单个语句文本;
30.确定所述单个语句文本中词汇的词性,得到词性特征数据,按照预设词性处理方法对所述单个语句文本进行词汇提取,得到关键词;
31.对所述关键词按照词义进行划分,并确定在每个词义下的关键词频率;
32.选择所述关键词频率大于预设频率对应的关键词集合作为目标关键词;
33.基于所述目标关键词建立交易规则模型;
34.对所述交易信息进行解析,获取交易事件,提取所述交易事件中与所述目标关键词关联的待检测关键词;
35.将所述待检测关键词输入所述交易规则模型中,判断所述交易事件是否满足交易规则;
36.若是,判定所述交易事件为合法交易;
37.否则,判定所述交易事件为不法交易,并删除所述不法交易。
38.在一种可能实现的方式中,
39.步骤1中,利用排序节点对所述交易信息进行共识排序后,还包括:
40.将进行共识排序后的交易信息和共识排序前的交易信息进行匹配,并判断进行共识排序后的交易信息与共识排序前的交易信息是否存在差异;
41.若存在差异,提取存在差异的交易信息作为未排序交易信息,并获取所述未排序交易信息所对应的目标验证节点;
42.将所述未排序交易信息从所述目标验证节点发送至所述排序节点,并在所述目标验证节点上建立所述排序节点与所述未排序交易信息的第一关联标签;
43.并基于所述第一关联标签设置事件提醒,提醒所述排序节点对所述未排序交易信息进行排序;
44.经过预设提醒时间间隔后,判断所述未排序交易信息是否进行排序;
45.若是,解除所述第一关联标签;
46.否则,所述目标验证节点将所述未排序交易信息进行广播到所述验证节点,并在
所述所有验证节点建立所述排序节点与所述未排序交易信息的第二关联标签,并基于所述第二关联标签向所述排序节点进行排序提醒;
47.经过所述预设提醒时间间隔后,再次判断所述未排序交易信息是否进行排序;
48.若是,解除所述第一关联标签和第二关联标签;
49.否则,解除所述第一关联标签和第二关联标签,并将未排序交易信息发送至raft节点,并利用所述raft节点重新选取排序节点。
50.在一种可能实现的方式中,
51.对所述广播签名、交易编号区间、区块哈希值、区块编号与标准状态进行比较,完成验证包括:
52.所述共识节点查找待验证区块对应的验证节点,并获取所述对应的验证节点的公钥;
53.对所述广播签名进行解析,获取所述广播签名中所携带的所述对应验证节点的私钥;
54.将所述对应的验证节点的公钥和私钥进行验证;
55.若所述广播签名验证成功,存储所述待验证区块对应的交易编号区间、区块哈希值和区块编号;
56.否则,表明验证失败;
57.在所述广播签名验证成功后,从客户端查询所述待验证区块对应的标准区块信息,并基于所述标准区块信息计算所述标准区块的标准哈希值;
58.判断所述区块哈希值与标准哈希值是否一致;
59.若是,表明对所述待验证区块验证成功,并根据所述待验证区块对应的交易编号区间和区块编号,对所述待验证区块进行存储;
60.否则,表明验证失败。
61.在一种可能实现的方式中,
62.按照时间顺序对所述交易信息进行排序,得到交易编号结果包括:
63.按照时间顺序对所述交易信息排序,并获取在排序过程中,判断是否存在时间冲突的冲突交易交易信息;
64.若是,将所述冲突交易信息安排不同的线程,并将对应的线程在在设置的交易编号上进行标记;
65.否则,直接得到交易编号结果。
66.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
67.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
68.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
69.图1为本发明实施例中一种基于共识排序的交易预处理方法的流程图;
70.图2为本发明实施例中共识排序的排序流程图;
71.图3为本发明实施例中交易编号结果获取的流程图。
具体实施方式
72.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
73.实施例1
74.本发明实施例提供一种基于共识排序的交易预处理方法,如图1所示,包括:
75.步骤1:所有验证节点接收并缓冲来自客户端的交易信息,并利用排序节点对所述交易信息进行共识排序,得到交易编号结果;
76.步骤2:每个验证节点按照所述交易编号结果依次预执行所述交易信息,并将交易执行结果进行阶段性保存;
77.步骤3:根据交易执行结果,从所述验证节点获取对应的区块进行出块,并利用共识节点根据出块信息完成对所述区块的验证。
78.在该实施例中,所述验证节点用来进行交易信息的执行操作,所述共识节点用来根据交易执行结果对区块进行验证。
79.在该实施例中,对交易执行结果进行阶段性保存例如是每n条交易存储一次结果,当需要获取对应交易结果时,获取最近的存储点并执行剩余交易,这样可以节省存储空间,同时也不会对性能有太大的影响。
80.在该实施例中,将所述客户端对应的区块进行出块具体为:设置一个阈值,当客户端本地已执行交易超过这个阈值则立刻打包区块,否则,按照一定的时间间隔出块。
81.在该实施例中,利用共识节点对所述交易信息进行共识排序具体为排序节点收到交易之后做简单检查后以时间顺序排序,并广播交易编号与交易的键值对给其他验证者节点,验证节点收到键值对后检查本地是否有该交易,有则排序执行,否则从所述排序节点处拉取对应交易,并且,在对交易信息进行排序时间,若出现冲突交易,可以将所述冲突交易分为不同的线程,再将交易编号对应的线程号一起进行交易执行,可以解决交易阻塞,造成交易处理速度过慢的问题。
82.在该实施例中,对所述区块进行验证具体为出块成功后将该区块的起始交易编号、结束交易编号与区块哈希值等信息广播给其他共识节点,各共识节点根据矿工发出的信息从本地获取对应交易结果并计算出区块哈希值,再与矿工的结果对比即可完成验证,避免了因为区块大小等问题而限制单次共识能够验证的交易数量,提高交易处理速度。
83.在该实施例中,所述方案的流程例如可以是:客户端

order排序

广播排序

节点预执行交易并保存结果

如果交易量太大,矿工连续打包已处理的交易并广播

共识本批次区块(一次共识即可),其中,排序流程如图2所示。
84.具体的技术详情包括:
85.a.交易发送与缓存:客户端按照以太坊的老方法将交易广播,让所有验证节点都能收到交易并缓存交易。
86.b.共识排序:排序节点收到交易之后做简单检查后以时间顺序排序,并广播交易编号与交易hash的键值对给其他验证者,验证者收到键值对后检查本地是否有该交易,有
则排序执行,否则从order节点处拉取对应交易。
87.c.预执行交易:验证节点通过收到的交易序号来依次执行交易,并保存每一笔交易的执行结果状态,区块落盘后删除旧状态,或者将执行结果阶段性缓存,例如每n条交易存储一次结果,当需要获取对应交易结果时,获取最近的存储点并执行剩余交易,这样可以节省存储空间,同时也不会对性能有太大的影响。
88.d.出块:设置一个阈值,当矿工本地已执行交易超过这个阈值则立刻打包区块,否则,按照一定的时间间隔出块。出块成功后将该区块的起始交易编号、结束交易编号与区块hash等信息广播给其他共识节点,各共识节点根据矿工发出的信息从本地获取对应交易结果并计算出区块hash,再与矿工的结果对比即可完成验证。
89.e.接收区块:矿工打包的区块只需要广播签名,区块hash,交易号区间和区块number即可完成验证,其余参数视情况而定(可选:state root,用于直接对比最终状态,但如果生成区块hash的元素可确定,可直接使用区块hash验证),因为本地已经有交易执行结果,直接对比最终状态即可完成验证。
90.f.不合法交易:矿工与其他共识节点直接跳过不合法交易,在正常节点中不会因为坏交易而造成数据不一致的情况,如果判定是order节点排序阶段的失误,则以次交易为依据发起raft切换order节点的投票。共识节点验证区块失败或长时间收不到区块时,丢弃本批次区块,发起矿工切换(例:pbft协议viewchange)。
91.上述设计方案的有益效果是:通过共识节点对交易信息进行共识排序,解决了传统交易处理机制中的阻塞问题,让各个节点可以畅通无阻的执行已有交易,通过对交易信息进行预执行并进行阶段性缓存,提高了交易的性能,通过共识节点完成对区块的验证,避免了因为区块大小等问题而限制单次共识能够验证的交易数量,最终,提高交易处理速度。
92.实施例2
93.基于实施例1的基础上,本发明实施例提供一种基于共识排序的交易预处理方法,步骤1中,利用排序节点对所述交易信息进行共识排序,得到交易编号结果包括:
94.基于所述排序节点,对所述交易信息进行检查,剔除不法交易信息后,按照时间顺序对所述交易信息进行排序,得到交易编号结果。
95.上述设计方案的有益效果是:对所述交易信息进行检查,剔除不法交易信息,避免因为所述不法交易信息的干扰,而造成在对交易信息排序的过程费时太多,影响整个系统的运行速度,提高了交易处理速度。
96.实施例3
97.基于实施例1的基础上,本发明实施例提供一种基于共识排序的交易预处理方法,如图3所示,步骤1中,得到交易编号结果后还包括:
98.步骤101:将所述交易编号结果中的交易编号及所述交易编号对应的交易信息的键值广播到验证节点,验证所述客户端是否存在所述交易信息;
99.步骤102:若是,则安排所述交易信息进行排序执行准备;
100.步骤103:否则,则从所述排序节点除拉取对应的交易信息,并进行排序执行准备。
101.上述设计方案的有益效果是:保证所述经过排序的交易编号都能匹配到对应的交易信息,保证了交易执行的顺利进行。
102.实施例4
103.基于实施例1的基础上,本发明实施例提供一种基于共识排序的交易预处理方法,步骤2中,将交易执行结果进行阶段性保存包括:将预设条交易执行结果进行一次存储,存储至与验证节点最近的存储点上。
104.上述设计方案的有益效果是:当要获取某个交易执行结果时,从存储点的一次存储结果中获取对应的交易,并执行剩余交易,得到交易执行结果,可以节省存储空间,提高了交易处理的性能。
105.实施例5
106.基于实施例1的基础上,本发明实施例提供一种基于共识排序的交易预处理方法,步骤3中,根据交易执行结果,从所述验证节点获取对应的区块进行出块包括:
107.按照所述交易编号结果,对所述交易执行结果进行有序打包,得到对应的区块,并将所述区块广播至各个验证节点;
108.其中,打包的方式为在预设时间段内,当客户端的交易执行结果数量超过预设阈值时,进行立即打包,若交易执行结果数量没有超过预设阈值时,按照所述预设时间段进行打包。
109.上述设计方案的有益效果是:根据交易执行次数和交易执行时间两个因素来对区块进行打包,保证了区块的大小和包含的交易执行次数在正常范围内,不会因为区块过大而造成对区块验证影响。
110.实施例6
111.基于实施例1的基础上,本发明实施例提供一种基于共识排序的交易预处理方法,利用共识节点根据出块信息完成对所述区块的验证包括:
112.基于所述出块信息,所述共识节点获取区块的广播签名、交易编号区间、区块哈希值、区块编号,并对所述广播签名、交易编号区间、区块哈希值、区块编号与标准状态进行比较,完成验证。
113.在该实施例中,所述广播签名息是采用验证节点的私钥对所述区块的标识信息签名后得到的。
114.上述设计方案的有益效果是:通过共识节点完成对区块的验证,直接将标准状态进行比较,避免了因为区块大小等问题而限制单次共识能够验证的交易数量,最终,提高交易处理速度。
115.实施例7
116.基于实施例2的基础上,本发明实施例提供一种基于共识排序的交易预处理方法,对所述交易信息进行检查,剔除不法交易信息包括:
117.预先划分交易的类别,并确定在每个类别下根据交易的数据大小、交易类型设定交易难度等级;
118.定义在每个交易难度等级下交易的注意事项文本,并对所述注意事项文本进行分割形成单个语句文本;
119.确定所述单个语句文本中词汇的词性,得到词性特征数据,按照预设词性处理方法对所述单个语句文本进行词汇提取,得到关键词;
120.对所述关键词按照词义进行划分,并确定在每个词义下的关键词频率;
121.选择所述关键词频率大于预设频率对应的关键词集合作为目标关键词;
122.基于所述目标关键词建立交易规则模型;
123.对所述交易信息进行解析,获取交易事件,提取所述交易事件中与所述目标关键词关联的待检测关键词;
124.将所述待检测关键词输入所述交易规则模型中,判断所述交易事件是否满足交易规则;
125.若是,判定所述交易事件为合法交易;
126.否则,判定所述交易事件为不法交易,并删除所述不法交易。
127.在该实施例中,所述交易的类别包括交换、投资支出、投资回报等,所述交易的类型例如交换包括:虚拟交换、实物交换;投资支出包括支票支出、股份支出等,投资回报包括:金钱回报、物品回报等。
128.在该实施例中,定义在每个交易难度等级下交易的注意事项文本可以由具体的交易信息的数据大小、交易类型来设定不同的交易规则,避免了对交易信息粗糙地一次性设置一样的交易规则,造成对不法交易的检测精度不高。
129.在该实施例中,所述词性处理方法例如可以是对词性为感叹词、介词对应的词汇进行剔除,剔除掉无关词汇,提高关键词的质量。
130.在该实施例中,对注意事项文本提取目标关键词来建立交易规则模型,提高对注意事项文本的分析能力,从而保证了交易规则模型的精确性。
131.在该实施例中,提取所述交易事件中与所述目标关键词关联的待检测关键词可以是与所述目标关键词词义相同或相反的词汇。
132.在该实施例中,将所述待检测关键词输入所述交易规则模型中,判断所述交易事件是否满足交易规则具体为判断所述待检测关键词与交易规则的相似程度,大于预设相似程度的判定为合法交易,否则,判定五日不法交易。
133.上述设计方案的有益效果是:对所述交易信息进行检查,剔除不法交易信息,避免因为所述不法交易信息的干扰,而造成在对交易信息排序的过程费时太多,影响整个系统的运行速度,提高了交易处理速度。
134.实施例8
135.基于实施例1的基础上,本发明实施例提供一基于共识排序的交易预处理方法,步骤1中,利用排序节点对所述交易信息进行共识排序后,还包括:
136.将进行共识排序后的交易信息和共识排序前的交易信息进行匹配,并判断进行共识排序后的交易信息与共识排序前的交易信息是否存在差异;
137.若存在差异,提取存在差异的交易信息作为未排序交易信息,并获取所述未排序交易信息所对应的目标验证节点;
138.将所述未排序交易信息从所述目标验证节点发送至所述排序节点,并在所述目标验证节点上建立所述排序节点与所述未排序交易信息的第一关联标签;
139.并基于所述第一关联标签设置事件提醒,提醒所述排序节点对所述未排序交易信息进行排序;
140.经过预设提醒时间间隔后,判断所述未排序交易信息是否进行排序;
141.若是,解除所述第一关联标签;
142.否则,所述目标验证节点将所述未排序交易信息进行广播到所述验证节点,并在
所述所有验证节点建立所述排序节点与所述未排序交易信息的第二关联标签,并基于所述第二关联标签向所述排序节点进行排序提醒;
143.经过所述预设提醒时间间隔后,再次判断所述未排序交易信息是否进行排序;
144.若是,解除所述第一关联标签和第二关联标签;
145.否则,解除所述第一关联标签和第二关联标签,并将未排序交易信息发送至raft节点,并利用所述raft节点重新选取排序节点。
146.在该实施例中,建立所述第一关联标签和第二关联标签,保证了事件提醒的对象的准确性。
147.在该实施例中,利用所述raft节点重新选取排序节点具体为所述raft节点使用raft算法选定一个最优排序节点进行共识排序。
148.在该实施例中,在目标验证节点的提醒不起作用时,利用所有验证节点对排序节点进行提醒,提高了提醒的力度,使排序节点更可能将未排序交易信息进行排序。
149.上数据设计方案的有益效果是:通过判断对排序节点对所述交易信息进行排序是否存在漏排,并针对未排序信息进行再次排序,保证交易执行的全面性,从而保证交易无阻塞的执行。
150.实施例9
151.基于实施例6的基础上,本发明实施例提供一种基于共识排序的交易预处理方法,对所述广播签名、交易编号区间、区块哈希值、区块编号与标准状态进行比较,完成验证包括:
152.所述共识节点查找待验证区块对应的验证节点,并获取所述对应的验证节点的公钥;
153.对所述广播签名进行解析,获取所述广播签名中所携带的所述对应验证节点的私钥;
154.将所述对应的验证节点的公钥和私钥进行验证;
155.若所述广播签名验证成功,存储所述待验证区块对应的交易编号区间、区块哈希值和区块编号;
156.否则,表明验证失败;
157.在所述广播签名验证成功后,从客户端查询所述待验证区块对应的标准区块信息,并基于所述标准区块信息计算所述标准区块的标准哈希值;
158.判断所述区块哈希值与标准哈希值是否一致;
159.若是,表明对所述待验证区块验证成功,并根据所述待验证区块对应的交易编号区间和区块编号,对所述待验证区块进行存储;
160.否则,表明验证失败。
161.在该实施例中,根据所述待验证区块对应的交易编号区间和区块编号,对所述待验证区块进行存储可以方便对区块的查找和调取。
162.上述设计方案的有益效果是:通过共识节点完成对区块的验证,直接将标准状态进行比较,避免了因为区块大小等问题而限制单次共识能够验证的交易数量,最终,提高交易处理速度。
163.实施例10
164.基于实施例2的基础上,本发明实施例提供一种基于共识排序的交易预处理方法,按照时间顺序对所述交易信息进行排序,得到交易编号结果包括:
165.按照时间顺序对所述交易信息排序,并获取在排序过程中,判断是否存在时间冲突的冲突交易信息;
166.若是,将所述冲突交易信息安排不同的线程,并将对应的线程在在设置的交易编号上进行标记;
167.否则,直接得到交易编号结果。
168.上述设计方案的有益效果是:通过在对交易信息进行排序时间,若出现冲突交易,可以将所述冲突交易分为不同的线程,并对交易编号进行标记,可以将将交易编号对应的线程号一起进行交易执行,解决交易阻塞,造成交易处理速度过慢的问题。
169.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献