CN111190754B - 一种区块链事件通知方法及区块链系统 - Google Patents

一种区块链事件通知方法及区块链系统 Download PDF

Info

Publication number
CN111190754B
CN111190754B CN201911398833.7A CN201911398833A CN111190754B CN 111190754 B CN111190754 B CN 111190754B CN 201911398833 A CN201911398833 A CN 201911398833A CN 111190754 B CN111190754 B CN 111190754B
Authority
CN
China
Prior art keywords
transaction
node
event notification
execution result
blockchain
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
CN201911398833.7A
Other languages
English (en)
Other versions
CN111190754A (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.)
Union Mobile Pay Co Ltd
Original Assignee
Union Mobile Pay 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 Union Mobile Pay Co Ltd filed Critical Union Mobile Pay Co Ltd
Priority to CN201911398833.7A priority Critical patent/CN111190754B/zh
Publication of CN111190754A publication Critical patent/CN111190754A/zh
Application granted granted Critical
Publication of CN111190754B publication Critical patent/CN111190754B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种区块链事件通知方法及区块链系统,该方法包括:区块链系统任一节点接收外部系统发送的交易信息;其中,区块链系统包括预设数量的节点;各个节点根据所述交易信息得到共识后的交易执行结果;区块链系统的事件通知节点发送所述交易执行结果至所述外部系统;其中,所述事件通知节点为当前出块节点。本发明实施例提供的区块链事件通知方法及区块链系统,通知机制依赖于区块链系统中的各个节点,即使部分节点异常也不会影响通知服务,事件通知服务具有高可用能力;无需多活部署、去单点;只需当前出块节点向外部系统发送交易执行结果,无需区块链系统的所有节点均发送,节省了外部节点与区块链系统的网络带宽,降低了网络负载。

Description

