CN111126977A - 一种区块链系统的交易处理方法 - Google Patents
一种区块链系统的交易处理方法 Download PDFInfo
- Publication number
- CN111126977A CN111126977A CN201911378792.5A CN201911378792A CN111126977A CN 111126977 A CN111126977 A CN 111126977A CN 201911378792 A CN201911378792 A CN 201911378792A CN 111126977 A CN111126977 A CN 111126977A
- Authority
- CN
- China
- Prior art keywords
- transaction
- contract
- chain
- layer
- address
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 44
- 230000000977 initiatory effect Effects 0.000 claims description 32
- 238000000034 method Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 238000012546 transfer Methods 0.000 abstract description 43
- 238000010586 diagram Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 5
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- 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)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Development Economics (AREA)
- Computer Security & Cryptography (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种区块链系统的交易处理方法,所述区块链系统的交易处理方法包括底层链以及若干上层合约链,每个上层合约链对应一智能合约,并且每个上层合约链中的每个节点设备均属于底层链,且均订阅该上层合约链对应的智能合约,以执行该智能合约对应的交易。本发明通过把智能合约与底层转账交易进行分离,参与智能合约的节点设备集体维护合约相关的交易数据与合约状态数据,可以使得智能合约的执行性能适合具体应用场景。而底层链不需要执行智能合约交易不,使得底层固定大小的区块中,可以打包更多转账交易,从而也会提升底层交易链的性能。
Description
技术领域
本发明涉及区块链技术领域,特别涉及区块链系统的交易处理方法。
背景技术
区块链构建了一个分布式的数据库,这个数据库的真实性由网络中的众多节点进行维护,每个节点对每条记录都有决定权。这也就意味着网络中的每个节点(全节点)都必须存储一份完整的账本数据,而账本数据是由交易为基本单位构成,也就是说网络中的每一个节点都必须要一笔一笔执行已经确认区块中包含的每一笔交易。这种串行执行的方式使得目前区块链的性能效率低下,以比特币为例,从性能上讲,当前仅支持7笔/秒的交易吞吐量,这使得其难以承担大量交易的及时确认,显然无法满足现实生活中高并发的支付场景的需求。
为了解决上述问题,以以太坊为代表的区块链2.0技术中,实现了一种更为复杂的分布式合约记录——智能合约。智能合约是一段代码,它记录在区块链中,一旦满足了合约的触发条件(发起合约调用交易、nonce值的改变、时间的推移等),预定义的代码逻辑能够自主执行,执行后的结果被记录在链上不可更改。智能合约的出现,使得区块链技术可以应用于更加丰富的场景,完成更复杂的计算任务。然而,在以太坊的交易中,智能合约交易比普通交易消耗的计算资源更多,对数据库的读写操作更复杂,所以执行的速度慢。同时每一笔智能合约交易所有全节点都需要执行一次,每一笔发向该智能合约的交易需要所有全节点消耗计算资源去验证,严重影响到整个系统的交易执行效率。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种区块链系统的交易处理方法。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种区块链系统的交易处理方法,其中,所述区块链系统的交易处理方法包括底层链和若干上层合约链,每个上层合约链对应一智能合约;所述交易处理方法包括:
当节点设备发送的交易时,获取所述交易对应的交易信息,其中,所述交易信息包括发起地址以及接收地址;
根据所述发起地址以及所述接收地址确定所述交易对应的交易类型;
根据所述交易类型确定所述交易对应的执行链,并通过所述执行链执行所述交易,其中,所述执行链为上层合约链或底层链。
所述区块链系统的交易处理方法,其中,所述根据所述发起地址以及所述接收地址确定所述交易对应的交易类型之后包括:
根据所述交易类型确定所述交易对存储于交易列表类中,其中,所述交易列表类为交易池中的底层列表类或合约列表类。
所述区块链系统的交易处理方法,其中,所述交易类别包括底层交易以及合约层交易,所述根据所述交易类型确定所述交易对应的执行链具体包括:
当交易类型为底层交易时,所述交易对应的执行链为底层链;
当交易类型为合约层交易时,所述交易对应的执行链为上层合约链。
所述区块链系统的交易处理方法,其中,所述当交易类型为合约层交易时,所述交易对应的执行链为上层合约链具体包括:
当交易类型为合约层交易时,确定所述交易对应的智能合约;
将所述智能合约对应的上层合约链作为所述交易对用的执行链。
所述区块链系统的交易处理方法,其中,所述根据所述发起地址以及所述接收地址确定所述交易对应的交易类型之后,所述方法还包括交易转发过程,所述交易转发过程具体包括:
当交易类型为底层交易时,接收所述交易的节点设备将所述交易给转发至邻居节点;
当交易类型为合约层交易时,接收所述交易的节点设备检测其自身存储的合约表内是否包含所述交易对应的智能合约,若存在则将所述交易发送至所述智能合约对应的上层合约链,若未存在则转发至邻居节点。
所述区块链系统的交易处理方法,其中,所述若干上层合约链中每个上层合约链对应一智能合约,并且各上层合约链中任意两个上层合约链对应的智能合约不同,其中,每个上层合约链中对每个节点均订阅该上层合约链对应的智能合约。
所述区块链系统的交易处理方法,其中,所述若干上层合约链中的每个上层合约链均采用POA共识方式.
所述区块链系统的交易处理方法,其中,所述底层链采用POW共识方式。
所述区块链系统的交易处理方法,其中,每个上层合约链中数据在该上层合约链包含的各节点设备之间共识同步,所述底层链中数据在区块链系统的交易处理方法包括的各节点设备之间共识同步。
所述区块链系统的交易处理方法,其中,对于每个上层合约链,在该上层合约链出块后,该上层合约链的合约数据状态存证于所述底层链内。
有益效果:与现有技术相比,本发明提供了一种区块链系统的交易处理方法,所述方法包括当节点设备发送的交易时,获取所述交易对应的交易信息;根据所述发起地址以及所述接收地址确定所述交易对应的交易类型;根据所述交易类型确定所述交易对应的执行链,并通过所述执行链执行所述交易,其中,所述执行链为上层合约链或底层链。本发明通过把智能合约与底层转账交易进行分离,根据交易类型来确定由底层链执行该交易,还是由上层合约链执行该交易,这样使得底层链不需要执行智能合约交易,使得底层固定大小的区块中,可以打包更多转账交易,从而也会提升底层交易链的性能。
附图说明
图1为本发明提供的区块链系统的交易处理方法的结构原理图。
图2为本发明提供的区块链系统的交易处理方法中包括区块链系统的结构原理图。
图3为本发明提供的区块链系统的交易处理方法中交易池的示意图。
图4为本发明提供的区块链系统的交易处理方法中确定交易类型的流程示意图。
图5为本发明提供的区块链系统的交易处理方法中合合约订阅表的架构示意图。
图6为本发明提供的区块链系统的交易处理方法中合约订阅表实现创建、订阅以及查找的流程示意图。
图7为本发明提供的区块链系统的交易处理方法中创建合约交易的执行流程的示意图。
图8为本发明提供的区块链系统的交易处理方法中普通转账交易的执行流程的示意图。
图9为本发明提供的区块链系统的交易处理方法中不涉及转账的合约交易的执行流程的示意图。
图10为本发明提供的区块链系统的交易处理方法中涉及转账的合约交易的执行流程的示意图。
图11为本发明提供的区块链系统的交易处理方法中合约更新交易的执行流程的示意图。
具体实施方式
本发明提供一种区块链系统的交易处理方法,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语 (包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
本实施提供了一种区块链系统的交易处理方法,所述处理交易方法应用于包括有底层链以及若干上层合约链的区域链系统,其中,底层链以及若干上层合约链,若干上层合约链中的每个上层合约链均对应一个智能合约,并且每个上层合约链对应的智能合约互不相同。此外,对于每个上层合约链,该上层合约链包括的每个节点设备均属于底层链,并且订阅该上层合约链对应的智能合约,以使得该上层合约链中的每个节点设备执行该智能合约对应的交易。这样通过把智能合约与底层转账交易进行分离,参与智能合约的节点设备集体维护合约相关的交易数据与合约状态数据,可以使得智能合约的执行性能适合具体应用场景。而底层链不需要执行智能合约交易不,使得底层固定大小的区块中,可以打包更多转账交易,从而也会提升底层交易链的性能。
如图1所示,所述区块链系统的交易处理方法包括:
S10、当节点设备发送的交易时,获取所述交易对应的交易信息,其中,所述交易信息包括发起地址以及接收地址;
S20、根据所述发起地址以及所述接收地址确定所述交易对应的交易类型;
S30、根据所述交易类型确定所述交易对应的执行链,并通过所述执行链执行所述交易,其中,所述执行链为上层合约链或底层链。
具体地,在所述步骤S10中,所述交易可以为交易请求,交易包括了需要提交到区块链系统执行的操作以及对应的交易结果。并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。其中,所述交易可以为普通用户交易、智能合约交易等,所述普通交易可以包括转账、合约部署以及合约存证等,所述智能合约交易为执行该智能合约的交易。此外,所述普通交易有底层链执行,所述智能合约交易有其对应的智能合约对应的上层合约链执行。由此,若干上层合约链中每个上层合约链均布置有上层虚拟机,所述底层也布置有底层虚拟机,并且各上层合约链配置有上层虚拟机相互独立,并且均与底层链配置有底层虚拟机分离。上层合约链对应的智能合约涉及的交易在该上层合约链对应的上层虚拟机执行;普通交易由底层虚拟机执行,并且所述区块链系统中的所有节点设备均执行普通交易。可以理解的,所述区块链系统中所有节点设备均拥有底层虚拟机,而各上层合约链包括的各节点设备可以调用各上层合约链对应的上层虚拟机,也就是说,对于每个上层虚拟机,仅有该上层虚拟机对应的节点设备可以调用,以使得该上层虚拟机执行该上层合约链对应的智能合约交易,以及存储该智能合约的状态数据和合约产生的区块数据。这样通过分底层链和上层合约链执行,使得合约交易和普通交易可以并行执行,大大提高了交易的执行速度。
进一步,在本实施例的一个实现方式中,为减轻节点的存储压力,在所述区块链系统中,各上层合约链对应的智能合约的合约状态作为世界状态,并且合约状态由所有节点存储,各智能合约的合约状态数据不再是世界状态,各智能合约的合约数据存储各智能合约各自对应的上层合约链中,并且只有订阅该智能合约的节点设备存储该智能合约的合约数据,底层链链负责存证各上层合约链中每一段时间的执行结果。其中,各上层合约链由共识方式决定每一个时间段的出块节点,并由上层合约层的出块节点向底层链提交签名后的合约区块,底层链收到合约区块后对区块进行验证并执行区块中的交易,将合约区块中的交易执行结果更新到底层链上。
进一步,在本实施例的一个实现方式中,所述底层链采用POW(Prove Of Work,工作证明)共识机制,通过采用POW共识机制可以保证底层链的去中心化,从而可以保证底层链的安全性。同时,所述区块链系统的交易处理方法中的每个节点设备均属于所述底层链,并底层链中每个节点设备执行的普通交易在所述底层链中同步,即将该普通交易同步给底层链中的每个节点设备,以使得每个节点设备均存储该普通交易对应的交易数据。此外,对于若干上层合约链,各上层合约链可以采用相同的共识机制,可以采用不同的共识机制,例如,部分上层合约链采用POA(Proof of Authority,授权证明)共识机制,部分上层合约链采用POW共识机制等。在本实施例的一个可能实现方式中,如图2所示,若干上层合约链存采用相同的共识机制,该共识机制为POA共识机制。可以理解的是,若干上层合约链中的每个上层合约链均采用POA共识机制,这样只有该上层合约链的合约管理员才有权限打包区块,提高了上层合约链对交易处理的速度。
进一步,在本实施例的一个实现方式中,若干上层合约链可以包括一个上层合约链,也可以包括多个上层合约链,当若干上层合约链为多个上层合约链时,每个上层合约链对应的智能合约不同,并且每个上层合约链中数据在该上层合约链包含的各节点设备之间共识同步。可以理解的是,任意两个上层合约链对应的智能合约不相同,并多个上层合约链中的任意两个上层合约链均相同独立,只有同一上层合约链之间的节点设备才会参与该上层合约链的节点设备之间的POA共识。
进一步,在本实施例的一个实现方式中,所述区块链系统的交易处理方法中的每个节点设备均可以属于上层合约链,并且一个节点设备可以属于一个上层合约链,或者多个上层合约链。当一个节点设备属于多个上层合约链时,该节点设备可以执行其对应的各上层合约链对应的智能合约,并对于该节点设备对应的每个智能合约,该节点设备执行的该智能合约数据仅在该智能合约对应的上层合约链包含的各节点设备之间同步。此外,区块链系统的交易处理方法中每个节点设备对应的上层合约链的数量可以根据该节点设备自身的硬件条件而确定,例如,根据CPU处理能力,或者内存容量等因素确定。
进一步,在本实施例的一个实现方式中,所述交易信息包括发起地址和接收地址,其中,所述发起地址为发起所述交易的节点设备的地址,所述接收地址为用于接收该交易的节点设备的地址。其中,发起所述交易的节点设备可以是区块链系统的节点设备。可以理解的是,在获取到交易信息后,可以根据交易信息确定发起交易的节点设备地址,以及接收交易的节点设备地址。例如,在本实施例的一个实现方式中,在普通地址内可以设置有合约状态字段,这样在获取到发起地址后,可以合约状态字段来区分合约地址与普通地址。这样在获取到发起地址和接收地址后,可以通过确定发起地址中用于表示合约状态字段的预设字符来确定发起地址为普通地址,或合约地址;同样,可以通过确定接收地址中用于表示合约状态字段的预设字符来确定发起地址为普通地址,或合约地址。从而可以根据发起地址和接收地址确定所述交易对应的交易类型。
进一步,在所述步骤S20中,所述交易类型包括普通交易和合约交易,所述普通交易为涉及到底层链账户状态的交易,所述合约交易为仅涉及合约数据存储状态的交易,其中,普通交易由底层链执行,合约交易由其对应的上层合约链执行。由此,在获取到发起地址以及接收地址后,需要根据发起地址以及接收地址来确定所述交易的交易类型,以便于根据交易类型确定用于执行该交易的执行链,所述执行链可以为上层合约链,也可以为底层链。
进一步,所述交易类型可以根据发起地址的地址类型与接收地址的地址类型与交易类型的对应关系来确定,可以理解的是,在获取到发起地址和接收地址后,分别根据所述对应关系确定交易对应的交易类型。其中,发起地址的地址类型可以为合约地址或普通地址,接收地址的地址类型也可以为合约地址,或普通地址。此外,所述发起地址和接收地址与交易类型对应关系可以为:当所述发起地址的地址类型和接收地址的地址类型均为合约地址时,所述交易对应的交易类型为合约交易;当所述发起地址的地址类型或接收地址的地址类型为普通地址,所述交易对应的交易类型为普通交易。其中,所述普通交易包括创建合约交易,普通转账交易,携带转账的普通账户调用合约交易,上层合约链调用底层链交易,以及改变世界状态的普通账户调用智能合约交易;所述合约交易包括智能合约调用智能合约交易,以及不携带转账的普通账户调用合智能合约交易。
进一步,所述发起地址和接收地址与交易类型的对应关系可以为:当发起地址为普通地址,接收地址为空时,交易类型为创建合约交易;当发送地址为普通地址,接收地址为普通地址时,交易类型为普通转账交易;当发送地址为普通地址,接收地址为合约地址,交易类型为普通账户调用合约交易;当发起地址为合约地址,接收地址为空时,交易类型为上层合约链更新状态至底层链交易;当发送地址为合约地址,接收地址为普通地址时,交易类型为改变世界状态的普通账户调用智能合约交易;当发送地址为合约地址,接收地址为合约地址,交易类型为智能合约调用智能合约。其中,当交易类型为普通账户调用合约交易时,可以判定该交易是否携带转账,当不携转账时,该交易类型为合约交易;当携带转账时,该交易类型为普通交易。
在本实施例的一个实现方式中,如图4所示,采用Sender字段表示发起地址,to字段表示接收地址,Value字段来表示转账交易,其中,对于 Sender字段,若Sender字段为null,则表示发起交易的发起者的地址为普通地址,若Sender字段不为null否则表示发起交易的地址为合约地址;若To字段为null,则表示接收交易的接收者的地址为空,若To字段不为 null。从而根据交易的Sender、To以及Value字段,可以确定交易类型,其中,Sender、To以及Value字段与交易类型的对应关系可以为:
1)、Sender==null,To==null
交易类型为创建合约交易,创建合约交易由普通账户发起,该创建合约交易的发起者为智能合约的创建者,合约创建成功时更新合约订阅表,并将合约创建者的公钥记录在合约订阅表中,创建合约交易由底层链执行。
2)Sender==null,To!=null&&To字段是普通账户
交易类型为普通账户到普通账户的转账交易,转账交易由普通账户发起,并且又底层链执行。
3)Sender==null,To!=null&&To字段是合约账户
交易类型为普通账户调用合约的交易,普通账户调用合约的交易也可以分为两种:
(1)Value==0:普通账户调用合约的交易没有转账操作,所以底层链转发给上层合约链对应的上层虚拟机,以上层合约链执行而底层链不执行,只有订阅该上层合约链对应的智能合约的节点设备才会交给上层合约链执行;
(2)Value!=0:普通账户调用合约的交易涉及到转账操作,需要所有节点都执行向合约账户转账操作,然后再判断是否订阅该智能合约,没有订阅该智能合约则不执行其他操作,若订阅该智能合约则将该交易转发给上层合约链,由上层合约链执行除转账部分的其他操作。
4)Sender!=null,To!=null&&To字段是普通账户
该交易类型为发生在普通账户调用智能合约交易时,智能合约在执行过程产生了改变世界状态的操作,这些操作被上层合约链的上层虚拟机记录,并被打包在合约区块里,在合约管理者将合约区块提交到底层链时,由底层链运行转账操作。该交易类型包含在合约区块中,由合约管理者将合约区块转发到底层链上,再由底层链执行区块中包含的交易。
5)Sender!=null,To!=null&&To字段是合约账户
该交易类型为调用合约的交易,调用合约的交易存在于上层合约链,并且在执行智能合约时触发,通过上层合约链对应的智能合约调用子合约的方式实现,而不能产生新的交易,也不会出现在交易池中。
6)Sender!=null,To==null
该交易类型是合约链更新合约状态到底层链的交易,由合约管理者负责合约链出块,并将区块签名后发起一笔交易转发到底层链上更新合约链状态,由底层链执行。
进一步,在本实施例的一个实现方式中,在对交易进行分类后,可以将交易存储于交易池内。如图3所示,交易池内设置有底层列表类或合约列表类,所述合约列表类中包括若干合约列表,若干合约列表与若干上层合约链一一对应,每个上层合约链对应的的交易存储于其对应的合约列表内。其中,合约列表类用于存储涉及合约数据存储状态的交易,每一个合约对应一个交易列表,底层列表类用于存储涉及底层链账户状态的交易。由此,在所述根据所述发起地址确定所述交易对应的交易类型之后包括:
根据所述交易类型确定所述交易对存储于交易列表类中,其中,所述交易列表类为交易池中的底层列表类或合约列表类。
具体地,所述交易池中的底层列表类或合约列表类与交易类型的对应关系为:底层列表类用于存储普通交易,合约列表类用于存储合约交易。由此,当交易类型为创建合约交易,普通转账交易,携带转账的普通账户调用合约交易,上层合约链调用底层链交易,以及改变世界状态的普通账户调用智能合约交易时,所述交易存储于底层列表类中;当交易类型为不携带转账的普通账户调用合智能合约交易时,所述交易存储于合约列表类中该智能合约对应的合约列表中。此外,当交易类型为智能合约调用智能合约交易时,所述交易存在于上层合约链且在执行智能合约时触发,通过发起地址对应的智能合约调用接收地址对应的智能合约来实现,从而该智能合约调用智能合约交易类型的交易不为新的交易,从而不会出现在交易池中。
进一步,在本实施例的一个实现方式中,所述根据所述发起地址以及所述接收地址确定所述交易对应的交易类型之后,所述方法还包括交易转发过程,所述交易转发过程具体包括:
当交易类型为底层交易时,接收所述交易的节点设备将所述交易给转发至邻居节点;
当交易类型为合约层交易时,接收所述交易的节点设备检测其自身存储的合约表内是否包含所述交易对应的智能合约,若存在则将所述交易发送至所述智能合约对应的上层合约链,若未存在则转发至邻居节点。
具体地,当交易类型为合约交易时,即该交易存储与交易池中的合约列表类中,节点设备在接收与转发所述交易时,根据合约地址查询本地存储的合约表,如果合约表内存储于该合约地址对应的智能合约,则说明该节点设备订阅该智能合约,则将交易交给智能合约对应的上层合约链处理,反之,如果合约表内未存储于该合约地址对应的智能合约不是该节点订阅的合约,则说明该节点设备未订阅该智能合约,该节点设备不对交易做处理而直接转发给邻居节点。此外,当交易类型为普通交易时,即该交易存储于底层列表类中,则节点设备转发交易时转发给邻居节点。
进一步,合约表是根据区块链系统中配置的合约订阅表确定,合约表可以来确定节点设备是否订阅智能合约,其中,所述合约订阅表为配置于区块链系统的底层链中,区块链系统的每个节点设备均执行该合约订阅表,所述合约订阅表的架构可以如图5所示。所述合约订阅表可以包括用户注册智能合约、用户取消注册智能合约、用户查找智能合约、管理者创建智能合约、管理者存储智能合约、管理者同步智能合约以及管理者查找智能合约功能。所述合约订阅表显示用户和智能合约之间的对应关系,节点设备拥有的智能合约集合,通过智能合约集合可以确定节点设备能够使用的上层合约链,节点设备拥有的智能合约集合将记录节点设备本地存储。
进一步,在本实施例的一个实现方式中,如图6所示,合约订阅表实现各功能的过程可以为:
1、创建合约
合约创建成功后,发起合约创建请求的节点设备为智能份合约对应的上层合约链的管理者,合约管理者管控合约共识机制,并且在智能合约创建后,合约创建者以及订阅该智能合约均会记录到合约订阅表中。在本实施例的一个实现方式中,所述上层合约链的建立过程可以为:首先智能合约的创建终端创建智能合约,然后区块链系统中的各节点客户端订阅智能合约的方式加入该智能合约,订阅该智能合约的各节点客户端与该智能合约的创建节点设备形成上层合约链。可以理解的是,智能合约的创建节点设备作为该智能合约的第一成员以形成该智能合约对应的上层合约链,然后区块链中的各节点客户端以订阅该智能合约的方式加入该上层合约链,并与各上层合约链包括的各节点客户端进行同步,其中,所述智能合约创建节点设备包含于所述区块链系统,并且所述智能合约创建节点设备为该上层合约链的管理者,并且智能合约创建节点设备有权设置管理者。
2、订阅智能合约
节点设备需要使用一智能合约功能,节设备需要订阅该智能合约,其中,智能合约的订阅可以通过发送交易的方式来完成。可以理解的是,节点设备可以发送订阅智能合约的交易,通过订阅智能合约的交易调用合约订阅表的接口实现,其中,调用合约订阅表的接口时需要提供节点设备的地址。合约订阅的交易执行成功后节点设备本地存储的合约表中加入该智能合约,同时,节点设备与智能合约管理者获取智能合约状态,以同步智能合约最新状态。
3、智能合约取消订阅的流程与智能合约订阅相同,通过发送交易调用合约订阅表的接口实现的,并且在取消订阅成功后,节点设备将该智能合约从本地存储的合约表中移除,以使得节点设备脱离智能合约对应的上层合约链,不接收和同步上层合约链的合约数据。
4、查找智能合约
节点查找本地存储的合约表,其中,节点设备查找本地存储的合约表,不涉及智能合约状态的更改,由此查找智能合约在节点设备本地直接运行。
5、合约订阅表的存储于维护
合约订阅表是一张全局的表,存储在区块链系统的底层数据库,需要区块链系统内所有的节点共同维护。
6、合约订阅表同步
合约订阅表的同步包括初始同步和正常同步,其中,初始同步指的是节点设备第一次订阅合约时,去向智能合约的管理者请求合约状态和区块的过程;正常同步为上层合约链中的节点设备按相同的顺序执行合约调用交易,以同步智能合约状态。
7、合约订阅表的初始化过程
1)将合约订阅表内置在区块链中,即在区块链系统初始化后将合约订阅表部署在区块链系统上;
2)合约订阅表的合约账户地址默认为0x00;
3)调用底层虚拟机的Create接口(创建接口)进行部署。
进一步,将根据智能合约建立上层合约链后,交易的数据结构需要添加两个新的字段:
1.Sender字段:用于支持上层合约链的执行与合约状态更新,通过该字段可以确定交易的发起地址为普通地址或合约地址。
2.BlockHeight字段:用于记录调用合约交易所在的最新区块高度。
底层交易数据结构:
合约订阅表的数据结构为:
S30、根据所述交易类型确定所述交易对应的执行链,并通过所述执行链执行所述交易,其中,所述执行链为上层合约链或底层链。
具体地,所述执行链可以为底层链,或者若干上层合约链中一个上层合约链。其中,所述底层链用于执行底层交易,所述上层合约链用于执行上层交易,并且各上层合约链仅执行其对应的智能合约的合约交易。由此,在确定交易类型后,可以根据底层链与上层合约链的用途确定用于执行该交易的执行链。在本实施例的一个可能实现方式中,所述交易类别包括底层交易以及合约层交易,所述根据所述交易类型确定所述交易对应的执行链具体包括:当交易类型为底层交易时,所述交易对应的执行链为底层链;当交易类型为合约层交易时,所述交易对应的执行链为上层合约链。
进一步,由于区块链系统可以包括多个上层合约链,从而当交易类型为合约交易时,可以再确定各交易对应的智能合约,根据该智能合约确定其对应的上层合约链。相应的,当交易类型为合约层交易时,所述交易对应的执行链为上层合约链具体包括:当交易类型为合约层交易时,确定所述交易对应的智能合约;将所述智能合约对应的上层合约链作为所述交易对用的执行链。其中,所述确定所述交易对应的智能合约可以根据交易信息中的合约地址来确定交易对应的智能合约,之后根据智能合约确定该交易对应的上层合约链,可以理解的是,接收到该交易的节点,可以根据交易信息中的合约地址来确定交易对应的智能合约,再根据其本地存储的合约表确定其是否订阅该智能合约,若订阅该智能合约,则将交易发送至该智能合约对应的上层合约链,并在上层合约链内共识,若未订阅该智能合约,则将该交易转发至邻居节点。
进一步,在确定交易的执行链后,对于不同交易类型的交易其对应的执行过程不同。其中,如图7所示,创建合约交易的执行流程可以为:节点设备收到创建合约交易,将创建合约交易加入本地交易池的底层列表类 MainChain TX中,在区块打包时被底层虚拟机执行,如果执行成功,执行结果将以下三个参数返回,并作为修改合约订阅表的输入参数,更新合约订阅表的内容,其中,三个参数分别为:合约执行后产生的合约地址 (contractaddress)、调用合约应该支付的手续费用(gas)以及合约创建者的公钥(pubkey)。此外,如图8所示,所述普通转账交易执行流程可以为:由底层链矿工验证、打包并在底层虚拟机中执行,将账户状态改变应用到底层缓存中。
进一步,合约调用交易的执行流程可以为:合约中有一个BlockHeight 字段,用于记录调用合约交易发生时,底层链上最新的区块高度,这样可以保证在执行合约过程对底层数据查询时的数据可用性。其中,发起合约交易时,BlockHeight记录此时最新区块的高度(最新被确认的区块),合约交易达到上层合约链时,更新合约存储中的BlockHeight字段,当合约执行过程中需要查询底层链存储状态时,按照BlockHeight记录的最新区块查询。
进一步,如图9所示,当交易的value字段为0时,交易不涉及到向合约转账操作,该交易从交易池转发到对应的上层合约链上执行,更新合约的BlockHeight,执行的状态改变存储在合约storage tree中,如果合约代码中涉及到改变世界状态(账户的balance)的操作,需要记录到 dirtyBalance生成对应的交易,填写每笔交易的字段并包含到上层合约链的区块中,由合约管理者(owner)对交易签名后打包成区块提交到底层链上的交易池中,再由底层链的底层虚拟机执行并打包dirtyBalance中。
进一步,如图10所示,当value字段不为0时,合约交易涉及到转账操作,交易执行的过程可以包括:
a)该交易先由底层链执行,在转账操作执行成功之后(被矿工打包进区块),并且在交易执行成功后修改交易中的BlockHeight值为该区块所在的高度。在转账操作执行成功后,如果节点设备订阅该智能合约,则该交易被转发到上层合约链执行合约代码,其中,上层合约链调用其对应的上层虚拟机执行合约,将状态改变更新到合约的storage state中。
在该交易被转发到上层合约链执行合约代码的过程,若合约执行涉及到改变世界状态(账户balance),也就是合约账户转出balance到其他账户,则需要将这笔转出的操作构建成一笔{from:合约地址,to:目标地址} 的交易。如果在一个区块中存在多笔转向同一个目标地址的交易,则对这些交易汇总成一笔交易,由合约管理者(owner)对交易签名,并将区块提交到底层链交易池中,等待被底层链执行打包。底层链的底层虚拟机执行区块中的交易,将合约中的交易更新到底层链。
b)如果节点设备未订阅该合约,则执行完转账操作后,将该交易转发给邻居节点,不将交易发给上层合约链。
进一步,合约更新交易的是合约链将合约内部状态记录到底层链上的一种交易,如图11所示,合约更新交易的执行流程可以为:
1)上层合约链每隔一段时间会出一个区块(packet),由合约管理员负责对区块以及区块中的合约交易签名,并计算出区块(packet)的哈希hash值。
2)合约管理员(owner)将区块提交到底层链交易池,底层链打包到提交的区块会验证合约管理员的签名是否正确。
3)验证通过则将区块的哈希hash值更新到合约账户的storage root 中,同时验证并执行区块中的上层区块链,将合约中的balance转出交易记录在底层链上。
综上,本实施例提供了一种区块链系统的交易处理方法,所述方法包括当节点设备发送的交易时,获取所述交易对应的交易信息;根据所述发起地址以及所述接收地址确定所述交易对应的交易类型;根据所述交易类型确定所述交易对应的执行链,并通过所述执行链执行所述交易,其中,所述执行链为上层合约链或底层链。本发明通过把智能合约与底层转账交易进行分离,根据交易类型来确定由底层链执行该交易,还是由上层合约链执行该交易,这样使得底层链不需要执行智能合约交易,使得底层固定大小的区块中,可以打包更多转账交易,从而也会提升底层交易链的性能。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种区块链系统的交易处理方法,其特征在于,所述区块链系统的交易处理方法包括底层链和若干上层合约链,每个上层合约链对应一智能合约;所述交易处理方法包括:
当节点设备发送的交易时,获取所述交易对应的交易信息,其中,所述交易信息包括发起地址以及接收地址;
根据所述发起地址以及所述接收地址确定所述交易对应的交易类型;
根据所述交易类型确定所述交易对应的执行链,并通过所述执行链执行所述交易,其中,所述执行链为上层合约链或底层链。
2.根据权利要求1所述区块链系统的交易处理方法,其特征在于,所述根据所述发起地址以及所述接收地址确定所述交易对应的交易类型之后包括:
根据所述交易类型确定所述交易对存储于交易列表类中,其中,所述交易列表类为交易池中的底层列表类或合约列表类。
3.根据权利要求1所述区块链系统的交易处理方法,其特征在于,所述交易类别包括底层交易以及合约层交易,所述根据所述交易类型确定所述交易对应的执行链具体包括:
当交易类型为底层交易时,所述交易对应的执行链为底层链;
当交易类型为合约层交易时,所述交易对应的执行链为上层合约链。
4.根据权利要求3所述区块链系统的交易处理方法,其特征在于,所述当交易类型为合约层交易时,所述交易对应的执行链为上层合约链具体包括:
当交易类型为合约层交易时,确定所述交易对应的智能合约;
将所述智能合约对应的上层合约链作为所述交易对用的执行链。
5.根据权利要求3所述区块链系统的交易处理方法,其特征在于,所述根据所述发起地址以及所述接收地址确定所述交易对应的交易类型之后,所述方法还包括交易转发过程,所述交易转发过程具体包括:
当交易类型为底层交易时,接收所述交易的节点设备将所述交易给转发至邻居节点;
当交易类型为合约层交易时,接收所述交易的节点设备检测其自身存储的合约列表内是否包含所述交易对应的智能合约,若存在则将所述交易发送至所述智能合约对应的上层合约链,若未存在则转发至邻居节点。
6.根据权利要求1所述区块链系统的交易处理方法,其特征在于,所述若干上层合约链中每个上层合约链对应一智能合约,并且各上层合约链中任意两个上层合约链对应的智能合约不同,其中,每个上层合约链中对每个节点均订阅该上层合约链对应的智能合约。
7.根据权利要求1所述区块链系统的交易处理方法,其特征在于,所述若干上层合约链中的每个上层合约链均采用POA共识方式。
8.根据权利要求1所述区块链系统的交易处理方法,其特征在于,所述底层链采用POW共识方式。
9.根据权利要求1所述区块链系统的交易处理方法,其特征在于,每个上层合约链中数据在该上层合约链包含的各节点设备之间共识同步,所述底层链中数据在区块链系统的交易处理方法包括的各节点设备之间共识同步。
10.根据权利要求1所述区块链系统的交易处理方法,其特征在于,对于每个上层合约链,在该上层合约链出块后,该上层合约链的合约数据状态存证于所述底层链内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911378792.5A CN111126977A (zh) | 2019-12-27 | 2019-12-27 | 一种区块链系统的交易处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911378792.5A CN111126977A (zh) | 2019-12-27 | 2019-12-27 | 一种区块链系统的交易处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111126977A true CN111126977A (zh) | 2020-05-08 |
Family
ID=70504203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911378792.5A Pending CN111126977A (zh) | 2019-12-27 | 2019-12-27 | 一种区块链系统的交易处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111126977A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111709748A (zh) * | 2020-06-11 | 2020-09-25 | 杭州溪塔科技有限公司 | 一种具有业务属性的交易执行方法、装置及电子设备 |
CN112671878A (zh) * | 2020-12-17 | 2021-04-16 | 杭州趣链科技有限公司 | 一种区块链的信息订阅方法、装置、服务器和存储介质 |
CN112819634A (zh) * | 2021-02-25 | 2021-05-18 | 成都质数斯达克科技有限公司 | 交易处理方法、装置、电子设备及可读存储介质 |
CN114866478A (zh) * | 2022-04-26 | 2022-08-05 | 深圳大学 | 一种1.5层区块链及其操作方法、设备和可读存储介质 |
CN117350724A (zh) * | 2023-12-04 | 2024-01-05 | 安徽中科晶格技术有限公司 | 基于账户链的智能合约运行方法、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881274A (zh) * | 2018-07-06 | 2018-11-23 | 众安信息技术服务有限公司 | 一种基于应用的区块链分片方法及装置 |
CN109461076A (zh) * | 2018-10-09 | 2019-03-12 | 哈希(武汉)网络科技有限公司 | 一种区块链交易方法 |
CN109829718A (zh) * | 2019-01-30 | 2019-05-31 | 缀初网络技术(上海)有限公司 | 一种基于存储应用场景的区块链多层级构架及其运行方法 |
-
2019
- 2019-12-27 CN CN201911378792.5A patent/CN111126977A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881274A (zh) * | 2018-07-06 | 2018-11-23 | 众安信息技术服务有限公司 | 一种基于应用的区块链分片方法及装置 |
CN109461076A (zh) * | 2018-10-09 | 2019-03-12 | 哈希(武汉)网络科技有限公司 | 一种区块链交易方法 |
CN109829718A (zh) * | 2019-01-30 | 2019-05-31 | 缀初网络技术(上海)有限公司 | 一种基于存储应用场景的区块链多层级构架及其运行方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111709748A (zh) * | 2020-06-11 | 2020-09-25 | 杭州溪塔科技有限公司 | 一种具有业务属性的交易执行方法、装置及电子设备 |
CN111709748B (zh) * | 2020-06-11 | 2023-08-22 | 杭州溪塔科技有限公司 | 一种具有业务属性的交易执行方法、装置及电子设备 |
CN112671878A (zh) * | 2020-12-17 | 2021-04-16 | 杭州趣链科技有限公司 | 一种区块链的信息订阅方法、装置、服务器和存储介质 |
CN112819634A (zh) * | 2021-02-25 | 2021-05-18 | 成都质数斯达克科技有限公司 | 交易处理方法、装置、电子设备及可读存储介质 |
CN112819634B (zh) * | 2021-02-25 | 2023-06-02 | 成都质数斯达克科技有限公司 | 交易处理方法、装置、电子设备及可读存储介质 |
CN114866478A (zh) * | 2022-04-26 | 2022-08-05 | 深圳大学 | 一种1.5层区块链及其操作方法、设备和可读存储介质 |
CN114866478B (zh) * | 2022-04-26 | 2024-01-05 | 深圳大学 | 一种1.5层区块链及其操作方法、设备和可读存储介质 |
CN117350724A (zh) * | 2023-12-04 | 2024-01-05 | 安徽中科晶格技术有限公司 | 基于账户链的智能合约运行方法、设备及存储介质 |
CN117350724B (zh) * | 2023-12-04 | 2024-03-15 | 安徽中科晶格技术有限公司 | 基于账户链的智能合约运行方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111126977A (zh) | 一种区块链系统的交易处理方法 | |
TWI690184B (zh) | 跨區塊鏈的認證方法及裝置、電子設備 | |
TWI710979B (zh) | 跨區塊鏈的互動方法及裝置、系統、電子設備 | |
TWI759563B (zh) | 資產管理方法及裝置、電子設備 | |
WO2021109735A1 (zh) | 一种基于跨链网络的资源处理方法及装置 | |
US11356282B2 (en) | Sending cross-chain authenticatable messages | |
TW201935383A (zh) | 資產管理方法及裝置、電子設備 | |
CN103442049B (zh) | 一种面向构件的混合型云操作系统体系结构及其通信方法 | |
TW201935375A (zh) | 資產管理方法及裝置、電子設備 | |
CN110069346A (zh) | 多进程间资源共享方法、装置、电子设备 | |
Wang et al. | Towards network-aware service composition in the cloud | |
CN104272259B (zh) | 用于在事务中间件机器环境中支持基于版本的路由的系统和方法 | |
EP3138003B1 (en) | System and method for supporting a bypass-domain model and a proxy model and updating service information for across-domain messaging in a transactional middleware machine environment | |
US20210143980A1 (en) | BLOCKCHAIN PLATFORM AS A SERVICE (BPaaS) | |
WO2020258847A1 (zh) | 基于处理模块跨链发送可认证消息的方法和装置 | |
US9830333B1 (en) | Deterministic data replication with conflict resolution | |
CN102624926B (zh) | 能力聚合开放的方法和系统 | |
CN113409047B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
WO2023040502A1 (zh) | 用户服务注册 | |
CN110113406B (zh) | 基于分布式的计算服务集群系统 | |
CN113067897B (zh) | 跨链交互方法及装置 | |
CN110391994A (zh) | 网络流量转发方法、装置、电子设备 | |
WO2023040498A1 (zh) | 用户服务使用 | |
WO2022206438A1 (zh) | 提供跨链消息的方法和装置 | |
CN103827830B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200508 |