CN111312352B - 一种基于区块链的数据处理方法、装置、设备和介质 - Google Patents
一种基于区块链的数据处理方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN111312352B CN111312352B CN202010102672.9A CN202010102672A CN111312352B CN 111312352 B CN111312352 B CN 111312352B CN 202010102672 A CN202010102672 A CN 202010102672A CN 111312352 B CN111312352 B CN 111312352B
- Authority
- CN
- China
- Prior art keywords
- data processing
- data
- processing transaction
- transaction request
- verified
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 27
- 238000012545 processing Methods 0.000 claims abstract description 388
- 238000000034 method Methods 0.000 claims abstract description 44
- 230000008569 process Effects 0.000 claims abstract description 16
- 230000015654 memory Effects 0.000 claims description 19
- 238000004806 packaging method and process Methods 0.000 claims description 7
- 238000012790 confirmation Methods 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims description 3
- 238000010200 validation analysis Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000008901 benefit Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 4
- 238000003745 diagnosis Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000003814 drug Substances 0.000 description 3
- 229940079593 drug Drugs 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000002547 new drug Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H20/00—ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance
- G16H20/10—ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance relating to drugs or medications, e.g. for ensuring correct administration to patients
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H10/00—ICT specially adapted for the handling or processing of patient-related medical or healthcare data
- G16H10/60—ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H80/00—ICT specially adapted for facilitating communication between medical practitioners or patients, e.g. for collaborative diagnosis, therapy or health monitoring
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Epidemiology (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Medicinal Chemistry (AREA)
- Chemical & Material Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Biomedical Technology (AREA)
- Pathology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于区块链的数据处理方法、装置、设备和介质,涉及区块链技术,包括:获取本地产生的数据处理事务请求;对数据处理事务请求进行预执行,以确定包括读数据和写数据的预执行结果;根据所述写数据更新本地数据库中的数据对象,并将该数据对象的更新后数据标记为未确认状态;将所述预执行结果封装至所述数据处理事务请求中,向区块链网络中传输,以请求其他节点对所述数据处理事务请求进行处理;如果确定区块链网络拒绝执行所述数据处理事务请求,则将更新后数据确定为无效;如果确定区块链网络已执行所述数据处理事务请求,则将所述更新后数据标记为确认状态。通过增设了未确认状态,使得数据兼顾了时效性和上链的确定性。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及区块链技术。
背景技术
区块链技术的推广速度很快,已经应用到越来越多的场景中来解决数据处理和存储的问题,其中一个典型的应用场景是进行全网融合的数据汇总存储。
所谓全网融合,一般是指在全网中包括多个数据中心,各个数据中心会有数据的增删改查需求。而在全网的范围内,需要将各个数据中心的数据进行汇总统计而后存储。以医院体系为例,每个医院有自己的数据中心,而多家医院的数据需要汇总到上级政府机构进行汇总。
现有的全网融合的数据汇总存储方案中,受网络通信影响,多个数据中心的数据上报有冲突,有延时等各种问题,导致数据汇总的时效性差,致使对数据中心个体的数据以及汇总数据的使用时效性都不佳。
发明内容
本申请实施例公开一种基于区块链的数据处理方法、装置、设备和介质,以使得全网融合的数据汇总体系中,能够提高数据处理的时效性。
第一方面,本申请实施例提供了一种基于区块链的数据处理方法,包括:
获取本地产生的数据处理事务请求;
对所述数据处理事务请求进行预执行,以确定包括读数据和写数据的预执行结果;
根据所述写数据更新本地数据库中的数据对象,并将该数据对象的更新后数据标记为未确认状态;
将所述预执行结果封装至所述数据处理事务请求中,向区块链网络中传输,以请求其他节点对所述数据处理事务请求进行处理;
如果确定区块链网络拒绝执行所述数据处理事务请求,则将所述数据处理事务请求对应的更新后数据确定为无效;
如果确定区块链网络已执行所述数据处理事务请求,则将所述更新后数据标记为确认状态。
本申请实施例通过对获取的数据处理事务请求进行预执行,得到包括读数据和写数据的预执行结果,然后根据写数据更新本地数据库中的数据对象,并将该数据对象的更新后数据标记为未确认状态,并将预执行结果封装至数据处理事务请求中,向区块链网络中传输,以请求其他节点对数据处理事务请求进行处理,并根据处理结果对数据处理事务请求对应的更新后数据确定为无效或标记为确认状态,解决现有区块链技术应用于数据汇总体系中时存在的数据处理的时效性较差的问题,以实现在全网融合的数据汇总体系中,提高数据处理的时效性。
另外,根据本申请上述实施例的基于区块链的数据处理方法,还可以具有如下附加的技术特征:
可选的,将所述数据处理事务请求对应的更新后数据确定为无效包括:
将所述数据处理事务请求对应的更新后数据删除,或标记为无效状态。
上述申请中的一个实施例具有如下优点或有益效果:通过对无效的更新后数据进行无效处理,可以实现对错误数据的筛查及处理,从而提高数据处理的准确性。
可选的,将所述数据处理事务请求对应的更新后数据确定为无效之后,还包括:
如果检查到本地数据库中存在依赖于当前无效数据的其他未确认状态数据,则将所述其他未确认状态数据确定为无效,且将对应的其他数据处理事务请求确定为无效。
上述申请中的一个实施例具有如下优点或有益效果:可以有效避免具有依赖性数据对后续数据处理事务请求的连续性影响,避免区块链节点本地数据出现批量错误。
可选的,将所述数据处理事务请求对应的更新后数据确定为无效之后,还包括:
将所述数据处理事务请求丢弃,或
根据所述数据处理事务请求中的内容,产生新的数据处理事务请求并预执行。
上述申请中的一个实施例具有如下优点或有益效果:能够确保有效、正确处理数据处理事务请求。
可选的,基于区块链的数据处理还包括:
接收到数据访问请求时,在本地数据库的已确认状态和未确认状态的数据中进行响应处理。
上述申请中的一个实施例具有如下优点或有益效果:能够实现数据的共享互通。
可选的,基于区块链的数据处理还包括:
获取其他区块链节点传输的多个数据处理事务请求,记为待验证数据处理事务请求;
执行各所述待验证数据处理事务请求,并识别待验证数据处理事务请求之间的冲突;
如果识别到发生冲突的待验证数据处理事务请求,则拒接上链。
上述申请中的一个实施例具有如下优点或有益效果:在确定数据处理事务请求之间存在冲突时拒绝上链操作,可以保证区块数据的准确性。
可选的,执行各所述待验证数据处理事务请求,并识别待验证数据处理事务请求之间的冲突包括:
按照设定顺序逐一执行各所述待验证数据处理事务请求;
如果出现当前执行的待验证数据处理事务请求,与历史执行的待验证数据处理事务请求存在冲突,则确定当前执行的待验证数据处理事务请求发生冲突。
上述申请中的一个实施例具有如下优点或有益效果:能够有效识别各待验证数据处理事务请求之间是否存在冲突。
可选的,执行各所述待验证数据处理事务请求,并识别待验证数据处理事务请求之间的冲突包括:
按照各所述待验证数据处理事务请求的预执行结果进行依赖关系识别,并根据识别结果进行拓扑排序;
在拓扑排序中发现两个以上待验证数据处理事务请求存在冲突时,则接受一个待验证数据处理事务请求,而确定其他待验证数据处理事务请求发生冲突。
上述申请中的一个实施例具有如下优点或有益效果:能够有效识别各待验证数据处理事务请求之间是否存在冲突。
可选的,执行各所述待验证数据处理事务请求,并识别待验证数据处理事务请求之间的冲突包括:
按照各所述待验证数据处理事务请求的预执行结果进行依赖关系识别,并根据识别结果进行拓扑排序;
按照拓扑排序的结果执行各所述待验证数据处理事务请求;
如果出现当前执行的待验证数据处理事务请求,与历史执行的待验证数据处理事务请求存在冲突,则确定当前执行的待验证数据处理事务请求发生冲突。
上述申请中的一个实施例具有如下优点或有益效果:能够有效识别各待验证数据处理事务请求之间是否存在冲突。
可选的,本地产生的数据处理事务请求为数据写入处理事务请求,各个区块链节点所针对的数据对象存在交集。
上述申请中的一个实施例具有如下优点或有益效果:通过限定各个区块链节点所针对的数据对象存在交集,建立各区块链节点数据处理事务请求之间的联系,能够实现区块链网络的全网融合需求。
第二方面,本申请实施例还提供了一种基于区块链的数据处理装置,包括:
数据处理事务请求获取模块,用于获取本地产生的数据处理事务请求;
数据处理事务请求预执行模块,用于对所述数据处理事务请求进行预执行,以确定包括读数据和写数据的预执行结果;
未确认状态标记模块,用于根据所述写数据更新本地数据库中的数据对象,并将该数据对象的更新后数据标记为未确认状态;
预执行结果封装模块,用于将所述预执行结果封装至所述数据处理事务请求中,向区块链网络中传输,以请求其他节点对所述数据处理事务请求进行处理;
第一更新后数据处理模块,用于如果确定区块链网络拒绝执行所述数据处理事务请求,则将所述数据处理事务请求对应的更新后数据确定为无效;
第二更新后数据处理模块,用于如果确定区块链网络已执行所述数据处理事务请求,则将所述更新后数据标记为确认状态。
第三方面,本申请实施例还提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面实施例所提供的一种基于区块链的数据处理方法。
第四方面,本申请实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行第一方面实施例所提供的一种基于区块链的数据处理方法。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例一提供的一种基于区块链的数据处理方法的流程图;
图2是本申请实施例二提供的一种基于区块链的数据处理方法的流程图;
图3是本申请实施例三提供的一种基于区块链的数据处理装置的结构图;
图4是用来实现本申请实施例的基于区块链的数据处理的方法的计算机设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
实施例一
图1是本申请实施例一提供的一种基于区块链的数据处理方法的流程图,本申请实施例可适用于高效处理区块链中数据的情况,该方法可以由基于区块链的数据处理装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在计算机设备中。该计算机设备可以是区块链节点设备。相应的,如图1所示,该方法包括如下操作:
S110、获取本地产生的数据处理事务请求。
其中,数据处理事务请求可以是区块链节点产生的,用于对数据进行处理的事务请求。可选的,区块链节点可以配置于医院数据中心或收费点数据中心等的电子设备,本申请实施例并不对区块链节点的应用场景进行限定。
在本申请实施例中,各个数据中心可以作为区块链节点参与区块链网络的运行,以通过区块链技术实现各数据中心的全网融合。区块链节点可以产生对区块链网络中各数据对象的数据处理事务请求,数据处理可以包括增删改查等访问操作。
每个数据中心都会有自己对数据的管理需求,因此会将数据对象进行本地存储,以便于快速的查询。对于数据中心构成的区块链网络,每个数据中心一般会根据线下业务产生新的数据。例如,医院的数据中心会产生新增病例、新增药品用量信息等,由此可在本地产生这些数据的数据处理事务请求。
各个区块链节点本地按需所存储的数据对象,可以相同也可以不同。例如,不同医院的数据中心,可能仅对本院所涉及的患者信息感兴趣,所以只存储本院相关的患者数据对象。不同医院的数据中心,也可能对其他医院的部分数据感兴趣,例如,药品存量、血液存量等。而所有的这些信息,都会作为数据对象,上链存储,并可基于上链存储的信息进行汇总。例如,所有医院的药品存量需要汇总统计,每个医院某日的新增病例,新增死亡人数需要汇总统计等等。
S120、对所述数据处理事务请求进行预执行,以确定包括读数据和写数据的预执行结果。
其中,预执行可以理解为区块链节点本地处理所述数据处理事务请求的结果。预执行结果通常包括对已有数据对象的读取操作,以及对已有数据对象的写入操作或新增数据对象的写入操作。读取操作涉及的数据对象为读数据,写入操作涉及的数据对象为写数据。
相应的,区块链节点获取到本地产生的数据处理事务请求后,可以调用相应的智能合约对数据处理事务请求进行预执行,以得到包括读数据和写数据的预执行结果。
S130、根据所述写数据更新本地数据库中的数据对象,并将该数据对象的更新后数据标记为未确认状态。
其中,未确认状态可以是对区块链节点本地存储的数据标记的一种状态类型。
在传统的区块链网络中,数据处理事务请求的执行结果在未得到所有节点的验证确认之前,是无法上链的。未上链数据不会更新到本地数据库中。如果由于网络通信问题、事务请求并发量等问题导致数据处理事务请求不能及时得被处理上链,那么这些数据就无法被本地化使用。例如,该医院的数据中心,不能为内部工作人员提供这些未上链数据的查询,更无法为外部人员提供未上链数据的查询。因此时效性较差。
为了解决这一问题,在本申请实施例中,区块链节点获取到数据处理事务请求的预执行结果后,可以根据预执行结果中的写数据立即更新本地数据库中的数据对象。在一个具体的例子中,假设数据对象为总计确诊病例,该数据对象对应的数值为100例。预执行结果包括的写数据为新增确诊病例5例,则根据预执行结果中的写数据更新本地数据库中的数据对象可以是:更新总计确诊病例为105例。
需要说明的是,预执行结果仅为区块链节点的本地执行结果,尚未通过其他区块链节点的共识,因此其有效性无法确认。但为了实现区块链节点对本地数据的增删改查功能,可以根据预执行结果对本地数据库中的数据对象进行更新,并对该数据对象的更新后数据标记为未确认状态,以确认该数据对象的更新后数据尚未通过共识。区块链节点本地数据库的数据都可以供查询访问,并同时可获知该数据对象处于已经上链的确认状态,或是未上链的未确认状态。
S140、将所述预执行结果封装至所述数据处理事务请求中,向区块链网络中传输,以请求其他节点对所述数据处理事务请求进行处理。
相应的,区块链节点得到数据处理事务请求的预执行结果后,可以将预执行结果封装至该数据处理事务请求中,并将该数据处理事务请求向区块链网络中传输,以请求其他节点对该数据处理事务请求进行处理。其他节点收到数据处理事务请求之后,也同样会执行以完成验证。如果执行结果与预执行结果一致,则可以上链。
S150、如果确定区块链网络拒绝执行所述数据处理事务请求,则将所述数据处理事务请求对应的更新后数据确定为无效。
在本申请的一个可选实施例中,确定区块链网络拒绝执行所述数据处理事务请求,可以包括:接收到其他区块链节点反馈的拒绝执行数据处理事务请求的通知。
区块链网络中的各区块链节点根据接收的数据处理事务请求进行处理,但处理结果未通过共识,如处理结果与数据处理事务请求中包括的预执行结果相冲突,则产生拒绝执行数据处理事务请求的通知。可选的,其他区块链节点可以通过单播或广播的方式反馈拒绝执行数据处理事务请求的通知。
需要说明的是,在某些情况下,区块链网络中的各区块链节点根据接收的数据处理事务请求进行处理,且处理结果通过共识,其他区块链节点未反馈拒绝执行数据处理事务请求的通知。但由于诸多因素,如网络通信质量差导致消息丢失或延迟等,导致设定时间内区块链网络未产生相应的区块,或未产生上链操作,则可以默认区块链网络拒绝执行数据处理事务请求。即,导致数据处理事务请求被拒绝执行的原因可能有很多,本申请实施例不做限制。
在本申请实施例中,如果区块链节点确定区块链网络拒绝执行数据处理事务请求,则认为该数据处理事务请求的预执行结果无效,可以将数据处理事务请求对应的更新后数据确定为无效。
在本申请的一个可选实施例中,将所述数据处理事务请求对应的更新后数据确定为无效,可以包括:将所述数据处理事务请求对应的更新后数据删除,或标记为无效状态。通过对无效的更新后数据进行无效处理,可以实现对错误数据的筛查及处理,从而提高数据处理的准确性。
在本申请的一个可选实施例中,将所述数据处理事务请求对应的更新后数据确定为无效之后,还可以包括:如果检查到本地数据库中存在依赖于当前无效数据的其他未确认状态数据,则将所述其他未确认状态数据确定为无效,且将对应的其他数据处理事务请求确定为无效。
可以理解的是,各数据处理事务请求之间可以具有依赖性。示例性的,数据处理事务请求1和数据处理事务请求2均为计算总计确诊病例。区块链节点对数据处理事务请求1处理完成后,需要在数据处理事务请求1的处理结果的基础上,处理数据处理事务请求2。因此,数据处理事务请求2需要依赖于数据处理事务请求1的处理数据。在这种情况下,如果数据处理事务请求1的处理数据为无效数据,即未在区块链上得到共识确认,则基于数据处理事务请求1的处理数据得到的数据处理事务请求2的未确认状态数据也是无效的,因此需要对数据处理事务请求2的未确认状态数据确定为无效,且将数据处理事务请求2确定为无效。这样设置的好处是:可以有效避免具有依赖性数据对后续数据处理事务请求的连续性影响,避免区块链节点本地数据出现批量错误。
在本申请的一个可选实施例中,将所述数据处理事务请求对应的更新后数据确定为无效之后,还可以包括:将所述数据处理事务请求丢弃,或,根据所述数据处理事务请求中的内容,产生新的数据处理事务请求并预执行。
相应的,如果确定数据处理事务请求对应的更新后数据无效,则可以直接将该数据处理事务请求丢弃。或者,也还可以根据数据处理事务请求中的内容产生新的数据处理事务请求并预执行,以确保有效、正确处理数据处理事务请求。
在一个具体的例子中,假设数据对象为总计确诊病例,该数据对象对应的数值为100例。数据处理事务请求1可以是“新增确诊病例5例,计算总计确诊病例”(实际新增确诊病10例)。数据处理事务请求1的预执行结果包括的写数据为新增确诊病例5例(实际写数据应为新增确诊病例10例),根据预执行结果中的写数据更新本地数据库中的数据对象可以是:更新总计确诊病例为105例,该数据对象的更新后数据确定无效。可以直接丢弃数据处理事务请求1。或者,也还可以根据数据处理事务请求1的内容“新增确诊病例5例,计算总计确诊病例”产生新的数据处理事务请求2“新增确诊病例10例,计算总计确诊病例”并预执行。
S160、如果确定区块链网络已执行所述数据处理事务请求,则将所述更新后数据标记为确认状态。
在本申请实施例中,如果区块链节点确定区块链网络已执行数据处理事务请求,表明预执行结果被确认上链,则可以将更新后数据标记为确认状态。标记为确认状态的更新后数据可以与数据处理事务请求对应的处理数据相同。
在本申请的一个可选实施例中,基于区块链的数据处理方法还可以包括:接收到数据访问请求时,在本地数据库的已确认状态和未确认状态的数据中进行响应处理。
其中,数据访问请求可以是其他区块链节点或者区块链节点内部用户发送的,用于访问区块链节点本地数据库存储数据的请求。
在本申请实施例中,区块链节点在本地数据库存储的已确认状态和未确认状态的数据均可以提供访问查询功能,以实现数据的共享互通。
本申请实施例通过对获取的数据处理事务请求进行预执行,得到包括读数据和写数据的预执行结果,然后根据写数据更新本地数据库中的数据对象,并将该数据对象的更新后数据标记为未确认状态,并将预执行结果封装至数据处理事务请求中,向区块链网络中传输,以请求其他节点对数据处理事务请求进行处理,并根据处理结果对数据处理事务请求对应的更新后数据确定为无效或标记为确认状态,解决现有区块链技术应用于数据汇总体系中时存在的数据处理的时效性较差的问题,以实现在全网融合的数据汇总体系中,提高数据处理的时效性。
实施例二
图2是本申请实施例二提供的一种基于区块链的数据处理方法的流程图,本申请实施例在上述各实施例的技术方案的基础上,进行了优化改进,给出了对区块链中包括冲突的数据处理事务请求的处理方式。
如图2所示的一种基于区块链的数据处理方法,包括:
S210、获取本地产生的数据处理事务请求。
S220、对所述数据处理事务请求进行预执行,以确定包括读数据和写数据的预执行结果。
S230、根据所述写数据更新本地数据库中的数据对象,并将该数据对象的更新后数据标记为未确认状态。
S240、将所述预执行结果封装至所述数据处理事务请求中,向区块链网络中传输,以请求其他节点对所述数据处理事务请求进行处理。
S250、判断区块链网络是否拒绝执行数据处理事务请求,若是,则执行S260;否则,执行S270。
S260、将所述数据处理事务请求对应的更新后数据确定为无效。
S270、将所述更新后数据标记为确认状态。
S280、获取其他区块链节点传输的多个数据处理事务请求,记为待验证数据处理事务请求。
在本申请实施例中,区块链节点可以本地发起事务请求,也会获取到其他节点发起的事务请求,对事务请求进行验证确认。从其他节点获取的事务请求记为待验证数据处理事务请求。通常,由当前出块节点进行事务请求处理并打包形成区块,广播给其他节点。其他节点根据接收到的事务请求来执行验证,以验证区块的正确性。
S290、执行各所述待验证数据处理事务请求,并识别待验证数据处理事务请求之间的冲突。
可以理解的是,当数据对象由多方同时更新时,由于网络通信质量等因素的影响,可能导致数据处理事务请求之间存在冲突。主要为多方同时对同一数据对象发起写操作时会产生冲突。
相应的,区块链节点具备区块处理权限后,可以利用智能合约执行接收的各待验证数据处理事务请求,并识别待验证数据处理事务请求之间的冲突。
在本申请的一个可选实施例中,执行各所述待验证数据处理事务请求,并识别待验证数据处理事务请求之间的冲突,可以包括:按照设定顺序逐一执行各所述待验证数据处理事务请求;如果出现当前执行的待验证数据处理事务请求,与历史执行的待验证数据处理事务请求存在冲突,则确定当前执行的待验证数据处理事务请求发生冲突。
其中,设定顺序可以是接收到待验证数据处理事务请求的时间顺序等,本申请实施例并不对设定顺序的具体排序方式进行限定。历史执行的待验证数据处理事务请求可以是当前执行的待验证数据处理事务请求之前接收的任意的待验证数据处理事务请求。
在本申请实施例中,可以按照设定顺序逐一执行各待验证数据处理事务请求。在确定出现当前执行的待验证数据处理事务请求,与历史执行的待验证数据处理事务请求存在冲突的情况时,则可以确定当前执行的待验证数据处理事务请求发生冲突,从而有效识别各待验证数据处理事务请求之间是否存在冲突。
在一个具体的例子中,数据对象“总计确诊病例”需要区级医院1和区级医院2上报汇总。假设区级医院1的数据中心产生了对版本号为P的数据对象的数据处理事务请求1“新增确诊病例5例,计算总计确诊病例”,区级医院2的数据中心产生了对版本号为P的数据对象的数据处理事务请求2“新增确诊病例3例,计算总计确诊病例”。区级医院2的数据中心受到网络通信质量的影响,导致数据处理事务请求2延时发送。区块链节点首先接收到数据处理事务请求1,并执行,此时数据对象的版本号变更为T,然后再接受到数据处理事务请求2,而此时数据对象已经被更新,所以,数据处理事务请求1和数据处理事务请求2之间存在冲突。
需要说明的是,识别各待验证数据处理事务请求之间是否存在冲突时,不限于当前处理区块对应的待验证数据处理事务请求。如果区块生成的时间较短,则当前处理的区块中包括的待验证数据处理事务请求也可能与已经生成的区块中的待验证数据处理事务请求发生冲突。例如,区块1上链了数据对象a,数值为10,版本号为A,区块标识为1。区块2更新数据对象a数值为20,版本号为B,区块标识为2。此时,若区块3的一个待验证数据处理事务请求要修改版本号为A的数据对象a的数据,则该待验证数据处理事务请求与区块2中更新数据对象a的待验证数据处理事务请求冲突。
在本申请的一个可选实施例中,执行各所述待验证数据处理事务请求,并识别待验证数据处理事务请求之间的冲突,可以包括:按照各所述待验证数据处理事务请求的预执行结果进行依赖关系识别,并根据识别结果进行拓扑排序;在拓扑排序中发现两个以上待验证数据处理事务请求存在冲突时,则接受一个待验证数据处理事务请求,而确定其他待验证数据处理事务请求发生冲突。
其中,拓扑排序可以是按照预执行结果之间的写数据依赖关系来确定的事务请求之间的执行顺序。
在本申请实施例中,区块链节点识别待验证数据处理事务请求之间的冲突时,还可以按照设定时间段内接收到的所有待验证数据处理事务请求的预执行结果进行依赖关系识别,并根据识别结果进行拓扑排序。其中,设定时间段可以根据需求设定,如区块生成时间对于的时间段等。在拓扑排序中,如果区块链节点发现两个以上待验证数据处理事务请求存在冲突时,则可以接受其中一个待验证数据处理事务请求,而确定其他待验证数据处理事务请求发生冲突。
在本申请的一个可选实施例中,执行各所述待验证数据处理事务请求,并识别待验证数据处理事务请求之间的冲突,可以包括:按照各所述待验证数据处理事务请求的预执行结果进行依赖关系识别,并根据识别结果进行拓扑排序;按照拓扑排序的结果执行各所述待验证数据处理事务请求;如果出现当前执行的待验证数据处理事务请求,与历史执行的待验证数据处理事务请求存在冲突,则确定当前执行的待验证数据处理事务请求发生冲突。
在本申请实施例中,区块链节点识别待验证数据处理事务请求之间的冲突时,还可以按照设定时间段内接收到的所有待验证数据处理事务请求的预执行结果进行依赖关系识别,并根据识别结果进行拓扑排序。其中,设定时间段可以根据需求设定,如区块生成时间对于的时间段等。然后可以按照拓扑排序的结果执行各待验证数据处理事务请求。例如,按照设定顺序逐一执行经拓扑排序后的各待验证数据处理事务请求。如果出现当前执行的待验证数据处理事务请求,与历史执行的待验证数据处理事务请求存在冲突,则确定当前执行的待验证数据处理事务请求发生冲突。
需要说明的是,在按照拓扑排序的结果执行各待验证数据处理事务请求之后,如果确定当前执行的待验证数据处理事务请求发生冲突,但当前执行的待验证数据处理事务请求历史执行的待验证数据处理事务请求更新后数据进行写入的结果仍然正确,则可以不拒绝当前执行的待验证数据处理事务请求。例如,两个数据处理事务请求都将药品价格更改为100元,则虽然是对同一数据对象的修改,但由于修改结果相同,所以可以不视为冲突。
S2A0、判断是否识别到发生冲突的待验证数据处理事务请求,若是,则执行S2B0,否则,执行S2C0。
S2B0、拒接上链。
S2C0、允许上链。
相应的,如果区块链节点识别到发生冲突的待验证数据处理事务请求,则拒接上链,以保证区块数据的准确性。
采用上述技术方案,通过对各数据处理事务请求之间的冲突进行识别,并在识别到数据处理事务请求发生冲突时,拒接上链,能够保证区块数据的准确性。
实施例三
图3是本申请实施例三提供的一种基于区块链的数据处理装置的结构图,该装置配置于区块链节点中。本申请实施例可适用于高效处理区块链中数据的情况,该装置通过软件和/或硬件实现,并具体配置于计算机设备中。该计算机设备可以是区块链节点设备。
如图3所示的一种基于区块链的数据处理装置300,包括:数据处理事务请求获取模块310、数据处理事务请求预执行模块320、未确认状态标记模块330、预执行结果封装模块340、第一更新后数据处理模块350和第二更新后数据处理模块360。其中,
数据处理事务请求获取模块310,用于获取本地产生的数据处理事务请求;
数据处理事务请求预执行模块320,用于对所述数据处理事务请求进行预执行,以确定包括读数据和写数据的预执行结果;
未确认状态标记模块330,用于根据所述写数据更新本地数据库中的数据对象,并将该数据对象的更新后数据标记为未确认状态;
预执行结果封装模块340,用于将所述预执行结果封装至所述数据处理事务请求中,向区块链网络中传输,以请求其他节点对所述数据处理事务请求进行处理;
第一更新后数据处理模块350,用于如果确定区块链网络拒绝执行所述数据处理事务请求,则将所述数据处理事务请求对应的更新后数据确定为无效;
第二更新后数据处理模块360,用于如果确定区块链网络已执行所述数据处理事务请求,则将所述更新后数据标记为确认状态。
本申请实施例通过对获取的数据处理事务请求进行预执行,得到包括读数据和写数据的预执行结果,然后根据写数据更新本地数据库中的数据对象,并将该数据对象的更新后数据标记为未确认状态,并将预执行结果封装至数据处理事务请求中,向区块链网络中传输,以请求其他节点对数据处理事务请求进行处理,并根据处理结果对数据处理事务请求对应的更新后数据确定为无效或标记为确认状态,解决现有区块链技术应用于数据汇总体系中时存在的数据处理的时效性较差的问题,以实现在全网融合的数据汇总体系中,提高数据处理的时效性。
可选的,第一更新后数据处理模块350包括:通知接收单元,用于接收到其他区块链节点反馈的拒绝执行所述数据处理事务请求的通知。
可选的,第一更新后数据处理模块350包括:第一更新后数据处理单元,用于将所述数据处理事务请求对应的更新后数据删除,或标记为无效状态。
可选的,基于区块链的数据处理装置还包括:第一数据请求处理模块,用于如果检查到本地数据库中存在依赖于当前无效数据的其他未确认状态数据,则将所述其他未确认状态数据确定为无效,且将对应的其他数据处理事务请求确定为无效。
可选的,基于区块链的数据处理装置还包括:第二数据请求处理模块,用于将所述数据处理事务请求丢弃,或,根据所述数据处理事务请求中的内容,产生新的数据处理事务请求并预执行。
可选的,基于区块链的数据处理装置还包括:数据访问请求响应处理模块,用于接收到数据访问请求时,在本地数据库的已确认状态和未确认状态的数据中进行响应处理。
可选的,基于区块链的数据处理装置还包括:待验证数据处理事务请求获取模块,用于获取其他区块链节点传输的多个数据处理事务请求,记为待验证数据处理事务请求;冲突识别模块,用于执行各所述待验证数据处理事务请求,并识别待验证数据处理事务请求之间的冲突;上链处理模块,用于如果识别到发生冲突的待验证数据处理事务请求,则拒接上链。
可选的,冲突识别模块包括:第一待验证数据处理事务请求执行单元,用于按照设定顺序逐一执行各所述待验证数据处理事务请求;第一冲突识别单元,用于如果出现当前执行的待验证数据处理事务请求,与历史执行的待验证数据处理事务请求存在冲突,则确定当前执行的待验证数据处理事务请求发生冲突。
可选的,冲突识别模块包括:第一预执行结果识别单元,用于按照各所述待验证数据处理事务请求的预执行结果进行依赖关系识别,并根据识别结果进行拓扑排序;第二冲突识别单元,用于在拓扑排序中发现两个以上待验证数据处理事务请求存在冲突时,则接受一个待验证数据处理事务请求,而确定其他待验证数据处理事务请求发生冲突。
可选的,冲突识别模块包括:第二预执行结果识别单元,用于按照各所述待验证数据处理事务请求的预执行结果进行依赖关系识别,并根据识别结果进行拓扑排序;第二待验证数据处理事务请求执行单元,用于按照拓扑排序的结果执行各所述待验证数据处理事务请求;第三冲突识别单元,用于如果出现当前执行的待验证数据处理事务请求,与历史执行的待验证数据处理事务请求存在冲突,则确定当前执行的待验证数据处理事务请求发生冲突。
可选的,本地产生的数据处理事务请求为数据写入处理事务请求,各个区块链节点所针对的数据对象存在交集。
可选的,所述区块链节点配置于医院数据中心或收费点数据中心。
上述基于区块链的数据处理装置可执行本申请任意实施例所提供的基于区块链的数据处理方法,具备执行基于区块链的数据处理方法相应的功能模块和有益效果。
实施例四
根据本申请的实施例,本申请还提供了一种计算机设备和一种可读存储介质。
如图4所示,是实现本申请实施例的基于区块链的数据处理方法的计算机设备的框图。计算机设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。计算机设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图4所示,该计算机设备包括:一个或多个处理器401、存储器402,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图4中以一个处理器401为例。
存储器402即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的基于区块链的数据处理方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的基于区块链的数据处理方法。
存储器402作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的基于区块链的数据处理方法对应的程序指令/模块(例如,附图3所示的数据处理事务请求获取模块310、数据处理事务请求预执行模块320、未确认状态标记模块330、预执行结果封装模块340、第一更新后数据处理模块350和第二更新后数据处理模块360)。处理器401通过运行存储在存储器402中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的基于区块链的数据处理方法。
存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储实现基于区块链的数据处理方法的计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至实现基于区块链的数据处理方法的计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现基于区块链的数据处理方法的计算机设备还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。
输入装置403可接收输入的数字或字符信息,以及产生与实现基于区块链的数据处理方法的计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置404可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本申请实施例通过对获取的数据处理事务请求进行预执行,得到包括读数据和写数据的预执行结果,然后根据写数据更新本地数据库中的数据对象,并将该数据对象的更新后数据标记为未确认状态,并将预执行结果封装至数据处理事务请求中,向区块链网络中传输,以请求其他节点对数据处理事务请求进行处理,并根据处理结果对数据处理事务请求对应的更新后数据确定为无效或标记为确认状态,解决现有区块链技术应用于数据汇总体系中时存在的数据处理的时效性较差的问题,以实现在全网融合的数据汇总体系中,提高数据处理的时效性。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (15)
1.一种基于区块链的数据处理方法,其特征在于,由区块链节点执行,所述方法包括:
获取本地产生的数据处理事务请求;
对所述数据处理事务请求进行预执行,以确定包括读数据和写数据的预执行结果;
根据所述写数据更新本地数据库中的数据对象,并将该数据对象的更新后数据标记为未确认状态;
将所述预执行结果封装至所述数据处理事务请求中,向区块链网络中传输,以请求其他节点对所述数据处理事务请求进行处理;
如果确定区块链网络拒绝执行所述数据处理事务请求,则将所述数据处理事务请求对应的更新后数据确定为无效;
如果确定区块链网络已执行所述数据处理事务请求,则将所述更新后数据标记为确认状态;
其中,所述本地数据库中的数据都可被查询访问,并获知所述数据处于已经上链的确认状态或未上链的未确认状态。
2.根据权利要求1所述的方法,其特征在于,确定区块链网络拒绝执行所述数据处理事务请求包括:
接收到其他区块链节点反馈的拒绝执行所述数据处理事务请求的通知。
3.根据权利要求1所述的方法,其特征在于,将所述数据处理事务请求对应的更新后数据确定为无效包括:
将所述数据处理事务请求对应的更新后数据删除,或标记为无效状态。
4.根据权利要求1所述的方法,其特征在于,将所述数据处理事务请求对应的更新后数据确定为无效之后,还包括:
如果检查到本地数据库中存在依赖于当前无效数据的其他未确认状态数据,则将所述其他未确认状态数据确定为无效,且将对应的其他数据处理事务请求确定为无效。
5.根据权利要求1所述的方法,其特征在于,将所述数据处理事务请求对应的更新后数据确定为无效之后,还包括:
将所述数据处理事务请求丢弃,或
根据所述数据处理事务请求中的内容,产生新的数据处理事务请求并预执行。
6.根据权利要求1所述的方法,其特征在于,还包括:
接收到数据访问请求时,在本地数据库的已确认状态和未确认状态的数据中进行响应处理。
7.根据权利要求1所述的方法,其特征在于,还包括:
获取其他区块链节点传输的多个数据处理事务请求,记为待验证数据处理事务请求;
执行各所述待验证数据处理事务请求,并识别待验证数据处理事务请求之间的冲突;
如果识别到发生冲突的待验证数据处理事务请求,则拒接上链。
8.根据权利要求7所述的方法,其特征在于,执行各所述待验证数据处理事务请求,并识别待验证数据处理事务请求之间的冲突包括:
按照设定顺序逐一执行各所述待验证数据处理事务请求;
如果出现当前执行的待验证数据处理事务请求,与历史执行的待验证数据处理事务请求存在冲突,则确定当前执行的待验证数据处理事务请求发生冲突。
9.根据权利要求7所述的方法,其特征在于,执行各所述待验证数据处理事务请求,并识别待验证数据处理事务请求之间的冲突包括:
按照各所述待验证数据处理事务请求的预执行结果进行依赖关系识别,并根据识别结果进行拓扑排序;
在拓扑排序中发现两个以上待验证数据处理事务请求存在冲突时,则接受一个待验证数据处理事务请求,而确定其他待验证数据处理事务请求发生冲突。
10.根据权利要求7所述的方法,其特征在于,执行各所述待验证数据处理事务请求,并识别待验证数据处理事务请求之间的冲突包括:
按照各所述待验证数据处理事务请求的预执行结果进行依赖关系识别,并根据识别结果进行拓扑排序;
按照拓扑排序的结果执行各所述待验证数据处理事务请求;
如果出现当前执行的待验证数据处理事务请求,与历史执行的待验证数据处理事务请求存在冲突,则确定当前执行的待验证数据处理事务请求发生冲突。
11.根据权利要求1所述的方法,其特征在于,本地产生的数据处理事务请求为数据写入处理事务请求,各个区块链节点所针对的数据对象存在交集。
12.根据权利要求11所述的方法,其特征在于,所述区块链节点配置于医院数据中心或收费点数据中心。
13.一种基于区块链的数据处理装置,其特征在于,配置于区块链节点,包括:
数据处理事务请求获取模块,用于获取本地产生的数据处理事务请求;
数据处理事务请求预执行模块,用于对所述数据处理事务请求进行预执行,以确定包括读数据和写数据的预执行结果;
未确认状态标记模块,用于根据所述写数据更新本地数据库中的数据对象,并将该数据对象的更新后数据标记为未确认状态;
预执行结果封装模块,用于将所述预执行结果封装至所述数据处理事务请求中,向区块链网络中传输,以请求其他节点对所述数据处理事务请求进行处理;
第一更新后数据处理模块,用于如果确定区块链网络拒绝执行所述数据处理事务请求,则将所述数据处理事务请求对应的更新后数据确定为无效;
第二更新后数据处理模块,用于如果确定区块链网络已执行所述数据处理事务请求,则将所述更新后数据标记为确认状态;
其中,所述本地数据库中的数据都可被查询访问,并获知所述数据处于已经上链的确认状态或未上链的未确认状态。
14.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-12中任一项所述的基于区块链的数据处理方法。
15.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-12中任一项所述的基于区块链的数据处理方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010102672.9A CN111312352B (zh) | 2020-02-19 | 2020-02-19 | 一种基于区块链的数据处理方法、装置、设备和介质 |
KR1020210022183A KR20210106379A (ko) | 2020-02-19 | 2021-02-18 | 블록체인에 기반한 데이터 처리 방법, 장치, 기기, 매체 및 프로그램 |
US17/178,874 US11630821B2 (en) | 2020-02-19 | 2021-02-18 | Blockchain-based data processing method and apparatus, device, and medium |
EP21158252.3A EP3869434B1 (en) | 2020-02-19 | 2021-02-19 | Blockchain-based data processing method and apparatus, device, and medium |
JP2021025257A JP7066890B2 (ja) | 2020-02-19 | 2021-02-19 | ブロックチェーンによるデータ処理方法、装置、デバイス、媒体、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010102672.9A CN111312352B (zh) | 2020-02-19 | 2020-02-19 | 一种基于区块链的数据处理方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111312352A CN111312352A (zh) | 2020-06-19 |
CN111312352B true CN111312352B (zh) | 2023-07-21 |
Family
ID=71148024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010102672.9A Active CN111312352B (zh) | 2020-02-19 | 2020-02-19 | 一种基于区块链的数据处理方法、装置、设备和介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11630821B2 (zh) |
EP (1) | EP3869434B1 (zh) |
JP (1) | JP7066890B2 (zh) |
KR (1) | KR20210106379A (zh) |
CN (1) | CN111312352B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11792022B2 (en) * | 2020-02-21 | 2023-10-17 | International Business Machines Corporation | Resolution of conflicting data |
CN111930847B (zh) * | 2020-09-16 | 2021-01-08 | 深圳壹账通智能科技有限公司 | 基于区块链的数据处理方法、装置及存储介质 |
CN112235251B (zh) * | 2020-09-21 | 2022-11-15 | 中国建设银行股份有限公司 | 一种区块链管理方法、装置、计算机设备及存储介质 |
CN113743949B (zh) * | 2021-11-04 | 2022-07-12 | 支付宝(杭州)信息技术有限公司 | 在区块链中执行交易的方法、区块链、主节点和从节点 |
CN114691687B (zh) * | 2021-12-30 | 2022-12-06 | 北京连琪科技有限公司 | 验证区块状态证明的方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6826290B2 (ja) | 2017-01-19 | 2021-02-03 | 富士通株式会社 | 証明書配付システム、証明書配付方法、および証明書配付プログラム |
JP2019029933A (ja) | 2017-08-02 | 2019-02-21 | 富士通株式会社 | コンテンツ配信装置、コンテンツ配信システム、コンテンツ配信プログラム、およびコンテンツ配信方法 |
US11271717B2 (en) * | 2018-02-21 | 2022-03-08 | Thunder Token Inc. | Blockchain consensus methods and systems |
CN108632045A (zh) * | 2018-05-10 | 2018-10-09 | 阿里巴巴集团控股有限公司 | 一种区块链数据处理方法、装置、处理设备及系统 |
CN108804112B (zh) | 2018-05-22 | 2022-02-11 | 上海分布信息科技有限公司 | 一种区块链落账处理方法及系统 |
JP2020010267A (ja) | 2018-07-12 | 2020-01-16 | コニカミノルタ株式会社 | 分散型医療情報共有システム、医療情報提供サーバー及びプログラム |
WO2020028589A1 (en) * | 2018-07-31 | 2020-02-06 | Americorp Investments Llc | Techniques for expediting processing of blockchain transactions |
WO2020108288A1 (zh) | 2018-11-29 | 2020-06-04 | 华为技术有限公司 | 一种数据库系统、节点和方法 |
CN109951546B (zh) * | 2019-03-15 | 2021-12-14 | 百度在线网络技术(北京)有限公司 | 基于智能合约的事务请求处理方法、装置、设备和介质 |
CN112966311A (zh) | 2019-03-15 | 2021-06-15 | 创新先进技术有限公司 | 智能合约校验方法及装置和电子设备 |
CN110033244B (zh) | 2019-03-15 | 2021-10-22 | 创新先进技术有限公司 | 基于区块链的智能合约执行方法及装置和电子设备 |
US11269858B2 (en) * | 2019-03-26 | 2022-03-08 | International Business Machines Corporation | Information management in a decentralized database including a fast path service |
CA3061810A1 (en) | 2019-04-30 | 2019-07-18 | Alibaba Group Holding Limited | Method and device for avoiding double-spending problem in read-write set-model-based blockchain technology |
CN110321219A (zh) * | 2019-05-06 | 2019-10-11 | 百度在线网络技术(北京)有限公司 | 一种事务请求的并行执行方法、装置、设备和介质 |
CN110659907B (zh) | 2019-09-24 | 2021-11-12 | 北京海益同展信息科技有限公司 | 用于执行智能合约的方法和装置 |
-
2020
- 2020-02-19 CN CN202010102672.9A patent/CN111312352B/zh active Active
-
2021
- 2021-02-18 US US17/178,874 patent/US11630821B2/en active Active
- 2021-02-18 KR KR1020210022183A patent/KR20210106379A/ko not_active Application Discontinuation
- 2021-02-19 JP JP2021025257A patent/JP7066890B2/ja active Active
- 2021-02-19 EP EP21158252.3A patent/EP3869434B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210256015A1 (en) | 2021-08-19 |
KR20210106379A (ko) | 2021-08-30 |
JP2021131865A (ja) | 2021-09-09 |
JP7066890B2 (ja) | 2022-05-13 |
EP3869434B1 (en) | 2024-05-08 |
EP3869434A1 (en) | 2021-08-25 |
US11630821B2 (en) | 2023-04-18 |
CN111312352A (zh) | 2020-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111312352B (zh) | 一种基于区块链的数据处理方法、装置、设备和介质 | |
JP7271734B2 (ja) | 分散イベント処理システムにおけるデータシリアライズ | |
CN111831420B (zh) | 用于任务调度的方法、相关装置及计算机程序产品 | |
CN111741026B (zh) | 一种跨链事务请求处理方法、装置、设备以及存储介质 | |
US10459978B2 (en) | Distributed graph processing system that support remote data read with proactive bulk data transfer | |
US9680719B2 (en) | Communication system, client terminal, and server | |
CN106575251B (zh) | 流数据的推测数据处理 | |
CN110532322B (zh) | 运维交互方法、系统、计算机可读存储介质及设备 | |
CN106537347B (zh) | 用于分发和处理流的系统和方法 | |
CN110784336A (zh) | 基于物联网的多设备智能定时延时场景设置方法及系统 | |
US10558670B2 (en) | Smart tuple condition-based operation performance | |
US11675851B2 (en) | Streaming method for the creation of multifaceted statistical distributions | |
CN109271193B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN104580428A (zh) | 一种数据路由方法、数据管理装置和分布式存储系统 | |
CN113760987A (zh) | 数据处理方法和数据处理平台 | |
US10666557B2 (en) | Method to manage data flow for edge-core distributed analytics systems | |
CN113726885A (zh) | 一种流量配额的调整方法和装置 | |
CN111581049B (zh) | 分布式系统运行状态监测方法、装置、设备及存储介质 | |
US8751447B2 (en) | Representing attachments of objects in a collaboration system using metadata copies | |
CN113032477A (zh) | 基于gtid的长距离数据同步方法、装置及计算设备 | |
CN117251480A (zh) | 一种分布式环境下左外连接查询方法、装置、设备及介质 | |
CN115188190B (zh) | 交通数据处理模式的更新方法、装置和车路协同系统 | |
CN116915870B (zh) | 任务创建请求处理方法、装置、电子设备和可读介质 | |
US11403136B1 (en) | Task execution application programming interface | |
WO2022052986A1 (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 |