一种区块链事件通知方法及区块链系统
技术领域
本发明涉及区块链技术领域,具体涉及一种区块链事件通知方法及区块链系统。
背景技术
区块链是一种异步系统,交易的执行结果需要通过事件通知机制传递给外部系统。图5是现有技术中区块链进行事件通知的流程示意图。如图5所示,包括步骤如下:
(1)增加应用服务器后,相应的在事件模块中进行注册;
(2)应用层发送交易并携带应用服务器的标识到区块链底层,区块链接到交易消息进行处理;
(3)区块链处理完成后,把携带标识的交易封装成事件推送给事件服务;每个区块链节点对交易处理完成后,均以事件的形式向事件服务器推送交易结果;
(4)事件服务器增加事件去重模块,事件服务接收到其中一个节点的事件后,其他节点的相同事件不再接受,减轻事件服务的压力;
(5)事件服务器接收到区块链底层推送的事件,查看属于哪个应用服务器,推送给对应的应用服务器;
(6)应用服务接收到事件服务推送的消息,进行后续的业务处理。
上述现有技术中的事件通知方法具有如下缺陷:所有区块链节点向事件服务发送块交易,事件服务网络负载、数据处理量增加;为实现事件服务的高可用,需要进行多活部署、去单点,比如设计备份的事件服务器,在处于运行状态的事件服务器故障时启用,系统实现复杂。
发明内容
为解决现有技术中的问题,本发明实施例提供一种区块链事件通知方法及区块链系统。
第一方面,本发明实施例提供一种区块链事件通知方法,包括:区块链系统任一节点接收外部系统发送的交易信息;其中,所述区块链系统包括预设数量的节点;各个所述节点根据所述交易信息得到共识后的交易执行结果;所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统;其中,所述事件通知节点为当前出块节点。
进一步地,所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统,包括:所述区块链系统的事件通知节点根据所述外部系统预先注册的第一地址信息和/或所述交易信息中包含的第二地址信息发送所述交易执行结果至所述外部系统。
进一步地,在所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统之后,所述方法还包括:所述事件通知节点接收所述外部系统发送的交易反馈信息;其中所述交易反馈信息包括所述交易执行结果以及私钥签名信息。
进一步地,所述区块链系统的各个节点存储有所述外部系统的公钥;所述方法还包括:各个所述节点对所述交易信息及所述交易执行结果共识后,将所述交易信息及所述交易执行结果存储到本地存储的区块链的区块上;所述事件通知节点接收所述交易反馈信息后,利用所述公钥对所述私钥签名信息进行验签,验签通过后,所述区块链系统的各个所述节点对所述交易反馈信息进行共识后,所述事件通知节点将所述交易反馈信息存储到本地存储的所述区块链的区块上,并建立所述交易反馈信息与所述交易信息及所述交易执行结果的关联;其他所述节点进行对本地存储的所述区块链的区块进行同步更新。
进一步地,在所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统之后,所述区块链系统的各节点开启超时检测,若某个节点根据预设的超时检测规则判定超时后,仍未接收到所述交易反馈信息,则所述区块链系统根据预设的选举规则选举节点再次发送所述交易执行结果至所述外部系统。
进一步地,所述预设的超时检测规则为:若当前出块的最高块号与所述交易执行结果存储的块号之差大于预设块数则判定超时;或,若发送所述交易执行结果的时间距当前的时间间隔大于预设时间间隔则判定超时。
进一步地,所述根据预设的选举规则选举节点再次发送所述交易执行结果,包括:选举当前最高块的出块节点再次发送所述交易执行结果。
第二方面,本发明实施例提供一种区块链系统,包括预设数量的节点,其特征在于,所述预设数量的节点包括事件通知节点和其他节点,所述事件通知节点为当前出块节点,其中:所述预设数量的节点中任一所述节点接收外部系统发送的交易信息后,各个所述节点根据所述交易信息得到共识后的交易执行结果;然后,所述事件通知节点发送所述交易执行结果至所述外部系统。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明实施例提供的区块链事件通知方法及区块链系统,通过在接收到外部系统发送的交易信息、经过共识得到交易执行结果后,由区块链系统的当前出块节点发送交易执行结果至外部系统,通知机制依赖于区块链系统中的各个节点,即使部分节点异常,也不会影响通知服务,因此事件通知服务具有高可用能力,且无需考虑多活部署、去单点的问题;同时,只需当前出块节点向外部系统发送交易执行结果,无需区块链系统的所有节点均发送,节省了外部节点与区块链系统的网络带宽,降低了网络负载。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的区块链事件通知方法流程图;
图2是本发明另一实施例提供的区块链事件通知方法流程图;
图3是本发明一实施例提供的区块链系统的模块构成示意图;
图4是本发明一实施例提供的电子设备的实体结构示意图;
图5是现有技术中区块链进行事件通知的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明一实施例提供的区块链事件通知方法流程图。如图1所示,所述方法包括:
步骤101、区块链系统任一节点接收外部系统发送的交易信息;其中,所述区块链系统包括预设数量的节点。
所述外部系统用于指代区块链系统以外的主体,比如应用服务器等。外部系统可以以系统的形式存在,也可以是独立的设备。所述区块链系统包括预设数量的多个区块链节点(简称节点)。
所述外部系统可以订阅区块链系统的事件通知,具体可以通过发送交易信息的方式实现。交易信息与事件通知可以是一对一的关系,即发送一次交易信息,则获取一次事件通知;交易信息与事件通知也可以是一对多的关系,即发送一次交易信息,可以获取多次事件通知,比如交易信息的内容为请求按照一定的时间间隔发送需求的某个数据。
由于区块链系统可能存储有多个对应于不同业务的区块链,因此,所述交易信息可以包含区块链ID,以明确要获取的事件通知对应于哪个区块链ID的业务。
要进行事件通知,区块链系统首先接收外部系统发送的交易信息。所述外部系统可以向区块链系统中的任一节点发送所述交易信息。
步骤102、各个所述节点根据所述交易信息得到共识后的交易执行结果。
所述区块链系统的任一节点接收到所述外部系统发送的交易信息后,区块链系统的各个节点通过预设的共识算法(如拜占庭共识算法)对所述交易信息进行共识处理。在共识后(达成共识、共识通过),所述区块链系统的各个节点通过调用智能合约对所述交易信息进行处理,对处理结果共识通过后得到交易执行结果。
得到交易执行结果的过程可以为:先由当前出块节点(出块人、提案人)根据交易信息把交易利用智能合约中执行一遍,生成一个交易执行结果。然后提案人把交易信息和交易结果打包成区块,发给其他节点。其他节点收到后,也根据交易信息把交易利用智能合约中执行一遍,生成交易执行结果。各节点对比交易结果是否相同,相同后再投票。如果有超过预设比例(如2/3)的节点投同意票,则共识完成,生成最终的交易执行结果,即大多数节点认可的交易执行结果。
步骤103、所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统;其中,所述事件通知节点为当前出块节点。
得到交易执行结果后,所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统;其中,所述事件通知节点为当前出块节点。也即,由一个节点实施事件通知工作。具体地,由当前出块节点发送所述交易执行结果至所述外部系统。在区块链系统中,对应于某个时刻,只有一个出块节点,比如,当前记账的节点为当前出块节点。所谓出块节点即指最先生成新区块或更新区块的节点。具体地,出块节点的选举规则可以利用已有的方法,此处不做具体限定。
本发明实施例通过在接收到外部系统发送的交易信息、经过共识得到交易执行结果后,由区块链系统的当前出块节点发送交易执行结果至外部系统,通知机制依赖于区块链系统中的各个节点,即使部分节点异常,也不会影响通知服务,因此事件通知服务具有高可用能力,且无需考虑多活部署、去单点的问题;同时,只需当前出块节点向外部系统发送交易执行结果,无需区块链系统的所有节点均发送,节省了外部节点与区块链系统的网络带宽,降低了网络负载。
进一步地,基于上述实施例,所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统,包括:所述区块链系统的事件通知节点根据所述外部系统预先注册的第一地址信息和/或所述交易信息中包含的第二地址信息发送所述交易执行结果至所述外部系统。
所述区块链系统的事件通知节点需要根据外部系统指定的地址信息发送所述交易执行结果至所述外部系统。外部系统订阅区块链系统的事件通知服务需要指定事件通知的地址(例如:url信息),本发明实施例支持两种指定方式:
(1)提供接口:区块链系统的每个节点提供设置事件通知的接口地址,外部系统发送设置事件通知地址命令,各节点通过共识算法达成一致,各节点各自保存该信息。
(2)交易字段扩展:交易可以带有通知地址,区块链节点交易执行完成后,根据交易中的通知地址进行通知。
地址注销:针对“提供接口”的注册方式,支持地址注销功能。
由于有上述两种地址注册方式,如果外部系统提供了接口地址(第一地址信息),发送的交易信息中未包含通知地址(第二地址信息),则根据注册的接口地址发送交易执行结果;如果外部系统未提供接口地址,发送的交易信息中包含通知地址,则根据通知地址发送交易执行结果;如果外部系统提供了接口地址,且发送的交易信息中包含通知地址,则根据接口地址和通知地址发送交易执行结果,即将交易执行结果分别发送至接口地址和通知地址。
在上述实施例的基础上,本发明实施例通过根据外部系统预先注册的第一地址信息和/或交易信息中包含的第二地址信息发送交易执行结果至外部系统,提高了事件通知地址设置的灵活性。
进一步地,基于上述实施例,在所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统之后,所述方法还包括:所述事件通知节点接收所述外部系统发送的交易反馈信息;其中所述交易反馈信息包括所述交易执行结果以及私钥签名信息。
外部系统接收到所述区块链系统的事件通知节点发送的所述交易执行结果之后,生成相应的交易反馈信息,所述交易反馈信息包括所述交易执行结果以及私钥签名信息,并将所述交易反馈信息发送给事件通知节点,以告知区块链系统外部系统收到了相应的交易执行结果。
因此,在所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统之后,所述事件通知节点接收所述外部系统发送的交易反馈信息;其中所述交易反馈信息包括所述交易执行结果以及私钥签名信息。在上述实施例的基础上,本发明实施例通过在发送交易执行结果至外部系统之后,接收外部系统发送的交易反馈信息,使得区块链系统获知外部系统对于交易执行结果的接收情况,提高了事件通知服务的可靠性;并且,通过对交易反馈信息进行签名,防止了恶意外部系统发送错误信息,同时也提高了数据传输过程的安全性。
进一步地,基于上述实施例,所述区块链系统的各个节点存储有所述外部系统的公钥;所述方法还包括:各个所述节点对所述交易信息及所述交易执行结果共识后,将所述交易信息及所述交易执行结果存储到本地存储的区块链的区块上;所述事件通知节点接收所述交易反馈信息后,利用所述公钥对所述私钥签名信息进行验签,验签通过后,所述区块链系统的各个所述节点对所述交易反馈信息进行共识后,所述事件通知节点将所述交易反馈信息存储到本地存储的所述区块链的区块上,并建立所述交易反馈信息与所述交易信息及所述交易执行结果的关联;其他所述节点进行对本地存储的所述区块链的区块进行同步更新。
各个节点接收到交易信息后,对交易信息进行共识后,各个所述节点将所述交易信息记录到本地存储的区块链的区块中;并且,在经过共识得到交易执行结果之后,各个所述节点将所述交易执行结果记录到本地存储的区块链的区块中,以使得各节点的区块链中的信息同步。交易信息及所述交易执行结果记录到区块中可以同时进行也可以分别进行,可以记录到一个区块上,也可以分别记录到不同区块上。
所述区块链系统的各个节点存储有所述外部系统的公钥,所述公钥用于对所述私钥签名信息进行验签,验签即使用私钥加密、公钥解密,用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改。验签通过则表明外部系统的身份无误。
所述事件通知节点接收所述交易反馈信息后,利用所述公钥对所述私钥签名信息进行验签,验签通过后则发起共识,区块链系统上的各节点均将自己记录的交易执行结果和交易反馈信息中的交易执行结果进行比对,并进行验签,若比对、验签按预设比例通过则达成共识。
共识通过后,所述事件通知节点将所述交易反馈信息存储到区块上,并建立所述交易反馈信息与所述交易信息及所述交易执行结果的关联。各节点同步存储相应信息。所述事件通知节点将所述交易反馈信息存储到区块上,并建立所述交易信息及所述交易执行结果的关联的方法可以通过设定交易ID实现,比如,在存储交易信息及所述交易执行结果时,均设置交易ID的信息;在存储交易反馈信息时也设置相应的交易ID的信息,由此可以根据交易ID实现交易反馈信息、交易信息及交易执行结果的关联。另外,还可以通过在存储交易反馈信息的时候,存储交易信息和/或交易执行结果所在的块号及块内偏移信息,由此实现关联。
在上述实施例的基础上,本发明实施例通过将交易反馈信息存储到区块上,并建立交易反馈信息与交易信息及交易执行结果的关联,便利了交易数据的查询。
进一步地,基于上述实施例,在所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统之后,所述区块链系统的各节点开启超时检测,若某个节点根据预设的超时检测规则判定超时后,仍未接收到所述交易反馈信息,则所述区块链系统根据预设的选举规则选举节点再次发送所述交易执行结果至所述外部系统。
在所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统之后,所述区块链系统的各节点开启超时检测,超时检测的目的在于判断是否在规定的时间内接收到外部系统的交易反馈信息。事件通知节点可以是最先接收到交易反馈信息,其他节点可以是在共识阶段接收到交易反馈信息。具体地,判定是否在规定的时间内接收到外部系统的交易反馈信息,即是否超时的判定可以采用预设的超时检测规则实现。
若根据预设的超时检测规则判定超时后,仍未接收到所述交易反馈信息,则根据预设的选举规则选举节点再次向外部系统发送所述交易执行结果,以避免外部系统因为宕机、断电等故障未及时接收到交易执行结果,从而提高了事件通知服务的可靠性。
在上述实施例的基础上,本发明实施例通过在若根据预设的超时检测规则判定超时后,仍未接收到交易反馈信息,则根据预设的选举规则选举节点再次发送交易执行结果,提高了事件通知服务的可靠性。
进一步地,基于上述实施例,所述预设的超时检测规则为:若当前出块的最高块号与所述交易执行结果存储的块号之差大于预设块数则判定超时;或,若发送所述交易执行结果的时间距当前的时间间隔大于预设时间间隔则判定超时。
由于区块链系统可以服务于多个外部系统,对于一个外部系统也可能多次发送交易信息,请求事件服务。因此,对于每次交易,区块链系统均会将相关的交易信息存储到区块中,并根据新区块的生成规则在需要生成新区块的时候生成新区块。其中,一个区块可以包含多个交易的交易信息。
外部系统是在接收到区块链系统发送的交易执行结果后,向区块链系统反馈交易反馈信息。如果区块链系统长时间接收不到交易反馈信息,可以认为外部系统未正确接收到交易执行结果。在发送交易执行结果至接收交易反馈信息期间,区块可能也在逐渐生成和增加。因此,预设的超时检测规则可以为:若当前出块的最高块号与所述交易执行结果存储的块号之差大于预设块数则判定超时。其中,区块的块号是逐步递增的。
另外,预设的超时检测规则还可以直接通过时间间隔来判断是否超时,即若发送所述交易执行结果的时间距当前的时间间隔大于预设时间间隔则判定超时。
在上述实施例的基础上,本发明实施例通过根据块数的增加量或时间间隔设定超时检测规则,提高了超时检测的灵活性。
进一步地,基于上述实施例,所述根据预设的选举规则选举节点再次发送所述交易执行结果,包括:选举当前最高块的出块节点再次发送所述交易执行结果。
区块链系统可以根据自身设定的规则选举出块节点及轮换。在根据预设的超时检测规则判定超时后,仍未接收到所述交易反馈信息,则根据预设的选举规则选举节点再次发送所述交易执行结果至所述外部系统。其中选举节点的预设的选举规则可以是选举当前最高块的出块节点作为再次发送所述交易执行结果的节点。当前最高块即指块号最大的区块。最高块的出块节点也即当前出块节点。
在上述实施例的基础上,本发明实施例通过选举当前最高块的出块节点再次发送交易执行结果,保持了发送交易执行结果选举规则的一致性。
图2是本发明另一实施例提供的区块链事件通知方法流程图。如图2所示,所述方法包括:
1)外部系统订阅某chainID(区块链ID)的事件信息,并设置通知地址url1以及签名公钥。
2)外部系统发送交易tx1至区块链系统,并带有通知地址url2以及签名公钥。
3)区块链系统进行共识,共识完成后落块。此时出块人(提案人)为vp1。
4)vp1根据通知地址管理模块提供的地址信息(url1、url2)进行消息推送。
5)各节点记录tx1的完成时间,并开启超时检测。
6)外部系统接收到vp1的通知信息后,对通知信息进行签名sign1,返回至vp1。
7)vp1验证签名正确性,将sign1构造成反馈交易,进行区块链共识。
8)其他节点将自己记录的交易结果进行变换、验签,确定该交易有效性。
9)反馈交易正确则进行共识,同时将反馈结果、交易ID、交易所在块号、块内偏移等信息进行绑定、保存。
其中,超时检测的流程具体举例如下:
1)每个节点记录交易完成时间。(例如:tx1在第5区块记录,第5块的出块时间为tx1)
2)每个节点记录当前完成的最高块号。(例如当前完成第10块出块,出块时间为tx2)
3)检测该交易是否在设定时间内没有接受到反馈交易。如果(tx2–tx1)>设定阈值,则认为该交易接收反馈交易超时,由最高块对应的出块人重新发送该交易的事件通知至外部节点。
本发明实施例提供的区块链事件通知方法具有如下优点:
1)事件通知服务具有高可用能力。通知机制依赖于区块链各个节点,即使部分节点异常,也不会影响通知服务。无需考虑防单点故障、服务多活等高可用策略。
2)降低外部节点与区块链系统的网络负载、节省带宽。无需区块链所有节点都向外部系统发送结果信息,只需要当前块的提案人发起结果通知,节省网络带宽、降低网络负载。
3)事件通知过程可溯源、追踪、防抵赖、防篡改。外部系统对执行结果进行签名,保证其接收到该消息,同时反馈信息将记录在区块链上,防抵赖、防篡改。
4)防止通知消息丢失。无论外部系统宕机、异常断电、网络通信异常,区块链节点都将重新发送未被“通知链”记录的事件通知消息,直到反馈交易共识落块。
本发明实施例提供一种区块链系统,包括预设数量的节点,其特征在于,所述预设数量的节点包括事件通知节点和其他节点,所述事件通知节点为当前出块节点,其中:所述预设数量的节点中任一所述节点接收外部系统发送的交易信息后,各个所述节点根据所述交易信息得到共识后的交易执行结果;然后,所述事件通知节点发送所述交易执行结果至所述外部系统。
本发明实施例通过在接收到外部系统发送的交易信息、经过共识得到交易执行结果后,由区块链系统的当前出块节点发送交易执行结果至外部系统,通知机制依赖于区块链系统中的各个节点,即使部分节点异常,也不会影响通知服务,因此事件通知服务具有高可用能力,且无需考虑多活部署、去单点的问题;同时,只需当前出块节点向外部系统发送交易执行结果,无需区块链系统的所有节点均发送,节省了外部节点与区块链系统的网络带宽,降低了网络负载。
图3是本发明一实施例提供的区块链系统的模块构成示意图。如图3所示,所述区块链系统包括通知地址管理模块和“通知链”管理模块,各模块功能如下:
1)通知地址管理模块
地址注册:外部系统需要指定事件通知的地址(例如:url信息),本发明实施例支持两种指定方式:
提供接口:区块链系统的每个节点提供设置事件通知的接口,外部系统发送设置事件通知地址命令,各节点通过共识算法达成一致,各节点各自保存该信息。同时保存对反馈签名进行验签的公钥信息。
交易字段扩展:交易可以带有通知地址,区块链节点交易执行完成后,根据交易中的通知地址进行通知。同时保存对反馈签名进行验签的公钥信息。
地址注销:针对“提供接口”的注册方式,支持地址注销功能。
2)“通知链”管理模块
反馈记录:外部系统接收到事件通知后,返回带有签名的反馈。该反馈将记录在区块链的“通知链”上,“通知链”可以是存储交易相关信息的区块的集合。该链将反馈结果、交易ID、交易所在块号、块内偏移等信息进行关联后存储。
反馈查询:支持以交易ID或交易位置信息(块号、偏移)等维度查询反馈结果。
超时检测:每个交易执行完成后记录“完成时间”,每个区块执行完成记录“出块时间”,如果“出块时间”-“完成时间”>设定阈值,则由当前块的出块人重新发送交易通知信息。
通知发送:将交易执行结果发送给外部系统。
本发明实施例提供的系统是用于上述方法的,具体功能可参照上述方法流程,此处不再赘述。
图4是本发明一实施例提供的电子设备的实体结构示意图。如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行如下方法:区块链系统任一节点接收外部系统发送的交易信息;其中,所述区块链系统包括预设数量的节点;各个所述节点根据所述交易信息得到共识后的交易执行结果;所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统;其中,所述事件通知节点为当前出块节点。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:区块链系统任一节点接收外部系统发送的交易信息;其中,所述区块链系统包括预设数量的节点;各个所述节点根据所述交易信息得到共识后的交易执行结果;所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统;其中,所述事件通知节点为当前出块节点。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种区块链事件通知方法,其特征在于,包括:
区块链系统任一节点接收外部系统发送的交易信息;其中,所述区块链系统包括预设数量的节点;
各个所述节点根据所述交易信息得到共识后的交易执行结果;
所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统;其中,所述事件通知节点为当前出块节点;
所述事件通知节点接收所述外部系统发送的交易反馈信息;其中所述交易反馈信息包括所述交易执行结果以及私钥签名信息;
所述区块链系统的各个节点存储有所述外部系统的公钥;各个所述节点对所述交易信息及所述交易执行结果共识后,将所述交易信息及所述交易执行结果存储到本地存储的区块链的区块上;
所述事件通知节点接收所述交易反馈信息后,利用所述公钥对所述私钥签名信息进行验签,验签通过后,所述区块链系统的各个所述节点对所述交易反馈信息进行共识后,所述事件通知节点将所述交易反馈信息存储到本地存储的所述区块链的区块上,并建立所述交易反馈信息与所述交易信息及所述交易执行结果的关联;其他所述节点进行对本地存储的所述区块链的区块进行同步更新。
2.根据权利要求1所述的区块链事件通知方法,其特征在于,所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统,包括:
所述区块链系统的事件通知节点根据所述外部系统预先注册的第一地址信息和/或所述交易信息中包含的第二地址信息发送所述交易执行结果至所述外部系统。
3.根据权利要求1所述的区块链事件通知方法,其特征在于,在所述区块链系统的事件通知节点发送所述交易执行结果至所述外部系统之后,所述区块链系统的各节点开启超时检测,若某个节点根据预设的超时检测规则判定超时后,仍未接收到所述交易反馈信息,则所述区块链系统根据预设的选举规则选举节点再次发送所述交易执行结果至所述外部系统。
4.根据权利要求3所述的区块链事件通知方法,其特征在于,所述预设的超时检测规则为:
若当前出块的最高块号与所述交易执行结果存储的块号之差大于预设块数则判定超时;
或,若发送所述交易执行结果的时间距当前的时间间隔大于预设时间间隔则判定超时。
5.根据权利要求3所述的区块链事件通知方法,其特征在于,所述根据预设的选举规则选举节点再次发送所述交易执行结果,包括:
选举当前最高块的出块节点再次发送所述交易执行结果。
6.一种区块链系统,包括预设数量的节点,其特征在于,所述预设数量的节点包括事件通知节点和其他节点,所述事件通知节点为当前出块节点,其中:
所述预设数量的节点中任一所述节点接收外部系统发送的交易信息后,各个所述节点根据所述交易信息得到共识后的交易执行结果;然后,所述事件通知节点发送所述交易执行结果至所述外部系统;
所述事件通知节点接收所述外部系统发送的交易反馈信息;其中所述交易反馈信息包括所述交易执行结果以及私钥签名信息;
所述区块链系统的各个节点存储有所述外部系统的公钥;各个所述节点对所述交易信息及所述交易执行结果共识后,将所述交易信息及所述交易执行结果存储到本地存储的区块链的区块上;
所述事件通知节点接收所述交易反馈信息后,利用所述公钥对所述私钥签名信息进行验签,验签通过后,所述区块链系统的各个所述节点对所述交易反馈信息进行共识后,所述事件通知节点将所述交易反馈信息存储到本地存储的所述区块链的区块上,并建立所述交易反馈信息与所述交易信息及所述交易执行结果的关联;其他所述节点进行对本地存储的所述区块链的区块进行同步更新。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述区块链事件通知方法的步骤。
8.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至5任一项所述区块链事件通知方法的步骤。
CN201911398833.7A 2019-12-30 2019-12-30 一种区块链事件通知方法及区块链系统 Active CN111190754B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911398833.7A CN111190754B (zh) 2019-12-30 2019-12-30 一种区块链事件通知方法及区块链系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911398833.7A CN111190754B (zh) 2019-12-30 2019-12-30 一种区块链事件通知方法及区块链系统

