CN111367923A - 数据处理方法、装置、节点设备及存储介质 - Google Patents
数据处理方法、装置、节点设备及存储介质 Download PDFInfo
- Publication number
- CN111367923A CN111367923A CN202010120591.1A CN202010120591A CN111367923A CN 111367923 A CN111367923 A CN 111367923A CN 202010120591 A CN202010120591 A CN 202010120591A CN 111367923 A CN111367923 A CN 111367923A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- hash value
- distributed application
- target data
- 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.)
- Pending
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/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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
Abstract
本申请实施例公开了一种数据处理方法、装置、节点设备及存储介质,该方法包括:获取目标用户针对原始数据的数据变更请求;根据该数据变更请求对该目标用户进行鉴权;在鉴权成功时,调用与该业务合约相关联的第一分布式应用,通过该第一分布式应用对该原始数据进行变更;将变更后的原始数据作为目标数据,将该目标数据写入与该业务合约相关联的区块链;通过与该业务合约相关联的第二分布式应用读取该区块链上的该目标数据,将该目标数据输出至该目标用户对应的用户终端。采用本申请实施例,可以增加用户变更数据的安全性,并可以确保数据读取的可靠性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种数据处理方法、装置、节点设备及存储介质。
背景技术
随着区块链技术的日益成熟,涌现出了许多依靠区块链技术核心所开发出来的应用,即分布式应用(Distributed Application,DApp)。
目前,当用户查看DApp对应的业务数据时,需要从区块链上获取DApp相对应的业务数据,并由DApp对所得到的业务数据进行处理,从而显示在用户终端界面上,以使用户对业务数据进行查看。但是,在DApp对所得到的业务数据进行处理的过程中,可能会存在数据被非法篡改的问题,比如,存在其他用户(例如,非法用户)非法查看并更改DApp对应的业务数据的现象,难以确保业务数据的安全性。另外,在非法用户对业务数据进行非法变更之后,将导致显示在用户终端界面上的业务数据为已篡改的业务数据(即虚假数据),从而难以确保用户所查看到的业务数据的可靠性。
申请内容
本申请实施例提供一种数据处理方法、装置、节点设备及存储介质,可以增加用户变更数据的安全性,并确保了数据读取的可靠性。
本申请实施例一方面提供一种数据处理方法,包括:
获取目标用户针对原始数据的数据变更请求;该原始数据为业务合约所对应的业务数据库中的数据;
根据该数据变更请求对该目标用户进行鉴权;
在鉴权成功时,调用与该业务合约相关联的第一分布式应用,通过该第一分布式应用对该原始数据进行变更;
将变更后的原始数据作为目标数据,将该目标数据写入与该业务合约相关联的区块链;
通过与该业务合约相关联的第二分布式应用读取该区块链上的该目标数据,将该目标数据输出至该目标用户对应的用户终端。
本申请实施例一方面提供一种数据处理装置,包括:
获取模块,用于获取目标用户针对原始数据的数据变更请求;该原始数据为业务合约所对应的业务数据库中的数据;
鉴权模块,用于根据该数据变更请求对该目标用户进行鉴权;
变更模块,用于在鉴权成功时,调用与该业务合约相关联的第一分布式应用,通过该第一分布式应用对该原始数据进行变更;
写入模块,用于将变更后的原始数据作为目标数据,将该目标数据写入与该业务合约相关联的区块链;
输出模块,用于通过与该业务合约相关联的第二分布式应用读取该区块链上的该目标数据,将该目标数据输出至该目标用户对应的用户终端。
其中,该数据变更请求包含该目标用户对应的区块链地址;
该鉴权模块包括:
获取单元,用于获取与该原始数据相关联的区块链地址信息;该区块链地址信息包含用于对该原始数据进行变更的授权用户的访问地址信息;
第一查找单元,用于在该区块链地址信息中查找与该区块链地址相匹配的访问地址信息;
第一鉴权单元,用于若在该区块链地址信息中查找到存在与该区块链地址相匹配的访问地址信息,则鉴权成功;
第二鉴权单元,用于若在该区块链地址信息中查找到不存在与该区块链地址相匹配的访问地址信息,则鉴权失败。
其中,该业务合约中存储有与第一分布式应用相关联的第一业务逻辑;
该变更模块包括:
第一确定单元,用于在鉴权成功时,确定该目标用户具备对该原始数据进行变更的权限;
第二确定单元,用于调用该业务合约,基于该业务合约中的第一业务逻辑,确定与该业务合约相关联的第一分布式应用;
变更单元,用于通过该第一分布式应用对该原始数据进行变更,得到变更后的原始数据。
其中,该装置还包括:
确定模块,用于在鉴权失败时,确定该目标用户不具备对该原始数据进行变更的权限;
信息发送模块,用于向该目标用户发送针对该数据变更请求对应的失败提示信息。
其中,该写入模块包括:
第三确定单元,用于将变更后的原始数据确定为目标数据;
第四确定单元,用于根据该目标用户的私钥,确定该目标数据对应的签名信息;
上传单元,用于将该目标数据、该目标数据对应的签名信息以及该私钥对应的公钥上传至区块链网络,以使该区块链网络根据该公钥对该目标数据进行验签;
添加单元,用于若验签通过,则将包含该目标数据的数据变更区块添加至与该业务合约相关联的区块链。
其中,该业务合约中存储有与第二分布式应用相关联的第二业务逻辑;
该输出模块包括:
第五确定单元,用于获取该目标数据对应的第一哈希值,确定该第一哈希值所属的认证路径下的第一根哈希值;
第二查找单元,用于从该区块链中查找与该第一根哈希值相匹配的第二根哈希值,将该第二根哈希值所属的区块作为与该目标数据相关联的数据变更区块;
第六确定单元,用于根据该业务合约中的第二业务逻辑,确定与该业务合约相关联的第二分布式应用;
输出单元,用于通过该第二分布式应用从该数据变更区块中读取该目标数据,将该目标数据输出至该目标用户对应的用户终端。
其中,该第二查找单元包括:
获取子单元,用于获取该区块链中每个区块对应的根哈希值信息;
查找子单元,用于在该根哈希值信息查找与该第一根哈希值相匹配的根哈希值信息;
匹配子单元,用于将查找到与该第一根哈希值相匹配的根哈希值信息作为第二根哈希值,则将该第二根哈希值对应的区块作为与该目标数据相关联的数据变更区块。
本申请一方面提供了一种节点设备,包括:处理器、存储器、网络接口;
该处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,该存储器用于存储计算机程序,该处理器用于调用该计算机程序,以执行本申请实施例中上述一方面中的方法。
本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时,执行本申请实施例中上述一方面中的方法。
在本申请实施例中,该服务器节点可以针对目标用户的数据变更请求,对目标用户进行鉴权,可以增加用户变更数据的安全性;同时,该服务器节点通过第一分布式应用对原始数据进行变更之后,可以得到目标数据,此时,将目标数据写入区块链,并通过第二分布式应用读取区块链上的目标数据,从而确保了数据读取的可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构的结构示意图;
图2是本申请实施例提供的一种进行数据处理的场景示意图;
图3是本申请实施例提供的一种数据处理方法的流程示意图;
图4是本申请实施例提供的一种业务合约的示意图;
图5是本申请实施例提供的一种对目标用户进行鉴权的示意图;
图6是本申请实施例提供的一种数据变更区块生成的示意图;
图7是本申请实施例提供的一种数据处理方法的流程示意图;
图8是本申请实施例提供的一种第一根哈希值的示意图;
图9是本申请实施例提供的一种确定数据变更区块的示意图;
图10是本申请实施例提供的一种数据处理装置的结构示意图;
图11是本申请实施例提供的一种节点设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,是本申请实施例提供的一种网络架构的结构示意图。如图1所示,该网络架构可以包括用于运行区块链网络的区块链节点系统以及用户终端集群。其中,该区块链网络对应的区块链可以是与业务合约相关联的区块链。该区块链节点系统可以是指用于进行节点与节点之间数据共享的系统。该区块链节点系统可以包括多个节点。如图1所示,该区块链节点系统具体可以包括节点100a、节点100b、节点100c、…、节点100n。该用户终端集群可以包括多个用户终端,如图1所示,具体可以包括用户终端3000a、用户终端3000b、用户终端3000c、…、用户终端3000n。
其中,在该区块链节点系统中,每个节点在进行正常工作时,均可以获取与该节点相关联的用户终端(目标用户对应的用户终端)的目标数据,以维护该区块链节点系统内的共享数据。为了保证该区块链节点系统内的信息互通,该区块链节点系统中的每个节点之间可以建立网络连接,以通过该网络连接进行数据传输。例如,当该区块链节点系统中的任意节点在获取该目标业务记录信息时,区块链节点系统中的其他节点便可以根据共识算法获取该目标业务记录信息,并将该目标业务记录信息作为共享数据中的数据进行存储,使得该区块链节点系统中所有节点上存储的数据均一致。
对于该区块链节点系统中的每个节点,均具有与其对应的节点标识,而且该区块链节点系统中的每个节点均可以存储有与当前节点具有网络连接关系的其他节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至该区块链节点系统中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
节点名称 | 节点标识 |
节点1 | 117.114.151.174 |
节点2 | 117.116.189.145 |
… | … |
节点N | 119.123.789.258 |
应当理解,区块链节点系统中的每个节点均可以与用户终端集群中的每个用户终端进行数据交互。可以理解的是,本申请实施例可以在图1所示的区块链节点系统中选择一个节点作为该区块链网络中的服务器节点。其中,该服务器节点可以为运行有第一分布式应用和第二分布式应用的节点。例如,本申请实施例可以将区块链节点系统中的节点100a作为服务器节点。该服务器节点可以与用户终端集群中的每个用户终端进行数据交互。
其中,如图1所示的用户终端集群中的每个用户终端均可以包括:智能手机、平板电脑、桌上型电脑等具有业务数据访问功能的智能终端。可以理解的是,本申请实施例可以在图1所示的用户终端集群的多个用户终端中选择一个用户终端作为与该服务器节点(节点100a)相关联的目标用户对应的用户终端。例如,本申请实施例中,可以将用户终端集群中的用户终端3000a作为目标用户对应的用户终端。
应当理解,目标用户需要对原始数据进行变更时,可以通过用户终端3000a向节点100a发送数据变更请求。此时,该节点100a可以获取到目标用户针对原始数据的数据变更请求。其中,该原始数据为业务合约所对应的业务数据库中的数据。应当理解,该业务合约可以是存储与第一分布式应用相关联的第一业务逻辑以及与第二分布式应用相关联的第二业务逻辑的智能合约。其中,智能合约可以理解为运行在分布式账本(即区块链)上预置规则、具有状态、条件响应的,可封装、验证、执行分布式节点复杂行为,完成信息交换、价值转移和资产管理的计算机程序。应当理解,该业务合约可以用于维护第一应用逻辑和第二应用逻辑。可以理解的是,本申请实施例中的业务合约是由用户终端与区块链节点共同参与的智能合约,每个区块链节点(比如,节点100a)均可以触发并执行业务合约,即均可以为业务合约提供运行环境。应当理解,业务数据库可以是用于存储与业务合约相关联的业务数据的数据库。比如,该业务数据库可以是区块链数据库。可以理解的是,该节点100a在获取到数据变更请求时,需要鉴定该目标用户是否具有对原始数据进行变更的权限。
进一步地,该节点100a可以根据该数据变更请求对该目标用户进行鉴权。应当理解,该数据变更请求中可以包括该目标用户的区块链地址。其中,该目标用户的区块链地址可以是对该目标用户的公钥进行运算得到的。可以理解的是,该节点100a可以根据目标用户的区块链地址对目标用户进行鉴权,若鉴权成功,则确定目标用户具备对原始数据进行变更的权限,且准许目标用户对对原始数据进行变更;若鉴权失败,则确定目标用户不具备对原始数据进行变更的权限,且不准许目标用户对对原始数据进行变更。
进一步地,在鉴权成功时,则该节点100a可以确定目标用户具备对原始数据进行变更的权限,并获取业务数据库中的原始数据。应当理解,该节点100a可以调用该业务合约,基于该业务合约中的第一业务逻辑,确定与该业务合约相关联的第一分布式应用。其中,该第一应用逻辑可以是具有写操作功能的一段代码。可以理解的是,第一分布式应用可以是具有写操作功能的分布式应用。其中,写操作可以包括变更操作(比如,对原始数据进行变更)以及写入(比如,将业务数据写入业务数据库)操作,等等。进一步地,该节点100a可以通过该第一分布式应用对该原始数据进行变更,得到变更后的原始数据。应当理解,该节点100a在调用上述业务合约之后,就可以使用该第一分布式应用对应的业务(比如,对该原始数据进行变更)。
进一步地,该节点100a可以将变更后的原始数据作为目标数据,将该目标数据写入与该业务合约相关联的区块链。应当理解,该节点100a可以根据该目标用户的私钥,确定该目标数据对应的签名信息。应当理解,该节点100a可以将该目标数据、该目标数据对应的签名信息以及该私钥对应的公钥上传至区块链网络,以使该区块链网络根据该公钥对该目标数据进行验签。此时,若验签通过,则表示目标数据在上传过程中没有被篡改,该节点100a可以将包含该目标数据的数据变更区块添加至与该业务合约相关联的区块链。
进一步地,该节点100a可以通过与该业务合约相关联的第二分布式应用读取该区块链上的该目标数据,将该目标数据输出至该目标用户对应的用户终端3000a。应当理解,该节点100a可以调用业务合约,基于该业务合约中的第二应用逻辑,确定与该业务合约相关联的第二分布式应用。其中,该第二应用逻辑可以是具有读操作功能的一段代码。其中,该第二分布式应用可以是具有读操作功能的分布式应用。其中,读操作可以包括读取操作(比如,读取目标数据)、查看操作(见证操作),等等。进一步地,该节点100a可以通过第二分布式应用读取该区块链上的该目标数据,并将目标数据对应的数据格式转换为可视化数据(比如,可以在用户终端3000a上直接显示,且目标用户可以直接查看的目标数据)。应该理解,该节点100a可以将该目标数据输出至该目标用户对应的用户终端3000a。可以理解的是,目标用户可以查看用户终端3000a上的目标数据,并向节点100a发送针对目标数据的接收成功信息,该接收成功信息中可以包含目标数据的查看结果,便于该节点100a及时查看该接收成功信息。
为便于理解,进一步地,请参见图2,是本申请实施例提供的一种进行数据处理的场景示意图。如图2所示,本申请实施例中,节点A可以为服务器节点,该服务器节点可以是上述图1所示区块链节点系统中的节点100a。用户终端C可以为与该服务器节点相关联的目标用户B对应的用户终端,该用户终端可以为上述图1所对应的用户终端集群中的用户终端3000a。
应当理解,当目标用户B需要对原始数据10a进行变更时,可以向节点A发送一个数据变更请求,其中,该原始数据10a可以是业务合约对应的业务数据库中的数据。应当理解,该业务合约可以是存储与第一分布式应用相关联的第一业务逻辑以及与第二分布式应用相关联的第二业务逻辑的智能合约。此时,该节点A可以获取到目标用户B针对原始数据10a的数据变更请求,该数据变更请求用于请求对原始数据10a进行变更。比如,数据变更请求可以是变更目标用户的历史业务数据(比如,原始数据10a)。应当理解,当节点A对原始数据10a进行变更之前,需要鉴定目标用户B是否具有变更原始数据10a的权限,在确定目标用户B鉴权成功后,对原始数据10a进行变更。可以理解的是,节点A可以根据数据变更请求中的区块链地址,确定目标用户B是否是对该原始数据10a进行变更的授权用户,从而达到对目标用户B进行鉴权的目的。也就是说,若是确定目标用户B是授权用户,则鉴权成功,且确定该目标用户B可以对原始数据10a进行变更;若是确定目标用户B不是授权用户,则鉴权失败,且确定该目标用户B无法对原始数据10a进行变更。可以理解的是,在鉴权成功时,节点A可以确定目标用户B具备对原始数据10a进行变更的权限,并获取业务数据库(比如,区块链数据库)中的原始数据10a(比如,历史业务数据),进一步对原始数据10a进行变更。
进一步地,该节点A可以调用与该业务合约相关联的第一分布式应用,通过该第一分布式应用对该原始数据10a进行变更。应当理解,若是节点A需要使用第一分布式应用对应的业务(比如,对历史业务数据进行更新)时,需要调用业务合约,进而使用第一分布式应用对应的业务。应当理解,该节点A可以调用该业务合约,基于该业务合约中的第一业务逻辑,确定与该业务合约相关联的第一分布式应用。其中,该第一应用逻辑可以是具有写操作功能的一段代码。可以理解的是,第一分布式应用可以是具有写操作功能的分布式应用。其中,写操作可以包括变更操作(比如,对历史业务数据进行变更)以及写入(比如,将变更业务数据写入业务数据库)操作,等等。进一步地,节点A可以通过该第一分布式应用对该原始数据10a进行变更,得到变更后的原始数据(即目标数据10b,比如,变更业务数据)。
可以理解的是,图2所示的区块链1可以为上述图1中区块链网络所对应的区块链,且该区块链1可以是与该业务合约相关联的区块链,该区块链1可以为节点A所对应区块链网络中每个节点均共享的一条相同的区块链,每个节点均可以在该条区块链1中获取该区块链所存储的信息。其中,该区块链1中包括区块10a、区块10b、…、区块10n以及数据变更区块,该区块10a可以称之为该区块链1的创世区块。可以理解的是,该区块链1中的数据变更区块中可以包括上述目标数据10b。比如,目标数据10b可以是变更业务数据,更新业务合约对应的业务,等等。
其中,该节点A可以将该目标数据10b写入与该业务合约相关联的区块链1。换言之,该节点A可以从该区块链1中获取具有最大生成时间戳的区块10n。应当理解,该节点A可以根据该目标用户B的私钥,确定该目标数据10b对应的签名信息,将该目标数据、该目标数据对应的签名信息以及该私钥对应的公钥上传至区块链网络,以使该区块链网络根据该公钥对该目标数据进行验签。进一步地,若验签通过,该节点A可以根据该目标数据10b,生成待写入该区块链1中的数据变更区块。此时,该节点A将包含该目标数据10b的数据变更广播至该区块链网络中的所有区块链节点(比如,用于进行共识处理的共识节点),在确定区块链节点共识通过时,可以将该数据变更区块添加至上述区块链1中,也就是将该数据变更区块作为区块10n的下一区块。
可以理解的是,节点A在将将该目标数据10b写入与该业务合约相关联的区块链1之后,可以通过与该业务合约相关联的第二分布式应用读取该区块链1上的该目标数据10b,将该目标数据10b输出至该目标用户对应的用户终端C。应当理解,节点A可以调用业务合约,基于该业务合约中的第二应用逻辑,确定与该业务合约相关联的第二分布式应用。其中,该第二应用逻辑可以是具有读操作功能的一段代码。其中,该第二分布式应用可以是具有读操作功能的分布式应用。其中,读操作可以包括读取操作(比如,读取目标数据)、查看操作(即见证操作),等等。此时,该节点A可以通过第二分布式应用从区块链1上的数据变更区块中读取该目标数据10b,并将该目标数据10b(比如,可视化数据)输出至该目标用户B对应的用户终端C。可以理解的是,目标用户B可以查看用户终端C上的目标数据10b,从而确定该目标数据10b与数据变更请求对应的业务需求一致,并向节点A发送针对目标数据10b的接收成功信息,便于该节点A及时查看上述接收成功信息。
由此可见,在本申请实施例中,该服务器节点可以针对目标用户的数据变更请求,对目标用户进行鉴权,可以增加用户变更数据的安全性;同时,该服务器节点通过第一分布式应用对原始数据进行变更之后,可以得到目标数据,此时,将目标数据写入区块链,并通过第二分布式应用读取区块链上的目标数据,从而确保了数据读取的可靠性。
其中,该服务器节点通过调用业务合约,对原始数据进行变更得到目标数据,并将读取到的目标数据输出至用户终端的具体实现方式可以参见下述图3-图9所对应的实施例。
进一步地,请参见图3,是本申请实施例提供的一种数据处理方法的流程示意图。如图3所示,该方法可以包括:
S101,获取目标用户针对原始数据的数据变更请求。
具体地,该原始数据为业务合约所对应的业务数据库中的数据。当目标用户(如上述图2所对应实施例中的目标用户B)需要对业务数据库中的数据(比如,原始数据)进行变更时,可以向服务器节点发送一个数据变更请求。应当理解,该业务数据库可以是业务合约对应的数据库。其中,业务合约可以是存储与第一分布式应用相关联的第一业务逻辑以及与第二分布式应用相关联的第二业务逻辑的智能合约。其中,智能合约可以理解为运行在分布式账本(即区块链)上预置规则、具有状态、条件响应的,可封装、验证、执行分布式节点复杂行为,完成信息交换、价值转移和资产管理的计算机程序。可以理解的是,本申请实施例中的业务合约是由用户终端与服务器节点共同参与的智能合约,该服务器节点可以触发并执行业务合约,即均可以为业务合约提供运行环境。应当理解,该服务器节点可以为具有调用业务合约(即运行第一分布式应用和第二分布式应用)功能的节点。
为便于理解,请参见图4,是本申请实施例提供的一种业务合约的示意图。如图4所示,该业务合约40中可以包括与第一分布式应用A相关联的第一业务逻辑4a,与第一分布式应用B相关联的第二业务逻辑4b,以及无关联业务逻辑4c(即该业务合约40中除了第一业务逻辑4a与第二业务逻辑4b之外的业务逻辑)。其中,该第一业务逻辑4a可以是具有第一分布式应用A对应的业务功能(即写操作功能)的一段代码。其中,第二业务逻辑4b可以是具有第二分布式应用B对应的业务功能(即读操作功能)的一段代码。其中,该无关联业务逻辑4c可以是与第一分布式应用A对应的业务功能和第二分布式应用B对应的业务功能均无关的一段代码。可以理解的是,该服务器节点可以通过调用该业务合约40,基于该业务合约40中的第一业务逻辑4a,使用该第一分布式应用A对应的业务功能(比如,对原始数据进行变更)。可以理解的是,该服务器节点可以通过调用该业务合约40,基于该业务合约40中的第二业务逻辑4b,使用该第二分布式应用B对应的业务功能(比如,读取区块链上的目标数据)。
其中,本申请实施例中的服务器节点可以为上述图2所对应的节点A,该节点A也可以为上述图1所对应的节点100a。此时,该服务器节点可以获取到该目标用户针对原始数据所发送的数据变更请求,并需要鉴定该目标用户是否具有对原始数据进行变更的权限,即执行下述步骤S102。
S102,根据该数据变更请求对该目标用户进行鉴权。
具体地,该数据变更请求中可以包括目标用户对应的区块链地址,该区块链地址可以通过对目标用户的公钥进行计算得到。应当理解,该服务器节点在对目标用户进行鉴权时,可以先获取与该原始数据相关联的区块链地址信息。其中,该区块链地址信息包含用于对该原始数据进行变更的授权用户的访问地址信息。应当理解,一个授权用户可以对应一个访问地址信息,且每个授权用户对应的访问地址信息均不相同。其中,该区块链地址信息可以存储有授权用户与访问地址信息之间的映射关系。其中,访问地址信息可以为授权用户对应的区块链地址。比如,可以通过键值对的形式将授权用户与访问地址信息存储在区块链地址信息中,即用户1对应访问地址信息1,用户2对应访问地址信息2,用户3对应访问地址信息3,等等。
进一步地,该服务器节点可以在该区块链地址信息中查找与该区块链地址相匹配的访问地址信息。应当理解,该服务器节点可以对该区块链地址信息中的所有访问地址信息进行遍历,查找与该区块链地址相匹配的访问地址信息。例如,该区块链地址信息中可以包括用户1的访问地址信息1,用户2的访问地址信息2,…,用户n的访问地址信息n,上述服务器节点可以从该区块链地址信息中的访问地址信息(比如,访问地址信息1、访问地址信息2,…,访问地址信息n)中查找与目标用户对应的区块链地址相匹配的访问地址信息,从而鉴定该目标用户是否具备对原始数据进行变更的权限。
进一步地,若该服务器节点可以在该区块链地址信息中查找到存在与该区块链地址相匹配的访问地址信息,则鉴权成功。应当理解,当该区块链地址信息存在与该目标用户对应的区块链地址相匹配的访问地址信息时,则该服务器节点可以在该区块链地址信息中查找到存在与该区块链地址相匹配的访问地址信息时,即鉴权成功,表明了该目标用户具备对改原始数据进行变更的权限。此时,该服务器节点可以从业务数据库中获取原始数据,并对该原始数据进行变更。
可以理解的是,若该服务器节点在该区块链地址信息中查找到不存在与该区块链地址相匹配的访问地址信息,则鉴权失败。应当理解,当该区块链地址信息中不存在与该目标用户对应的区块链地址相匹配的访问地址信息时,则该服务器节点在该区块链地址信息中查找到不存在与该区块链地址相匹配的访问地址信息时,即鉴权失败,表明了该目标用户不具备对改原始数据进行变更的权限,从而无法变更原始数据。
可以理解的是,在鉴权失败时,该服务器节点可以确定该目标用户不具备对该原始数据进行变更的权限。进一步地,该服务器节点可以向该目标用户发送针对该数据变更请求对应的失败提示信息。比如,该失败提示信息可以是“数据变更请求失败!”。
为便于理解,请参见图5,是本申请实施例提供的一种对目标用户进行鉴权的示意图。如图5所示,区块链地址信息50中可以包括所有授权用户的访问地址信息,即授权用户1的访问地址信息1,授权用户2的访问地址信息2,…,授权用户n的访问地址信息n。上述服务器节点可以对该区块链地址信息50中的所有访问地址信息(比如,访问地址信息1,访问地址信息2,…,以及访问地址信息n)进行遍历,从而查找到与目标用户对应的区块链地址a相匹配的访问地址信息2,此时,该区块链地址a与访问地址信息2相同。换言之,该服务器节点查找到与区块链地址a相匹配的访问地址信息2之后,则鉴权成功,且确定该目标用户(即授权用户2)具备变更原始数据的权限。可以理解的是,上述服务器节点对该区块链地址信息50中的所有访问地址信息(比如,访问地址信息1,访问地址信息2,…,以及访问地址信息n)进行遍历,未查找到与区块链地址a相匹配的访问地址信息,即所有访问地址信息中不存在与区块链地址a相同的访问地址信息,则鉴权失败,且确定该目标用户不具备变更原始数据的权限。
S103,在鉴权成功时,调用与该业务合约相关联的第一分布式应用,通过该第一分布式应用对该原始数据进行变更。
具体地,该业务合约中存储有与第一分布式应用相关联的第一业务逻辑。应当理解,在鉴权成功时,该服务器节点可以确定该目标用户具备对该原始数据进行变更的权限,并准许目标用户对原始数据进行变更。可以理解的是,该服务器节点在使用第一分布式应用对该原始数据进行变更之前,需要调用该业务合约,基于该业务合约中的第一业务逻辑,确定与该业务合约相关联的第一分布式应用。其中,该第一应用逻辑可以是具有写操作功能的一段代码。可以理解的是,第一分布式应用可以是具有写操作功能的分布式应用。其中,写操作可以包括变更操作(比如,对原始数据进行变更)以及写入(比如,将业务数据写入业务数据库)操作,等等。
进一步地,该服务器节点可以通过该第一分布式应用对该原始数据进行变更,得到变更后的原始数据。应当理解,该服务器节点可以通过使用过该第一分布式应用对应的业务(比如,变更操作),对原始数据进行变更,从而得到变更后的原始数据。
S104,将变更后的原始数据作为目标数据,将该目标数据写入与该业务合约相关联的区块链。
具体地,该服务器节点可以将变更后的原始数据确定为目标数据(即待上链的数据),并获取该目标用户的私钥以及私钥对应的公钥。此时,该服务器节点可以根据该目标用户的私钥,确定该目标数据对应的签名信息。应当理解,该服务器节点可以通过哈希算法对该目标数据进行哈希运算,得到该目标数据对应的第一哈希值(即第一数字摘要),并通过目标用户的私钥对第一哈希值进行加密,将加密后的第一哈希值作为该目标数据对应的签名信息。应当理解,该服务器节点可以通过数字签名算法对第一哈希值进行运算,得到该目标数据对应的签名信息。其中,该数字签名算法可以包括但不限于:RSA(一种签名算法)、DSA(一种签名算法)、ECDSA(一种签名算法),等等。
进一步地,该服务器节点可以将该目标数据、该目标数据对应的签名信息以及该私钥对应的公钥上传至区块链网络,以使该区块链网络根据该公钥对该目标数据进行验签。应当理解,该区块链网络可以通过目标用户的公钥对目标数据对应的签名信息进行解密,得到第二哈希值(即第二数字摘要);若第一哈希值与第二哈希值相同,则表示目标数据在上传过程中没有被篡改,则验签通过;若第一哈希值与第二哈希值不相同,则表示目标数据在上传过程中可能存在篡改,则验签不通过。
进一步地,若验签通过,则该服务器节点可以将包含该目标数据的数据变更区块添加至与该业务合约相关联的区块链。具体地,若验签通过,则该服务器节点可以将该目标数据打包成待验证区块,将该待验证区块发送给该区块链网络中的共识节点进行共识。其中,该待验证区块可以是没有通过区块链网络中的共识节点进行共识的区块。
进一步地,服务节点可以获取该区块链网络中的共识节点所返回的共识确认信息。应当理解,服务节点将该待验证区块发送给该区块链网络中的共识节点进行共识之后,若共识节点对该待验证区块验证通过,则该共识节点可以返回给服务节点共识确认信息,此时,该服务器节点可以获取到该区块链网络中的共识节点所返回的共识确认信息。其中,一个共识节点可以对应一个共识确认信息。
进一步地,若服务器节点统计到该共识确认信息的总数量大于该共识节点的共识阈值,则确定完成共识,且将验证通过的待验证区块确定为数据变更区块,将该数据变更区块添加至与该业务合约相关联的区块链。比如,若共识节点的数量为A,服务节点统计到该共识确认信息的总数量为B,该共识节点的共识阈值为0.8A,此时,若是该共识确认信息的总数量B大于0.8A,则确认完成共识。
为便于理解,请参见图6,是本申请实施例提供的一种数据变更区块生成的示意图。如图6所示,在生成区块链中的数据变更区块时,区块链对应的区块链节点在接收到目标数据时,可以对目标数据进行校验(比如,可以是对目标数据对应的签名信息进行验签),完成校验后(比如,目标数据验签通过),将目标数据存储至内存池中,并更新其用于记录目标数据的哈希树;之后,将更新时间戳更新为接收到目标数据的时间,并尝试不同的随机数,多次进行特征值计算,并使得计算得到的特征值可以满足下述公式(1):
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET,(1)
其中,SHA266为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为目标数据的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
可以理解的是,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到待验证区块。随后,服务器节点根据区块链网络中其他节点的节点标识,将待验证区块分别发送给其所在的区块链网络中的其他节点(比如,共识节点),由其他节点对待验证区块进行校验(比如,该区块链网络中的共识节点对待验证区块进行共识),并在完成校验后得到数据变更区块,将数据变更区块添加至其存储的业务合约相关联的区块链(如上述图2所对应实施例中的区块链1)中。
比如,如图2所示,该服务器节点可以将变更后的原始数据确定为目标数据10b,并将该目标数据10b写入区块链1.
应当理解,图2所示的区块链1可以为上述图1中区块链网络所对应的区块链,且该区块链1可以是与该业务合约相关联的区块链,该区块链1可以为节点A所对应区块链网络中每个节点均共享的一条相同的区块链,每个节点均可以在该条区块链1中获取该区块链所存储的信息。其中,该区块链1中包括区块10a、区块10b、…、区块10n以及数据变更区块,该区块10a可以称之为该区块链1的创世区块。可以理解的是,该区块链1中的数据变更区块中可以包括上述目标数据10b。比如,目标数据10b可以是变更业务数据,更新业务合约对应的业务,等等。
其中,该节点A可以将该目标数据10b写入与该业务合约相关联的区块链1。换言之,该节点A可以从该区块链1中获取具有最大生成时间戳的区块10n。应当理解,该节点A可以根据该目标用户B的私钥,确定该目标数据10b对应的签名信息,将该目标数据、该目标数据对应的签名信息以及该私钥对应的公钥上传至区块链网络,以使该区块链网络根据该公钥对该目标数据进行验签。进一步地,若验签通过,该节点A可以根据该目标数据10b,生成待写入该区块链1中的数据变更区块。此时,该节点A将包含该目标数据10b的数据变更广播至该区块链网络中的所有区块链节点(比如,用于进行共识处理的共识节点),在确定区块链节点共识通过时,可以将该数据变更区块添加至上述区块链1中,也就是将该数据变更区块作为区块10n的下一区块。其中,本申请实施例将该目标数据写入与该业务合约相关联的区块链中,可以保证该目标数据的真实性,防止他人恶意篡改。
S105,通过与该业务合约相关联的第二分布式应用读取该区块链上的该目标数据,将该目标数据输出至该目标用户对应的用户终端。
具体地,该业务合约中存储有与第二分布式应用相关联的第二业务逻辑。应当理解,该服务器节点可以调用业务合约,基于该业务合约中的第一业务逻辑,确定与该业务合约相关联的第二分布式应用。应当理解,该第二应用逻辑可以是具有读操作功能的一段代码。其中,该第二分布式应用可以是具有读操作功能的分布式应用。其中,读操作可以包括读取操作(比如,读取目标数据)、查看操作(即见证操作),等等。此时,该服务器节点可以通过第二分布式应用从区块链上的数据变更区块中读取该目标数据,并将该目标数据(比如,可视化数据)输出至该目标用户对应的用户终端。其中,在本申请实施例中,该用户终端可以为上述图2所对应的用户终端C,该用户终端C也可以为上述图1所对应的用户终端3000a。应当理解,目标用户可以查看用户终端上的目标数据,从而确定该目标数据与数据变更请求对应的业务需求一致,并向该服务器节点发送针对目标数据的接收成功信息。
在本申请实施例中,该服务器节点可以针对目标用户的数据变更请求,对目标用户进行鉴权,可以增加用户变更数据的安全性;同时,该服务器节点通过第一分布式应用对原始数据进行变更之后,可以得到目标数据,此时,将目标数据写入区块链,并通过第二分布式应用读取区块链上的目标数据,从而确保了数据读取的可靠性。
进一步地,请参见图7,是本申请实施例提供的一种数据处理方法的流程示意图。如图7所示,该方法可以包括:
S201,获取目标用户针对原始数据的数据变更请求。
其中,该原始数据为业务合约所对应的业务数据库中的数据。
具体地,该业务合约可以是存储与第一分布式应用相关联的第一业务逻辑以及与第二分布式应用相关联的第二业务逻辑的智能合约。应当理解,业务数据库可以是用于存储与业务合约相关联的业务数据的数据库。
其中,本申请实施例中的服务器节点可以为上述图2所对应的节点A,该节点A也可以为上述图1所对应的节点100a。该服务器节点可以具有调用业务合约(即运行第一分布式应用和第二分布式应用)功能的节点。
S202,根据该数据变更请求对该目标用户进行鉴权。
具体地,服务器节点可以获取与该原始数据相关联的区块链地址信息。其中,该区块链地址信息包含用于对该原始数据进行变更的授权用户的访问地址信息。进一步地,服务器节点可以在该区块链地址信息中查找与该区块链地址相匹配的访问地址信息。此时,若服务器节点在该区块链地址信息中查找到存在与该区块链地址相匹配的访问地址信息,则鉴权成功。此时,若服务器节点在该区块链地址信息中查找到不存在与该区块链地址相匹配的访问地址信息,则鉴权失败。
S203,在鉴权成功时,调用与该业务合约相关联的第一分布式应用,通过该第一分布式应用对该原始数据进行变更。
其中,该业务合约中存储有与第一分布式应用相关联的第一业务逻辑。
具体地,在鉴权成功时,该服务器节点可以确定该目标用户具备对该原始数据进行变更的权限。进一步地,该服务器节点可以调用该业务合约,基于该业务合约中的第一业务逻辑,确定与该业务合约相关联的第一分布式应用。进一步地,该服务器节点可以该第一分布式应用对该原始数据进行变更,得到变更后的原始数据。
S204,将变更后的原始数据作为目标数据,将该目标数据写入与该业务合约相关联的区块链。
具体地,该服务器节点可以将变更后的原始数据确定为目标数据。进一步地,该服务器节点可以根据该目标用户的私钥,确定该目标数据对应的签名信息。进一步地,该服务器节点可以将该目标数据、该目标数据对应的签名信息以及该私钥对应的公钥上传至区块链网络,以使该区块链网络根据该公钥对该目标数据进行验签。进一步地,若验签通过,则该服务器节点可以将包含该目标数据的数据变更区块添加至与该业务合约相关联的区块链。
其中,该步骤S201-步骤S204的具体实施方式可参见上述图3所对应实施例中对步骤S101-步骤S104的描述,这里将不再赘述。
S205,获取该目标数据对应的第一哈希值,确定该第一哈希值所属的认证路径下的第一根哈希值。
具体地,该服务器节点可以通过哈希算法对该目标数据进行哈希运算,得到该目标数据对应的第一哈希值,从而确定该第一哈希值所属的认证路径下的第一根哈希值。应当理解,区块链中的每个区块(比如,数据变更区块)都具有唯一确定的根哈希值,因此,该服务器节点可以根据第一根哈希值确定数据变更区块。
为便于理解,请参见图8,是本申请实施例提供的一种第一根哈希值的示意图。如图8所示,根哈希值G是通过将哈希值C和哈希值F合并所得到的,其中,哈希值C是通过将哈希值A和哈希值B合并所得到的,哈希值F是通过将哈希值D和哈希值E合并所得到的。应当理解,哈希值A、哈希值B、哈希值D以及哈希值E均可以是业务数据(比如,目标数据)对应的哈希值。其中,本申请实施例中目标数据对应的第一哈希值可以是哈希值A、哈希值B、哈希值D以及哈希值E中的任意一个哈希值。应当理解,哈希值A、哈希值B、哈希值D以及哈希值E中的任意一个哈希值都具有唯一所属的认证路径。比如,该哈希值A可以是目标数据对应的第一哈希值,即哈希值A(即第一哈希值)所属的认证路径可以是哈希值A-哈希值C-根哈希值G,从而可以确定根哈希值G是第一根哈希值。
S206,从该区块链中查找与该第一根哈希值相匹配的第二根哈希值,将该第二根哈希值所属的区块作为与该目标数据相关联的数据变更区块。
具体地,该服务器节点可以获取该区块链中每个区块对应的根哈希值信息。进一步地,该服务器节点可以在该根哈希值信息查找与该第一根哈希值相匹配的根哈希值信息。进一步地,该服务器节点可以将查找到与该第一根哈希值相匹配的根哈希值信息作为第二根哈希值,则将该第二根哈希值对应的区块作为与该目标数据相关联的数据变更区块。
为便于理解,请参见图9,是本申请实施例提供的一种确定数据变更区块的示意图。如图9所示,区块链A可以是与业务合约相关联的区块链,区块链A中可以包括区块10a、区块10b、…、区块10n。其中,区块10a中所包含的根哈希值信息为根哈希值a,区块10b中所包含的根哈希值信息为根哈希值b,…,区块10n中所包含的根哈希值信息为根哈希值n。应当理解,根哈希值信息B中可以包括区块链A中每个区块中所包含的根哈希值信息(比如,根哈希值a,根哈希值b,…,根哈希值n)。可以理解的是,该服务器节点可以对该根哈希值信息B中的所有根哈希值信息进行遍历,查找与该第一根哈希值相匹配的根哈希值信息,进而确定根哈希值b与该第一根哈希值相匹配,并将根哈希值b作为第二根哈希值。应当理解,该服务器节点可以将根哈希值b(即第二根哈希值)所属的区块10b作为与该目标数据相关联的数据变更区块。
S207,根据该业务合约中的第二业务逻辑,确定与该业务合约相关联的第二分布式应用。
具体地,该服务器节点可以调用业务合约,基于该业务合约中的第二业务逻辑,确定与该业务合约相关联的第二分布式应用。其中,该第二应用逻辑可以是具有读操作功能的一段代码。其中,该第二分布式应用可以是具有读操作功能的分布式应用。其中,读操作可以包括读取操作(比如,读取目标数据)、查看操作(即见证操作),等等。
S208,通过该第二分布式应用从该数据变更区块中读取该目标数据,将该目标数据输出至该目标用户对应的用户终端。
具体地,该服务器节点可以通过该第二分布式应用从该数据变更区块中读取该目标数据,将该目标数据输出至该目标用户对应的用户终端。可以理解的是,目标用户可以查看用户终端上的目标数据,从而确定该目标数据与数据变更请求对应的业务需求一致,并向服务器节点发送针对目标数据的接收成功信息,便于该服务器节点及时查看上述接收成功信息。
在本申请实施例中,该服务器节点可以针对目标用户的数据变更请求,对目标用户进行鉴权,可以增加用户变更数据的安全性;同时,该服务器节点通过第一分布式应用对原始数据进行变更之后,可以得到目标数据,此时,将目标数据写入区块链,并通过第二分布式应用读取区块链上的目标数据,从而确保了数据读取的可靠性。
进一步地,请参见图10,是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置可以是运行于节点设备中的一个计算机程序(包括程序代码),例如,该数据处理装置为一个应用软件;该数据处理装置可以用于执行本申请实施例提供的方法中的相应步骤。如图10所示,该数据处理装置1可以运行于服务器节点,该服务器节点可以为上述图2所对应实施例中的节点A。该数据处理装置1可以包括:获取模块10、鉴权模块20、确定模块30、信息发送模块40、变更模块50、写入模块60以及输出模块70。
该获取模块10,用于获取目标用户针对原始数据的数据变更请求;该原始数据为业务合约所对应的业务数据库中的数据。
该鉴权模块20,用于根据该数据变更请求对该目标用户进行鉴权。
其中,该数据变更请求包含该目标用户对应的区块链地址;
该鉴权模块20包括:获取单元201、第一查找单元202、第一鉴权单元203以及第二鉴权单元204。
该获取单元201,用于获取与该原始数据相关联的区块链地址信息;该区块链地址信息包含用于对该原始数据进行变更的授权用户的访问地址信息;
该第一查找单元202,用于在该区块链地址信息中查找与该区块链地址相匹配的访问地址信息;
该第一鉴权单元203,用于若在该区块链地址信息中查找到存在与该区块链地址相匹配的访问地址信息,则鉴权成功;
该第二鉴权单元204,用于若在该区块链地址信息中查找到不存在与该区块链地址相匹配的访问地址信息,则鉴权失败。
其中,该获取单元201、该第一查找单元202、该第一鉴权单元203以及该第二鉴权单元204的具体实现方式可以参见上述图3所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
该变更模块50,用于在鉴权成功时,调用与该业务合约相关联的第一分布式应用,通过该第一分布式应用对该原始数据进行变更。
其中,该业务合约中存储有与第一分布式应用相关联的第一业务逻辑;
该变更模块50包括:第一确定单元501、第二确定单元502以及变更单元503。
该第一确定单元501,用于在鉴权成功时,确定该目标用户具备对该原始数据进行变更的权限;
该第二确定单元502,用于调用该业务合约,基于该业务合约中的第一业务逻辑,确定与该业务合约相关联的第一分布式应用;
该变更单元503,用于通过该第一分布式应用对该原始数据进行变更,得到变更后的原始数据。
其中,该第一确定单元501、该第二确定单元502以及该变更单元503的具体实现方式可以参见上述图3所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
该写入模块60,用于将变更后的原始数据作为目标数据,将该目标数据写入与该业务合约相关联的区块链。
其中,该写入模块60包括:第三确定单元601、第四确定单元602、上传单元603以及添加单元604。
该第三确定单元601,用于将变更后的原始数据确定为目标数据;
该第四确定单元602,用于根据该目标用户的私钥,确定该目标数据对应的签名信息;
该上传单元603,用于将该目标数据、该目标数据对应的签名信息以及该私钥对应的公钥上传至区块链网络,以使该区块链网络根据该公钥对该目标数据进行验签;
该添加单元604,用于若验签通过,则将包含该目标数据的数据变更区块添加至与该业务合约相关联的区块链。
其中,该第三确定单元601、该第四确定单元602、该上传单元603以及该添加单元604的具体实现方式可以参见上述图3所对应实施例中对步骤S104的描述,这里将不再继续进行赘述。
该输出模块70,用于通过与该业务合约相关联的第二分布式应用读取该区块链上的该目标数据,将该目标数据输出至该目标用户对应的用户终端。
其中,该业务合约中存储有与第二分布式应用相关联的第二业务逻辑;
该输出模块70包括:第五确定单元701、第二查找单元702、第六确定单元703以及输出单元704。
该第五确定单元701,用于获取该目标数据对应的第一哈希值,确定该第一哈希值所属的认证路径下的第一根哈希值。
该第二查找单元702,用于从该区块链中查找与该第一根哈希值相匹配的第二根哈希值,将该第二根哈希值所属的区块作为与该目标数据相关联的数据变更区块。
其中,该第二查找单元702包括:获取子单元7021、查找子单元7022以及匹配子单元7023。
该获取子单元7021,用于获取该区块链中每个区块对应的根哈希值信息;
该查找子单元7022,用于在该根哈希值信息查找与该第一根哈希值相匹配的根哈希值信息;
该匹配子单元7023,用于将查找到与该第一根哈希值相匹配的根哈希值信息作为第二根哈希值,则将该第二根哈希值对应的区块作为与该目标数据相关联的数据变更区块。
其中,该获取子单元7021、该查找子单元7022以及该匹配子单元7023的具体实现方式可以参见上述图7所对应实施例中对步骤S206的描述,这里将不再继续进行赘述。
该第六确定单元703,用于根据该业务合约中的第二业务逻辑,确定与该业务合约相关联的第二分布式应用;
该输出单元704,用于通过该第二分布式应用从该数据变更区块中读取该目标数据,将该目标数据输出至该目标用户对应的用户终端。
其中,该第五确定单元701、该第二查找单元702、该第六确定单元703以及该输出单元704的具体实现方式可以参见上述图7所对应实施例中对步骤S205-S208的描述,这里将不再继续进行赘述。
其中,该数据处理装置1还包括:
该确定模块30,用于在鉴权失败时,确定该目标用户不具备对该原始数据进行变更的权限;
该信息发送模块40,用于向该目标用户发送针对该数据变更请求对应的失败提示信息。
其中,该获取模块10、该鉴权模块20、该确定模块30、该信息发送模块40、该变更模块50、该写入模块60以及该输出模块70的具体实现方式可以参见上述图3所对应实施例中对步骤S101-步骤S105的描述和/或上述图7所对应实施例中对步骤S201-步骤S208的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图11,是本申请实施例提供的一种节点设备的结构示意图。如图11所示,该节点设备1000可以为上述图2对应实施例中的节点A,该节点设备1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),网络接口1004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选地还可以是至少一个位于远离前述处理器1001的存储装置。如图11所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图11所示的节点设备1000中,网络接口1004主要用于进行网络通信;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取目标用户针对原始数据的数据变更请求;该原始数据为业务合约所对应的业务数据库中的数据;
根据该数据变更请求对该目标用户进行鉴权;
在鉴权成功时,调用与该业务合约相关联的第一分布式应用,通过该第一分布式应用对该原始数据进行变更;
将变更后的原始数据作为目标数据,将该目标数据写入与该业务合约相关联的区块链;
通过与该业务合约相关联的第二分布式应用读取该区块链上的该目标数据,将该目标数据输出至该目标用户对应的用户终端。
应当理解,本申请实施例中所描述的节点设备1000可执行前文图3和图7所对应实施例中对该数据处理方法的描述,也可执行前文图10所对应实施例中对该数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且该计算机可读存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且该计算机程序包括程序指令,当该处理器执行该程序指令时,能够执行前文图3或者图7所对应实施例中对该数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取目标用户针对原始数据的数据变更请求;所述原始数据为业务合约所对应的业务数据库中的数据;
根据所述数据变更请求对所述目标用户进行鉴权;
在鉴权成功时,调用与所述业务合约相关联的第一分布式应用,通过所述第一分布式应用对所述原始数据进行变更;
将变更后的原始数据作为目标数据,将所述目标数据写入与所述业务合约相关联的区块链;
通过与所述业务合约相关联的第二分布式应用读取所述区块链上的所述目标数据,将所述目标数据输出至所述目标用户对应的用户终端。
2.根据权利要求1所述的方法,其特征在于,所述数据变更请求包含所述目标用户对应的区块链地址;
所述根据所述数据变更请求对所述目标用户进行鉴权,包括:
获取与所述原始数据相关联的区块链地址信息;所述区块链地址信息包含用于对所述原始数据进行变更的授权用户的访问地址信息;
在所述区块链地址信息中查找与所述区块链地址相匹配的访问地址信息;
若在所述区块链地址信息中查找到存在与所述区块链地址相匹配的访问地址信息,则鉴权成功;
若在所述区块链地址信息中查找到不存在与所述区块链地址相匹配的访问地址信息,则鉴权失败。
3.根据权利要求2所述的方法,其特征在于,所述业务合约中存储有与第一分布式应用相关联的第一业务逻辑;
所述在鉴权成功时,调用与所述业务合约相关联的第一分布式应用,通过所述第一分布式应用对所述原始数据进行变更,包括:
在鉴权成功时,确定所述目标用户具备对所述原始数据进行变更的权限;
调用所述业务合约,基于所述业务合约中的第一业务逻辑,确定与所述业务合约相关联的第一分布式应用;
通过所述第一分布式应用对所述原始数据进行变更,得到变更后的原始数据。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在鉴权失败时,确定所述目标用户不具备对所述原始数据进行变更的权限;
向所述目标用户发送针对所述数据变更请求对应的失败提示信息。
5.根据权利要求1所述的方法,其特征在于,所述将变更后的原始数据作为目标数据,将所述目标数据写入与所述业务合约相关联的区块链,包括:
将变更后的原始数据确定为目标数据;
根据所述目标用户的私钥,确定所述目标数据对应的签名信息;
将所述目标数据、所述目标数据对应的签名信息以及所述私钥对应的公钥上传至区块链网络,以使所述区块链网络根据所述公钥对所述目标数据进行验签;
若验签通过,则将包含所述目标数据的数据变更区块添加至与所述业务合约相关联的区块链。
6.根据权利要求5所述的方法,其特征在于,所述业务合约中存储有与第二分布式应用相关联的第二业务逻辑;
所述通过与所述业务合约相关联的第二分布式应用读取所述区块链上的所述目标数据,将所述目标数据输出至所述目标用户对应的用户终端,包括:
获取所述目标数据对应的第一哈希值,确定所述第一哈希值所属的认证路径下的第一根哈希值;
从所述区块链中查找与所述第一根哈希值相匹配的第二根哈希值,将所述第二根哈希值所属的区块作为与所述目标数据相关联的数据变更区块;
根据所述业务合约中的第二业务逻辑,确定与所述业务合约相关联的第二分布式应用;
通过所述第二分布式应用从所述数据变更区块中读取所述目标数据,将所述目标数据输出至所述目标用户对应的用户终端。
7.根据权利要求6所述的方法,其特征在于,所述从所述区块链中查找与所述第一根哈希值相匹配的第二根哈希值,将所述第二根哈希值所属的区块作为与所述目标数据相关联的数据变更区块,包括:
获取所述区块链中每个区块对应的根哈希值信息;
在所述根哈希值信息查找与所述第一根哈希值相匹配的根哈希值信息;
将查找到与所述第一根哈希值相匹配的根哈希值信息作为第二根哈希值,则将所述第二根哈希值对应的区块作为与所述目标数据相关联的数据变更区块。
8.一种数据处理装置,其特征在于,包括:
获取模块,用于获取目标用户针对原始数据的数据变更请求;所述原始数据为业务合约所对应的业务数据库中的数据;
鉴权模块,用于根据所述数据变更请求对所述目标用户进行鉴权;
变更模块,用于在鉴权成功时,调用与所述业务合约相关联的第一分布式应用,通过所述第一分布式应用对所述原始数据进行变更;
写入模块,用于将变更后的原始数据作为目标数据,将所述目标数据写入与所述业务合约相关联的区块链;
输出模块,用于通过与所述业务合约相关联的第二分布式应用读取所述区块链上的所述目标数据,将所述目标数据输出至所述目标用户对应的用户终端。
9.一种节点设备,其特征在于,包括:处理器、存储器、网络接口;
所述处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010120591.1A CN111367923A (zh) | 2020-02-26 | 2020-02-26 | 数据处理方法、装置、节点设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010120591.1A CN111367923A (zh) | 2020-02-26 | 2020-02-26 | 数据处理方法、装置、节点设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111367923A true CN111367923A (zh) | 2020-07-03 |
Family
ID=71211193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010120591.1A Pending CN111367923A (zh) | 2020-02-26 | 2020-02-26 | 数据处理方法、装置、节点设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111367923A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112908442A (zh) * | 2021-03-05 | 2021-06-04 | 京东数科海益信息科技有限公司 | 医疗数据共享方法、装置、设备及计算机可读介质 |
CN112948866A (zh) * | 2021-03-29 | 2021-06-11 | iCALC控股有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN113094426A (zh) * | 2021-03-10 | 2021-07-09 | 贾晓丰 | 基于区块链的交互数据的访问方法及装置 |
CN113222344A (zh) * | 2021-04-15 | 2021-08-06 | 卓尔智联(武汉)研究院有限公司 | 一种区块链数据处理方法、装置及存储介质 |
-
2020
- 2020-02-26 CN CN202010120591.1A patent/CN111367923A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112908442A (zh) * | 2021-03-05 | 2021-06-04 | 京东数科海益信息科技有限公司 | 医疗数据共享方法、装置、设备及计算机可读介质 |
CN113094426A (zh) * | 2021-03-10 | 2021-07-09 | 贾晓丰 | 基于区块链的交互数据的访问方法及装置 |
CN113094426B (zh) * | 2021-03-10 | 2024-01-09 | 贾晓丰 | 基于区块链的交互数据的访问方法及装置 |
CN112948866A (zh) * | 2021-03-29 | 2021-06-11 | iCALC控股有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN113222344A (zh) * | 2021-04-15 | 2021-08-06 | 卓尔智联(武汉)研究院有限公司 | 一种区块链数据处理方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112446785B (zh) | 跨链交易方法、系统、装置、设备和存储介质 | |
CN112926982B (zh) | 一种交易数据处理方法、装置、设备及存储介质 | |
US10073916B2 (en) | Method and system for facilitating terminal identifiers | |
CN111367923A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN110263579B (zh) | 一种数据处理方法、系统及相关设备 | |
CN112600678B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
WO2022134951A1 (zh) | 一种数据同步方法、装置、设备以及计算机可读存储介质 | |
US11108545B2 (en) | Creating a blockchain account and verifying blockchain transactions | |
CN109861996B (zh) | 基于区块链的关系证明方法、装置、设备及存储介质 | |
CN111881481B (zh) | 基于区块链的医疗数据处理方法、装置、设备及存储介质 | |
CN111523890A (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN110995446B (zh) | 证据验证方法、装置、服务器及存储介质 | |
CN112367164B (zh) | 业务请求处理方法、装置、计算机设备和存储介质 | |
CN113094334B (zh) | 基于分布式存储的数字服务方法、装置、设备及储存介质 | |
CN111488372A (zh) | 一种数据处理方法、设备及存储介质 | |
CN111899019A (zh) | 一种黑名单多方交叉验证和共享的方法及系统 | |
CN111339141A (zh) | 一种数据传输的方法、区块链节点设备以及介质 | |
CN110941672A (zh) | 户籍管理方法、装置、设备以及存储介质 | |
CN111597537A (zh) | 基于区块链网络的证书签发方法、相关设备及介质 | |
CN111324914B (zh) | 文件的传输方法、装置、服务器、设备和介质 | |
CN113051622A (zh) | 索引构建方法、装置、设备和存储介质 | |
CN110933155B (zh) | 一种新型区块链网络 | |
CN117034370B (zh) | 基于区块链网络的数据处理方法及相关设备 | |
CN116996331B (zh) | 基于区块链的数据处理方法、装置、设备以及介质 | |
CN117370463A (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 |