CN116095081A - 基于区块链系统的事件处理方法及装置、设备、介质 - Google Patents
基于区块链系统的事件处理方法及装置、设备、介质 Download PDFInfo
- Publication number
- CN116095081A CN116095081A CN202111307152.2A CN202111307152A CN116095081A CN 116095081 A CN116095081 A CN 116095081A CN 202111307152 A CN202111307152 A CN 202111307152A CN 116095081 A CN116095081 A CN 116095081A
- Authority
- CN
- China
- Prior art keywords
- event
- chain
- node
- topic
- service
- 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 40
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 28
- 238000004590 computer program Methods 0.000 claims description 19
- 230000007246 mechanism Effects 0.000 claims description 12
- 238000012423 maintenance Methods 0.000 abstract description 13
- 230000000875 corresponding effect Effects 0.000 description 76
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000012384 transportation and delivery Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 210000001503 joint Anatomy 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请的实施例揭示了一种基于区块链系统的事件处理方法及装置、设备、介质、产品。该方法包括:共识节点接收针对业务合约的调用请求,根据调用请求触发对业务合约的执行以生成链上事件,并将链上事件与链上事件的事件主题关联存储在链上事件分发合约中,然后从链上事件分发合约中获取与订阅事件主题相关联的链上事件并发送至事件通知节点,事件通知节点根据订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件。本申请实施例的技术方案极大地优化了事件处理方案,节省了系统资源消耗,便于维护、更新以及扩展,且隐私性与安全性更高。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种基于区块链系统的事件处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
目前,使用区块链的业务方会进行事件上链,其中事件上链后通常是采用轮询链上交易数据,或者采用监听区块内交易结果的链上事件日志等方式通知到相应的业务方。但是,通过轮询的方式对系统资源消耗较大,通过监听链上事件日志的方式,不方便维护、更新以及扩展,并且还可能会导致相关隐私数据的泄露。可见,如何针对链上事件的通知进行优化,相关技术中并没有明确方案。
发明内容
为解决上述技术问题,本申请的实施例提供了一种基于区块链系统的事件处理方法及装置、电子设备、计算机可读存储介质、计算机程序产品,进而至少在一定程度上优化了链上事件的通知,节省了系统资源消耗,便于维护、更新以及扩展,且隐私性与安全性更高。
根据本申请实施例的一个方面,提供了一种基于区块链系统的事件处理方法,所述区块链系统包括共识节点和事件通知节点;所述事件处理方法由所述共识节点执行,所述方法包括:接收针对业务合约的调用请求,根据所述调用请求触发对所述业务合约的执行,以生成链上事件;将所述链上事件与所述链上事件的事件主题关联存储在链上事件分发合约中;从所述链上事件分发合约中获取与订阅事件主题相关联的链上事件;发送与所述订阅事件主题相关联的链上事件至所述事件通知节点,以使所述事件通知节点将与业务订阅方订阅的事件主题相关联的链上事件推送给所述业务订阅方。
根据本申请实施例的一个方面,提供了一种基于区块链系统的事件处理方法,所述区块链系统包括共识节点和事件通知节点;所述事件处理方法由所述事件通知节点执行,所述方法包括:接收业务订阅方发送的所订阅的事件主题与业务订阅方地址,将所述订阅的事件主题与所述业务订阅方地址进行关联存储;接收所述共识节点发送的与订阅事件主题相关联的链上事件;根据所述订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件。
根据本申请实施例的一个方面,提供了一种基于区块链系统的事件处理装置,所述区块链系统包括共识节点和事件通知节点;所述装置配置于所述共识节点中,所述装置包括:第一接收模块,配置为接收针对业务合约的调用请求,根据所述调用请求触发对所述业务合约的执行,以生成链上事件;存储模块,配置为将所述链上事件与所述链上事件的事件主题关联存储在链上事件分发合约中;获取模块,配置为从所述链上事件分发合约中获取与订阅事件主题相关联的链上事件;第一发送模块,配置为发送与所述订阅事件主题相关联的链上事件至所述事件通知节点,以使所述事件通知节点将与业务订阅方订阅的事件主题相关联的链上事件推送给所述业务订阅方。
在本申请的一些实施例中,基于前述方案,所述调用请求中携带有事件通知节点的标识,所述事件分发合约包括事件通知节点对象集合;所述存储模块包括:查找单元,配置为在所述事件通知节点对象集合中查找与所述事件通知节点的标识匹配的目标事件通知节点;第一存储单元,配置为将所述链上事件与所述链上事件的事件主题关联存储在所述目标事件通知节点对应的待通知事件队列中。
在本申请的一些实施例中,基于前述方案,所述调用请求中携带有事件通知节点的标识,所述事件分发合约包括待通知事件集合和事件通知节点对象集合;所述存储模块包括:存储与查找单元,配置为将所述链上事件与所述链上事件的事件主题关联存储在所述待通知事件集合中,以及在所述事件通知节点对象集合中查找与所述事件通知节点的标识匹配的目标事件通知节点;第二存储单元,配置为将所述链上事件在所述待通知事件集合中的索引信息存储在所述目标事件通知节点对应的待通知事件队列中。
在本申请的一些实施例中,基于前述方案,所述存储模块包括:新建单元,配置为若在所述事件通知节点对象集合中未查找到与所述事件通知节点的标识匹配的目标事件通知节点,则在所述事件通知节点对象集合中新建与所述事件通知节点的标识匹配的目标事件通知节点。
在本申请的一些实施例中,基于前述方案,所述获取模块包括:遍历单元,配置为遍历与所述订阅事件主题匹配的事件通知节点对应的待通知事件队列中所包含的链上事件的索引信息;第一获取单元,配置为根据遍历到的链上事件的索引信息,从所述链上事件集合中获取与所述链上事件的索引信息对应的链上事件。
在本申请的一些实施例中,基于前述方案,所述获取模块包括:第二获取单元,配置为接收所述事件通知节点发送的链上事件获取请求,并根据所述链上事件获取请求,从所述链上事件分发合约中获取与订阅事件主题相关联的链上事件。
在本申请的一些实施例中,基于前述方案,所述获取模块包括:第三获取单元,配置为根据预设时长触发机制从所述链上事件分发合约中获取与订阅事件主题相关联的链上事件。
根据本申请实施例的一个方面,提供了一种基于区块链系统的事件处理装置,所述区块链系统包括共识节点和事件通知节点;所述装置配置于所述事件通知节点中,所述装置包括:第二接收模块,配置为接收业务订阅方发送的订阅事件主题与业务订阅方地址,将所述订阅事件主题与所述业务订阅方地址进行关联存储;第三接收模块,配置为接收所述共识节点发送的与订阅事件主题相关联的链上事件;第二发送模块,配置为根据所述订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件。
在本申请的一些实施例中,基于前述方案,所述装置还包括:创建及注册模块,配置为所述事件通知节点是由外部服务方创建并在所述区块链系统上进行注册的,所述事件通知节点的标识是在所述区块链系统上进行注册之后分配的;其中,所述外部服务方包括业务订阅方、业务推送方以及第三服务方中的一个。
在本申请的一些实施例中,基于前述方案,所述第二发送模块具体配置为若根据所述订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件失败,则重复发送所述与业务订阅方订阅的事件主题相关联的链上事件,直至发送成功或者直至重复发送次数达到预设发送次数阈值。
在本申请的一些实施例中,基于前述方案,所述装置还包括:第三发送模块,配置为若重复发送次数达到预设发送次数阈值且发送所述与业务订阅方订阅的事件主题相关联的链上事件失败,则发送标记指令至所述共识节点,以使所述共识节点根据所述标记指令中携带的发送失败的链上事件的标识,对所述链上事件分发合约中包含的链上事件进行标记。
在本申请的一些实施例中,基于前述方案,所述装置还包括:第四发送模块,配置为若根据所述订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件成功,则发送删除指令至所述共识节点,以使所述共识节点根据所述删除指令中携带的事件通知节点的标识以及发送成功的链上事件的标识,删除所述链上事件分发合约中待通知事件队列包含的链上事件的索引信息。
根据本申请实施例的一个方面,提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如上所述的基于区块链系统的事件处理方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的基于区块链系统的事件处理方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现如上所述的基于区块链系统的事件处理方法。
在本申请的实施例提供的技术方案中,一方面,共识节点侧新增链上事件分发合约,以用于存储业务合约执行所生成的链上事件以及链上事件的事件主题等数据,这样可以不用再对业务合约进行操作,将链上事件的处理与业务合约相分离,在极大程度上降低了耦合性,便于后期链上事件以及业务的维护、更新以及扩展等。另一方面,区块链系统中新增事件通知节点,以用于接收与订阅事件主题相关联的链上事件,并将与业务订阅方订阅的事件主题相关联的链上事件推送给对应的业务订阅方,这样不用进行数据轮询,推送效率较高;并且,事件通知节点只能获取到与自身相关的链上事件等数据,数据的隐私性和安全性均更高;同时,由事件通知节点进行链上事件的推送,将链上事件的处理与业务处理相分离,进一步降低了耦合性,更加便于后期链上事件以及业务的维护、更新以及扩展等。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是区块链网络的结构示意图;
图2是区块链中各区块的连接关系示意图;
图3是可以应用本申请实施例的技术方案的示例性系统架构的示意图;
图4是本申请的一示例性实施例示出的基于区块链系统的事件处理方法的流程图;
图5是图4所示实施例中的步骤S402在一示例性实施例中的流程图;
图6是图5所示实施例中实施例示出的事件分发合约的示意图;
图7是图4所示实施例中的步骤S402在一示例性实施例中的流程图;
图8是图7所示实施例中实施例示出的事件分发合约的示意图;
图9是图4所示实施例中的步骤S403在一示例性实施例中的流程图;
图10是本申请的一示例性实施例示出的基于区块链系统的事件处理方法的流程图;
图11是本申请的一示例性实施例示出的基于区块链系统的事件处理方法的流程图;
图12是本申请的一示例性实施例示出的基于区块链系统的事件处理方法的流程图;
图13是本申请的一示例性实施例示出的基于区块链系统的事件处理装置的框图;
图14是本申请的一示例性实施例示出的基于区块链系统的事件处理装置的框图;
图15是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相相同的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相同的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是,在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
目前,使用区块链的业务方会进行事件上链,其中事件上链后会通知到相应的业务方,进而执行后续的业务流程。相关技术中,是通过两种方式将链上事件通知到相应的业务方,方式一是通过轮询链上交易数据,方式二是使用链上事件日志的功能,业务方可以在执行交易后的交易结果中添加自定义的链上事件日志,进而相应的业务方通过监听区块内交易结果的链上事件日志。但是,这两种方式都并非是很好的解决方案,因为方式一中由于需要轮询链上交易数据,对于系统的消耗是很大的,方式二中需要在业务合约内指定所生成的链上事件的主题以生成对应的链上事件日志,该指定的过程是相对繁琐的,并且不便于后期的维护、更新以及扩展等,同时还可能会导致相关隐私数据的泄露。
基于此,本申请实施例提出了一种基于区块链系统的事件处理方法,在极大程度上优化了链上事件的通知,不仅可以节省系统的资源消耗,而且可以减少繁琐的指定流程,从而提升链上事件的通知效率,同时便于后期的维护、更新以及扩展等,保证了相关数据的隐私性与安全性。
在介绍本申请实施例的技术方案之前,先介绍本申请实施例中用到的区块链技术。
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块(即区块),每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
其中,区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链共识节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如告警、监控网络情况、监控共识节点设备健康状态等。
其中,平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。
其中,应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
如上,区块链本质上是一个去中心化的数据库,而区块链是由区块链网络中的共识节点共同维护的。例如请参阅图1,在图1所示的区块链网络中,可以包括多个共识节点101,多个共识节点101可以是形成区块链网络的各个客户端。每个共识节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该区块链网络内的共享数据。为了保证区块链网络内的信息互通,区块链网络中的每个共识节点之间可以存在信息连接,共识节点之间可以通过上述信息连接进行信息传输。例如当区块链网络中的任意共识节点接收到输入信息时,区块链网络中的其它共识节点便根据共识算法获取该输入信息,将该输入信息作为共享数据进行存储,使得区块链网络中全部共识节点上存储的数据均一致。
对于区块链网络中的每个共识节点,均具有与其对应的共识节点标识,而且区块链网络中的每个共识节点均可以存储有其它共识节点的共识节点标识,以便后续根据其它共识节点的共识节点标识,将生成的区块广播至区块链网络中的其它共识节点。每个共识节点中可维护一个共识节点标识列表,将共识节点名称和共识节点标识对应存储至该共识节点标识列表中。其中,共识节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该共识节点的信息。
区块链网络中的每个共识节点均存储一条相同的区块链。区块链由多个区块组成,请参阅图2,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值等,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值等,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
区块链网络中各个共识节点可以是服务器,也可以是终端设备。其中服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算(Cloud Computing)、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。其中终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。各个共识节点之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
前述的云计算是指IT基础设施的交付和使用模式,具体指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(ParallelComputing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
基于前述介绍的区块链技术,以及相关技术中存在的链上事件通知的一系列问题,本申请的实施例提供的一种基于区块链系统的事件处理方法。具体而言,在本申请的一个应用场景中,请参阅图3,主要包含了区块链业务推送方终端301、区块链业务订阅方终端302以及事件通知节点303;其中,区块链业务推送方终端301、区块链业务订阅方终端302以及事件通知节点303都可以与区块链网络进行通信,区块链业务推送方终端301、区块链业务订阅方终端302以及事件通知节点303三者之间也可以互相通信。
其中,区块链业务推送方终端301指的是发起推送链上事件的业务推送方所在的终端,其服务于业务推送方;可以理解的是,业务推送方在有业务需求时,可以通过与区块链网络进行通信,发送业务合约的调用请求,进而区块链网络中的共识节点会根据该调用请求触发对业务合约的执行,以生成链上事件,其属于触发业务合约的执行以生成链上事件的主体。
其中,区块链业务订阅方终端302指的是订阅链上事件的业务订阅方所在的终端,其服务于业务订阅方;可以理解的是,业务订阅方在有业务需求时,可以与业务推送方、事件通知节点进行通信,发送所订阅的事件主题和订阅方地址至事件通知节点,同时发送其所发送相关订阅事件信息的信息至业务推送方(例如业务订阅方向事件通知节点1发送了所订阅的事件主题和其的地址,并同时将向事件通知节点1发送所订阅的事件主题和其的地址这一消息发送至业务推送方,或者同时将事件通知节点1这一标识发送至业务推送方,这样业务推送方可以确定业务订阅方是向哪个事件通知节点发送了相关订阅事件信息),之后,业务订阅方从事件通知节点处获取到与所订阅的事件主题相关联的链上事件,其属于订阅链上事件的主体。
需要说明的是,业务推送方在作为业务推送方时,其同时也可以作为业务订阅方,在作为业务推送方时,发送业务合约的调用请求至区块链网络中的共识节点,进而共识节点根据该调用请求触发对业务合约的执行,以生成链上事件,并由事件通知节点将该链上事件通知给相应的业务订阅方;在作为业务订阅方时,发送所订阅的事件主题和业务订阅方地址至事件通知节点,并由事件通知节点关联存储与其所订阅的事件主题与业务订阅方地址,同时发送其所发送相关订阅事件信息的信息至相应的业务推送方。
需要说明的是,业务订阅方在作为业务订阅方时,其同时也可以作为业务推送方,在作为业务订阅方时,发送所订阅的事件主题和业务订阅方地址至事件通知节点,并由事件通知节点关联存储与其所订阅的事件主题与业务订阅方地址,同时发送其所发送相关订阅事件信息的信息至相应的业务推送方;在作为业务推送方时,发送业务合约的调用请求至区块链网络中的共识节点,进而共识节点根据该调用请求触发对业务合约的执行,以生成链上事件,并由事件通知节点将该链上事件通知给相应的业务订阅方。
可以理解的是,区块链业务推送方终端301和区块链业务订阅方终端302可以是如手机、电脑、智能语音交互设备、智能家电、车载终端等终端设备。
在本申请的一个实施例中,业务推送方和业务订阅方可以是联盟内的实名制企业;这样对进行通信的主体身份进行了识别,各方通信能够得到保障,避免了由于某方恶意注册进行攻击(如注册大部分无效的回调地址进行攻击)的现象,提升了各方通信的安全性。
其中,事件通知节点303指的是用于进行链上事件通知的节点,其可以是由外部服务方创建并在区块链网络中进行注册的,当在区块链网络中进行注册之后,会为该事件通知节点分配标识,即事件通知节点的标识是在区块链系统上进行注册之后所分配的;同时由于事件通知节点在区块链网络中进行了注册,因此事件通知节点可以访问区块链网络中的任意共识节点,即事件通知节点可以与区块链网络中的任意共识节点进行通信,从而获取到与订阅事件主题相关联的链上事件,并将获取到的与订阅事件主题相关联的链上事件推送给相应的业务订阅方。
可以理解的是,为事件通知节点所分配的标识是用于唯一表征事件通知节点身份的信息;同时,事件通知节点可以有一个或多个(两个及两个以上),每个事件通知节点都有属于自己的唯一标识,进而予以区分不同的事件通知节点,在实际应用中,事件通知节点的数量可以根据具体应用场景进行灵活调整。
可以理解的是,外部服务方包括但不限于业务订阅方、业务推送方以及第三服务方;即事件通知节点可以由业务订阅方、业务推送方以及第三服务方等进行创建。
在本申请的一个实施例中,第三服务方可以是任意具有专业能力的企业方;这样可以使得所创建的事件通知节点的可靠性和稳定性更高,业务推送方和业务订阅方只需对接该第三服务方即可,为业务推送方和业务订阅方带来诸多便利。
在本申请的一个实施例中,事件通知节点303对应设置有本地服务器,其中事件通知节点303接收到业务订阅方发送的订阅的事件主题与业务订阅方地址时,是将接收到的订阅的事件主题与业务订阅方地址关联存储在本地服务器上;这样可以不用将相关订阅事件的一系列信息上链,因此可以保证相关订阅事件的一系列信息的隐私性和安全性,避免了由于相关订阅事件的一系列信息的泄露造成业务订阅方隐私数据泄露的现象。
其中,区块链网络可以是图1中所示的区块链网络,并且该区块网络中各个共识节点中除了有业务合约之外,还新增有链上事件分发合约,其中该新增的链上事件分发合约可以用于存储所生成的链上事件以及链上事件的事件主题等和链上事件相关的一系列信息,同时还可以用于维护事件通知节点的一系列信息;这样可以不用再对业务合约进行操作,将链上事件的处理与业务合约相分离,在极大程度上降低了耦合性,便于后期链上事件以及业务的维护、更新以及扩展等。
以下对本申请实施例的技术方案的各种实现细节进行详细阐述:
请参阅图4,图4是本申请的一个实施例示出的基于区块链系统的事件处理方法的流程图,该基于区块链系统的事件处理方法可以由图3中所示的区块链网络中的共识节点来执行。如图4所示,基于区块链系统的事件处理方法至少包括步骤S401至步骤S404,详细介绍如下:
步骤S401,接收针对业务合约的调用请求,根据调用请求触发对业务合约的执行,以生成链上事件。
本申请实施例中业务合约指的是根据特定条件自动执行的合约程序,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易;其中业务合约包括但不限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约等。
本申请实施例中链上事件指的是调用业务合约时触发的事件,即共识节点在接收到针对业务合约的调用请求时,会根据接收到的调用请求去触发业务合约的执行,进而生成链上事件。可以理解的是,在业务合约中,事件指的是操作所触发的行为,通常使用关键字event来定义事件,触发事件的结果是将数据记录/存储在相应的区块链上。
在本申请的一个实施例中,共识节点接收到的针对业务合约的调用请求可以是业务推送方在有业务需求时进行发送的,从而共识节点可以根据接收到的来自于业务推送方的调用请求,触发业务合约的执行,以生成链上事件。
步骤S402,将链上事件与链上事件的事件主题关联存储在链上事件分发合约中。
本申请实施例中共识节点接收针对业务合约的调用请求,并根据接收到的调用请求触发业务合约的执行,生成链上事件之后,可以将链上事件与链上事件的主题关联存储在链上事件分发合约中。
本申请实施例中链上事件分发合约指的是专用于存储和链上事件相关信息的合约;即本申请实施例中是单独新增一个链上事件分发合约,将其与业务合约分离开,这样可以不用再对业务合约进行操作,将链上事件的处理与业务合约相分离,在极大程度上降低了耦合性,便于后期链上事件以及业务的维护、更新以及扩展等。
其中,本申请实施例中链上事件分发合约中关联存储有链上事件与链上事件的事件主题。可以理解的是,链上事件都对应有主题,其中不同类链上事件的主题不同,主题之间是相互独立的;例如链上事件a1和链上事件a2属于同一类链上事件,则都对应事件主题A,链上事件a1和链上事件b1属于不同类链上事件,其中链上事件a1对应事件主题A,链上事件b1对应事件主题B。
在本申请的一个实施例中,调用请求中携带有事件通知节点的标识,事件分发合约包括事件通知节点对象集合;请参阅图5,步骤S402中将链上事件与链上事件的事件主题关联存储在链上事件分发合约中的过程,可以包括步骤S501至步骤S502,详细介绍如下:
步骤S501,在事件通知节点对象集合中查找与事件通知节点的标识匹配的目标事件通知节点;
步骤S502,将链上事件与链上事件的事件主题关联存储在目标事件通知节点对应的待通知事件队列中。
也即,可选实施例中事件分发合约包括事件通知节点对象集合,其中事件通知节点对象集合用于存储事件通知节点相关的信息,具体地,事件通知节点对象集合包括但不限于存储事件通知节点的标识;因而,共识节点在根据调用请求触发对业务合约的执行生成链上事件之后,共识节点可以先在事件通知节点对象集合中去查找与调用请求中所携带的事件通知节点的标识匹配的目标事件通知节点,进而将链上事件与链上事件的事件主题关联存储在目标事件通知节点对应的待通知事件队列中。
可以理解的是,请参阅图6,事件分发合约包括事件通知节点对象集合,其中事件通知节点对象集合包括事件通知节点的标识,以及与事件通知节点的标识对应的待通知事件队列,链上事件与链上事件的主题是直接关联存储在目标事件通知节点对应的待通知事件队列中。
举例说明,设事件分发合约中包括事件通知节点对象集合,其中事件通知节点对象集合包括的事件通知节点的标识,以及与事件通知节点的标识对应的待通知事件队列如下表1所示;同时设共识节点接收到携带有事件通知节点的标识1的调用请求之后,此时共识节点可以在事件通知节点对象集合中查找到与事件通知节点的标识1匹配的目标事件通知节点1,进而将链上事件a1与链上事件的事件主题A关联存储在目标事件通知节点1对应的待通知事件队列Q1中。
事件通知节点的标识 | 待通知事件队列 |
1 | Q1 |
2 | Q2 |
3 | Q3 |
…… | …… |
表1
这样,通过为不同事件通知节点分配对应的待通知事件队列,可以使得不同事件通知节点只能获取到自身待通知事件队列中所关联存储的链上事件与链上事件的事件主题,链上事件相关信息的隐私性和安全性更高。
在本申请的一个实施例中,调用请求中携带有事件通知节点的标识,事件分发合约包括待通知事件集合和事件通知节点对象集合;请参阅图7,步骤S402中将链上事件与链上事件的事件主题关联存储在链上事件分发合约中的过程,可以包括步骤S701至步骤S702,详细介绍如下:
步骤S701,将链上事件与链上事件的事件主题关联存储在待通知事件集合中,以及在事件通知节点对象集合中查找与事件通知节点的标识匹配的目标事件通知节点;
步骤S702,将链上事件在待通知事件集合中的索引信息存储在目标事件通知节点对应的待通知事件队列中。
也即,可选实施例中事件分发合约包括待通知事件集合和事件通知节点对象集合,其中待通知事件集合用于存储链上事件相关信息,具体地,待通知事件集合包括但不限于关联存储链上事件与链上事件的事件主题,事件通知节点对象集合用于存储事件通知节点相关的信息,具体地,事件通知节点对象集合包括但不限于存储事件通知节点的标识;因而,共识节点在根据调用请求触发对业务合约的执行生成链上事件之后,共识节点可以先将链上事件与链上事件的事件主题关联存储在待通知事件集合中,并同时在事件通知节点对象集合中查找与事件通知节点的标识匹配的目标事件通知节点,进而将链上事件在待通知事件集合中的索引信息存储在目标事件通知节点对应的待通知事件队列中。
可以理解的是,请参阅图8,事件分发合约中同时包括待通知事件集合和事件通知节点对象集合,其中待通知事件集合包括关联存储的链上事件与链上事件的事件主题,事件通知节点对象集合包括事件通知节点的标识,以及与事件通知节点的标识对应的待通知事件队列,链上事件与链上事件的主题是直接关联存储在待通知事件集合中,而存储在目标事件通知节点对应的待通知事件队列中的是链上事件在待通知事件集合中的索引信息。
举例说明,设事件分发合约中包括待通知事件集合和事件通知节点对象集合,其中待通知事件集合包括关联存储链上事件与链上事件的事件主题如下表2所示,事件通知节点对象集合包括的事件通知节点的标识,以及与事件通知节点的标识对应的待通知事件队列如上表1所示;设接收到携带有事件通知节点的标识1的调用请求之后,此时共识节点可以将链上事件a1与链上事件的事件主题A关联存储在待通知事件集合中,同时在事件通知节点对象集合中查找到与事件通知节点的标识1匹配的目标事件通知节点1,进而将链上事件a1在待通知事件集合中的索引信息存储在目标事件通知节点1对应的待通知事件队列Q1中。
链上事件 | 链上事件的事件主题 |
a2 | A |
b3 | B |
c1 | C |
…… | …… |
表2
这样,通过为不同事件通知节点分配对应的待通知事件队列,不仅可以使得不同事件通知节点只能获取到自身待通知事件队列中所关联存储的链上事件与链上事件的事件主题,链上事件相关信息的隐私性和安全性更高,而且由于待通知事件队列中仅存储链上事件在待通知事件集合中的索引信息,对于不同业务订阅方向不同事件通知节点订阅同一事件主题的事件而言,相同的链上事件与链上事件的事件主题仅需要存储一次即可,在极大程度上节省了系统存储空间。
举例说明,例如业务订阅方k1向事件通知节点1订阅了事件主题为A的事件,业务订阅方k2向事件通知节点2订阅了事件主题为A的事件,此时待通知事件集合中存储事件主题为A的事件,而在待通知事件集合中,对于事件通知节点1对应的待通知事件队列Q1和事件通知节点2对应的待通知事件队列Q2中只需存储事件主题为A的事件在待通知事件集合中的索引信息即可,不用再分别单独存储事件主题为A的事件,由此可以节省系统存储空间,尤其是在业务订阅方所订阅的事件数量较多时,节省的系统存储空间则越多。
在本申请的一个实施例中,该区块链系统的事件处理方法还可以包括以下步骤:
若在事件通知节点对象集合中未查找到与事件通知节点的标识匹配的目标事件通知节点,则在事件通知节点对象集合中新建与事件通知节点的标识匹配的目标事件通知节点。
也即,可选实施例中如果共识节点在事件通知节点对象集合中未查找到与事件通知节点的标识匹配的目标事件通知节点,则表征需要该事件通知节点还未在事件通知节点对象集合中创建,因此,此时需要在事件通知节点对象集合中新建与事件通知节点的标识匹配的目标事件通知节点,相应地,也会为该新建的目标事件通知节点分配对应的待通知事件队列;如果共识节点在事件通知节点对象集合中查找到与事件通知节点的标识匹配的目标事件通知节点,则表征需要该事件通知节点已在事件通知节点对象集合中创建过,直接找到其对应的待通知事件队列即可。
在本申请的一个实施例中,一个事件通知节点可以对应一个待通知事件队列;例如如上述表1所示,事件通知节点1对应待通知事件队列Q1,即只要共识节点接收到的调用请求中携带有事件通知节点的标识1,则可以将链上事件与链上事件的事件主题关联存储在待通知事件队列Q1中,或者可以将链上事件在待通知事件集合中的索引信息存储在待通知事件队列Q1中。
这样,共识节点针对一个事件通知节点只需要维护其对应的一个待通知事件队列,更加便于维护。
在本申请的一个实施例中,一个事件通知节点可以对应多个待通知事件队列,其中一个待通知事件队列对应一个事件主题;例如事件通知节点1对应待通知事件队列Q1、Q2、Q3,那么当共识节点接收到的调用请求中携带有事件通知节点的标识1,则可以根据生成的链上事件的事件主题查找到事件通知节点的标识1对应的与该链上事件的事件主题匹配的待通知事件队列如待通知事件队列Q2,此时可以将链上事件与链上事件的事件主题关联存储在待通知事件队列Q2中,或者可以将链上事件在待通知事件集合中的索引信息存储在待通知事件队列Q2中。
这样,根据事件主题对事件通知节点所对应的待通知事件队列进行进一步划分,并分类进行存储,可以使得共识节点更加快速、简便地获取到与订阅事件主题相关联的链上事件,进而提升了事件通知节点将与业务订阅方订阅的事件主题相关联的链上事件推送给业务订阅方的效率。
步骤S403,从链上事件分发合约中获取与订阅事件主题相关联的链上事件。
本申请实施例中共识节点将链上事件与链上事件的事件主题关联存储在链上事件分发合约中之后,就可以从链上事件分发合约中获取与订阅事件主题相关联的链上事件。
本申请实施例中共识节点从链上事件分发合约中获取与订阅事件主题相关联的链上事件,其中的订阅事件主题指的是业务订阅方订阅的事件主题,并且该订阅事件主题可以是一个或多个,其中可以是来自同一业务订阅方订阅的一个或多个事件主题,或者可以是来自不同业务订阅方订阅的一个或多个事件主题。
在本申请的一个实施例中,步骤S403中从链上事件分发合约中获取与订阅事件主题相关联的链上事件的过程,可以包括以下步骤:
接收事件通知节点发送的链上事件获取请求,并根据链上事件获取请求,从链上事件分发合约中获取与订阅事件主题相关联的链上事件。
也即,可选实施例中如果共识节点接收到事件通知节点发送的链上事件获取请求,则共识节点就根据该接收到的链上事件获取请求,从链上事件分发合约中获取与订阅事件主题相关联的链上事件,如果共识节点未接收到事件通知节点发送的链上事件获取请求,则共识节点就不会从链上事件分发合约中获取与订阅事件主题相关联的链上事件。即,共识节点从链上事件分发合约中获取与订阅事件主题相关联的链上事件的触发条件是,其接收到事件通知节点发送的链上事件获取请求。
举例说明,事件通知节点可以是通过定时拉取其自身节点的待通知事件队列的方式以获取到与订阅事件主题相关联的链上事件,因此,事件通知节点可以定时向共识节点发送链上事件获取请求,从而共识节点根据该链上事件获取请求从链上事件分发合约中获取与订阅事件主题相关联的链上事件并发送至事件通知节点。
在本申请的一个实施例中,步骤S403中从链上事件分发合约中获取与订阅事件主题相关联的链上事件的过程,可以包括以下步骤:
根据预设时长触发机制从链上事件分发合约中获取与订阅事件主题相关联的链上事件。
也即,可选实施例中共识节点侧设置有预设时长触发机制,其中如果满足了预设时长触发机制中的触发条件,则共识节点就自动触发从链上事件分发合约中获取与订阅事件主题相关联的链上事件,如果未满足预设时长触发机制中的触发条件,则共识节点就不会从链上事件分发合约中获取与订阅事件主题相关联的链上事件。即,共识节点从链上事件分发合约中获取与订阅事件主题相关联的链上事件的触发条件是,满足预设时长触发机制中的触发条件。
其中,预设时长触发机制中的触发条件可以是当某一时刻到达,则触发执行从链上事件分发合约中获取与订阅事件主题相关联的链上事件,或者可以是当满足预设时间段间隔,则触发执行从链上事件分发合约中获取与订阅事件主题相关联的链上事件,在实际应用中,可以根据具体应用场景进行灵活设置。
举例说明,设预设时长触发机制中的触发条件为每隔2小时触发一次从链上事件分发合约中获取与订阅事件主题相关联的链上事件,那么共识节点就是每隔2小时自动触发从链上事件分发合约中获取与订阅事件主题相关联的链上事件。
在本申请的一个实施例中,步骤S403中从链上事件分发合约中获取与订阅事件主题相关联的链上事件的过程,可以包括以下步骤:
从与订阅事件主题匹配的事件通知节点对应的待通知事件队列中所包含的链上事件与链上事件的事件主题中,获取与订阅事件主题相关联的链上事件。
也即,可选实施例中在调用请求中携带有事件通知节点的标识,事件分发合约包括事件通知节点对象集合,事件通知节点对应的待通知事件队列中关联存储有链上事件与链上事件的事件主题时,共识节点可以确定与订阅事件主题匹配的事件通知节点,然后从与订阅事件主题匹配的事件通知节点对应的待通知事件队列中,获取与订阅事件主题相关联的链上事件。
在本申请的一个实施例中,请参阅图9,步骤S403中从链上事件分发合约中获取与订阅事件主题相关联的链上事件的过程,可以包括步骤S901至步骤S902,详细介绍如下:
步骤S901,遍历与订阅事件主题匹配的事件通知节点对应的待通知事件队列中所包含的链上事件的索引信息;
步骤S902,根据遍历到的链上事件的索引信息,从链上事件集合中获取与链上事件的索引信息对应的链上事件。
也即,可选实施例中在调用请求中携带有事件通知节点的标识,事件分发合约同时包括待通知事件集合和事件通知节点对象集合,待通知事件集合中关联存储有链上事件与链上事件的事件主题,事件通知节点对应的待通知事件队列中存储有链上事件的索引信息时,共识节点可以确定与订阅事件主题匹配的事件通知节点,然后遍历与订阅事件主题匹配的事件通知节点对应的待通知事件队列,进而可以根据遍历到的链上事件的索引信息,从链上事件集合中获取与链上事件的索引信息对应的链上事件。
步骤S404,发送与订阅事件主题相关联的链上事件至事件通知节点,以使事件通知节点将与业务订阅方订阅的事件主题相关联的链上事件推送给业务订阅方。
本申请实施例中共识节点从链上事件分发合约中获取与订阅事件主题相关联的链上事件之后,就可以发送与订阅事件主题相关联的链上事件至事件通知节点,进而事件通知节点将与业务订阅方订阅的事件主题相关联的链上事件推送给业务订阅方。
本申请实施例中在共识节点侧新增有链上事件分发合约,以用于存储业务合约执行所生成的链上事件以及链上事件的事件主题等数据,这样可以不用再对业务合约进行操作,将链上事件的处理与业务合约相分离,在极大程度上降低了耦合性,便于后期链上事件以及业务的维护、更新以及扩展等。
图4所示实施例是从共识节点的角度进行的阐述,以下结合图10从事件通知节点的角度对本申请实施例的技术方案的实现细节进行详细阐述:
请参阅图10,图10是本申请的一个实施例示出的基于区块链系统的事件处理方法的流程图,该基于区块链系统的事件处理方法可以由图3中所示的事件通知节点来执行。如图10所示,基于区块链系统的事件处理方法至少包括步骤S1001至步骤S1003,详细介绍如下:
步骤S1001,接收业务订阅方发送的所订阅的事件主题与业务订阅方地址,将订阅的事件主题与业务订阅方地址进行关联存储。
本申请实施例中事件通知节点接收到的订阅的事件主题与业务订阅方地址可以是业务订阅方在有业务需求时进行发送的,从而事件通知节点可以将接收到的来自于业务订阅方所发送的订阅的事件主题与业务订阅方地址进行关联存储,以便可以根据接收到的来自于共识节点所发送的链上事件的事件主题确定出对应的业务订阅方,进而发送至该确定出的对应的业务订阅方。
在本申请的一个实施例中,事件通知节点接收到来自于业务订阅方所订阅的事件主题与业务订阅方地址时,是将订阅的事件主题与业务订阅方地址关联存储在本地服务器上;这样可以不用将相关订阅事件的一系列信息上链,因此可以保证相关订阅事件的一系列信息的隐私性和安全性,避免了由于相关订阅事件的一系列信息的泄露造成业务订阅方隐私数据泄露的现象。
步骤S1002,接收共识节点发送的与订阅事件主题相关联的链上事件。
本申请实施例中事件通知节点可以接收来自于共识节点所发送的与订阅事件主题相关联的链上事件;其中,事件通知节点接收到的与订阅事件主题相关联的链上事件是共识节点从链上事件分发合约中获取到的,请参见前述实施例中的介绍,这里不再赘述。
可以理解的是,步骤S1001与步骤S1002可以任意交换顺序执行,也可以并行执行,在实际应用中,可以根据具体应用场景进行灵活调整。
步骤S1003,根据订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件。
本申请实施例中事件通知节点接收共识节点发送的与订阅事件主题相关联的链上事件之后,就可以根据订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件。
举例说明,例如设事件通知节点接收到与订阅事件主题A相关联的链上事件a1、a2,与订阅事件主题B相关联的链上事件b1,以及与订阅事件主题C相关联的链上事件c1,同时设事件通知节点关联存储订阅的事件主题与业务订阅方地址如下表3所示;那么此时事件通知节点将链上事件a1、a2分别发送至Adress1、Adress3对应的业务订阅方,将链上事件b1发送至Adress2对应的业务订阅方,将链上事件c1发送至Adress3对应的业务订阅方。
表3
可以理解的是,根据表3可以看出,有2个业务订阅方都订阅了事件主题为A的事件,其中多个业务订阅方可以向事件通知节点订阅同一事件主题的事件,也可以向事件通知节点订阅不同事件主题的事件,在实际应用中,可以根据具体应用场景进行灵活调整。
在本申请的一个实施例中,步骤S1003中根据订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件的过程,可以包括以下步骤:
若根据订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件失败,则重复发送与业务订阅方订阅的事件主题相关联的链上事件,直至发送成功或者直至重复发送次数达到预设发送次数阈值。
也即,可选实施例中如果根据订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件失败了,那么可以重复发送与业务订阅方订阅的事件主题相关联的链上事件,直至发送成功或者直至重复发送次数达到预设发送次数阈值;其中在实际应用中,预设发送次数阈值可以灵活进行设置,例如设置为3次或5次等。
这样,通过重复发送机制,保证了向业务订阅方发送与其订阅的事件主题相关联的链上事件的成功率,进而使得业务订阅方可以根据接收到的链上事件进行相应业务处理等。
在本申请的一个实施例中,该区块链系统的事件处理方法还可以包括以下步骤:
若重复发送次数达到预设发送次数阈值且发送与业务订阅方订阅的事件主题相关联的链上事件失败,则发送标记指令至共识节点,以使共识节点根据标记指令中携带的发送失败的链上事件的标识,对链上事件分发合约中包含的链上事件进行标记。
也即,可选实施例中如果重复发送次数达到预设发送次数阈值且发送与业务订阅方订阅的事件主题相关联的链上事件失败,那么可以发送标记指令至共识节点,其中标记指令中携带有发送失败的链上事件的标识,这样共识节点就可以根据标记指令中携带的发送失败的链上事件的标识查找到链上事件分发合约中与该发送失败的链上事件的标识匹配的链上事件,并对该链上事件进行标记,以用于确定标记后的目标链上事件为死信事件。
这样,通过对重复发送失败的链上事件进行标记,可以根据该标记确定链上事件为死信事件,从而共识节点可以不用再获取该死信事件,节省了系统资源消耗。
在本申请的一个实施例中,在步骤S1003中根据订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件的过程之后,该区块链系统的事件处理方法还可以包括:
若根据订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件成功,则发送删除指令至共识节点,以使共识节点根据删除指令中携带的事件通知节点的标识以及发送成功的链上事件的标识,删除链上事件分发合约中待通知事件队列包含的链上事件的索引信息。
也即,可选实施例中如果根据订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件成功了,那么可以发送删除指令至共识节点,其中,删除指令中携带有事件通知节点的标识以及发送成功的链上事件的标识,这样共识节点就可以根据删除指令中携带的事件通知节点的标识查找到链上事件分发合约中与该事件通知节点的标识匹配的事件通知节点的待通知事件队列,进而删除该待通知事件队列包含的与该发送成功的链上事件的标识匹配的链上事件的索引信息。
本申请实施例中区块链系统中新增有事件通知节点,以用于接收与订阅事件主题相关联的链上事件,并将与业务订阅方订阅的事件主题相关联的链上事件推送给对应的业务订阅方,这样不用进行轮询数据,推送效率较高;并且,事件通知节点只能获取到与自身相关的链上事件等数据,数据的隐私性和安全性均更高;同时,由事件通知节点进行链上事件的推送,将链上事件的处理与业务处理相分离,进一步降低了耦合性,更加便于后期链上事件以及业务的维护、更新以及扩展等。
请参阅图11,图11是本申请的一个实施例示出的基于区块链系统的事件处理方法的流程图,区块链系统包括共识节点和事件通知节点;基于区块链系统的事件处理方法可以包括至少步骤S1101至步骤S1107,详细介绍如下:
步骤S1101,共识节点接收针对业务合约的调用请求,根据调用请求触发对业务合约的执行,以生成链上事件;
步骤S1102,共识节点将链上事件与链上事件的事件主题关联存储在链上事件分发合约中;
步骤S1103,共识节点从链上事件分发合约中获取与订阅事件主题相关联的链上事件;
步骤S1104,共识节点发送与订阅事件主题相关联的链上事件至事件通知节点;
步骤S1105,事件通知节点接收业务订阅方发送的所订阅的事件主题与业务订阅方地址,将订阅的事件主题与业务订阅方地址进行关联存储;
步骤S1106,事件通知节点接收共识节点发送的与订阅事件主题相关联的链上事件;
步骤S1107,事件通知节点根据订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件。
可选地,步骤S1101至步骤S1107的具体实施过程请参见前述实施例的技术方案,这里不再赘述。
以下对本申请实施例的一个具体应用场景进行详细说明:
请参阅图12,图12是本申请的一个实施例示出的基于区块链系统的事件处理方法的流程图,区块链系统包括共识节点和事件通知节点,其中:
首先,从事件订阅流程进行说明:
步骤S1211,业务方或者第三服务方创建事件通知节点。
可选地,事件通知节点中部署并运行有事件通知节点程序。
可选地,业务方可以为业务推送方,也可以为业务订阅方。
可选地,第三服务方可以为任意具有专业创建能力的企业方;这样可以使得所创建的事件通知节点的可靠性和稳定性更高,业务推送方和业务订阅方只需对接该第三服务方即可,为业务推送方和业务订阅方带来诸多便利。
可选地,业务推送方和业务订阅方可以是联盟内的实名制企业;这样对进行通信的主体身份进行了识别,各方通信能够得到保障,避免了由于某方恶意注册进行攻击(如注册大部分无效的回调地址进行攻击)的现象,提升了各方通信的安全性。
步骤S1212,业务方或者第三服务方在区块链系统上注册所创建的事件通知节点。
可选地,可以通过运行事件通知节点程序的链上注册命令,从而自动进行所创建的事件通知节点的注册,并且事件通知节点在区块链系统上进行注册之后为其分配有事件通知节点的标识如事件通知节点ID。
步骤S1213,共识节点将事件通知节点的标识存储在事件分发合约中。
可选地,链上事件分发合约包括待通知事件集合和事件通知节点对象集合,待通知事件集合用于关联存储有链上事件与链上事件的事件主题,事件通知节点对象集合包括事件通知节点以及与事件通知节点对应的待通知事件队列,待通知事件队列用于存储链上事件在待通知事件集合中的索引信息。
步骤S1214,事件通知节点接收业务订阅方发送的所订阅的事件主题与业务订阅方地址,将订阅的事件主题与业务订阅方地址进行关联存储。
可选地,图12中所示的外部服务可以为业务订阅方。
可选地,事件通知节点将接收到的订阅的事件主题与业务订阅方地址关联存储在本地服务器上;这样可以不用将相关订阅事件的一系列信息上链,因此可以保证相关订阅事件的一系列信息的隐私性和安全性,避免了由于相关订阅事件的一系列信息的泄露造成业务订阅方隐私数据泄露的现象。
可选地,步骤S1211至步骤S1214的具体实施过程请参见前述实施例的技术方案,这里不再赘述。
其次,从事件分发流程进行说明:
步骤S1221,共识节点接收业务推送方发送的针对业务合约的调用请求,并根据调用请求触发对业务合约的执行,以生成链上事件。
可选地,业务推送方在有业务需求时可以向共识节点发送针对业务合约的调用请求,从而共识节点可以根据接收到的来自于业务推送方的调用请求,触发业务合约的执行,生成链上事件。
可选地,共识节点根据调用请求触发对业务合约的执行,可以是在业务合约内调用事件分发合约的事件分发函数,并传入事件通知节点的标识、订阅的事件以及订阅事件的事件主题(该可以是业务订阅方发送至业务推送方,进而业务推送方发送至共识节点)。
步骤S1222,共识节点将生成的链上事件与该链上事件的事件主题关联存储在链上事件分发合约中。
可选地,链上事件分发合约包括待通知事件集合和事件通知节点对象集合,待通知事件集合用于关联存储有链上事件与链上事件的事件主题,事件通知节点对象集合包括事件通知节点以及与事件通知节点对应的待通知事件队列,待通知事件队列用于存储链上事件在待通知事件集合中的索引信息。
步骤S1223,共识节点从链上事件分发合约中获取与订阅事件主题相关联的链上事件并发送至事件通知节点。
可选地,事件通知节点可以定时向共识节点发送链上事件获取请求,从而共识节点根据该链上事件获取请求从链上事件分发合约中获取与订阅事件主题相关联的链上事件并发送至事件通知节点,即事件通知节点定时拉取其自身节点的待通知事件队列以获取到与订阅事件主题相关联的链上事件。
步骤S1224,事件通知节点根据订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件。
可选地,如果向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件失败,可以重复进行发送,例如以时间递增的方式进行重复发送,直到发送成功,或者直到达到预设发送次数阈值。
可选地,如果重复发送次数达到预设发送次数阈值且发送与业务订阅方订阅的事件主题相关联的链上事件失败,可以将事件分发合约中待通知事件集合包含的链上事件进行标记,以用于确定标记后的目标链上事件为死信事件。
可选地,如果向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件成功之后,可以自适应(包括定时或不定时)批量将事件分发合约中待通知事件队列包含的索引信息进行删除。
可选地,步骤S1221至步骤S1224的具体实施过程请参见前述实施例的技术方案,这里不再赘述。
本申请实施例中通过在共识节点侧新增链上事件分发合约,以用于存储业务合约执行所生成的链上事件以及链上事件的事件主题等数据,以将链上事件的处理与业务合约相分离,这样降低了耦合性,便于后期链上事件以及业务的维护、更新以及扩展等;并且通过在创建并注册事件通知节点,以用于接收与订阅事件主题相关联的链上事件,并将与业务订阅方订阅的事件主题相关联的链上事件推送给对应的业务订阅方,推送效率高、数据的隐私性高、数据的安全性高。
图13是本申请的一个实施例示出的基于区块链系统的事件处理装置的框图。如图13所示,该区块链系统包括共识节点和事件通知节点,该基于区块链系统的事件处理装置配置于共识节点中,该装置包括:
第一接收模块1301,配置为接收针对业务合约的调用请求,根据调用请求触发对业务合约的执行,以生成链上事件;
存储模块1302,配置为将链上事件与链上事件的事件主题关联存储在链上事件分发合约中;
获取模块1303,配置为从链上事件分发合约中获取与订阅事件主题相关联的链上事件;
第一发送模块1304,配置为发送与订阅事件主题相关联的链上事件至事件通知节点,以使事件通知节点将与业务订阅方订阅的事件主题相关联的链上事件推送给业务订阅方。
在本申请的一个实施例中,调用请求中携带有事件通知节点的标识,事件分发合约包括事件通知节点对象集合;存储模块1302包括:
查找单元,配置为在事件通知节点对象集合中查找与事件通知节点的标识匹配的目标事件通知节点;
第一存储单元,配置为将链上事件与链上事件的事件主题关联存储在目标事件通知节点对应的待通知事件队列中。
在本申请的一个实施例中,调用请求中携带有事件通知节点的标识,事件分发合约包括待通知事件集合和事件通知节点对象集合;存储模块1302包括:
存储与查找单元,配置为将链上事件与链上事件的事件主题关联存储在待通知事件集合中,以及在事件通知节点对象集合中查找与事件通知节点的标识匹配的目标事件通知节点;
第二存储单元,配置为将链上事件在待通知事件集合中的索引信息存储在目标事件通知节点对应的待通知事件队列中。
在本申请的一个实施例中,存储模块1302包括:
新建单元,配置为若在事件通知节点对象集合中未查找到与事件通知节点的标识匹配的目标事件通知节点,则在事件通知节点对象集合中新建与事件通知节点的标识匹配的目标事件通知节点。
在本申请的一个实施例中,获取模块1303包括:
遍历单元,配置为遍历与订阅事件主题匹配的事件通知节点对应的待通知事件队列中所包含的链上事件的索引信息;
第一获取单元,配置为根据遍历到的链上事件的索引信息,从链上事件集合中获取与链上事件的索引信息对应的链上事件。
在本申请的一个实施例中,获取模块1303包括:
第二获取单元,配置为接收事件通知节点发送的链上事件获取请求,并根据链上事件获取请求,从链上事件分发合约中获取与订阅事件主题相关联的链上事件。
在本申请的一个实施例中,获取模块1303包括:
第三获取单元,配置为根据预设时长触发机制从链上事件分发合约中获取与订阅事件主题相关联的链上事件。
图14是本申请的一个实施例示出的基于区块链系统的事件处理装置的框图。如图14所示,该区块链系统包括共识节点和事件通知节点,该基于区块链系统的事件处理装置配置于事件通知节点中,该装置包括:
第二接收模块1401,配置为接收业务订阅方发送的订阅事件主题与业务订阅方地址,将订阅事件主题与业务订阅方地址进行关联存储;
第三接收模块1402,配置为接收共识节点发送的与订阅事件主题相关联的链上事件;
第二发送模块1403,配置为根据订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件。
在本申请的一个实施例中,装置还包括:
创建及注册模块,配置为事件通知节点是由外部服务方创建并在区块链系统上进行注册的,事件通知节点的标识是在区块链系统上进行注册之后分配的;其中,外部服务方包括业务订阅方、业务推送方以及第三服务方中的一个。
在本申请的一个实施例中,第二发送模块1403具体配置为
若根据订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件失败,则重复发送与业务订阅方订阅的事件主题相关联的链上事件,直至发送成功或者直至重复发送次数达到预设发送次数阈值。
在本申请的一个实施例中,装置还包括:
第三发送模块,配置为若重复发送次数达到预设发送次数阈值且发送与业务订阅方订阅的事件主题相关联的链上事件失败,则发送标记指令至共识节点,以使共识节点根据标记指令中携带的发送失败的链上事件的标识,对链上事件分发合约中包含的链上事件进行标记。
在本申请的一个实施例中,装置还包括:
第四发送模块,配置为若根据订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件成功,则发送删除指令至共识节点,以使共识节点根据删除指令中携带的事件通知节点的标识以及发送成功的链上事件的标识,删除链上事件分发合约中待通知事件队列包含的链上事件的索引信息。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,这里不再赘述。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得电子设备实现如前的基于区块链系统的事件处理方法。
图15示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图15示出的电子设备的计算机系统1500仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图15所示,计算机系统1500包括中央处理单元(Central Processing Unit,CPU)1501,其可以根据存储在只读存储器(Read-Only Memory,ROM)1502中的程序或者从储存部分1508加载到随机访问存储器(Random Access Memory,RAM)1503中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在RAM 1503中,还存储有系统操作所需的各种程序和数据。CPU 1501、ROM 1502以及RAM 1503通过总线1504彼此相连。输入/输出(Input/Output,I/O)接口1505也连接至总线1504。
以下部件连接至I/O接口1505:包括键盘、鼠标等的输入部分1506;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1507;包括硬盘等的储存部分1508;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至I/O接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入储存部分1508。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。在该计算机程序被中央处理单元(CPU)1501执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不相同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的基于区块链系统的事件处理方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的基于区块链系统的事件处理方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (16)
1.一种基于区块链系统的事件处理方法,其特征在于,所述区块链系统包括共识节点和事件通知节点;所述事件处理方法由所述共识节点执行,所述方法包括:
接收针对业务合约的调用请求,根据所述调用请求触发对所述业务合约的执行,以生成链上事件;
将所述链上事件与所述链上事件的事件主题关联存储在链上事件分发合约中;
从所述链上事件分发合约中获取与订阅事件主题相关联的链上事件;
发送与所述订阅事件主题相关联的链上事件至所述事件通知节点,以使所述事件通知节点将与业务订阅方订阅的事件主题相关联的链上事件推送给所述业务订阅方。
2.如权利要求1所述的方法,其特征在于,所述调用请求中携带有事件通知节点的标识,所述事件分发合约包括事件通知节点对象集合;所述将所述链上事件与所述链上事件的事件主题关联存储在链上事件分发合约中,包括:
在所述事件通知节点对象集合中查找与所述事件通知节点的标识匹配的目标事件通知节点;
将所述链上事件与所述链上事件的事件主题关联存储在所述目标事件通知节点对应的待通知事件队列中。
3.如权利要求1所述的方法,其特征在于,所述调用请求中携带有事件通知节点的标识,所述事件分发合约包括待通知事件集合和事件通知节点对象集合;所述将所述链上事件与所述链上事件的事件主题关联存储在链上事件分发合约中,包括:
将所述链上事件与所述链上事件的事件主题关联存储在所述待通知事件集合中,以及在所述事件通知节点对象集合中查找与所述事件通知节点的标识匹配的目标事件通知节点;
将所述链上事件在所述待通知事件集合中的索引信息存储在所述目标事件通知节点对应的待通知事件队列中。
4.如权利要求2或3所述的方法,其特征在于,所述方法还包括:
若在所述事件通知节点对象集合中未查找到与所述事件通知节点的标识匹配的目标事件通知节点,则在所述事件通知节点对象集合中新建与所述事件通知节点的标识匹配的目标事件通知节点。
5.如权利要求3所述的方法,其特征在于,所述从所述链上事件分发合约中获取与订阅事件主题相关联的链上事件,包括:
遍历与所述订阅事件主题匹配的事件通知节点对应的待通知事件队列中所包含的链上事件的索引信息;
根据遍历到的链上事件的索引信息,从所述链上事件集合中获取与所述链上事件的索引信息对应的链上事件。
6.如权利要求1所述的方法,其特征在于,所述从所述链上事件分发合约中获取与订阅事件主题相关联的链上事件,包括:
接收所述事件通知节点发送的链上事件获取请求,并根据所述链上事件获取请求,从所述链上事件分发合约中获取与订阅事件主题相关联的链上事件;
或者,
根据预设时长触发机制从所述链上事件分发合约中获取与订阅事件主题相关联的链上事件。
7.一种基于区块链系统的事件处理方法,其特征在于,所述区块链系统包括共识节点和事件通知节点;所述事件处理方法由所述事件通知节点执行,所述方法包括:
接收业务订阅方发送的所订阅的事件主题与业务订阅方地址,将所述订阅的事件主题与所述业务订阅方地址进行关联存储;
接收所述共识节点发送的与订阅事件主题相关联的链上事件;
根据所述订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
所述事件通知节点是由外部服务方创建并在所述区块链系统上进行注册的,所述事件通知节点的标识是在所述区块链系统上进行注册之后分配的;其中,所述外部服务方包括业务订阅方、业务推送方以及第三服务方中的一个。
9.如权利要求7或8所述的方法,其特征在于,所述根据所述订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件,包括:
若根据所述订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件失败,则重复发送所述与业务订阅方订阅的事件主题相关联的链上事件,直至发送成功或者直至重复发送次数达到预设发送次数阈值。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
若重复发送次数达到预设发送次数阈值且发送所述与业务订阅方订阅的事件主题相关联的链上事件失败,则发送标记指令至所述共识节点,以使所述共识节点根据所述标记指令中携带的发送失败的链上事件的标识,对所述链上事件分发合约中包含的链上事件进行标记。
11.如权利要求7或8所述的方法,其特征在于,在所述根据所述订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件之后,所述方法还包括:
若根据所述订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件成功,则发送删除指令至所述共识节点,以使所述共识节点根据所述删除指令中携带的事件通知节点的标识以及发送成功的链上事件的标识,删除所述链上事件分发合约中待通知事件队列包含的链上事件的索引信息。
12.一种基于区块链系统的事件处理装置,其特征在于,所述区块链系统包括共识节点和事件通知节点;所述装置配置于所述共识节点中,所述装置包括:
第一接收模块,配置为接收针对业务合约的调用请求,根据所述调用请求触发对所述业务合约的执行,以生成链上事件;
存储模块,配置为将所述链上事件与所述链上事件的事件主题关联存储在链上事件分发合约中;
获取模块,配置为从所述链上事件分发合约中获取与订阅事件主题相关联的链上事件;
第一发送模块,配置为发送与所述订阅事件主题相关联的链上事件至所述事件通知节点,以使所述事件通知节点将与业务订阅方订阅的事件主题相关联的链上事件推送给所述业务订阅方。
13.一种基于区块链系统的事件处理装置,其特征在于,所述区块链系统包括共识节点和事件通知节点;所述装置配置于所述事件通知节点中,所述装置包括:
第二接收模块,配置为接收业务订阅方发送的订阅事件主题与业务订阅方地址,将所述订阅事件主题与所述业务订阅方地址进行关联存储;
第三接收模块,配置为接收所述共识节点发送的与订阅事件主题相关联的链上事件;
第二发送模块,配置为根据所述订阅事件主题所匹配的业务订阅方地址,向对应的业务订阅方发送与业务订阅方订阅的事件主题相关联的链上事件。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述电子设备执行时,使得所述电子设备实现如权利要求1-6中任一项所述的基于区块链的事件处理方法,或者实现如权利要求7-11中任一项所述的基于区块链的事件处理方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的基于区块链的事件处理方法,或者实现如权利要求7-11中任一项所述的基于区块链的事件处理方法。
16.一种计算机程序产品,包括计算机指令,其特征在于,该计算机指令被处理器执行时实现如权利要求1-6中任一项所述的基于区块链的事件处理方法,或者实现如权利要求7-11中任一项所述的基于区块链的事件处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111307152.2A CN116095081A (zh) | 2021-11-05 | 2021-11-05 | 基于区块链系统的事件处理方法及装置、设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111307152.2A CN116095081A (zh) | 2021-11-05 | 2021-11-05 | 基于区块链系统的事件处理方法及装置、设备、介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116095081A true CN116095081A (zh) | 2023-05-09 |
Family
ID=86204973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111307152.2A Pending CN116095081A (zh) | 2021-11-05 | 2021-11-05 | 基于区块链系统的事件处理方法及装置、设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116095081A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116436965A (zh) * | 2023-06-13 | 2023-07-14 | 中国人民大学 | 一种基于区块链的事件处理系统 |
-
2021
- 2021-11-05 CN CN202111307152.2A patent/CN116095081A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116436965A (zh) * | 2023-06-13 | 2023-07-14 | 中国人民大学 | 一种基于区块链的事件处理系统 |
CN116436965B (zh) * | 2023-06-13 | 2023-09-01 | 中国人民大学 | 一种基于区块链的事件处理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11190525B2 (en) | Blockchain system and permission management method thereof | |
CN101127606B (zh) | 传输数据对象的方法和装置 | |
CN108880794A (zh) | 跨链用户身份及其数字资产管理系统 | |
CN110266872B (zh) | 通讯录数据的管控方法、装置及云通讯录系统、计算机设备、计算机可读存储介质 | |
CN108390950A (zh) | 一种消息推送方法、装置及设备 | |
CN111338906B (zh) | 终端设备、边缘节点及基于区块链的应用监管方法和系统 | |
CN104580121A (zh) | 寻人/人员信息匹配推送的方法、系统、客户端和服务器 | |
CN106648903A (zh) | 调用分布式文件系统的方法和装置 | |
CN113709250B (zh) | 一种基于订阅发送模式的跨域用户数据同步方法 | |
CN110213156A (zh) | 一种跨中心群组即时通信方法和系统 | |
CN113254050A (zh) | 一种微前端系统 | |
CN114723438B (zh) | 一种钱包系统及交易方法 | |
CN116095081A (zh) | 基于区块链系统的事件处理方法及装置、设备、介质 | |
CN113162971B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
US8826026B2 (en) | Systems and methods for tracking electronic files in computer networks using electronic signatures | |
CN116112506A (zh) | 基于联盟链系统的交易信息处理方法、装置、介质及设备 | |
JP2000250832A (ja) | 分散ディレクトリ管理システム | |
US20140372375A1 (en) | Contact data sharing | |
CN113612735B (zh) | 安全存储系统 | |
CN116980412A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN111339189B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN117014175A (zh) | 云系统的权限处理方法、装置、电子设备及存储介质 | |
KR100640512B1 (ko) | 메신저 서비스 시스템을 이용한 서버와 사용자 단말기간에 데이터 동기화 방법 및 그 시스템 | |
KR20210022378A (ko) | 블록체인을 기반으로 한 전자 출결 관리 시스템 및 전자 출결 관리 방법 | |
KR20180120499A (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 |