Publications (2)

Publication Number Publication Date
CN111190754A CN111190754A (zh) 2020-05-22
CN111190754B true CN111190754B (zh) 2023-08-11

Family

ID=70709709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911398833.7A Active CN111190754B (zh) 2019-12-30 2019-12-30 一种区块链事件通知方法及区块链系统

Country Status (1)

Country Link
CN (1) CN111190754B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113988875A (zh) * 2021-11-25 2022-01-28 中国银行股份有限公司 一种预约交易的处理方法及系统
CN114374650B (zh) * 2022-01-05 2024-02-13 北京理房通支付科技有限公司 基于路由中间件的通知发送方法、存储介质和电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108320160A (zh) * 2018-02-02 2018-07-24 张超 区块链系统、区块共识方法和装置
CN109361664A (zh) * 2018-10-11 2019-02-19 腾讯科技(深圳)有限公司 基于区块链的数据验证方法、系统和计算机可读存储介质
CN109559225A (zh) * 2018-11-23 2019-04-02 联动优势科技有限公司 一种交易方法及装置
CN109981279A (zh) * 2017-12-28 2019-07-05 航天信息股份有限公司 一种区块链系统、通信方法、装置、设备及介质
CN109995850A (zh) * 2019-03-05 2019-07-09 深圳前海微众银行股份有限公司 一种区块链系统及区块链系统的交易处理方法
CN110619523A (zh) * 2019-09-26 2019-12-27 成都链安科技有限公司 一种区块链智能合约防火墙防护方法及系统
CN110619582A (zh) * 2019-09-18 2019-12-27 深圳前海微众银行股份有限公司 区块链交易方法、装置、设备及计算机存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11327475B2 (en) * 2016-05-09 2022-05-10 Strong Force Iot Portfolio 2016, Llc Methods and systems for intelligent collection and analysis of vehicle data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109981279A (zh) * 2017-12-28 2019-07-05 航天信息股份有限公司 一种区块链系统、通信方法、装置、设备及介质
CN108320160A (zh) * 2018-02-02 2018-07-24 张超 区块链系统、区块共识方法和装置
CN109361664A (zh) * 2018-10-11 2019-02-19 腾讯科技(深圳)有限公司 基于区块链的数据验证方法、系统和计算机可读存储介质
CN109559225A (zh) * 2018-11-23 2019-04-02 联动优势科技有限公司 一种交易方法及装置
CN109995850A (zh) * 2019-03-05 2019-07-09 深圳前海微众银行股份有限公司 一种区块链系统及区块链系统的交易处理方法
CN110619582A (zh) * 2019-09-18 2019-12-27 深圳前海微众银行股份有限公司 区块链交易方法、装置、设备及计算机存储介质
CN110619523A (zh) * 2019-09-26 2019-12-27 成都链安科技有限公司 一种区块链智能合约防火墙防护方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
企业级区块链技术综述;邵奇峰 等;《软件学报》;第30卷(第9期);第2571-2592页 *

