CN110490742A - 一种区块链中的交易执行方法及装置 - Google Patents
一种区块链中的交易执行方法及装置 Download PDFInfo
- Publication number
- CN110490742A CN110490742A CN201910744161.4A CN201910744161A CN110490742A CN 110490742 A CN110490742 A CN 110490742A CN 201910744161 A CN201910744161 A CN 201910744161A CN 110490742 A CN110490742 A CN 110490742A
- Authority
- CN
- China
- Prior art keywords
- transaction
- contract
- shared variable
- shared
- defined interface
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000008859 change Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002844 melting Methods 0.000 description 1
- 230000008018 melting Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 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
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种区块链中的交易执行方法及装置,其中方法适用于包括多个合约接口的智能合约,该方法包括:针对待处理的N个交易中任一个交易,确定交易在智能合约中对应的合约接口;根据所合约接口的共享变量信息和交易的各变量信息,确定交易的共享变量;共享变量信息用于记录合约接口的共享变量;共享变量为至少两个合约接口均具有的变量;N为大于1的整数;根据N个交易的共享变量,确定并行执行的至少两个第一交易;至少两个第一交易对应不同的合约接口且不具有相同的共享变量;并行执行至少两个第一交易。上述方法应用于金融科技(Fintech)时,保证执行正常基础上并行执行,降低了N个交易的完成时长。
Description
技术领域
本发明涉及金融科技(Fintech)领域和区块链(Blockchain)领域,尤其涉及一种区块链中的交易执行方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链(Blockchain)、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变。目前,基于区块链的不可篡改性,金融科技领域中常通过区块链进行交易。
然而,随着交易量的不断增加,串行执行交易会导致大量交易长期排队,进而交易完成的时长较长;并行执行交易又可能因为交易与交易之间的共享变量存在冲突导致交易错误,重试或排查错误更会增加完成交易的时长。目前区块链节点的性能,越来越不能支撑起庞大的交易量。因此现有技术中,区块链中完成交易的时长较长,是一个亟待解决的问题。
发明内容
本申请实施例提供一种区块链中的交易执行方法及装置,解决了现有技术中区块链中完成交易的时长较长的问题。
第一方面,本申请实施例提供一种区块链中的交易执行方法,该方法适用于包括多个合约接口的智能合约;该方法包括:针对待处理的N个交易中任一个交易,确定所述交易在所述智能合约中对应的合约接口;根据所合约接口的共享变量信息和所述交易的各变量信息,确定所述交易的共享变量;所述共享变量信息用于记录所述合约接口的共享变量;所述共享变量为至少两个合约接口均具有的变量;N为大于1的整数;根据所述N个交易的共享变量,确定并行执行的至少两个第一交易;所述至少两个第一交易对应不同的合约接口且所述至少两个第一交易不具有相同的共享变量;并行执行所述至少两个第一交易。
上述方法中,确定了待处理的N个交易中每个交易在所述智能合约中对应的合约接口,且根据共享变量信息中记录的各合约接口的共享变量,因此根据所述N个交易的共享变量,确定出并行执行的至少两个交易。由于并行执行的至少两个交易对应不同的合约接口且所述至少两个交易不具有相同的共享变量,因此在并行执行至少两个交易时,不会因为共享变量导致交易执行冲突,从而在保证执行正常基础上并行执行,降低了N个交易的完成时长。
一种可选实施方式中,所述确定所述交易在所述智能合约中对应的合约接口之后,所述确定所述交易的共享变量之前,还包括:根据所述智能合约的合约地址和所述交易在所述智能合约中对应的合约接口,从共享变量合约中确定所述交易对应的共享变量信息;所述共享变量合约为记录智能合约的合约地址、合约接口及合约接口对应共享变量信息的合约。
上述方法中,预先形成了共享变量合约,共享变量合约为记录智能合约的合约地址、合约接口及合约接口对应共享变量信息的合约,可根据所述智能合约的合约地址和所述交易在所述智能合约中对应的合约接口,从共享变量合约中确定所述交易对应的共享变量信息,可提高确定出的交易对应共享变量信息的可靠性。
一种可选实施方式中,串行执行第二交易;所述第二交易为串行交易组合中任一交易;所述串行交易组合为所述N个交易中除并行执行的交易之外的交易;串行执行所述第二交易之后,若根据所述串行交易组合中尚未执行的交易的共享变量,确定存在并行执行的至少两个第三交易,则并行执行所述至少两个第三交易;所述至少两个第三交易对应不同的合约接口且所述至少两个第三交易不具有相同的共享变量。
上述方法中,还可以串行执行串行交易组合中的第二交易,而且串行执行所述第二交易之后,串行交易组合中的一个或多个交易仅与第二交易有共享变量的交易便可并行执行,若根据所述串行交易组合中尚未执行的交易的共享变量,确定存在并行执行的至少两个第三交易,则并行执行所述至少两个第三交易,串行执行第二交易之后,串行交易组合中与第二交易有共享变量的交易,从而进一步增加可并行执行的交易,减少了交易的完成时长。
一种可选实施方式中,所述第二交易为所述串行交易组合中公共交易个数最多的交易;其中,公共交易为所述串行交易组合中除该交易外的所有交易中,与该交易存在共享变量的交易。
上述方式下,当第二交易执行后,第二交易为所述串行交易组合中公共交易个数最多的交易,因此可最大限度从串行交易组合剩余的交易中释放与第二交易有共享变量的交易,从而最大限度增加可继续并行执行的至少两个第三交易的数量。
第二方面,本申请提供一种区块链中的交易执行装置,适用于包括多个合约接口的智能合约;所述装置包括:确定模块,用于针对待处理的N个交易中任一个交易,确定所述交易在所述智能合约中对应的合约接口;根据所合约接口的共享变量信息和所述交易的各变量信息,确定所述交易的共享变量;所述共享变量信息用于记录所述合约接口的共享变量;所述共享变量为至少两个合约接口均具有的变量;N为大于1的整数;处理模块,用于根据所述N个交易的共享变量,确定并行执行的至少两个第一交易;所述至少两个第一交易对应不同的合约接口且所述至少两个第一交易不具有相同的共享变量;并行执行所述至少两个第一交易。
一种可选实施方式中,所述确定模块还用于:根据所述智能合约的合约地址和所述交易在所述智能合约中对应的合约接口,从共享变量合约中确定所述交易对应的共享变量信息;所述共享变量合约为记录智能合约的合约地址、合约接口及合约接口对应共享变量信息的合约。
一种可选实施方式中,所述处理模块还用于:串行执行第二交易;所述第二交易为串行交易组合中任一交易;所述串行交易组合为所述N个交易中除并行执行的交易之外的交易;串行执行所述第二交易之后,若根据所述串行交易组合中尚未执行的交易的共享变量,确定存在并行执行的至少两个第三交易,则并行执行所述至少两个第三交易;所述至少两个第三交易对应不同的合约接口且所述至少两个第三交易不具有相同的共享变量。
一种可选实施方式中,所述第二交易为所述串行交易组合中公共交易个数最多的交易;其中,公共交易为所述串行交易组合中除该交易外的所有交易中,与该交易存在共享变量的交易。
上述第二方面及第二方面各个实施例的有益效果,可以参考上述第一方面及第一方面各个实施例的有益效果,这里不再赘述。
第三方面,本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个实施例的方法。
第四方面,本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个实施例的方法。
附图说明
图1为区块链的结构示意图;
图2为本申请实施例提供的一种区块链中交易执行方法的步骤流程示意图;
图3为本申请实施例提供的一种在区块链部署共享变量合约的步骤流程示意图;
图4为本申请实施例提供的一种在区块链提取交易的共享变量的步骤流程示意图;
图5为本申请实施例提供的一种区块链中交易执行装置的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。
下面首先解释本申请实施例中出现的名词。
区块链:如图1所示,区块链是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的哈希(Hash)值,通过这种方式组成一条链。区块链的核心理念有两个,一个是密码学技术,另一个是去中心化思想,基于这两个理念做到区块链上的历史信息无法被篡改。
节点:网络中的每一个参与者就是一个节点,节点参与网络组建和数据交换。在区块链网络中,一个节点是指一个具有唯一身份的参与者,该节点具有一份完整的账本拷贝,具有参与区块链网络共识和账本维护的能力。
智能合约:智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约具体形式为部署在区块链上,完成特定功能的代码。举例来说,Solidity是一种主流的智能合约编程语言,用Solidity语言编写的智能合约,叫Solidity合约。当智能合约被部署到区块链上时,会产生合约地址,用户可通过合约地址调用此智能合约。智能合约中定义的函数,称为合约接口,对智能合约的调用,就是通过合约地址调用合约中的某个合约接口。
交易:交易是用户对部署在区块链上智能合约接口的一次操作请求。交易由用户发起,从用户的客户端发往区块链节点,区块链节点收到交易后,根据交易指定的合约地址和接口去调用相应的智能合约。
共享变量:在智能合约的接口(函数)中,对一些全局的变量进行了操作,这些全局变量有可能会被另一个合约接口进行操作。在智能合约的接口中所操作的全局变量,称为共享变量。一笔交易调用了一个智能合约的接口,涉及到对某些共享变量的操作。这些共享变量,称为这笔交易的共享变量。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,基于区块链的不可篡改性,金融科技领域中常通过区块链进行交易。然而,随着交易量的不断增加,串行执行交易会导致大量交易长期排队,或者可能因为交易与交易之间的共享变量存在冲突导致交易错误,重试或排查错误更会增加完成交易的时长。目前区块链节点的性能,越来越不能支撑起庞大的交易量。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。
为此,本申请实施例提出一种区块链中交易执行方法,该方法适用于包括多个合约接口的智能合约,该方法具体步骤流程示意图如图2所示。
步骤201:针对待处理的N个交易中任一个交易,确定所述交易在所述智能合约中对应的合约接口;根据所合约接口的共享变量信息和所述交易的各变量信息,确定所述交易的共享变量。
所述共享变量信息用于记录所述合约接口的共享变量;所述共享变量为至少两个合约接口均具有的变量;N为大于1的整数;
步骤202:根据所述N个交易的共享变量,确定并行执行的至少两个第一交易。
所述至少两个第一交易对应不同的合约接口且所述至少两个第一交易不具有相同的共享变量;
步骤203:并行执行所述至少两个第一交易。
步骤201中,对于待处理的N个交易中任一个交易,区块链收到该交易之前,目标交易已标记了智能合约的合约地址,以及在智能合约中对应的目标合约接口。
下面详细说明共享变量信息。
“共享变量信息”是本申请提出的概念。共享变量信息是提取交易中共享变量的参考。一笔交易在执行前,可根据相应的共享变量信息提取出共享变量。本发明中,共享变量信息可以与智能合约的合约接口一一对应,一个合约接口,有一个共享变量信息。需要指出的是,本申请只对共享变量信息如何在区块链上存储,在哪个阶段使用进行说明。但不限定共享变量信息具体形式(如一个表格、一个数组)和根据共享变量信息提取交易中共享变量的方法。只要共享变量信息和交易能正确匹配,能提取出共享变量,都可以采用本申请所述的方法。本申请中可通过合约开发者在开发每个合约接口时,为接口定义共享变量信息。
共享变量信息也可以通过合约的形式存储在区块链上。当合约部署时,共享变量信息会同时被记录到区块链上。当交易执行前,会根据交易调用的合约接口,查询出合约接口的共享变量信息,再根据共享变量信息从交易中提取出共享变量。
因此,步骤201中,一种可选实施方式如下,确定所述交易在所述智能合约中对应的合约接口之后,确定所述交易的共享变量之前,按照以下方式确定交易对应的共享变量信息:
根据所述智能合约的合约地址和所述交易在所述智能合约中对应的合约接口,从共享变量合约中确定所述交易对应的共享变量信息;所述共享变量合约为记录智能合约的合约地址、合约接口及合约接口对应共享变量信息的合约。
本申请在区块链的节点中内置了一种共享变量合约,用于记录每个合约接口对应的共享变量信息。合约开发者在开发合约接口时,为每个合约接口定义了共享变量信息。当智能合约部署时,会调用共享变量合约,将共享变量信息记录到区块链上。在共享变量合约中,合约接口与共享变量信息一一对应。
共享变量模板合约也是一个智能合约,对它的操作也会被区块链进行共识。部署合约时对共享变量模板合约的操作,也会被所有节点共识,记录到区块链上,对所有的节点可见。因此,当一个智能合约被部署时,其合约接口对应的共享变量信息,也会被共识,记录到区块链上,对所有的节点可见。相当于部署到了区块链上。
下面结合图3,详细说明本申请实施例提供的一种在区块链部署共享变量合约的步骤流程示意图。
步骤301:合约开发者编写智能合约。
步骤301执行时,即编写智能合约的合约接口的同时,执行步骤302。
步骤302:编写与合约接口对应的共享变量信息。
需要说明的是,由于共享变量信息在区块链各节点达成共识后,便不可篡改,因此步骤302中共享变量信息必须保证正确,以便后续能为共享变量的提取提供参考。
步骤303:节点进行部署智能合约操作,并调用共享变量合约。
步骤304:将智能合约的合约地址、合约接口和与合约接口对应的共享变量信息作为参数,传入共享变量合约的接口。
步骤305:区块链达成共识,智能合约部署成功。与此同时,共享变量合约也部署成功,对所有的节点可见。
如图4所示,为本申请实施例提供的一种在区块链提取交易的共享变量的步骤流程示意图。
步骤401:智能合约的使用者发送交易,调用智能合约的合约接口。
步骤402:节点收到交易从交易中取出合约地址和调用的合约接口。
步骤403:节点根据合约地址和合约接口,从共享变量合约中查询出交易的共享变量信息。
步骤404:根据共享变量信息,从交易中提取出交易的共享变量。
下面以一个具体例子来说明步骤201~步骤202的过程。
待处理的N个交易为:交易1,对应合约接口1,变量为a,b,d,f,l,x;交易2,对应合约接口2,变量为c,e,k,y;交易3,对应合约接口3,变量为a,b,c,j,z;交易4,对应合约接口4,变量为b,k,q;交易5,对应合约接口5,变量为c,l,p;交易6,对应合约接口6,变量为p,q。
需要说明的是,合约接口有许多输入参数,有些为必填参数,有些为选填参数,因此交易1输入的参数并不一定是合约接口的全部输入参数。
合约接口1对应的共享变量信息1:a,b,d,f,l,m;合约接口2对应的共享变量信息2:c,e,k,n;合约接口3对应的共享变量信息3:a,b,c,j,u;合约接口4对应的共享变量信息4:b,k,o;合约接口5对应的共享变量信息5:c,l,w;合约接口6对应的共享变量信息6:p,q,r。
因此可知,交易1的共享变量1为交易1的变量中在共享变量信息1中记录的变量,即a,b,d,f,l;相应地,交易2的共享变量2为c,e,k;交易3的共享变量3为a,b,c,j;交易4的共享变量4为b,k;交易5的共享变量5为c,l;交易6的共享变量6为p,q。
可并行执行的至少两个第一交易可以为交易1、交易2和交易6。
步骤201~步骤203中,一种可选实施方式如下:
串行执行第二交易;所述第二交易为串行交易组合中任一交易;所述串行交易组合为所述N个交易中除并行执行的交易之外的交易;串行执行所述第二交易之后,若根据所述串行交易组合中尚未执行的交易的共享变量,确定存在并行执行的至少两个第三交易,则并行执行所述至少两个第三交易;所述至少两个第三交易对应不同的合约接口且所述至少两个第三交易不具有相同的共享变量。
举例来说,若第二交易为交易3,则存在并行执行的至少两个第三交易,包括交易4和交易5;若第二交易为交易4,则不存在并行执行的至少两个第三交易。
需要说明的是,可根据预定的规则选择所述第二交易,第二交易可以为所述串行交易组合中公共交易个数最多的交易;其中,公共交易为所述串行交易组合中除该交易外的所有交易中,与该交易存在共享变量的交易。上述例子中,交易3的公共交易个数为2;交易4的公共交易个数为1;交易5的公共交易个数为1。另外,如果串行交易组合中只有一个交易,则直接串行执行。
如图5所示,为本申请实施例提供的一种区块链中交易执行装置的结构示意图。
本申请提供一种区块链中的交易执行装置,适用于包括多个合约接口的智能合约;所述装置包括:确定模块501,用于针对待处理的N个交易中任一个交易,确定所述交易在所述智能合约中对应的合约接口;根据所合约接口的共享变量信息和所述交易的各变量信息,确定所述交易的共享变量;所述共享变量信息用于记录所述合约接口的共享变量;所述共享变量为至少两个合约接口均具有的变量;N为大于1的整数;处理模块502,用于根据所述N个交易的共享变量,确定并行执行的至少两个第一交易;所述至少两个第一交易对应不同的合约接口且所述至少两个第一交易不具有相同的共享变量;并行执行所述至少两个第一交易。
一种可选实施方式中,所述确定模块501还用于:根据所述智能合约的合约地址和所述交易在所述智能合约中对应的合约接口,从共享变量合约中确定所述交易对应的共享变量信息;所述共享变量合约为记录智能合约的合约地址、合约接口及合约接口对应共享变量信息的合约。
一种可选实施方式中,所述处理模块502还用于:串行执行第二交易;所述第二交易为串行交易组合中任一交易;所述串行交易组合为所述N个交易中除并行执行的交易之外的交易;串行执行所述第二交易之后,若根据所述串行交易组合中尚未执行的交易的共享变量,确定存在并行执行的至少两个第三交易,则并行执行所述至少两个第三交易;所述至少两个第三交易对应不同的合约接口且所述至少两个第三交易不具有相同的共享变量。
一种可选实施方式中,所述第二交易为所述串行交易组合中公共交易个数最多的交易;其中,公共交易为所述串行交易组合中除该交易外的所有交易中,与该交易存在共享变量的交易。
本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种区块链中的交易执行方法及任一可选方法。
本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种区块链中的交易执行方法及任一可选方法。
最后应说明的是:本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种区块链中的交易执行方法,其特征在于,适用于包括多个合约接口的智能合约;所述方法包括:
针对待处理的N个交易中任一个交易,确定所述交易在所述智能合约中对应的合约接口;根据所合约接口的共享变量信息和所述交易的各变量信息,确定所述交易的共享变量;所述共享变量信息用于记录所述合约接口的共享变量;所述共享变量为至少两个合约接口均具有的变量;N为大于1的整数;
根据所述N个交易的共享变量,确定并行执行的至少两个第一交易;所述至少两个第一交易对应不同的合约接口且所述至少两个第一交易不具有相同的共享变量;
并行执行所述至少两个第一交易。
2.如权利要求1所述的方法,其特征在于,所述确定所述交易在所述智能合约中对应的合约接口之后,所述确定所述交易的共享变量之前,还包括:
根据所述智能合约的合约地址和所述交易在所述智能合约中对应的合约接口,从共享变量合约中确定所述交易对应的共享变量信息;所述共享变量合约为记录智能合约的合约地址、合约接口及合约接口对应共享变量信息的合约。
3.如权利要求1或2所述的方法,其特征在于,还包括:
串行执行第二交易;所述第二交易为串行交易组合中任一交易;所述串行交易组合为所述N个交易中除并行执行的交易之外的交易;
串行执行所述第二交易之后,若根据所述串行交易组合中尚未执行的交易的共享变量,确定存在并行执行的至少两个第三交易,则并行执行所述至少两个第三交易;所述至少两个第三交易对应不同的合约接口且所述至少两个第三交易不具有相同的共享变量。
4.如权利要求3所述的方法,其特征在于,所述第二交易为所述串行交易组合中公共交易个数最多的交易;其中,公共交易为所述串行交易组合中除该交易外的所有交易中,与该交易存在共享变量的交易。
5.一种区块链中的交易执行装置,其特征在于,适用于包括多个合约接口的智能合约;所述装置包括:
确定模块,用于针对待处理的N个交易中任一个交易,确定所述交易在所述智能合约中对应的合约接口;根据所合约接口的共享变量信息和所述交易的各变量信息,确定所述交易的共享变量;所述共享变量信息用于记录所述合约接口的共享变量;所述共享变量为至少两个合约接口均具有的变量;N为大于1的整数;
处理模块,用于根据所述N个交易的共享变量,确定并行执行的至少两个第一交易;所述至少两个第一交易对应不同的合约接口且所述至少两个第一交易不具有相同的共享变量;并行执行所述至少两个第一交易。
6.如权利要求5所述的装置,其特征在于,所述确定模块还用于:
根据所述智能合约的合约地址和所述交易在所述智能合约中对应的合约接口,从共享变量合约中确定所述交易对应的共享变量信息;所述共享变量合约为记录智能合约的合约地址、合约接口及合约接口对应共享变量信息的合约。
7.如权利要求5或6所述的装置,其特征在于,所述处理模块还用于:
串行执行第二交易;所述第二交易为串行交易组合中任一交易;所述串行交易组合为所述N个交易中除并行执行的交易之外的交易;
串行执行所述第二交易之后,若根据所述串行交易组合中尚未执行的交易的共享变量,确定存在并行执行的至少两个第三交易,则并行执行所述至少两个第三交易;所述至少两个第三交易对应不同的合约接口且所述至少两个第三交易不具有相同的共享变量。
8.如权利要求7所述的装置,其特征在于,所述第二交易为所述串行交易组合中公共交易个数最多的交易;其中,公共交易为所述串行交易组合中除该交易外的所有交易中,与该交易存在共享变量的交易。
9.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至4中任意一项所述的方法被执行。
10.一种存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至4中任意一项所述的方法被执行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910744161.4A CN110490742B (zh) | 2019-08-13 | 2019-08-13 | 一种区块链中的交易执行方法及装置 |
PCT/CN2020/106670 WO2021027612A1 (zh) | 2019-08-13 | 2020-08-03 | 一种区块链中的交易执行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910744161.4A CN110490742B (zh) | 2019-08-13 | 2019-08-13 | 一种区块链中的交易执行方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110490742A true CN110490742A (zh) | 2019-11-22 |
CN110490742B CN110490742B (zh) | 2024-04-12 |
Family
ID=68550868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910744161.4A Active CN110490742B (zh) | 2019-08-13 | 2019-08-13 | 一种区块链中的交易执行方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110490742B (zh) |
WO (1) | WO2021027612A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021027612A1 (zh) * | 2019-08-13 | 2021-02-18 | 深圳前海微众银行股份有限公司 | 一种区块链中的交易执行方法及装置 |
WO2021164414A1 (zh) * | 2020-02-18 | 2021-08-26 | 江苏复杂美科技有限公司 | 一种交易并行执行方法、设备及存储介质 |
WO2023103351A1 (zh) * | 2021-12-06 | 2023-06-15 | 深圳前海微众银行股份有限公司 | 一种区块链中智能合约的并行冲突域确定方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107679857A (zh) * | 2017-10-10 | 2018-02-09 | 马晶瑶 | 区块链的跨链交易方法和存储介质 |
CN108537543A (zh) * | 2018-03-30 | 2018-09-14 | 百度在线网络技术(北京)有限公司 | 区块链数据的并行处理方法、装置、设备和存储介质 |
CN108681565A (zh) * | 2018-04-28 | 2018-10-19 | 百度在线网络技术(北京)有限公司 | 区块链数据并行处理方法、装置、设备和存储介质 |
CN108804306A (zh) * | 2017-04-28 | 2018-11-13 | 波音公司 | 用于自动测试系统的方法和设计 |
CN109636592A (zh) * | 2017-10-20 | 2019-04-16 | 北京航空航天大学 | 高性能智能合约设计 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190228409A1 (en) * | 2017-09-13 | 2019-07-25 | Vijay Madisetti | Transaction Pools Using Smart Contracts and Blockchains |
CN108510389B (zh) * | 2018-03-30 | 2020-12-18 | 深圳前海微众银行股份有限公司 | 基于区块链的智能合约调用方法、设备及可读存储介质 |
CN110490742B (zh) * | 2019-08-13 | 2024-04-12 | 深圳前海微众银行股份有限公司 | 一种区块链中的交易执行方法及装置 |
-
2019
- 2019-08-13 CN CN201910744161.4A patent/CN110490742B/zh active Active
-
2020
- 2020-08-03 WO PCT/CN2020/106670 patent/WO2021027612A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804306A (zh) * | 2017-04-28 | 2018-11-13 | 波音公司 | 用于自动测试系统的方法和设计 |
CN107679857A (zh) * | 2017-10-10 | 2018-02-09 | 马晶瑶 | 区块链的跨链交易方法和存储介质 |
CN109636592A (zh) * | 2017-10-20 | 2019-04-16 | 北京航空航天大学 | 高性能智能合约设计 |
CN108537543A (zh) * | 2018-03-30 | 2018-09-14 | 百度在线网络技术(北京)有限公司 | 区块链数据的并行处理方法、装置、设备和存储介质 |
CN108681565A (zh) * | 2018-04-28 | 2018-10-19 | 百度在线网络技术(北京)有限公司 | 区块链数据并行处理方法、装置、设备和存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021027612A1 (zh) * | 2019-08-13 | 2021-02-18 | 深圳前海微众银行股份有限公司 | 一种区块链中的交易执行方法及装置 |
WO2021164414A1 (zh) * | 2020-02-18 | 2021-08-26 | 江苏复杂美科技有限公司 | 一种交易并行执行方法、设备及存储介质 |
WO2023103351A1 (zh) * | 2021-12-06 | 2023-06-15 | 深圳前海微众银行股份有限公司 | 一种区块链中智能合约的并行冲突域确定方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2021027612A1 (zh) | 2021-02-18 |
CN110490742B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7387781B2 (ja) | ブロックチェーンを介して決定性有限オートマトン(dfa)を実施するシステム及び方法 | |
CN113836227B (zh) | 一种基于区块链的资产申购方法、装置及电子设备 | |
CN110706114B (zh) | 一种基于区块链的违约资产处理方法、装置及电子设备 | |
KR102431291B1 (ko) | 디지털 자산 모델링 | |
WO2020220760A1 (zh) | 基于区块链的缴费代扣方法及装置、电子设备、存储介质 | |
US20210065293A1 (en) | Distributed ledger lending | |
WO2020220761A1 (zh) | 基于区块链的缴费代扣签约方法及装置、电子设备 | |
WO2021042811A1 (zh) | 一种基于区块链的资产筛选方法、装置及电子设备 | |
CN110033377B (zh) | 基于区块链的资产清分方法及装置、电子设备 | |
CN110490742A (zh) | 一种区块链中的交易执行方法及装置 | |
Cao et al. | Flashot: a snapshot of flash loan attack on DeFi ecosystem | |
CN110020936B (zh) | 基于区块链的资产管理方法及装置、电子设备 | |
CN110020948B (zh) | 基于区块链的资产溯源方法及装置、电子设备 | |
Jurgelaitis et al. | Modelling principles for blockchain-based implementation of business or scientific processes | |
WO2021042810A1 (zh) | 基于区块链的资产清偿方法及装置、电子设备 | |
CN111383120A (zh) | 基于区块链的资产管理方法、装置及电子设备 | |
US20200286090A1 (en) | Blockchain-based reimbursement splitting | |
CN111383119A (zh) | 一种基于区块链的资产管理方法、装置及电子设备 | |
CN107590736A (zh) | 业务场景化实现方法及装置、计算机设备及可读存储介质 | |
CN111383122A (zh) | 基于区块链的资产管理方法、装置及电子设备 | |
CN109993646A (zh) | 会计分录信息确定方法及装置、账务数据记录方法及装置 | |
CN110262966A (zh) | 一种覆盖信息获取方法及装置 | |
WO2021017432A1 (zh) | 一种基于区块链的报销费用分割方法、装置及电子设备 | |
CN111383121A (zh) | 基于区块链的资产管理方法、装置及电子设备 | |
CN110533406A (zh) | 一种支付调用方法、装置及系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |