CN112232957A - 交易共识方法、装置和电子设备 - Google Patents
交易共识方法、装置和电子设备 Download PDFInfo
- Publication number
- CN112232957A CN112232957A CN202011114820.5A CN202011114820A CN112232957A CN 112232957 A CN112232957 A CN 112232957A CN 202011114820 A CN202011114820 A CN 202011114820A CN 112232957 A CN112232957 A CN 112232957A
- Authority
- CN
- China
- Prior art keywords
- transaction
- block
- node
- target
- random value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000012545 processing Methods 0.000 claims abstract description 32
- 238000012795 verification Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种交易共识方法、装置和电子设备;其中,该方法包括:从待共识的交易中确定目标交易;基于目标交易的交易接收方和随机值,生成交易区块;将交易区块广播至区块链中除出块节点以外的节点,以对交易区块中的交易进行共识处理。该方式中,基于目标交易的交易接收方和随机值生成交易区块,可以大幅减少交易区块的数据量,即使在大交易量的情况下,交易区块也可以快速且稳定地广播至区块链中的各个节点中,提高了交易区块广播速度和交易共识效率。
Description
技术领域
本发明涉及区块链技术领域,尤其是涉及一种交易共识方法、装置和电子设备。
背景技术
在联盟链等区块链的共识交易流程中,交易在进入交易池时会被校验,区块链中的出块节点从交易池获取交易,将获取到的交易进行全量打包得到区块,然后进行区块广播,使得区块链中的其他节点接收到该区块,进而再执行后续的共识交易流程。在上述流程中,出块节点需要对交易进行全量打包,导致区块的数据量较大,在区块链整体交易量较大的情况下,大数据量的区块易造成网络拥堵,降低区块广播速度,引起共识超时。
发明内容
有鉴于此,本发明的目的在于提供一种交易共识方法、装置和电子设备,以减少交易区块的数据量,提高交易共识效率。
第一方面,本发明实施例提供了一种交易共识方法,方法应用于区块链中的出块节点;出块节点中存储有待共识的交易;方法包括:从待共识的交易中确定目标交易;基于目标交易的交易接收方和随机值,生成交易区块;将交易区块广播至区块链中除出块节点以外的节点,以对交易区块中的交易进行共识处理。
上述交易区块中包括:目标交易的交易接收方和随机值。
上述交易区块具体包括:目标交易中To字段保存的第一字段值,以及目标交易中Nonce字段保存的第二字段值;其中,To字段保存的第一字段值用于指示:目标交易的交易接收方;Nonce字段保存的第二字段值包括目标交易的随机值。
上述出块节点中设置有第一交易存储结构;第一交易存储结构的关键字包括交易接收方;关键字对应的关键字值包括:关键字中的交易接收方对应的交易的随机值。
上述方法还包括:如果接收到客户端或除出块节点以外的第一节点发送的第一交易,从第一交易中提取第一交易的交易接收方和随机值;从第一交易存储结构中查询包括第一交易的交易接收方的目标关键字;将第一交易的随机值保存至目标关键字对应的关键字值中,并保存第一交易的交易内容。
上述方法还包括:如果从第一交易存储结构中查询不到包括第一交易的交易接收方的目标关键字,创建目标关键字,以及目标关键字对应的关键字值;将第一交易的随机值保存至目标关键字对应的关键字值中。
上述出块节点中设置有第二交易存储结构;第二交易存储结构的关键字包括交易接收方和随机值;关键字对应的关键字值包括:关键字中的交易接收方和随机值对应的交易的交易内容。
上述将交易区块广播至区块链中除出块节点以外的节点的步骤之后,方法还包括:如果接收到除出块节点以外的第一节点发送的交易获取请求,从交易获取请求中提取待获取交易的交易接收方和随机值;基于待获取交易的交易接收方和随机值,从待共识的交易中获取待获取交易的交易内容;将待获取交易的交易内容发送至第一节点。
第二方面,本发明实施例提供了一种交易共识方法,方法应用于区块链中的除出块节点以外的第一节点;第一节点中存储有待共识的交易;方法包括:如果接收到出块节点发送的交易区块,获取交易区块中包含的目标交易的交易接收方和随机值;根据目标交易的交易接收方和随机值,从待共识的交易中获取目标交易的交易内容;基于目标交易的交易内容,对目标交易进行共识处理。
上述从待共识的交易中获取目标交易的交易内容的步骤,包括:根据目标交易的交易接收方和随机值,从待共识的交易中查询目标交易的交易内容;如果目标交易中存在查询不到交易内容的第二交易,基于第二交易的交易接收方和随机值生成交易获取请求;将交易获取请求发送至出块节点,以从出块节点中获取第二交易的交易内容。
上述将交易获取请求发送至出块节点的步骤之后,方法还包括:接收出块节点返回的第一交易的交易内容;将第一交易的交易内容进行验签处理。
第三方面,本发明实施例提供了一种交易共识装置,装置设置于区块链中的出块节点;出块节点中存储有待共识的交易;装置包括:交易确定模块,用于从待共识的交易中确定目标交易;区块生成模块,用于基于目标交易的交易接收方和随机值,生成交易区块;区块广播模块,用于将交易区块广播至区块链中除出块节点以外的节点,以对交易区块中的交易进行共识处理。
第四方面,本发明实施例提供了一种交易共识装置,装置应用于区块链中的除出块节点以外的第一节点;第一节点中存储有待共识的交易;装置包括:第一获取模块,用于如果接收到出块节点发送的交易区块,获取交易区块中包含的目标交易的交易接收方和随机值;第二获取模块,用于根据目标交易的交易接收方和随机值,从待共识的交易中获取目标交易的交易内容;基于目标交易的交易内容,对目标交易进行共识处理。
第五方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述交易共识方法。
第六方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述交易共识方法。
本发明实施例带来了以下有益效果:
上述交易共识方法、装置和电子设备中,从待共识的交易中确定目标交易之后,基于该目标交易的交易接收方和随机值,生成交易区块;然后将交易区块广播至区块链中除出块节点以外的节点,以对交易区块中的交易进行共识处理。该方式中,基于目标交易的交易接收方和随机值生成交易区块,可以大幅减少交易区块的数据量,即使在大交易量的情况下,交易区块也可以快速且稳定地广播至区块链中的各个节点中,提高了交易区块广播速度和交易共识效率。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种交易共识方法的流程图;
图2为本发明实施例提供的另一种交易共识方法的流程图;
图3为本发明实施例提供的一种交易共识装置的结构示意图;
图4为本发明实施例提供的另一种交易共识装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解,首先介绍两个技术概念,BFT(Byzantine Fault Tolerance,拜占庭容错技术)和联盟链。其中,拜占庭容错技术BFT是一类分布式计算领域的容错技术,该技术中的拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或中断以及遭到恶意攻击等原因,计算机和网络可能出现不可预料的行为。拜占庭容错技术被设计用来处理这些异常行为,并满足所要解决的问题的规范要求。
联盟链本质上是一种私有链,只不过联盟链比单个小组织开发的私有链更大,却又没有公有链这么大的规模,可以理解为它是介于私有链和公有链之间的一种区块链。目前,联盟链的共识交易流程中,通过主节点对交易进行全量打包后,再发起共识提案。如果链内交易量过大,例如单位时间段内的交易量达到十万笔,会很容易将网络带宽打满并且消息广播速度会急速下降,只要网络一抖动,非常容易引起共识的超时。本实施例中,上述主节点也可以称为leader节点或出块节点。
基于上述,本发明实施例提供一种交易共识方法、装置和电子设备,该技术可以应用于联盟链、私有链、公有链等各类区块链的交易共识流程中。为便于对本实施例进行理解,首先对本发明实施例所公开的一种交易共识方法进行详细介绍。
该方法应用于区块链中的出块节点,区块链中的出块节点可以从区块链中的各个节点中选举得到,在一定的选举算法控制下,区块链中的各个节点可以轮流作为出块节点;该出块节点中存储有待共识的交易;该出块节点中可以设置有交易池,该交易池中保存有出块节点从客户端接收到的交易,还包括其他节点广播的交易;具体地,区块链中的每个节点都设置有交易池,每个节点的交易池中均保存有该节点从客户端接收到的交易,还包括其他节点广播的交易;例如,对于节点A,该节点从客户端接收到交易B后,对该交易B进行验签后保存在节点A的交易池中,然后,将该交易B在区块链中进行广播,使得其他节点也接收到交易B,其他节点对交易B进行验签后,保存在各自的交易池中。因而,在理想状态下,区块链中的每个节点的交易池中保存的交易是相同的;每个节点交易的交易池中保存的是待共识的交易。
如图1所示,该交易共识方法包括如下步骤:
步骤S102,从待共识的交易中确定目标交易;
出块节点用于触发交易共识流程,待共识的交易可以保存在出块节点的交易池中,待共识的交易可以以队列或者其他形式的存储结构存储在交易池。出块节点从待共识的交易中选择一定数量的交易,作为上述目标交易;在大多情况下,出块节点一次选择的目标交易的数量为多个,当然也可以为一个。
步骤S104,基于目标交易的交易接收方和随机值,生成交易区块;
相关技术中,从待共识的交易中确定一定数量的目标交易后,将该目标交易的完整的交易内容进行打包,生成交易区块;通常,一个交易的交易内容中包括多种数据,尤其是输入数据(input data)部分,该部分由智能合约代码创建,或者由智能合约代码调用的数据。大多情况下,一个交易的数据量可以到达500字节,如果一个交易区块需要打包10万个交易,则该交易区块的数据量可以达到50M,在区块链中广播这么大数据量的交易区域,对带宽要求非常高。因而,在交易量比较大的情况下,共识流程在网络层面很容易超时。
而本实施例中,不再对完整的交易内容进行打包,而是基于目标交易的交易接收方和随机值,生成交易区块;该交易区块中不包括目标交易的完整的交易内容,仅包括与目标交易的交易接收方和随机值相关的内容;交易接收方和随机值相关的内容通常保存在目标交易的交易内容中,可以从目标交易的交易内容中提取得到。其中的随机值可以理解为交易的序号,当客户端生成一个交易时,由客户端和区块链的服务端配合生成该交易的随机值;通常,根据交易生成的先后顺序,由服务端保证按照递增的顺序生成随机值,并赋予相应的交易,因而可以保证一个交易具有唯一的随机值。例如,在区块链网络中,该随机值可以从0开始,以1为单位递增。
一个具体的实现方式中,该交易区块中包括目标交易的交易接收方和随机值。其他方式中,交易区块中也可以包括与目标交易的交易接收方和随机值相关的其他标识性信息,例如,加密后的目标交易的交易接收方和随机值。因而,本实施例可以大幅减少交易区块的数据量,减少共识超时的问题。
另一个具体的实现方式中,交易区块具体包括:目标交易中To字段保存的第一字段值,以及目标交易中Nonce字段保存的第二字段值;其中,To字段保存的第一字段值用于指示:目标交易的交易接收方;Nonce字段保存的第二字段值包括目标交易的随机值。通常,一个交易的交易内容中包括很多字段,例如,TxHash字段、From字段、To字段、Value字段、Nonce字段、Input Data字段等;每个字段保存该字段相应的内容。其中,To字段中保存的第一字段值,具体可以为交易接收方的身份标识、地址信息或者公钥等信息;Nonce字段保存的第二字段值中则包括该目标交易的随机值。
步骤S106,将交易区块广播至区块链中除出块节点以外的节点,以对交易区块中的交易进行共识处理。
交易区块的数据量减少之后,即使网络比较拥挤或者发生网络抖动,交易区块也可以较为稳定地广播至区块链中的除出块节点以外的其他节点;以其他节点中的节点A为例,节点A接收到的交易区块中,仅包括目标交易的交易接收方和随机值相关的内容;由于节点A的交易池中包含与出块节点的交易池中同样的待共识的交易,节点A可以基于交易区块中目标交易的交易接收方和随机值相关的内容,从节点A的交易池中获取目标交易的完整的交易内容,然后再进行后续的共识处理,如commit阶段、execute阶段等。
上述交易共识方法中,从待共识的交易中确定目标交易之后,基于该目标交易的交易接收方和随机值,生成交易区块;然后将交易区块广播至区块链中除出块节点以外的节点,以对交易区块中的交易进行共识处理。该方式中,基于目标交易的交易接收方和随机值生成交易区块,可以大幅减少交易区块的数据量,即使在大交易量的情况下,交易区块也可以快速且稳定地广播至区块链中的各个节点中,提高了交易区块广播速度和交易共识效率。
下面提供一种待共识的交易在出块节点以及其他节点的交易池中的存储方式,以出块节点为例,该出块节点中设置有第一交易存储结构;第一交易存储结构的关键字包括交易接收方;关键字对应的关键字值包括:关键字中的交易接收方对应的交易的随机值。具体地,每个关键字对应的关键字值可以为列表形式,关键字中的交易接收方对应的交易的随机值可以按照递增或递减的方式排序在列表中。
基于上述第一交易存储结构,当节点接收到新的交易时,通过下述方式存储该交易的相关信息。如果接收到客户端或除出块节点以外的第一节点发送的第一交易,从第一交易中提取第一交易的交易接收方和随机值;从第一交易存储结构中查询包括第一交易的交易接收方的目标关键字;将第一交易的随机值保存至目标关键字对应的关键字值中,并保存第一交易的交易内容。
以出块节点为例,出块节点可能接收到客户端发送的交易,也可能接收到其他节点广播的交易,出块节点需要对接收到的交易进行存储。对于上述第一交易而言,该第一交易的交易内容中保存有第一交易的交易接收方和随机值,出块节点从第一交易中可以直接提取得到第一交易的交易接收方和随机值。将第一交易的交易接收方作为关键字A,从上述第一交易存储结构中查询该关键字A,然后将第一交易的随机值保存在关键字A对应的关键字值中;同时,将第一交易的交易内容进行保存。需要说明的是,除出块节点以外的其他节点,也可能接收到客户端发送的交易,或其他节点广播的交易,对交易的存储方式均可参照上述步骤。
一种可能的情况中,上述第一交易存储结构中查询不到包括第一交易的交易接收方的关键字;如果从第一交易存储结构中查询不到包括第一交易的交易接收方的目标关键字,创建目标关键字,以及该目标关键字对应的关键字值;将第一交易的随机值保存至目标关键字对应的关键字值中。该目标关键字中包括第一交易的交易接收方,该目标关键字对应的关键字值中,可以预先创建一个列表,然后将第一交易的随机值保存在该列表中。
出块节点在进行交易打包时,从交易池拉取交易进行打包,得到交易区块;交易区块的结构可以参考如下示例:
[{“transaction.To”:”0x12312312hhsdfsd”,
“numberRange”:“0~100”,//nonce的数据范围
“lackNumber”:[59,60]//numberRange范围中,缺失的nonce交易},
{“transaction.To”:”0x1231sdfsd1227887hsdfsd”,
“numberRange”:“130~200”,//nonce的数据范围
“lackNumber”:[]//无缺失}]
其中,该交易区块根据交易接收方的不同,划分为两组,“transaction.To”字段中的字段值,保存的是交易接收方;“numberRange”字段中保存的是交易的随机值范围;“lackNumber”字段中保存的是前述随机值范围中不包含的随机值,因此,交易接收方为“0x12312312hhsdfsd”这一组的交易共包括随机值为0-100的交易,且除了随机值为59和60的交易以外;同理,交易接收方为“0x1231sdfsd1227887hsdfsd”这一组的交易共包括随机值为130-200的交易。
针对交易内容的存储方式,出块节点及其他节点中还可以设置有第二交易存储结构;以出块节点为例,出块节点中设置有第二交易存储结构;该第二交易存储结构的关键字包括交易接收方和随机值;该关键字对应的关键字值包括:关键字中的交易接收方和随机值对应的交易的交易内容。该第二交易存储结构可以通过HashMap的形式实现;其中,每个交易的交易接收方和随机值共同作为该交易的关键字,交易的完整的交易内容作为该关键字的关键字值。例如,如果需要查询交易A的交易内容,将交易A的交易接收方和随机值作为关键字查询第二交易存储结构,即可得到该交易A的交易内容;如果需要向第二交易存储结构中存储新的交易B,在第二交易存储结果中创建包括交易B的交易接收方和随机值的目标关键字,将交易B的交易内容保存至该目标关键字的关键字值中。
如前述实施例所述,每个节点在接收到来自客户端的交易后,会将该交易广播至区块链中的其他节点,因而在大部分情况下,区块链中的每个节点的交易池中保存的交易是相同的。因而,节点在接收到交易区块后,即可基于交易区块中目标交易的交易接收方和随机值,从该节点本地的交易池中获取目标交易的交易内容。但是,在实际实现时,存在交易广播不及时或漏广播的情况,导致节点没有存储全部的待共识的交易,此时,节点就无法从本地的交易池中获取目标交易的交易内容。
为了获取目标交易的交易内容,其他节点可以向出块节点发送请求。具体的,如果目标交易K的交易内容没有从本地的交易池中获取到,就基于交易区块中目标交易K的交易接收方和随机值,生成交易获取请求,该交易获取请求中包括目标交易K的交易接收方和随机值。对于出块节点来说,如果接收到除出块节点以外的第一节点发送的交易获取请求,从该交易获取请求中提取待获取交易的交易接收方和随机值;这里的待获取交易属于上述目标交易中的一个或多个交易;基于待获取交易的交易接收方和随机值,从待共识的交易中获取待获取交易的交易内容;将待获取交易的交易内容发送至第一节点。通常,第一节点接收到待获取交易的交易内容后,会对待获取交易的交易内容进行验签。验签通过后,该第一节点就可以得到交易区块中每个交易的交易内容,此时即可执行交易共识流程中的commit阶段、execute阶段等。
为了进一步理解本实施例的交易共识方法,下面从除出块节点以外的第一节点的角度描述该交易共识方法;该方法应用于区块链中的除出块节点以外的第一节点;第一节点中存储有待共识的交易;如图2所示,该方法包括如下步骤:
步骤S202,如果接收到出块节点发送的交易区块,获取交易区块中包含的目标交易的交易接收方和随机值;
该交易区块中通常包含多个目标交易的交易接收方和随机值,多个目标交易的交易接收方和随机值以列表的形式保存在交易区块中。由于交易区块中仅包括交易接收方和随机值,即使交易区块中包括很多笔交易,该交易区块的数据量通常仅有几十字节,交易区块的数据量大幅度降低,便于网络层面的传输,从而可以加快交易区块的广播速度和共识速度。
步骤S204,根据目标交易的交易接收方和随机值,从待共识的交易中获取目标交易的交易内容;基于目标交易的交易内容,对目标交易进行共识处理。
第一节点本地的交易池中,保存有当前区块链网络中待共识的交易,因而第一节点可以从本地交易池中,获取上述交易区块中包括的各个目标交易的交易接收方和随机值所对应的目标交易的交易内容,基于从本地交易池获取到的目标交易的交易内容,对目标交易进行共识处理。
这里需要说明的是,由于第一节点是从本地的交易池中获取的目标交易的交易内容,即使出块节点作恶,对目标交易的交易内容进行了篡改,第一节点也不会对篡改后的目标交易的交易内容进行后续的共识处理,如commit处理;第一节点使用的是本地的交易池中,未被篡改的目标交易的交易内容进行后续的共识处理,提高了区块链数据的安全性。
上述交易共识方法中,如果接收到出块节点发送的交易区块,获取交易区块中包含的目标交易的交易接收方和随机值;从待共识的交易中,获取交易接收方和随机值对应的目标交易的交易内容;基于目标交易的交易内容,对目标交易进行共识处理。该方式中,出块节点基于目标交易的交易接收方和随机值生成交易区块,可以大幅减少交易区块的数据量,即使在大交易量的情况下,交易区块也可以快速且稳定地广播至区块链中的各个节点中,各个节点基于交易区域中的交易接收方和随机值,从本地的交易池中获取交易内容,无需网络传输交易内容,提高了交易广播速度和共识效率。
另外,该方式还可以防止出块节点对交易内容进行篡改的情况,出块节点以外的第一节点使用的是本地的交易池中,未被篡改的目标交易的交易内容进行后续的共识处理,即使出块节点对交易内容进行篡改,也无法基于篡改的交易内容进行后续的共识处理,提高了区块链数据的安全性。
当交易区块中包括多个目标交易的交易接收方和随机值时,可以针对每个目标交易的交易接收方和随机值,从第一节点的交易池中获取该目标交易的交易内容。在上述示例中,交易区块中通常包括“transaction.To”“numberRange”和“lackNumber”三个字段对应的字段值;根据这三个字段的字段值,第一节点可以从本地的交易池中拉取相应的交易,得到交易的交易内容。在大多情况下,第一节点中保存有全部的待共识的交易,但可能存在少数广播不及时或者漏广播的情况,此时第一节点就会没有保存目标交易的交易内容。
基于上述,在获取交易接收方和随机值对应的目标交易的交易内容时,根据目标交易的交易接收方和随机值,从待共识的交易中查询目标交易的交易内容;如果目标交易中存在查询不到交易内容的第二交易,基于第二交易的交易接收方和随机值生成交易获取请求;将交易获取请求发送至出块节点,以从出块节点中获取第二交易的交易内容。
交易获取请求中包括没有从第一节点的交易池中查询到的一个或多个目标交易的交易接收方和随机值;交易获取请求发送至出块节点后,出块节点从出块节点的本地交易池中获取这些目标交易的交易内容,进而再将这些交易内容发送至第一节点,从而可以使第一节点得到交易区块中每个目标交易的交易内容,该交易区块中各个交易的交易内容完整后,即可执行后续的共识流程。
第一节点将待获取请求发送至出块节点之后,即可接收出块节点返回的第一交易的交易内容;将第一交易的交易内容进行验签处理。在区块链中,每个节点需要对接收到的交易进行验签,且验签通过后,在可以将交易保存至本地的交易池中;对于在第一节点中未查询到的目标交易的交易内容,从出块节点获取到这些目标交易的交易内容后,也需要进行验签处理,才可以进入第一节点的交易池中;因而对于第一节点来说,交易区块中每个目标交易,仅需要验签一次,即可进行后续的共识处理,而相关技术中,第一节点从交易区块中获取到目标交易的交易内容后,如果目标交易的交易内容已经保存在第一节点的交易池中,说明第一节点已经对目标交易的交易内容进行过一次验签,此时,在对交易区块中目标交易的交易内容再进行一次验签,相当于第一节点需要对目标交易的交易内容进行两次验签,无疑增加了共识流程的耗时,而本实施例中,仅对目标交易的交易内容进行一次验签即可进行后续的共识处理流程,减少了耗时,提高了共识处理的效率。
对应于上述方法实施例,参见图3所示的一种交易共识装置的结构示意图,该装置设置于区块链中的出块节点;出块节点中存储有待共识的交易;装置包括:
交易确定模块30,用于从待共识的交易中确定目标交易;
区块生成模块32,用于基于目标交易的交易接收方和随机值,生成交易区块;
区块广播模块34,用于将交易区块广播至区块链中除出块节点以外的节点,以对交易区块中的交易进行共识处理。
上述交易共识装置中,从待共识的交易中确定目标交易之后,基于该目标交易的交易接收方和随机值,生成交易区块;然后将交易区块广播至区块链中除出块节点以外的节点,以对交易区块中的交易进行共识处理。该方式中,基于目标交易的交易接收方和随机值生成交易区块,可以大幅减少交易区块的数据量,即使在大交易量的情况下,交易区块也可以快速且稳定地广播至区块链中的各个节点中,提高了交易区块广播速度和交易共识效率。
上述交易区块中包括:目标交易的交易接收方和随机值。
上述交易区块具体包括:目标交易中To字段保存的第一字段值,以及目标交易中Nonce字段保存的第二字段值;其中,To字段保存的第一字段值用于指示:目标交易的交易接收方;Nonce字段保存的第二字段值包括目标交易的随机值。
上述出块节点中设置有第一交易存储结构;第一交易存储结构的关键字包括交易接收方;关键字对应的关键字值包括:关键字中的交易接收方对应的交易的随机值。
上述装置还包括交易存储模块,用于:如果接收到客户端或除出块节点以外的第一节点发送的第一交易,从第一交易中提取第一交易的交易接收方和随机值;从第一交易存储结构中查询包括第一交易的交易接收方的目标关键字;将第一交易的随机值保存至目标关键字对应的关键字值中,并保存第一交易的交易内容。
上述装置还包括创建模块,用于:如果从第一交易存储结构中查询不到包括第一交易的交易接收方的目标关键字,创建目标关键字,以及目标关键字对应的关键字值;将第一交易的随机值保存至目标关键字对应的关键字值中。
上述出块节点中设置有第二交易存储结构;第二交易存储结构的关键字包括交易接收方和随机值;关键字对应的关键字值包括:关键字中的交易接收方和随机值对应的交易的交易内容。
上述装置还包括交易内容发送模块,用于如果接收到除出块节点以外的第一节点发送的交易获取请求,从交易获取请求中提取待获取交易的交易接收方和随机值;基于待获取交易的交易接收方和随机值,从待共识的交易中获取待获取交易的交易内容;将待获取交易的交易内容发送至第一节点。
参见图4所示的另一种交易共识装置的结构示意图,该装置应用于区块链中的除出块节点以外的第一节点;第一节点中存储有待共识的交易;装置包括:
第一获取模块40,用于如果接收到出块节点发送的交易区块,获取交易区块中包含的目标交易的交易接收方和随机值;
第二获取模块42,用于根据目标交易的交易接收方和随机值,从待共识的交易中获取目标交易的交易内容;基于目标交易的交易内容,对目标交易进行共识处理。
上述交易共识装置中,如果接收到出块节点发送的交易区块,获取交易区块中包含的目标交易的交易接收方和随机值;从待共识的交易中,获取交易接收方和随机值对应的目标交易的交易内容;基于目标交易的交易内容,对目标交易进行共识处理。该方式中,出块节点基于目标交易的交易接收方和随机值生成交易区块,可以大幅减少交易区块的数据量,即使在大交易量的情况下,交易区块也可以快速且稳定地广播至区块链中的各个节点中,各个节点基于交易区域中的交易接收方和随机值,从本地的交易池中获取交易内容,无需网络传输交易内容,提高了交易广播速度和共识效率。
上述装置还包括请求生成发送模块,用于:根据目标交易的交易接收方和随机值,从待共识的交易中查询目标交易的交易内容;如果目标交易中存在查询不到交易内容的第二交易,基于第二交易的交易接收方和随机值生成交易获取请求;将交易获取请求发送至出块节点,以从出块节点中获取第二交易的交易内容。
上述装置还包括内容接收模块,用于:接收出块节点返回的第一交易的交易内容;将第一交易的交易内容进行验签处理。
本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述交易共识方法。
参见图5所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述交易共识方法。
进一步地,图5所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
其中,存储器101可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述交易共识方法。
本发明实施例所提供的游戏中的交易共识方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (15)
1.一种交易共识方法,其特征在于,所述方法应用于区块链中的出块节点;所述出块节点中存储有待共识的交易;所述方法包括:
从所述待共识的交易中确定目标交易;
基于所述目标交易的交易接收方和随机值,生成交易区块;
将所述交易区块广播至所述区块链中除所述出块节点以外的节点,以对所述交易区块中的交易进行共识处理。
2.根据权利要求1所述的方法,其特征在于,所述交易区块中包括:所述目标交易的交易接收方和随机值。
3.根据权利要求2所述的方法,其特征在于,所述交易区块具体包括:所述目标交易中To字段保存的第一字段值,以及所述目标交易中Nonce字段保存的第二字段值;
其中,所述To字段保存的第一字段值用于指示:所述目标交易的交易接收方;所述Nonce字段保存的第二字段值包括所述目标交易的随机值。
4.根据权利要求1所述的方法,其特征在于,所述出块节点中设置有第一交易存储结构;所述第一交易存储结构的关键字包括交易接收方;所述关键字对应的关键字值包括:所述关键字中的交易接收方对应的交易的随机值。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
如果接收到客户端或除所述出块节点以外的第一节点发送的第一交易,从所述第一交易中提取所述第一交易的交易接收方和随机值;
从所述第一交易存储结构中查询包括所述第一交易的交易接收方的目标关键字;
将所述第一交易的随机值保存至所述目标关键字对应的关键字值中,并保存所述第一交易的交易内容。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
如果从所述第一交易存储结构中查询不到包括所述第一交易的交易接收方的目标关键字,创建所述目标关键字,以及所述目标关键字对应的关键字值;
将所述第一交易的随机值保存至所述目标关键字对应的关键字值中。
7.根据权利要求1所述的方法,其特征在于,所述出块节点中设置有第二交易存储结构;所述第二交易存储结构的关键字包括交易接收方和随机值;所述关键字对应的关键字值包括:所述关键字中的交易接收方和随机值对应的交易的交易内容。
8.根据权利要求1所述的方法,其特征在于,将所述交易区块广播至所述区块链中除所述出块节点以外的节点的步骤之后,所述方法还包括:
如果接收到除所述出块节点以外的第一节点发送的交易获取请求,从所述交易获取请求中提取待获取交易的交易接收方和随机值;
基于所述待获取交易的交易接收方和随机值,从所述待共识的交易中获取所述待获取交易的交易内容;
将所述待获取交易的交易内容发送至所述第一节点。
9.一种交易共识方法,其特征在于,所述方法应用于区块链中的除出块节点以外的第一节点;所述第一节点中存储有待共识的交易;所述方法包括:
如果接收到出块节点发送的交易区块,获取所述交易区块中包含的目标交易的交易接收方和随机值;
根据所述目标交易的交易接收方和随机值,从所述待共识的交易中获取所述目标交易的交易内容;基于所述目标交易的交易内容,对所述目标交易进行共识处理。
10.根据权利要求9所述的方法,其特征在于,从所述待共识的交易中获取所述目标交易的交易内容的步骤,包括:
根据所述目标交易的交易接收方和随机值,从所述待共识的交易中查询所述目标交易的交易内容;
如果所述目标交易中存在查询不到交易内容的第二交易,基于所述第二交易的交易接收方和随机值生成交易获取请求;
将所述交易获取请求发送至所述出块节点,以从所述出块节点中获取所述第二交易的交易内容。
11.根据权利要求9所述的方法,其特征在于,将所述交易获取请求发送至所述出块节点的步骤之后,所述方法还包括:
接收所述出块节点返回的所述第一交易的交易内容;
将所述第一交易的交易内容进行验签处理。
12.一种交易共识装置,其特征在于,所述装置设置于区块链中的出块节点;所述出块节点中存储有待共识的交易;所述装置包括:
交易确定模块,用于从所述待共识的交易中确定目标交易;
区块生成模块,用于基于所述目标交易的交易接收方和随机值,生成交易区块;
区块广播模块,用于将所述交易区块广播至所述区块链中除所述出块节点以外的节点,以对所述交易区块中的交易进行共识处理。
13.一种交易共识装置,其特征在于,所述装置应用于区块链中的除出块节点以外的第一节点;所述第一节点中存储有待共识的交易;所述装置包括:
第一获取模块,用于如果接收到出块节点发送的交易区块,获取所述交易区块中包含的目标交易的交易接收方和随机值;
第二获取模块,用于根据所述目标交易的交易接收方和随机值,从所述待共识的交易中获取所述目标交易的交易内容;基于所述目标交易的交易内容,对所述目标交易进行共识处理。
14.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-11任一项所述的交易共识方法。
15.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-11任一项所述的交易共识方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011114820.5A CN112232957A (zh) | 2020-10-16 | 2020-10-16 | 交易共识方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011114820.5A CN112232957A (zh) | 2020-10-16 | 2020-10-16 | 交易共识方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112232957A true CN112232957A (zh) | 2021-01-15 |
Family
ID=74118731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011114820.5A Pending CN112232957A (zh) | 2020-10-16 | 2020-10-16 | 交易共识方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112232957A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112838930A (zh) * | 2021-01-25 | 2021-05-25 | 网易(杭州)网络有限公司 | 区块链交易的执行方法及装置、电子设备、存储介质 |
CN112884579A (zh) * | 2021-02-08 | 2021-06-01 | 京东数科海益信息科技有限公司 | 区块链交易共识方法和装置 |
CN113269645A (zh) * | 2021-05-28 | 2021-08-17 | 中邮信息科技(北京)有限公司 | 一种区块链的交易信息调度方法、装置、介质及电子设备 |
CN114219650A (zh) * | 2022-02-21 | 2022-03-22 | 浙江数秦科技有限公司 | 一种低交易延迟的区块链共识方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110691077A (zh) * | 2019-09-24 | 2020-01-14 | 支付宝(杭州)信息技术有限公司 | 一种联盟链的业务校验方法及联盟链系统 |
US20200143471A1 (en) * | 2018-11-06 | 2020-05-07 | Shapeshift Ag | Decentralized Blockchain Oracle Price Discovery Platform with Bi-Directional Quotes |
CN111369358A (zh) * | 2020-02-10 | 2020-07-03 | 杭州溪塔科技有限公司 | 一种区块链共识方法、装置和电子设备 |
CN111522822A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种区块链共识方法、装置及电子设备 |
-
2020
- 2020-10-16 CN CN202011114820.5A patent/CN112232957A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200143471A1 (en) * | 2018-11-06 | 2020-05-07 | Shapeshift Ag | Decentralized Blockchain Oracle Price Discovery Platform with Bi-Directional Quotes |
CN110691077A (zh) * | 2019-09-24 | 2020-01-14 | 支付宝(杭州)信息技术有限公司 | 一种联盟链的业务校验方法及联盟链系统 |
CN111369358A (zh) * | 2020-02-10 | 2020-07-03 | 杭州溪塔科技有限公司 | 一种区块链共识方法、装置和电子设备 |
CN111522822A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种区块链共识方法、装置及电子设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112838930A (zh) * | 2021-01-25 | 2021-05-25 | 网易(杭州)网络有限公司 | 区块链交易的执行方法及装置、电子设备、存储介质 |
CN112838930B (zh) * | 2021-01-25 | 2022-12-06 | 网易(杭州)网络有限公司 | 区块链交易的执行方法及装置、电子设备、存储介质 |
CN112884579A (zh) * | 2021-02-08 | 2021-06-01 | 京东数科海益信息科技有限公司 | 区块链交易共识方法和装置 |
CN113269645A (zh) * | 2021-05-28 | 2021-08-17 | 中邮信息科技(北京)有限公司 | 一种区块链的交易信息调度方法、装置、介质及电子设备 |
CN113269645B (zh) * | 2021-05-28 | 2024-05-17 | 中邮信息科技(北京)有限公司 | 一种区块链的交易信息调度方法、装置、介质及电子设备 |
CN114219650A (zh) * | 2022-02-21 | 2022-03-22 | 浙江数秦科技有限公司 | 一种低交易延迟的区块链共识方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112232957A (zh) | 交易共识方法、装置和电子设备 | |
CN109345388B (zh) | 区块链智能合约验证方法、装置及存储介质 | |
KR102469267B1 (ko) | 블록 체인 합의 방법, 어카운팅 노드 및 노드 | |
KR102578019B1 (ko) | 블록체인 기반 데이터 검출 방법 및 디바이스, 및 컴퓨터 판독가능 저장 매체 | |
CN110417717B (zh) | 登录行为的识别方法及装置 | |
CN111885050B (zh) | 基于区块链网络的数据存储方法、装置、相关设备及介质 | |
CN110784521B (zh) | 区块链的共识方法、电子设备和存储介质 | |
CN110928880B (zh) | 基于区块链的数据处理方法、装置、终端及介质 | |
CN111010284B (zh) | 一种待共识区块的处理方法、相关装置及区块链系统 | |
CN111224782B (zh) | 基于数字签名的数据校验方法、智能设备及存储介质 | |
CN113852470B (zh) | 提案广播方法、装置、设备和存储介质 | |
CN112671932B (zh) | 一种基于大数据和云计算的数据处理方法及云计算节点 | |
CN113660216B (zh) | 口令攻击检测方法、装置、电子装置和存储介质 | |
CN113162971B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN113727348B (zh) | 用户设备ue用户数据的检测方法、设备、系统及存储介质 | |
CN115952515B (zh) | 一种基于大数据的数据安全处理方法及装置 | |
CN109413450B (zh) | 一种弹幕数据的完整性校验方法、装置、终端及存储介质 | |
JP6992309B2 (ja) | 送信装置、受信装置、及び通信方法 | |
CN112232958A (zh) | 交易共识方法、装置和电子设备 | |
CN111814204B (zh) | 基于区块链的数据共识方法、相关设备及存储介质 | |
CN112465516B (zh) | 基于区块链网络的设备管理方法,相关设备及存储介质 | |
CN113542251B (zh) | 数据报送方法及装置 | |
CN116015778B (zh) | 一种智能化技术资源共享方法、系统及电子设备 | |
US20230261948A1 (en) | Device Identification Method, Apparatus, and System | |
CN117155581A (zh) | 物联网场景下融合时间敏感数据处理策略的bft共识机制 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |