区块链共识方法、区块生成方法、节点及客户端与流程

文档序号:33702173发布日期:2023-03-31 20:05阅读:22来源:国知局
区块链共识方法、区块生成方法、节点及客户端与流程

1.本发明涉及区块链技术领域,尤其是指一种区块链共识方法、区块生成方法、节点及客户端。


背景技术:

2.区块链的应用模式目前主要分为非许可链(公有链)和许可链(联盟链和私有链)。区块链的架构模型目前主要有两种:排序-执行模型(oe模型)、执行-排序-验证模型(eov模型),eov模型的典型代表是超级账本(hyperledger fabric)。
3.hyperledger fabric的节点从逻辑上分为排序(orderer)节点和对等(peer)节点,排序节点负责交易排序,对等节点负责交易的执行或背书和验证,因此,从功能上又分为背书(endorser)节点和提交(committer)节点。
4.但hyperledger fabric的交易流程至少存在如下问题:
5.1.共识阶段所需的交易数据的元素为交易标识、哈希(hash)值,交易内容仅用于被打包为区块体,不作修改、校验;
6.2.背书阶段和验证阶段均为peer节点完成,而endorsor节点和committer节点是部分或全部复用的,所需的交易内容一致。
7.每个阶段均需从其它节点处获得交易内容,但部分环节并非真正需要内容数据,尤其共识阶段,在执行共识机制过程中,交易内容会被多次广播转发,因此带来了极大的额外网络开销,当交易内容数据较多时,该开销对区块链性能的影响更加明显。


技术实现要素:

8.本发明实施例的目的在于提供一种区块链共识方法、区块生成方法、节点及客户端,以解决现有区块链交易过程中存在冗余内容传输的问题。
9.为了解决上述问题,本发明实施例提供一种区块链共识方法,应用于排序节点,包括:
10.接收客户端发送的交易数据或者交易数据的交易标识;所述交易数据包括:交易标识和交易内容;
11.根据所述交易标识对交易进行共识排序,形成第一区块结构,所述第一区块结构包括:排序后的交易标识及哈希值,所述哈希值根据排序后的交易标识计算得到;或者,根据所述交易数据对交易进行共识排序,形成第二区块结构,所述第二区块结构包括:区块头和排序后的交易标识;
12.将所述第一区块结构或所述第二区块结构发送至提交节点,以使得提交节点进行交易验证,并在验证完成后形成完整区块。
13.其中,所述根据所述交易数据进行共识排序,形成第二区块结构,包括:
14.根据交易标识对交易进行共识排序,确定排序后的交易标识;
15.按照排序后的交易标识以及交易内容,计算区块头;所述区块头包括默克尔根。
16.本发明实施例还提供一种区块生成方法,应用于提交节点,包括:
17.接收排序节点经过共识排序形成的第一区块结构或第二区块结构,所述第一区块结构包括:排序后的交易标识及哈希值,所述哈希值根据排序后的交易标识计算得到;所述第二区块结构包括:区块头和排序后的交易标识;
18.接收客户端发送的交易数据,所述交易数据包括:交易标识和交易内容;
19.根据所述交易数据,以及所述第一区块结构或所述第二区块结构,进行交易验证,并在验证完成后形成完整区块。
20.其中,根据所述交易数据,以及所述第一区块结构,进行交易验证,并在验证完成后形成完整区块,包括:
21.验证第一区块结构的完整性后,根据第一区块结构和所述交易数据,进行交易标识和交易内容的匹配,并执行交易验证;
22.验证完成后,基于第一区块结构的交易标识排序进行区块头计算和交易序列化,形成完整区块;所述完整区块包括:区块头和区块体,所述区块体包括各交易数据。
23.其中,验证完成后,基于第一区块结构的交易标识排序进行区块头计算和交易序列化,形成完整区块,包括:
24.验证完成后标记各交易数据的交易有效性;其中,验证通过则为有效交易数据,验证未通过则为无效交易数据;
25.基于第一区块结构的交易标识排序,剔除无效交易数据;
26.针对有效交易数据进行区块头计算和交易序列化,形成完整区块。
27.其中,根据所述交易数据,以及所述第二区块结构,进行交易验证,并在验证完成后形成完整区块,包括:
28.根据第二区块结构和所述交易数据,进行交易标识和交易内容的匹配;
29.利用所述第二区块结构的区块头中的默克尔根验证匹配结果的正确性,验证通过后执行交易验证;
30.验证完成后,基于所述第二区块结构的交易标识排序进行交易序列化,形成完整区块;所述完整区块包括:区块头和区块体,所述区块体包括各交易数据。
31.其中,所述验证完成后,基于所述第二区块结构的交易标识排序进行交易序列化,形成完整区块,包括:
32.验证完成后标记各交易数据的交易有效性;其中,验证通过则为有效交易数据,验证未通过则为无效交易数据;
33.基于第二区块结构的交易标识排序,剔除无效交易数据;
34.针对有效交易数据进行交易序列化,形成完整区块。
35.本发明实施例还提供一种区块链共识及区块生成方法,应用于客户端,包括:
36.根据背书节点反馈的满足背书策略的交易背书结果,确定交易数据;所述交易数据包括:交易标识和交易内容;
37.将所述交易数据或所述交易标识发送至排序节点,以使得排序节点对交易进行共识排序;
38.将所述交易数据发送至提交节点,以使得所述提交节点基于所述交易数据以及排序节点的排序结果进行交易验证,并在验证完成后形成完整区块。
39.其中,所述排序节点的排序结果包括:
40.第一区块结构,所述第一区块结构包括:排序后的交易标识及哈希值;所述哈希值根据排序后的交易标识计算得到;
41.或者,
42.第二区块结构,所述第二区块结构包括:区块头和排序后的交易标识。
43.本发明实施例还提供一种排序节点,包括处理器和收发器,所述收发器在处理器的控制下接收和发送数据,所述处理器用于执行以下操作:
44.接收客户端发送的交易数据或者交易数据的交易标识;所述交易数据包括:交易标识和交易内容;
45.根据所述交易标识对交易进行共识排序,形成第一区块结构,所述第一区块结构包括:排序后的交易标识及交易哈希值,所述哈希值根据排序后的交易标识计算得到;或者,根据所述交易数据对交易进行共识排序,形成第二区块结构,所述第二区块结构包括:区块头和排序后的交易标识;
46.将所述第一区块结构或所述第二区块结构发送至提交节点,以使得提交节点进行交易验证,并在验证完成后形成完整区块。
47.其中,所述处理器还用于执行以下操作:
48.根据交易标识对交易进行共识排序,确定排序后的交易标识;
49.按照排序后的交易标识以及交易内容,计算区块头;所述区块头包括默克尔根。
50.本发明实施例还提供一种提交节点,包括处理器和收发器,所述收发器在处理器的控制下接收和发送数据,所述处理器用于执行以下操作:
51.接收排序节点经过共识排序形成的第一区块结构或第二区块结构,所述第一区块结构包括:排序后的交易标识及哈希值,所述哈希值根据排序后的交易标识计算得到;所述第二区块结构包括:区块头和排序后的交易标识;
52.接收客户端发送的交易数据,所述交易数据包括:交易标识和交易内容;
53.根据所述交易数据,以及所述第一区块结构或所述第二区块结构,进行交易验证,并在验证完成后形成完整区块。
54.其中,所述处理器还用于执行以下操作:
55.验证第一区块结构的完整性后,根据第一区块结构和所述交易数据,进行交易标识和交易内容的匹配,并执行交易验证;
56.验证完成后,基于第一区块结构的交易标识排序进行区块头计算和交易序列化,形成完整区块;所述完整区块包括:区块头和区块体,所述区块体包括各交易数据。
57.其中,所述处理器还用于执行以下操作:
58.验证完成后标记各交易数据的交易有效性;其中,验证通过则为有效交易数据,验证未通过则为无效交易数据;
59.基于第一区块结构的交易标识排序,剔除无效交易数据;
60.针对有效交易数据进行区块头计算和交易序列化,形成完整区块。
61.其中,所述处理器还用于执行以下操作:
62.根据第二区块结构和所述交易数据,进行交易标识和交易内容的匹配;
63.利用所述第二区块结构的区块头中的默克尔根验证匹配结果的正确性,验证通过
后执行交易验证;
64.验证完成后,基于所述第二区块结构的交易标识排序进行交易序列化,形成完整区块;所述完整区块包括:区块头和区块体,所述区块体包括各交易数据。
65.其中,所述处理器还用于执行以下操作:
66.验证完成后标记各交易数据的交易有效性;其中,验证通过则为有效交易数据,验证未通过则为无效交易数据;
67.基于第二区块结构的交易标识排序,剔除无效交易数据;
68.针对有效交易数据进行交易序列化,形成完整区块。
69.本发明实施例还提供一种客户端,包括处理器和收发器,所述收发器在处理器的控制下接收和发送数据,所述处理器用于执行以下操作:
70.根据背书节点反馈的满足背书策略的交易背书结果,确定交易数据;所述交易数据包括:交易标识和交易内容;
71.将所述交易数据或所述交易标识发送至排序节点,以使得排序节点对交易进行共识排序;
72.将所述交易数据发送至提交节点,以使得所述提交节点基于所述交易数据以及排序节点的排序结果进行交易验证,并在验证完成后形成完整区块。
73.其中,所述排序节点的排序结果包括:
74.第一区块结构,所述第一区块结构包括:排序后的交易标识及哈希值,所述哈希值根据排序后的交易标识计算得到;
75.或者,
76.第二区块结构,所述第二区块结构包括:区块头和排序后的交易标识。
77.本发明实施例还提供一种通信设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行所述程序时实现如上所述的区块生成方法,或者所述处理器执行所述程序时实现如上所述的区块链共识方法,或者所述处理器执行所述程序时实现如上所述的区块链共识及区块生成方法。
78.本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的区块生成方法中的步骤,或者该程序被处理器执行时实现如上所述的区块链共识方法中的步骤,或者该程序被处理器执行时实现如上所述的区块链共识及区块生成方法中的步骤。
79.本发明的上述技术方案至少具有如下有益效果:
80.本发明实施例的区块链共识方法、区块生成方法、节点及客户端中,交易在背书阶段完成后,客户端仅将交易标识等发送给排序节点,用于共识排序,则共识过程中多次广播转发的内容减少;区块打包时,排序节点仅生成交易标识排序结果,或者仅生成交易标识排序结果和区块头,待交易验证完成后,由提交节点生成完整区块,完成交易记账,从而减少不必要的交易内容传输,一方面减少额外开销,提高区块链系统性能,另一方面减少数据传输,减少获得完整交易数据的节点数,能够提高数据安全性。
附图说明
81.图1表示本发明实施例提供的区块链共识及区块生成方法的步骤流程图;
82.图2表示本发明实施例提供的区块链共识方法的步骤流程图;
83.图3表示本发明实施例提供的区块生成方法的步骤流程图;
84.图4表示本发明实施例提供的示例一的原理示意图;
85.图5表示本发明实施例提供的示例二的原理示意图;
86.图6表示本发明实施例提供的示例三的原理示意图;
87.图7表示本发明实施例提供的提交节点的结构示意图;
88.图8表示本发明实施例提供的排序节点的结构示意图;
89.图9表示本发明实施例提供的客户端的结构示意图。
具体实施方式
90.为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
91.本技术实施例中通过优化共识排序阶段和/或验证阶段的处理流程,简化传输数据,提升区块链系统的性能和安全性。该方法不改变eov模型许可链的节点分类和部署方法,便于应用。
92.本发明实施例中,在背书阶段完成后,客户端仅将唯一标识一笔交易的交易标识发送至排序节点,用于交易排序,排序过程与原模型保持一致,但共识过程中多次广播转发的内容减少;区块打包时,排序节点仅生成交易标识排序结果,或者仅生成交易标识排序结果和区块头,在提交节点对交易验证通过后,由提交节点进行区块打包形成完整区块,再完成交易记账。其中,区块打包可选择打包全部交易或仅打包有效交易。
93.如图1所示,本发明实施例提供一种区块链共识及区块生成方法,应用于客户端,包括:
94.步骤101,根据背书节点反馈的满足背书策略的交易背书结果,确定交易数据;所述交易数据包括:交易标识和交易内容;
95.步骤102,将所述交易数据或所述交易标识发送至排序节点,以使得排序节点对交易进行共识排序;
96.步骤103,将所述交易数据发送至提交节点,以使得所述提交节点基于所述交易数据以及排序节点的排序结果进行交易验证,并在验证完成后形成完整区块。
97.针对客户端,本发明实施例中,客户端构造交易提案并发送至背书节点的步骤与原模型一致,在此不作展开说明。其中交易提案包含本次交易要调用的合约标识、合约方法和参数信息以及客户端签名等。
98.可选的,所述排序节点的排序结果包括:
99.第一区块结构,所述第一区块结构包括:排序后的交易标识及哈希值,所述哈希值根据排序后的交易标识计算得到;
100.或者,
101.第二区块结构,所述第二区块结构包括:区块头和排序后的交易标识。
102.客户端(client)收集到满足背书策略的背书结果后,将交易数据拆分为交易标识(tx id)和交易内容(payload)两部分。
103.一个可选实施例中,客户端仅将交易标识发送给排序节点,交易内容不发送;但客
户端将完整的交易数据发送至提交节点。
104.则排序节点利用交易标识进行共识排序,将排序结果及其hash值(即第一区块结构)发送给提交节点;提交节点验证排序结果完整性,利用交易标识获得相应交易内容,进行交易验证,该验证过程与原模型保持一致;验证完成后,提交节点计算区块头,打包形成完整区块,完成交易记账。
105.该方法生成的完整区块内容和格式与原始模型相同。该方法省去了共识前(client-》orderer)、共识中(共识节点间)、共识后(orderer-》committer)三个阶段交易内容的冗余传输。同时,排序节点无法获得完整的交易内容,提高了交易安全性。
106.另一个可选实施例中,客户端将完整的交易数据分别发送给排序节点和提交节点;
107.则排序节点解析获得交易标识,利用交易标识对交易进行共识排序后,按照排序结果计算区块头,并将区块头和排序后交易标识(即第二区块结构,不是完整区块)发给提交节点;提交节点校验交易内容与区块头的匹配性,并完成原模型规定的所有交易验证后,再将交易内容运算形成区块体,与区块头进行打包,形成完整区块,完成交易记账。
108.该方法生成的完整区块内容和格式与原始模型相同。该方法省去了共识阶段排序节点对排序后交易进行序列化的过程,以及验证阶段提交节点解析区块结构,进行反序列化的过程,减少了节点的工作量,同时,也减少了区块体发给提交节点的网络开销。
109.进一步的,提交节点在验证完成后形成完整区块时区块打包可选择打包全部交易或仅打包有效交易。
110.例如,客户端收集到满足背书策略的背书结果后,共识排序过程和交易验证过程与上述实施例一致,提交节点完成交易验证后,为交易标识其有效性,验证通过即有效,不通过即无效;提交节点对有效交易按照区块打包规则计算区块头,以有效交易为内容生成区块,完成交易记账;提交节点通知客户端全部交易的成功/失败状态。
111.该方法生成的完整区块格式与原始模型相同,但由于上链交易均为有效交易,区块体的大小与交易的验证通过率相关,通过率越高,有效交易越多,区块体越大,但必将小于原模型下的区块体大小。该方法将有效提升区块链端到端效率,减少资源消耗,尤其在交易验证通过率较低的场景下。
112.综上,本发明实施例中,交易在背书阶段完成后,客户端仅将交易标识发送给排序节点,用于共识排序,则共识过程中多次广播转发的内容减少,一方面减少额外开销,提高区块链系统性能,另一方面减少数据传输,减少获得完整交易数据的节点数,能够提高数据安全性。
113.如图2所示,本发明实施例还提供一种区块链共识方法,应用于排序节点,包括:
114.步骤201,接收客户端发送的交易数据或者交易数据的交易标识;所述交易数据包括:交易标识和交易内容;
115.步骤202,根据所述交易标识对交易进行共识排序,形成第一区块结构,所述第一区块结构包括:排序后的交易标识及哈希值,所述哈希值根据排序后的交易标识计算得到;或者,根据所述交易数据对交易进行共识排序,形成第二区块结构,所述第二区块结构包括:区块头和排序后的交易标识;
116.步骤203,将所述第一区块结构或所述第二区块结构发送至提交节点,以使得提交
节点进行交易验证,并在验证完成后形成完整区块。
117.本发明实施例中,客户端(client)收集到满足背书策略的背书结果后,将交易数据拆分为交易标识(tx id)和交易内容(payload)两部分。
118.作为一个可选实施例,所述方法还包括:
119.根据排序后的交易标识,计算确定所述哈希值;
120.或者,
121.按照排序后的交易标识构造默克尔树。
122.一个可选实施例中,客户端仅将交易标识发送给排序节点,交易内容不发送;但客户端将完整的交易数据发送至提交节点。
123.则排序节点利用交易标识进行共识排序,将排序结果及其hash值(即第一区块结构)发送给提交节点;提交节点验证排序结果完整性,利用交易标识获得相应交易内容,进行交易验证,该验证过程与原模型保持一致;验证完成后,提交节点计算区块头,打包形成完整区块,完成交易记账。
124.该方法生成的完整区块内容和格式与原始模型相同。该方法省去了共识前(client-》orderer)、共识中(共识节点间)、共识后(orderer-》committer)三个阶段交易内容的冗余传输。同时,排序节点无法获得完整的交易内容,提高了交易安全性。且共识排序过程网络开销明显降低,有助于提升区块链端到端的性能。
125.作为另一个可选实施例,所述根据所述交易数据进行共识排序,形成第二区块结构,包括:
126.根据交易标识对交易进行共识排序,确定排序后的交易标识;
127.按照排序后的交易标识以及交易内容,计算区块头;所述区块头包括默克尔根。
128.另一个可选实施例中,客户端将完整的交易数据分别发送给排序节点和提交节点;
129.则排序节点解析获得交易标识,利用交易标识对交易进行共识排序后,按照排序结果计算区块头,并将区块头和排序后交易标识(即第二区块结构,不是完整区块)发给提交节点;提交节点校验交易内容与区块头的匹配性,并完成原模型规定的所有交易验证后,再将交易内容运算形成区块体,与区块头进行打包,形成完整区块,完成交易记账。
130.该方法生成的完整区块内容和格式与原始模型相同。该方法省去了共识阶段排序节点对排序后交易进行序列化的过程,以及验证阶段提交节点解析区块结构,进行反序列化的过程,减少了节点的工作量,同时,也减少了区块体发给提交节点的网络开销。
131.进一步的,提交节点在验证完成后形成完整区块时区块打包可选择打包全部交易或仅打包有效交易。
132.例如,客户端收集到满足背书策略的背书结果后,共识排序过程和交易验证过程与上述实施例一致,提交节点完成交易验证后,为交易标识其有效性,验证通过即有效,不通过即无效;提交节点对有效交易按照区块打包规则计算区块头,以有效交易为内容生成区块,完成交易记账;提交节点通知客户端全部交易的成功/失败状态。
133.该方法生成的完整区块格式与原始模型相同,但由于上链交易均为有效交易,区块体的大小与交易的验证通过率相关,通过率越高,有效交易越多,区块体越大,但必将小于原模型下的区块体大小。该方法将有效提升区块链端到端效率,减少资源消耗,尤其在交
易验证通过率较低的场景下。
134.综上,本发明实施例中,交易在背书阶段完成后,客户端仅将交易标识等发送给排序节点,用于共识排序,则共识过程中多次广播转发的内容减少;区块打包时,排序节点仅生成交易标识排序结果,或者仅生成交易标识排序结果和区块头,待交易验证完成后,由提交节点生成完整区块,从而减少不必要的交易内容传输,一方面减少额外开销,提高区块链系统性能,另一方面减少数据传输,减少获得完整交易数据的节点数,能够提高数据安全性。
135.如图3所示,本发明实施例提供一种区块生成方法,应用于提交节点,包括:
136.步骤301,接收排序节点经过共识排序形成的第一区块结构或第二区块结构,所述第一区块结构包括:排序后的交易标识及哈希值,所述哈希值根据排序后的交易标识计算得到;所述第二区块结构包括:区块头和排序后的交易标识;
137.步骤302,接收客户端发送的交易数据,所述交易数据包括:交易标识和交易内容;
138.步骤303,根据所述交易数据,以及所述第一区块结构或所述第二区块结构,进行交易验证,并在验证完成后形成完整区块。
139.本发明实施例中,客户端(client)收集到满足背书策略的背书结果后,将交易数据拆分为交易标识(tx id)和交易内容(payload)两部分。
140.一个可选实施例中,客户端仅将交易标识发送给排序节点,交易内容不发送;但客户端将完整的交易数据发送至提交节点;则排序节点利用交易标识进行共识排序,将排序结果及其hash值(即第一区块结构)发送给提交节点。
141.另一个可选实施例中,客户端将完整的交易数据分别发送给排序节点和提交节点;则排序节点解析获得交易标识,利用交易标识对交易进行共识排序后,按照排序结果计算区块头,并将区块头和排序后交易标识(即第二区块结构,不是完整区块)发给提交节点。
142.进一步的,提交节点在验证完成后形成完整区块时区块打包可选择打包全部交易或仅打包有效交易。
143.针对第一区块结构,步骤303包括:
144.验证第一区块结构的完整性后,根据第一区块结构和所述交易数据,进行交易标识和交易内容的匹配,并执行交易验证;
145.验证完成后,基于第一区块结构的交易标识排序进行区块头计算和交易序列化,形成完整区块;所述完整区块包括:区块头和区块体,所述区块体包括各交易数据。
146.若仅打包有效交易,则基于第一区块结构的交易标识排序进行区块头计算和交易序列化,形成完整区块,包括:
147.验证完成后标记各交易数据的交易有效性;其中,验证通过则为有效交易数据,验证未通过则为无效交易数据;
148.基于第一区块结构的交易标识排序,剔除无效交易数据;
149.针对有效交易数据进行区块头计算和交易序列化,形成完整区块。
150.针对第二区块结构,步骤303包括:
151.根据第二区块结构和所述交易数据,进行交易标识和交易内容的匹配;
152.利用所述第二区块结构的区块头中的默克尔根验证匹配结果的正确性,验证通过后执行交易验证;
153.验证完成后,基于所述第二区块结构的交易标识排序进行交易序列化,形成完整区块;所述完整区块包括:区块头和区块体,所述区块体包括各交易数据的序列化值。
154.若仅打包有效交易,则所述验证完成后,基于所述第二区块结构的交易标识排序进行交易序列化,形成完整区块,包括:
155.验证完成后标记各交易数据的交易有效性;其中,验证通过则为有效交易数据,验证未通过则为无效交易数据;
156.基于第二区块结构的交易标识排序,剔除无效交易数据;
157.针对有效交易数据进行交易序列化,形成完整区块。
158.综上,本发明实施例中区块打包时,排序节点仅生成交易标识排序结果,或者仅生成交易标识排序结果和区块头,待交易验证完成后,由提交节点对全部交易或有效交易生成完整区块,完成交易记账,从而减少不必要的交易内容传输,一方面减少额外开销,提高区块链系统性能,另一方面减少数据传输,减少获得完整交易数据的节点数,能够提高数据安全性。
159.为了更清楚的描述本发明实施例提供的区块链共识及区块生成方法,下面结合三个示例进行说明。
160.示例一,交易标识共识排序,验证阶段打包区块,如图4所示:
161.客户端发给排序节点的数据包括:交易标识(tx id),可唯一标识一次交易;客户端签名,可保证数据的完整和不被篡改。
162.客户端发给提交节点的数据为完整的交易背书结果,即交易数据,包括交易标识和交易内容。
163.经共识排序后,形成的区块结构主要包括排序后交易标识及其hash值。hash值计算方法不限定,例如,可对排序后的交易标识计算hash值,或按照交易标识排序后顺序对交易标识构造merkle树。
164.第一区块结构发送至提交节点,提交节点验证第一区块结构的完整性后,根据第一区块结构的交易排序,利用客户端发送的交易数据进行交易标识与交易内容匹配,并执行vscc验证等验证过程,验证项和方法与原模型一致。验证完成后,基于第一区块结构排序进行区块头计算和交易序列化,形成完整区块。
165.示例二,共识排序后仅发送区块头和交易标识,验证阶段计算区块体并打包成块,如图5所示:
166.客户端同时将交易背书结果(即交易数据)发给排序节点和提交节点,数据结构与原模型下背书结果相同。
167.经共识排序后,形成的第二区块结构主要包括区块头及排序后交易标识。
168.第二区块结构发送给提交节点,提交节点根据第二区块结构交易排序利用客户端发送的交易数据进行交易标识与交易内容匹配,利用区块头中的默克尔根(merkleroot)验证匹配结果的正确性(merkleroot为本区块中交易通过hash计算构成)。执行区块验证过程,验证项和方法与原模型一致,验证完成后基于第二区块结构进行交易序列化,形成完整区块。
169.示例三,在示例一的基础上,仅打包有效交易,如图6所示:
170.客户端发给排序节点的数据包括:交易标识(tx id),可唯一标识一次交易;客户
端签名,可保证数据的完整和不被篡改。
171.客户端发给提交节点的数据为完整的交易背书结果,即交易数据,包括交易标识和交易内容。
172.经共识排序后,形成的区块结构主要包括排序后交易标识及其hash值。hash值计算方法不限定,例如,可对排序后的交易标识计算hash值,或按照交易标识排序后顺序对交易标识构造merkle树。
173.第一区块结构发送提交节点,提交节点验证第一区块结构完整性后,根据第一区块结构交易排序,利用客户端发送的交易数据进行交易标识与交易内容匹配,并执行vscc验证等验证过程,验证项和方法与原模型一致,验证完成后标记交易有效性,验证通过则为有效valid,验证未通过则为无效invalid。利用有效性标记分类交易,基于第一区块结构排序,剔除无效交易,针对有效交易进行区块头计算和交易序列化,形成完整区块结构。验证节点打包区块(完整区块)的结构与原模型下区块结构一致,但由于剔除部分无效交易,导致区块体减小。
174.综上,本发明实施例中,交易在背书阶段完成后,客户端仅将交易标识等发送给排序节点,用于共识排序,则共识过程中多次广播转发的内容减少;区块打包时,排序节点仅生成交易标识排序结果,或仅生成交易标识排序结果和区块头,待交易验证完成后,由提交节点生成完整区块,完成交易记账,从而减少不必要的交易内容传输,一方面减少额外开销,提高区块链系统性能,另一方面减少数据传输,减少获得完整交易数据的节点数,能够提高数据安全性。
175.如图7所示,本发明实施例还提供一种排序节点,包括处理器700和收发器710,所述收发器710在处理器700的控制下接收和发送数据,所述处理器700用于执行以下操作:
176.接收客户端发送的交易数据或者交易数据的交易标识;所述交易数据包括:交易标识和交易内容;
177.根据所述交易标识对交易进行共识排序,形成第一区块结构,所述第一区块结构包括:排序后的交易标识及哈希值,所述哈希值根据排序后的交易标识计算得到;或者,根据所述交易数据对交易进行共识排序,形成第二区块结构,所述第二区块结构包括:区块头和排序后的交易标识;
178.将所述第一区块结构或所述第二区块结构发送至提交节点,以使得提交节点进行交易验证,并在验证完成后形成完整区块。
179.作为一个可选实施例,所述处理器还用于执行以下操作:
180.根据交易标识对交易进行共识排序,确定排序后的交易标识;
181.按照排序后的交易标识以及交易内容,计算区块头;所述区块头包括默克尔根。
182.本发明实施例中,区块打包时,排序节点仅生成交易标识排序结果,或者仅生成交易标识的排序结果和区块头,待交易验证完成后,由提交节点生成完整区块,完成交易记账,从而减少不必要的交易内容传输,一方面减少额外开销,提高区块链系统性能,另一方面减少数据传输,减少获得完整交易数据的节点数,能够提高数据安全性。
183.需要说明的是,本发明实施例提供的排序节点是能够执行上述区块链共识方法的节点,则上述区块链共识方法的所有实施例均适用于该节点,且均能达到相同或相似的有益效果。
184.如图8所示,本发明实施例还提供一种提交节点,包括处理器800和收发器810,所述收发器810在处理器800的控制下接收和发送数据,所述处理器800用于执行以下操作:
185.接收排序节点经过共识排序形成的第一区块结构或第二区块结构,所述第一区块结构包括:排序后的交易标识及哈希值,所述哈希值根据排序后的交易标识计算得到;所述第二区块结构包括:区块头和排序后的交易标识;
186.接收客户端发送的交易数据,所述交易数据包括:交易标识和交易内容;
187.根据所述交易数据,以及所述第一区块结构或所述第二区块结构,进行交易验证,并在验证完成后形成完整区块。
188.作为一个可选实施例,所述处理器还用于执行以下操作:
189.验证第一区块结构的完整性后,根据第一区块结构和所述交易数据,进行交易标识和交易内容的匹配,并执行交易验证;
190.验证完成后,基于第一区块结构的交易标识排序进行区块头计算和交易序列化,形成完整区块;所述完整区块包括:区块头和区块体,所述区块体包括各交易数据。
191.作为一个可选实施例,所述处理器还用于执行以下操作:
192.验证完成后标记各交易数据的交易有效性;其中,验证通过则为有效交易数据,验证未通过则为无效交易数据;
193.基于第一区块结构的交易标识排序,剔除无效交易数据;
194.针对有效交易数据进行区块头计算和交易序列化,形成完整区块。
195.作为一个可选实施例,所述处理器还用于执行以下操作:
196.根据第二区块结构和所述交易数据,进行交易标识和交易内容的匹配;
197.利用所述第二区块结构的区块头中的默克尔根验证匹配结果的正确性,验证通过后执行交易验证;
198.验证完成后,基于所述第二区块结构的交易标识排序进行交易序列化,形成完整区块;所述完整区块包括:区块头和区块体,所述区块体包括各交易数据。
199.作为一个可选实施例,所述处理器还用于执行以下操作:
200.验证完成后标记各交易数据的交易有效性;其中,验证通过则为有效交易数据,验证未通过则为无效交易数据;
201.基于第二区块结构的交易标识排序,剔除无效交易数据;
202.针对有效交易数据进行交易序列化,形成完整区块。
203.本发明实施例中,交易在背书阶段完成后,排序节点仅生成交易标识排序结果,或者仅生成交易标识的排序结果和区块头,待交易验证完成后,由提交节点生成完整区块,完成交易记账,从而减少不必要的交易内容传输,一方面减少额外开销,提高区块链系统性能,另一方面减少数据传输,减少获得完整交易数据的节点数,能够提高数据安全性。
204.需要说明的是,本发明实施例提供的提交节点是能够执行上述区块生成方法的节点,则上述区块生成方法的所有实施例均适用于该节点,且均能达到相同或相似的有益效果。
205.如图9所示,本发明实施例还提供一种客户端,包括处理器900和收发器910,所述收发器910在处理器900的控制下接收和发送数据,所述处理器900用于执行以下操作:
206.根据背书节点反馈的满足背书策略的交易背书结果,确定交易数据;所述交易数
据包括:交易标识和交易内容;
207.将所述交易数据或所述交易标识发送至排序节点,以使得排序节点对交易进行共识排序;
208.将所述交易数据发送至提交节点,以使得所述提交节点基于所述交易数据以及排序节点的排序结果进行交易验证,并在验证完成后形成完整区块。
209.作为一个可选实施例,所述排序节点的排序结果包括:
210.第一区块结构,所述第一区块结构包括:排序后的交易标识及哈希值,所述哈希值根据排序后的交易标识计算得到;
211.或者,
212.第二区块结构,所述第二区块结构包括:区块头和排序后的交易标识。
213.本发明实施例中,交易在背书阶段完成后,客户端仅将交易标识等发送给排序节点,用于共识排序,则共识过程中多次广播转发的内容减少,一方面减少额外开销,提高区块链系统性能,另一方面减少数据传输,减少获得完整交易数据的节点数,能够提高数据安全性。
214.需要说明的是,本发明实施例提供的客户端是能够执行上述区块链共识及区块生成方法的节点,则上述区块链共识及区块生成方法的所有实施例均适用于该节点,且均能达到相同或相似的有益效果。
215.本发明实施例还提供一种通信设备,该通信设备为提交节点或排序节点或客户端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的区块生成方法或区块链共识方法或区块链共识及区块生成方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
216.本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的区块生成方法或区块链共识方法或区块链共识及区块生成方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等。
217.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
218.本技术是参照根据本技术实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或一个方框或多个方框中指定的功能的装置。
219.这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储介质中,使得存储在该计算机可读存储介质中的指令产生包
括指令装置的纸制品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
220.这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他科编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
221.以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1