CN110069533B - 一种基于区块链的事件订阅方法及装置 - Google Patents
一种基于区块链的事件订阅方法及装置 Download PDFInfo
- Publication number
- CN110069533B CN110069533B CN201910279032.2A CN201910279032A CN110069533B CN 110069533 B CN110069533 B CN 110069533B CN 201910279032 A CN201910279032 A CN 201910279032A CN 110069533 B CN110069533 B CN 110069533B
- Authority
- CN
- China
- Prior art keywords
- event
- target
- queried
- identification
- 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
Links
Images
Classifications
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种基于区块链的事件订阅方法及装置,涉及科技金融技术领域,该方法包括:中间服务器接收客户端发送的订阅请求,订阅请求包括目标主题中待查询事件的标识,根据待查询事件的标识确定目标主题中初始事件的标识,然后根据待查询事件的标识和初始事件的标识,从区块链中获得初始事件和待查询事件之间的目标事件并发送至客户端。由于客户端在订阅目标主题中的事件时,在订阅请求中添加待查询事件的标识,故中间服务器可以根据待查询事件的标识确定初始事件的标识,然后从区块链中获得初始事件至待查询事件的目标事件,从而既能获得主题中的最新事件,也能获得主题中的历史事件,给用户带来便利。
Description
技术领域
本发明实施例涉及科技金融技术领域,尤其涉及一种基于区块链的事件订阅方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Finteh)转变,区块链技术也不例外,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。区块链是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的Hash值,通过这种方式组成一条链。区块链的核心理念有两个,一个是密码学技术,另一个是去中心化思想,基于这两个理念做到区块链上的历史信息无法被篡改。一个区块由块头和块体组成,其中块头定义包括该区块高度h,上一个区块的Hash值等重要字段,而块体主要存储交易数据。生产者通过发布接口往某个主题上发布一个事件,发布成功的事件将永久存储在区块链上,当消费者成功订阅某个主题时,能接收生产者在该主题上发布的事件。目前,消费者成功订阅某个主题时,只能获得订阅成功后,生产者发布的最新事件,不能获取该主题的历史事件,导致用户使用不方便。
发明内容
由于目前消费者成功订阅某个主题时,只能获得订阅成功后,生产者发布的当前最新事件,不能获取该主题的历史事件,从而导致用户使用不方便的问题,本发明实施例提供了一种基于区块链的事件订阅方法及装置。
一方面,本发明实施例提供了一种基于区块链的事件订阅方法,包括:
接收客户端发送的订阅请求,所述订阅请求包括目标主题中待查询事件的标识;
根据所述待查询事件的标识确定所述目标主题中初始事件的标识;
根据所述待查询事件的标识和所述初始事件的标识,从区块链中获得所述初始事件和所述待查询事件之间的所述目标主题中的目标事件;
将所述目标主题中的目标事件发送至客户端。
可选地,所述目标主题中的待查询事件为所述目标主题中最新发布的事件。
可选地,所述订阅请求是基于STOMP协议传输的。
可选地,所述根据所述待查询事件的标识和所述初始事件的标识,从区块链中获得所述初始事件至所述待查询事件之间的目标事件,包括:
根据所述初始事件的标识确定所述初始事件在区块链中的第一位置;
根据所述待查询事件的标识确定所述待查询事件在所述区块链中的第二位置;
以所述第一位置为起点,所述第二位置为终点,依次从所述区块链中获得所述目标主题中的目标事件。
可选地,所述依次从所述区块链中获得所述目标主题中的目标事件之后,还包括:
将所述目标主题中的目标事件缓存在临时队列中;
所述将所述目标主题中的目标事件发送至客户端,包括:
从所述临时队列中依次取出所述目标主题中的目标事件并将所述目标主题中的目标事件发送至客户端。
可选地,所述待查询事件的标识包括所述待查询事件对应的块高信息和所述待查询事件的序列号,所述初始事件的标识包括所述初始事件对应的块高信息和所述初始事件的序列号。
一方面,本发明实施例提供了一种基于区块链的事件订阅装置,包括:
接收模块,用于接收客户端发送的订阅请求,所述订阅请求包括目标主题中待查询事件的标识;
解析模块,用于根据所述待查询事件的标识确定所述目标主题中初始事件的标识;
处理模块,用于根据所述待查询事件的标识和所述初始事件的标识,从区块链中获得所述初始事件和所述待查询事件之间的所述目标主题中的目标事件;
发送模块,用于将所述目标主题中的目标事件发送至客户端。
可选地,所述目标主题中的待查询事件为所述目标主题中最新发布的事件。
可选地,所述订阅请求是基于STOMP协议传输的。
可选地,所述处理模块具体用于:
根据所述初始事件的标识确定所述初始事件在区块链中的第一位置;
根据所述待查询事件的标识确定所述待查询事件在所述区块链中的第二位置;
以所述第一位置为起点,所述第二位置为终点,依次从所述区块链中获得所述目标主题中的目标事件。
可选地,所述处理模块还用于:
所述依次从所述区块链中获得所述目标主题中的目标事件,将所述目标主题中的目标事件缓存在临时队列中;
所述将所述目标主题中的目标事件发送至客户端,包括:
从所述临时队列中依次取出所述目标主题中的目标事件并将所述目标主题中的目标事件发送至客户端。
可选地,所述待查询事件的标识包括所述待查询事件对应的块高信息和所述待查询事件的序列号,所述初始事件的标识包括所述初始事件对应的块高信息和所述初始事件的序列号。
一方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现基于区块链的事件订阅方法的步骤。
一方面,本发明实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行基于区块链的事件订阅方法的步骤。
由于客户端在订阅目标主题中的事件时,在订阅请求中添加待查询事件的标识,故中间服务器在接收到订阅请求时,可以根据待查询事件的标识确定初始事件的标识,然后从区块链中获得目标主题中初始事件至待查询事件的目标事件,从而在订阅主题中的事件时,既能获得主题中的最新事件,也能获得主题中的历史事件,给用户带来便利。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用场景示意图;
图2为本发明实施例提供的一种基于区块链的事件订阅方法的流程示意图;
图3为本发明实施例提供的一种获取目标事件的方法的流程示意图;
图4为本发明实施例提供的一种基于区块链的事件订阅方法的流程示意图;
图5为本发明实施例提供的一种基于区块链的事件订阅装置的结构示意图;
图6为本发明实施例提供的一种基于计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了方便理解,下面对本发明实施例中涉及的名词进行解释。
Stomp协议:STOMP即Simple(or Streaming)Text Orientated MessagingProtocol,简单(流)文本定向消息协议,它提供了一个可互操作的连接格式,允许STOMP客户端与任意STOMP消息代理(Broker)进行交互。STOMP协议由于设计简单,易于开发客户端,因此在多种语言和多种平台上得到广泛地应用。
Event(事件):物体状态的一个变化,比如开门是一个事件,关门也是一个事件。
Topic(主题):同一类事件是一个主题,主题之间互相独立。
发布事件(Publish):将事件发送到特定的主题上。
订阅事件(Subscribe):从特定的主题上接收事件。
生产者(Producer):发布事件的主体。
消费者(Consumer):订阅事件的主体。
智能合约(Smart contract):在区块链上运行的一段公开,透明的代码。
事件ID(Event ID):每一个事件发布成功后会有一个在主题范围内的唯一ID。
区块链:区块链是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的Hash值,通过这种方式组成一条链。区块链的核心理念有两个,一个是密码学技术,另一个是去中心化思想,基于这两个理念做到区块链上的历史信息无法被篡改。一个区块由块头和块体组成,其中块头定义包括该区块高度h,上一个区块的Hash值等重要字段,而块体主要存储交易数据。
节点:网络中的每一个参与者就是一个节点,节点参与网络组建和数据交换。在区块链网络中,一个节点是指一个具有唯一身份的参与者,该节点具有一份完整的账本拷贝,具有参与区块链网络共识和账本维护的能力。
本发明实施例中的基于区块链的事件订阅方法可以应用于区块链场景中,示例性地,如图1所示,该场景中包括客户端101、中间服务器102以及区块链103,客户端101可以是生产者,也可以是消费者。当客户端101为生产者时,可以通过Publish接口往中间服务器102中发布一个主题,或者在某个主题上发布一个事件。中间服务器102将校验客户端101发布的主题或事件是否合法,如果合法,将客户端101发布的主题或事件保存在区块链103中。当客户端101为消费者时,可以通过Subscribe接口往中间服务器102中订阅一个主题,当订阅成功时,中间服务器102从区块链103中获取该主题上的事件,并将该主题上的事件发生至客户端101。当生产者往该主题上发布一个新的事件时,中间服务器102将新的事件发送至客户端101。客户端101具体是具备网络通信能力的电子设备,该电子设备可以是服务器、智能手机、平板电脑或便携式个人计算机等等。中间服务器102可以是一台服务器或若干台服务器组成的服务器集群或云计算中心等。客户端101通过无线网络与中间服务器102连接。
基于图1所示的应用场景图,本发明实施例提供了一种基于区块链的事件订阅方法的流程,该方法的流程可以由基于区块链的事件订阅装置执行,基于区块链的事件订阅装置可以是图1所示的中间服务器102,如图2所示,包括以下步骤:
步骤S201,接收客户端发送的订阅请求,订阅请求包括目标主题中待查询事件的标识。
具体地,订阅请求可以是基于STOMP协议传输的,订阅请求的头部中包括可扩展字段,在可扩展字段中写入目标主题中待查询事件的标识,待查询事件的标识可以是待查询事件ID。
在一种可能的实施方式中,目标主题中的待查询事件可以为目标主题中最新发布的事件。
具体实施中,客户端可以采用以下方式确定目标主题中最新发布的事件:
客户端需要订阅已知的目标主题时,发送第一订阅请求至中间服务器,第一订阅请求的头部没有写入待查询事件ID。中间服务器在接收到第一订阅请求时,确定客户端订阅目标主题成功。然后从区块链中获取目标主题中最新发布的事件,再将目标主题中最新发布的事件以及事件ID发送至客户端。
在一种可能的实施方式中,目标主题中的待查询事件可以不是目标主题中最新发布的事件。
具体实施中,客户端需要订阅已知的目标主题时,发送第一订阅请求至中间服务器,第一订阅请求的头部没有写入待查询事件ID。中间服务器在接收到第一订阅请求时,确定客户端订阅目标主题成功。然后从区块链中获取目标主题中最新发布的事件,再将目标主题中最新发布的事件发送至客户端。一段时间后,多个生产者往目标主题上发布了事件,每次有生产者发布事件时,中间服务器将生产者发布的事件以及事件ID发送至客户端,此时客户端保存了目标主题中多个事件的ID,可以以保存的多个事件中任意一个事件作为待查询事件。
步骤S202,根据待查询事件的标识确定目标主题中初始事件的标识。
其中,目标主题中的初始事件是目标主题发布后,生产者在目标主题中发布的第一个事件,初始事件的标识可以是初始事件的ID。
步骤S203,根据待查询事件的标识和初始事件的标识,从区块链中获得初始事件和待查询事件之间的目标主题中的目标事件。
具体地,区块链中保存了生产者在各个主题上发布的事件,每个主题的事件都包括一个在该主题范围内的唯一事件ID。目标事件可以是目标主题中待查询事件之前所有历史事件,也可以是目标主题中待查询事件之前的部分历史事件。
步骤S204,将目标主题中的目标事件发送至客户端。
由于客户端在订阅目标主题中的事件时,在订阅请求中添加待查询事件的标识,故中间服务器在接收到订阅请求时,可以根据待查询事件的标识确定初始事件的标识,然后从区块链中获得目标主题中初始事件至待查询事件的目标事件,从而在订阅主题中的事件时,既能获得主题中的最新事件,也能获得主题中的历史事件,给用户带来便利。
可选地,在上述步骤S203中,从区块链中获得初始事件和待查询事件之间的目标主题中的目标事件时,具体可以包括以下步骤,如图3所示:
步骤S301,根据初始事件的标识确定初始事件在区块链中的第一位置。
具体地,初始事件的标识包括初始事件对应的块高信息和初始事件的序列号,根据初始事件对应的块高信息定位初始事件在区块链中对应的区块,然后在该区块中查询初始事件的序列号,得到初始事件在区块链中的第一位置。示例性地,设定初始事件的标识为100-366,通过解析初始事件的标识得到初始事件的块高信息为100,初始事件的序列号为366。根据初始事件的块高信息可以得到初始事件在区块链中所处区块的块高为100,初始事件在目标主题中的序列号为366。
步骤S302,根据待查询事件的标识确定待查询事件在区块链中的第二位置。
待查询事件的标识包括待查询事件对应的块高信息和待查询事件的序列号,根据待查询事件对应的块高信息定位初始事件在区块链中对应的区块,然后在该区块中查询待查询事件的序列号,得到待查询事件在区块链中的第二位置。示例性地,设定待查询事件的标识为123-456,通过解析待查询事件的标识得到待查询事件的块高信息为123,待查询事件的序列号为456。根据待查询事件的块高信息可以得到待查询事件在区块链中所处区块的块高为123,待查询事件在目标主题中的序列号为456。
步骤S303,以第一位置为起点,第二位置为终点,依次从区块链中获得目标主题中的目标事件。
具体地,以第一位置为起点,将初始事件的序列号依次递增,然后获取递增后的序列号对应的事件作为目标事件,直到逐次递增后的序列号为待查询事件的序列号,即直到到达第二位置。示例性地,以块高为100,序列号为366的事件为起点,将序列号366加1得到序列号377,然后从区块链中获得目标主题中序列号为377的事件作为目标事件,依次类推,直到获取到待查询事件作为目标事件。
由于以初始事件对应的块高信息和序列号定位初始事件在区块链中的第一位置,以待查询事件对应的块高信息和序列号定位待查询事件在区块链中的第二位置,然后从区块链中获取第一位置至第二位置之间的目标主题的目标事件,从而便于用户订阅目标主题中的历史事件。
可选地,中间服务器设置两个线程,分别为第一线程和第二线程,第一线程根据初始事件的标识定位初始事件在区块链中的第一位置,根据待查询事件的标识定位待查询事件在区块链中的第二位置,然后以第一位置为起点,第二位置为终点,依次从区块链中获得目标主题中的目标事件,然后将目标主题中的目标事件缓存在临时队列中。第二线程从临时队列中依次取出目标主题中的目标事件并将目标主题中的目标事件发送至客户端。通过设置两个线程分别用于从区块链中获得目标主题中的目标事件以及将目标主题中的目标事件发送至客户端,从而一方面提高客户端订阅事件的效率,另一方面避免订阅激增时影响服务效率。
为了更好的解释本发明实施例,下面结合具体的实施场景描述本发明实施例提供的一种基于区块链的事件订阅方法,该方法由客户端、中间服务器以及区块链交互执行,如图4所示,该方法包括以下步骤:
步骤S401,客户端通过STOMP协议发送第一订阅请求至中间服务器。
第一订阅请求的头部没有写入待查询事件ID。
步骤S402,中间服务器根据第一订阅请求确定客户端订阅的目标主题。
步骤S403,中间服务器在确定客户端订阅目标主题成功时,发送事件获取请求至区块链。
步骤S404,区块链返回目标主题中最新发布的事件以及事件ID至中间服务器。
步骤S405,中间服务器发送目标主题中最新发布的事件以及事件ID至客户端。
步骤S406,客户端通过STOMP协议发送第二订阅请求至中间服务器。
第二订阅请求的头部包括待查询事件ID,待查询事件为目标主题中最新发布的事件。
步骤S407,中间服务器根据待查询事件ID确定目标主题中初始事件ID。
步骤S408,中间服务器根据待查询事件ID和初始事件ID,从区块链中获得初始事件和待查询事件之间的目标主题中的目标事件。
具体地,中间服务器采用第一线程从区块链中获得初始事件和待查询事件之间的目标主题中的目标事件。
步骤S409,区块链返回目标主题中的目标事件至中间服务器。
步骤S410,中间服务器将目标主题中的目标事件缓存在临时队列中。
步骤S411,中间服务器遍历临时队列取出目标主题中的目标事件。
步骤S412,中间服务器将目标主题中的目标事件发送至客户端。
具体地,中间服务器采用第二线程遍历临时队列取出目标主题中的目标事件并将目标主题中的目标事件发送至客户端。
由于客户端在订阅目标主题中的事件时,在订阅请求中添加待查询事件的标识,故中间服务器在接收到订阅请求时,可以根据待查询事件的标识确定初始事件的标识,然后从区块链中获得目标主题中初始事件至待查询事件的目标事件,从而在订阅主题中的事件时,既能获得主题中的最新事件,也能获得主题中的历史事件,给用户带来便利。
基于相同的技术构思,本发明实施例提供了一种基于区块链的事件订阅装置,如图5所示,基于区块链的事件订阅装置500包括:
接收模块501,用于接收客户端发送的订阅请求,所述订阅请求包括目标主题中待查询事件的标识;
解析模块502,用于根据所述待查询事件的标识确定所述目标主题中初始事件的标识;
处理模块503,用于根据所述待查询事件的标识和所述初始事件的标识,从区块链中获得所述初始事件和所述待查询事件之间的所述目标主题中的目标事件;
发送模块504,用于将所述目标主题中的目标事件发送至客户端。
可选地,所述目标主题中的待查询事件为所述目标主题中最新发布的事件。
可选地,所述订阅请求是基于STOMP协议传输的。
可选地,所述处理模块503具体用于:
根据所述初始事件的标识确定所述初始事件在区块链中的第一位置;
根据所述待查询事件的标识确定所述待查询事件在所述区块链中的第二位置;
以所述第一位置为起点,所述第二位置为终点,依次从所述区块链中获得所述目标主题中的目标事件。
可选地,所述处理模块503还用于:
所述依次从所述区块链中获得所述目标主题中的目标事件,将所述目标主题中的目标事件缓存在临时队列中;
所述将所述目标主题中的目标事件发送至客户端,包括:
从所述临时队列中依次取出所述目标主题中的目标事件并将所述目标主题中的目标事件发送至客户端。
可选地,所述待查询事件的标识包括所述待查询事件对应的块高信息和所述待查询事件的序列号,所述初始事件的标识包括所述初始事件对应的块高信息和所述初始事件的序列号。
基于相同的技术构思,本发明实施例提供了一种计算机设备,如图6所示,包括至少一个处理器601,以及与至少一个处理器连接的存储器602,本发明实施例中不限定处理器601与存储器602之间的具体连接介质,图6中处理器601和存储器602之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器602存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,可以执行前述的基于区块链的事件订阅方法中所包括的步骤。
其中,处理器601是终端设备的控制中心,可以利用各种接口和线路连接终端设备的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数据,从而订阅事件。可选的,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器601可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本发明实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行基于区块链的事件订阅方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种基于区块链的事件订阅方法,其特征在于,包括:
接收客户端发送的第一订阅请求;
根据所述第一订阅请求,确定所述客户端订阅的目标主题;
在确定所述客户端订阅所述目标主题成功时,从区块链获取所述目标主题中最新发布的事件以及相应的事件标识;
将所述最新发布的事件以及相应的事件标识发送至所述客户端;
接收所述客户端基于STOMP协议发送的第二订阅请求,所述第二订阅请求的可扩展字段中包括目标主题中待查询事件的标识,所述待查询事件为所述最新发布的事件;
根据所述待查询事件的标识确定所述目标主题中初始事件的标识;
通过第一线程根据所述待查询事件的标识和所述初始事件的标识,从区块链中获得所述初始事件和所述待查询事件之间的所述目标主题中的目标事件,并将所述目标主题中的目标事件缓存在临时队列中;
通过第二线程从所述临时队列中依次取出所述目标主题中的目标事件并将所述目标主题中的目标事件发送至客户端。
2.如权利要求1所述的方法,其特征在于,所述根据所述待查询事件的标识和所述初始事件的标识,从区块链中获得所述初始事件至所述待查询事件之间的目标事件,包括:
根据所述初始事件的标识确定所述初始事件在区块链中的第一位置;
根据所述待查询事件的标识确定所述待查询事件在所述区块链中的第二位置;
以所述第一位置为起点,所述第二位置为终点,依次从所述区块链中获得所述目标主题中的目标事件。
3.如权利要求1至2任一所述的方法,其特征在于,所述待查询事件的标识包括所述待查询事件对应的块高信息和所述待查询事件的序列号,所述初始事件的标识包括所述初始事件对应的块高信息和所述初始事件的序列号。
4.一种基于区块链的事件订阅装置,其特征在于,包括:
接收模块,用于接收客户端发送的第一订阅请求;
处理模块,用于根据所述第一订阅请求,确定所述客户端订阅的目标主题;在确定所述客户端订阅所述目标主题成功时,从区块链获取所述目标主题中最新发布的事件以及相应的事件标识;
发送模块,用于将所述最新发布的事件以及相应的事件标识发送至所述客户端;
所述接收模块,还用于接收所述客户端基于STOMP协议发送的第二订阅请求,所述第二订阅请求的可扩展字段中包括目标主题中待查询事件的标识,所述待查询事件为所述最新发布的事件;
解析模块,用于根据所述待查询事件的标识确定所述目标主题中初始事件的标识;
所述处理模块,还用于通过第一线程根据所述待查询事件的标识和所述初始事件的标识,从区块链中获得所述初始事件和所述待查询事件之间的所述目标主题中的目标事件,并将所述目标主题中的目标事件缓存在临时队列中;
所述发送模块,还用于通过第二线程从所述临时队列中依次取出所述目标主题中的目标事件并将所述目标主题中的目标事件发送至客户端。
5.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1~3任一权利要求所述方法的步骤。
6.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行权利要求1~3任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910279032.2A CN110069533B (zh) | 2019-04-09 | 2019-04-09 | 一种基于区块链的事件订阅方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910279032.2A CN110069533B (zh) | 2019-04-09 | 2019-04-09 | 一种基于区块链的事件订阅方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110069533A CN110069533A (zh) | 2019-07-30 |
CN110069533B true CN110069533B (zh) | 2023-06-09 |
Family
ID=67367179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910279032.2A Active CN110069533B (zh) | 2019-04-09 | 2019-04-09 | 一种基于区块链的事件订阅方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069533B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532324B (zh) * | 2019-09-05 | 2023-10-03 | 腾讯科技(深圳)有限公司 | 基于区块链的公告信息展示方法、装置、设备及存储介质 |
CN111651280B (zh) * | 2020-04-17 | 2024-05-24 | 宁波吉利汽车研究开发有限公司 | 一种事件的动态订阅方法、装置、电子设备及存储介质 |
CN114257487B (zh) * | 2021-11-26 | 2024-03-29 | 蚂蚁区块链科技(上海)有限公司 | 管理网络节点集的系统和方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018119587A1 (zh) * | 2016-12-26 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 数据处理方法、装置、系统及信息采集设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170522A (zh) * | 2007-12-03 | 2008-04-30 | 华为技术有限公司 | 一种发布历史事件的方法及系统 |
CN101854338B (zh) * | 2009-03-31 | 2014-02-26 | 国际商业机器公司 | 订户设备及其订阅管理方法、实时通信方法和系统 |
CN106485495A (zh) * | 2016-09-18 | 2017-03-08 | 江苏通付盾科技有限公司 | 交易信息订阅方法、装置、服务器以及系统 |
US20180220292A1 (en) * | 2017-01-30 | 2018-08-02 | Sap Se | Blockchain-Based Subscription Management |
CN108492175A (zh) * | 2018-03-28 | 2018-09-04 | 深圳市元征科技股份有限公司 | 一种金融贷款风险控制方法及服务器 |
CN108920523B (zh) * | 2018-06-04 | 2020-09-29 | 深圳乐信软件技术有限公司 | 区块链上数据查询方法、装置、设备、系统及介质 |
CN108900585A (zh) * | 2018-06-15 | 2018-11-27 | 浙江华信区块链科技服务有限公司 | 跨链事务一致性实现方法 |
CN109298835B (zh) * | 2018-08-16 | 2022-04-26 | 北京京东尚科信息技术有限公司 | 区块链的数据归档处理方法、装置、设备及存储介质 |
-
2019
- 2019-04-09 CN CN201910279032.2A patent/CN110069533B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018119587A1 (zh) * | 2016-12-26 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 数据处理方法、装置、系统及信息采集设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110069533A (zh) | 2019-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110113381B (zh) | 一种区块链中订阅主题的方法及装置 | |
CN107450981B (zh) | 一种区块链共识方法及设备 | |
CN110069533B (zh) | 一种基于区块链的事件订阅方法及装置 | |
US20180365254A1 (en) | Method and apparatus for processing information flow data | |
CN111427859B (zh) | 一种消息处理方法、装置、电子设备及存储介质 | |
CN112445596B (zh) | 基于多线程的数据导入方法、系统及存储介质 | |
EP4030314A1 (en) | Blockchain-based data processing method, apparatus and device, and readable storage medium | |
CN109787884B (zh) | 一种消息推送方法和装置 | |
CN106385377A (zh) | 一种信息处理方法和系统 | |
CN112347143A (zh) | 多数据流处理方法、装置、终端及存储介质 | |
CN107102889B (zh) | 一种虚拟机资源调整方法及装置 | |
CN110381150B (zh) | 区块链上的数据处理方法、装置、电子设备及存储介质 | |
CN113377777B (zh) | 数据加载方法、设备、计算机程序产品及存储介质 | |
CN113114678B (zh) | 一种业务执行方法及装置 | |
CN110222016B (zh) | 一种文件处理方法及装置 | |
CN108810645B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN111651522A (zh) | 一种数据同步方法及装置 | |
CN111050217A (zh) | 一种视频播放方法及装置 | |
CN116611987A (zh) | 数据处理方法、装置、图形处理器及存储介质 | |
CN115550380A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN113468442A (zh) | 资源位流量的分发方法、计算设备及计算机存储介质 | |
CN112085604A (zh) | 一种升级智能合约的方法及装置 | |
CN115348321B (zh) | 一种基于流量控制的数据获取方法及相关装置 | |
CN112751893A (zh) | 一种消息轨迹数据的处理方法、装置及电子设备 | |
CN115442272B (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 |