Also Published As

Publication number Publication date
CN111190754A (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
CN106789095B (zh) 分布式系统及消息处理方法
USRE40791E1 (en) Method and system for verifying the authenticity of a first communication participants in a communications network
US8201231B2 (en) Authenticated credential-based multi-tenant access to a service
CN111190754B (zh) 一种区块链事件通知方法及区块链系统
CN112612856B (zh) 基于区块链的数据处理方法和装置
CN112492016B (zh) 一种跨进程可扩展的共识方法及系统
CN112671908B (zh) 网络管理方法、装置、电子设备及可读存储介质
CN111582845A (zh) 区块链的跨链交易方法、装置以及电子设备
CN111311254A (zh) 一种基于区块链的业务处理方法、装置和系统
CN113689216A (zh) 跨链事务处理方法及装置、设备、存储介质、程序产品
CN113641391B (zh) 升级区块链系统的方法、装置及终端设备
CN112087497B (zh) 数据同步方法、装置、电子设备及可读存储介质
CN112511312B (zh) 一种可组装的共识方法及系统
CN112437155B (zh) 服务数据的处理方法、装置以及服务端设备
CN112272114A (zh) 跨区块链网络发送信息的方法、装置、设备及存储介质
CN116384993B (zh) 基于云支付中心实现订单支付状态高一致性的方法与系统
CN111209542A (zh) 一种权限管理方法、装置、存储介质及电子设备
CN115098528B (zh) 业务处理方法、装置、电子设备及计算机可读存储介质
CN111399749A (zh) 一种数据处理系统及方法
CN112258184B (zh) 冻结区块链网络的方法、装置、电子设备及可读存储介质
CN116132052A (zh) 跨链交易方法、装置、电子设备及存储介质
CN117061538A (zh) 一种基于区块链网络的共识处理方法及相关装置
CN111581613A (zh) 一种账户登录验证方法及系统
CN112486726A (zh) 一种用于区块链的时光回滚方法及系统
CN112513908A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: No. 501, 5 / F, block B, No. 28, Xinjiekou Wai Street, Xicheng District, Beijing 100088

Applicant after: Joint digital technology (Beijing) Co.,Ltd.

Address before: No. 501, 5 / F, block B, No. 28, Xinjiekou Wai Street, Xicheng District, Beijing 100088

Applicant before: Linkage advantage (Beijing) Digital Technology Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220111

Address after: 100082 7th floor, block a, Jingshi science and technology building, 12 Xueyuan South Road, Haidian District, Beijing

Applicant after: UNION MOBILE PAY Co.,Ltd.

Address before: No. 501, 5 / F, block B, No. 28, Xinjiekou Wai Street, Xicheng District, Beijing 100088

Applicant before: Joint digital technology (Beijing) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant