CN117131079A - 一种基于区块链的数据处理方法、装置、设备及介质 - Google Patents
一种基于区块链的数据处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117131079A CN117131079A CN202210546128.2A CN202210546128A CN117131079A CN 117131079 A CN117131079 A CN 117131079A CN 202210546128 A CN202210546128 A CN 202210546128A CN 117131079 A CN117131079 A CN 117131079A
- Authority
- CN
- China
- Prior art keywords
- service
- node
- query
- lease
- interface
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000000034 method Methods 0.000 claims description 37
- 238000012795 verification Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 20
- 238000001514 detection method Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 10
- 238000002955 isolation Methods 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000013473 artificial intelligence Methods 0.000 abstract 1
- 238000007726 management method Methods 0.000 description 167
- 238000010586 diagram Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000011835 investigation Methods 0.000 description 6
- 238000012856 packing Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012797 qualification Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010141 design making Methods 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0853—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/105—Multiple levels of security
-
- 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
-
- 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
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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/3297—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 time stamps, e.g. generation of time stamps
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种基于区块链的数据处理方法、装置、设备及介质,适用于云技术、人工智能、智慧交通、辅助驾驶等各种场景,包括:第一共识节点基于状态数据发布服务,获取票据业务合约的接口配置信息;接口配置信息用于指示票据业务合约所对应的N个查询接口,以及每个查询接口分别对应的租约等级;从节点缓存中获取N个查询接口分别对应的业务状态数据;N个查询接口包括目标查询接口;若基于目标查询接口对应的租约等级,检测到目标查询接口对应的业务状态数据属于无效数据,则从核心链中重新获取业务更新数据,将业务更新数据存储至节点缓存中。采用本申请实施例,可以降低对核心链的访问次数,以至于减轻了节点运行负担。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于区块链的数据处理方法、装置、设备及介质。
背景技术
目前区块链网络中的区块链节点在执行交易业务时,往往需要生成与交易业务相关联的业务查询请求,以从该区块链网络中的区块链中实时获取该业务查询请求对应的业务结果数据。比如,若该区块链节点执行的交易业务为针对某一企业对象的开票业务,那么一旦开票数量递增,该区块链节点将会在某一时间段内,频繁从区块链上拉取该企业对象的企业状态(例如,“无风险状态”)作为业务结果数据,这样将增加该区块链节点对区块链的访问次数,从而造成节点运行负担过重。
发明内容
本申请实施例提供一种基于区块链的数据处理方法、装置、设备及介质,可以降低对核心链的访问次数,以至于减轻了节点运行负担。
本申请实施例一方面提供一种基于区块链的数据处理方法,包括:
核心共识网络中的第一共识节点基于状态数据发布服务,获取部署在第一共识节点上的票据业务合约的接口配置信息;接口配置信息是业务合约管理设备基于核心共识网络的核心链上的租约管理合约,为票据业务合约所配置的;接口配置信息用于指示票据业务合约所对应的N个查询接口,以及每个查询接口分别对应的租约等级;N为正整数;
从与票据业务合约相关联的节点缓存中,获取N个查询接口分别对应的业务状态数据;N个查询接口包括目标查询接口;
若基于目标查询接口对应的租约等级,检测到目标查询接口对应的业务状态数据属于无效数据,则从核心链中,重新获取用于对目标查询接口的业务状态数据进行更新的业务更新数据,将业务更新数据存储至节点缓存中;业务更新数据用于在接收到与票据业务合约相关联的业务查询请求时,从节点缓存中返回至业务网络中的业务节点;业务网络与核心共识网络属于同一区块链网络。
本申请实施例一方面提供一种基于区块链的数据处理装置,包括:
配置信息获取模块,用于核心共识网络中的第一共识节点基于状态数据发布服务,获取部署在第一共识节点上的票据业务合约的接口配置信息;接口配置信息是业务合约管理设备基于核心共识网络的核心链上的租约管理合约,为票据业务合约所配置的;接口配置信息用于指示票据业务合约所对应的N个查询接口,以及每个查询接口分别对应的租约等级;N为正整数;
状态数据获取模块,用于从与票据业务合约相关联的节点缓存中,获取N个查询接口分别对应的业务状态数据;N个查询接口包括目标查询接口;
状态数据更新取模块,用于若基于目标查询接口对应的租约等级,检测到目标查询接口对应的业务状态数据属于无效数据,则从核心链中,重新获取用于对目标查询接口的业务状态数据进行更新的业务更新数据,将业务更新数据存储至节点缓存中;业务更新数据用于在接收到与票据业务合约相关联的业务查询请求时,从节点缓存中返回至业务网络中的业务节点;业务网络与核心共识网络属于同一区块链网络。
其中,租约管理合约用于指示租约等级与缓存时长的映射关系;一个租约等级对应一个缓存时长;
该装置还包括:
目标时长确定模块,用于从租约管理合约中,获取与目标查询接口对应的租约等级具有映射关系的缓存时长,将获取到的缓存时长确定为目标查询接口对应的目标缓存时长;
有效时间戳确定模块,用于从节点缓存中确定目标查询接口对应的业务状态数据的存储时间戳,基于存储时间戳以及目标缓存时长,确定目标查询接口对应的业务状态数据的有效截止时间戳;
无效数据确定模块,用于若检测时间戳达到有效截止时间戳,则确定目标查询接口对应的业务状态数据属于无效数据。
其中,该装置还包括:
租约合约获取模块,用于在获取到具有系统管理权限的系统管理设备发送的管理合约上链请求时,获取管理合约上链请求所携带的租约管理合约;
打包模块,用于对租约管理合约进行打包处理,得到待写入核心链的待验证区块;
区块广播模块,用于将待验证区块广播至核心共识网络中的第二共识节点,以使第二共识节点对获取到的待验证区块进行共识,得到用于返回至第一共识节点的共识结果;
租约合约上链模块,用于若共识结果中存在超过共识阈值的共识结果指示共识成功,则确定区块链网络中的区块链节点达成共识,且确定待验证区块中的租约管理合约成功部署在核心链上;待验证区块的生成时间戳用于更新核心链上的最大生成时间戳。
其中,该租约合约获取模块包括:
上链请求获取单元,用于获取具有系统管理权限的系统管理设备发送的管理合约上链请求;管理合约上链请求包括待签名信息以及对象签名信息;对象签名信息是基于系统管理对象的对象私钥,对待签名信息进行签名处理后所得到的;待签名信息包括由系统管理对象所确定的租约管理合约;
验签单元,用于从核心链上获取系统管理对象对应的对象公钥,基于对象公钥对对象签名信息进行验签,得到验签结果;
租约合约获取单元,用于若验签结果指示验证成功,则确定管理合约上链请求为合法请求,且从管理合约上链请求中获取租约管理合约。
其中,第一共识节点所部署的票据业务合约的数量为M个,一个票据业务合约对应业务网络中的一个交易业务类型;M为正整数;区块链网络包括路由代理网络;路由代理网络用于对业务网络与核心共识网络进行网络隔离;
该装置还包括:
目标合约确定模块,用于在获取到路由代理网络中的代理节点转发的业务查询请求时,基于缓存查询服务以及业务查询请求所指示的交易业务类型,从M个票据业务合约中确定目标业务合约;业务查询请求是业务网络中的业务节点基于业务辅助信息所生成的;目标业务合约的一个查询接口对应一个查询类型;
业务接口确定模块,用于从目标业务合约中获取与业务辅助信息的查询类型相匹配的查询接口,将获取到的查询接口确定为业务查询接口;
结果数据确定模块,用于基于业务查询请求的请求类型、业务查询接口以及节点缓存,确定业务辅助信息对应的业务结果数据;
结果数据返回模块,用于将业务结果数据通过代理节点返回至业务节点。
其中,业务查询请求的请求类型包括第一请求类型;第一请求类型用于指示业务查询请求为首次业务请求;
该结果数据确定模块包括:
数据查询单元,用于从节点缓存中获取与目标业务合约相关联的数据哈希表,基于业务查询接口,对数据哈希表进行数据查询;
第一结果确定单元,用于若在数据哈希表中未查询到业务辅助信息对应的业务结果数据,则从核心链上获取业务辅助信息对应的业务结果数据。
其中,该结果数据确定模块还包括:
租约等级查询单元,用于若在数据哈希表中未查询到业务查询接口的接口名称,则在从核心链上获取业务辅助信息对应的业务结果数据之后,基于部署在第一共识节点上的缓存查询服务所关联的等级查询标识,从核心链上获取业务查询接口所对应的租约等级;
子哈希表生成单元,用于在节点缓存中,基于业务查询接口的接口名称以及业务查询接口所对应的租约等级,生成用于存储与业务查询接口相关联的子哈希表;
结果数据存储单元,用于将业务结果数据添加至子哈希表,且将添加的时间戳作为业务结果数据对应的存储时间戳添加至子哈希表;子哈希表中的业务结果数据为业务查询接口的业务状态数据。
其中,该租约等级查询单元包括:
标识获取子单元,用于若在数据哈希表中未查询到业务查询接口的接口名称,则在从核心链上获取业务辅助信息对应的业务结果数据之后,获取部署在第一共识节点上的缓存查询服务所关联的等级查询标识;
配置区块获取子单元,用于基于等级查询标识,从核心链上获取与票据业务合约相关联的合约配置区块;合约配置区块为第一共识节点在获取到业务合约管理设备针对票据业务合约发送的业务配置信息时,对业务配置信息进行上链后所得到的;
第一等级获取子单元,用于若合约配置区块所包括的业务配置信息中存在业务查询接口对应的租约等级,则从业务配置信息中获取业务查询接口对应的租约等级。
其中,该租约等级查询单元还包括:
查询结果确定子单元,用于若合约配置区块所包括的业务配置信息中不存在业务查询接口对应的租约等级,则在核心链中查询业务合约管理设备所配置的全局租约等级,得到查询结果;
第二等级获取子单元,用于基于查询结果,确定业务查询接口对应的租约等级。
其中,该第二等级获取子单元还用于:
若查询结果指示核心链中存在全局租约等级,则将全局租约等级作为业务查询接口对应的租约等级;
若查询结果指示核心链中不存在全局租约等级,则将无租约等级确定为业务查询接口对应的租约等级;无租约等级对应的缓存时长为零。
其中,业务查询请求的请求类型包括第二请求类型;第二请求类型用于指示业务查询请求为非首次业务请求;
该结果数据确定模块包括:
接口查询单元,用于从节点缓存中获取与目标业务合约相关联的数据哈希表,在数据哈希表中查询业务查询接口对应的接口名称;
第二结果确定单元,用于若业务查询接口的接口名称与目标查询接口的接口名称一致,则从节点缓存中获取业务辅助信息对应的业务结果数据;业务结果数据为业务更新数据。
其中,该结果返回模块具体用于:
将业务结果数据发送至代理节点,以使代理节点基于业务网络的系统公钥,对业务结果数据进行加密处理,得到用于返回至业务节点的系统加密数据信息;业务节点用于在获取到系统加密数据信息时,基于业务网络的系统私钥,对系统加密数据信息进行解密处理,得到业务结果数据。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行本申请实施例中的方法。
在本申请实施例中,核心共识网络中的第一共识节点可以基于状态数据发布服务,获取部署在该第一共识节点的票据业务合约的接口配置信息。这里的接口配置信息可以用于指示票据业务合约对应的N个查询接口以及每个查询接口对应的租约等级,这意味着本申请实施例可以通过为票据业务合约的查询接口配置对应的租约等级,来灵活限制每个查询接口对应的业务状态数据在节点缓存中是否属于无效数据,这样一旦第一共识节点在基于某一查询接口(即目标查询接口)对应的租约等级,在节点缓存中检测到该查询接口对应的业务状态数据达到有效时长时,需要从核心链上重新拉取用于对属于无效数据的业务状态数据进行更新的业务更新数据,这样使得第一共识节点在接收到业务网络中的业务节点发送的业务查询请求时,可以直接从节点缓存中访问,而无需从核心链上实时拉取数据,从而降低了第一共识节点对核心链的访问次数,以至于减轻了节点运行负担。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链网络分层结构的示意图;
图2是本申请实施例提供的一种对节点缓存进行数据检测更新的场景示意图;
图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图4是本申请实施例提供的一种将租约管理合约上链的场景示意图;
图5是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图6是本申请实施例提供的一种票据业务合约实现数据发布租约接口的框架示意图;
图7是本申请实施例提供的一种税务区块链系统下的系统架构图;
图8是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,本申请实施例提出了一种用于自适配缓存的区块链数据的智能合约框架,其中,区块链(blockchain或block chain)可以是借由密码学串接并保护内容的串连文字记录(又称区块),即包括一系列按照产生的先后时间顺序相互接续的区块,新区块一旦加入到该区块链中就不会再被移除,其中,每一个区块可以包括了前一个区块的加密散列(即父区块哈希值)、生成时间戳以及交易数据(通常用默克尔树(Merkle tree)算法计算的散列值表示),这样的设计使得区块内容具有难以篡改的特性。用区块链技术所串接的分布式账本能让两方有效纪录交易,且可永久查验此交易。其中,本申请实施例可以将核心共识网络中用于存储完整区块数据的区块链称之为核心链。
其中,智能合约是一种运行在区块链节点上的应用或程序,通常情况下,它们为一组具有特定规则的数字化协议,且该协议能够被强制执行。这些规则由计算机源代码预先定义,所有网络节点会复制和执行这些计算机源码。本申请实施例可以将部署在核心共识网络中的共识节点,且用于执行与交易业务相关联的智能合约称之为票据业务合约,将用于对租约等级对应的数量,以及租约等级对应的缓存时长进行管理的智能合约称之为租约管理合约。
请参见图1,图1是本申请实施例提供的一种区块链网络分层结构的示意图。本申请实施例中的区块链网络分层结构可以为图1所示的区块链网络1W,该区块链网络1W对应的完整区块链业务体系可以由图1所示的业务网络、核心共识网络以及路由代理网络所组成。其中,这里的路由代理网络可以用于对业务网络和核心共识网络进行网络隔离。
应当理解,本申请实施例可以将处于路由代理网络中的区块链节点称之为代理节点,图1所示的路由代理网络中的代理节点的节点数量可以为一个或者多个,在此不做限定。本申请实施例可以以图1所示的代理节点10D为例,该代理节点10D可以用于在业务网络与核心共识网络之间进行数据传输。该代理节点10D可以是独立的一个物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器,在此不做限定。该代理节点10D可以将点对点(Peer To Peer,简称P2P)网络进行网络分层,以形成“业务网络—核心共识网络”这样的分层结构,进而能够提高核心链上数据的保密性和安全性。
其中,图1所示的业务网络(又称见证网络)对应的区块链节点系统(即第一区块链节点系统)中可以包括一个或者多个区块链节点,这里将不对第一区块链节点系统中的节点数量进行限制。比如,第一区块链节点系统具体可以包括节点110a、节点110b、节点110c、…、节点110n。应当理解,本申请实施例可以将处于业务网络中的区块链节点称之为业务节点,该业务节点不需要参与记账共识,主要用于执行交易业务,以得到与该交易业务相关联的交易数据。其中,这里的业务节点可以为包含完整的区块链数据库的全量节点,也可以为能够存储区块链数据库中的部分数据的轻量节点,这里将不对其进行限定。为了减少业务节点的存储空间的浪费,本申请实施例中的业务节点可以以轻量节点(SimplifiedPayment Verification,简称SPV)为例,该业务节点不需要存储完整的交易数据,而是通过代理节点10D,从图1所示的核心共识网络的核心链中,获得区块头数据和部分授权可见的区块数据(例如,与业务节点自身相关联的交易数据)。
其中,图1所示的核心共识网络对应的区块链节点系统(即第二区块链节点系统)中也可以包括一个或者多个区块链节点,这里将不对第二区块链节点系统中的节点数量进行限制。比如,第二区块链节点系统具体可以包括节点120a、节点120b、节点120c、…、节点120m。应当理解,本申请实施例可以将处于该核心共识网络中的区块链节点称之为共识节点(又称记账节点)。其中,该核心共识网络中的每个共识节点均可以部署有与交易业务相关联的票据业务合约。比如,若图1所示的区块链网络1W对应的区块链节点系统为应用在税务业务中的税务区块链系统,则这里的交易业务可以是指业务网络中的业务节点所执行的税务业务,具体可以包括开票业务、征信业务、进出亏业务、企业资质业务以及退税业务等。
应当理解,本申请实施例可以将代理节点、业务节点以及共识节点统称为区块链网络1W中的区块链节点。其中,该区块链节点可以为接入该区块链网络1W中的服务器,也可以为接入该区块链网络1W中的终端设备,这里对区块链节点的具体形式不做限定。可以理解的是,图1所示的业务网络和核心共识网络可以处于不同的网络环境,例如,通常来说,业务节点部署在处于公网的业务网络中,而运行区块链共识协议的共识节点则部署在私有的核心共识网络中,二者可以通过路由边界进行交互。
其中,核心共识网络中的核心链可以包括具有系统管理权限的系统管理对象通过系统管理设备所确定的租约管理合约,该租约管理合约可以用于对租约等级对应的数量,以及租约等级对应的缓存时长进行管理。比如,该租约管理合约设定的租约等级可以包括无租约等级、第一租约等级、第二租约等级、第三租约等级以及第四租约等级等。其中,这里的租约等级可以用于指示存储在节点缓存中的业务状态数据的缓存时长。比如,这里的无租约等级对应的缓存时长可以为零;第一租约等级对应的缓存时长可以为缓存时长1(例如,10秒);第二租约等级对应的缓存时长可以为缓存时长2(例如,30秒);第三租约等级对应的缓存时长可以为缓存时长3(例如,5分钟);第四租约等级对应的缓存时长可以为缓存时长4(例如,30分钟)。基于此,与票据业务合约相关联的合约管理对象(即具有对查询接口进行租约等级配置的权限的对象)可以使用业务合约管理设备,根据核心链上的租约管理合约,为部署在共识节点上的票据业务合约的多个查询接口,分别配置与票据业务合约相关联的实际业务需求相匹配的租约等级。
可以理解的是,这里的系统管理设备以及业务合约管理设备均可以为与核心共识网络中的共识节点具有网络连接关系的终端设备,这里的网络连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他方式,本申请在此不做限制。其中,这里的终端设备可以包括:智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等具有区块链数据处理功能的智能终端。
为便于理解,本申请实施例可以在图1所示的核心共识网络中任意选择一个共识节点作为第一共识节点,将核心共识网络中除第一共识节点之外的其他共识节点作为第二共识节点。例如,本申请实施例可以将核心共识网络中的节点120a作为第一共识节点,该节点120a所部署的票据业务合约可以是指与业务网络中的交易业务相关联的智能合约,该票据业务合约的数量可以为多个,具体可以包括票据业务合约A、票据业务合约B、票据业务合约C、票据业务合约D以及票据业务合约E。其中,一个票据业务合约可以对应一个交易业务类型。比如,这里的票据业务合约A可以对应开票业务类型;票据业务合约B可以对应征信业务类型;票据业务合约C可以对应进出亏业务类型;票据业务合约D可以对应企业资质业务类型;票据业务合约E可以对应退税业务类型。
应当理解,节点120a可以基于状态数据发布服务,获取部署在节点120a的票据业务合约的接口配置信息。其中,这里的接口配置信息可以为业务合约管理设备基于核心链上的租约管理合约,为票据业务合约所配置的,且该接口配置信息可以用于指示票据业务合约所对应的N个查询接口以及每个查询接口分别对应的租约等级。其中,N为正整数。其中,一个查询接口对应一个查询类型。这里的查询类型可以包括第一查询类型(例如,按对象标识查询的类型)、第二查询类型(例如,按票据标识查询的类型)、第三查询类型(例如,按交易时间戳查询的类型)等。
进一步地,节点120a可以从与票据业务合约相关联的节点缓存中,获取这N个查询接口分别对应的业务状态数据。其中,这里的业务状态数据可以包括业务对象的虚拟资产、业务对象的风险状态、用于执行票据业务的票据模板以及电子票据的票据状态。例如,这里的虚拟资产可以是指游戏场景下的某一用户所持有的游戏币、游戏钻石等,也可以是指税务场景下的电子票据等,这里将不对其进行一一举例。这里的业务对象的风险状态可以用于指示某一业务对象(例如,企业对象)是否具备开票权限。这里的票据状态可以包括“报销状态”、“流转状态”以及“作废状态”等。
此时,该节点120a可以基于每个查询接口分别对应的租约等级,检测节点缓存中的业务状态数据是否属于无效数据。其中,本申请实施例在对节点缓存中的业务状态数据进行检测时,可以将N个查询接口中的某一个查询接口称之为目标查询接口。可以理解的是,若节点120a基于目标查询接口对应的租约等级,检测到目标查询接口对应的业务状态数据属于无效数据,则节点120a需要从核心链中重新获取用于对目标查询接口的业务状态数据进行更新的业务更新数据,进而将该业务更新数据存储至节点缓存中。
由此可见,由于本申请实施例中的第一共识节点(例如,节点120a)所部署的票据业务合约能够实现数据发布租约接口,这意味着第一共识节点可以根据为票据业务合约的查询接口所配置的租约等级,来灵活限制业务状态数据在节点缓存中的有效时长,这样一旦第一共识节点在基于某一查询接口对应的租约等级,在节点缓存中检测到该查询接口对应的业务状态数据达到有效时长时,需要从核心链上重新拉取数据,这样使得第一共识节点在接收到业务网络中的业务节点发送的业务查询请求时,可以直接从节点缓存中访问,而无需从核心链上实时拉取数据,从而降低了第一共识节点对核心链的访问次数,以至于减轻了节点运行负担。
为便于理解,进一步地,请参见图2,图2是本申请实施例提供的一种对节点缓存进行数据检测更新的场景示意图。如图2所示,节点200a可以为部署有X个票据业务合约的第一共识节点,X为正整数。例如,该节点200a可以为上述图1所对应实施例中的核心共识网络中的任意一个共识节点,例如,节点120a。为便于理解,本申请实施例中的节点200a所部署的票据业务合约可以以2个为例,具体可以包括图2所示的合约2A以及合约2B。其中,合约2A所对应的交易业务类型可以为开票业务类型,即合约2A可以用于执行开票业务,合约2B所对应的交易业务类型可以为征信业务类型,即合约2B可以用于执行征信业务。
应当理解,节点200a可以基于自身提供的状态数据发布服务,获取部署在节点200a上的票据业务合约的接口配置信息。其中,这里的接口配置信息是用于对业务网络中的交易业务进行管理的业务合约管理设备,基于核心共识网络的核心链(例如,图2所示的核心链2q)上的租约管理合约,为票据业务合约所配置的。进一步地,节点200a可以从与票据业务合约相关联的节点缓存(例如,图2所示的节点缓存2000h)中,获取每个查询接口分别对应的业务状态数据。若节点200a基于某一查询接口(即目标查询接口)对应的租约等级,检测到目标查询接口对应的业务状态数据属于无效数据,则从核心链2q中,重新获取用于对该目标查询接口的业务状态数据进行更新的业务更新数据,进而可以将业务更新数据存储至节点缓存2000h中。
比如,对于合约2A而言,该节点200a所获取到的接口配置信息可以为图2所示的接口配置信息X1,该接口配置信息X1可以指示为合约2A所配置的N1个查询接口以及每个查询接口分别对应的租约等级,N1为正整数。如图2所示,查询接口J11对应的租约等级可以为租约等级L11(例如,10秒);查询接口J12对应的租约等级可以为租约等级L12(例如,30分钟);…;查询接口J1n对应的租约等级可以为租约等级L1n(例如,5分钟)。进一步地,该节点200a从节点缓存2000h中所获取到的与合约2A相关联的业务状态数据可以包括:查询接口J11对应的状态数据S11、查询接口J12对应的状态数据S12、…、查询接口J1n对应的状态数据S1n。此时,节点200a可以基于每个查询接口对应的租约等级,确定每个查询接口对应的业务状态数据是否属于无效数据。
若节点200a基于查询接口J12的租约等级对应的缓存时长(例如,30分钟),检测到查询接口J12对应的状态数据S12(例如,业务对象的虚拟资产为100个游戏币)属于无效数据,则节点200a可以从核心链2q中重新获取业务对象的虚拟资产(例如,90个游戏币),进而可以将重新获取到的虚拟资产作为用于对状态数据S12进行更新的业务更新数据(例如,图2所示的更新数据S12),此时,该节点200a可以将更新数据S12存储至节点缓存2000h中。这意味着该节点200a可以每隔30分钟,及时从核心链2q中重新拉取业务对象的虚拟资产,进而对节点缓存2000h中所存储的业务对象的虚拟资产进行更新。
比如,对于合约2B而言,该节点200a所获取到的接口配置信息可以为图2所示的接口配置信息X2,该接口配置信息X2可以指示为合约2B所配置的N2个查询接口以及每个查询接口分别对应的租约等级,N2为正整数。如图2所示,查询接口J21对应的租约等级可以为租约等级L21(例如,5秒);查询接口J22对应的租约等级可以为租约等级L22(例如,10分钟);…;查询接口J2n对应的租约等级可以为租约等级L2n(例如,30秒)。进一步地,该节点200a从节点缓存2000h中所获取到的与合约2B相关联的业务状态数据可以包括:查询接口J21对应的状态数据S21、查询接口J22对应的状态数据S22、…、查询接口J2n对应的状态数据S2n。
若节点200a基于查询接口J21的租约等级(例如,5秒),检测到查询接口J21对应的状态数据S21(例如,某一电子票据的票据状态为“流转状态”)属于无效数据,则节点200a可以从核心链2q中重新获取该电子票据的票据状态(例如,“报销状态”),进而可以将重新获取到的票据状态作为用于对状态数据S21进行更新的业务更新数据(例如,图2所示的更新数据S21),此时,该节点200a可以将更新数据S21存储至节点缓存2000h中。这意味着该节点200a可以每隔5秒,及时从核心链2q中重新拉取这一电子票据的票据状态,进而对节点缓存2000h中所存储的该电子票据的票据状态进行更新。
由于节点200a可以按照每个查询接口对应的租约等级对应的缓存时长,及时从核心链2q中重新拉取用于对每个查询接口对应的业务状态数据进行更新的业务更新数据,且将业务更新数据及时存储至节点缓存中,这意味着该节点缓存2000h中一旦某一查询接口对应的业务状态数据属于无效数据,将会立刻基于核心链2q对其进行更新,这样使得该节点缓存2000h中所存储的业务数据(业务状态数据或业务更新数据)均属于有效数据。那么,当节点200a通过代理节点,接收到业务网络中的业务节点发送的与票据业务合约相关联的业务查询请求时,该节点200a可以基于缓存查询服务访问节点缓存2000h,从该节点缓存2000h中快速查找到用于返回至业务节点的业务结果数据(例如,按租约等级对应的缓存时长所更新的业务更新数据),而无需实时从核心链上拉取数据,这样可以在某一查询接口对应的业务数据被频繁访问时,降低节点200a对核心链的访问次数,以至于减轻了节点运行负担。
其中,核心共识网络中的某一共识节点(即第一共识节点)基于票据业务合约的接口配置信息所指示的每个查询接口的租约等级,对节点缓存中所存储的查询接口对应的业务状态数据进行更新的具体实现方式可以参见下述图3-图8所对应的实施例。
进一步地,请参见图3,图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。如图3所示,该方法可以由部署有票据业务合约的第一共识节点执行,该第一共识节点可以为接入至核心共识网络中的服务器,也可以为接入至该核心共识网络中的终端设备,这里对该第一共识节点的具体形式不做限定。例如,该第一共识节点可以为上述图1所示的核心共识网络中的节点120a。该方法至少可以包括以下步骤S101-步骤S103:
步骤S101,核心共识网络中的第一共识节点基于状态数据发布服务,获取部署在第一共识节点上的票据业务合约的接口配置信息。
具体地,该核心共识网络中的第一共识节点可以基于状态数据发布服务,从节点缓存中获取票据业务合约的接口配置信息。其中,接口配置信息是业务合约管理设备基于核心共识网络的核心链上的租约管理合约,为票据业务合约所配置的;该接口配置信息可以用于指示票据业务合约所对应的N个查询接口,以及每个查询接口分别对应的租约等级;N为正整数。可以理解的是,部署在第一共识节点上的票据业务合约可以为一个,也可以为多个,这里将不对票据业务合约的数量进行限定。
可以理解的是,该节点缓存中所存储的票据业务合约的接口配置信息是该第一共识节点在将业务合约管理设备发送的业务配置信息成功写入核心链之后,基于历史获取到与该票据业务合约相关联的业务查询请求,从核心链上的业务配置信息中所获取到的。这意味着若第一共识节点暂未接收到与某一查询接口(例如,查询接口1)相关联的业务查询请求,那么该节点缓存中将暂时不会存储该查询接口1的租约等级,也不会存储该查询接口1对应的业务状态数据,更加不会对该查询接口1对应的业务状态数据进行定期更新。若第一共识节点已经接收到与某一查询接口(例如,查询接口2)相关联的业务查询请求时,那么该第一共识节点在从核心链上获取到该查询接口2对应的租约等级,以及该查询接口2对应的业务状态数据时,会将其存储至节点缓存中,且后续会对查询接口2对应的业务状态数据进行定期更新。
应当理解,核心共识网络中的核心链所包括的租约管理合约是系统管理对象对应的系统管理设备所确定的,该租约管理合约可以用于指示租约等级与缓存时长的映射关系,一个租约等级可以对应一个缓存时长。该系统管理对象可以通过系统管理设备(即系统管理对象所使用的终端设备)对租约等级对应的数量,以及每个租约等级分别对应的缓存时长进行设定,以得到租约管理合约。比如,该租约管理合约设定的租约等级可以包括无租约等级、第一租约等级、第二租约等级、第三租约等级以及第四租约等级等。其中,这里的租约等级可以用于指示存储在节点缓存中的业务状态数据的缓存时长。比如,这里的无租约等级对应的缓存时长可以为零;第一租约等级对应的缓存时长可以为缓存时长1(例如,10秒);第二租约等级对应的缓存时长可以为缓存时长2(例如,30秒);第三租约等级对应的缓存时长可以为缓存时长3(例如,5分钟);第四租约等级对应的缓存时长可以为缓存时长4(例如,30分钟)。
系统管理设备可以响应系统管理对象所执行的设定操作(系统管理对象针对租约等级所执行的触发操作),基于租约管理合约,生成一个用于向核心共识网络发送的管理合约上链请求。其中,该触发操作可以包括语音、手势等非接触性操作,也可以包括点击、长按等接触性操作,这里将不对其进行限定。这里的管理合约上链请求是指用于将租约管理合约写入核心链的业务请求。其中,为了提高在系统管理设备与核心共识网络之间进行数据传输时的安全性,该系统管理设备在生成管理合约上链请求时,可以确定待签名信息。比如,该待签名信息可以包括租约管理合约、系统管理设备的设备标识、系统管理对象的对象信息(例如,对象头像标识、对象名称、对象信誉度等)。这里的对象信息是经过系统管理对象授权后所获取到的,且对象信息的获取需要遵守相关国家和地区的相关法律法规和标准。进一步地,系统管理设备可以基于系统管理对象的对象私钥,对待签名信息进行签名处理,从而可以得到对象签名信息。此时,该系统管理设备可以基于对象签名信息以及包括租约管理合约的待签名信息,生成用于向核心共识网络发送的管理合约上链请求。
当核心共识网络中的共识节点(例如,第一共识节点)获取到该管理合约上链请求时,可以获取该管理合约上链请求所携带的租约管理合约。其中,可以理解的是,当第一共识节点获取到该管理合约上链请求时,可以从核心链上获取系统管理对象对应的对象公钥,进而可以基于该对象公钥,对管理合约上链请求所携带的对象签名信息进行验签,以得到验签结果。若验签结果指示验证失败,则该第一共识节点可以确定该管理合约上链请求为非法请求,进而可以生成一个用于返回系统管理设备的上链失败通知(即用于指示上链失败的上链结果通知)。可选的,若验签结果指示验证成功,则第一共识节点可以确定该管理合约上链请求为合法请求,进而可以从该管理合约上链请求中获取租约管理合约。进一步地,该第一共识节点可以对租约管理合约进行打包处理,得到待写入核心链的待验证区块,进而可以将待验证区块广播至核心共识网络中的第二共识节点,以使第二共识节点对获取到的待验证区块进行共识,得到用于返回至第一共识节点的共识结果。若共识结果中存在超过共识阈值(例如,2/3)的共识结果指示共识成功,则可以确定区块链网络中的区块链节点达成共识,进而可以确定该待验证区块中的租约管理合约成功部署在核心链上;待验证区块的生成时间戳可以用于更新核心链上的最大生成时间戳。此时,该第一共识节点在将租约管理合约成功部署在核心链上之后,还可以生成一个用于返回系统管理设备的上链成功通知(即用于指示上链成功的上链结果通知)。
为便于理解,进一步地,请参见图4,图4是本申请实施例提供的一种将租约管理合约上链的场景示意图。如图4所示,本申请实施例中的系统管理设备400z可以为系统管理对象所使用的对象终端,该系统管理设备400z可以与核心共识网络进行数据交互。本申请实施例中的节点400a(即第一共识节点)可以为核心共识网络中的任意一个共识节点,例如,该节点400a可以为上述图1所对应实施例中的核心共识网络中的节点120a。
如图4所示,该系统管理设备400z在响应系统管理对象针对租约等级的设定操作时,可以获取该系统管理对象所确定的租约管理合约,进而可以基于该租约管理合约确定图4所示的待签名信息41k。此时,该系统管理设备400z可以基于该系统管理对象的对象私钥,对该待签名信息41k进行签名处理,得到该待签名信息41k对应的对象签名信息42k。其中,可以理解的是,该系统管理设备400z可以获取针对待签名信息41k的哈希计算规则,该哈希计算规则可以为该系统管理设备400z与核心共识网络中的其他共识节点(例如,节点400a)提前约定好的摘要算法。因此,该系统管理设备400z可以基于该哈希计算规则对该待签名信息41k进行哈希计算,以得到待签名信息41k的摘要信息(例如,摘要信息h)。其中,本申请实施例可以将系统管理设备400z确定的待签名信息41k的摘要信息h称之为第一摘要信息。进一步地,该系统管理设备400z可以基于该系统管理对象的对象私钥,对该第一摘要信息进行签名处理,从而可以得到图4所示的对象签名信息42k。
进一步地,该系统管理设备400z可以基于待签名信息41k和对象签名信息42k,生成图4所示的管理合约上链请求40Q,进而可以将该管理合约上链请求40Q发送至节点400a,以使该节点400a基于对象私钥对应的对象公钥(即系统管理对象的对象公钥),对对象签名信息42k进行验签,得到验签结果。其中,可以理解的是,节点400a可以从核心共识网络的核心链(例如,图4所示的核心链40q)中获取系统管理对象的对象公钥,进而可以基于该对象公钥对对象签名信息42k进行验签,得到待签名信息41k的第一摘要信息。与此同时,该节点400a还可以获取与系统管理设备400z相同的哈希计算规则,对待签名信息41k进行哈希计算,从而可以得到该待签名信息41k的摘要信息(例如,摘要信息H)。其中,本申请实施例可以将节点400a确定的待签名信息41k的摘要信息H称之为第二摘要信息。
此时,该节点400a可以将第一摘要信息与第二摘要信息进行比对,得到验签结果,以确定该待签名信息41k是否被篡改。可以理解的是,若第一摘要信息与第二摘要信息不相同,则该节点400a可以确定验签结果指示验证失败,此时该节点400a可以确定该系统管理设备400z为非法终端,且将接收到的管理合约上链请求40Q确定为非法请求。这时,该节点400a可以直接生成用于指示上链失败的上链结果通知(即上链失败通知,例如,图4所示的上链结果通知40T),以将该上链结果通知40T返回至系统管理设备400z。
可选的,若第一摘要信息与第二摘要信息相同,则该节点400a可以确定验签结果指示验证成功,这意味着待签名信息41k未发生篡改,且该待签名信息41k确实是由系统管理设备400z发送的,此时,该节点400a可以确定系统管理设备400z为合法终端,且将接收到的管理合约上链请求40Q确定为合法请求。可以理解的是,在节点400a确定的验签结果指示验证成功时,该节点400a可以将租约管理合约进行上链。
其中,图4所示的核心链40q可以为节点400a所属核心共识网络中每个共识节点均共享的一条相同的区块链,每个共识节点均可以在核心链40q中获取各区块所存储的信息。其中,该核心链40q中包括区块4A、区块4B、…、区块4N以及待验证区块,该区块4A可以称之为该核心链40q的创世区块。该核心链40q中的待验证区块中包含着系统管理对象所确定的租约管理合约。
其中,可以理解的是,该节点400a在成功获取到租约管理合约时,可以生成一个用于将该租约管理合约写入至核心链40q的业务交易(即合约上链交易)。进一步地,该节点400a可以从该核心链40q中获取具有最大生成时间戳的区块4N,进而可以将该合约上链交易进行打包处理,以得到待写入核心链40q的待验证区块。比如,该节点400a可以将区块4N的区块哈希值作为待验证区块的父区块哈希值,进而确定该合约上链交易的交易哈希值,基于该交易哈希值确定待验证区块的区块哈希值,此时,该节点400a可以对父区块哈希值以及区块哈希值进行打包处理,得到待验证区块。
进一步地,该节点400a可以将待验证区块广播至核心共识网络上的其他共识节点(即第二共识节点),以使第二共识节点对获取到的待验证区块进行共识,得到共识结果。若第二共识节点所返回的共识结果中存在超过共识阈值(例如,1/2或2/3)的共识结果指示共识成功,则节点400a可以确定区块链网络中的区块链节点达成共识,进而可以将该待验证区块写入上述核心链40q中,也就是将该待验证区块作为区块4N的下一区块。其中,该待验证区块的最大生成时间戳用于更新核心链40q上的最大生成时间戳。由于核心链40q的不可篡改性,这样可以有效提高租约管理合约存储的安全性。
其中,核心共识网络中的第一共识节点可以部署有票据业务合约,该票据业务合约可以用于指示业务网络中的业务节点执行相应的交易业务。可以理解的是,为了使得票据业务合约实现数据发布租约接口,本申请实施例中的合约管理对象可以针对票据业务合约执行接口配置操作,以基于核心共识网络的核心链上的租约管理合约(例如,图4所示的待验证区块中的租约管理合约),为票据业务合约的每个查询接口配置对应的租约等级,进而可以确定该票据业务合约对应的业务配置信息。其中,这里的接口配置操作可以包括语音、手势等非接触性操作,也可以包括点击、长按等接触性操作,这里将不对其进行限定。
比如,合约管理对象可以根据交易业务的实际需求,执行接口配置操作,以对与该交易业务相关联的票据业务合约的各个查询接口设置不同的租约等级,从而得到该票据业务合约的业务配置信息。可以理解的是,对于任意一个票据业务合约的多个查询接口而言,租约等级可以相同,也可以不同,这里将不对其进行限定。如图2所示,部署在第一共识节点(例如,节点200a)上的合约2A的查询接口J11对应的租约等级与查询接口J12对应的租约等级可以为同一租约等级,例如,这两个查询接口的租约等级均可以为第一租约等级。可选的,图2所示的合约2A的查询接口J11对应的租约等级与查询接口J12对应的租约等级也可以为不同的租约等级,比如,查询接口J11对应的租约等级为第一租约等级,查询接口J12对应的租约等级为第二租约等级。
可选的,该合约管理对象还可以基于租约管理合约所指示的租约等级与缓存时长之间的映射关系,选择一个租约等级(例如,第三租约等级),作为与该票据业务合约相关联的全局租约等级。这意味着若合约管理对象未对某一查询接口专门设置租约等级,则可以默认将该全局租约等级作为该查询接口的租约等级。
此时,合约管理对象对应的业务合约管理设备(即合约管理对象所使用的终端设备)可以响应该接口配置操作,将针对票据业务合约发送的业务配置信息发送至核心共识网络。当核心共识网络中的共识节点(例如,第一共识节点)接收到该业务配置信息时,可以生成包括该业务配置信息的合约配置区块,进而可以将该合约配置区块成功写入核心链,其中,第一共识节点将合约配置区块写入核心链的具体实施方式可以参见上述第一共识节点将待验证区块写入核心链的具体实施方式,这里将不对其进行限定。
步骤S102,从与票据业务合约相关联的节点缓存中,获取N个查询接口分别对应的业务状态数据。
其中,该节点缓存不仅可以存储每个查询接口对应的业务状态数据,还可以存储每个业务状态数据的存储时间戳,以便于第一共识节点确定业务状态数据是否属于无效数据。其中,N个查询接口可以包括目标查询接口。
应当理解,该第一共识节点可以从核心链上的租约管理合约中,获取与目标查询接口对应的租约等级具有映射关系的缓存时长,进而可以将获取到的缓存时长确定为目标查询接口对应的目标缓存时长。进一步地,该第一共识节点可以从节点缓存中确定目标查询接口对应的业务状态数据的存储时间戳,进而可以基于存储时间戳以及目标缓存时长,确定目标查询接口对应的业务状态数据的有效截止时间戳。若检测时间戳未达到有效截止时间戳,则该第一共识节点可以确定该目标查询接口对应的业务状态数据属于有效数据。可选的,若检测时间戳达到有效截止时间戳,则该第一共识节点可以确定目标查询接口对应的业务状态数据属于无效数据。
为便于理解,进一步地,请参见表1,表1是本申请实施例提供的一种节点缓存中所存储的数据哈希表。其中,第一共识节点所部署的票据业务合约的数量可以为M个,一个票据业务合约可以对应一个数据哈希表。其中,本申请实施例中的数据哈希表可以是以票据业务合约对应的合约名为维度的哈希表,该数据哈希表可以包括与该票据业务合约的每个查询接口分别相关联的子哈希表。其中,一个子哈希表可以存储与其相关联的查询接口的接口名称、租约等级以及业务状态数据。如表1所示,合约A可以为部署在第一共识节点上的任意一个票据业务合约,该合约A可以包括多个查询接口,为便于阐述,本申请实施例中的合约A的查询接口的数量可以以3个为例,具体可以包括查询接口J11、查询接口J12以及查询接口J13。由于第一共识节点暂未接收到与查询接口J12相关联的业务查询请求,因此表1所示的数据哈希表中暂未包括与查询接口J12相关联的子哈希表,仅包括了与查询接口J11相关联的子哈希表以及与查询接口J13相关联的子哈希表。如表1所示:
表1
其中,与查询接口J11相关联的子哈希表中可以包括查询接口J11对应的租约等级以及该查询接口J11对应的多个业务状态数据。其中,查询接口J11对应的租约等级可以为租约等级L11(例如,第四租约等级),该查询接口J11对应的业务状态数据的数量可以以3个为例,具体可以包括状态数据S111、状态数据S112以及状态数据S113。其中,状态数据S111的存储时间戳可以为时间戳1(例如,11:57);状态数据S112的存储时间戳可以为时间戳2(例如,12:03);状态数据S113的存储时间戳可以为时间戳3(例如,11:50)。如表1所示,与查询接口J13相关联的子哈希表中可以包括查询接口J13对应的租约等级以及该查询接口J13对应的多个业务状态数据。其中,查询接口J13对应的租约等级可以为租约等级L13(例如,第三租约等级),该查询接口J13对应的业务状态数据的数量可以以2个为例,具体可以包括状态数据S131以及状态数据S132。其中,状态数据S121的存储时间戳可以为时间戳4(例如,17:05);状态数据S132的存储时间戳可以为时间戳5(例如,17:04)。当然,在与合约A相关联的查询接口的数量过多时,该第一共识节点可以按照与查询接口相关联的子哈希表,将节点缓存中的数据哈希表进行拆分,从而可以在节点缓存中单独存储每个查询接口分别对应的业务状态数据,以便于后续提高查找效率。
此时,该第一共识节点可以从与合约A相关联的节点缓存中,基于上述表1所获取到的N个查询接口分别对应的业务状态数据可以包括:查询接口J11对应的业务状态数据以及查询接口J13对应的业务状态数据。该第一共识节点可以对上述表1所示的每个业务状态数据进行检测,以分别确定每个业务状态数据是否属于无效数据。
例如,若第一共识节点确定的目标查询接口为表1所示的查询接口J11,则该第一共识节点可以从租约管理合约中,获取与租约等级L11(例如,第四租约等级)具有映射关系的缓存时长(例如,30分钟),进而可以将获取到的缓存时长作为查询接口J11对应的目标缓存时长。进一步地,该第一共识节点可以从节点缓存中确定查询接口对应的每个业务状态数据的存储时间戳,进而可以基于存储时间戳以及目标缓存时长,确定每个业务状态数据的有效截止时间戳。例如,该第一共识节点可以确定状态数据S111的有效截止时间戳为12:27;状态数据S112的有效截止时间戳可以为12:33;状态数据S113的有效截止时间戳可以为12:20。若检测时间戳达到某一业务状态数据的有效截止时间戳,则该第一共识节点可以确定该业务状态数据属于无效数据。
步骤S103,若基于目标查询接口对应的租约等级,检测到目标查询接口对应的业务状态数据属于无效数据,则从核心链中,重新获取用于对目标查询接口的业务状态数据进行更新的业务更新数据,将业务更新数据存储至节点缓存中。
其中,这里的业务更新数据可以用于在接收到与票据业务合约相关联的业务查询请求时,从节点缓存中返回至业务网络中的业务节点;业务网络与核心共识网络属于同一区块链网络。
如上述表1所示,若该第一共识节点确定状态数据S111的有效截止时间戳为12:27;状态数据S112的有效截止时间戳可以为12:33;状态数据S113的有效截止时间戳可以为12:20,那么,当检测时间戳达到12:20时,该第一共识节点可以确定状态数据S113属于无效数据,此时需要从核心链中,重新获取用于对状态数据S113进行更新的业务更新数据。当检测时间戳达到12:27时,该第一共识节点可以确定状态数据S111属于无效数据,此时需要从核心链中,重新获取用于对状态数据S111进行更新的业务更新数据;当检测时间戳达到12:33时,该第一共识节点可以确定状态数据S112属于无效数据,此时需要从核心链中,重新获取用于对状态数据S112进行更新的业务更新数据。
例如,若状态数据S113指示为某一业务对象(例如,在餐馆就餐的某一对象)的票据状态为“流转状态”,则该第一共识节点可以从核心链中,重新获取该业务对象的票据状态。若该第一共识节点重新获取的业务对象的票据状态为不同于节点缓存中所存储的另一票据状态(例如,“报销状态”),则该第一共识节点可以将该报销状态作为用于对状态数据S113进行更新的业务更新数据,且将该“报销状态”存储至上述表1,且将存储至上述表1的存储时间戳添加至上述表1。当然,若该第一共识节点重新获取的业务对象的票据状态为与节点缓存中所存储的票据状态相同的票据状态(例如,仍为“流转状态”),则该第一共识节点可以基于重新获取票据状态的时间戳,直接对状态数据S113的存储时间戳进行更新。
在本申请实施例中,核心共识网络中的第一共识节点可以基于状态数据发布服务,获取部署在该第一共识节点的票据业务合约的接口配置信息。这里的接口配置信息可以用于指示票据业务合约对应的N个查询接口以及每个查询接口对应的租约等级,这意味着本申请实施例可以通过为票据业务合约的查询接口配置对应的租约等级,来灵活限制每个查询接口对应的业务状态数据在节点缓存中是否属于无效数据,这样一旦第一共识节点在基于某一查询接口(即目标查询接口)对应的租约等级,在节点缓存中检测到该查询接口对应的业务状态数据达到有效时长时,需要从核心链上重新拉取用于对属于无效数据的业务状态数据进行更新的业务更新数据,这样使得第一共识节点在接收到业务网络中的业务节点发送的业务查询请求时,可以直接从节点缓存中访问,而无需从核心链上实时拉取数据,从而降低了第一共识节点对核心链的访问次数,以至于减轻了节点运行负担。
进一步地,请参见图5,图5是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。该方法涉及业务网络中的业务节点、路由代理网络中的代理节点以及核心共识网络中的第一共识节点。这里的业务网络、路由代理网络以及核心共识网络可以属于同一区块链网络,且路由代理网络用于对业务网络和核心共识网络进行网络隔离。其中,该业务节点可以为上述图1所对应实施例中的业务网络中的任意一个业务节点,例如,节点110a;该代理节点可以为上述图1所对应实施例中的路由代理网络中的代理节点10D;该第一共识节点可以为上述图1所对应实施例中的核心共识网络中的任意一个共识节点,例如,节点120a。该方法至少可以包括以下步骤S201-步骤S209:
步骤S201,核心共识网络中的第一共识节点基于状态数据发布服务,获取部署在第一共识节点上的票据业务合约的接口配置信息。
具体地,该核心共识网络中的第一共识节点可以基于状态数据发布服务,从节点缓存中获取票据业务合约的接口配置信息。其中,接口配置信息是业务合约管理设备基于核心共识网络的核心链上的租约管理合约,为票据业务合约所配置的;该接口配置信息可以用于指示票据业务合约所对应的N个查询接口,以及每个查询接口分别对应的租约等级;N为正整数。可以理解的是,部署在第一共识节点上的票据业务合约可以为M个,这里的M为正整数。一个票据业务合约对应业务网络中的一个交易业务类型。
步骤S202,第一共识节点从与票据业务合约相关联的节点缓存中,获取N个查询接口分别对应的业务状态数据。
其中,该节点缓存不仅可以存储每个查询接口对应的业务状态数据,还可以存储每个业务状态数据的存储时间戳,以便于第一共识节点确定业务状态数据是否属于无效数据。其中,N个查询接口可以包括目标查询接口。
步骤S203,若基于目标查询接口对应的租约等级,检测到目标查询接口对应的业务状态数据属于无效数据,则第一共识节点从核心链中,重新获取用于对目标查询接口的业务状态数据进行更新的业务更新数据,将业务更新数据存储至节点缓存中。
其中,这里的业务更新数据可以用于在接收到与票据业务合约相关联的业务查询请求时,从节点缓存中返回至业务网络中的业务节点;业务网络与核心共识网络属于同一区块链网络。
其中,该步骤S201-步骤S203的具体实施方式可参见上述图3所对应实施例中对步骤S101-步骤S103的描述,这里将不再赘述。
步骤S204,业务网络中的业务节点向代理节点发送业务查询请求。
具体地,业务网络中的业务节点在执行交易业务时,可以基于业务辅助信息生成业务查询请求。比如,业务节点在执行开票业务时,可以将企业对象的对象标识作为业务辅助信息,进而可以生成用于查询企业对象的风险状态的业务查询请求。进一步地,该业务节点可以将业务查询请求发送至代理节点。
为了提高业务辅助信息在数据传输时的真实性和安全性,该业务节点可以基于业务节点的节点私钥,对业务辅助信息进行签名处理,以得到业务辅助信息对应的节点签名信息。进一步地,该业务节点可以将业务节点的节点标识、节点签名信息以及业务辅助信息,生成用于发送至代理节点的业务查询请求。
步骤S205,代理节点将业务查询请求转发至第一共识节点。
具体地,代理节点在接收到业务查询请求时,可以对业务查询请求进行权限验证,进而在权限验证结果为合法结果时,将业务查询请求转发至第一共识节点。
其中,这里的权限验证可以包括验证业务节点的节点标识是否属于非法节点列表中的节点标识、基于业务节点的节点公钥,验证业务辅助信息对应的节点签名信息是否有误等等。这里的非法节点列表可以是该代理节点所存储的黑名单列表,该非法节点列表中的非法节点标识所对应的非法节点可以包括检测到的恶意节点、被他人举报的节点,在某一时间段发送交易频率异常的节点等。可以理解的是,代理节点对业务查询请求中的节点签名信息进行验证的具体实施方式可以参见上述第一共识节点对管理合约上链请求中的对象签名信息进行验证的具体实施方式,这里将不再对其进行赘述。
步骤S206,第一共识节点基于与业务查询请求相关联的目标业务合约,确定业务查询接口。
具体地,第一共识节点在获取到业务查询请求时,可以确定该业务查询请求所指示的交易业务类型,进而可以基于缓存查询服务以及确定的交易业务类型,从部署在第一共识节点的M个票据业务合约中,确定与业务查询请求相关联的目标业务合约。比如,若业务查询请求所指示的交易业务类型为开票业务类型,则该第一共识节点需要从部署的M个票据业务合约中获取用于执行开票业务的票据业务合约,作为目标业务合约(例如,上述表1所示的合约A)。其中,目标业务合约的一个查询接口可以对应一个查询类型。进一步地,该第一共识节点可以从该目标业务合约中获取与业务辅助信息的查询类型相匹配的查询接口,进而可以将获取到的查询接口确定为业务查询接口。
步骤S207,第一共识节点基于业务查询请求的请求类型、业务查询接口以及节点缓存,确定业务结果数据。
其中,业务查询请求的请求类型可以包括第一请求类型和第二请求类型。这里的第一请求类型可以用于指示业务查询请求为首次业务请求。这里的第二请求类型为非首次业务请求。
可以理解的是,在业务查询请求的请求类型属于第一请求类型时,该第一共识节点可以从节点缓存中获取与目标业务合约相关联的数据哈希表,进而可以基于业务查询接口对该数据哈希表进行数据查询。其中,若第一共识节点在数据哈希表中未查询到业务辅助信息对应的业务结果数据,则该第一共识节点可以从核心链上获取该业务辅助信息对应的业务结果数据,进而可以将该业务结果数据存储至节点缓存的数据哈希表中。
比如,若该业务查询请求的业务辅助信息为企业对象的对象标识(例如,企业账户),且该业务查询请求用于指示第一共识节点获取企业对象的风险状态,那么,当第一共识节点获取到的业务查询接口为上述表1所示的合约A的查询接口J11,但在该查询接口J11对应的业务状态数据中未查找到企业对象的风险状态时,该第一共识节点可以基于该企业对象的对象标识,从核心链上获取该企业对象的风险状态,进而可以将该企业对象的风险状态存储至与查询接口J11相关联的子哈希表中。
可选的,若在数据哈希表中未查询到业务查询接口的接口名称,则第一共识节点在从核心链上获取业务辅助信息对应的业务结果数据之后,可以基于部署在第一共识节点上的缓存查询服务所关联的等级查询标识,从核心链上获取业务查询接口所对应的租约等级,进而在节点缓存中,可以基于业务查询接口的接口名称以及业务查询接口所对应的租约等级,生成用于存储与业务查询接口相关联的子哈希表。进一步地,该第一共识节点可以将业务结果数据添加至子哈希表,且将添加的时间戳作为业务结果数据对应的存储时间戳添加至子哈希表;其中,这里的子哈希表中的业务结果数据为业务查询接口的业务状态数据。
比如,若该业务查询请求的业务辅助信息为企业对象的企业名称,且该业务查询请求用于指示第一共识节点获取与企业对象相关联的电子票据的票据累计数量,那么,当第一共识节点获取到的业务查询接口为上述表1所示的合约A的查询接口J12时,这意味着该第一共识节点在上述表1中并未查询到该业务查询接口的接口名称。此时,第一共识节点在基于企业对象的企业名称,从核心链上获取到该企业对象的票据累计数量(例如,100个)之后,可以基于部署在第一共识节点上的缓存查询服务所关联的等级查询标识,从核心链上获取查询接口J12所对应的租约等级(例如,租约等级L12),进而可以基于该查询接口J12的接口名称、该查询接口J12所对应的租约等级,生成用于存储与查询接口J12相关联的子哈希表,进而可以将票据累计数量作为查询接口J12的业务状态数据添加至这一子哈希表中,且将添加的时间戳作为票据累计数量对应的存储时间戳添加至该子哈希表中。
其中,该第一共识节点在从核心链上获取业务查询接口所对应的租约等级时,需要获取部署在第一共识节点上的缓存查询服务所关联的等级查询标识,进而可以基于该等级查询标识,从核心链上获取与票据业务合约相关联的合约配置区块。其中,这里的合约配置区块可以为第一共识节点在获取到业务合约管理设备针对票据业务合约发送的业务配置信息时,对业务配置信息进行上链后所得到的。可以理解的是,若合约配置区块所包括的业务配置信息中存在业务查询接口对应的租约等级,则第一共识节点可以从业务配置信息中获取业务查询接口对应的租约等级。
可选的,若合约配置区块所包括的业务配置信息中不存在业务查询接口对应的租约等级,则该第一共识节点需要在核心链中查询业务合约管理设备所配置的全局租约等级,得到查询结果,进而可以基于查询结果,确定业务查询接口对应的租约等级。其中,若查询结果指示核心链中存在全局租约等级,则第一共识节点可以将全局租约等级作为该业务查询接口对应的租约等级。若查询结果指示核心链中不存在全局租约等级,则该第一共识节点可以将无租约等级确定为业务查询接口对应的租约等级;其中,无租约等级对应的缓存时长为零,即第一共识节点需要实时从核心链上获取业务查询接口对应的业务状态数据。
应当理解,在业务查询请求的请求类型属于第二请求类型时,该第一共识节点可以从节点缓存中获取与目标业务合约相关联的数据哈希表,进而可以在该数据哈希表中查询业务查询接口对应的接口名称。进一步地,若业务查询接口的接口名称与目标查询接口的接口名称一致,则第一共识节点可以直接从节点缓存中获取业务辅助信息对应的业务结果数据,其中,这里的业务结果数据可以为第一共识节点对目标查询接口的业务状态数据进行更新后的业务更新数据。
步骤S208,第一共识节点将业务结果数据返回至代理节点。
步骤S209,代理节点将业务结果数据转发至业务节点。
具体地,为了提高业务结果数据在核心共识网络与业务网络之间进行数据传输时的安全性,该代理节点在接收到第一共识节点发送的业务结果数据时,可以获取业务网络的系统公钥,进而可以基于该业务网络的系统公钥,对业务结果数据进行加密处理,以得到系统加密数据信息。进一步地,代理节点可以将该系统加密数据返回至业务节点的业务节点(即发送业务查询请求的业务节点)。业务节点在获取到系统加密数据信息时,可以基于业务网络的系统私钥,对系统加密数据信息进行解密处理,从而可以得到业务结果数据,以执行对应的交易业务。
为便于理解,进一步地,请参见图6,图6是本申请实施例提供的一种票据业务合约实现数据发布租约接口的框架示意图。如图6所示,本申请实施例中的区块链网络可以包括业务网络和核心共识网络这两个子网络,且业务网络中的业务节点与核心共识网络中的核心共识节点可以直接进行网络交互,以实现两个子网络之间的数据传输。可选的,本申请实施例中的区块链网络不仅可以包括业务网络和核心共识网络,还可以包括用于对该业务网络和核心共识网络进行网络隔离的路由代理网络。其中,该路由代理网络中的代理节点可以在业务网络和核心共识网络之间实现路由转发的功能。这里将不对区块链网络中的子网络数量进行限定。
可以理解的是,本申请实施例中的区块链网络所包括的子网络可以以业务网络和核心共识网络为例,用以阐述业务网络中的业务节点获取业务结果数据的具体实施方式。其中,业务网络中的多个业务节点可以根据自身业务需求,生成对应的业务查询请求。这里的业务查询请求可以包括图6所示的业务查询请求61Q以及业务查询请求62Q。其中,业务查询请求61Q可以为用于查询与第一共识节点所部署的某一票据业务合约(例如,合约6A)相关联的业务结果数据,业务查询请求62Q可以用于查询与第一共识节点所部署的另一票据合约(例如,合约6B)相关联的业务结果数据。
如图6所示,在票据业务合约的数量较多时,为了提高查找效率以及缓解节点存储压力,本申请实施例中的共识节点(例如,第一共识节点)所访问的节点缓存的数量可以为多个,其中,一个票据业务合约对应一个节点缓存。如图6所示,节点缓存6100H可以用于存储与合约6A相关联的数据哈希表,节点缓存6200H可以用于存储与合约6B相关联的数据哈希表。其中,该第一共识节点可以根据合约6A的接口配置信息X1所指示的查询接口对应的租约等级,按照各租约等级对应的缓存时长,定期对节点缓存6100H中的数据进行更新。同理,该第一共识节点可以根据合约6B的接口配置信息X2所指示的查询接口对应的租约等级,按照各租约等级对应的缓存时长,定期对节点缓存6200H中的数据进行更新。
应当理解,当第一共识节点接收到业务查询请求61Q时,可以调用缓存查询服务,基于业务查询请求61Q的请求类型、业务查询请求61Q对应的业务查询接口以及节点缓存6100H,确定对应的业务结果数据,进而可以将该业务结果数据返回至用于发送业务查询请求61Q的业务节点。
同理,当第一共识节点接收到业务查询请求62Q时,可以调用缓存查询服务,基于业务查询请求62Q的请求类型、业务查询请求62Q对应的业务查询接口以及节点缓存6200H,确定对应的业务结果数据,进而可以将该业务结果数据返回至用于发送业务查询请求62Q的业务节点。
由此可见,本申请实施例中的第一共识节点可以针对每个票据业务合约部署不同的节点缓存,这样使得第一共识节点能够在同一时刻并行处理多个票据业务合约相关联的业务查询请求,从而能够更加快速的从对应节点缓存中获取到业务结果数据,以至于提高了数据查询的效率。
进一步地,请参见图7,图7是本申请实施例提供的一种税务区块链系统下的系统架构图。如图7所示,本申请实施例中的业务网络、路由代理网络以及核心共识网络组成了整个完整区块链业务体系。其中,核心共识网络可以包括一个核心链(例如,上述图1所示的核心共识网络中的核心链)。可选的,图核心共识网络还可以包括图7所示的多个核心链。每个核心链可以用于存储不同交易业务对应的业务数据。这里的交易业务包括多种与税务业务相关联的子业务,具体可以包括开票业务、征信业务、进出亏业务、企业资质业务以及退税业务等。比如,核心链0可以用于存储开票业务对应的业务数据,核心链1可以用于存储征信业务对应的业务数据,以此类推。
可以理解的是,当区块链被用于政府(例如,税务系统)或者商业机构的一些场景中,为了提高数据的保密性和安全性,在区块链体系中涉及个人隐私或者业务安全等相关数据时,可以采用本申请实施例中的“业务网络—核心共识网络”这一分层区块链结构。
由于整个税务业务将会涉及到监管机构、开票方、报销方和报税方等。因此,图7所示的业务网络中的业务节点可以包括税局对象对应的终端设备、企业对象对应的终端设备以及消费对象对应的终端设备。其中,税局对象可以是指监管专网中的监管机构(例如,省、市、区等税局对应的计算机设备),企业对象可以为公有云中的开票服务商、报销服务商或者零售企业(例如,KA企业,即大型零售客户和重点零售客户企业)等,消费对象可以为私有云中的支付服务商、流转服务商或者零售企业等。其中,业务网络中的业务节点生成用于查询业务结果数据的业务查询请求,进而可以将该业务查询请求通过路由代理网络中的代理节点转发至该核心共识网络中的第一共识节点,以使该第一共识节点基于节点缓存获取用于返回至业务节点的业务结果数据。
其中,路由代理网络中的代理节点可以用于对业务网络和核心共识网络进行网络隔离,代理节点可以具有点对点服务(即P2P服务)、路由服务、证书缓存、认证服务。可以理解的是,点对点服务是指在P2P网络中的服务,基于一类特定的网络协议,P2P网络中的网络节点之间不需要一个中心节点来维护网络状态,而是每个节点通过和相邻节点的广播交互来维护全网的节点状态或者是其相邻节点连接状态。路由服务是节点的基本功能,可以用于节点之间的通信,以对业务网络和核心共识网络进行网络隔离。证书缓存用于缓存各节点的身份证书,其中,这里的证书可以指公钥证书体系(Public Key Infrastructure,PKI),在证书体系中,证书是一个公钥拥有者的身份证明,由权威机构(CA)进行颁发,基于公钥证书体系可以实现非对称加密和对于信息的数字签名。这里的公钥证书体系可以包括公私钥密码,x509证书,CA证书签发中心等等。认证服务可以用于对业务网络中的业务节点进行身份验证等。可以理解的是,在本申请实施例中,该代理节点可以用于将业务节点发送的业务查询请求转发至核心共识网络中的第一共识节点,还可以用于将第一共识节点返回的业务结果数据转发至业务节点。
其中,核心共识网络中的共识节点(即记账节点)可以为税务专网中的可信节点,可以通过调用权限合约,以确定自己的共识职责。这里的权限合约还存储了关于电子票据的整个生命周期的流转逻辑,比如电子票据的票据状态、流转流程、数据的访问权限、电子票据申领条件、电子票据开具条件等等。比如,核心共识网络中的第一共识节点可以在获取到系统管理设备发送的租约管理合约时,将其写入核心共识网络中的核心链。该第一共识节点还可以在获取到业务合约管理设备发送的与票据业务合约相关联的业务配置信息时,将其写入核心链。该第一共识节点也可以基于状态数据发布服务,按照查询接口对应的租约等级的缓存时长,定期对存储于节点缓存中的每个查询接口对应的业务状态数据进行更新,以至于后续在获取到代理节点转发的业务查询请求时,可以调用缓存查询服务,基于业务查询请求的请求类型、业务查询接口以及节点缓存,确定业务辅助信息对应的业务结果数据。
在本申请实施例中,第一共识节点在接收到业务查询请求时,可以直接从节点缓存中拉取数据,而无需实时从核心链中拉取数据,这样可以降低第一共识节点对核心链的访问次数,以至于减轻了节点运行负担。此外,本申请实施例提供的合约接口框架,规定了票据业务合约需要实现和配置租约等级,这样可以简化区块链数据存储的需要,同时通过对票据业务合约本身设定不同的租约等级,使得与区块链网络相关联的交易业务更加灵活执行,进而使得交易业务接入也更加简单快捷。同时,本申请实时例提供的合约接口框架实现了智能合约框架与缓存框架相结合,且与业务逻辑本身解耦,这样使得后续可适配更多复杂业务形态。
进一步地,请参见图8,图8是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。如图8所示,该基于区块链的数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该基于区块链的数据处理装置1为一个应用软件;该基于区块链的数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图8所示,该基于区块链的数据处理装置1可以运行于核心共识网络中的第一共识节点,该第一共识节点可以为上述图2所对应实施例中的节点200a。该基于区块链的数据处理装置1可以包括:配置信息获取模块11,状态数据获取模块12,状态数据更新取模块13,目标时长确定模块14,有效时间戳确定模块15,无效数据确定模块16,租约合约获取模块17,打包模块18,区块广播模块19,租约合约上链模块20,目标合约确定模块21,业务接口确定模块22,结果数据确定模块23以及结果数据返回模块24。
该配置信息获取模块11,用于核心共识网络中的第一共识节点基于状态数据发布服务,获取部署在第一共识节点上的票据业务合约的接口配置信息;接口配置信息是业务合约管理设备基于核心共识网络的核心链上的租约管理合约,为票据业务合约所配置的;接口配置信息用于指示票据业务合约所对应的N个查询接口,以及每个查询接口分别对应的租约等级;N为正整数;
该状态数据获取模块12,用于从与票据业务合约相关联的节点缓存中,获取N个查询接口分别对应的业务状态数据;N个查询接口包括目标查询接口;
该状态数据更新取模块13,用于若基于目标查询接口对应的租约等级,检测到目标查询接口对应的业务状态数据属于无效数据,则从核心链中,重新获取用于对目标查询接口的业务状态数据进行更新的业务更新数据,将业务更新数据存储至节点缓存中;业务更新数据用于在接收到与票据业务合约相关联的业务查询请求时,从节点缓存中返回至业务网络中的业务节点;业务网络与核心共识网络属于同一区块链网络。
其中,租约管理合约用于指示租约等级与缓存时长的映射关系;一个租约等级对应一个缓存时长;
该目标时长确定模块14,用于从租约管理合约中,获取与目标查询接口对应的租约等级具有映射关系的缓存时长,将获取到的缓存时长确定为目标查询接口对应的目标缓存时长;
该有效时间戳确定模块15,用于从节点缓存中确定目标查询接口对应的业务状态数据的存储时间戳,基于存储时间戳以及目标缓存时长,确定目标查询接口对应的业务状态数据的有效截止时间戳;
该无效数据确定模块16,用于若检测时间戳达到有效截止时间戳,则确定目标查询接口对应的业务状态数据属于无效数据。
该租约合约获取模块17,用于在获取到具有系统管理权限的系统管理设备发送的管理合约上链请求时,获取管理合约上链请求所携带的租约管理合约。
其中,该租约合约获取模块17包括:上链请求获取单元171,验签单元172以及租约合约获取单元173。
该上链请求获取单元171,用于获取具有系统管理权限的系统管理设备发送的管理合约上链请求;管理合约上链请求包括待签名信息以及对象签名信息;对象签名信息是基于系统管理对象的对象私钥,对待签名信息进行签名处理后所得到的;待签名信息包括由系统管理对象所确定的租约管理合约;
该验签单元172,用于从核心链上获取系统管理对象对应的对象公钥,基于对象公钥对对象签名信息进行验签,得到验签结果;
该租约合约获取单元173,用于若验签结果指示验证成功,则确定管理合约上链请求为合法请求,且从管理合约上链请求中获取租约管理合约。
其中,该上链请求获取单元171,验签单元172以及租约合约获取单元173的具体实现方式可以参见上述图4所对应实施例中对管理合约上链请求进行验签的描述,这里将不再继续进行赘述。
该打包模块18,用于对租约管理合约进行打包处理,得到待写入核心链的待验证区块;
该区块广播模块19,用于将待验证区块广播至核心共识网络中的第二共识节点,以使第二共识节点对获取到的待验证区块进行共识,得到用于返回至第一共识节点的共识结果;
该租约合约上链模块20,用于若共识结果中存在超过共识阈值的共识结果指示共识成功,则确定区块链网络中的区块链节点达成共识,且确定待验证区块中的租约管理合约成功部署在核心链上;待验证区块的生成时间戳用于更新核心链上的最大生成时间戳。
其中,第一共识节点所部署的票据业务合约的数量为M个,一个票据业务合约对应业务网络中的一个交易业务类型;M为正整数;区块链网络包括路由代理网络;路由代理网络用于对业务网络与核心共识网络进行网络隔离;
该目标合约确定模块21,用于在获取到路由代理网络中的代理节点转发的业务查询请求时,基于缓存查询服务以及业务查询请求所指示的交易业务类型,从M个票据业务合约中确定目标业务合约;业务查询请求是业务网络中的业务节点基于业务辅助信息所生成的;目标业务合约的一个查询接口对应一个查询类型;
该业务接口确定模块22,用于从目标业务合约中获取与业务辅助信息的查询类型相匹配的查询接口,将获取到的查询接口确定为业务查询接口;
该结果数据确定模块23,用于基于业务查询请求的请求类型、业务查询接口以及节点缓存,确定业务辅助信息对应的业务结果数据。
其中,业务查询请求的请求类型包括第一请求类型;第一请求类型用于指示业务查询请求为首次业务请求;
该结果数据确定模块23包括:数据查询单元231,第一结果确定单元232,租约等级查询单元233,子哈希表生成单元234,结果数据存储单元235,接口查询单元236以及第二结果确定单元237。
该数据查询单元231,用于从节点缓存中获取与目标业务合约相关联的数据哈希表,基于业务查询接口,对数据哈希表进行数据查询;
该第一结果确定单元232,用于若在数据哈希表中未查询到业务辅助信息对应的业务结果数据,则从核心链上获取业务辅助信息对应的业务结果数据。
该租约等级查询单元233,用于若在数据哈希表中未查询到业务查询接口的接口名称,则在从核心链上获取业务辅助信息对应的业务结果数据之后,基于部署在第一共识节点上的缓存查询服务所关联的等级查询标识,从核心链上获取业务查询接口所对应的租约等级。
其中,该租约等级查询单元233包括:标识获取子单元2331,配置区块获取子单元2332,第一等级获取子单元2333,查询结果确定子单元2334以及第二等级获取子单元2335。
该标识获取子单元2331,用于若在数据哈希表中未查询到业务查询接口的接口名称,则在从核心链上获取业务辅助信息对应的业务结果数据之后,获取部署在第一共识节点上的缓存查询服务所关联的等级查询标识;
该配置区块获取子单元2332,用于基于等级查询标识,从核心链上获取与票据业务合约相关联的合约配置区块;合约配置区块为第一共识节点在获取到业务合约管理设备针对票据业务合约发送的业务配置信息时,对业务配置信息进行上链后所得到的;
该第一等级获取子单元2333,用于若合约配置区块所包括的业务配置信息中存在业务查询接口对应的租约等级,则从业务配置信息中获取业务查询接口对应的租约等级。
该查询结果确定子单元2334,用于若合约配置区块所包括的业务配置信息中不存在业务查询接口对应的租约等级,则在核心链中查询业务合约管理设备所配置的全局租约等级,得到查询结果;
该第二等级获取子单元2335,用于基于查询结果,确定业务查询接口对应的租约等级。
其中,该第二等级获取子单元2335还用于:
若查询结果指示核心链中存在全局租约等级,则将全局租约等级作为业务查询接口对应的租约等级;
若查询结果指示核心链中不存在全局租约等级,则将无租约等级确定为业务查询接口对应的租约等级;无租约等级对应的缓存时长为零。
其中,该标识获取子单元2331,配置区块获取子单元2332,第一等级获取子单元2333,查询结果确定子单元2334以及第二等级获取子单元2335的具体实现方式可以参见上述图3所对应实施例中对业务查询接口对应的租约等级的描述,这里将不再继续进行赘述。
该子哈希表生成单元234,用于在节点缓存中,基于业务查询接口的接口名称以及业务查询接口所对应的租约等级,生成用于存储与业务查询接口相关联的子哈希表;
该结果数据存储单元235,用于将业务结果数据添加至子哈希表,且将添加的时间戳作为业务结果数据对应的存储时间戳添加至子哈希表;子哈希表中的业务结果数据为业务查询接口的业务状态数据。
其中,业务查询请求的请求类型包括第二请求类型;第二请求类型用于指示业务查询请求为非首次业务请求;
该接口查询单元236,用于从节点缓存中获取与目标业务合约相关联的数据哈希表,在数据哈希表中查询业务查询接口对应的接口名称;
该第二结果确定单元237,用于若业务查询接口的接口名称与目标查询接口的接口名称一致,则从节点缓存中获取业务辅助信息对应的业务结果数据;业务结果数据为业务更新数据。
其中,该数据查询单元231,第一结果确定单元232,租约等级查询单元233,子哈希表生成单元234,结果数据存储单元235,接口查询单元236以及第二结果确定单元237的具体实现方式可以参见上述图3所对应实施例中对业务结果数据的描述,这里将不再继续进行赘述。
该结果数据返回模块24,用于将业务结果数据通过代理节点返回至业务节点。
其中,该结果返回模块24具体用于:
将业务结果数据发送至代理节点,以使代理节点基于业务网络的系统公钥,对业务结果数据进行加密处理,得到用于返回至业务节点的系统加密数据信息;业务节点用于在获取到系统加密数据信息时,基于业务网络的系统私钥,对系统加密数据信息进行解密处理,得到业务结果数据。
其中,该配置信息获取模块11,状态数据获取模块12,状态数据更新取模块13,目标时长确定模块14,有效时间戳确定模块15,无效数据确定模块16,租约合约获取模块17,打包模块18,区块广播模块19,租约合约上链模块20,目标合约确定模块21,业务接口确定模块22,结果数据确定模块23以及结果数据返回模块24的具体实现方式可以参见上述图5所对应实施例中对步骤S201-步骤S209的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图9,图9是本申请实施例提供的一种计算机设备的示意图。如图9所示,该计算机设备1000可以为核心共识网络中的第一共识节点,该第一共识节点可以为上述图2对应实施例中的节点200a,该计算机设备1000可以包括:至少一个处理器1001,例如,CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),网络接口1004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选地还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机存储介质的存储器1005可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图9所示的计算机设备1000中,网络接口1004主要用于与代理节点、业务合约管理设备、系统管理设备进行网络通信;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
核心共识网络中的第一共识节点基于状态数据发布服务,获取部署在第一共识节点上的票据业务合约的接口配置信息;接口配置信息是业务合约管理设备基于核心共识网络的核心链上的租约管理合约,为票据业务合约所配置的;接口配置信息用于指示票据业务合约所对应的N个查询接口,以及每个查询接口分别对应的租约等级;N为正整数;
从与票据业务合约相关联的节点缓存中,获取N个查询接口分别对应的业务状态数据;N个查询接口包括目标查询接口;
若基于目标查询接口对应的租约等级,检测到目标查询接口对应的业务状态数据属于无效数据,则从核心链中,重新获取用于对目标查询接口的业务状态数据进行更新的业务更新数据,将业务更新数据存储至节点缓存中;业务更新数据用于在接收到与票据业务合约相关联的业务查询请求时,从节点缓存中返回至业务网络中的业务节点;业务网络与核心共识网络属于同一区块链网络。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3和图5所对应实施例中对该基于区块链的数据处理方法的描述,也可执行前文图8所对应实施例中对该基于区块链的数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图3和图5中各个步骤所提供的基于区块链的数据处理方法,具体可参见图3以及图5各个步骤所提供的实现方式,在此不再赘述。
计算机可读存储介质可以是前述任一实施例提供的数据传输装置或者计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smartmedia card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备可执行前文各实施例中对基于区块链的数据处理方法或装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包括。例如包括了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (16)
1.一种基于区块链的数据处理方法,其特征在于,包括:
核心共识网络中的第一共识节点基于状态数据发布服务,获取部署在所述第一共识节点上的票据业务合约的接口配置信息;所述接口配置信息是业务合约管理设备基于所述核心共识网络的核心链上的租约管理合约,为所述票据业务合约所配置的;所述接口配置信息用于指示所述票据业务合约所对应的N个查询接口,以及每个查询接口分别对应的租约等级;N为正整数;
从与所述票据业务合约相关联的节点缓存中,获取所述N个查询接口分别对应的业务状态数据;所述N个查询接口包括目标查询接口;
若基于所述目标查询接口对应的租约等级,检测到所述目标查询接口对应的业务状态数据属于无效数据,则从所述核心链中,重新获取用于对所述目标查询接口的业务状态数据进行更新的业务更新数据,将所述业务更新数据存储至所述节点缓存中;所述业务更新数据用于在接收到与所述票据业务合约相关联的业务查询请求时,从所述节点缓存中返回至业务网络中的业务节点;所述业务网络与所述核心共识网络属于同一区块链网络。
2.根据权利要求1所述的方法,其特征在于,所述租约管理合约用于指示租约等级与缓存时长的映射关系;一个租约等级对应一个缓存时长;
所述方法还包括:
从所述租约管理合约中,获取与所述目标查询接口对应的租约等级具有映射关系的缓存时长,将获取到的缓存时长确定为所述目标查询接口对应的目标缓存时长;
从所述节点缓存中确定所述目标查询接口对应的业务状态数据的存储时间戳,基于所述存储时间戳以及所述目标缓存时长,确定所述目标查询接口对应的业务状态数据的有效截止时间戳;
若检测时间戳达到所述有效截止时间戳,则确定所述目标查询接口对应的业务状态数据属于无效数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在获取到具有系统管理权限的系统管理设备发送的管理合约上链请求时,获取所述管理合约上链请求所携带的租约管理合约;
对所述租约管理合约进行打包处理,得到待写入所述核心链的待验证区块;
将所述待验证区块广播至所述核心共识网络中的第二共识节点,以使所述第二共识节点对获取到的待验证区块进行共识,得到用于返回至所述第一共识节点的共识结果;
若所述共识结果中存在超过共识阈值的共识结果指示共识成功,则确定所述区块链网络中的区块链节点达成共识,且确定所述待验证区块中的所述租约管理合约成功部署在所述核心链上;所述待验证区块的生成时间戳用于更新所述核心链上的最大生成时间戳。
4.根据权利要求3所述的方法,其特征在于,所述在获取到具有系统管理权限的系统管理设备发送的管理合约上链请求时,获取所述管理合约上链请求所携带的租约管理合约,包括:
获取具有系统管理权限的系统管理设备发送的管理合约上链请求;所述管理合约上链请求包括待签名信息以及对象签名信息;所述对象签名信息是基于系统管理对象的对象私钥,对所述待签名信息进行签名处理后所得到的;所述待签名信息包括由所述系统管理对象所确定的租约管理合约;
从所述核心链上获取所述系统管理对象对应的对象公钥,基于所述对象公钥对所述对象签名信息进行验签,得到验签结果;
若所述验签结果指示验证成功,则确定所述管理合约上链请求为合法请求,且从所述管理合约上链请求中获取所述租约管理合约。
5.根据权利要求1所述的方法,其特征在于,所述第一共识节点所部署的所述票据业务合约的数量为M个,一个票据业务合约对应所述业务网络中的一个交易业务类型;M为正整数;所述区块链网络包括路由代理网络;所述路由代理网络用于对所述业务网络与所述核心共识网络进行网络隔离;
所述方法还包括:
在获取到所述路由代理网络中的代理节点转发的业务查询请求时,基于缓存查询服务以及所述业务查询请求所指示的交易业务类型,从所述M个票据业务合约中确定目标业务合约;所述业务查询请求是所述业务网络中的业务节点基于业务辅助信息所生成的;所述目标业务合约的一个查询接口对应一个查询类型;
从所述目标业务合约中获取与所述业务辅助信息的查询类型相匹配的查询接口,将获取到的查询接口确定为业务查询接口;
基于所述业务查询请求的请求类型、所述业务查询接口以及所述节点缓存,确定所述业务辅助信息对应的业务结果数据;
将所述业务结果数据通过所述代理节点返回至所述业务节点。
6.根据权利要求5所述的方法,其特征在于,所述业务查询请求的请求类型包括第一请求类型;所述第一请求类型用于指示所述业务查询请求为首次业务请求;
所述基于所述业务查询请求的请求类型、所述业务查询接口以及所述节点缓存,确定所述业务辅助信息对应的业务结果数据,包括:
从所述节点缓存中获取与所述目标业务合约相关联的数据哈希表,基于业务查询接口,对所述数据哈希表进行数据查询;
若在所述数据哈希表中未查询到所述业务辅助信息对应的业务结果数据,则从所述核心链上获取所述业务辅助信息对应的业务结果数据。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若在所述数据哈希表中未查询到所述业务查询接口的接口名称,则在从所述核心链上获取所述业务辅助信息对应的业务结果数据之后,基于部署在所述第一共识节点上的缓存查询服务所关联的等级查询标识,从所述核心链上获取所述业务查询接口所对应的租约等级;
在所述节点缓存中,基于所述业务查询接口的接口名称以及所述业务查询接口所对应的租约等级,生成用于存储与所述业务查询接口相关联的子哈希表;
将所述业务结果数据添加至所述子哈希表,且将添加的时间戳作为所述业务结果数据对应的存储时间戳添加至所述子哈希表;所述子哈希表中的所述业务结果数据为所述业务查询接口的业务状态数据。
8.根据权利要求7所述的方法,其特征在于,所述若在所述数据哈希表中未查询到所述业务查询接口的接口名称,则在从所述核心链上获取所述业务辅助信息对应的业务结果数据之后,基于部署在所述第一共识节点上的缓存查询服务所关联的等级查询标识,从所述核心链上获取所述业务查询接口所对应的租约等级,包括:
若在所述数据哈希表中未查询到所述业务查询接口的接口名称,则在从所述核心链上获取所述业务辅助信息对应的业务结果数据之后,获取部署在所述第一共识节点上的缓存查询服务所关联的等级查询标识;
基于所述等级查询标识,从所述核心链上获取与所述票据业务合约相关联的合约配置区块;所述合约配置区块为所述第一共识节点在获取到所述业务合约管理设备针对所述票据业务合约发送的业务配置信息时,对所述业务配置信息进行上链后所得到的;
若所述合约配置区块所包括的业务配置信息中存在所述业务查询接口对应的租约等级,则从所述业务配置信息中获取所述业务查询接口对应的租约等级。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
若所述合约配置区块所包括的业务配置信息中不存在所述业务查询接口对应的租约等级,则在所述核心链中查询所述业务合约管理设备所配置的全局租约等级,得到查询结果;
基于所述查询结果,确定所述业务查询接口对应的租约等级。
10.根据权利要求9所述的方法,其特征在于,所述基于所述查询结果,确定所述业务查询接口对应的租约等级,包括:
若所述查询结果指示所述核心链中存在所述全局租约等级,则将所述全局租约等级作为所述业务查询接口对应的租约等级;
若所述查询结果指示所述核心链中不存在所述全局租约等级,则将无租约等级确定为所述业务查询接口对应的租约等级;所述无租约等级对应的缓存时长为零。
11.根据权利要求5所述的方法,其特征在于,所述业务查询请求的请求类型包括第二请求类型;所述第二请求类型用于指示所述业务查询请求为非首次业务请求;
所述基于所述业务查询请求的请求类型、所述业务查询接口以及所述节点缓存,确定所述业务辅助信息对应的业务结果数据,包括:
从所述节点缓存中获取与所述目标业务合约相关联的数据哈希表,在所述数据哈希表中查询所述业务查询接口对应的接口名称;
若业务查询接口的接口名称与所述目标查询接口的接口名称一致,则从所述节点缓存中获取所述业务辅助信息对应的业务结果数据;所述业务结果数据为所述业务更新数据。
12.根据权利要求5所述的方法,其特征在于,所述将所述业务结果数据通过所述代理节点返回至所述业务节点,包括:
将所述业务结果数据发送至所述代理节点,以使所述代理节点基于所述业务网络的系统公钥,对所述业务结果数据进行加密处理,得到用于返回至所述业务节点的系统加密数据信息;所述业务节点用于在获取到所述系统加密数据信息时,基于所述业务网络的系统私钥,对所述系统加密数据信息进行解密处理,得到所述业务结果数据。
13.一种基于区块链的数据处理装置,其特征在于,包括:
配置信息获取模块,用于核心共识网络中的第一共识节点基于状态数据发布服务,获取部署在所述第一共识节点上的票据业务合约的接口配置信息;所述接口配置信息是业务合约管理设备基于所述核心共识网络的核心链上的租约管理合约,为所述票据业务合约所配置的;所述接口配置信息用于指示所述票据业务合约所对应的N个查询接口,以及每个查询接口分别对应的租约等级;N为正整数;
状态数据获取模块,用于从与所述票据业务合约相关联的节点缓存中,获取所述N个查询接口分别对应的业务状态数据;所述N个查询接口包括目标查询接口;
状态数据更新模块,用于若基于所述目标查询接口对应的租约等级,检测到所述目标查询接口对应的业务状态数据属于无效数据,则从所述核心链中,重新获取用于对所述目标查询接口的业务状态数据进行更新的业务更新数据,将所述业务更新数据存储至所述节点缓存中;所述业务更新数据用于在接收到与所述票据业务合约相关联的业务查询请求时,从所述节点缓存中返回至业务网络中的业务节点;所述业务网络与所述核心共识网络属于同一区块链网络。
14.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1至12任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1至12任一项所述的方法。
16.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,所述计算机程序适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行权利要求1至12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210546128.2A CN117131079A (zh) | 2022-05-19 | 2022-05-19 | 一种基于区块链的数据处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210546128.2A CN117131079A (zh) | 2022-05-19 | 2022-05-19 | 一种基于区块链的数据处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117131079A true CN117131079A (zh) | 2023-11-28 |
Family
ID=88855078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210546128.2A Pending CN117131079A (zh) | 2022-05-19 | 2022-05-19 | 一种基于区块链的数据处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117131079A (zh) |
-
2022
- 2022-05-19 CN CN202210546128.2A patent/CN117131079A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109829326B (zh) | 基于区块链的跨域认证与公平审计去重云存储系统 | |
US10192073B2 (en) | System and method for interaction object reconciliation in a blockchain environment | |
JP6877448B2 (ja) | 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム | |
JP7029408B2 (ja) | 分散ハッシュテーブル及びピア・ツー・ピア分散型台帳を利用した契約の実行を制御する方法及びシステム | |
CN112685505B (zh) | 一种交易数据处理方法、装置、计算机设备及存储介质 | |
US9876775B2 (en) | Generalized entity network translation (GENT) | |
CN111461723B (zh) | 基于区块链的数据处理系统及方法、装置 | |
US20230316273A1 (en) | Data processing method and apparatus, computer device, and storage medium | |
CN109241181A (zh) | 数据库操作方法和装置 | |
JP2019511759A (ja) | 分散型ハッシュテーブル及びピア・ツー・ピア分散型台帳を利用してデジタルアセットのオーナシップを検証する方法及びシステム | |
WO2015179020A2 (en) | Generalized entity network translation (gent) | |
CN113302610B (zh) | 基于区块链的可信平台 | |
CN113259130B (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
CN111488372A (zh) | 一种数据处理方法、设备及存储介质 | |
CN113255014B (zh) | 一种基于区块链的数据处理方法以及相关设备 | |
Jämthagen et al. | Blockchain-based publishing layer for the keyless signing infrastructure | |
JP2023530594A (ja) | 分散型データベースにおける許可されたイベント処理 | |
CN111314066B (zh) | 基于区块链的数据转移方法、终端及计算机可读存储介质 | |
CN115705571A (zh) | 保护可审计的帐户的隐私 | |
Hu et al. | Keychain: Blockchain-based key distribution | |
US20240097879A1 (en) | Blockchain-based data management of distributed binary objects | |
CN113491090B (zh) | 基于区块链的可信平台 | |
CN117118640A (zh) | 一种数据处理方法、装置、计算机设备以及可读存储介质 | |
Fredriksson | A distributed public key infrastructure for the web backed by a blockchain | |
CN117131079A (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 |