CN111737356B - 一种区块链事件的处理方法及装置 - Google Patents
一种区块链事件的处理方法及装置 Download PDFInfo
- Publication number
- CN111737356B CN111737356B CN202010691345.1A CN202010691345A CN111737356B CN 111737356 B CN111737356 B CN 111737356B CN 202010691345 A CN202010691345 A CN 202010691345A CN 111737356 B CN111737356 B CN 111737356B
- Authority
- CN
- China
- Prior art keywords
- event processing
- processing center
- event
- block chain
- distributed
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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 using cryptographic hash functions
- H04L9/3239—Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- 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/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic 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)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Multimedia (AREA)
- Finance (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本说明书提供了一种区块链事件的处理方法和装置,应用于与所述区块链的任一节点设备对接的分布式事件处理中心的控制组件;分布式事件处理中心分别从所述节点设备获得各自的区块链事件流,并将各自获得的区块链事件流下发至各自包括的若干触发器,以由所述若干触发器在所述区块链事件流包括的区块链事件满足对应的触发条件时,将所述区块链事件推送至对接的业务系统;所述方法包括:获取所述分布式事件处理中心中任一事件处理中心包括的若干触发器的推送速率;如果所述若干触发器的推送速率差值大于预设的第一阈值,在所述任一事件处理中心与其子级事件处理中心之间建立新的事件处理中心,并将所述若干触发器移动至所述新的事件处理中心。
Description
技术领域
本说明书一个或多个实施方式涉及网络通信领域,尤其涉及一种区块链事件的处理方法和装置。
背景技术
用户在使用区块链时,会产生多种多样的事件,例如:网络共识达成后,产生了新的区块;用户通过SDK发起了一笔交易,并被写入了账本,又或者用户调用了某个智能合约的函数,执行了特定的操作。这些事件对外部业务系统来说,具有较大的价值,外部业务系统可以对这些信息进行处理和加工,将处理结果反馈到实际的业务上。比如通过订阅特定的事件,来监控区块链上某个账户余额的变化;又或者通过订阅特定的事件来监控网络的出块及交易速率等情况。
在实际应用中,一般会有多个系统希望从区块链节点订阅事件:SDK发起交易时,需要订阅事件来判断交易是否被成功执行并写入账本;监控系统需要通过订阅事件来监控区块链网络上的出块速度、交易数量等各种指标数据;业务系统需要根据区块链上特定状态的变化,来执行不同的行为。
发明内容
有鉴于此,本说明书一个或多个实施方式提供了一种区块链事件的处理方法,应用于与所述区块链的节点设备对接的分布式事件处理中心的控制组件;所述分布式事件处理中心分别从所述节点设备获得各自的区块链事件流,并将各自获得的区块链事件流下发至各自包括的触发器,以在所述区块链事件流包括的区块链事件满足所述触发器的触发条件时,将所述区块链事件推送至与所述触发器对应的业务系统;
所述方法包括:
获取所述分布式事件处理中心中任一事件处理中心包括的多个触发器的推送速率;
如果所述多个触发器的推送速率差大于预设的第一阈值,建立新的事件处理中心,将与推送速率最大值的差值大于所述第一阈值的若干触发器,或者,将与推送速率最小值的差值大于所述第一阈值的若干触发器,移动至所述新的事件处理中心。
在又一示出的实施方式中,所述的方法,还包括:
基于每个事件处理中心对所述区块链事件流的下发进度,将所述分布式事件处理中心进行逐级排序以建立分布式事件处理中心序列,父级事件处理中心对所述区块链事件流的下发进度大于其子级事件处理中心对所述区块链事件流的下发进度。
在又一示出的实施方式中,所述建立新的事件处理中心,将与推送速率最大值的差值大于所述第一阈值的若干触发器,或者,将与推送速率最小值的差值大于所述第一阈值的若干触发器,移动至所述新的事件处理中心,包括:
为所述任一事件处理中心建立新的子级事件处理中心,并将所述与推送速率最大值的差值大于所述第一阈值的若干触发器移动至所述新的子级事件处理中心,或者,为所述任一事件处理中心建立新的父级事件处理中心,并将所述与推送速率最大值的差值大于所述第一阈值的若干触发器移动至所述新的父级事件处理中心。
在又一示出的实施方式中,所述的方法,还包括:
获取所述分布式事件处理中心中任一事件处理中心对区块链事件流的下发进度;
如果所述分布式事件处理中心的任一事件处理中心的子级事件处理中心对所述区块链事件流的第二下发进度不小于所述任一事件处理中心对所述区块链事件流的第一下发进度,将所述子级事件处理中心中的触发器移动至所述任一事件处理中心,并移除所述子级事件处理中心。
在又一示出的实施方式中,所述的方法,还包括:
如果所述分布式事件处理中心的任一事件处理中心的子级事件处理中心对所述区块链事件流的第二下发进度不小于所述任一事件处理中心对所述区块链事件流的第一下发进度,且所述第二下发进度与所述第一下发进度的差值小于预设的第二阈值,暂停所述任一事件处理中心将其获得的区块链事件流下发至所述任一事件处理中心的各触发器;
当所述第二下发进度不小于所述第一下发进度时,将所述子级事件处理中心包括的触发器移动至所述任一事件处理中心,并移除所述子级事件处理中心;
重启所述任一事件处理中心,以将其获得的区块链事件流继续下发至所述任一事件处理中心包括的各触发器。
在又一示出的实施方式中,所述的方法,还包括:
如果所述分布式事件处理中心的任一事件处理中心未包括有任何触发器,移除所述任一事件处理中心。
在又一示出的实施方式中,所述事件处理中心为与所述节点设备绑定的SDK组件。
在又一示出的实施方式中,所述的方法,还包括:
创建新的事件处理中心,所述新的事件处理中心包括新的触发器,所述新的触发器声明了与其对应的业务系统订阅的区块链事件流的起始位置;
将所述新的事件处理中心设置于第一个下发进度比所述起始位置小的事件处理中心的父级。
在又一示出的实施方式中,所述控制组件为集中式控制组件,所述控制组件分别与所述分布式事件处理中心通信连接。
在又一示出的实施方式中,所述控制组件为分别设置于所述分布式事件处理中心的分布式控制组件,且所述分布式事件处理中心序列中的每个事件处理中心与其相邻的事件处理中心通信连接。
相应地,本说明书还提供了一种区块链事件的处理装置,应用于与所述区块链的节点设备对接的分布式事件处理中心的控制组件;分布式事件处理中心分别从所述节点设备获得各自的区块链事件流,并将各自获得的区块链事件流下发至各自包括的触发器,以在所述区块链事件流包括的区块链事件满足所述触发器的触发条件时,将所述区块链事件推送至与所述触发器对应的业务系统;
所述装置包括:
获取单元,获取所述分布式事件处理中心中任一事件处理中心包括的多个触发器的推送速率;
建立单元,如果所述多个触发器的推送速率差大于预设的第一阈值,建立新的事件处理中心,将与推送速率最大值的差值大于所述第一阈值的若干触发器,或者,将与推送速率最小值的差值大于所述第一阈值的若干触发器,移动至所述新的事件处理中心。
在又一示出的实施方式中,所述的装置,还包括:
排序单元,基于每个事件处理中心对所述区块链事件流的下发进度,将所述分布式事件处理中心进行逐级排序以建立分布式事件处理中心序列,父级事件处理中心对所述区块链事件流的下发进度大于其子级事件处理中心对所述区块链事件流的下发进度。
在又一示出的实施方式中,所述建立单元,进一步用于:
为所述任一事件处理中心建立新的子级事件处理中心,并将所述与推送速率最大值的差值大于所述第一阈值的若干触发器移动至所述新的子级事件处理中心,或者,为所述任一事件处理中心建立新的父级事件处理中心,并将所述与推送速率最大值的差值大于所述第一阈值的若干触发器移动至所述新的父级事件处理中心。
在又一示出的实施方式中,所述获取单元,进一步用于获取所述分布式事件处理中心中任一事件处理中心对区块链事件流的下发进度;
移动单元,如果所述分布式事件处理中心的任一事件处理中心的子级事件处理中心对所述区块链事件流的第二下发进度不小于所述任一事件处理中心对所述区块链事件流的第一下发进度,将所述子级事件处理中心中的触发器移动至所述任一事件处理中心;
移除单元,移除所述子级事件处理中心。
在又一示出的实施方式中,所述的装置,还包括:
暂停单元,如果所述分布式事件处理中心的任一事件处理中心的子级事件处理中心对所述区块链事件流的第二下发进度不小于所述任一事件处理中心对所述区块链事件流的第一下发进度,且所述第二下发进度与所述第一下发进度的差值小于预设的第二阈值,暂停所述任一事件处理中心将其获得的区块链事件流下发至所述任一事件处理中心的各触发器;
所述移动单元,进一步用于:当所述第二下发进度不小于所述第一下发进度时,将所述子级事件处理中心包括的触发器移动至所述任一事件处理中心;
所述移除单元,进一步用于移除所述子级事件处理中心;
重启单元,重启所述任一事件处理中心,以将其获得的区块链事件流继续下发至所述任一事件处理中心包括的各触发器。
在又一示出的实施方式中,所述移除单元,如果所述分布式事件处理中心的任一事件处理中心未包括有任何触发器,移除所述任一事件处理中心。
在又一示出的实施方式中,所述事件处理中心为与所述节点设备绑定的SDK组件。
在又一示出的实施方式中,所述建立单元,创建新的事件处理中心,所述新的事件处理中心包括新的触发器,所述新的触发器声明了与其对应的业务系统订阅的区块链事件流的起始位置;
所述排序单元,将所述新的事件处理中心设置于第一个下发进度比所述起始位置小的事件处理中心的父级。
在又一示出的实施方式中,所述控制组件为集中式控制组件,所述控制组件分别与所述分布式事件处理中心通信连接。
在又一示出的实施方式中,所述控制组件为分别设置于所述分布式事件处理中心的分布式控制组件,且所述分布式事件处理中心序列中的每个事件处理中心与其相邻的事件处理中心通信连接。
本说明书还提出了一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行上述控制组件所执行的区块链事件的处理方法。
本说明书各个实施方式提供的区块链事件的处理方法、装置和计算机设备,节点设备与分布式事件处理中心对接,通过将推送速率差值在预设阈值范围内的多个触发器设置于的同一事件处理中心,可以保证推送速率相当的多个触发器在同一事件处理中心进行事件触发及推送,有效防止了同一事件处理中心中,推送速率快的触发器长时间等待推送速率慢的触发器造成的资源空置浪费,提高了事件处理中心的事件推送效率;而且,多个触发器共用同一事件处理中心的同一区块链事件流,相比于每个触发器使用一区块链事件流的设置,有效降低了网络流量开销,节约了网络设置成本。
附图说明
图1(a)是现有的一实施方式提供的区块链事件流的推送处理示意图;图1(b)是现有的又一实施方式提供的区块链事件流的推送处理示意图。
图2是一示例性实施方式提供的分布式事件处理中心对区块链事件流的推送处理方法流程图。
图3是一示例性实施方式提供的分布式事件处理中心对区块链事件流的推送处理示意图。
图4(a)是一示例性实施方式提供的分布式事件处理中心序列对区块链事件流的推送处理示意图;图4(b)是一示例性实施方式提供的分布式事件处理中心的分裂过程示意图;图4(c)是一示例性实施方式提供的分布式事件处理中心的合并过程示意图。
图5(a)是一示例性实施方式提供的链式级连的分布式事件处理中心序列对区块链事件流的推送处理示意图;图5(b)是一示例性实施方式提供的分布式事件处理中心的分裂过程示意图;图5(c)是一示例性实施方式提供的分布式事件处理中心的合并过程示意图。
图6是一示例性实施方式提供的应用于控制组件端的区块链事件处理装置的示意图。
图7是运行本说明书所提供的区块链事件处理装置实施方式的一种硬件结构图。
具体实施方式
这里将详细地对示例性实施方式进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施方式中所描述的实施方式并不代表与本说明书一个或多个实施方式相一致的所有实施方式。
需要说明的是:在其他实施方式中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施方式中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施方式中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施方式中也可能被合并为单个步骤进行描述。
本说明书所述的区块链或区块链网络,具体可指一个各节点设备通过共识机制达成的、具有分布式数据存储结构的P2P网络系统,该区块链内的账本数据分布在时间上相连的一个个“区块(block)”之内,后一区块可包含前一区块的数据摘要,且根据具体的共识机制(如POW、POS、DPOS或PBFT等)的不同,达成全部或部分节点的数据全备份。
对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
无论区块链采用哪种共识算法,记账节点均可以将接收到的交易打包以生成最新区块,并将生成的最新区块发送至其它节点设备进行共识验证。如果其它节点设备接收到最新区块后,经验证没有问题,可以将该最新区块追加到原有的区块链末尾,从而完成区块链的记账过程。其它节点验证记账节点发来的新的区块的过程中,也可以执行该区块中的包含的交易。
需要说明的是,区块链每产生一个最新区块,则在该最新区块中的交易被执行之后,区块链中这些被执行交易的对应状态会随之发生变化,例如,以账户模型构架的区块链中,外部账户或者智能合约账户的账户状态,通常也会随着交易的执行而发送相应的变化。
例如,当区块中的一笔“转账交易”执行完毕后,与该“转账交易”相关的转出方账户和转入方账户的余额(即这些账户的Balance字段的字段值),通常也会随之发生变化。
又如,区块中的“智能合约调用交易”则用以调用区块链上部署的智能合约,在节点设备对应的EVM内调用上述智能合约以执行上述“智能合约调用交易”,并根据执行结果更新在与该智能合约调用交易对应的数据状态。
在实际应用中,不论是公有链、私有链还是联盟链,都可能提供智能合约(Smartcontract)的功能。区块链上的智能合约是在区块链上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
智能合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址;合约代码(Code)和账户存储(Storage)将保存在该合约账户的账户存储中。智能合约的行为由合约代码控制,而智能合约的账户存储则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储的虚拟账户。
智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。智能合约的执行结果可以是以交易执行日志(Log)的形式,存储到MPT收据树中;或者,也可以以Key-Value对的形式存储到智能合约的Storage树中。
用户在使用区块链时,会产生多种多样的事件,例如:网络共识达成后,产生了新的区块;用户通过SDK发起了一笔交易,并被写入了账本,又或者用户调用了某个智能合约的函数,执行了特定的操作。这些事件对外部业务系统来说,具有较大的价值,外部业务系统可以对这些信息进行处理和加工,将处理结果反馈到实际的业务上。比如通过订阅特定的事件,来监控区块链上某个账户余额的变化;又或者通过订阅特定的事件来监控区块链网络的出块及交易速率等情况。
在实际应用中,一般会有多个业务系统希望从区块链节点订阅事件:SDK发起交易时,需要订阅事件来判断交易是否被成功执行并写入账本;监控系统需要通过订阅事件来监控区块链网络上的出块速度、交易数量等各种指标数据;业务系统需要根据区块链上特定状态的变化,来执行不同的行为。
区块链网络的SDK一般会提供事件的订阅接口,例如 HyperLedger Fabric 的SDK提供了对区块、交易、合约事件的订阅接口,技术人员可以直接使用SDK将订阅到的事件按照业务逻辑推送到外部服务中去,当有多个外部业务系统需要推送时,可以通过SDK生成多个订阅事件流,分别推送到对应外部业务系统上,如图1(a)所示。通过这种方式来处理事件时,每新增一个外部业务系统,就会新建一条事件流,网络入口上的流量也会跟着增加。
另一种方案是使用一个事件订阅流,将收到的事件分别推送的各个外部业务系统上,如图1(b)所示。通过这种方式来处理事件,网络流量不会随着外部业务系统服务的数量增加而变大,可以明显降低网络上流量的开销,但这个方案会带来一个弊端,事件的整体推送速率取决于处理最慢的那个外部业务系统,当有一个外部业务系统处理事件的速度较慢时,其它业务系统处理事件的速度也会跟着下降,因为各个外部业务系统共用了一个事件流。
有鉴于此,本说明书的一个或多个实施方式提供了一种区块链事件的推送方法,应用于与所述区块链的任一节点设备对接的分布式事件处理中心;各事件处理中心包括若干个用于向对应的业务系统推送区块链事件的触发器。
本说明书一个或多个实施方式所述的分布式事件处理中心,可以包括多个事件处理中心,上述多个事件处理中心可设置于上述节点设备内部,也可设置于上述节点设备外部,而且分别与上述节点设备连接;上述多个事件处理中心还可部分设置于上述节点设备内部,部分设置于上述节点设备外部。
在一示出的实施方式中,上述事件处理中心为与所述节点设备绑定的事件处理组件,例如SDK组件,每个事件处理中心可以从上述节点设备获得区块链事件流,并将获得的区块链事件流中的区块链事件推送至与事件处理中心对接的若干个业务系统。
具体地,上述分布式事件处理中心的每个事件处理中心包括若干个分别与业务系统对应的触发器。本说明书提供的各实施方式所述的“触发器”,可以包括事件处理中心内运行的事件触发及推送进程,上述事件触发及推送进程负责判断区块链事件流包含的区块链事件是否满足预设的推送触发条件,并在所述区块链事件流包括的区块链事件满足对应的触发条件时,将所述区块链事件推送至、与各事件触发及推送进程(即触发器)对接的业务系统。因此,本说明书各实施方式所述的触发器或事件触发及推送进程,是与对接的业务系统对应的,即每个触发器或事件触发及推送进程内均声明了其对应的业务系统的触发条件。每个触发器可与一个业务系统对应,以为该业务系统订阅的区块链事件执行推送服务;在一些情况下,多个触发器可对应同一业务系统,但负责执行该业务系统订阅的不同条件的区块链事件。
本说明书对上述触发条件的内容不作具体限定,上述触发条件还可包括无条件的、任意区块链事件触发,或有条件的区块链事件触发。上述有条件的区块链事件触发可以包括各业务系统对区块链事件的订阅条件,例如,第一业务系统需要订阅事件来判断其发起的交易是否被成功执行并写入账本,则其触发条件(或订阅条件)包括所述第一业务系统发送的交易;第二业务系统需要通过订阅事件来监控区块链网络上的出块速度、交易数量等各种指标数据,则其触发条件(或订阅条件)可包括区块链的新生区块事件、及区块链的交易收录事件;第三业务系统需要根据区块链上特定智能合约的执行状态的变化,来执行相应的行为,则其触发条件(或订阅条件)可包括该特定地址的智能合约的执行结果状态,等等。
如图2所述,本实施方式所提供的区块链事件的推送方法包括:
步骤202,分布式事件处理中心分别从所述节点设备获得各自的区块链事件流。
区块链事件流可包括基于预设的条件(如事件产生时间的先后顺序)而排列的区块链事件,而且,随着区块高度的增加,可以不断产生新的区块链事件,从而形成“区块链事件流”。值得注意的是,上述区块链事件流可以包括从任一新建的事件处理中心的起始订阅位置开始、由节点设备将区块链上存储的数据内容解析而生成的区块链事件流;也可以包括由事件处理中心直接从上述节点设备处拉取的、从符合该事件处理中心创建时自身起始订阅位置的 “区块流”,随着上述事件处理中心在本地持续地解析获取到的上述区块流,可生成包括区块链事件的事件流。本说明书对上述区块链事件流的具体内容不作限定。
在本实施方式中,如图3所示,分布式事件处理中心的每个事件处理中心均可以从上述节点设备处获得各自的区块链事件流。在每个事件处理中心初始化时,其从上述节点设备获得的区块链事件流的起始位置可以相同(例如均从创世区块开始),也可以不同(例如有些事件处理中心对应的业务系统要求从100号区块开始订阅区块链事件,有些事件处理中心对应的业务系统要求从1000号区块开始订阅区块链事件),本说明书对此不作限定。
步骤204,分布式事件处理中心将各自获得的区块链事件流下发至各自包括的触发器,以在所述区块链事件流包括的区块链事件满足所述触发器的触发条件时,将所述区块链事件推送至与所述触发器对应的业务系统;其中,所述分布式事件处理中心的任一事件处理中心包括的各触发器对区块链事件的推送速率的最大值与最小值之间的差值小于预设的第一阈值。
在本实施方式中,如图3所述,由于每个事件处理中心1、2、3可包含多个触发器,多个触发器共用同一区块链事件流,为了使每个事件处理中心的多个触发器对区块链事件流的判断、触发、推送等进程的推送速率相当,防止推送速率快的触发器在处理完某区块链事件后,长时间地等待推送速率慢的触发器,而造成计算资源的浪费,所述事件处理中心包括的各触发器对区块链事件的推送速率的最大值与最小值之间的差值小于预设的第一阈值。
以下在一示出的实施方式中给出多个触发器的推送速率的计算方法:由于一个事件处理中心所包含的多个触发器共用该事件处理中心下发的区块链事件流,因此,在一预设的时长片段内,各个触发器处理的区块链事件总数是相等的,例如,在该预设的时长片段内,事件处理中心1从节点设备获取到M个区块链事件,并将该M个区块链事件下发至各触发器。上述事件处理中心1可记录预设的时长片段内,每个触发器推送事件到业务系统所消耗的时间总和Ti,和该触发器向其对接的业务系统推送的事件总数N,各个触发器(触发器1、2、3、4)的推送速率Vi=N/Ti,从而方便计算出各触发器对区块链事件的推送速率的最大值与最小值之间的差值。
上述各个触发器对区块链事件的推送速率一方面与其对接的业务系统的配置或处理速率相关,另一方面也受事件处理中心与业务系统之间的网络连接状况的影响。
在又一示出的实施方式中,为了使各个触发器的推送速率不受网络连接状况突变的影响、或业务系统处理速率突变的影响,可为事件处理中心的每个触发器设置各自的缓存事件队列,事件处理中心收到区块链事件流后,在上述预设的时长片段内将事件依次写入其下所有触发器的缓存队列中,触发器从各自的缓存队列中读取事件,并推送到外部业务系统上。
通过将推送速率差值在预设的第一阈值范围内的多个触发器设置于同一事件处理中心,可以保证推送速率相当的多个触发器在同一事件处理中心进行事件触发及推送,有效防止了推送速率快的触发器长时间等待推送速率慢的触发器造成的资源空置浪费,提高了事件处理中心的事件推送效率;而且,多个触发器共用同一事件处理中心的同一区块链事件流,相比于每个触发器使用一区块链事件流的设置,有效降低了网络流量开销,节约了网络设置成本。
为对上述分布式事件处理中心的区块链事件处理及推送进程进行管理,本说明书提供了两种具体的管理方式:通过集中式的控制组件对分布式事件处理中心进行管理,所述集中式的控制组件分别与所述分布式事件处理中心通信连接;或者,由分布式事件处理中心中每个事件处理中心搭载的代码构建的分布式控制组件对分布式事件处理中心进行自我分布式管理,亦即,上述控制组件为分别设置于所述分布式事件处理中心的分布式控制组件,且每个事件处理中心与其他事件处理中心直接或间接通信连接。本说明书以下内容会对上述两种实施方式进行详细描述,本领域的技术人员还可以以上述两种实施方式为启发,设置分布式事件处理中心的其他管理方式,本说明书对此不做限定。
在一示出的实施方式中,可在上述节点设备内部设置、或者该节点设备可对接外部的、对所述分布式事件处理中心进行管理的集中式控制组件;该控制组件可接收每个事件处理中心对所述区块链事件流的下发进度汇报,并给出建立新的事件处理中心、或合并已有的事件处理中心、或新建触发器、或删除触发器等操作指令。
上述每个事件处理中心对所述区块链事件流的下发进度,可以包括每个事件处理中心最新下发触发器的区块链事件在区块链中的位置,具体的,上述位置可表现为该最新下发触发器的区块链事件所对应的区块高度,或该区块链事件所对应的区块高度及交易序号。
为进一步方便管理,如图4(a)所示,所述控制组件可基于每个事件处理中心对所述区块链事件流的下发进度,将所述分布式事件处理中心进行逐级排序以建立分布式事件处理中心序列,父级事件处理中心对所述区块链事件流的下发进度大于其子级事件处理中心对所述区块链事件流的下发进度,亦即,父级事件处理中心正在下发处理的区块链事件在区块链事件流中的位置更加新于子级事件处理中心正在下发处理的区块链事件在区块链事件流中的位置,例如父级事件处理中心的下发进度为1001号区块,子级事件处理中心的下发进度为1000号区块。
由于每个事件处理中心均从上述节点设备处获得上述区块链事件流,并将上述区块链事件流下发至事件处理中心的每个触发器,每个事件处理中心对区块链事件流的下发进度,与该事件处理中心的创建时间、该事件处理中心的起始订阅位置及该事件处理中心所包含的若干个触发器的平均推送速率有关。
在实际的业务使用中,由于触发器的推送速率可能受到事件处理中心与该触发器对应的业务系统之间的网络通信状态等因素的影响,触发器的推送速率可能发生较大幅度的变化,从而使事件处理中心所包含的多个触发器的推送速率差值超出预设阈值。
在一示出的实施方式中,每个事件处理中心可分别计算所述事件处理中心包括的各触发器对所述区块链事件流的推送速率,如图4(b)所示,如果一事件处理中心A中、至少一个触发器(触发器3、4)的推送速率与推送速率最快的触发器的速率差大于预设的第一阈值,上述控制组件在接收到上述事件处理中心对其包含的触发器的推送速率或推送速率差的汇报后,可发送新建事件处理中心指令、和触发器移动指令,在所述事件处理中心A与其子级事件处理中心B之间建立新的事件处理中心C,并将所述至少一个触发器(触发器3、4)移动至所述新的事件处理中心C,以继续进行区块链事件流处理。此时,上述新的事件处理中心C的初始下发进度可与上述事件处理中心A的下发进度相同;但由于触发器3、4的推送速率较低,一定时间后,则事件处理中心C的下发进度会小于事件处理中心A。
上述实施方式是为事件处理中心A建立新的子级事件处理中心C,将与推送速率最大值的差值大于第一阈值的触发器3、4移动至所述新的子级事件处理中心C,可以推断,在又一示出的实施方式中,上述控制组件还可为事件处理中心A建立新的父级事件处理中心,可将与推送速率最小值的差值大于第一阈值的触发器1、2移动至所述新的父级事件处理中心,具体过程与上述实施方式类似,在此不再详述。
值得注意的是,本申请说明书附图4(a)、(b)、(c)和附图5(a)、(b)、(c)中,省略绘制了与触发器对应的业务系统。由于触发器内设置了与其对接的业务系统的触发条件,本说明书中各实施方式所述的将触发器从一个事件处理中心移动至另一事件处理中心,实质是指将为触发器对应的业务系统提供的事件推送服务,从一个事件处理中心移至另一事件处理中心。
上述过程可以被称为事件处理中心的“分裂”,通过监控分布式事件处理中心每个触发器的推送速率,并执行相应的“分裂”过程,可使每个事件处理中心的多个触发器维持在速率相当(速率差值不超过预设阈值)的状态。然而,由于网络状态等因素的影响,尽管每个事件处理中心的多个触发器维持在速率相当的状态,在某时刻仍有可能出现父级事件处理中心所包含的触发器的平均速率小于其子级事件处理中心所包含的触发器的平均速率,经过一段时间的事件处理,上述父级事件处理中心对上述区块链事件流的下发进度可能会小于其子级事件处理中心的下发进度。
上述控制组件可实时监控、或者每隔预设的周期获取分布式事件处理中心的每个事件处理中心的下发进度,在一示出的实施方式中,如图4(c)所示,如果相邻的两个事件处理中心A、C中,子级事件处理中心C对所述区块链事件流的第二下发进度不小于父级事件处理中心A对所述区块链事件流的第一下发进度,上述控制组件可将所述子级事件处理中心C中的所有触发器3、4移动至所述父级事件处理中心,并在分布式事件处理中心序列中删除所述子级事件处理中心C。
上述过程可被视为事件处理中心的“合并”,通过上述合并过程,减少了分布式事件处理中心包含的事件处理中心的数量,有效降低了分布式事件处理中心的网络流量开销;而且通过多个事件处理中心的“合并”,使得上述分布式事件处理中心序列的下发进度可保持递减的状态。
在执行完上述子级事件处理中心C与父级事件处理中心A的合并后,控制组件可继续监控合并后的新的父级事件处理中心A所包含所有触发器的推送速率或推送速率差,如果至少一个触发器的推送速率与推送速率最快的触发器的速率差大于预设阈值,应继续执行事件处理中心的“分裂”,在所述事件处理中心A与其子级事件处理中心B之间建立新的事件处理中心,并将所述至少一个触发器移动至所述新的事件处理中心进行区块链事件流处理。
控制组件通过监控分布式事件处理中心中每个事件处理中心的下发进度,并执行相应的“合并”过程,可基于各事件处理中心的下发进度,建立起一条下发进度逐级递减(或递增)的分布式事件处理中心序列;控制组件通过监控每个事件处理中心的各触发器的推送速率差,并执行相应的“分裂”过程,可保证每个事件处理中心的各触发器的推送速率相当。因此,在各事件处理中心实际执行向各个业务系统进行区块链事件推送的过程中,通过不断的“分裂”和“合并”,可以建立起一条每个事件处理中心包含速率相当的若干个触发器的、且对区块链事件流的下发进度逐级递减(或递增)的分布式事件处理中心序列,即提高了区块链事件的推送效率,又节约了分布式事件处理中心的网络流量。
在又一示出的实施方式中,为了进一步降低分布式事件处理中心的网络流量开销,促使更多的事件处理中心合并,上述控制组件在实时监控、或者每隔预设的周期获取分布式事件处理中心的每个事件处理中心的下发进度时,如图4(c)所示,如果相邻的两个事件处理中心A、C中,子级事件处理中心C对所述区块链事件流的第二下发进度小于其父级事件处理中心A对所述区块链事件流的第一下发进度,且第二下发进度与所述第一下发进度的差值小于预设的第二阈值,例如,在给定时间范围内(例如3分钟)均小于单位阈值(例如10笔),暂停父级事件处理中心A将所述区块链事件流下发其各触发器;此时,子级事件处理中心C继续进行区块链事件流下发及推送,当所述第二下发进度追赶上所述第一下发进度时(第二下发进度不小于上述第一下发进度时),即可触发上述实施方式所述的“合并”进程,将所述子级事件处理中心C包括的所有触发器3、4移动至其父级事件处理中心A中,并移除所述子级事件处理中心C;本实施方式对合并后的父级事件中心A的重启时机不作具体限定,例如在触发器3、4移动完成后,或者,当控制组件对父级事件处理中心A的暂停指令到时后,即可重启上述合并后的父级事件处理中心A对区块链事件流的下发。
在又一示出的实施方式中,如果上述分布式事件处理中心序列中的任一事件处理中心其下没有任何触发器时,例如,该任一事件处理中心原先对应的业务系统均停止对区块链事件的订阅,此时与上述业务系统对应的触发器均被移除,也需要进行订阅的合并,实质是将上述任一事件处理中心移除。
在以下的实施方式中,上述控制组件被分别设置于分布式事件处理中心的每个事件处理中心中,因此建立了分布式的事件处理中心控制组件。
如图5(a)所示,为方便分布式的管理,所述分布式控制组件可基于每个事件处理中心对所述区块链事件流的下发进度,将所述分布式事件处理中心进行逐级排序以建立链式级连的分布式事件处理中心序列,父级事件处理中心对所述区块链事件流的下发进度大于其子级事件处理中心对所述区块链事件流的下发进度,且每个事件处理中心均与其相邻的事件处理中心保持连接关系。
由于每个事件处理中心均从上述节点设备处获得区块链事件流,并将区块链事件流下发至事件处理中心的每个触发器,因此每个事件处理中心对区块链事件流的下发进度,与该事件处理中心的创建时间、起始订阅位置及该事件处理中心所包含的若干个触发器的平均推送速率有关。上述对区块链事件流的下发进度可以表现为事件处理中心(或其包含的触发器)最新下发的区块链事件在区块链事件流中的位置,例如某事件处理中心的下发进度为区块高度为1000的区块,或者,某事件处理中心的下发进度为区块高度为1000的区块内、序号为10的交易,等等。
在实际的业务使用中,由于触发器的推送速率可能受到事件处理中心与该触发器对应的业务系统之间的网络通信状态等因素的影响,触发器的推送速率可能发生较大幅度的变化,从而使事件处理中心所包含的多个触发器的推送速率差值超出预设阈值。
在一示出的实施方式中,每个事件处理中心可分别计算所述事件处理中心包括的各触发器对所述区块链事件流的推送速率,如图5(b)所示,如果一事件处理中心A中、至少一个触发器(触发器3、4)的推送速率与推送速率最快的触发器的速率差大于预设的第一阈值,该事件处理中心A所配置的分布式控制组件可发送新建事件处理中心指令、和触发器移动指令,在所述事件处理中心A与其子级事件处理中心B之间建立新的事件处理中心C,并与所述新的事件处理中心C所配置的分布式控制组件协同,将所述至少一个触发器(触发器3、4)移动至所述新的事件处理中心C,以进行区块链事件流下发处理。
由于触发器内设置了与其对接的业务系统的触发条件,本说明书中各实施方式所述的将触发器从一个事件处理中心移动至另一事件处理中心,实质是指将为与该触发器对应的业务系统提供的事件推送服务,从一个事件处理中心移至另一事件处理中心。
上述过程可以被称为事件处理中心的“分裂”,每个事件处理中心配置的控制组件通过该事件处理中心中每个触发器的推送速率,并执行相应的“分裂”过程,可使每个事件处理中心的多个触发器维持在速率相当(速率差值不超过预设阈值)的状态。然而,由于网络状态等因素的影响,尽管每个事件处理中心的多个触发器维持在速率相当的状态,在某时刻仍有可能出现父级事件处理中心所包含的触发器的平均速率小于其子级事件处理中心所包含的触发器的平均速率,经过一段时间的事件处理,上述父级事件处理中心对上述区块链事件流的下发进度可能会小于其子级事件处理中心的下发进度。
在一示出的实施方式中,如图5(c)所示,每一子级事件处理中心可每隔预设的周期向其父级事件处理中心进行该子级事件处理中心的下发进度汇报;如果父级事件处理中心A的控制组件经对比得知其子级事件处理中心C对所述区块链事件流的第二下发进度不小于父级事件处理中心A对所述区块链事件流的第一下发进度,上述父级事件处理中心A、和C的控制组件可协同处理,将所述子级事件处理中心C中的所有触发器3、4移动至所述父级事件处理中心C,并在该分布式事件处理中心序列中删除所述子级事件处理中心C;此后,事件处理中心A将作为事件处理中心B的父级,接收事件处理中心B的下发进度汇报。
上述过程可被视为事件处理中心的“合并”,通过上述合并过程,减少了分布式事件处理中心包含的事件处理中心的数量,有效降低了分布式事件处理中心的网络流量开销。
在执行完上述子级事件处理中心C与父级事件处理中心A的合并后,新生成的分布式事件处理中心A的控制组件可继续监控该事件处理中心所包含所有触发器的推送速率,如果至少一个触发器的推送速率与推送速率最快的触发器的速率差大于预设阈值,可继续执行事件处理中心的“分裂”,在所述事件处理中心A与其子级事件处理中心B之间建立新的事件处理中心,并将所述至少一个触发器移动至所述新的事件处理中心进行区块链事件流处理。
在上述分布式事件处理中心序列中,由父级事件处理中心接收其子级事件处理中心的下发进度汇报,并在发现其子级事件处理中心的下发进度不小于自身的区块链事件流的下发进度时,驱动上述“合并”进程,从而基于各事件处理中心的下发进度,建立起一条下发进度逐级递减(或递增)的分布式事件处理中心序列;每个事件处理中心监控自身的各触发器的推送速率差,并执行相应的“分裂”过程,可保证每个事件处理中心的各触发器的推送速率相当。因此,在各事件处理中心实际执行向各个业务系统进行区块链事件推送的过程中,通过不断的“分裂”和“合并”,可以建立起一条每个事件处理中心包含速率相当的若干个触发器的、且对区块链事件流的下发进度逐级递减(或递增)的分布式事件处理中心序列,既提高了区块链事件的推送效率,又节约了分布式事件处理中心的网络流量。
在又一示出的实施方式中,为了进一步降低分布式事件处理中心的网络流量开销,促使更多的事件处理中心合并,如图5(c)所示,父级事件处理中心A的控制组件在实时监控、或者每隔预设的周期获知其子级事件处理中心C发送的下发进度汇报时,如果获知子级事件处理中心C对所述区块链事件流的第二下发进度小于其父级事件处理中心A对所述区块链事件流的第一下发进度,且第二下发进度与所述第一下发进度的差值小于预设的第二阈值,例如,在给定时间范围内(例如3分钟)均小于单位阈值(例如10笔),父级事件处理中心A的控制组件将暂停自身的区块链事件流下发进程;此时,子级事件处理中心C继续进行区块链事件流下发及推送,当所述第二下发进度追赶上所述第一下发进度时(第二下发进度不小于上述第一下发进度时),即可触发上述实施方式所述的“合并”进程,将所述子级事件处理中心C包括的所有触发器3、4移动至其父级事件处理中心A中,并移除所述子级事件处理中心C;本实施方式对合并后的父级事件中心A的重启时机不作具体限定,例如在触发器3、4移动完成后,或者,父级事件处理中心A的控制组件对自身的暂停指令到时后,即可重启上述合并后的父级事件处理中心A对区块链事件流的下发。
在又一示出的实施方式中,在上述分布式事件处理中心序列中的任一事件处理中心其下没有任何触发器时,也需要将上述任一事件处理中心合并至其父级事件处理中心,例如,该任一事件处理中心原本对应的业务系统均停止对区块链事件的订阅,相应地,与上述业务系统对应的触发器均被移除。此时对进行的对事件处理中心的合并,实质是将上述任一事件处理中心移除。若上述任一事件处理中心无父级事件处理中心,则直接将上述事件处理中心移除,其子级事件处理中心将最为新的最高父级事件处理中心,位于分布式事件处理中心序列的端点。
由以上各个实施方式可知,无论上述分布式事件处理中心的控制组件是集中式还是分布式,均可依据各处理中心对区块链事件流的下发进度,建立起下发进度递减的分布式事件处理中心序列。当上述节点设备接收到新的业务系统的订阅需求时,可通知控制组件,以向上述分布式事件处理中心序列内创建新的事件处理中心以对接上述新的业务系统。如果上述订阅需求指定了订阅的区块链事件流的起始位置信息,可在所述新的事件处理中心创建新的触发器,该触发器声明了与其对应的所述新的业务系统订阅的区块链事件流的起始位置,并将该新的事件处理中心作为第一个下发进度比该起始位置小的事件处理中心的父级节点插入到序列中。插入结束后,新插入的事件处理中心所包含的新的触发器会按照上述一个或多个实施方式所述的区块链事件处理中心的合并、或分裂过程,逐渐加入到与其推送速率相当的事件处理中心上。
与上述流程实现对应,本说明书的实施方式还提供了区块链事件处理装置60。装置60可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图7所示的CPU、内存以及存储器之外,上述装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
如图6所示,本说明书提供了一种区块链事件的处理装置60,应用于与所述区块链的节点设备对接的分布式事件处理中心的控制组件;分布式事件处理中心分别从所述节点设备获得各自的区块链事件流,并将各自获得的区块链事件流下发至各自包括的触发器,以在所述区块链事件流包括的区块链事件满足所述触发器的触发条件时,将所述区块链事件推送至与所述触发器对应的业务系统;
所述装置60包括:
获取单元602,获取所述分布式事件处理中心中任一事件处理中心包括的多个触发器的推送速率;
建立单元604,如果所述多个触发器的推送速率差大于预设的第一阈值,建立新的事件处理中心,将与推送速率最大值的差值大于所述第一阈值的若干触发器,或者,将与推送速率最小值的差值大于所述第一阈值的若干触发器,移动至所述新的事件处理中心。
在又一示出的实施方式中,所述的装置60还包括:
排序单元606,基于每个事件处理中心对所述区块链事件流的下发进度,将所述分布式事件处理中心进行逐级排序以建立分布式事件处理中心序列,父级事件处理中心对所述区块链事件流的下发进度大于其子级事件处理中心对所述区块链事件流的下发进度。
在又一示出的实施方式中,所述建立单元604,进一步用于:
为所述任一事件处理中心建立新的子级事件处理中心,并将所述与推送速率最大值的差值大于所述第一阈值的若干触发器移动至所述新的子级事件处理中心,或者,为所述任一事件处理中心建立新的父级事件处理中心,并将所述与推送速率最大值的差值大于所述第一阈值的若干触发器移动至所述新的父级事件处理中心。
在又一示出的实施方式中,所述获取单元602,进一步用于获取所述分布式事件处理中心中任一事件处理中心对区块链事件流的下发进度;
移动单元608,如果所述分布式事件处理中心的任一事件处理中心的子级事件处理中心对所述区块链事件流的第二下发进度不小于所述任一事件处理中心对所述区块链事件流的第一下发进度,将所述子级事件处理中心中的触发器移动至所述任一事件处理中心;
移除单元610,移除所述子级事件处理中心。
在又一示出的实施方式中,所述的装置60还包括:
暂停单元612,如果所述分布式事件处理中心的任一事件处理中心的子级事件处理中心对所述区块链事件流的第二下发进度不小于所述任一事件处理中心对所述区块链事件流的第一下发进度,且所述第二下发进度与所述第一下发进度的差值小于预设的第二阈值,暂停所述任一事件处理中心将其获得的区块链事件流下发至所述任一事件处理中心的各触发器;
所述移动单元608,进一步用于:当所述第二下发进度不小于所述第一下发进度时,将所述子级事件处理中心包括的触发器移动至所述任一事件处理中心;
所述移除单元610,进一步用于移除所述子级事件处理中心;
重启单元614,重启所述任一事件处理中心,以将其获得的区块链事件流继续下发至所述任一事件处理中心包括的各触发器。
在又一示出的实施方式中,所述移除单元610,如果所述分布式事件处理中心的任一事件处理中心未包括有任何触发器,移除所述任一事件处理中心。
在又一示出的实施方式中,所述事件处理中心为与所述节点设备绑定的SDK组件。
在又一示出的实施方式中,所述建立单元604,创建新的事件处理中心,所述新的事件处理中心包括新的触发器,所述新的触发器声明了与其对应的业务系统订阅的区块链事件流的起始位置;
所述排序单元606,将所述新的事件处理中心设置于第一个下发进度比所述起始位置小的事件处理中心的父级。
在又一示出的实施方式中,所述控制组件为集中式控制组件,所述控制组件分别与所述分布式事件处理中心通信连接。
在又一示出的实施方式中,所述控制组件为分别设置于所述分布式事件处理中心的分布式控制组件,且所述分布式事件处理中心序列中的每个事件处理中心与其相邻的事件处理中心通信连接。
上述装置60中各个单元的功能和作用的实现过程具体详见上述控制组件所执行的区块链事件处理方法中的实现过程,相关之处参见方法实施方式的部分说明即可,在此不再赘述。
以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元或模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施方式阐明的装置、单元、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施方式相对应,本说明书的实施方式还提供了一种计算机设备,如图7所示,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施方式中控制组件所执行的区块链事件的处理方法。对上述控制组件所执行的区块链事件的处理方法的详细描述请参见之前的内容,不再重复。
以上所述仅为本说明书的较佳实施方式而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施方式可提供为方法、系统或计算机程序产品。因此,本说明书的实施方式可采用完全硬件实施方式、完全软件实施方式或结合软件和硬件方面的实施方式的形式。而且,本说明书的实施方式可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (21)
1.一种区块链事件的处理方法,应用于与所述区块链的节点设备对接的分布式事件处理中心的控制组件;所述分布式事件处理中心分别从所述节点设备获得各自的区块链事件流,并将各自获得的区块链事件流下发至各自包括的触发器,以在所述区块链事件流包括的区块链事件满足所述触发器的触发条件时,将所述区块链事件推送至与所述触发器对应的业务系统;
所述方法包括:
获取所述分布式事件处理中心中任一事件处理中心包括的多个触发器的推送速率;
如果所述多个触发器的推送速率差大于预设的第一阈值,建立新的事件处理中心,将与推送速率最大值的差值大于所述第一阈值的若干触发器,或者,将与推送速率最小值的差值大于所述第一阈值的若干触发器,移动至所述新的事件处理中心。
2.根据权利要求1所述的方法,还包括:
基于每个事件处理中心对所述区块链事件流的下发进度,将所述分布式事件处理中心进行逐级排序以建立分布式事件处理中心序列,父级事件处理中心对所述区块链事件流的下发进度大于其子级事件处理中心对所述区块链事件流的下发进度。
3.根据权利要求2所述的方法,所述建立新的事件处理中心,将与推送速率最大值的差值大于所述第一阈值的若干触发器,或者,将与推送速率最小值的差值大于所述第一阈值的若干触发器,移动至所述新的事件处理中心,包括:
为所述任一事件处理中心建立新的子级事件处理中心,并将所述与推送速率最大值的差值大于所述第一阈值的若干触发器移动至所述新的子级事件处理中心,或者,为所述任一事件处理中心建立新的父级事件处理中心,并将所述与推送速率最大值的差值大于所述第一阈值的若干触发器移动至所述新的父级事件处理中心。
4.根据权利要求2所述的方法,还包括:
获取所述分布式事件处理中心中任一事件处理中心对区块链事件流的下发进度;
如果所述分布式事件处理中心的任一事件处理中心的子级事件处理中心对所述区块链事件流的第二下发进度不小于所述任一事件处理中心对所述区块链事件流的第一下发进度,将所述子级事件处理中心中的触发器移动至所述任一事件处理中心,并移除所述子级事件处理中心。
5.根据权利要求4所述的方法,还包括:
如果所述分布式事件处理中心的任一事件处理中心的子级事件处理中心对所述区块链事件流的第二下发进度不小于所述任一事件处理中心对所述区块链事件流的第一下发进度,且所述第二下发进度与所述第一下发进度的差值小于预设的第二阈值,暂停所述任一事件处理中心将其获得的区块链事件流下发至所述任一事件处理中心的各触发器;
当所述第二下发进度不小于所述第一下发进度时,将所述子级事件处理中心包括的触发器移动至所述任一事件处理中心,并移除所述子级事件处理中心;
重启所述任一事件处理中心,以将其获得的区块链事件流继续下发至所述任一事件处理中心包括的各触发器。
6.根据权利要求2或3或4或5所述的方法,还包括:
如果所述分布式事件处理中心的任一事件处理中心未包括有任何触发器,移除所述任一事件处理中心。
7.根据权利要求1所述的方法,所述事件处理中心为与所述节点设备绑定的SDK组件。
8.根据权利要求2所述的方法,还包括:
创建新的事件处理中心,所述新的事件处理中心包括新的触发器,所述新的触发器声明了与其对应的业务系统订阅的区块链事件流的起始位置;
将所述新的事件处理中心设置于第一个下发进度比所述起始位置小的事件处理中心的父级。
9.根据权利要求2所述的方法,所述控制组件为集中式控制组件,所述控制组件分别与所述分布式事件处理中心通信连接。
10.根据权利要求2所述的方法,所述控制组件为分别设置于所述分布式事件处理中心的分布式控制组件,且所述分布式事件处理中心序列中的每个事件处理中心与其相邻的事件处理中心通信连接。
11.一种区块链事件的处理装置,应用于与所述区块链的节点设备对接的分布式事件处理中心的控制组件;分布式事件处理中心分别从所述节点设备获得各自的区块链事件流,并将各自获得的区块链事件流下发至各自包括的触发器,以在所述区块链事件流包括的区块链事件满足所述触发器的触发条件时,将所述区块链事件推送至与所述触发器对应的业务系统;
所述装置包括:
获取单元,获取所述分布式事件处理中心中任一事件处理中心包括的多个触发器的推送速率;
建立单元,如果所述多个触发器的推送速率差大于预设的第一阈值,建立新的事件处理中心,将与推送速率最大值的差值大于所述第一阈值的若干触发器,或者,将与推送速率最小值的差值大于所述第一阈值的若干触发器,移动至所述新的事件处理中心。
12.根据权利要求11所述的装置,还包括:
排序单元,基于每个事件处理中心对所述区块链事件流的下发进度,将所述分布式事件处理中心进行逐级排序以建立分布式事件处理中心序列,父级事件处理中心对所述区块链事件流的下发进度大于其子级事件处理中心对所述区块链事件流的下发进度。
13.根据权利要求12所述的装置,所述建立单元,进一步用于:
为所述任一事件处理中心建立新的子级事件处理中心,并将所述与推送速率最大值的差值大于所述第一阈值的若干触发器移动至所述新的子级事件处理中心,或者,为所述任一事件处理中心建立新的父级事件处理中心,并将所述与推送速率最大值的差值大于所述第一阈值的若干触发器移动至所述新的父级事件处理中心。
14.根据权利要求12所述的装置,所述获取单元,进一步用于获取所述分布式事件处理中心中任一事件处理中心对区块链事件流的下发进度;
移动单元,如果所述分布式事件处理中心的任一事件处理中心的子级事件处理中心对所述区块链事件流的第二下发进度不小于所述任一事件处理中心对所述区块链事件流的第一下发进度,将所述子级事件处理中心中的触发器移动至所述任一事件处理中心;
移除单元,移除所述子级事件处理中心。
15.根据权利要求14所述的装置,还包括:
暂停单元,如果所述分布式事件处理中心的任一事件处理中心的子级事件处理中心对所述区块链事件流的第二下发进度不小于所述任一事件处理中心对所述区块链事件流的第一下发进度,且所述第二下发进度与所述第一下发进度的差值小于预设的第二阈值,暂停所述任一事件处理中心将其获得的区块链事件流下发至所述任一事件处理中心的各触发器;
所述移动单元,进一步用于:当所述第二下发进度不小于所述第一下发进度时,将所述子级事件处理中心包括的触发器移动至所述任一事件处理中心;
所述移除单元,进一步用于移除所述子级事件处理中心;
重启单元,重启所述任一事件处理中心,以将其获得的区块链事件流继续下发至所述任一事件处理中心包括的各触发器。
16.根据权利要求12至15中任一权利要求所述的装置,所述移除单元,如果所述分布式事件处理中心的任一事件处理中心未包括有任何触发器,移除所述任一事件处理中心。
17.根据权利要求11所述的装置,所述事件处理中心为与所述节点设备绑定的SDK组件。
18.根据权利要求12所述的装置,所述建立单元,创建新的事件处理中心,所述新的事件处理中心包括新的触发器,所述新的触发器声明了与其对应的业务系统订阅的区块链事件流的起始位置;
所述排序单元,将所述新的事件处理中心设置于第一个下发进度比所述起始位置小的事件处理中心的父级。
19.根据权利要求12所述的装置,所述控制组件为集中式控制组件,所述控制组件分别与所述分布式事件处理中心通信连接。
20.根据权利要求12所述的装置,所述控制组件为分别设置于所述分布式事件处理中心的分布式控制组件,且所述分布式事件处理中心序列中的每个事件处理中心与其相邻的事件处理中心通信连接。
21.一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如权利要求1至10任意一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010691345.1A CN111737356B (zh) | 2020-07-17 | 2020-07-17 | 一种区块链事件的处理方法及装置 |
EP21180318.4A EP3940991B1 (en) | 2020-07-17 | 2021-06-18 | Blockchain event processing method and apparatus |
US17/362,740 US11314564B2 (en) | 2020-07-17 | 2021-06-29 | Blockchain event processing method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010691345.1A CN111737356B (zh) | 2020-07-17 | 2020-07-17 | 一种区块链事件的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111737356A CN111737356A (zh) | 2020-10-02 |
CN111737356B true CN111737356B (zh) | 2020-11-24 |
Family
ID=72654845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010691345.1A Active CN111737356B (zh) | 2020-07-17 | 2020-07-17 | 一种区块链事件的处理方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11314564B2 (zh) |
EP (1) | EP3940991B1 (zh) |
CN (1) | CN111737356B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112016115B (zh) * | 2020-11-02 | 2021-02-05 | 中航信移动科技有限公司 | 基于区块链的事件订阅系统 |
CN114157671A (zh) * | 2021-11-26 | 2022-03-08 | 支付宝(杭州)信息技术有限公司 | 将区块链网络承载的信息向多个客户端节点分发的方法 |
US11914560B2 (en) * | 2022-06-30 | 2024-02-27 | Coinbase, Inc. | Systems and methods for creating a reorganization-immune blockchain index using mono-increasing sequence records |
CN117648295B (zh) * | 2024-01-26 | 2024-05-10 | 中国信息通信研究院 | 基于区块链的文本发布方法和装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120271880A1 (en) * | 2011-04-19 | 2012-10-25 | Accenture Global Services Limited | Content transfer accelerator |
CN103077228A (zh) * | 2013-01-02 | 2013-05-01 | 北京科技大学 | 一种基于集合特征向量的快速聚类方法和装置 |
US20170155652A1 (en) * | 2015-11-30 | 2017-06-01 | Microsoft Technology Licensing, Llc. | Techniques for detecting unauthorized access to cloud applications based on velocity events |
CN110333940A (zh) * | 2019-06-25 | 2019-10-15 | 深圳前海微众银行股份有限公司 | 基于条件的任务调度方法、装置、设备及存储介质 |
CN111108521A (zh) * | 2019-06-27 | 2020-05-05 | 阿里巴巴集团控股有限公司 | 实现基于区块链的工作流 |
CN111178958A (zh) * | 2019-12-23 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 基于资源预分配的虚拟资源发放方法、装置、系统及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114862578A (zh) * | 2016-10-03 | 2022-08-05 | 维萨国际服务协会 | 网络拓扑 |
CN111880746A (zh) * | 2017-05-25 | 2020-11-03 | 创新先进技术有限公司 | 一种向区块链系统中写入业务数据的方法和装置 |
US11048689B2 (en) * | 2018-11-08 | 2021-06-29 | International Business Machines Corporation | Consensus transaction scheduler |
CA3061603A1 (en) * | 2018-11-14 | 2020-05-14 | Royal Bank Of Canada | System and method for storing contract data structures on permissioned distributed ledgers |
SG11202002027TA (en) * | 2019-09-12 | 2020-04-29 | Alibaba Group Holding Ltd | Log-structured storage systems |
-
2020
- 2020-07-17 CN CN202010691345.1A patent/CN111737356B/zh active Active
-
2021
- 2021-06-18 EP EP21180318.4A patent/EP3940991B1/en active Active
- 2021-06-29 US US17/362,740 patent/US11314564B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120271880A1 (en) * | 2011-04-19 | 2012-10-25 | Accenture Global Services Limited | Content transfer accelerator |
CN103077228A (zh) * | 2013-01-02 | 2013-05-01 | 北京科技大学 | 一种基于集合特征向量的快速聚类方法和装置 |
US20170155652A1 (en) * | 2015-11-30 | 2017-06-01 | Microsoft Technology Licensing, Llc. | Techniques for detecting unauthorized access to cloud applications based on velocity events |
CN110333940A (zh) * | 2019-06-25 | 2019-10-15 | 深圳前海微众银行股份有限公司 | 基于条件的任务调度方法、装置、设备及存储介质 |
CN111108521A (zh) * | 2019-06-27 | 2020-05-05 | 阿里巴巴集团控股有限公司 | 实现基于区块链的工作流 |
CN111178958A (zh) * | 2019-12-23 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 基于资源预分配的虚拟资源发放方法、装置、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3940991B1 (en) | 2023-12-13 |
CN111737356A (zh) | 2020-10-02 |
US11314564B2 (en) | 2022-04-26 |
EP3940991A1 (en) | 2022-01-19 |
US20220019490A1 (en) | 2022-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111737356B (zh) | 一种区块链事件的处理方法及装置 | |
CN110113408B (zh) | 一种区块同步方法、设备和存储介质 | |
EP2454666B1 (en) | Fault tolerant batch processing | |
WO2016123042A1 (en) | Data factory platform and operating system | |
US10417062B2 (en) | Method and apparatus of unloading out of memory processing flow to user space | |
CN107783842B (zh) | 一种分布式锁实现方法、设备及存储装置 | |
CN112835688A (zh) | 分布式事务处理方法、设备及存储介质 | |
CN107818012B (zh) | 一种数据处理方法、装置及电子设备 | |
CN103108020A (zh) | 服务协作设备、服务协作方法和计算机可读记录介质 | |
CN108304272B (zh) | 一种数据io请求的处理方法及装置 | |
CN113326150A (zh) | 一种联机小批量消息处理方法和装置 | |
CN112084044B (zh) | 系统中事件处理方法及相关装置 | |
CN110381150B (zh) | 区块链上的数据处理方法、装置、电子设备及存储介质 | |
CN110750221B (zh) | 卷克隆方法、装置、电子设备及机器可读存储介质 | |
US20120102168A1 (en) | Communication And Coordination Between Web Services In A Cloud-Based Computing Environment | |
CN111913807A (zh) | 一种基于多个存储区域的事件处理方法、系统及装置 | |
CN111090818B (zh) | 资源管理方法、资源管理系统、服务器及计算机存储介质 | |
CN112825525A (zh) | 用于处理事务的方法和装置 | |
CN110928944B (zh) | 一种数据处理方法及其装置 | |
CN111435320B (zh) | 一种数据处理方法及其装置 | |
CN110109747B (zh) | 基于Apache Spark的数据交换方法及系统、服务器 | |
CN114327404A (zh) | 一种文件处理方法、装置、电子设备及计算机可读介质 | |
CN103399949B (zh) | 一种数据库存储块状态控制方法和装置 | |
JP2018538632A (ja) | ノードの再起動後にデータを処理する方法及びデバイス | |
CN112596882A (zh) | 一种延时任务调度的方法、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40039024 Country of ref document: HK |