CN110275892A - 面向区块链的数据管理方法、装置、设备及存储介质 - Google Patents
面向区块链的数据管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110275892A CN110275892A CN201910428728.7A CN201910428728A CN110275892A CN 110275892 A CN110275892 A CN 110275892A CN 201910428728 A CN201910428728 A CN 201910428728A CN 110275892 A CN110275892 A CN 110275892A
- Authority
- CN
- China
- Prior art keywords
- data
- state
- updated
- block chain
- preset
- 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.)
- Granted
Links
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
- 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/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/03—Credit; Loans; Processing thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Economics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了面向区块链的数据管理方法、装置、设备及存储介质,方法包括:接收用户发送的第二次更新请求,其中,每一次更新请求包括待更新数据的第一状态以及第二状态;根据第一状态从一预设关系型数据库中获取待更新数据以及从预设区块链上查找与待更新数据对应的数据,其中,将关系型数据库中获取的待更新数据作为第一数据,将区块链上查找的与待更新数据对应的数据作为第二数据;比对第一数据与第二数据以判断是否一致;若不一致,根据所述第一状态以及第二状态判断第一数据是否满足预设数据补偿条件;以及若满足,根据所述第二状态对第一数据进行数据补偿。通过实施本方案可以有效保证上链事务的有序进行以及可以提高异常事务的处理能力。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种面向区块链的数据管理方法、装置、设备及存储介质。
背景技术
区块链可以理解为分布式账本,在区块链保存数据的应用场景中,具体地,在区块链上保存由key-value键值对组成的数据结构的数据。其中,该key是键,value是值。由于这种结构保存的数据无法按照很复杂的条件来查询,目前,通常采用关系型数据库来保存用于查询链上所保存的数据的条件,因此,在区块链上以及一关系型数据库均存在相对应的一条数据,即在数据上链时需要将该数据也对应保存到一关系型数据库中,这种情况容易导致在更新区块链以及关系型数据库中的数据时双方的数据不一致的问题。例如,现有更新区块链以及关系型数据库中的数据的状态的方案中,通常采用先更新该关系型数据库中的数据的状态,再将与其相对应的数据及其状态写入链以更新该链上数据,进而保证在关系型数据库中成功更新该数据的状态的情况下再对应更新链上该数据的状态,然而,可能存在链上该数据的状态更新成功但没有返回或者返回失败的情况,导致该关系型数据库中已更新的数据的状态被回滚,从而导致该关系型数据库的数据与链上对应的数据不一致的问题,进而容易导致该链上的数据变成垃圾数据,且永久地保留在该链上。
发明内容
本发明实施例提供了一种面向区块链的数据管理方法、装置、设备及存储介质,可以有效解决该关系型数据库的数据与链上对应的数据不一致问题,避免因关系型数据库的数据与链上对应的数据不一致而导致的不良后果。
第一方面,本发明实施例提供了一种面向区块链的数据管理方法,其包括:接收用户发送的第二次更新请求,其中,每一次更新请求包括待更新数据的第一状态以及第二状态,其中,所述第一状态以及第二状态为所述待更新数据的数据状态,所述数据状态为所述待更新数据的状态属性值;根据所述第一状态从一预设关系型数据库中获取待更新数据以及从预设区块链上查找与所述待更新数据对应的数据,其中,将所述关系型数据库中获取的待更新数据作为第一数据,将所述区块链上查找的与该待更新数据对应的数据作为第二数据;比对所述第一数据与所述第二数据以判断所述第一数据与所述第二数据是否一致;若所述第一数据与所述第二数据不一致,根据所述第一状态以及第二状态判断所述第一数据是否满足预设数据补偿条件;以及若所述第一数据满足预设数据补偿条件,根据所述第二状态对所述第一数据进行数据补偿。
第二方面,本发明实施例还提供了一种面向区块链的数据管理装置,其包括:第一接收单元,用于接收用户发送的第二次更新请求,其中,每一次更新请求包括待更新数据的第一状态以及第二状态,其中,所述第一状态以及第二状态为所述待更新数据的数据状态,所述数据状态为所述待更新数据的状态属性值;第一获取单元,用于根据所述第一状态从一预设关系型数据库中获取待更新数据以及从预设区块链上查找与所述待更新数据对应的数据,其中,将所述关系型数据库中获取的待更新数据作为第一数据,将所述区块链上查找的与该待更新数据对应的数据作为第二数据;第一判断单元,用于比对所述第一数据与所述第二数据以判断所述第一数据与所述第二数据是否一致;第二判断单元,用于若所述第一数据与所述第二数据不一致,根据所述第一状态以及第二状态判断所述第一数据是否满足预设数据补偿条件;以及第一补偿单元,用于若所述第一数据满足预设数据补偿条件,根据所述第二状态对所述第一数据进行数据补偿。
第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现上述第一方面的方法。
本发明实施例提供了一种面向区块链的数据管理方法、装置、设备及存储介质。本发明实施例能够有效解决保存在一关系型数据库中的数据与链上对应的数据不一致问题,避免因关系型数据库的数据与链上对应的数据不一致而无法更新链上数据的问题。本发明实施例通过接收用户发送的更新请求,并根据该更新请求来判断是否需要对该关系型数据库中的数据进行数据补偿,若判定需要对该关系型数据库中的数据进行数据补偿,则自动对该数据进行补偿,无须用户参与即可自动实现数据修复补偿。本发明实施例可以有效保证上链事务的有序进行以及可以提高异常事务的处理能力。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明第一实施例提供的一种面向区块链的数据管理方法的流程示意图;
图2为本发明第一实施例提供的一种面向区块链的数据管理方法的一流程示意图;
图3为本发明第二实施例提供的一种面向区块链的数据管理方法的流程示意图;
图4为本发明第三实施例提供的一种面向区块链的数据管理方法的流程示意图;
图5为本发明第一实施例提供的一种面向区块链的数据管理装置的示意性框图;
图6为本发明第一实施例提供的一种面向区块链的数据管理装置的第二判断单元的示意性框图;
图7为本发明第二实施例提供的一种面向区块链的数据管理装置的示意性框图;
图8为本发明第三实施例提供的一种面向区块链的数据管理装置的示意性框图;以及
图9为本发明实施例提供的一种计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,其为本发明第一实施例提供的一种面向区块链的数据管理方法的示意性流程图。该面向区块链的数据管理方法可以运行在提供数据上链功能的终端设备中,具体地,该面向区块链的数据管理方法应用于一终端设备的用户端系统内,用于防止关系型数据库的数据与区块链上对应的数据不一致。其中,该终端设备可以为配置一预设区块链的智能手机、平板电脑或笔记本电脑等电子设备;或者独立的服务器或者多个服务器组成的服务器集群;该终端设备也可以为未配置一预设区块链,但可以与配置该预设区块链的其他终端设备进行交互。该方法可包括步骤S101至S105。
S101、接收用户发送的第二次更新请求,其中,每一次更新请求包括待更新数据的第一状态以及第二状态,其中,所述第一状态以及第二状态为所述待更新数据的数据状态,所述数据状态为所述待更新数据的状态属性值。
具体地,每一次更新请求具体为数据上链请求。所述预设用户端包括预设个人用户端、预设企业端以及预设银行端。在一实施例中,所述接收用户发送的第二次更新请求可以为接收预设企业端发送的第二次更新请求;或者可以为接收预设银行端发送的第二次更新请求;亦或者可以为接收预设个人用户端发送的第二次更新请求。其中,每一次更新请求包括待更新数据的第一状态以及第二状态,其中,所述第一状态以及第二状态为所述待更新数据的数据状态,所述数据状态为所述待更新数据的状态属性值,其中,所述待更新数据包括多个属性值,该状态属性值为其所包括的多个属性值之一。
在一实施例中,例如本实施例中,所述待更新数据为业务数据,该业务数据为所述预设用户端的业务系统中的每一预设业务所产生的数据。其中,所述预设用户端包括预设个人用户端、预设企业端以及预设银行端,所述预设业务包括保险业务、贷款业务以及金融理财业务等业务,则所述业务数据具体可例如为保险数据、贷款数据以及金融理财数据等。其中,每一预设业务所对应产生的每条业务数据均包括多个属性值,其中,该多个属性值可以作为查询所述业务数据的查询条件。具体地,由于区块链上数据以key-value键值对这一数据结构保存,无法按照很复杂的查询条件来查找该链上的数据。其中,该key是键,value是值。因此,可以采用在一预设的关系型数据库中对应保存一条区块链上的数据,即在数据上链的同时将该数据对应保存到所述关系型数据库中,以将所述关系型数据库中对应保存的一条数据的多个属性值作为用于查找该区块链上数据的查询条件。其中,该关系型数据库中对应保存的一条数据包括该键值key以及数据内容value;所述数据内容value包括多个属性值。若所述数据为贷款数据,则所述多个属性值可例如为贷款企业,贷款金额,贷款日期,还款日期,还款金额,贷款类型以及贷款状态。
其中,所述第一状态以及第二状态为所述待更新数据的数据状态,所述数据状态为待更新数据的状态属性值,所述第一状态以及第二状态用于表示所述待更新数据的更新前的数据状态以及更新后的数据状态,具体地,所述第一状态为待更新数据更新前的数据状态,所述第二状态为待更新数据更新后的数据状态。具体地,若未对该待更新数据进行更新,则该待更新数据的当前数据状态为所述待更新数据在更新以前的数据状态;若已对该待更新数据进行更新,则该待更新数据的当前数据状态为所述待更新数据在更新以后的数据状态,因此,所述待更新数据的当前数据状态会跟随着该预设业务的进行而发生变化。例如,若该预设业务为贷款业务,其对应产生的业务数据为贷款数据,所述贷款数据的数据状态为贷款状态,具体地,用户在预设企业端的业务系统上申请了一贷款业务时会对应产生一条贷款数据LOAN,该贷款数据LOAN包括该贷款数据的键值key以及数据内容value,其中,所述数据内容value包括贷款企业,贷款金额,贷款日期,还款日期,还款金额,贷款类型以及贷款状态等多个属性值。其中,可以利用贷款数据的多个属性值查找到该贷款数据LOAN,例如,可以查询在xx月xx日所产生的贷款数据,若该贷款数据LOAN的贷款时间也为xx月xx日,则该贷款数据会被查找出来。另外,由于该贷款数据LOAN的贷款状态为该贷款数据的数据状态,该贷款数据LOAN的贷款状态会随着该贷款业务的进行而发生变化,即该贷款数据LOAN的贷款状态具体包括第一状态以及第二状态,该贷款数据LOAN的贷款状态会随着该贷款业务的进行从第一状态更新为第二状态。例如,当企业在企业端申请了一贷款业务时,其所对应产生的一条贷款数据的当前数据状态默认为申请中,即该贷款数据的贷款状态的第一状态为申请中;若银行在银行端看到这条贷款数据LOAN后,可决定是否同意该贷款业务的申请;若银行同意该贷款业务的申请,则该贷款数据LOAN的贷款状态将会从申请中更新为同意申请,其中,该贷款状态的第一状态为申请中,其第二状态为同意申请;若不同意该贷款业务的申请,则该贷款数据LOAN的贷款状态将会从申请中更新为不同意申请,其中,该贷款状态的第一状态为申请中,其第二状态为不同意申请;若企业贷完款后进入准备还款阶段,则该贷款数据LOAN的贷款状态将会从已放款更新为已还款,部分还款或者逾期未还款等状态,在这个过程中,该贷款数据LOAN的贷款状态会随着该贷款业务的进行而发生变化,即该贷款数据LOAN的贷款状态将会从第一状态更新为第二状态。所述第一状态为该待更新数据更新前的数据状态,该第一状态具体可包括申请中、取消申请、同意申请、不同意申请、已放款、已还款、部分还款、逾期未还款等状态;所述第二状态为该待更新数据更新后的数据状态,该第二状态具体可包括申请中、取消申请、同意申请、不同意申请、已放款、已还款、部分还款、逾期未还款等状态。
S102、根据所述第一状态从一预设关系型数据库中获取待更新数据以及从预设区块链上查找与所述待更新数据对应的数据,其中,将所述关系型数据库中获取的待更新数据作为第一数据,将所述区块链上查找的与该待更新数据对应的数据作为第二数据。
具体地,在一实施例中,所述根据所述第一状态从一预设关系型数据库中获取待更新数据以及从预设区块链上查找与所述待更新数据对应的数据包括如下子步骤S102a至S102b,其中,所述步骤S102a:根据所述待更新数据的第一状态从一预设关系型数据库中获取所述待更新数据,其中,将所述关系型数据库中获取的待更新数据作为第一数据;以及步骤S102b:根据所述第一数据从一预设区块链上查找与所述第一数据对应的数据,其中,将所述区块链上查找的与所述第一数据对应的数据作为第二数据。
具体地,由步骤S101可知,该关系型数据库中对应保存的一条数据包括该键值key以及数据内容value;所述数据内容value包括多个属性值。例如,在一实施例中,若所述数据为贷款数据,则所述多个属性值可例如为贷款企业,贷款金额,贷款日期,还款日期,还款金额,贷款类型以及贷款状态。具体地,在步骤S102a中,若待更新数据为贷款数据,所述贷款数据的第一状态为所述贷款数据的贷款状态,所述根据所述待更新数据的第一状态从一预设关系型数据库中获取所述待更新数据具体为根据所述第一状态从一预设关系型数据库中获取当前贷款状态为第一状态的数据,该被获取的数据则为待更新数据。例如,若第一状态为申请中,则从一预设关系型数据库中获取当前贷款状态为申请中的所有贷款数据。所述步骤S102b根据所述第一数据从一预设区块链上查找与所述第一数据对应的数据包括:根据所述第一数据的键值key从一预设区块链上查找与所述第一数据的键值key相同的数据,其中,将所述区块链上查找的与所述第一数据对应的数据作为第二数据。具体地,该区块链中对应该关系型数据库保存的一条数据同样包括该数据的键值key以及数据内容value;所述数据内容value包括多个属性值。例如,在一实施例中,若所述数据为贷款数据,则所述多个属性值可例如为贷款企业,贷款金额,贷款日期,还款日期,还款金额,贷款类型以及贷款状态。此时,从区块链上查找的与所述第一数据对应的第二数据的贷款状态为所述第二数据的当前数据状态。
S103、比对所述第一数据与所述第二数据以判断所述第一数据与所述第二数据是否一致。
具体地,通常该第一数据与该第二数据为完全相同的数据,其区别在于,所述第一数据存储于一预设关系型数据库中,所述第二数据写入一预设的区块链上。然而,在业务数据写入区块链的整个过程中,需要通过HTTP协议与多个系统进行交互,所述系统可例如为交易系统以及区块链系统,即用户端系统需要通过HTTP协议与交易系统以及区块链系统进行交互以实现数据上链,因此,在数据上链过程中存在较多不可控制的因素,当出现业务数据上链超时或者返回失败亦或者执行异常等情况时,将会自动回滚该预设关系型数据库中已更新的数据,然而,返回失败或者出现异常情况并不能表示该业务数据上链失败。若该业务数据上链成功,而在预设关系型数据库中对应更新的业务数据被回滚,导致链上数据与预设关系型数据库中数据不同,例如,当预设企业端提交一业务申请,对应产生一条业务数据保存在一预设关系型数据库中,并写入一预设区块链上,此时,该业务数据的当前数据状态为申请中,而当预设银行端处理了该业务申请后,可例如为同意该业务申请,则将该业务数据在预设关系型数据库中的当前数据状态从申请中更新为同意申请,并将该更新后的业务数据写入一预设区块链上,但是,可能存在该更新后的业务数据成功写入链后,用户端系统却没有返回成功,则该更新后的业务数据在该预设关系型数据库中将会自动回滚到更新以前的数据状态,此时,该业务数据在预设关系型数据库中的数据状态为申请中,而在预设区块链上为同意申请。因此,比对所述第一数据与所述第二数据以判断所述第一数据与所述第二数据是否相同。
其中,在一实施例中,所述比对所述第一数据与所述第二数据以判断所述第一数据与所述第二数据是否一致的步骤之后还包括若所述第一数据与所述第二数据一致,执行用户发送的第二次更新请求;其中,所述第二次更新请求为数据上链请求。具体地,若所述第一数据与所述第二数据一致,则表明该第一数据为正常上链数据,不需要对该第一数据进行数据补偿处理。
S104、若所述第一数据与所述第二数据不一致,根据所述第一状态以及第二状态判断所述第一数据是否满足预设数据补偿条件。
具体地,在一实施例中,当所述第一数据与所述第二数据不一致时,所述根据所述第一状态以及第二状态判断所述第一数据是否满足预设数据补偿条件包括数据补偿判断方法。该数据补偿判断方法,如图2所示,即步骤S104包括子步骤S104a至S104d。其中,S104a、根据预设状态流转规则判断所述第一数据的第一状态是否可流转为所述第二数据的当前数据状态;S104b、若所述第一数据的第一状态可流转为所述第二数据的当前数据状态,判断所述第一数据的第二状态是否与所述第二数据当前数据状态一致;S104c、若所述第一数据的第二状态与所述第二数据当前数据状态一致,判定所述第一数据满足预设数据补偿条件;S104d、若所述第一数据的第一状态不可流转为所述第二数据的当前数据状态或者所述第一数据的第二状态与所述第二数据当前数据状态不一致,判定所述第一数据不满足预设数据补偿条件。
具体地,在所述步骤S104a中,所述预设状态流转规则包括状态可流转规则以及状态不可流转规则,其中,所述状态可流转规则为预先设定的可从一状态流转更新为另一状态的规则,所述状态不可流转规则为预先设定的不可从一状态流转为另一状态的规则,例如,若一状态为申请中,则预设设定的可与其发生状态流转的另一状态为取消申请、同意申请以及不同意申请;不可与其发生状态流转的另一状态为已放款、已还款、部分还款、逾期未还款;若一状态为同意申请,则可与其发生状态流转的另一状态为已放款;不可与其发生状态流程的另一状态则为申请中、不同意申请、已还款、已部分还款以及逾期未还款;即一状态可以从申请中状态流转为同意申请状态,却不可从同意申请状态流转为申请中状态。因此,在所述步骤S104a中,若所述第一数据的第一状态为申请中,所述第二数据的当前数据状态为同意申请,其中,数据状态为申请中可流转为同意申请,则判定所述第一数据的第一状态满足预设状态流转规则;若所述第一数据的第一状态为同意申请,所述第二数据的当前数据状态为不同意申请,其中,数据状态为同意申请不可流转为不同意申请,则判定所述第一数据的第一状态不满足预设状态流转规则。
在所述步骤S104b中,若所述第一数据的第一状态可流转为所述第二数据的当前数据状态,则根据所述第一数据的第二状态判断所述第一数据的第二状态是否与所述第二数据的当前数据状态一致;具体可例如为,若根据所述更新请求可知该第一数据第一状态为申请中,第二状态为同意申请;从步骤S102可知该区块链上查找到的与该第一数据对应的第二数据当前数据状态为同意申请,因此,该第一数据第二状态与第二数据当前数据状态一致,均为同意申请,则可判定该第一数据第二状态与该第二数据当前数据状态一致,即可判断该第一数据满足预设数据补偿条件,对该第一数据进行相应的数据补偿处理即可。其中,该第一数据存储于该预设关系型数据库中,该第二数据存储于该预设区块链上。
由于在数据上链的过程中,可能导致该第一数据与第二数据中的数据状态不同,例如,在更新数据的数据状态的过程中,当第一数据当前数据状态从申请中更新为同意申请时,再将该更新后第一数据作为第二数据写入区块链中,当该第二数据成功写入链后,但是由于需要通过HTTP协议与多个系统进行交互,所述系统可例如为交易系统以及区块链系统,即用户端系统需要通过HTTP协议与交易系统以及区块链系统进行交互以实现数据上链,因此,在数据上链过程中存在较多不可控制的因素,因此,容易出现返回异常或上链超时等情况,进而导致该第一数据在预设关系型数据库中的数据状态将从第二状态自动回滚到第一状态,即从同意申请状态回滚到申请中状态。此时,该预设关系型数据库中的第一数据的数据状态为申请中,而该预设区块链上与该第一数据对应的第二数据的数据状态为同意申请。当用户端系统接收到查询条件为数据状态为申请中时,该被回滚的第一数据将会被查询获取到,进而根据用户发送的更新请求需要将该第一数据更新为同意申请再写入链上,但此时,该第一数据对应的第二数据在链上的数据状态已经是同意申请状态,由于链上的数据具备唯一性,因此该更新后第一数据无法重复写入该区块链上,进而导致数据上链过程异常,可能会造成更多不良影响。此时,只需对该第一数据在预设关系型数据库中的数据状态进行补偿,以使该第一数据不被查询出来。因此,需要判断所述第一数据的第二状态是否与所述第二数据当前数据状态一致。若所述第一数据的第二状态与所述第二数据当前数据状态一致,则表明该第一数据在更新数据状态以上链的过程中被回滚了,而其对应的第二数据已成功上链,此时,只需对该第一数据在预设关系型数据库中的数据状态进行补偿即可,即将该第一数据在预设关系型数据库中的数据状态补偿为同意申请,以防止该第一数据重复上链,解决上链事务异常。
S105、若所述第一数据满足预设数据补偿条件,根据所述第二状态对所述第一数据进行数据补偿。
具体地,若所述第一数据的第二状态与该第二数据当前数据状态一致,即判定所述第一数据满足预设数据补偿条件,则根据所述更新请求对该第一数据进行数据补偿,其中,所述根据所述更新请求对该第一数据进行数据补偿具体包括:根据所述更新请求将所述第一数据的数据状态从第一状态更新补偿为第二状态。
在上述实施例中,本方案通过在接收到用户提交的更新请求后,先根据所述更新请求获取一预设关系型数据库中的第一数据,再根据所述第一数据到链上查找到与该第一数据对应的第二数据,再判断该第一数据以及第二数据是否一致;若该第一数据与第二数据一致,则执行用户发送的第二次更新请求;若该第一数据与第二数据不一致,则再判断该第一数据是否满足预设数据补偿条件,若满足,则对该第一数据进行数据补偿,进而保证在后续执行该更新请求时,避免该需进行数据补偿的第一数据对该更新请求的干扰,即避免干扰其他待更新数据的正常上链,可以保证用户的更新请求的正常进行,其中,所述更新请求为数据上链请求。本发明实施例能够有效解决保存在一关系型数据库中的数据与链上对应的数据不一致问题,避免因关系型数据库的数据与链上对应的数据不一致而无法更新链上数据的问题。本发明实施例可以自动对需进行数据补偿的待更新数据进行补偿,无须用户参与即可自动实现数据修复补偿。本发明实施例还可以有效保证上链事务的有序进行以及可以提高用户端系统的异常事务的处理能力。
请参阅图3,其为本发明第二实施例提供的一种面向区块链的数据管理方法的流程示意图。具体地,如图3所示,该方法可包括步骤S201-S207。其中步骤S201-S205与上述实施例中的步骤S101-S105类似,在此不再赘述。下面详细说明本实施例中所增加的步骤S206-S207。
S206、若所述第一数据与所述第二数据一致,执行用户发送的第二次更新请求;其中,每一次更新请求为数据上链请求。
其中,在一实施例中,由步骤S203可知,所述比对所述第一数据与所述第二数据以判断所述第一数据与所述第二数据是否一致的步骤之后还包括:若所述第一数据与所述第二数据一致,执行用户发送的第二次更新请求;其中,所述第二次更新请求为数据上链请求。
具体地,若所述第一数据与所述第二数据一致,则表明该第一数据为正常上链数据,不需要对该第一数据进行数据补偿处理,则可以将该不需进行数据补偿的数据上区块链,即执行用户发送的第二次更新请求,从而可以保证用户的第二次更新请求的正常进行。具体地,所述执行用户发送的第二次更新请求具体包括子步骤S206a以及子步骤S206b,其中,所述子步骤S206a:更新所述关系型数据库中的待更新数据;以及所述子步骤S206b:通过调用更新链接口将更新后的待更新数据写入一预设区块链上;其中,所述更新链接口为所述区块链提供给所述用户端调用的接口。
S207、若所述第一数据不满足预设数据补偿条件,向用户发出异常提醒。
具体地,由步骤S204可知,根据所述第一状态以及第二状态判断所述第一数据是否满足预设数据补偿条件具体包括:S204a、根据预设状态流转规则判断所述第一数据的第一状态是否可流转为所述第二数据的当前数据状态;以及S204b、若所述第一数据的第一状态可流转为所述第二数据的当前数据状态,判断所述第一数据的第二状态是否与所述第二数据当前数据状态一致;其中,若所述第一数据的第一状态不可流转为所述第二数据的当前数据状态或者该第一数据第二状态与该第二数据当前数据状态不一致,则所述第一数据为异常数据,则将其视为系统运行的未知异常,无法通过系统自动补偿来达到数据一致性,需要向用户发出异常提醒。
具体地,在一实施例中,当所述第一数据不满足预设数据补偿条件时,所述向用户发出异常提醒包括子步骤S207a以及子步骤S207b。其中,S207a、将所述第一数据保存到一预设的数据表内;S207b、将所述数据表通过邮件发送给用户以发出异常提醒。当然在其他实施例方式,可以通过即时通讯方式或者短信亦或者系统报警等方式将所述数据表发送给用户以发出异常提醒。具体地,在一实施例中,可以将该第一数据的ID或者编号写入到一预设数据库表中,该预设数据库表用于存储所有异常数据,并发出邮件提醒到相关负责人,以使该相关负责人可以根据该邮件提醒及时分析并解决该数据问题。
在上述实施例中,本方案通过在接收到用户提交的更新请求后,先根据所述更新请求获取一预设关系型数据库中的第一数据,再根据所述第一数据到链上查找到与该第一数据对应的第二数据,再判断该第一数据与第二数据是否一致;若该第一数据与第二数据一致,则执行用户发送的第二次更新请求;若该第一数据与第二数据不一致,则再判断该第一数据是否满足预设数据补偿条件,若满足,则对该第一数据进行数据补偿,进而保证在后续执行该更新请求时,避免该需进行数据补偿的第一数据对该更新请求的干扰,即避免干扰其他待更新数据的正常上链,可以保证用户的更新请求的正常进行,其中,所述更新请求为数据上链请求。若不满足,向用户发出异常提醒,可以及时提醒用户,以使用户可以方便快捷发现异常数据,进而及时进行人工修复。
请参阅图4,其为本发明第三实施例提供的一种面向区块链的数据管理方法的流程示意图。具体地,所述方法应用于一预设用户端,所述更新请求为第二次更新请求,其中,如图4所示,该方法可包括步骤S301-S310。其中步骤S301-S307与上述实施例中的步骤S201-S207类似,在此不再赘述。下面详细说明本实施例中所增加的步骤S308-步骤S312。
S308、若接收到用户发送的第一次更新请求,根据所述第一次更新请求的第一状态以及第二状态判断所述关系型数据库中的待更新数据是否满足预设状态流转规则。
具体地,所述根据所述第一次更新请求的第一状态以及第二状态判断所述关系型数据库中的待更新数据是否满足预设状态流转规则包括子步骤S308a,其中所述子步骤S308a:根据所述第一次更新请求的第一状态以及第二状态以及预设状态流转规则判断所述关系型数据库中的待更新数据是否可从第一状态更新为第二状态;其中,一次更新请求包括待更新数据的第一状态以及第二状态,其中,所述第一状态以及第二状态为所述待更新数据的数据状态,所述数据状态为所述待更新数据的状态属性值;所述第一状态为待更新数据更新以前的数据状态,所述第二状态为待更新数据更新以后的数据状态。所述预设状态流转规则包括状态可流转规则以及状态不可流转规则,其中,所述状态可流转规则为预先设定的可从一状态流转更新为另一状态的规则,所述状态不可流转规则为预先设定的不可从一状态流转为另一状态的规则。具体可例如为,若所述待更新数据第一状态为申请中,其第二状态为已还款,则所述关系型数据库中的待更新数据不满足预设状态流转规则;若所述待更新数据第一状态为申请中,其第二状态为同意申请,则所述关系型数据库中的待更新数据满足预设状态流转规则。
S309、若所述关系型数据库中的待更新数据满足预设状态流转规则,更新所述待更新数据。
具体地,所述更新所述待更新数据具体包括:更新所述用户端系统的一预设关系型数据库中的待更新数据的数据状态。所述更新所述用户端系统的一预设关系型数据库中的待更新数据的数据状态具体为:将所述用户端系统的一预设关系型数据库中的待更新数据从第一状态更新为第二状态。
S310、通过调用更新链接口将更新后的待更新数据写入一预设区块链上;其中,所述更新链接口为所述区块链提供给所述用户端调用的接口。
具体地,所述通过调用更新链接口将更新后的待更新数据写入一预设区块链上是通过HTTP协议远程访问实现的。具体地,需要通过HTTP协议远程访问多个系统实现的,可例如为所述用户端系统通过HTTP协议调用交易服务器的写入链接口,其中,该HTTP协议将有目的地返回HTTP返回码,并且该HTTP返回码可以根据用户实际应用场景的需求进行自定义设置,当该HTTP返回码表示失败时,保存在该关系型数据库中的数据将会自动回滚。
S311、接收HTTP返回码并根据所述HTTP返回码判断是否出现更新异常。
其中,所述HTTP返回码包括多个状态码,该多个状态码用于表示服务器在处理请求时发生的错误,因此,通过接收到的HTTP返回码可以判断确定是否为更新异常,其中,所述更新异常为数据上链过程的多个系统在处理请求时发生的错误情况。即该多个状态码用于表示用于数据上链过程的多个系统在处理请求时发生的错误。这些错误可能是服务器本身的错误,而不是请求出错。所述多个状态码可例如为500(服务器内部错误)、501(尚未实施)、502(错误网关)、503(服务不可用)、504(网关超时)以及505(HTTP版本不受支持)等。其中,在一实施例中,可以事先设置数据写入链的整个过程所需时间为15秒,若数据写入链的整个过程所花费时间超过15秒,则判定该数据入链超时,即该数据入链失败,将会返回504(网关超时)这一HTTP返回码。
S312、若出现更新异常,回滚所述关系型数据库中更新后的待更新数据。
具体地,当该HTTP返回码表示失败时,保存在该关系型数据库中的数据将会自动回滚。
具体地,上述步骤S307-步骤S309为执行用户发送的第二次更新请求的必要步骤,即通过执行上述步骤S307-步骤S309即可实现所述第二次更新请求,即完成数据上链请求,其中,当用户发送第一次更新请求时,在预设关系型数据库中以及预设区块链上均不存在所述待更新数据,即也不存在预设关系型数据库中的数据与预设区块链上数据不一致的问题,然而在执行第一次更新请求之后,可能存在该预设关系型数据库中的数据与预设区块链上数据不一致的问题,因此,应当判断识别出该需要进行数据补偿的数据,以及对该预设关系型数据库中需进行数据补偿的数据进行补偿,进而保证在后续执行该更新请求时,避免该需进行数据补偿的第一数据对该更新请求的干扰,即避免干扰其他待更新数据的正常上链,可以保证用户的更新请求的正常进行,其中,每一次更新请求为数据上链请求。
请参阅图5,其为本发明第一实施例提供的一种面向区块链的数据管理装置100的示意性框图。如图5所示,该面向区块链的数据管理装置100对应于图1所示的面向区块链的数据管理方法。该面向区块链的数据管理装置100包括用于执行上述面向区块链的数据管理方法的单元,该面向区块链的数据管理装置100可以被配置于提供数据上链功能的终端设备中,具体地,该面向区块链的数据管理装置100应用于一终端设备的用户端系统内,用于防止关系型数据库的数据与区块链上对应的数据不一致。其中,该终端设备可以为配置一预设区块链的智能手机、平板电脑或笔记本电脑等电子设备;或者独立的服务器或者多个服务器组成的服务器集群;该终端设备也可以为未配置一预设区块链,但可以与配置该预设区块链的其他终端设备进行交互。具体地,请参阅图5,该面向区块链的数据管理装置100包括第一接收单元101、第一获取单元102、第一判断单元103、第二判断单元104以及第一补偿单元105。
所述第一接收单元101用于接收用户发送的第二次更新请求,其中,每一次更新请求包括待更新数据的第一状态以及第二状态,其中,所述第一状态以及第二状态为所述待更新数据的数据状态,所述数据状态为所述待更新数据的状态属性值。
所述第一获取单元102用于根据所述第一状态从一预设关系型数据库中获取待更新数据以及从预设区块链上查找与所述待更新数据对应的数据,其中,将所述关系型数据库中获取的待更新数据作为第一数据,将所述区块链上查找的与该待更新数据对应的数据作为第二数据。
在一实施例中,第一获取单元102包括:第一获取子单元102a以及第二获取子单元102b。其中,所述第一获取子单元102a,用于根据所述待更新数据的第一状态从一预设关系型数据库中获取所述待更新数据,其中,将所述关系型数据库中获取的待更新数据作为第一数据;以及所述第二获取子单元102b,用于根据所述第一数据从一预设区块链上查找与所述第一数据对应的数据,其中,将所述区块链上查找的与所述第一数据对应的数据作为第二数据。
所述第一判断单元103用于比对所述第一数据与所述第二数据以判断所述第一数据与所述第二数据是否一致。
所述第二判断单元104用于若所述第一数据与所述第二数据不一致,根据所述第一状态以及第二状态判断所述第一数据是否满足预设数据补偿条件。
在一实施例中,如图6所示,所述第二判断单元104包括:第一判断子单元104a、第二判断子单元104b、第一判定单元104c以及第二判定单元104d。其中,所述第一判断子单元104a,用于根据预设状态流转规则判断所述第一数据的第一状态是否可流转为所述第二数据的当前数据状态;所述第二判断子单元102b,用于若所述第一数据的第一状态可流转为所述第二数据的当前数据状态,判断所述第一数据的第二状态是否与所述第二数据当前数据状态一致;所述第一判定单元104c,用于若所述第一数据的第二状态与所述第二数据当前数据状态一致,判定所述第一数据满足预设数据补偿条件;以及所述第二判定单元104d,用于若所述第一数据的第一状态不可流转为所述第二数据的当前数据状态或者所述第一数据的第二状态与所述第二数据当前数据状态不一致,判定所述第一数据不满足预设数据补偿条件。
所述第一补偿单元105用于若所述第一数据满足预设数据补偿条件,根据所述第二状态对所述第一数据进行数据补偿。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述面向区块链的数据管理装置100和各单元的具体实现过程以及效果,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
请参阅图7,其为本发明第二实施例提供的一种面向区块链的数据管理装置200的示意性框图。如图7所示,本发明第二实施例提供的一种面向区块链的数据管理装置200是在上述实施例的基础上增加了第一执行单元206以及第一提醒单元207,即所述装置200包括第二接收单元201、第二获取单元202、第三判断单元203、第四判断单元204、第二补偿单元205、第一执行单元206以及第一提醒单元207。其中,该第二接收单元201、第二获取单元202、第三判断单元203、第四判断单元204以及第二补偿单元205与上述实施例中的第一接收单元101、第一获取单元102、第一判断单元103、第二判断单元104以及第一补偿单元105类似,由于其应用过程以及相应功能与上述实施例中所对应的单元类似,在此不再赘述。
所述第一执行单元206用于若所述第一数据与所述第二数据一致,执行用户发送的第二次更新请求;其中,每一次更新请求为数据上链请求。
具体地,在一实施例中,所述第一执行单元206包括第一执行子单元206a以及第二执行子单元206b。其中,所述第一执行子单元206a用于更新所述关系型数据库中的待更新数据;以及所述第二执行子单元206b用于通过调用更新链接口将更新后的待更新数据写入一预设区块链上;其中,所述更新链接口为所述区块链提供给所述用户端调用的接口。
所述第一提醒单元207用于若所述第一数据不满足预设数据补偿条件,向用户发出异常提醒。
具体地,在一实施例中,所述第一提醒单元207包括第一保存单元207a以及第一提醒子单元207b。其中,所述第一保存单元207a用于将所述第一数据保存到一预设的数据表内;以及所述第一提醒子单元207b用于将所述数据表通过邮件发送给用户以发出异常提醒。当然在其他实施例方式,可以通过即时通讯方式或者短信亦或者系统报警等方式将所述数据表发送给用户以发出异常提醒。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述装置200和各单元的具体实现过程以及效果,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
请参阅图8,其为本发明第三实施例提供的一种面向区块链的数据管理装置300的示意性框图。如图8所示,本发明第三实施例提供的一种面向区块链的数据管理装置300是在上述实施例的基础上增加了规则判断单元308、更新单元309、更新链单元310、返回码判断单元311以及回滚单元312,即所述装置300包括第三接收单元301、第三获取单元302、第五判断单元303、第六判断单元304、第三补偿单元305、第二执行单元306、第二提醒单元307、规则判断单元308、更新单元308、更新链单元310、返回码判断单元311以及回滚单元312。其中,该第三接收单元301、第三获取单元302、第五判断单元303、第六判断单元304、第三补偿单元305、第二执行单元306以及第二提醒单元307与上述实施例中的第二接收单元201、第二获取单元202、第三判断单元203、第四判断单元204、第二补偿单元205、第一执行单元206以及第一提醒单元207类似,由于其应用过程以及相应功能与上述实施例中所对应的单元类似,在此不再赘述。
所述规则判断单元308用于若接收到用户发送的第一次更新请求,根据所述第一次更新请求的第一状态以及第二状态判断所述关系型数据库中的待更新数据是否满足预设状态流转规则。其中,所述规则判断单元308具体用于若接收到用户发送的第一次更新请求,根据所述第一次更新请求的第一状态以及第二状态以及预设状态流转规则判断所述关系型数据库中的待更新数据是否可从第一状态更新为第二状态。
所述更新单元309用于若所述关系型数据库中的待更新数据满足预设状态流转规则,更新所述待更新数据。
所述更新链单元310用于通过调用更新链接口将更新后的待更新数据写入一预设区块链上;其中,所述更新链接口为所述区块链提供给所述用户端调用的接口。
所述返回码判断单元311用于接收HTTP返回码并根据所述HTTP返回码判断是否出现更新异常。
所述回滚单元312用于若出现更新异常,回滚所述关系型数据库中更新后的待更新数据。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述装置300和各单元的具体实现过程以及效果,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述装置可以实现为一种计算机程序的形式,该计算机程序可以在如图9所示的计算机设备上运行。
请参阅图9,其为本发明实施例提供的一种计算机设备的示意性框图。该计算机设备600可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑和个人数字助理等支持数据上链事务的电子设备。服务器为支持数据上链事务的服务器,该服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图9,该计算机设备600包括通过系统总线601连接的处理器602、存储器以及网络接口605,其中,存储器可以包括非易失性存储介质603和内存储器604。
该非易失性存储介质603可存储操作系统6031和计算机程序6032。该计算机程序6032包括程序指令,该程序指令被执行时,可使得处理器602执行一种面向区块链的数据管理方法。
该处理器602用于提供计算和控制能力,以支撑整个计算机设备600的运行。
该内存储器604为非易失性存储介质603中的计算机程序6032的运行提供环境,该计算机程序6032被处理器602执行时,可使得处理器602执行一种面向区块链的数据管理方法。
该网络接口605用于与其它设备进行网络通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备600的限定,具体的计算机设备600可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器602用于运行存储在存储器中的计算机程序6032,以实现如下步骤:接收用户发送的第二次更新请求,其中,每一次更新请求包括待更新数据的第一状态以及第二状态,其中,所述第一状态以及第二状态为所述待更新数据的数据状态,所述数据状态为所述待更新数据的状态属性值;根据所述第一状态从一预设关系型数据库中获取待更新数据以及从预设区块链上查找与所述待更新数据对应的数据,其中,将所述关系型数据库中获取的待更新数据作为第一数据,将所述区块链上查找的与该待更新数据对应的数据作为第二数据;比对所述第一数据与所述第二数据以判断所述第一数据与所述第二数据是否一致;若所述第一数据与所述第二数据不一致,根据所述第一状态以及第二状态判断所述第一数据是否满足预设数据补偿条件;以及若所述第一数据满足预设数据补偿条件,根据所述第二状态对所述第一数据进行数据补偿。
在一实施例中,所述面向区块链的数据管理方法应用于一预设用户端,所述处理器602在实现所述接收用户发送的第二次更新请求的步骤之前,具体还实现如下步骤:若接收到用户发送的第一次更新请求,根据所述第一次更新请求的第一状态以及第二状态判断所述关系型数据库中的待更新数据是否满足预设状态流转规则;若所述关系型数据库中的待更新数据满足预设状态流转规则,更新所述待更新数据;通过调用更新链接口将更新后的待更新数据写入一预设区块链上;其中,所述更新链接口为所述区块链提供给所述用户端调用的接口;接收HTTP返回码并根据所述HTTP返回码判断是否出现更新异常;以及若出现更新异常,回滚所述关系型数据库中更新后的待更新数据。
在一实施例中,处理器602在实现所述根据所述第一次更新请求的第一状态以及第二状态判断所述关系型数据库中的待更新数据是否满足预设状态流转规则的步骤时,具体实现如下步骤:根据所述第一次更新请求的第一状态以及第二状态以及预设状态流转规则判断所述关系型数据库中的待更新数据是否可从第一状态更新为第二状态。
在一实施例中,处理器602在实现所述根据所述第一状态从一预设关系型数据库中获取待更新数据以及从预设区块链上查找与所述待更新数据对应的数据的步骤时,具体实现如下步骤:根据所述待更新数据的第一状态从一预设关系型数据库中获取所述待更新数据,其中,将所述关系型数据库中获取的待更新数据作为第一数据;以及根据所述第一数据从一预设区块链上查找与所述第一数据对应的数据,其中,将所述区块链上查找的与所述第一数据对应的数据作为第二数据。
在一实施例中,处理器602在实现所述根据所述第一状态以及第二状态判断所述第一数据是否满足预设数据补偿条件的步骤时,具体实现如下步骤:根据预设状态流转规则判断所述第一数据的第一状态是否可流转为所述第二数据的当前数据状态;若所述第一数据的第一状态可流转为所述第二数据的当前数据状态,判断所述第一数据的第二状态是否与所述第二数据当前数据状态一致;若所述第一数据的第二状态与所述第二数据当前数据状态一致,判定所述第一数据满足预设数据补偿条件;以及若所述第一数据的第一状态不可流转为所述第二数据的当前数据状态或者所述第一数据的第二状态与所述第二数据当前数据状态不一致,判定所述第一数据不满足预设数据补偿条件。
在一实施例中,处理器602在实现所述根据所述第一状态以及第二状态判断所述第一数据是否满足预设数据补偿条件的步骤之后,具体还实现如下步骤:若所述第一数据不满足预设数据补偿条件,向用户发出异常提醒。
在一实施例中,处理器602在实现所述向用户发出异常提醒的步骤时,具体实现如下步骤:将所述第一数据保存到一预设的数据表内;以及将所述数据表通过邮件发送给用户以发出异常提醒。
应当理解,在本发明实施例中,处理器602可以是中央处理单元(CentralProcessing Unit,CPU),该处理器602还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序包括程序指令。该程序指令被处理器执行时使处理器执行如上所述的面向区块链的数据管理方法。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例系统中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种面向区块链的数据管理方法,其特征在于,包括:
接收用户发送的第二次更新请求,其中,每一次更新请求包括待更新数据的第一状态以及第二状态,其中,所述第一状态以及第二状态为所述待更新数据的数据状态,所述数据状态为所述待更新数据的状态属性值;
根据所述第一状态从一预设关系型数据库中获取待更新数据以及从预设区块链上查找与所述待更新数据对应的数据,其中,将所述关系型数据库中获取的待更新数据作为第一数据,将所述区块链上查找的与该待更新数据对应的数据作为第二数据;
比对所述第一数据与所述第二数据以判断所述第一数据与所述第二数据是否一致;
若所述第一数据与所述第二数据不一致,根据所述第一状态以及第二状态判断所述第一数据是否满足预设数据补偿条件;以及
若所述第一数据满足预设数据补偿条件,根据所述第二状态对所述第一数据进行数据补偿。
2.根据权利要求1所述的面向区块链的数据管理方法,其特征在于,所述方法应用于一预设用户端,所述接收用户发送的第二次更新请求的步骤之前,还包括:
若接收到用户发送的第一次更新请求,根据所述第一次更新请求的第一状态以及第二状态判断所述关系型数据库中的待更新数据是否满足预设状态流转规则;
若所述关系型数据库中的待更新数据满足预设状态流转规则,更新所述待更新数据;
通过调用更新链接口将更新后的待更新数据写入一预设区块链上;其中,所述更新链接口为所述区块链提供给所述用户端调用的接口;
接收HTTP返回码并根据所述HTTP返回码判断是否出现更新异常;以及
若出现更新异常,回滚所述关系型数据库中更新后的待更新数据。
3.根据权利要求2所述的面向区块链的数据管理方法,其特征在于,所述根据所述第一次更新请求的第一状态以及第二状态判断所述关系型数据库中的待更新数据是否满足预设状态流转规则,包括:
根据所述第一次更新请求的第一状态以及第二状态以及预设状态流转规则判断所述关系型数据库中的待更新数据是否可从第一状态更新为第二状态。
4.根据权利要求1所述的面向区块链的数据管理方法,其特征在于,所述根据所述第一状态从一预设关系型数据库中获取待更新数据以及从预设区块链上查找与所述待更新数据对应的数据,包括:
根据所述待更新数据的第一状态从一预设关系型数据库中获取所述待更新数据,其中,将所述关系型数据库中获取的待更新数据作为第一数据;以及
根据所述第一数据从一预设区块链上查找与所述第一数据对应的数据,其中,将所述区块链上查找的与所述第一数据对应的数据作为第二数据。
5.根据权利要求1所述的面向区块链的数据管理方法,其特征在于,所述根据所述第一状态以及第二状态判断所述第一数据是否满足预设数据补偿条件,包括:
根据预设状态流转规则判断所述第一数据的第一状态是否可流转为所述第二数据的当前数据状态;
若所述第一数据的第一状态可流转为所述第二数据的当前数据状态,判断所述第一数据的第二状态是否与所述第二数据当前数据状态一致;
若所述第一数据的第二状态与所述第二数据当前数据状态一致,判定所述第一数据满足预设数据补偿条件;以及
若所述第一数据的第一状态不可流转为所述第二数据的当前数据状态或者所述第一数据的第二状态与所述第二数据当前数据状态不一致,判定所述第一数据不满足预设数据补偿条件。
6.根据权利要求1所述的面向区块链的数据管理方法,所述根据所述第一状态以及第二状态判断所述第一数据是否满足预设数据补偿条件的步骤之后,还包括:
若所述第一数据不满足预设数据补偿条件,向用户发出异常提醒。
7.根据权利要求6所述的面向区块链的数据管理方法,其特征在于,所述向用户发出异常提醒,包括:
将所述第一数据保存到一预设的数据表内;以及
将所述数据表通过邮件发送给用户以发出异常提醒。
8.一种面向区块链的数据管理装置,其特征在于,包括:
第一接收单元,用于接收用户发送的第二次更新请求,其中,每一次更新请求包括待更新数据的第一状态以及第二状态,其中,所述第一状态以及第二状态为所述待更新数据的数据状态,所述数据状态为所述待更新数据的状态属性值;
第一获取单元,用于根据所述第一状态从一预设关系型数据库中获取待更新数据以及从预设区块链上查找与所述待更新数据对应的数据,其中,将所述关系型数据库中获取的待更新数据作为第一数据,将所述区块链上查找的与该待更新数据对应的数据作为第二数据;
第一判断单元,用于比对所述第一数据与所述第二数据以判断所述第一数据与所述第二数据是否一致;
第二判断单元,用于若所述第一数据与所述第二数据不一致,根据所述第一状态以及第二状态判断所述第一数据是否满足预设数据补偿条件;以及
第一补偿单元,用于若所述第一数据满足预设数据补偿条件,根据所述第二状态对所述第一数据进行数据补偿。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的面向区块链的数据管理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时可实现如权利要求1-7中任一项所述的面向区块链的数据管理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910428728.7A CN110275892B (zh) | 2019-05-22 | 2019-05-22 | 面向区块链的数据管理方法、装置、设备及存储介质 |
PCT/CN2020/087135 WO2020233351A1 (zh) | 2019-05-22 | 2020-04-27 | 面向区块链的数据管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910428728.7A CN110275892B (zh) | 2019-05-22 | 2019-05-22 | 面向区块链的数据管理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110275892A true CN110275892A (zh) | 2019-09-24 |
CN110275892B CN110275892B (zh) | 2022-08-19 |
Family
ID=67960255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910428728.7A Active CN110275892B (zh) | 2019-05-22 | 2019-05-22 | 面向区块链的数据管理方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110275892B (zh) |
WO (1) | WO2020233351A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020233351A1 (zh) * | 2019-05-22 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 面向区块链的数据管理方法、装置、设备及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113726519A (zh) * | 2021-08-16 | 2021-11-30 | 山东伏羲智库互联网研究院 | 数字身份管理方法、装置、电子设备及存储介质 |
CN116560896B (zh) * | 2023-07-11 | 2023-10-10 | 智慧眼科技股份有限公司 | 一种异常补偿方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018161760A1 (zh) * | 2017-03-09 | 2018-09-13 | 深圳壹账通智能科技有限公司 | 区块链数据存储系统和方法 |
CN108734453A (zh) * | 2018-05-21 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 区块链数据处理方法、装置、计算机设备和存储介质 |
US20190018862A1 (en) * | 2017-07-14 | 2019-01-17 | Alibaba Group Holding Limited | Blockchain based data processing method and device |
US20190042620A1 (en) * | 2017-08-01 | 2019-02-07 | International Business Machines Corporation | Optimizing queries and other retrieve operations in a blockchain |
CN109523385A (zh) * | 2018-12-07 | 2019-03-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
CN109542918A (zh) * | 2018-10-19 | 2019-03-29 | 平安普惠企业管理有限公司 | 保证数据一致性的方法、系统、计算机设备及存储介质 |
CN109558411A (zh) * | 2017-09-26 | 2019-04-02 | 浙江华信区块链科技服务有限公司 | 一种基于区块链数据的下链同步方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017136527A1 (en) * | 2016-02-05 | 2017-08-10 | Manifold Technology, Inc. | Blockchain-enhanced database |
CN107273455B (zh) * | 2017-05-31 | 2020-12-18 | 深圳前海微众银行股份有限公司 | 区块链数据访问方法和装置 |
CN109634679B (zh) * | 2018-10-16 | 2023-04-11 | 平安科技(深圳)有限公司 | 区块链配置更新方法、装置、设备及存储介质 |
CN110275892B (zh) * | 2019-05-22 | 2022-08-19 | 深圳壹账通智能科技有限公司 | 面向区块链的数据管理方法、装置、设备及存储介质 |
-
2019
- 2019-05-22 CN CN201910428728.7A patent/CN110275892B/zh active Active
-
2020
- 2020-04-27 WO PCT/CN2020/087135 patent/WO2020233351A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018161760A1 (zh) * | 2017-03-09 | 2018-09-13 | 深圳壹账通智能科技有限公司 | 区块链数据存储系统和方法 |
US20190018862A1 (en) * | 2017-07-14 | 2019-01-17 | Alibaba Group Holding Limited | Blockchain based data processing method and device |
US20190042620A1 (en) * | 2017-08-01 | 2019-02-07 | International Business Machines Corporation | Optimizing queries and other retrieve operations in a blockchain |
CN109558411A (zh) * | 2017-09-26 | 2019-04-02 | 浙江华信区块链科技服务有限公司 | 一种基于区块链数据的下链同步方法及装置 |
CN108734453A (zh) * | 2018-05-21 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 区块链数据处理方法、装置、计算机设备和存储介质 |
CN109542918A (zh) * | 2018-10-19 | 2019-03-29 | 平安普惠企业管理有限公司 | 保证数据一致性的方法、系统、计算机设备及存储介质 |
CN109523385A (zh) * | 2018-12-07 | 2019-03-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
Non-Patent Citations (2)
Title |
---|
ZHAOFENG MA ET AL.: "A Master-Slave Blockchain Paradigm and Application in Digital Rights Management", 《中国通信》 * |
王千阁等: "区块链系统的数据存储与查询技术综述", 《计算机科学》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020233351A1 (zh) * | 2019-05-22 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 面向区块链的数据管理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110275892B (zh) | 2022-08-19 |
WO2020233351A1 (zh) | 2020-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106775959B (zh) | 分布式事务处理方法和系统 | |
CN110275892A (zh) | 面向区块链的数据管理方法、装置、设备及存储介质 | |
KR101429555B1 (ko) | 고 가용성 데이터를 제공하기 위한 시스템 및 방법 | |
CN103136041B (zh) | 业务对象的批处理 | |
CN104793988A (zh) | 跨数据库分布式事务的实现方法和装置 | |
US20100262960A1 (en) | Communication Terminal | |
US9697042B2 (en) | Extensibility of business process and application logic | |
CN108874903A (zh) | 数据读取方法、装置、计算机设备及计算机可读存储介质 | |
CN113112344B (zh) | 业务处理方法、设备、存储介质及计算机程序产品 | |
CN106933550A (zh) | 全局信息获取、处理及更新方法、装置和系统 | |
CN112925614A (zh) | 一种分布式事务处理方法、装置、介质和设备 | |
CN104537563B (zh) | 一种额度数据处理方法及服务器 | |
CN109800096A (zh) | 一种消息拦截重发的方法及系统 | |
US20080077933A1 (en) | Implementation of composite services | |
CN114036164A (zh) | 一种乐观锁和悲观锁组合的高并发交易加锁方法及系统 | |
CN112632093A (zh) | 工单处理方法、设备、系统、存储介质及程序产品 | |
JP2006277685A (ja) | 障害発生通知プログラム、および通知装置。 | |
CN110135190A (zh) | 数据管理方法、服务器及计算机存储介质 | |
JP2019149185A (ja) | 資産目録化システム、及び電子担保化検索を実行するコンピュータ実施方法 | |
AU2013322395B2 (en) | Data distribution system | |
CN114968982A (zh) | 分库分表场景业务处理方法及装置 | |
JP7368531B2 (ja) | ブロックチェーンに基づく部屋在庫管理システム | |
US20100198707A1 (en) | Replicating Data in Financial Systems | |
CN108156031A (zh) | 一种数据的更新方法及装置 | |
US20240105324A1 (en) | Medical item resupply engine and engagement controller |
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 |