CN117273924A - 交易执行方法及装置和电子设备 - Google Patents
交易执行方法及装置和电子设备 Download PDFInfo
- Publication number
- CN117273924A CN117273924A CN202311097678.1A CN202311097678A CN117273924A CN 117273924 A CN117273924 A CN 117273924A CN 202311097678 A CN202311097678 A CN 202311097678A CN 117273924 A CN117273924 A CN 117273924A
- Authority
- CN
- China
- Prior art keywords
- transaction
- transactions
- target block
- execution
- block
- 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 101
- 230000008569 process Effects 0.000 claims abstract description 44
- 238000012795 verification Methods 0.000 claims description 72
- 238000004088 simulation Methods 0.000 claims description 39
- 238000009826 distribution Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 17
- 238000012546 transfer Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 12
- 238000003860 storage Methods 0.000 description 11
- 238000004519 manufacturing process Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 230000006872 improvement Effects 0.000 description 8
- 238000004321 preservation Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 229910052799 carbon Inorganic materials 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一种交易执行方法及装置和电子设备。所述方法包括:从区块链的分布式账本中获取待执行的目标区块;其中,所述目标区块中包含的交易具有分组标识;基于所述分组标识对所述目标区块中包含的交易进行分组,得到至少一个交易组;并行执行所述至少一个交易组中的各个交易组包含的交易,并在并行执行各个交易组包含的交易的过程中,按照各个交易组内的交易的执行顺序串行执行所述各个交易集合内的交易。
Description
技术领域
本说明书实施例属于区块链技术领域,尤其涉及一种交易执行方法及装置和电子设备。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链***中按照时间顺序将区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
在相关技术中,对于同一个区块内的交易一般是按照交易产生的先后顺序串行执行的。由于串行执行的方式每次只能执行一个交易,因此区块内交易的执行效率较低;一旦面对交易数量较多的区块,就会出现执行时长较长的问题。
发明内容
本发明的目的在于提供一种交易执行方案,包括:
一种交易执行方法,所述方法包括:
从区块链的分布式账本中获取待执行的目标区块;其中,所述目标区块中包含的交易具有分组标识;
基于所述分组标识对所述目标区块中包含的交易进行分组,得到至少一个交易组;
并行执行所述至少一个交易组中的各个交易组包含的交易,并在并行执行各个交易组包含的交易的过程中,按照各个交易组内的交易的执行顺序串行执行所述各个交易集合内的交易。
可选的,所述分组标识基于所述目标区块中包含的交易之间的依赖关系确定;具有依赖关系的交易对应有相同的分组标识。
可选的,所述目标区块中包含的交易的分组标识,为针对所述目标区块进行区块验证的过程中,基于确定出的所述目标区块中包含的交易之间的依赖关系,为所述交易分配的分组标识。
可选的,所述依赖关系包括在针对所述目标区块进行区块验证的过程中对所述目标区块包含的交易进行模拟执行产生的交易执行结果中包含相同的交易执行对象。
可选的,所述模拟执行产生的交易执行结果包括模拟执行产生的读写集。
可选的,所述相同的交易执行对象包括同一区块链账户和/或同一区块链资产。
可选的,所述按照各个交易组内的交易的执行顺序串行执行所述各个交易集合内的交易,包括:
按照各个交易组内的交易的交易标识的先后顺序串行执行所述各个交易集合内的交易。
一种区块验证方法,包括:
获取生成的目标区块;
对所述目标区块进行区块验证,并在所述区块验证的过程中确定所述目标区块中包含的交易之间的依赖关系;
基于确定出的所述依赖关系为所述目标区块中包含的交易分配的分组标识;其中,具有依赖关系的交易对应有相同的分组标识。
可选的,所述在所述区块验证的过程中确定所述目标区块中包含的交易之间的依赖关系,包括:
在所述区块验证的过程中,获取对所述目标区块包含的交易进行模拟执行产生的交易执行结果;
在不同的交易执行结果之间包含相同的交易执行对象时,确定所述不同的交易执行结果对应的交易之间具有依赖关系。
可选的,所述模拟执行产生的交易执行结果包括模拟执行产生的读写集。
可选的,所述相同的交易执行对象包括同一区块链账户和/或同一区块链资产。
一种交易执行装置,所述装置包括:
获取单元,从区块链的分布式账本中获取待执行的目标区块;其中,所述目标区块中包含的交易具有分组标识;
分组单元,基于所述分组标识对所述目标区块中包含的交易进行分组,得到至少一个交易组;
执行单元,并行执行所述至少一个交易组中的各个交易组包含的交易,并在并行执行各个交易组包含的交易的过程中,按照各个交易组内的交易的执行顺序串行执行所述各个交易集合内的交易。
可选的,所述分组标识基于所述目标区块中包含的交易之间的依赖关系确定;具有依赖关系的交易对应有相同的分组标识。
可选的,所述目标区块中包含的交易的分组标识,为针对所述目标区块进行区块验证的过程中,基于确定出的所述目标区块中包含的交易之间的依赖关系,为所述交易分配的分组标识。
可选的,所述依赖关系包括在针对所述目标区块进行区块验证的过程中对所述目标区块包含的交易进行模拟执行产生的交易执行结果中包含相同的交易执行对象。
可选的,所述模拟执行产生的交易执行结果包括模拟执行产生的读写集。
可选的,所述相同的交易执行对象包括同一区块链账户和/或同一区块链资产。
可选的,所述执行单元在用于按照各个交易组内的交易的执行顺序串行执行所述各个交易集合内的交易,进一步用于按照各个交易组内的交易的交易标识的先后顺序串行执行所述各个交易集合内的交易。
一种区块验证装置,包括:
获取单元,获取生成的目标区块;
验证单元,对所述目标区块进行区块验证,并在所述区块验证的过程中确定所述目标区块中包含的交易之间的依赖关系;
分配单元,基于确定出的所述依赖关系为所述目标区块中包含的交易分配的分组标识;其中,具有依赖关系的交易对应有相同的分组标识。
可选的,所述验证单元在所述区块验证的过程中确定所述目标区块中包含的交易之间的依赖关系,进一步用于在所述区块验证的过程中,获取对所述目标区块包含的交易进行模拟执行产生的交易执行结果;并在不同的交易执行结果之间包含相同的交易执行对象时,确定所述不同的交易执行结果对应的交易之间具有依赖关系。
可选的,所述模拟执行产生的交易执行结果包括模拟执行产生的读写集。
可选的,所述相同的交易执行对象包括同一区块链账户和/或同一区块链资产。
一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为上述任一项交易执行方法。
上述实施例中,通过对区块内的交易进行分组,将无需保序的交易拆分到不同的交易组,从而可以通过并行执行交易组的方式提高单个区块内交易的执行效率。此外对于区块内需要保序处理的交易,由于同一交易组内的交易依然是按照交易序号的递增顺序串行执行,因此可以确保需要保序处理的交易能够顺序执行。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书示出的一种与区块链相关的网络环境的示意图;
图2是本说明书一实施例提供的交易执行方法的流程图;
图3是本说明书一实施例提供的区块验证方法的流程图;
图4是本说明书一实施例提供的交易执行装置的硬件结构图;
图5是本说明书一实施例提供的交易执行装置的模块;
图6是本说明书一实施例提供的区块验证装置的模块。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
在本说明书所描述的区块链,具体可以包括私有链、共有链以及联盟链等,在本说明书中不进行特别限定。所述区块链中的节点设备可以无限制的添加,各个节点设备可以同步一个***时间,以保障智能合约执行的时效性。
需要说明的是,在本说明书中所描述的交易(Transaction),是指通过区块链的客户端创建,并需要最终发布至区块链的数据存储***中的一笔数据。
区块链中的交易,通常存在狭义的交易以及广义的交易之分。狭义的交易是指用户向区块链发布的一笔价值转移;例如,在传统的区块链网络中,交易可以是用户在区块链中发起的一笔转账。而广义的交易是指用户向区块链发布的一笔具有服务意图的服务数据;例如,运营方可以基于实际的服务需求搭建一个联盟链,依托于联盟链部署一些与价值转移无关的其它类型的在线服务(比如,宽泛的可以分为查询服务、调用服务等),而在这类联盟链中,交易可以是用户在联盟链中发布的一笔具有服务意图的服务消息或者服务请求。
上述客户端,可以包括任意类型的以区块链中存储的底层服务数据作为数据支撑,来实现特定的服务功能的上层应用。
请参考图1,图1是本说明书示出的一种与区块链相关的网络环境的示意图。
在如图1所示的网络环境中,可以包括客户端侧计算设备101、服务器端102,以及至少一个区块链***;例如,区块链***103、区块链***104和区块链***105。
在一种实施方式中,客户端侧计算设备101,可以包括各种不同类型的客户端侧计算设备;例如,客户端侧终端设备可以包括诸如PC终端设备、移动终端设备、物联网设备,以及其它形式的具有一定的计算能力的智能设备,等等。
在一种实施方式中,客户端侧终端设备101中的至少部分计算设备,可以通过各种通信网络耦接到服务器端102;例如,图1中示出的设备3与服务器端102进行了耦接。
不难理解,客户端侧终端设备101中的部分终端设备,也可以不与服务器端102进行耦接,而是作为区块链节点通过各种通信网络直接耦接到区块链***;例如,图1中示出的设备4,可以作为区块链节点耦接到区块链***。
其中,上述通信网络可以包括有线和/或无线通信网络;例如,可以是基于运营商提供的有线接入网络或者无线接入网络(比如移动蜂窝网络)实现的局域网(Local AreaNetwork,LAN)、广域网(Wide Area Network,WAN)、因特网或其组合。
在一种实施方式中,客户端侧计算设备101,还可以包括一个或多个用户侧服务器;例如,图1中示出的设备5。客户端侧终端设备101中的至少部分计算设备,可以耦接到该用户侧服务器,而该用户侧服务器可以进一步与上述服务端102进行耦接;例如,图1中示出的设备1和设备2耦接到设备5,设备5进一步耦接服务器端102。
在一种实施方式中,上述用户侧服务器可以由搭建了用户账户体系的服务实体来实现;上述服务实体可以包括面向用户提供各种线上和/或线下服务的服务载体的运营实体;
其中,上述服务载体可以包括软件形式的服务载体,也可以包括硬件形式的服务载体。
在一种实施方式中,上述服务载体可以包括提供线上互联网服务的各种客户端软件;例如,网站、网页、APP等。
在一种实施方式中,上述服务载体也可以包括部署在线下的,能够提供线下服务的各种智能设备;例如,部署在居住区、办公区、公共场所的智能快递柜。
相应的,上述运营实体可以包括上述服务载体对应的运营方;例如,上述运营实体可以包括对上述服务载体进行运营和管理的个人、组织、公司和企业,等等。
在一种实施方式中,服务器端102也可以通过各种通信网络耦接到一个或者多个区块链***;例如,图1中示出的服务器端102可以分别耦接到区块链***103、区块链***104和区块链***105,等等。
在一种实施方式中,每个区块链***都可以维护一个或多个区块链(例如,公有区块链、私有区块链、联盟区块链等),并包括用于承载上述一个或多个区块链的多个区块链节点;例如,如图1中示出的区块链节点1、区块链节点2、区块链节点3、区块链节点4、区块链节点i等可以共同承载一个或者多个区块链。各个区块链***包含的区块链之间,以及各个区块链***之间,还可以进行跨链的数据访问。
在一种实施方式中,区块链节点可以包括全节点和轻节点。全节点可以全量下载区块链中的每个区块所包含的区块链交易,并可以根据搭载的区块链共识算法,对每个区块链中所包含的区块链交易进行共识验证。
而轻节点可以不下载完整的区块链,而是可以只下载区块链中的每个区块的区块头数据,并将区块头所包含的数据作为验证根,用于以验证区块链交易的真实性。轻节点可以依附于全节点来访问区块链的更多功能。
例如,图1中示出的区块链***103中的各个区块链节点都可以作为全节点;而图1中示出的直接耦接到区块链***的设备4,就可以作为轻节点,依附于区块链***103中的各个全节点。
在一种实施方式中,区块链节点可以是物理设备,也可以是在服务器或者服务器集群中实现的虚拟设备;例如,区块链节点设备可以是服务器集群中的一台物理主机,也可以是基于虚拟化技术对服务器或者服务器集群搭载的硬件资源进行虚拟化后,创建的虚拟机。每个区块链节点之间,可以通过各种类型的通信方法(比如TCP/IP)耦接在一起形成网络,来承载一个或者多个区块链。
在一种实施方式中,服务器端102可以包括用于提供区块链即服务(BaaS,Blockchain as a Service)的BaaS平台(也称之为BaaS云)。BaaS平台可以通过为区块链上发生的活动(诸如订阅和通知、用户验证、数据库管理和远程更新),提供预先编写的软件的方式,面向与BaaS平台耦接的客户端侧计算设备,提供简单易用,一键部署,快速验证,灵活可定制的区块链服务,进而可以加速区块链应用开发、测试、上线,助力各行业区块链商业应用场景的落地。
例如,在一个例子中,与BaaS平台可以提供诸如MQ(Message Queue,消息队列)服务之类的软件;与BaaS平台耦接的客户端侧计算设备,可以订阅BaaS平台耦接的区块链***中某一区块链上部署的智能合约,在触发执行后在区块链上产生的合约事件;而BaaS平台可以监听该智能合约在触发执行后在区块链上产生的事件,再基于MQ服务相关的软件,将该合约事件以通知消息的形式添加到消息队列中,使得订阅该消息队列的客户端侧计算设备,能够得到与上述合约事件相关的通知。
在一种实施方式中,BaaS平台还可以提供基于区块链技术的企业级平台服务,以帮助企业级客户构建安全且稳定的区块链环境,并轻松管理区块链的部署、操作、维护和开发。
例如,在一个例子中,BaaS平台可以基于云技术实现丰富的安全策略和多租户的隔离环境、基于芯片加密技术来提供高级的安全保护、基于高度可靠的数据存储,提供可以快速扩展,而不会中断的端到端的高可用***;
在另一个例子中,还可以提供增强的管理功能,以帮助客户构建企业级区块链网络环境;以及,还可以为标准区块链应用和数据提供本地支持,支持例如HyperledgerFabric和Enterprise Ethereum-Quorum的主流开源区块链技术,以构建开放且包容的技术生态***。
在介绍了与区块链相关的网络环境之后,接下来请结合图2所示的本说明书提供的交易执行方法的流程图来进一步介绍相关实施例。所述交易执行方法可以应用于交易执行方,所述交易执行方可以包括前述图1所示的服务器端,或者也可以应用在与区块链***直连的客户端侧计算设备(如设备4或设备1等)。所述交易执行方法可以包括以下步骤:
步骤210,从区块链的分布式账本中获取待执行的目标区块;其中,所述目标区块中包含的交易具有分组标识。
区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准格式的交易,然后将该交易发布至区块链,由区块链中的作为记账节点的节点设备,将接收到的交易打包以生成目标区块,在区块链的分布式账本中进行持久化存证。
进一步的,区块链的分布式账本中的目标区块还需要由区块链中的其它节点设备进行共识,即区块链中的其它节点设备可以从区块链的分布式账本中获取该目标区块,并对目标区块进行区块验证。如果其它节点设备经验证确定目标区块没有问题,那么记账节点就可以将该目标区块作为最新区块追加到原有的区块链末尾,从而完成区块链的记账过程。
对于参与区块验证的其它节点设备可以为区块内的交易分配分组标识,关于如何分配分组标识将在后续实施例详细说明。
由于目标区块内的交易分配了分组标识,因此交易执行方在从区块链的分布式账本获取到目标区块后就可以直接使用目标区块中包含的交易具有的分组标识。
步骤220,基于所述分组标识对所述目标区块中包含的交易进行分组,得到至少一个交易组。
根据目标区块中包含的交易具有的分组标识,可以将相同分组标识的交易划分到一个交易组内,因此交易组的数量取决于分组标识的数量。
本说明书中,所述分组标识基于所述目标区块中包含的交易之间的依赖关系确定;具有依赖关系的交易对应有相同的分组标识。
所述目标区块中包含的交易的分组标识,可以为针对所述目标区块进行区块验证的过程中,基于确定出的所述目标区块中包含的交易之间的依赖关系,为所述交易分配的分组标识。
在实现时,如果确定出目标区块中至少两个交易之间存在的依赖关系,则可以为存在依赖关系的交易分配相同的分组标识;反之如果交易之间不存在依赖关系,则可以分配不同的分组标识。
本说明书中,上述区块验证可以包括合法性的验证和模拟执行的验证。其中,合法性的验证通常用于验证区块中交易是否合法,例如验证交易的发起方是否正确;模拟执行的验证用于验证区块中交易的交易执行结果是否符合预期。
需要说明的是,区块验证过程中对交易进行模拟执行生产的交易执行结果,并不会记录到区块链中;模拟执行生产的交易执行结果只是用于验证交易是否符合预期,即同一个交易在模拟执行生产的交易执行结果与区块中记录的交易执行结果一致,则说明该交易是符合预期的;反之,如果模拟执行生产的交易执行结果与区块中记录的交易的执行结果不一致,则说明该交易是不符合预期。一旦出现不符合预期的交易,那么区块的共识结果即为共识不通过。
进一步的,所述依赖关系包括在针对所述目标区块进行区块验证的过程中对所述目标区块包含的交易进行模拟执行产生的交易执行结果中包含相同的交易执行对象。
本说明书中,对于目标区块中包含的交易之间是否存在依赖关系,可以通过比较交易进行模拟执行产生的交易执行结果;如果至少两个交易进行模拟执行的交易执行结果包含相同的交易执行对象,那么说明所述至少两个交易具有依赖关系。
本说明书中,所述模拟执行产生的交易执行结果包括模拟执行产生的读写集。所述读写集是由读集和写集共同组成的。其中,读集是模拟执行前与交易相关的所有数据,而写集则是模拟执行后与交易相关的所有数据。
例如,某个交易表示的是区块链账户A向区块链账户B进行区块链资产C的转移;那么该交易的读写集包括的读集中至少包括转账前区块链账户A的账户余额以及转账前区块链账户B的账户余额;相应地,写集中至少包括转账后区块链账户A的账户余额以及转账后区块链账户B的账户余额。
本说明书中,所述相同的交易执行对象包括同一区块链账户和/或同一区块链资产。下面举例说明,假设交易1表示的是区块链账户A向区块链账户B进行区块链资产C的转移,交易2表示的是区块链账户B向区块链账户C进行区块链资产D的转移。那么,由于交易1和交易2具有相同的区块链账户即区块链账户B,因此交易1和交易2可以认为是具有依赖关系的交易。
进一步的,如果还存在一个交易3,该交易3表示的是区块链账户D向区块链账户E进行区块链资产C。那么,由于交易3与交易1具有相同的区块链资产即区块链资产C,因此交易3和交易1也可以认为是具有依赖关系的交易。
基于上述确定依赖关系,就可以为交易1、交易2和交易3分配相同的分组标识。
本说明书中,交易执行方在执行区块内的交易时,对于存在依赖关系的交易需要保证交易执行顺序,在确保交易执行顺序正确的情况下执行交易才可以得到正确的交易执行结果。这种确保交易执行顺序正确的处理方式可以称为保序处理。
本说明书中通过对存在依赖关系的交易进行保序处理,一方面通过为存在依赖关系的交易分配相同的分组标识,从而可以将这些交易分到同一个交易组中。另一方面,对于同一交易组内的交易可以按照交易序号的递增顺序进行排序;这样就可以保证正确的交易执行顺序。
在一示例性的实施例中,在上述步骤220之前,还可以包括:
确定获取到的所述目标区块中记录的交易的数量是否大于阈值;
相应地,上述基于所述分组标识对所述目标区块中包含的交易进行分组,可以包括:
响应于获取到的所述目标区块中记录的交易的数量大于阈值,基于所述分组标识对所述目标区块中包含的交易进行分组。
在实际应用中,区块内交易的数量大于阈值的区块可以称为大块区块;大块区块由于存在较多的交易,因此需要提高交易的执行效率。其中,所述阈值可以是人为定义的一个经验值。
步骤230:并行执行所述至少一个交易组中的各个交易组包含的交易,并在并行执行各个交易组包含的交易的过程中,按照各个交易组内的交易的执行顺序串行执行所述各个交易集合内的交易。
本说明书可以采用多线程技术并行执行各个交易组包含的交易。此外,同一个交易组内的交易可以按照交易的执行顺序串行执行。对于
具体地,在并行执行各个交易组包含的交易的过程中,可以按照各个交易组内的交易的交易标识的先后顺序串行执行所述各个交易集合内的交易。
通常,区块内的交易可以具有交易标识,所述交易标识可以用于表示交易的先后执行顺序。所述交易标识可以基于交易上链的时间戳来确定,也可以直接使用交易上链的时间戳作为交易标识。
在上述实施例中,一方面,通过对区块内的交易进行分组,将无需保序的交易拆分到不同的交易组,从而可以通过并行执行交易组的方式提高单个区块内交易的执行效率;另一方面,对于区块内需要保序处理的交易,由于同一交易组内的交易依然是按照交易序号的递增顺序串行执行,因此可以确保需要保序处理的交易能够顺序执行。
下面进一步介绍与前述图2所示交易执行实施例相对应的区块验证方法的相关实施例,该方法可以应用于区块链中的节点设备。该区块验证方法如图3所示可以包括以下步骤:
步骤310,获取生成的目标区块。
步骤320,对所述目标区块进行区块验证,并在所述区块验证的过程中确定所述目标区块中包含的交易之间的依赖关系。
步骤330,基于确定出的所述依赖关系为所述目标区块中包含的交易分配的分组标识;其中,具有依赖关系的交易对应有相同的分组标识。
区块链中的作为记账节点的节点设备,可以接收发布至区块链的交易,并将一段时间内(可以称为记账周期)接收到的交易打包为目标区块。
进一步的,区块链的分布式账本中的目标区块还需要由区块链中的其它节点设备进行共识,即区块链中的其它节点设备可以从区块链的分布式账本中获取该目标区块,并对目标区块进行区块验证。如果其它节点设备经验证确定目标区块没有问题,那么记账节点就可以将该目标区块作为最新区块追加到原有的区块链末尾,从而完成区块链的记账过程。
对于参与区块验证的其它节点设备在获取到目标区块后,可以对所述目标区块进行区块验证,并在所述区块验证的过程中确定所述目标区块中包含的交易之间的依赖关系。
本说明书中,上述区块验证可以包括合法性的验证和模拟执行的验证。其中,合法性的验证通常用于验证区块中交易是否合法,例如验证交易的发起方是否正确;模拟执行的验证用于验证区块中交易的交易执行结果是否符合预期。
需要说明的是,区块验证过程中对交易进行模拟执行生产的交易执行结果,并不会记录到区块链中;模拟执行生产的交易执行结果只是用于验证交易是否符合预期,即同一个交易在模拟执行生产的交易执行结果与区块中记录的交易执行结果一致,则说明该交易是符合预期的;反之,如果模拟执行生产的交易执行结果与区块中记录的交易的执行结果不一致,则说明该交易是不符合预期。一旦出现不符合预期的交易,那么区块的共识结果即为共识不通过。
在一示例性的实施例中,上述步骤320在所述区块验证的过程中确定所述目标区块中包含的交易之间的依赖关系,可以包括:
在所述区块验证的过程中,获取对所述目标区块包含的交易进行模拟执行产生的交易执行结果;
在不同的交易执行结果之间包含相同的交易执行对象时,确定所述不同的交易执行结果对应的交易之间具有依赖关系。
本说明书中,对于目标区块中包含的交易之间是否存在依赖关系,可以通过比较交易进行模拟执行产生的交易执行结果;如果至少两个交易进行模拟执行的交易执行结果包含相同的交易执行对象,那么说明所述至少两个交易具有依赖关系。
本说明书中,所述模拟执行产生的交易执行结果包括模拟执行产生的读写集。所述读写集是由读集和写集共同组成的。其中,读集是模拟执行前与交易相关的所有数据,而写集则是模拟执行后与交易相关的所有数据。
例如,某个交易表示的是区块链账户A向区块链账户B进行区块链资产C的转移;那么该交易的读写集包括的读集中至少包括转账前区块链账户A的账户余额以及转账前区块链账户B的账户余额;相应地,写集中至少包括转账后区块链账户A的账户余额以及转账后区块链账户B的账户余额。
本说明书中,所述相同的交易执行对象包括同一区块链账户和/或同一区块链资产。下面举例说明,假设交易1表示的是区块链账户A向区块链账户B进行区块链资产C的转移,交易2表示的是区块链账户B向区块链账户C进行区块链资产D的转移。那么,由于交易1和交易2具有相同的区块链账户即区块链账户B,因此交易1和交易2可以认为是具有依赖关系的交易。
进一步的,如果还存在一个交易3,该交易3表示的是区块链账户D向区块链账户E进行区块链资产C。那么,由于交易3与交易1具有相同的区块链资产即区块链资产C,因此交易3和交易1也可以认为是具有依赖关系的交易。
基于上述确定依赖关系,就可以为交易1、交易2和交易3分配相同的分组标识。
本说明书中,交易执行方在执行区块内的交易时,对于存在依赖关系的交易需要保证交易执行顺序,在确保交易执行顺序正确的情况下执行交易才可以得到正确的交易执行结果。这种确保交易执行顺序正确的处理方式可以称为保序处理。
本说明书中通过对存在依赖关系的交易进行保序处理,一方面通过为存在依赖关系的交易分配相同的分组标识,从而可以将这些交易分到同一个交易组中。另一方面,对于同一交易组内的交易可以按照交易序号的递增顺序进行排序;这样就可以保证正确的交易执行顺序。
通过该实施例提供的区块验证方法,可以为目标区块中包含的交易分配分组标识,从而便于交易执行方在进行交易执行时,基于分组标识对目标区块中包含的交易进行分组;并最终通过并行执行交易组的方式提高单个区块内交易的执行效率。
与前述交易执行、区块执行方法实施例相对应,本说明书还提供了交易执行装置和区块执行装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书交易执行装置所在设备的一种硬件结构图,除了图4所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据交易执行和区块验证的实际功能,还可以包括其他硬件,对此不再赘述。
请参见图5,为本说明书一实施例提供的交易执行装置的模块图,所述装置对应了图2所示实施例,所述装置包括:
获取单元510,从区块链的分布式账本中获取待执行的目标区块;其中,所述目标区块中包含的交易具有分组标识;
分组单元520,基于所述分组标识对所述目标区块中包含的交易进行分组,得到至少一个交易组;
执行单元530,并行执行所述至少一个交易组中的各个交易组包含的交易,并在并行执行各个交易组包含的交易的过程中,按照各个交易组内的交易的执行顺序串行执行所述各个交易集合内的交易。
可选的,所述分组标识基于所述目标区块中包含的交易之间的依赖关系确定;具有依赖关系的交易对应有相同的分组标识。
可选的,所述目标区块中包含的交易的分组标识,为针对所述目标区块进行区块验证的过程中,基于确定出的所述目标区块中包含的交易之间的依赖关系,为所述交易分配的分组标识。
可选的,所述依赖关系包括在针对所述目标区块进行区块验证的过程中对所述目标区块包含的交易进行模拟执行产生的交易执行结果中包含相同的交易执行对象。
可选的,所述模拟执行产生的交易执行结果包括模拟执行产生的读写集。
可选的,所述相同的交易执行对象包括同一区块链账户和/或同一区块链资产。
可选的,所述执行单元530在用于按照各个交易组内的交易的执行顺序串行执行所述各个交易集合内的交易,进一步用于按照各个交易组内的交易的交易标识的先后顺序串行执行所述各个交易集合内的交易。
下面进一步参见图6,为本说明书一实施例提供的区块验证装置的模块图,所述装置对应了图3所示实施例,所述装置包括:
获取单元610,获取生成的目标区块;
验证单元620,对所述目标区块进行区块验证,并在所述区块验证的过程中确定所述目标区块中包含的交易之间的依赖关系;
分配单元630,基于确定出的所述依赖关系为所述目标区块中包含的交易分配的分组标识;其中,具有依赖关系的交易对应有相同的分组标识。
可选的,所述验证单元620在所述区块验证的过程中确定所述目标区块中包含的交易之间的依赖关系,进一步用于在所述区块验证的过程中,获取对所述目标区块包含的交易进行模拟执行产生的交易执行结果;并在不同的交易执行结果之间包含相同的交易执行对象时,确定所述不同的交易执行结果对应的交易之间具有依赖关系。
可选的,所述模拟执行产生的交易执行结果包括模拟执行产生的读写集。
可选的,所述相同的交易执行对象包括同一区块链账户和/或同一区块链资产。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上图5描述了交易执行装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述任一交易执行方法的实施例。
类似的,以上图6描述了区块验证装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述区块验证方法的实施例。
在上述电子设备的实施例中,应理解,该处理器可以是CPU,还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、快闪存储器、硬盘或者固态硬盘。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器***。当然,本说明书不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本说明书实施例的方法、装置(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、***或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
Claims (14)
1.一种交易执行方法,所述方法包括:
从区块链的分布式账本中获取待执行的目标区块;其中,所述目标区块中包含的交易具有分组标识;
基于所述分组标识对所述目标区块中包含的交易进行分组,得到至少一个交易组;
并行执行所述至少一个交易组中的各个交易组包含的交易,并在并行执行各个交易组包含的交易的过程中,按照各个交易组内的交易的执行顺序串行执行所述各个交易集合内的交易。
2.根据权利要求1所述的方法,所述分组标识基于所述目标区块中包含的交易之间的依赖关系确定;具有依赖关系的交易对应有相同的分组标识。
3.根据权利要求2所述的方法,所述目标区块中包含的交易的分组标识,为针对所述目标区块进行区块验证的过程中,基于确定出的所述目标区块中包含的交易之间的依赖关系,为所述交易分配的分组标识。
4.根据权利要求3所述的方法,所述依赖关系包括在针对所述目标区块进行区块验证的过程中对所述目标区块包含的交易进行模拟执行产生的交易执行结果中包含相同的交易执行对象。
5.根据权利要求4所述的方法,所述模拟执行产生的交易执行结果包括模拟执行产生的读写集。
6.根据权利要求4所述的方法,所述相同的交易执行对象包括同一区块链账户和/或同一区块链资产。
7.根据权利要求1所述的方法,所述按照各个交易组内的交易的执行顺序串行执行所述各个交易集合内的交易,包括:
按照各个交易组内的交易的交易标识的先后顺序串行执行所述各个交易集合内的交易。
8.一种区块验证方法,包括:
获取生成的目标区块;
对所述目标区块进行区块验证,并在所述区块验证的过程中确定所述目标区块中包含的交易之间的依赖关系;
基于确定出的所述依赖关系为所述目标区块中包含的交易分配的分组标识;其中,具有依赖关系的交易对应有相同的分组标识。
9.根据权利要求8所述的方法,所述在所述区块验证的过程中确定所述目标区块中包含的交易之间的依赖关系,包括:
在所述区块验证的过程中,获取对所述目标区块包含的交易进行模拟执行产生的交易执行结果;
在不同的交易执行结果之间包含相同的交易执行对象时,确定所述不同的交易执行结果对应的交易之间具有依赖关系。
10.根据权利要求9所述的方法,所述模拟执行产生的交易执行结果包括模拟执行产生的读写集。
11.根据权利要求9所述的方法,所述相同的交易执行对象包括同一区块链账户和/或同一区块链资产。
12.一种交易执行装置,所述装置包括:
获取单元,从区块链的分布式账本中获取待执行的目标区块;其中,所述目标区块中包含的交易具有分组标识;
分组单元,基于所述分组标识对所述目标区块中包含的交易进行分组,得到至少一个交易组;
执行单元,并行执行所述至少一个交易组中的各个交易组包含的交易,并在并行执行各个交易组包含的交易的过程中,按照各个交易组内的交易的执行顺序串行执行所述各个交易集合内的交易。
13.一种区块验证装置,包括:
获取单元,获取生成的目标区块;
验证单元,对所述目标区块进行区块验证,并在所述区块验证的过程中确定所述目标区块中包含的交易之间的依赖关系;
分配单元,基于确定出的所述依赖关系为所述目标区块中包含的交易分配的分组标识;其中,具有依赖关系的交易对应有相同的分组标识。
14.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述权利要求1-7或8-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311097678.1A CN117273924A (zh) | 2023-08-28 | 2023-08-28 | 交易执行方法及装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311097678.1A CN117273924A (zh) | 2023-08-28 | 2023-08-28 | 交易执行方法及装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117273924A true CN117273924A (zh) | 2023-12-22 |
Family
ID=89220486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311097678.1A Pending CN117273924A (zh) | 2023-08-28 | 2023-08-28 | 交易执行方法及装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117273924A (zh) |
-
2023
- 2023-08-28 CN CN202311097678.1A patent/CN117273924A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11029976B2 (en) | Facilitating multi-inheritance within a single inheritance container-based environment | |
CN109614823B (zh) | 一种数据的处理方法、装置及设备 | |
US9734159B2 (en) | File path modification based management | |
US20190147065A1 (en) | Method and system for verification of deleted data for blockchains | |
US10601680B2 (en) | Application resiliency using APIs | |
US11188515B2 (en) | Preview processing and automatic correction of bulk data for software as a service applications | |
CN109032803B (zh) | 数据处理方法和装置、客户端 | |
US11308223B2 (en) | Blockchain-based file handling | |
US9848064B2 (en) | Generation and distribution of named, definable, serialized tokens | |
CN111767144A (zh) | 交易数据的交易路由确定方法、装置、设备及*** | |
US10182104B1 (en) | Automatic propagation of resource attributes in a provider network according to propagation criteria | |
CN116305298B (zh) | 一种算力资源管理方法、装置、存储介质及电子设备 | |
CN109145053B (zh) | 数据处理方法和装置、客户端、服务器 | |
US11409724B2 (en) | Hashed balanced tree data structure | |
US10530842B2 (en) | Domain-specific pattern design | |
US10176059B2 (en) | Managing server processes with proxy files | |
US10565202B2 (en) | Data write/import performance in a database through distributed memory | |
US10860433B1 (en) | Directional consistency in capture and recovery of cloud-native applications | |
US20230110602A1 (en) | Federated learning model lineage | |
CN117273924A (zh) | 交易执行方法及装置和电子设备 | |
US10223463B2 (en) | Node controllers for hierarchical data structures | |
CN115485677A (zh) | 在分布式数据存储环境中的安全数据复制 | |
US11159530B2 (en) | Direct upload and download to content management system backend | |
CN109151016B (zh) | 流量转发方法和装置、服务***、计算设备及存储介质 | |
US10554498B2 (en) | Shadow agent projection in multiple places to reduce agent movement over nodes in distributed agent-based simulation |
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 |