CN110083629B - 一种基于区块链的事件订阅的方法及装置 - Google Patents
一种基于区块链的事件订阅的方法及装置 Download PDFInfo
- Publication number
- CN110083629B CN110083629B CN201910321654.7A CN201910321654A CN110083629B CN 110083629 B CN110083629 B CN 110083629B CN 201910321654 A CN201910321654 A CN 201910321654A CN 110083629 B CN110083629 B CN 110083629B
- Authority
- CN
- China
- Prior art keywords
- event
- acquired
- block
- contract
- theme
- 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
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000012545 processing Methods 0.000 claims description 20
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
-
- 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
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Computer Security & Cryptography (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于区块链的事件订阅的方法及装置,方法包括:服务器接收获取请求,根据待获取事件所属主题,从区块链系统中获取待获取事件所属主题的主题合约,从待获取事件所属主题的主题合约中确定待获取事件存储的区块位置,并从区块位置对应的区块中获取待获取事件。该技术方案通过从主题合约中确定待获取事件的区块位置,提高了获取特定主题事件的效率。
Description
技术领域
本发明实施例涉及金融科技(Fintech)领域,尤其涉及一种基于区块链(Blockchain)的事件订阅的方法及装置。
背景技术
区块链是由一系列区块组成的一条链,每个区块记录本块的数据及上一块的哈希值,所有区块通过这种方式前后相继组成一条链。区块链所基于的密码学技术和去中心化思想使链上的历史信息无法被篡改。
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Finteh)转变,区块链技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对技术提出的更高的要求。在事件发布订阅中,生产者将待发布事件写入区块链系统,消费者从区块链系统读取待获取事件,由于区块链上信息的不易篡改性,保障消费者准确读取生产者写入区块链系统中的事件。
现有技术中,消费者在获取生产者写入区块链系统中的特定主题事件时,需要顺着区块链的方向从前往后查找下去,从而遍历整个区块链系统,并从中获取到该特定主题事件。但当区块链系统中存在大量其他主题事件时,采用遍历方式获取特定主题事件的效率较低。
发明内容
本发明实施例提供一种基于区块链的事件订阅的方法及装置,用于提高获取特定主题事件的效率。
本发明实施例提供的一种基于区块链的事件订阅的方法,包括:
服务器接收获取请求;所述获取请求用于指示所述服务器从区块链系统中获取待获取事件;
所述服务器根据所述待获取事件所属主题,从所述区块链系统中获取所述待获取事件所属主题的主题合约;所述区块链系统中存储有各主题对应的主题合约;所述主题合约内记录有各事件存储于所述区块链系统中的区块位置;
所述服务器从所述待获取事件所属主题的主题合约中确定所述待获取事件存储的区块位置,并从所述区块位置对应的区块中获取所述待获取事件。
上述技术方案中,服务器接收获取请求后,可以根据获取请求中的待获取事件所属主题,从区块链系统中获取待获取事件所属主题的主题合约,该主题合约中记录有事件存储于区块链系统中的区块位置,服务器可以从主题合约中确定出待获取事件在区块链系统中的区块位置,进而可以从具体区块中确定出待获取事件,无需遍历整个区块链系统的每个区块,提高了获取特定主题事件的效率。
可选的,所述主题合约内记录有各事件的事件标识;所述事件标识包括事件序列号和区块高度;所述事件序列号用于表征事件在所属主题内的发布顺序;所述区块高度为存储事件的区块。
上述技术方案中,主题合约中记录各事件的事件标识,事件标识包括事件序列号,用于表征事件在所属主题内的发布顺序。服务器可以将事件标识按事件的发布顺序写入主题合约,也就是说,主题合约的事件标识是按顺序存储的。当服务器需要获取特定主题的某序列号区间的事件时,服务器可直接根据序列号区间按顺序查找主题合约,并获取待获取事件的事件标识,该方案有效提高获取特定主题内某序列号区间的事件的效率。
可选的,所述获取请求中包括已获取事件的事件标识;所述待获取事件为所述已获取事件之后发布的同一主题的事件;
所述服务器从所述待获取事件所属主题的主题合约中确定所述待获取事件存储的区块位置,包括:
所述服务器根据所述已获取事件的事件标识,从所述待获取事件所属主题的主题合约中确定所述待获取事件的事件标识,从而获取所述待获取事件在所述区块链系统中存储的各区块位置。
上述技术方案中,服务器可以获取已获取事件之后的所有事件,服务器根据该已获取事件的事件标识,从待获取事件所属主题的主题合约中确定待获取事件的事件标识,具体的,可以根据已获取事件的事件标识的序列号获取该序列号之后的所有序列号的事件标识,并将其作为待获取事件的事件标识,进而获取到已获取事件之后的所有事件,满足不同消费者的获取请求。
可选的,还包括:
所述服务器接收发布请求;所述发布请求包括待发布事件;
所述服务器根据所述待发布事件,生成并发送交易请求至所述区块链系统;所述交易请求用于指示所述区块链系统调用所述待发布事件所属主题对应的主题合约;所述主题合约用于生成记录有所述待发布事件的交易日志并将所述交易日志存储于区块中;所述主题合约还用于将存储有所述待发布事件的区块位置记录于所述主题合约内。
上述技术方案中,服务器还可以接收生产者的发布请求,并根据发布请求中的待发布事件,生成交易请求发送至区块链系统,区块链系统调用待发布事件所属主题的主题合约,生成交易日志以及将存储待发布事件的区块位置记录在主题合约中,以使得服务器在接收到获取请求后,可以从待获取事件所属主题的主题合约中确定出待获取事件的区块位置。
相应的,本发明实施例还提供了一种基于区块链的事件订阅的装置,包括:
收发单元,用于接收获取请求;所述获取请求用于指示处理单元从区块链系统中获取待获取事件;
所述处理单元,用于根据所述待获取事件所属主题,从所述区块链系统中获取所述待获取事件所属主题的主题合约;所述区块链系统中存储有各主题对应的主题合约;所述主题合约内记录有各事件存储于所述区块链系统中的区块位置;
所述处理单元,还用于从所述待获取事件所属主题的主题合约中确定所述待获取事件存储的区块位置,并从所述区块位置对应的区块中获取所述待获取事件。
可选的,所述主题合约内记录有各事件的事件标识;所述事件标识包括事件序列号和区块高度;所述事件序列号用于表征事件在所属主题内的发布顺序;所述区块高度用于指示存储事件的区块。
可选的,所述获取请求中包括已获取事件的事件标识;所述待获取事件为所述已获取事件之后发布的同一主题的事件;
所述处理单元具体用于:
根据所述已获取事件的事件标识,从所述待获取事件所属主题的主题合约中确定所述待获取事件的事件标识,从而获取所述待获取事件在所述区块链系统中存储的各区块位置。
可选的,所述处理单元还用于:
控制所述收发单元接收发布请求;所述发布请求包括待发布事件;
根据所述待发布事件,生成并发送交易请求至所述区块链系统;所述交易请求用于指示所述区块链系统调用所述待发布事件所属主题对应的主题合约;所述主题合约用于生成记录有所述待发布事件的交易日志并将所述交易日志存储于区块中;所述主题合约还用于将存储有所述待发布事件的区块位置记录于所述主题合约内。
相应的,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述事件订阅的方法。
相应的,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述事件订阅的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种系统架构的示意图;
图2为本发明实施例提供的一种事件订阅的方法的流程示意图;
图3为本发明实施例提供的另一种事件订阅的方法的流程示意图;
图4本发明实施例提供的一种事件发布的方法的流程示意图;
图5为本发明实施例提供的一种事件订阅的装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示例性的示出了本发明实施例提供的基于区块链的事件订阅的方法所适用的系统架构,该系统架构可以包括生产者100、发布服务器200、区块链系统300、订阅服务器400、消费者500。其中,生产者100用于生成待发布事件,发布服务器200用于将待发布事件写入区块链系统300中,消费者500用于通过订阅服务器400从区块链系统300中订阅事件。
区块链系统300中存储有各主题对应的主题合约,生产者100需要发布事件时,将待发布事件发送至发布服务器200,发布服务器200根据待发布事件生成交易请求,发布服务器200将交易请求发送至区块链系统300,区块链系统300根据交易请求执行待发布事件所属主题的主题合约,将待发布事件记录在区块链系统300中,同时在待发布事件所属主题的主题合约中记录待发布事件的事件标识,可选的,事件标识包括事件序列号和区块高度,事件序列号用于表征事件在所属主题内的发布顺序,区块高度用于指示存储事件的区块。
也就是说,区块链系统300在将待发布事件记录在区块链系统300中时,还会将待发布事件所存储在区块链系统300中的区块位置记录在待发布事件所属主题的主题合约中,相当于,区块链系统300的主题合约中记录有各事件存储于区块链系统300中的区块位置。
消费者500需要获取事件时,向订阅服务器400发送获取请求,订阅服务器400根据接收到的获取请求从区块链系统300中确定出获取请求对应的事件,反馈至消费者500,以完成消费者500的事件订阅。
本系统架构中的发布服务器200和订阅服务器400在物理实体上可以为一个服务器,该服务器完成发布和订阅功能,也可以为两个分开的服务器,分别完成发布功能和订阅功能,在此不做限制。为方便描述,现将下述实施例中涉及事件订阅的服务器以及涉及事件发布的服务器均称为服务器。
图2示例性的示出了本发明实施例提供的一种基于区块链的事件订阅的方法的流程,该流程具体包括:
步骤201,服务器接收获取请求。
本发明实施例中,获取请求可以是消费者向服务器发送的,用于指示服务器从区块链系统中获取待获取事件。获取请求可以包括待获取事件所属主题,用于服务器根据待获取事件所属主题确定待获取事件所属主题的主题合约,也可以包括已获取事件的事件标识,用于服务器根据已获取事件的事件标识从区块链系统中获取已获取事件之后生产者发布的同一主题的事件。
步骤202,服务器根据待获取事件所属主题,从区块链系统中获取待获取事件所属主题的主题合约。
此处,由于区块链系统中存储有各主题对应的主题合约,如区块链系统中部署主题合约A、B、C,分别对应主题a、b、c。服务器确定待获取事件所属主题为主题a,则可以从区块链系统中获取主题a的主题合约A。
步骤203,服务器从待获取事件所属主题的主题合约中确定待获取事件存储的区块位置,并从区块位置对应的区块中获取待获取事件。
具体的,主题合约中存储各事件的区块位置,即服务器通过查询主题合约中的内容,即可以确定出待获取事件所在区块链系统中的区块位置,进一步从对应的区块中获取到待获取事件。
具体实现中,服务器接收到的获取请求中包括已获取事件的事件标识,获取请求用于指示服务器从区块链系统中获取已获取事件之后发布的同一主题的事件,也就是说,待获取事件是已获取事件之后发布的同一主题的事件。服务器根据已获取事件的事件标识,从待获取事件所属主题的主题合约中确定待获取事件的事件标识,从而获取待获取事件在区块链系统中存储的各区块位置,并从区块位置对应的区块中获取待获取事件。
举例来说,生产者发布主题a对应的20个事件至区块链系统中,区块链系统的主题合约A中存储有20个事件中各事件的事件标识,事件标识包括事件序列号和区块高度,如某事件的事件标识为“a2,block30”,其中,“a2”代表该事件是发布于主题A中的第二个事件,“block30”代表该事件存储在区块高度为30的区块中。服务器接收的获取请求中包括已获取事件的事件标识,假设为“a4,block34”,则待获取事件是在事件标识为“a4,block34”的事件之后发布的A主题的事件,服务器可以根据“a4,block34”从主题合约A中确定出待获取事件的事件标识,如“a5,block34”、“a6,block36”、……、“a20,block98”,从而确定出待获取事件中各事件存储于区块链系统中的区块位置,如序列号为“a5”的待获取事件存储在区块链系统中区块高度为34的区块中,从而进一步从区块中获取到该序列号为“a5”的待获取事件。
需要说明的是,事件标识包括事件序列号,用于表征事件在所属主题内的发布顺序,事件序列号可以为相同主题内根据发布顺序确定的由1至n的序列号,也可以为不同主题内根据发布顺序确定的由1至n的序列号,当然,还可以是相同主题或不同主题内事件发布的时间,也就是说,本方案中任何可以表征事件在所属主题内的发布顺序的参数都可以理解为事件序列号。同理,事件标识包括区块高度,区块高度用于指示存储事件的区块,即可以根据区块高度将待获取事件定位到区块链系统中的具体区块,区块高度也可以理解为区块链系统中区块的标识号、编号等。
为了更好的理解本发明中服务器根据已获取事件的事件标识获取待获取事件的实现方式,下面在具体场景下举例说明,该场景为消费者订阅某生产者发布的特定主题的事件,即生产者每发布一条该特定主题的事件至区块链系统中,消费者都可以从区块链系统中订阅到该事件,但是由于消费者自身故障原因,导致中断获取生产者发布的特定主题的事件。
举例来说,生产者从某时间点发布主题a的事件至今,共发布100条事件,消费者订阅生产者发布的主题a的事件,由于消费者自身故障原因,仅仅订阅到第52条事件之后,则无法获取第53条以及第53条之后的事件,则可以向服务器发送获取请求,该获取请求中包括已获取事件(第52条事件)的事件标识,服务器根据已获取事件(第52条事件)的事件标识,获取第53条以及第53条之后的事件的事件标识,进一步从对应的区块中获取第53条以及第53条之后的事件。消费者在获取到第53条以及第53条之后的事件之后,可以继续订阅生产者发布的事件,即此时,生产者发布第101条事件,消费者订阅该发布的第101条事件。
结合上述描述,提供一种具体的服务器订阅方式,可以如图3示出的流程图。该流程可以以服务器为执行主体进行说明。
步骤301,接收消费者发送的获取请求。
步骤302,判断区块链系统是否存在待获取事件所属主题,若是,则转向步骤303,否则,向消费者返回订阅失败的消息。
步骤303,判断获取请求中是否包括事件标识,若是,则转向步骤304,否则,转向步骤306。
相当于判断消费者发送的获取请求是用于获取实时事件还是历史事件,若获取请求中包括事件标识,则代表获取请求用于获取历史事件,否则,代表获取请求用于获取实时事件。此处,事件标识可以是已获取事件的事件标识,用于指示服务器根据已获取事件的事件标识,获取同一主题下的在已获取事件之后发布于区块链系统中的事件。
步骤304,从所属主题的主题合约中确定待获取事件所在的历史区块。
根据事件标识,从所属主题的主题合约中确定待获取事件所在的历史区块。此处,可以根据已获取事件的事件标识,确定出同一主题下的在已获取事件之后发布于区块链系统中的所有事件的事件标识,作为待获取事件的事件标识,进一步可以确定出待获取事件所在的历史区块,此处,同一主题下的在已获取事件之后发布于区块链系统中的事件可以为多个,即待获取事件可以为多个。
步骤305,从历史区块中获取待获取事件。
在确定出待获取事件所在的历史区块后,可以获取该历史区块中的全部交易日志,并从全部交易日志中确定出存储有该待获取事件的交易日志,并从中确定出该待获取事件。
步骤306,在确定区块链系统中存在新增区块后,从新增区块中获取待获取事件。
步骤307,返回待获取事件至消费者。
需要说明的是,在步骤305中,服务器获取到待获取事件,并在步骤307中将待获取事件发送至消费者之后,还可以返回至步骤306,即在确定区块链系统中存在新增区块后,从新增区块中获取待获取事件,相当于在获取历史事件之后,继续获取相应主题对应的实时事件返回至消费者。
本发明实施例中,主题合约内记录有各事件的事件标识,该主题合约内的事件标识是区块链系统将生产者发布的事件记录在区块链系统之后,写入主题合约中的。具体的,可以如图4示出的流程图,该流程图涉及服务器和区块链系统。
步骤401,服务器接收发布请求。
本发明实施例中,发布请求可以是生产者向服务器发送的,可以包括待发布事件,发布请求用于指示服务器将待发布事件写入区块链系统中。
步骤402,服务器根据待发布事件,生成交易请求。
本发明实施例中,区块链系统中存储有各主题对应的主题合约,当服务器接收到发布请求之后,可以根据发布请求中的待发布事件所属主题,确定出区块链系统中待发布事件所属主题对应的主题合约地址,即区块链系统待调用的主题合约的合约地址,具体的,服务器可以获取到区块链系统中各主题与主题合约地址的对应关系,并根据对应关系确定出主题合约地址,以及生成记录有待发布事件和主题合约地址的交易请求。此处,各主题与主题合约地址的对应关系可以存储在服务器本地,也可以以合约的形式存储在区块链系统中,示例性的,在区块链系统中建立系统合约,该系统合约用于存储各主题与主题合约地址的对应关系。
步骤403,服务器将交易请求发送至区块链系统。
步骤404,区块链系统调用待发布事件所属主题对应的主题合约。
区块链系统根据交易请求中的主题合约地址,调用待发布事件所属主题对应的主题合约,从而将记录有待发布事件的交易日志写入区块链系统的具体区块中以及将该具体区块的区块位置记录于主题合约内。
步骤405,区块链系统生成记录有待发布事件的交易日志并将交易日志存储于区块中。
交易日志中可以记录有待发布事件,如记录有待发布事件所属主题、事件内容等,当然还可以记录待发布事件的相关参数,如待发布事件的事件标识、生产者标识等。进一步的,在交易日志的事件标识中,不仅可以记录依据主题编写的序列号,还可以记录该交易日志所在区块在整个区块链系统中的标识号,也就是说,交易日志的事件标识包括事件序列号和区块高度,其中,事件序列号用于表征事件在所属主题内的发布顺序,区块高度用于指示存储事件的区块。区块链系统生成记录有待发布事件的交易日志,可以理解为该待发布事件已经发布完成。区块链系统生成交易日志后,将交易日志存储至区块链系统中,则该交易日志中的待发布事件不会被轻易篡改。
步骤406,区块链系统将存储有待发布事件的区块位置记录于主题合约内。
本发明实施例中,可以在主题合约中设置Vector数组,该Vector数组用于存储待发布事件的事件标识。当有事件发布时,区块链系统调用待发布事件所属主题的主题合约,不仅将待发布事件写入交易日志中,还在主题合约的Vector数组里顺序插入一份数据,该数据即记录有待发布事件的区块位置。此外,还可以采用映射结构Mapping代替数组结构Vector,其中,Mapping的Key为事件序列号。
本发明实施中,服务器接收获取请求后,可以根据获取请求中的待获取事件所属主题,从区块链系统中获取待获取事件所属主题的主题合约,该主题合约中记录有事件存储于区块链系统中的区块位置,服务器可以从主题合约中确定出待获取事件在区块链系统中的区块位置,进而可以从具体区块中确定出待获取事件,无需遍历整个区块链系统的每个区块,提高了获取特定主题事件的效率。
基于同一发明构思,图5示例性的示出了本发明实施例提供的一种基于区块链的事件订阅的装置,该事件订阅的装置可以执行上述事件订阅的方法的流程。
该装置包括:
收发单元501,用于接收获取请求;所述获取请求用于指示处理单元502从区块链系统中获取待获取事件;
所述处理单元502,用于根据所述待获取事件所属主题,从所述区块链系统中获取所述待获取事件所属主题的主题合约;所述区块链系统中存储有各主题对应的主题合约;所述主题合约内记录有各事件存储于所述区块链系统中的区块位置;
所述处理单元502,还用于从所述待获取事件所属主题的主题合约中确定所述待获取事件存储的区块位置,并从所述区块位置对应的区块中获取所述待获取事件。
可选的,所述主题合约内记录有各事件的事件标识;所述事件标识包括事件序列号和区块高度;所述事件序列号用于表征事件在所属主题内的发布顺序;所述区块高度用于指示存储事件的区块。
可选的,所述获取请求中包括已获取事件的事件标识;所述待获取事件为所述已获取事件之后发布的同一主题的事件;
所述处理单元502具体用于:
根据所述已获取事件的事件标识,从所述待获取事件所属主题的主题合约中确定所述待获取事件的事件标识,从而获取所述待获取事件在所述区块链系统中存储的各区块位置。
可选的,所述处理单元502还用于:
控制所述收发单元501接收发布请求;所述发布请求包括待发布事件;
根据所述待发布事件,生成并发送交易请求至所述区块链系统;所述交易请求用于指示所述区块链系统调用所述待发布事件所属主题对应的主题合约;所述主题合约用于生成记录有所述待发布事件的交易日志并将所述交易日志存储于区块中;所述主题合约还用于将存储有所述待发布事件的区块位置记录于所述主题合约内。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述事件订阅的方法。
基于同一发明构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述事件订阅的方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (8)
1.一种基于区块链的事件订阅的方法,其特征在于,包括:
服务器接收获取请求;所述获取请求用于指示所述服务器从区块链系统中获取待获取事件;所述服务器根据所述待获取事件所属主题,从所述区块链系统中获取所述待获取事件所属主题的主题合约;所述区块链系统中存储有各主题对应的主题合约;所述主题合约内记录有各事件存储于所述区块链系统中的区块位置;
判断所述获取请求中是否包括事件标识;
若所述获取请求中包括已获取事件的事件标识;所述待获取事件为所述已获取事件之后发布的同一主题的事件;所述服务器根据所述已获取事件的事件标识,从所述待获取事件所属主题的主题合约中确定所述待获取事件的事件标识,从而获取所述待获取事件在所述区块链系统中存储的各区块位置,并从所述区块位置对应的区块中获取所述待获取事件;
若所述获取请求中不包括已获取事件的事件标识;所述服务器从所述待获取事件所属主题的主题合约中确定所述待获取事件存储的区块位置,并从所述区块位置对应的区块中获取所述待获取事件。
2.如权利要求1所述的方法,其特征在于,所述主题合约内记录有各事件的事件标识;所述事件标识包括事件序列号和区块高度;所述事件序列号用于表征事件在所属主题内的发布顺序;所述区块高度用于指示存储事件的区块。
3.如权利要求1或2所述的方法,其特征在于,还包括:
所述服务器接收发布请求;所述发布请求包括待发布事件;
所述服务器根据所述待发布事件,生成并发送交易请求至所述区块链系统;所述交易请求用于指示所述区块链系统调用所述待发布事件所属主题对应的主题合约;所述主题合约用于生成记录有所述待发布事件的交易日志并将所述交易日志存储于区块中;所述主题合约还用于将存储有所述待发布事件的区块位置记录于所述主题合约内。
4.一种基于区块链的事件订阅的装置,其特征在于,包括:
收发单元,用于接收获取请求;所述获取请求用于指示处理单元从区块链系统中获取待获取事件;
所述处理单元,用于根据所述待获取事件所属主题,从所述区块链系统中获取所述待获取事件所属主题的主题合约;所述区块链系统中存储有各主题对应的主题合约;所述主题合约内记录有各事件存储于所述区块链系统中的区块位置;
所述处理单元,还用于判断所述获取请求中是否包括事件标识;
若所述获取请求中包括已获取事件的事件标识;所述待获取事件为所述已获取事件之后发布的同一主题的事件;所述处理单元还用于:根据所述已获取事件的事件标识,从所述待获取事件所属主题的主题合约中确定所述待获取事件的事件标识,从而获取所述待获取事件在所述区块链系统中存储的各区块位置;并从所述区块位置对应的区块中获取所述待获取事件;
若所述获取请求中不包括已获取事件的事件标识;所述处理单元,还用于从所述待获取事件所属主题的主题合约中确定所述待获取事件存储的区块位置,并从所述区块位置对应的区块中获取所述待获取事件。
5.如权利要求4所述的装置,其特征在于,所述主题合约内记录有各事件的事件标识;所述事件标识包括事件序列号和区块高度;所述事件序列号用于表征事件在所属主题内的发布顺序;所述区块高度用于指示存储事件的区块。
6.如权利要求4或5所述的装置,其特征在于,所述处理单元还用于:
控制所述收发单元接收发布请求;所述发布请求包括待发布事件;
根据所述待发布事件,生成并发送交易请求至所述区块链系统;所述交易请求用于指示所述区块链系统调用所述待发布事件所属主题对应的主题合约;所述主题合约用于生成记录有所述待发布事件的交易日志并将所述交易日志存储于区块中;所述主题合约还用于将存储有所述待发布事件的区块位置记录于所述主题合约内。
7.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至3任一项所述的方法。
8.一种计算机可读非易失性存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1至3任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910321654.7A CN110083629B (zh) | 2019-04-22 | 2019-04-22 | 一种基于区块链的事件订阅的方法及装置 |
PCT/CN2020/079361 WO2020215925A1 (zh) | 2019-04-22 | 2020-03-13 | 一种基于区块链的事件订阅的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910321654.7A CN110083629B (zh) | 2019-04-22 | 2019-04-22 | 一种基于区块链的事件订阅的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110083629A CN110083629A (zh) | 2019-08-02 |
CN110083629B true CN110083629B (zh) | 2024-05-07 |
Family
ID=67415991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910321654.7A Active CN110083629B (zh) | 2019-04-22 | 2019-04-22 | 一种基于区块链的事件订阅的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110083629B (zh) |
WO (1) | WO2020215925A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083629B (zh) * | 2019-04-22 | 2024-05-07 | 深圳前海微众银行股份有限公司 | 一种基于区块链的事件订阅的方法及装置 |
US10936581B2 (en) | 2019-08-30 | 2021-03-02 | Advanced New Technologies Co., Ltd. | Blockchain transaction processing method and apparatus |
CN110633309A (zh) * | 2019-08-30 | 2019-12-31 | 阿里巴巴集团控股有限公司 | 一种区块链交易处理方法及装置 |
CN112017052B (zh) * | 2020-10-28 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 在区块链中部署和调用合约的方法和装置 |
CN112199221B (zh) * | 2020-12-04 | 2021-03-30 | 杭州趣链科技有限公司 | 事件推送方法、系统、区块链平台、合约调用端及介质 |
CN112948342A (zh) * | 2021-02-25 | 2021-06-11 | 杭州沃趣科技股份有限公司 | 一种基于日志解析系统的数据处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101677327A (zh) * | 2008-09-16 | 2010-03-24 | 华为技术有限公司 | 一种位置相关信息订阅方法、系统及装置 |
WO2010142102A1 (zh) * | 2009-06-11 | 2010-12-16 | 中兴通讯股份有限公司 | 用户数据融合网络系统及订阅通知的实现方法 |
CN107943951A (zh) * | 2017-11-24 | 2018-04-20 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种区块链业务信息的检索方法及系统 |
CN108282529A (zh) * | 2018-01-23 | 2018-07-13 | 百度在线网络技术(北京)有限公司 | 发布和订阅数据的系统、方法和装置 |
CN109472696A (zh) * | 2018-09-29 | 2019-03-15 | 腾讯科技(深圳)有限公司 | 资产交易方法、装置、存储介质及计算机设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107017992B (zh) * | 2017-03-29 | 2020-02-07 | 杭州秘猿科技有限公司 | 一种基于双链结构的高性能联盟区块链的设计方法 |
US11049104B2 (en) * | 2017-04-05 | 2021-06-29 | Samsung Sds Co., Ltd. | Method of processing payment based on blockchain and apparatus thereof |
ES2771229T3 (es) * | 2017-09-04 | 2020-07-06 | Siemens Ag | Sistema de comunicación de datos basado en la unidad de filtro que incluye una plataforma de cadena de bloques |
CN108510389B (zh) * | 2018-03-30 | 2020-12-18 | 深圳前海微众银行股份有限公司 | 基于区块链的智能合约调用方法、设备及可读存储介质 |
CN109271362A (zh) * | 2018-08-31 | 2019-01-25 | 上海雄九投资控股(集团)有限公司 | 一种基于区块链的数据处理系统 |
CN109274752A (zh) * | 2018-10-10 | 2019-01-25 | 腾讯科技(深圳)有限公司 | 区块链数据的访问方法及装置、电子设备、存储介质 |
CN110097363A (zh) * | 2019-04-12 | 2019-08-06 | 深圳前海微众银行股份有限公司 | 一种基于区块链的事件发布、事件订阅的方法及装置 |
CN110083629B (zh) * | 2019-04-22 | 2024-05-07 | 深圳前海微众银行股份有限公司 | 一种基于区块链的事件订阅的方法及装置 |
-
2019
- 2019-04-22 CN CN201910321654.7A patent/CN110083629B/zh active Active
-
2020
- 2020-03-13 WO PCT/CN2020/079361 patent/WO2020215925A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101677327A (zh) * | 2008-09-16 | 2010-03-24 | 华为技术有限公司 | 一种位置相关信息订阅方法、系统及装置 |
WO2010142102A1 (zh) * | 2009-06-11 | 2010-12-16 | 中兴通讯股份有限公司 | 用户数据融合网络系统及订阅通知的实现方法 |
CN107943951A (zh) * | 2017-11-24 | 2018-04-20 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种区块链业务信息的检索方法及系统 |
CN108282529A (zh) * | 2018-01-23 | 2018-07-13 | 百度在线网络技术(北京)有限公司 | 发布和订阅数据的系统、方法和装置 |
CN109472696A (zh) * | 2018-09-29 | 2019-03-15 | 腾讯科技(深圳)有限公司 | 资产交易方法、装置、存储介质及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2020215925A1 (zh) | 2020-10-29 |
CN110083629A (zh) | 2019-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110083629B (zh) | 一种基于区块链的事件订阅的方法及装置 | |
CN110442652B (zh) | 一种基于区块链的跨链数据处理方法及装置 | |
CN108985742B (zh) | 交易处理方法、装置及区块链系统 | |
CN110099108B (zh) | 一种区块链事件去重方法、装置、计算机设备及存储介质 | |
CN109508246A (zh) | 日志记录方法、系统和计算机可读存储介质 | |
CN110278264B (zh) | 一种基于区块链的跨链通信的方法、装置及交易系统 | |
CN107688899A (zh) | 业务流程监控方法及装置 | |
CA2984833A1 (en) | Device, method and program for securely reducing an amount of records in a database | |
CN109543455A (zh) | 一种区块链的数据归档方法及装置 | |
CN111125784A (zh) | 一种基于区块链的人工智能训练模型方法、设备及介质 | |
CN110097363A (zh) | 一种基于区块链的事件发布、事件订阅的方法及装置 | |
US11314712B2 (en) | Method and apparatus for providing serial number, electronic device and readable storage medium | |
CN110704418A (zh) | 区块链信息查询方法、装置和设备 | |
CN110704438B (zh) | 一种区块链中布隆过滤器的生成方法及装置 | |
CN108255628A (zh) | 一种数据处理方法及装置 | |
CN116402446A (zh) | 一种货物的管理方法、装置、介质及电子设备 | |
CN111142975B (zh) | 状态机持久化方法及状态机持久化系统 | |
CN114491662B (zh) | 一种基于区块链的数据资产审计方法、系统及设备 | |
CN112035156A (zh) | 一种电商平台对接装置、方法、设备及介质 | |
CN112579308A (zh) | 任务处理方法及系统 | |
CN111105277A (zh) | 一种区块链状态变更交易追溯的方法及装置 | |
CN110019357B (zh) | 数据库查询脚本生成方法及装置 | |
CN109039782A (zh) | 一种集群日志记录方法及相关装置 | |
CN109614386B (zh) | 数据处理方法、装置、服务器及计算机可读存储介质 | |
CN111198846A (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 |