CN113709122B - 一种联盟链的业务校验方法及联盟链*** - Google Patents

一种联盟链的业务校验方法及联盟链*** Download PDF

Info

Publication number
CN113709122B
CN113709122B CN202110937418.5A CN202110937418A CN113709122B CN 113709122 B CN113709122 B CN 113709122B CN 202110937418 A CN202110937418 A CN 202110937418A CN 113709122 B CN113709122 B CN 113709122B
Authority
CN
China
Prior art keywords
consensus
transaction
verification
node
proposal
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.)
Active
Application number
CN202110937418.5A
Other languages
English (en)
Other versions
CN113709122A (zh
Inventor
陈盛龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202110937418.5A priority Critical patent/CN113709122B/zh
Publication of CN113709122A publication Critical patent/CN113709122A/zh
Application granted granted Critical
Publication of CN113709122B publication Critical patent/CN113709122B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Accounting & Taxation (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Power Engineering (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)
  • Hardware Redundancy (AREA)

Abstract

本说明书实施例提供一种联盟链的业务校验方法及联盟链***。其中,业务校验方法包括:联盟链的共识主节点对自身交易池中的交易进行业务校验,其中,联盟链中的各共识节点对客户端发起的交易进行账户合法性校验,并将通过账户合法性校验的交易同步至各自的交易池中。联盟链的共识主节点对通过自身业务校验的交易发起共识提议,其中,所述共识提议包含至少一个通过共识主节点业务校验的交易,联盟链中至少两个共识节点具有不同的业务校验规则。联盟链的共识备份节点在共识过程中,基于自身的业务校验规则,对所述共识提议的至少一个交易进行业务校验,并对通过自身业务校验的交易执行共识逻辑。

Description

一种联盟链的业务校验方法及联盟链***
本文件是“一种联盟链的业务校验方法及联盟链***”的分案申请,母案的申请号为“201910906948.6”,申请日为“2019-09-24”。
技术领域
本文件涉及信息技术领域,尤其涉及一种联盟链的业务校验方法及联盟链***。
背景技术
联盟链是一种应用于机构间的区块链,其各个节点通常有与之对应的实体机构,如银行、保险、证券、商业协会等。这些机构组成利益相关的联盟,来共同维护区块链的运转。现有技术中,联盟链的各个节点会在业务层面上对客户端发起的交易进行校验,以验证交易的合法性。一般情况下,节点之间不会共享自己的业务校验规则,因此同一交易在不同节点可能对应有不同的业务校验结果。此外,客户端发起的交易需要达成联盟链中各个共识节点(负责执行共识的节点)的共识后才能进行上链。这个共识的过程与上述业务校验的过程是独立进行的,因此导致了一系列不协同的问题发生。比如,联盟链的共识主节点在共识备份节点对交易进行业务校验前发起了共识提议,如果共识备份节点在共识达成前未来得及进行业务校验,则可能导致业务逻辑上不合法的交易被上传至联盟链中。再比如,共识备份节点在共识主节点发起共识提议前已经完成对交易的业务校验,如果这个交易通过了共识主节点的业务校验,但在共识备份节点上未通过,则共识主节点还是会发起该交易的共识提议,导致共识备份节点在共识阶段对这个交易执行共识逻辑,并二次拒绝,造成不必要的资源浪费。
有鉴于此,如何协调联盟链的共识过程和业务校验过程,是当前亟待解决的技术问题。
发明内容
本说明书实施例目的是提供一种联盟链的业务校验方法、装置及电子设备,能够协调联盟链的共识过程和业务校验过程。一方面,防止业务逻辑不合法的交易被上传至联盟链;另一方面,避免共识备份节点消耗不必要的资源对未通过自身业务校验的交易执行共识逻辑。
为了实现上述目的,本说明书实施例是这样实现的:
第一方面,提供一种联盟链的业务校验方法,包括:
联盟链的共识主节点对自身交易池中的交易进行业务校验,其中,联盟链中的各共识节点对客户端发起的交易进行账户合法性校验,并将通过账户合法性校验的交易同步至各自的交易池中;
联盟链的共识主节点对通过自身业务校验的交易发起共识提议,其中,所述共识提议包含至少一个通过共识主节点业务校验的交易,联盟链中至少两个共识节点具有不同的业务校验规则;
联盟链的共识备份节点在共识过程中,基于自身的业务校验规则,对所述共识提议的至少一个交易进行业务校验,并对通过自身业务校验的交易执行共识逻辑。
第二方面,提供一种联盟链***,包括:多个共识节点;其中,
所述多个共识节点中的共识主节点对自身交易池中的交易进行业务校验,并对通过自身业务校验的交易发起共识提议,其中,各共识节点对客户端发起的交易进行账户合法性校验,并将通过账户合法性校验的交易同步至各自的交易池中,所述多个共识节点中,至少两个共识节点具有不同的业务校验规则;
所述多个共识节点中的共识备份节点基于自身的业务校验规则,对所述共识提议的至少一个交易进行业务校验,并对通过自身业务校验的交易执行共识逻辑。
本说明书实施例的方案中,联盟链的共识主节点发起交易的共识提议后,共识备份节点在共识阶段基于自身的业务校验规则对该交易进行业务校验,并在交易通过业务校验后再进一步执行共识逻辑。一方面,可以确保共识备份节点在交易达成共识前完成业务校验,防止业务逻辑不合法的交易达成共识后被上传至联盟链中;另一方面,共识备份节点不需要再浪费资源对未通过自身业务校验的交易执行共识逻辑,从而有效减少联盟链的共识开销。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的联盟链的业务校验方法的第一种流程示意图。
图2为创建智能合约和调用智能合约的示意图。
图3为本说明书实施例提供的业务校验方法的第二种流程示意图。
图4为本说明书实施例提供的业务校验方法的第三种流程示意图。
图5为本说明书实施例提供的联盟链***的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
如前所述,在现有的联盟链中,交易的共识过程和业务校验过程是分开执行的,因此导致了一系列不协同的问题发生。比如,联盟链的共识主节点在共识备份节点对交易进行业务校验前发起了共识提议,如果共识备份节点在共识达成前未来得及进行业务校验,则可能导致业务逻辑不合法的交易被上传至联盟链中。再比如,共识备份节点在共识主节点发起共识提议前已经完成对交易的业务校验,如果这个交易在共识主节点上通过业务校验,但在共识备份节点上未通过,则共识主节点还是会发起该交易的共识提议,导致共识备份节点在共识阶段依然会对这个交易执行共识逻辑,并二次拒绝,造成不必要的资源浪费。
针对这一问题,本说明书旨在提供一种可以协调联盟链的共识过程和业务校验过程的技术方案。一方面,防止业务逻辑不合法的交易被上传至联盟链;另一方面,避免共识备份节点消耗不必要的资源对未通过自身业务校验的交易执行共识逻辑。
图1是本说明书实施例联盟链的业务校验方法的流程图。图1所示的方法可以由下文相对应的装置执行,包括:
步骤S102,联盟链的共识主节点对自身交易池中的交易进行业务校验,其中,联盟链中的各共识节点对客户端发起的交易进行账户合法性校验,并将通过账户合法性校验的交易同步至各自的交易池中。
具体地,联盟链的客户端会连接中的一个节点,并通过这个节点发起交易请求。之后,这个节点将交易请求转发给其他节点,以对交易请求中的交易进行同步。在同步过程中,各共识节点需要对交易请求中的交易进行账户合法性校验,比如对交易请求中的网络签名信息、账户信息等固定内容项进行校验。由于固定内容的校验不会呈现多样性的校验结果,因此一般情况下,客户端发起的交易请求中的交易如果通过某一节点的账户合法性校验,则表示这个交易最终也会同步至其他节点的交易池中。
在本说明书实施例的方法中,共识主节点只对共识主节点的交易池中的交易发起共识提议。这就意味着,共识备份节点能够从共识备份节点的交易池中,调取到待共识的交易的信息,从而保证共识过程能够正确执行。
应理解,这里所述的账户合法性校验不同于业务校验。业务校验顾名思义,就是对交易进行业务层面上的校验,比如:对交易的风险校验和/或数据格式校验等。
步骤S104,共识主节点对通过自身业务校验的交易发起共识提议,其中,共识提议包含至少一个通过共识主节点业务校验的交易,联盟链中至少两个共识节点具有不同的业务校验规则。
应理解,本步骤中,共识主节点只对自身业务层面上认可的交易发起共识提议。
其中,业务校验规则是机构的机密内容。一帮情况下,各共识节点之间不会进行共享。因此,不同的共识节点可能会对应有不同的业务校验规则。也就是说,同一交易即便通过共识主节点的业务校验,并不能表示也能够通过共识备份节点的业务校验。
步骤S106,联盟链的共识备份节点在共识过程中,基于自身的业务校验规则,对共识提议的至少一个交易进行业务校验,并对通过自身业务校验的交易执行共识逻辑。
为了避免共识主节点作恶的情况发生,共识备份节点也需要基于自身业务校验规则对共识提议中的交易进行校验。
其中,如果共识提议的目标交易未能通过共识备份节点的业务校验,则共识备份节点不执行针对该目标交易的共识逻辑,或者,直接将共识提议中的所有交易全部打回。
基于图1所示的业务校验方法可以知道:本说明书实施例的方案中,联盟链的共识主节点发起交易的共识提议后,共识备份节点在共识阶段基于自身的业务校验规则对该交易进行业务校验,并在交易通过业务校验后再进一步执行共识逻辑。一方面,可以确保共识备份节点在交易达成共识前完成业务校验,防止业务逻辑不合法的交易达成共识后被上传至联盟链中;另一方面,共识备份节点不需要再浪费资源对未通过自身业务校验的交易执行共识逻辑,从而有效减少联盟链的共识开销。
在上述基础之上,共识备份节点可以将交易池中未通过自身业务校验的交易直接移除,以避免在后续共识轮次中,花费不必要的开销,对之前未通过自身业务校验的交易再次进行业务校验。或者,共识备份节点也可以对自身交易池中未通过自身业务校验的交易进行标记,以便后续的共识阶段只对自身交易池中未标记的交易执行业务校验。
此外,现有的一部分联盟链的共识规则要求是共识提议中只要有交易未通过共识节点的业务校验,则该共识提议包含的所有交易在共识阶段需要被全部打回。针对这类联盟链,为了保证同一共识轮次中业务层面上合法的交易不受到非法交易的影响而导致无法上链,在共识提议被驳回后,共识主节点可以根据共识备份节点的共识提议反馈,重新发起共识提议。应理解,重新发起的共识提议不包含未通过共识备份节点的业务校验的交易,从而保证本次重新发起的共识提议能够将上次共识提议被打回的在业务层面上合法的交易上传至联盟链中。
进一步地,本说明书实施例的方法可以通过智能合约来控制共识备份节点执行业务校验。智能合约是一种计算机协议,当一个预先编好的条件被触发时,智能合约执行相应的合同条款。
在实际应用中,可以预先在联盟链中部署指定智能合约,指定智能合约用于指示共识备份节点在共识过程中的指定阶段,对共识提议的交易进行业务校验。其中,共识主节点可以将调用该指定智能合约的请求通过共识提议发送给共识备份节点,从而使共识备份节点按照智能合约,在共识过程中的指定阶段完成业务校验。
图2为创建智能合约和调用智能合约的示意图。其中,联盟链要创建一个智能合约需要经过编写智能合约、变成字节码、部署到联盟链等过程。智能合约创建后,会拥有一个特定的地址,共识备份节点基于这个地址即可进行调用。
应理解,在共识过程中的哪个阶段执行业务校验需要根据联盟链所采用的共识机制来进行灵活设置。目前主流的共识机制包括:工作量证明(POW,ProofofWork)、股权证明(POS,Proof of Stake)、委任权益证明(DPOS,Delegated Proof of Stake)、实用拜占庭容错(PBFT,Practical Byzantine Fault Tolerance)算法等。
下面PBFT算法的共识提议为例,对本说明书实施例的方法在共识过程中执行业务校验的实现方式进行示例介绍。
实现方式一:
在实现方式一中,指定智能合约要求共识备份节点在共识过程中的预准备pre-prepare阶段执行业务校验,业务校验方法对应的流程包括:
步骤S201,联盟链的Client(客户端)发起交易。
步骤S202,联盟链的每个replica节点(副本,也称为copy,构建分布式***的节点,包含共识主节点和共识备份节点)针对Client发起的交易进行账户合法性校验,并将通过账户合法性校验的交易同步至各自的交易池中。
步骤S203,联盟链的共识主节点对通过自身业务校验的交易发起PBFT算法的共识提议。
其中,共识过程如图3所示(图3中的共识备份节点数量仅用于示例),包括:
pre-prepare阶段:
共识主节点收到来自Client的一个请求,并分配一个编号给这个请求,然后共识主节点会广播一条pre-prepare消息给共识备份节点,这个pre-prepare消息包含该请求的编号、所在的视图(view)和共识主节点的摘要(digest),同时还有调用指定智能合约的请求,这个请求指示智能合约的地址。
每一个共识备份节点在接收到pre-prepare消息后,确定同不同意共识主节点分配给该请求的这个编号n,即,确认是否接受这条pre-prepare消息。
各共识备份节点如果接受了这条pre-prepare消息,调用指定智能合约,按照指定智能合约的逻辑,基于自身的业务校验规则,对请求中的所有交易进行业务校验。若业务校验通过,则进入prepare阶段。若有交易未通过业务校验,则不执行针对该交易请求的共识逻辑,甚至直接打回对本次共识提议。
prepare阶段:
所有参与共识的共识备份节点中的每一个在接收到pre-prepare消息后,检查pre-prepare消息是否合法。如果pre-prepare消息合法,那么该请求在replica上的状态被确定为prepared,共识备份节点将该pre-prepare消息添加到本地Log中,并发送prepare消息给其他参与共识的共识备份节点。
commit阶段:
所有replica节点中的每一个在进入prepared状态后,发送commit消息给其他replica节点,并将自己发送的commit消息添加到本地Log中(代表自己的认可)。当一个replica节点发现有一个quorum(quorum是为了能够确保所有replica数据一致性要求和容错要求需要的一定数量replica的集合)同意编号分配时,它就会广播一条commit消息给其它所有节点。与此同时也会陆续收到来自其他节点的commit消息,如果每个节点收到了2f+1(f是联盟链中作恶节点的数量)条commit消息(包括自身的一条,这些来自不同节点的commit携带相同的编号n和view v),就说名该replica节点拥有了一个名为committedcertificate的证书,请求在这个replica节点上达到了committed状态。此时只通过这一个replica节点,就能断定该请求已经在一个quorum中到达了prepared状态,即同一个quorum的所有replica节点都同意了编号n的分配。当Client发起的请求到达commited状态后,说明已经达成全网共识。
实现方式二:
在实现方式二中,指定智能合约要求共识备份节点在共识过程中的预准备prepare阶段执行业务校验,业务校验方法对应的流程包括:
步骤S301,联盟链的Client发起交易。
步骤S302,联盟链的每个replica节点针对Client发起的交易进行账户合法性校验,并将通过账户合法性校验的交易同步至各自的交易池中。
步骤S303,联盟链的共识主节点对通过自身业务校验的交易发起基于拜占庭容错算法的共识提议。
其中,共识过程如图4所示(图4中的共识备份节点数量仅用于示例),包括:
pre-prepare阶段:
共识主节点收到来自Client的一个请求,并分配一个编号给这个请求,然后共识主节点会广播一条pre-prepare消息给共识备份节点,这个pre-prepare消息包含该请求的编号、所在的视图(view)和共识主节点的摘要(digest)。
每一个共识备份节点在接收到pre-prepare消息后,确定同不同意共识主节点分配给该交易请求的这个编号n,即,确认是否接受这条pre-prepare消息。各共识备份节点如果接受了这条pre-prepare消息,则进入prepare阶段。
prepare阶段:
所有参与共识的共识备份节点中的每一个在接收到pre-prepare消息后,调用预先在联盟链部署的指定智能合约,按照指定智能合约的逻辑,基于自身的业务校验规则,对共识提议的至少一个交易进行业务校验。
若有交易未通过业务校验,则不执行针对该交易的共识逻辑,甚至直接打回对本次共识提议。
若业务校验通过,再检查pre-prepare消息是否合法。如果pre-prepare消息合法,那么该请求在replica上的状态被确定为prepared,共识备份节点将该pre-prepare消息添加到本地Log中,并发送prepare消息给其他共识备份节点。
commit阶段:
所有replica节点中的每一个在进入prepared状态后,发送commit消息给其他replica节点,并将自己发送的commit消息添加到本地Log中。当一个replica节点发现有一个quorum同意编号分配时,它就会广播一条commit消息给其它所有节点。与此同时也会陆续收到来自其他节点的commit消息,如果每个节点收到了2f+1条commit消息,就说名该replica节点拥有了一个名为committed certificate的证书,请求在这个replica节点上达到了committed状态。此时只通过这一个replica节点,就能断定该请求已经在一个quorum中到达了prepared状态,即同一个quorum的所有replica节点都同意了编号n的分配。当Client发起的请求到达commited状态后,说明已经达成全网共识。
显然,通过上述实现方式一和实现方式二可以知道,在传统的PBFT算法的共识过程中,共识备份节点在pre-prepare阶段开始执行共识逻辑,即共识备份节点在pre-prepare阶段检查共识主节点发送的pre-prepare消息是否合法。因此,共识备份节点业务校验的步骤可以在检查pre-prepare消息之前执行,一旦交易未能通过共识备份节点的业务校验,则拒绝执行后续的共识逻辑,从而避免造成不必要的资源开销。
以上是对本说明书实施例的方法的介绍。应理解,在不脱离本文上述原理基础之上,还可以进行适当的变化,这些变化也应视为本说明书实施例的保护范围。
与上述方法相对应地,如图5所示,本说明书实施例还提供一种联盟链***500,包括:多个共识节点;其中,
所述多个共识节点中的共识主节点510,对自身交易池中的交易进行业务校验,并对通过自身业务校验的交易发起共识提议,其中,各共识节点对客户端发起的交易进行账户合法性校验,并将通过账户合法性校验的交易同步至各自的交易池中,所述多个共识节点中,至少两个共识节点具有不同的业务校验规则;
所述多个共识节点中的共识备份节点520,基于自身的业务校验规则,对所述共识提议的至少一个交易进行业务校验,并对通过自身业务校验的交易执行共识逻辑。
基于图5所示的联盟链***可以知道:本说明书实施例的方案中,联盟链的共识主节点发起交易的共识提议后,共识备份节点在共识阶段基于自身的业务校验规则对该交易进行业务校验,并在交易通过业务校验后再进一步执行共识逻辑。一方面,可以确保共识备份节点在交易达成共识前完成业务校验,防止业务逻辑不合法的交易达成共识后被上传至联盟链中;另一方面,共识备份节点不需要再浪费资源对未通过自身业务校验的交易执行共识逻辑,从而有效减少联盟链的共识开销。
可选地,所述共识提议携带有调用指定智能合约的请求,所述指定智能合约用于指示所述共识备份节点在共识过程中的指定阶段,对共识提议的交易进行业务校验。
应理解,在共识过程中的哪个阶段执行业务校验需要根据联盟链所采用的共识机制来进行灵活设置。目前主流的共识机制包括:工作量证明(POW,ProofofWork)、股权证明(POS,Proof of Stake)、委任权益证明(DPOS,Delegated Proof of Stake)、实用拜占庭容错(PBFT,Practical Byzantine Fault Tolerance)算法等。
以PBFT算法的共识提议为例,则所述指定智能合约中的指定阶段可以是共识过程的pre-prepare阶段或准备prepare阶段。
其中,若所述指定阶段为prepare阶段,则所述共识备份节点在所述共识提议的至少一个交易通过自身业务校验后,再执行prepare阶段需要对pre-prepare消息进行签名校验的流程;其中,所述pre-prepare消息是所述共识主节点基于所述拜占庭容错算法,需要在pre-prepare阶段向联盟链的共识备份节点发送的消息。
此外,在上述基础之上,共识备份节点520可以将交易池中未通过自身业务校验的交易直接移除,以避免在后续共识轮次中,花费不必要的开销,对之前未通过自身业务校验的交易再次进行业务校验。或者,共识备份节点520也可以对自身交易池中未通过自身业务校验的交易进行标记,以便后续的共识阶段只对自身交易池中未标记的交易执行业务校验。
此外,现有的一部分联盟链的共识规则要求是共识提议中只要有交易未通过共识节点的业务校验,则该共识提议包含的所有交易在共识阶段需要被全部打回。针对这类联盟链,为了保证同一共识轮次中业务层面上合法的交易不受到非法交易的影响而导致无法上链,在共识提议被驳回后,共识主节点510可以根据共识备份节点520的共识提议反馈,重新发起共识提议。应理解,重新发起的共识提议不包含未通过共识备份节点的业务校验的交易,从而保证本次重新发起的共识提议能够将上次共识提议被打回的在业务层面上合法的交易上传至联盟链中。
显然,本说明书实施例的联盟链***可以作为上述图1所示的业务校验方法的执行主体,因此能够实现该业务校验方法在图1至图4所实现的功能。由于原理相同,本文不再赘述。
本领域技术人员应明白,本说明书的实施例可提供为方法、***或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应属于本文件的保护范围之内。

Claims (10)

1.一种联盟链的业务校验方法,包括:
联盟链的共识主节点对自身交易池中的交易进行业务校验,其中,联盟链中的各共识节点对客户端发起的交易进行账户合法性校验,并将通过账户合法性校验的交易同步至各自的交易池中;
联盟链的共识主节点对通过自身业务校验的交易发起共识提议,其中,所述共识提议包含至少一个通过共识主节点业务校验的交易,联盟链中至少两个共识节点具有不同的业务校验规则,共识节点的业务校验规则属于共识节点的私有信息;
联盟链的共识备份节点在共识过程中,基于自身的业务校验规则,对所述共识提议的至少一个交易进行业务校验,并对通过自身业务校验的交易执行共识逻辑。
2.根据权利要求1所述的方法,
所述共识提议携带有调用指定智能合约的请求,所述指定智能合约用于指示所述共识备份节点在共识过程中的指定阶段,对共识提议的交易进行业务校验。
3.根据权利要求2所述的方法,
所述共识提议采用拜占庭容错算法,所述指定阶段为共识过程的pre-prepare阶段或准备prepare阶段。
4.根据权利要求3所述的方法,
若所述指定阶段为prepare阶段,则所述共识备份节点在所述共识提议的至少一个交易通过自身业务校验后,再执行prepare阶段需要对pre-prepare消息进行签名校验的流程;其中,所述pre-prepare消息是所述共识主节点基于所述拜占庭容错算法,需要在pre-prepare阶段向共识备份节点发送的消息。
5.根据权利要求1-4任一项所述的方法,
所述业务校验还包括:数据格式校验。
6.根据权利要求1-4任一项所述的方法,还包括:
所述共识备份节点对自身交易池中未通过业务校验的交易进行标记,其中,所述共识备份节点只对自身交易池中未标记的交易执行业务校验。
7.根据权利要求1-4任一项所述的方法,还包括:
所述共识备份节点将交易池中未通过业务校验的交易移除。
8.根据权利要求1-4任一项所述的方法,还包括:
所述共识主节点根据共识备份节点的共识提议反馈,重新发起共识提议,其中,重新发起的共识提议不包含未通过共识备份节点的业务校验的交易。
9.根据权利要求1-4任一项所述的方法,还包括:
所述共识备份节点将所述共识提议的信息、发起所述共识提议的共识主节点的信息以及本地对所述共识提议中的至少一个交易的业务校验结果信息进行关联记录。
10.一种联盟链***,包括:多个共识节点;其中,
所述多个共识节点中的共识主节点对自身交易池中的交易进行业务校验,并对通过自身业务校验的交易发起共识提议,其中,各共识节点对客户端发起的交易进行账户合法性校验,并将通过账户合法性校验的交易同步至各自的交易池中,所述多个共识节点中,至少两个共识节点具有不同的业务校验规则,共识节点的业务校验规则属于共识节点的私有信息;
所述多个共识节点中的共识备份节点基于自身的业务校验规则,对所述共识提议的至少一个交易进行业务校验,并对通过自身业务校验的交易执行共识逻辑。
CN202110937418.5A 2019-09-24 2019-09-24 一种联盟链的业务校验方法及联盟链*** Active CN113709122B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110937418.5A CN113709122B (zh) 2019-09-24 2019-09-24 一种联盟链的业务校验方法及联盟链***

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910906948.6A CN110691077B (zh) 2019-09-24 2019-09-24 一种联盟链的业务校验方法及联盟链***
CN202110937418.5A CN113709122B (zh) 2019-09-24 2019-09-24 一种联盟链的业务校验方法及联盟链***

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201910906948.6A Division CN110691077B (zh) 2019-09-24 2019-09-24 一种联盟链的业务校验方法及联盟链***

Publications (2)

Publication Number Publication Date
CN113709122A CN113709122A (zh) 2021-11-26
CN113709122B true CN113709122B (zh) 2023-08-22

Family

ID=69110020

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910906948.6A Active CN110691077B (zh) 2019-09-24 2019-09-24 一种联盟链的业务校验方法及联盟链***
CN202110937418.5A Active CN113709122B (zh) 2019-09-24 2019-09-24 一种联盟链的业务校验方法及联盟链***

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910906948.6A Active CN110691077B (zh) 2019-09-24 2019-09-24 一种联盟链的业务校验方法及联盟链***

Country Status (1)

Country Link
CN (2) CN110691077B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111401904B (zh) * 2020-06-05 2021-08-03 支付宝(杭州)信息技术有限公司 联盟链中的共识方法和***
CN111523899B (zh) * 2020-07-03 2021-09-07 支付宝(杭州)信息技术有限公司 联盟链的共识方法、数据校验方法、装置及***
CN111522822A (zh) 2020-07-03 2020-08-11 支付宝(杭州)信息技术有限公司 一种区块链共识方法、装置及电子设备
CN112818409B (zh) * 2020-07-03 2022-06-14 支付宝(杭州)信息技术有限公司 一种区块生成方法及共识节点
CN112232957A (zh) * 2020-10-16 2021-01-15 网易(杭州)网络有限公司 交易共识方法、装置和电子设备
CN112838930B (zh) * 2021-01-25 2022-12-06 网易(杭州)网络有限公司 区块链交易的执行方法及装置、电子设备、存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107948283A (zh) * 2017-11-24 2018-04-20 中钞***产业发展有限公司杭州区块链技术研究院 一种联盟链大文件存储及校验的方法及***
CN108492103A (zh) * 2018-02-07 2018-09-04 北京大学深圳研究生院 一种联盟区块链共识方法
CN108769163A (zh) * 2018-05-16 2018-11-06 深圳前海微众银行股份有限公司 联盟链共识达成方法、设备及计算机可读存储介质
CN108848081A (zh) * 2018-06-01 2018-11-20 深圳崀途科技有限公司 基于联盟链存储校验和积分激励机制的数据共享方法
CN108848080A (zh) * 2018-06-01 2018-11-20 深圳崀途科技有限公司 基于联盟链存储校验的数据共享***
CN109784916A (zh) * 2018-12-12 2019-05-21 广东工业大学 一种改进pbft的以太坊共识机制应用于联盟链的方法
CN110222532A (zh) * 2019-06-06 2019-09-10 杭州趣链科技有限公司 一种基于命名空间实现联盟链隐私保护的分区共识方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180158034A1 (en) * 2016-12-07 2018-06-07 International Business Machines Corporation Dynamic reordering of blockchain transactions to optimize performance and scalability
CN111917864B (zh) * 2017-02-22 2023-08-22 创新先进技术有限公司 一种业务校验的方法及装置
US10503614B2 (en) * 2017-04-21 2019-12-10 Vmware, Inc. Byzantine agreement using communications having linear complexity
US10896169B2 (en) * 2017-05-12 2021-01-19 International Business Machines Corporation Distributed system, computer program product and method
CN108108967B (zh) * 2017-12-29 2020-10-16 山大地纬软件股份有限公司 面向复杂数字资产的多阶段pbft共识***及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107948283A (zh) * 2017-11-24 2018-04-20 中钞***产业发展有限公司杭州区块链技术研究院 一种联盟链大文件存储及校验的方法及***
CN108492103A (zh) * 2018-02-07 2018-09-04 北京大学深圳研究生院 一种联盟区块链共识方法
CN108769163A (zh) * 2018-05-16 2018-11-06 深圳前海微众银行股份有限公司 联盟链共识达成方法、设备及计算机可读存储介质
CN108848081A (zh) * 2018-06-01 2018-11-20 深圳崀途科技有限公司 基于联盟链存储校验和积分激励机制的数据共享方法
CN108848080A (zh) * 2018-06-01 2018-11-20 深圳崀途科技有限公司 基于联盟链存储校验的数据共享***
CN109784916A (zh) * 2018-12-12 2019-05-21 广东工业大学 一种改进pbft的以太坊共识机制应用于联盟链的方法
CN110222532A (zh) * 2019-06-06 2019-09-10 杭州趣链科技有限公司 一种基于命名空间实现联盟链隐私保护的分区共识方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种适用于联盟链的共识机制;曹兆磊;;网络空间安全(01);全文 *

Also Published As

Publication number Publication date
CN113709122A (zh) 2021-11-26
CN110691077A (zh) 2020-01-14
CN110691077B (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
CN113709122B (zh) 一种联盟链的业务校验方法及联盟链***
CN108492103B (zh) 一种联盟区块链共识方法
JP7472333B2 (ja) バリデータノードにより提供されるブロックチェーントランザクションをマイニングする方法及びシステム
US7636868B2 (en) Data replication in a distributed system
US20180308091A1 (en) Fairness preserving byzantine agreements
US6216126B1 (en) Method for transaction within a distributed database
CN111311414A (zh) 一种基于一致性哈希算法的区块链多方共识方法
CN100586058C (zh) 基于j2ee中间件规范的容忍入侵应用服务器及容忍入侵方法
CN110673914B (zh) 一种区块链共识的视图切换方法及区块链***
CN110287205A (zh) 一种区块链跨分片交易数据处理方法及装置
CN110888858B (zh) 数据库的操作方法和装置、存储介质、电子装置
CN109388957B (zh) 基于区块链的信息移转方法、装置、介质及电子设备
CN111711526A (zh) 一种区块链节点的共识方法及***
CN113553375B (zh) 一种面向图式区块链的分片存储装置及方法
CN110784331B (zh) 一种共识流程恢复方法及相关节点
CN111737104A (zh) 区块链网络服务平台及其测试用例共享方法、存储介质
Innerbichler et al. Federated byzantine agreement to ensure trustworthiness of digital manufacturing platforms
CN111597077A (zh) 数据处理方法、装置、计算机设备以及存储介质
CN111970370B (zh) 基于面向通信设备体系的多层区块链协议拓展***及方法
CN116232893A (zh) 分布式***的共识方法、装置、电子设备及存储介质
CN114448639B (zh) 具有唯一性和密钥安全的去中心化身份***及实现方法
CN112235251B (zh) 一种区块链管理方法、装置、计算机设备及存储介质
CN113630445B (zh) 一种基于区块链网络的数据存储方法及装置
CN115037472A (zh) 基于双层dag共识机制的交易处理方法及***、服务设备
KR102304954B1 (ko) 피어 노드, 피어 노드에서 수행되는 처리 방법 및 블록체인 플랫폼 시스템

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