CN117453654A - 基于区块链的版本处理方法、装置及相关设备 - Google Patents

基于区块链的版本处理方法、装置及相关设备 Download PDF

Info

Publication number
CN117453654A
CN117453654A CN202311426965.2A CN202311426965A CN117453654A CN 117453654 A CN117453654 A CN 117453654A CN 202311426965 A CN202311426965 A CN 202311426965A CN 117453654 A CN117453654 A CN 117453654A
Authority
CN
China
Prior art keywords
version
chain
cache
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
Application number
CN202311426965.2A
Other languages
English (en)
Inventor
刘汉卿
王宗友
朱耿良
时一防
刘区城
廖志勇
聂凯轩
黄杨峻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202311426965.2A priority Critical patent/CN117453654A/zh
Publication of CN117453654A publication Critical patent/CN117453654A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了基于区块链的版本处理方法、装置及相关设备,可应用于区块链技术领域。其中方法包括:获取第一业务对象发送的链版本发布交易;基于合约调用参数,确定部署在区块链上的链版本处理合约;链版本处理合约用于在合约状态数据中记录与区块链相关联的N个历史版本参数信息;N个历史版本参数信息中具有最大的历史版本生效高度的历史版本参数信息为目标历史版本参数信息;调用链版本处理合约,在将链版本参数信息写入合约状态数据时,通过链版本参数信息对目标历史版本参数信息进行更新;基于更新后的目标历史版本参数信息,对节点内存中的缓存数据进行更新。采用本申请实施例,有助于提升对区块链的链版本管理的灵活性。

Description

基于区块链的版本处理方法、装置及相关设备
技术领域
本申请区块链技术领域,尤其涉及基于区块链的版本处理方法、装置及相关设备。
背景技术
在区块链场景下,区块链上的执行逻辑发生变更时,区块链的开发者需要将最新发布的链版本的版本生效高度,通过硬编码的方式写入区块链节点,即将最新发布的链版本的版本生效高度直接写入到发布的链版本所对应的区块链程序代码中。
发明人在实践过程中发现,将新发布的链版本的版本生效高度通过硬编码的方式写入区块链节点,若需要确定针对区块链所发布的链版本的版本生效高度,则需要先获取到链版本所对应的区块链程序代码,从而从区块链程序代码中去确定出对应的版本生效高度,由此难以对针对区块链所发布的各个链版本以及链版本的版本生效高度进行集中管理,以至于对区块链的链版本管理的灵活性较低。
发明内容
本申请实施例提供了一种基于区块链的版本处理方法、装置及相关设备,能够通过链版本处理合约记录的针对区块链提交的链版本,有助于提升对区块链的链版本管理的灵活性。
本申请实施例一方面提供了一种基于区块链的版本处理方法,方法包括:
获取第一业务对象通过第一业务终端发送的链版本发布交易;链版本发布交易中携带链版本参数信息和合约调用参数;链版本参数信息为第一业务对象在第一发布时刻针对区块链所提交的;
基于合约调用参数,确定部署在区块链上的链版本处理合约;链版本处理合约用于在合约状态数据中记录与区块链相关联的N个历史版本参数信息;N为正整数;一个历史版本参数信息中具有一个历史链版本对应的一个历史版本生效高度,一个历史版本生效高度用于指示在启用一个历史链版本时的区块链高度;N个历史版本参数信息中具有最大的历史版本生效高度的历史版本参数信息为目标历史版本参数信息;目标历史版本参数信息为第一业务对象在第二发布时刻针对区块链所提交的;第二发布时刻为第一发布时刻之前的时刻;
调用链版本处理合约,在将链版本参数信息写入合约状态数据时,通过链版本参数信息对目标历史版本参数信息进行更新,得到更新后的目标历史版本参数信息;
基于更新后的目标历史版本参数信息,对节点内存中的缓存数据进行更新,得到更新后的缓存数据;更新后的缓存数据用于在获取到与第二业务对象相关联的待处理数据时,确定与待处理数据相关联的业务逻辑数据。
本申请实施例一方面提供了一种基于区块链的版本处理装置,装置包括:
交易获取模块,用于获取第一业务对象通过第一业务终端发送的链版本发布交易;链版本发布交易中携带链版本参数信息和合约调用参数;链版本参数信息为第一业务对象在第一发布时刻针对区块链所提交的;
合约确定模块,用于基于合约调用参数,确定部署在区块链上的链版本处理合约;链版本处理合约用于在合约状态数据中记录与区块链相关联的N个历史版本参数信息;N为正整数;一个历史版本参数信息中具有一个历史链版本对应的一个历史版本生效高度,一个历史版本生效高度用于指示在启用一个历史链版本时的区块链高度;N个历史版本参数信息中具有最大的历史版本生效高度的历史版本参数信息为目标历史版本参数信息;目标历史版本参数信息为第一业务对象在第二发布时刻针对区块链所提交的;第二发布时刻为第一发布时刻之前的时刻;
合约数据更新模块,用于调用链版本处理合约,在将链版本参数信息写入合约状态数据时,通过链版本参数信息对目标历史版本参数信息进行更新,得到更新后的目标历史版本参数信息;
缓存数据更新模块,用于基于更新后的目标历史版本参数信息,对节点内存中的缓存数据进行更新,得到更新后的缓存数据;更新后的缓存数据用于在获取到与第二业务对象相关联的待处理数据时,确定与待处理数据相关联的业务逻辑数据。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
在本申请实施例中,在获取到链版本发布交易时,可以基于链版本发布交易中的链版本参数信息,对链版本处理合约的合约状态数据中的具有最大版本生效高度的历史版本参数信息(即目标历史版本参数信息)进行更新,进而基于更新后的目标历史版本参数信息对缓存数据更新,从而后续可以基于更新后的缓存数据确定待处理数据的业务逻辑数据。由此可以通过链版本处理合约去记录针对区块链所提交的链版本,以便于基于链版本处理合约对区块链的各个链版本以及对应的链版本生效高度进行集中管理,有助于提升对区块链的链版本管理的灵活性。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种基于区块链的数据处理系统的结构示意图;
图2是本申请实施例提供的一种数据交互的场景示意图;
图3是本申请实施例提供的一种基于区块链的版本处理方法的流程示意图;
图4是本申请实施例所提供的链版本处理合约的接口示意图;
图5是本申请实施例所提供的一种历史版本参数信息更新的流程示意图;
图6是本申请实施例所提供的一种缓存数据更新的流程示意图;
图7是本申请实施例提供的一种基于区块链的版本处理方法的流程示意图;
图8是本申请实施例提供的一种确定链版本的示意图;
图9是本申请实施例所提供的一种确定业务逻辑数据的流程示意图;
图10是本申请实施例提供的一种基于区块链的版本处理装置的结构示意图;
图11是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种基于区块链的数据处理系统的结构示意图。该数据处理系统可以包括终端设备集群和区块链网络。如图1所示,这里的终端设备集群可以为如图1所示的用终端设备集群100a,这里的区块链网络可以为如图1所示的区块链网络200a。
其中,可以理解的是,图1所示的终端设备集群100a中可以包括一个或多个终端设备。这里将不对该终端设备集群100a中的终端设备的数量进行限定。如图1所示,终端设备集群100a中的终端设备可以包含终端设备110a、终端设备110b、…、终端设备110n等等。在任一终端设备中可以运行有资源管理客户端,也可以称为资源客户端。资源管理客户端可以是一种用于负责管理数字资源的工具,可以用于将业务对象的私钥信息(也可以简称为私钥)存储在加密文件,进而基于该资源管理客户端所存储的私钥信息对待签名交易(如向其他账户转移数字资源的交易)进行交易签名,得到已签名交易,进而可以将已签名交易发送至区块链,以实现区块链上的数字资源的转移、区块链上的资源的转移等等。该资源客户端可以是硬件设备也可以为软件程序。可以理解的是,在一个终端设备中可以运行有一个或多个资源管理客户端,这里将不对一个终端设备中运行的资源管理客户端的数量进行限制。可以理解的是,同一个业务对象可以对应有一个或多个资源管理客户端,同一业务对象所对应的多个资源管理客户端可以运行在同一终端设备,也可以运行在不同终端设备,此处不做限制。
可以理解的是,如图1所示的区块链网络200a可以包括多个区块链节点,这里将不对区块链网络200a中的区块链节点的数量进行限定。如图1所示,区块链网络200a中的多个区块链节点具体可以包括区块链节点11a、区块链节点11b、区块链节点11c、区块链节点11d等等。该区块链网络中的区块链节点可以用于共同维护区块链,比如,区块链网络200a中的每个节点(比如,区块链节点11a、区块链节点11b、区块链节点11c和区块链节点11d等区块链节点)上所存储的区块链均为区块链11e。
如图1所示,终端设备集群100a中的终端设备(如终端设备110a)可以与区块链节点11a、区块链节点11b、区块链节点11c、区块链节点11d等区块链节点进行网络连接,以在该终端设备集群100a中的终端设备接入该区块链网络200a的情况下,与该区块链网络200a中的区块链节点进行数据交互。比如,终端设备110a可以作为业务终端,进而业务对象可以通过该业务终端向区块链网络发送数据查询请求,进而区块链网络中的区块链节点可以基于该数据查询请求确定请求结果,进而将该请求结果返回至相应的业务终端。
应当理解,本申请实施例所涉及的区块链是一种分布式数据存储、点对点传输、共识机制以及加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。区块链中包括一系列按照产生的先后时间顺序相互接续的区块(Block),区块中记录了区块链系统中的区块链节点所打包提交的区块数据。区块链底层平台可以包括对象管理、基础服务、智能合约以及运营管理等处理模块。其中,对象管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发成员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营管理模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、管理网络情况、管理节点设备健康状态等。平台产品服务层提供典型应用的基本能力和实现框架,开发成员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
可以理解的是,区块链(如区块链11e)可以由多个区块组成,创始块(也称创世区块,即区块链中的第一个区块)中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。可以理解的是,区块链中的每个区块可以对应一个区块高度,一个区块的区块高度是指在区块链中该区块与创世块之间的块数。需要注意的是,创世区块的区块高度为0,创世区块的下一区块的区块高度为1。
应当理解,在上述区块链网络(例如,上述区块链网络200a)的区块链(例如,上述区块链11e)上可以部署一个或多个智能合约(也可以简称为合约),这些智能合约可以通过合约标识来进行区分,合约标识可以包括以下一项或多项:合约调用地址(也可以简称为合约地址)、合约标识号(Identity document,ID)或合约名称,而用户客户端发起的业务交易中,也可以携带智能合约的合约调用地址或者合约标识号或合约名称,以此指定需要运行的智能合约。在本申请实施例中,区块链上所部署的智能合约可以包括链版本处理合约以及其他业务合约。其中,链版本处理合约业务合约可以为一些用于进行业务处理的合约,比如用于进行抽奖业务的合约,一些用于进行资源转移的合约,用于进行游戏场景下的虚拟资源转换的合约等等,此处不做限定。
为了便于理解,进一步的,请参见图2,图2是本申请实施例提供的一种数据交互的场景示意图。如图2所示,终端设备20a可以为上述图1所对应实施例中的终端设备集群中的任一终端设备(如上述终端设备110a、终端设备110b等等),业务对象A(如区块链的开发者)可以发起链版本发布交易TX1,进而终端设备20a可以向区块链网络20a发送链版本发布交易TX1(步骤S21)。该链版本发布交易TX1(如图2中的203a所示)中的交易参数中可以包括链版本参数信息,该链版本参数信息可以为版本参数信息M4。应当理解的是,区块链网络200a可以将链版本发布交易TX1上链至区块链。此处以区块链网络200a中的区块链节点11c为例进行阐述。
进一步的,区块链节点11c可以基于链版本发布交易TX1确定链版本处理合约201a。该链版本处理合约201a可以关联有合约状态数据,可以参见图2的合约状态数据202a所示。在该合约状态数据202a中,可以包括历史版本参数信息,如可以包括版本参数信息M1、版本参数信息M2、...、版本参数信息M3等版本参数信息。其中,版本参数信息M3(即2201a所示)为具有最大历史版本生效高度的历史版本参数信息,即可以为目标历史版本参数信息。
进一步的,区块链节点11c可以将链版本发布交易TX1中的链版本参数信息M4写入链版本处理合约的合约状态数据中(步骤S22)。具体的,链版本发布交易TX1(如图2中的203a所示)中可以包括版本参数信息M4,进而可以将版本参数信息M4写入合约状态数据中。写入版本参数信息M4后的合约状态数据可以如图2中的合约状态数据204a所示。在写入版本参数信息M4后,版本参数信息M4(如图2中的2401a所示)可以为新的具有最大历史版本生效高度的历史版本参数信息,即2401a所示的版本参数信息M4可以为更新后的目标历史版本参数信息。
进一步的,区块链节点11c可以对缓存数据(即205a所示)进行更新(步骤S23)。其中,具体的,可以通过更新后的目标历史版本参数信息对缓存数据(即205a所示)进行更新,从而得到更新后的缓存数据。
采用本申请实施例,在获取到链版本发布交易时,可以基于链版本发布交易中的链版本参数信息,对链版本处理合约的合约状态数据中的具有最大版本生效高度的历史版本参数信息(即目标历史版本参数信息)进行更新,进而基于更新后的目标历史版本参数信息对缓存数据更新,从而后续可以基于更新后的缓存数据确定待处理数据的业务逻辑数据。由此可以通过链版本处理合约去记录针对区块链所提交的链版本,以便于基于链版本处理合约对区块链的各个链版本以及对应的链版本生效高度进行集中管理,有助于提升对区块链的链版本管理的灵活性。
另外,由于通过链版本处理合约记录了针对区块链所提交的各个历史版本参数信息,且历史版本参数信息中包括链版本所对应的版本生效高度,相较于现有技术的通过从区块链程序代码中获取硬编码的版本生效高度,来确定区块链的链版本来说,通过链版本合约,可以快速查询到针对区块链所提交的全部的链版本以及对应的版本生效高度,大大提升了确定区块链的链版本的准确性和效率。
另外,在区块链节点新加入区块链网络或区块链节点重新接入区块链网络时,需要对同步到的新的区块中的交易进行执行,则需要确定其相应的链版本的业务逻辑数据。若通过硬编码方式将链版本的版本生效高度写入区块链程序代码中,则需要逐个查询每个链版本的版本生效高度来确定每个区块进行处理时所应用的链版本,链版本的确定效率较低,并且容易出现所确定的业务数据逻辑时版本混乱的情况,而采用本申请实施例,可以基于链版本处理合约,从链版本处理合约中读取到每个链版本所对应的版本生效高度,有助于提升链版本的确定效率较低以及准确性。
另外,在链版本处理合约可以记录有每次发布的链版本参数信息(即链版本以及相应的版本生效高度),由此可以有助于对链版本进行溯源,提升区块链的业务逻辑数据的可靠性。
另外,在一些场景中,一些开发对象可以在基于旧的区块链(简称旧链)部署一条新的区块链(简称新链)时,即在部署新的区块链时可以参照旧的区块链的区块链程序代码。若旧的区块链的区块链程序代码中通过硬编码中记录了版本生效高度,而新部署的区块链的链版本的生效高度应是从创世区块开始生效的,若直接基于原有的区块链的区块链程序代码部署新的区块链,则版本生效高度会出现错误,进而需要通过人为对硬编码的版本生效高度进行修改才能完成新链的部署,需要耗费一定的时间,导致新的区块链的部署的效率较低。而通过本申请实施例,不需要将版本生效高度写入硬编码,而是写入在链版本处理合约中,进而在部署新链时,所获取到的区块链的区块链程序代码中可以不包含相应链版本的版本生效高度,有助于提升部署新链的效率和灵活性。
可以理解的是,本申请实施例可以应用于金融场景中。在金融场景中,本申请所涉及到的待处理数据可以为用于进行资源转移的业务交易,所能进行转移的资源可以为能够进行交易的数字资源。
可以理解的是,本申请实施例可以应用于游戏场景中。在游戏场景中,在金融场景中,本申请所涉及到的待处理数据可以为用于进行资源转移的业务交易,所能进行转移的资源可以为游戏中的积分、钻石等等虚拟资源。
可以理解的是,本申请实施例所涉及的区块链节点(如上述的区块链网络200a中的任一区块链节点)均可以为计算机设备,该计算机设备可以是服务器,也可以是终端设备,还可以是其他进行数据处理的设备,此处不做限制。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,此处不做限制。终端设备可以包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器、智能音箱、智能家电等。
本申请实施例所涉及的终端设备(如上述终端设备集群100a中的任一终端设备)均可以为计算机设备,该计算机设备可以是服务器,也可以是终端设备,还可以是其他进行数据处理的设备,此处不做限制。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,此处不做限制。终端设备可以包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器、智能音箱、智能家电等。
需要进行说明的是,本申请在收集业务对象(如在业务对象发起业务交易时所需提供的对象信息)的相关数据之前以及在收集业务对象的相关数据的过程中,都可以显示提示界面、弹窗或输出语音提示信息,该提示界面、弹窗或语音提示信息用于提示用户当前正在搜集其相关数据,使得本申请仅仅在获取到用户对该提示界面或者弹窗发出的确认操作后,才开始执行获取用户相关数据的相关步骤,否则(即未获取到用户对该提示界面或者弹窗发出的确认操作时),结束获取用户相关数据的相关步骤,即不获取用户的相关数据。换句话说,本申请所采集的所有用户数据都是在用户同意并授权的情况下进行采集的,且相关用户数据的收集、使用和处理需要遵守相关地区的相关法律法规和标准。
可以理解,上述场景仅是作为示例,并不构成对于本申请实施例提供的技术方案的应用场景的限定,本申请的技术方案还可应用于其他场景。例如,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
进一步地,请参见图3,图3是本申请实施例提供的一种基于区块链的版本处理方法的流程示意图。该方法可由区块链节点来执行,比如,图1中的区块链节点11a。该方法至少可以包括以下步骤S101-步骤S104。
S101、获取第一业务对象通过第一业务终端发送的链版本发布交易;链版本发布交易中携带链版本参数信息和合约调用参数;链版本参数信息为第一业务对象在第一发布时刻针对区块链所提交的。
其中,第一业务对象可以为用于发起链版本发布交易的业务对象,即可以为用于发布区块链的链版本的业务对象,比如,该第一业务对象可以为区块链的开发者。第一业务终端可以为第一业务对象所使用的业务终端,例如,该第一业务终端可以为图1中的终端设备110a。
链版本发布交易是指用于发布区块链的链版本的交易。例如,在一些场景中,开发者(即第一业务对象)在发布了新的链版本时,可以在业务终端中基于新的链版本的链版本参数信息构建链版本发布交易,并向区块链网络发送该链版本发布交易,以将新发布的链版本的链版本参数信息写入区块链。
应当理解的是,链版本参数信息是第一业务对象在第一发布时刻针对区块链所提交的版本参数信息。其中,版本参数信息可以是指区块链的链版本的参数信息,如可以包括链版本以及链版本对应的版本生效高度,还可以包括链版本的版本说明信息等等。该第一发布时刻是指提交链版本参数信息的时刻,也就是链版本发布交易的时间戳。
其中,链版本参数信息包括区块链的目标链版本和目标链版本对应的目标版本生效高度。该目标链版本是指该链版本发布交易所指示的待发布的链版本。其中,一个链版本可以通过对应版本值(也称链版本号)进行表示,比如,一个链版本的版本值为1,则可以称该链版本为链版本1,在该链版本的后一个链版本的版本值可以为2,则可以称该链版本为链版本2。该目标版本生效高度用于指示启用目标链版本时的区块链高度。例如,该目标链版本可以表示为版本2,版本2的版本生效高度为70,则版本2在区块链高度为70时开始启用。可选的,该链版本参数信息中还可以包括目标链版本的版本说明信息,该版本说明信息可以用于指示该目标链版本的相关说明,如该链版本对哪些业务逻辑进行了调整,增加或减少了哪些功能等等,此处不做限定。
其中,合约调用参数是指链版本发布交易的交易参数中,用于确定待调用的智能合约的参数。应当理解的是,在链版本发布交易中,合约调用参数做指示的待调用的智能合约可以为链版本处理合约。链版本处理合约可以为用于记录区块链的历史版本参数信息的智能合约。
S102、基于合约调用参数,确定部署在区块链上的链版本处理合约;链版本处理合约用于在合约状态数据中记录与区块链相关联的N个历史版本参数信息;N为正整数;一个历史版本参数信息中具有一个历史链版本对应的一个历史版本生效高度,一个历史版本生效高度用于指示在启用一个历史链版本时的区块链高度;N个历史版本参数信息中具有最大的历史版本生效高度的历史版本参数信息为目标历史版本参数信息;目标历史版本参数信息为第一业务对象在第二发布时刻针对区块链所提交的;第二发布时刻为第一发布时刻之前的时刻。
其中,链版本处理合约可以为用于对区块链的链版本进行处理的智能合约,也可以称为用于对区块链的链版本进行管理的智能合约。该链版本处理合约可以用于查询指定区块高度时区块链的链版本、用于查询区块链的具有最大的历史版本生效高度的历史链版本、用于写入新的版本参数信息等等,此处不做限定。
其中,合约状态数据可以为链版本处理合约所关联的用于记录历史版本参数信息的数据,也称用于记录区块链的已发布的链版本的版本参数信息的数据。其中,历史版本参数信息可以为区块链的已发布的链版本的版本参数信息。
其中,该N个历史版本参数信息可以为在第一发布时刻时合约状态数据中所记录的历史版本参数信息。可以理解的是,在N个历史版本参数信息中,每个历史版本参数信息均可以包括对应的历史链版本和历史链版本对应的历史版本生效高度,换言之,一个历史版本参数信息中具有一个历史链版本对应的一个历史版本生效高度。其中,历史链版本可以为区块链的已发布的链版本。历史版本生效高度是指在启用一个历史链版本时的区块链高度。其中,区块链高度是指区块链的最大区块高度,区块高度的介绍可以参照上述相关描述,此处不做赘述。换言之,历史版本生效高度可以是指在历史链版本启用时区块链的最大区块高度。应当理解的是,该N个历史版本参数信息所对应的N个历史链版本的历史版本生效高度,均低于目标链版本的目标版本生效高度。
目标历史版本参数信息是指N个历史版本参数信息中具有最大的历史版本生效高度的历史版本参数信息。可以理解的是,在N为1时,该目标历史版本参数信息即可以为该1个历史版本参数信息。在N大于1时,该目标历史版本参数信息多个历史版本参数信息中,具有最大的历史版本生效高度的历史版本参数信息。
第二发布时刻可以是指提交目标历史版本参数信息的时刻。应当理解的是,该第二发布时刻为第一发布时刻之前的时刻,换言之,该第二发布时刻早于第一发布时刻。
可以理解的是,链版本处理合约可以包括第一版本查询接口和第二版本查询接口。其中,第一版本查询接口用于查询在指定区块高度时区块链的链版本;第二版本查询接口用于查询区块链的具有最大的历史版本生效高度的历史链版本。其中,具有最大的历史版本生效高度的历史链版本也可以称为是区块链的最新链版本,那么,第二版本查询接口可以用于查询区块链的最新链版本。该链版本处理合约还可以包括写数据接口,该写数据接口可以用于在链版本合约的合约状态数据中写入新的版本参数信息。
例如,请参见图4,图4是本申请实施例所提供的链版本处理合约的接口示意图。如图4所示,链版本处理合约401a,可以包括第一版本查询接口411a,以用于查询在指定区块高度时区块链的链版本。链版本处理合约401a,可以包括第二版本查询接口412a,以用于查询区块链的具有最大的历史版本生效高度的历史链版本。链版本处理合约401a,可以包括写数据接口413a,以用于在链版本合约的合约状态数据中写入新的版本参数信息。
S103、调用链版本处理合约,在将链版本参数信息写入合约状态数据时,通过链版本参数信息对目标历史版本参数信息进行更新,得到更新后的目标历史版本参数信息。
可以理解的是,在基于链版本发布交易确定出链版本处理合约后,可以调用链版本处理合约将链版本参数信息写入合约状态数据。可以理解的是,调用链版本处理合约将链版本参数信息写入合约状态数据,可以为通过链版本处理合约的写数据接口,将链版本参数信息写入合约状态数据。
可以理解的是,在将链版本参数信息写入合约状态数据时,可以将该链版本参数信息作为合约状态数据中的新的历史版本参数信息,写入该链版本参数信息后的合约状态数据中可以包括该链版本参数信息以及上述N个历史版本参数信息。
可以理解的是,在将链版本参数信息写入合约状态数据时,可以通过链版本参数信息对目标历史版本参数信息进行更新,得到更新后的目标历史版本参数信息。换言之,通过链版本参数信息对区块链的最新历史版本参数信息进行更新,得到更新后的最新历史版本参数信息,即可以将该链版本参数信息作为区块链的新的最新链版本参数信息。
具体的,链版本参数信息包括区块链的目标链版本和目标链版本对应的目标版本生效高度;目标版本生效高度用于指示启用目标链版本时的区块链高度;目标历史版本参数信息中的历史链版本为目标历史链版本,目标历史版本参数信息中的历史版本生效高度为目标历史版本生效高度;目标版本生效高度大于目标历史版本生效高度;那么,通过链版本参数信息对目标历史版本参数信息进行更新,得到更新后的目标历史版本参数信息,可以包括以下步骤:通过目标链版本对目标历史版本参数信息中的目标历史链版本进行更新,得到更新后的目标历史链版本;通过目标版本生效高度对目标历史版本参数信息中的目标历史版本生效高度进行更新,得到更新后的目标历史版本生效高度;基于更新后的目标历史链版本和更新后的目标历史版本生效高度,确定更新后的目标历史版本参数信息。
其中,目标历史链版本是指目标历史版本参数信息中的历史链版本;目标历史版本生效高度是指目标历史版本参数信息中的历史版本生效高度。
应当理解的是,更新后的目标历史链版本可以为目标链版本,更新后的目标历史版本生效高度可以为目标版本生效高度。更新后的目标历史版本参数信息中包括更新后的目标历史链版本以及更新后的目标历史版本生效高度,换言之,更新后的目标历史版本参数信息中包括目标链版本以及目标版本生效高度。
应当理解的是,在得到更新后的目标历史版本参数信息时,链版本处理合约的合约状态数据中包括更新后的目标历史版本参数信息与N个历史版本参数信息。
此处结合图示,对将新发布的链版本参数信息写入合约状态数据的过程进行阐述。请参见图5,图5是本申请实施例所提供的一种历史版本参数信息更新的流程示意图。如图5所示,链版本处理合约的合约状态数据(如图5中的501a所示)中所记录的N个历史版本参数信息包括:版本参数信息M1、版本参数信息M2。其中,版本参数信息M1中包括的历史链版本为版本T1,对应的历史版本生效高度为P1。版本参数信息M2中包括的历史链版本为版本T2,对应的历史版本生效高度为P2。版本参数信息M2为目标历史版本参数信息(即N个历史版本参数信息中的最新的历史版本参数信息,如图5中的511a所示),即目标历史链版本为版本T2,对应的目标历史版本生效高度为P2。在获取到链版本发布交易502a的版本参数信息M3(如图5中的521a所示)时,该版本参数信息M3中包括的链版本为版本T3,对应的版本生效高度为P3,则在将版本参数信息M3写入合约状态数据时,将版本参数信息M3确定为更新后的目标历史版本参数信息,并且将版本T3确定为更新后的目标历史链版本,将版本生效高度P3确定为更新后的目标历史版本生效高度。在得到更新后的目标历史版本参数信息时,链版本处理合约的合约状态数据(如图5中的503a所示)中包括的历史版本参数信息包括:版本参数信息M1、版本参数信息M2以及版本参数信息M3。此时,版本参数信息M3为目标历史版本参数信息(如图5中的531a所示)。
S104、基于更新后的目标历史版本参数信息,对节点内存中的缓存数据进行更新,得到更新后的缓存数据;更新后的缓存数据用于在获取到与第二业务对象相关联的待处理数据时,确定与待处理数据相关联的业务逻辑数据。
其中,节点内存可以为区块链节点中用于进行数据存储的存储介质。缓存数据可以为在节点内存中的进行临时存储的数据,缓存数据可以是被存储在高速存储器中的,能够被快速地进行读取。因此,将后续在确定待处理数据的业务逻辑数据时,可以基于缓存数据读取与区块链的链版本相关的信息,从而提升确定业务逻辑数据的速率。
其中,该待处理数据可以为待进行处理的数据,该待处理数据可以为业务交易,也可以为区块,还可以为一些业务请求等等,此处不做限定。业务逻辑数据可以为用于进行业务处理的数据,该业务逻辑数据可以为相应链版本的逻辑代码。与待处理数据相关联的业务逻辑数据,可以为用于对待处理数据进行业务处理的业务逻辑数据。比如,该业务逻辑数据可以为用于解析业务交易的逻辑数据,用于对业务交易进行交易验签的逻辑数据,用于对交易池中的交易进行交易打包的逻辑数据(比如,如何确定打包的区块中包括的交易等逻辑),用于对打包得到的区块进行共识的逻辑数据,用于等等,此处不做限定。
其中,缓存数据中包括与区块链相关联的第一缓存版本信息和第二缓存版本信息;第一缓存版本信息用于指示在节点内存中所缓存到的区块链所应用的缓存链版本,该第一缓存版本信息也可以称为用于记录当前链版本。其中,缓存链版本可以用于指示在缓存数据中所缓存到的链版本。第二缓存版本信息用于指示在节点内存中所缓存到的具有最大的历史缓存版本生效高度的缓存链版本,第二缓存版本信息也可以称为用于记录最新链版本。历史缓存版本生效高度是指在确定该第二缓存版本信息时合约状态数据中的历史链版本的历史版本生效高度,应当理解的是,具有最大的历史缓存版本生效高度的缓存链版本,可以是指在确定该第二缓存版本信息时,合约状态数据中具有最大的历史版本生效高度的历史链版本,换言之,将在确定该第二缓存版本信息时合约状态数据中的历史版本参数信息中的版本生效高度确定为历史缓存版本生效高度,从而将具有最大的历史版本生效高度对应的历史链版本确定为第二缓存版本信息所指示的缓存链版本。
可以理解的是,在缓存数据中,还可以包括生效高度缓存信息,该生效高度缓存信息可以为第二缓存版本信息所指示的缓存链版本的版本生效高度。或者说,在缓存数据的第二缓存版本信息中,还可以包括第二缓存版本信息所指示的缓存链版本的版本生效高度。在缓存数据中存储该版本生效高度,可以用于区块链节点需要确定区块链当前所发布的最新的链版本的版本生效高度时,从缓存数据中快速读取该最新的链版本的版本生效高度,从而有助于提升确定区块链的最新链版本的版本生效高度的效率。
可以理解的是,对节点内存中的缓存数据进行更新,得到更新后的缓存数据,具体可以为对缓存数据中的第二缓存版本信息进行更新,得到更新后的缓存数据。
具体的,缓存数据中包括与区块链相关联的第一缓存版本信息和第二缓存版本信息;第一缓存版本信息用于指示在节点内存中所缓存到的区块链所应用的缓存链版本;第二缓存版本信息用于指示在节点内存中所缓存到的具有最大的历史缓存版本生效高度的缓存链版本;那么,基于更新后的目标历史版本参数信息,对节点内存中的缓存数据进行更新,得到更新后的缓存数据,可以包括以下步骤:基于更新后的目标历史版本参数信息中的历史链版本,对第二缓存版本信息所指示的缓存链版本进行更新,得到更新后的第二缓存版本信息;基于更新后的第二缓存版本信息和第一缓存版本信息确定更新后的缓存数据。
其中,可以理解的是,第二缓存版本信息所指示的缓存链版本,可以表示为所缓存的链版本的版本值,那么,对第二缓存版本信息所指示的缓存链版本进行更新,得到更新后的第二缓存版本信息,也就是将第二缓存版本信息所指示的缓存链版本的版本值更新为目标历史版本参数信息中的历史链版本的版本值。
可以理解的是,在对缓存数据中的第二缓存版本信息进行更新后,可以基于更新后的缓存数据确定待处理数据的业务逻辑数据,以基于业务逻辑数据对待处理数据进行业务处理。应当理解的是,缓存数据能够更快速地进行读取,因此,通过维护缓存数据中的第一缓存版本信息和第二缓存版本信息,有助于提升确定业务逻辑数据的效率,从而提升数据处理效率。
此处结合图示,对节点内存的缓存数据进行更新的过程进行阐述。请参见图6,图6是本申请实施例所提供的一种缓存数据更新的流程示意图。如图6所示,在节点内存的缓存数据中,可以包括第一缓存版本信息和第二缓存版本信息,此时,缓存数据601a中的第一缓存版本信息为版本T2,第二缓存版本信息为版本T2。更新后的目标历史版本参数信息为版本参数信息M3(如图3中的602a所示),版本参数信息M3中的链版本为版本T3,对应的版本生效高度为P3。进一步的,可以基于更新后的目标历史版本参数信息对缓存数据601a中的第二缓存版本信息进行更新,更新后的缓存数据参照缓存数据603a所示。可以看到,在缓存数据603a中,第一缓存版本信息仍为版本T2,第二缓存版本信息变更为版本T3。
可以理解的是,在某个计算机设备加入区块链网络(如原本的区块链节点掉电重启后重新加入区块链网络或者新的计算机设备加入区块链网络)时,则需要从区块链网络中的其他区块链节点中同步区块链数据,同步过来的区块链数据中可以包括链版本处理合约的合约状态数据,进而该加入区块链网络的区块链节点可以从链版本处理合约的合约状态数据中确定第一缓存版本信息和第二缓存版本信息,并将所确定的确定第一缓存版本信息和第二缓存版本信息存储至节点内存的缓存数据中,以便于基于缓存数据确定业务逻辑数据。以下以区块链节点重新加入区块链网络为例,对确定缓存数据的过程进行阐述。
具体的,该方法由区块链节点执行,区块链节点在第一发布时刻时属于区块链网络;在第一发布时刻时,节点内存中的缓存数据中包括第一发布时刻时的第一缓存版本信息和第一发布时刻时的第二缓存版本信息;链版本处理合约包括第一版本查询接口和第二版本查询接口,第一版本查询接口用于查询在指定区块高度时区块链的链版本;第二版本查询接口用于查询区块链的具有最大的历史版本生效高度的历史链版本;那么,本申请实施例还包括:在区块链节点在目标时刻接入区块链网络时,获取在目标时刻时区块链的区块链高度,调用第一版本查询接口从链版本处理合约的合约状态数据中,确定在区块高度为目标时刻时的区块链高度时区块链的链版本,基于所确定的链版本确定目标时刻时的第一缓存版本信息;目标时刻为第一发布时刻之后的时刻;调用第二版本查询接口,从链版本处理合约的合约状态数据中,确定出具有最大的历史版本生效高度的历史链版本,并基于所确定的历史链版本确定目标时刻时的第二缓存版本信息;基于目标时刻时的第一缓存版本信息和目标时刻时的第二缓存版本信息,确定目标时刻时节点内存中的缓存数据。
其中,该区块链网络可以为由用于维护区块链的区块链节点所组成的网络,比如,该区块链节点所属的区块链网络可以为图1中的区块链网络200a,该区块链节点可以为区块链网络200a的区块链节点11a。应当理解的是,在第一发布时刻,该区块链节点是接入区块链网络的。应当理解的是,节点内存的缓存数据中所包括的第一缓存版本信息和第二缓存版本信息是可以根据区块链高度的变化,以及第一业务对象所发送的链版本发布交易进行更新的,因此,在该第一发布时刻,节点内存中的缓存数据包括第一发布时刻时的第一缓存版本信息和第一发布时刻时的第二缓存版本信息。
可以理解的是,第一版本查询接口和第二版本查询接口的介绍可以参照上述相关描述,此处不做赘述。
其中,目标时刻可以为在第一发布时刻之后区块链节点接入区块链网络的时刻。应当理解的是,在第一发布时刻之后,目标时刻之前,该区块链节点可能存在掉电或网络断联等情况,导致其未接入区块链网络,进而可以在目标时刻重新接入区块链网络。
可以理解的是,获取在目标时刻时区块链的区块链高度,可以包括从区块链网络中的其他区块链节点获取区块链同步数据,进而确保该区块链节点中的区块链数据与其他区块链节点中的区块链数据保持一致,从而可以基于同步后的区块链数据确定出在目标时刻时区块链的区块链高度。应当理解的是,在目标时刻时区块链的区块链高度,可以是指在目标时刻时该区块链的最大区块高度。
可以理解的是,用于确定目标时刻时的缓存数据的合约状态数据,可以是指在区块链节点接入区块链网络后,基于同步后的区块链数据所确定的链版本处理合约的合约状态数据。
应当理解的是,确定在区块高度为目标时刻时的区块链高度时区块链的链版本,可以包括:从合约状态数据中,确定出历史版本生效高度小于或等于目标时刻时的区块链高度的链版本参数信息,并基于所确定的链版本参数信息中历史版本生效高度最大的链版本参数信息中的历史链版本,确定为在区块高度为目标时刻时的区块链高度时区块链的链版本。进而,可以基于在区块高度为目标时刻时的区块链高度时区块链的链版本,确定出目标时刻时的第一缓存版本信息,即在目标时刻时区块链所应用的链版本。
应当理解的是,确定出具有最大的历史版本生效高度的历史链版本,也就是确定出合约状态数据中的目标历史版本参数信息所对应的历史链版本。进而,可以基于所确定的历史链版本确定目标时刻时的第二缓存版本信息,即在目标时刻时区块链的最新链版本。
可以理解的是,目标时刻时节点内存中的缓存数据,与第一发布时刻时节点内存中的缓存数据可以相同也可以不同,这取决于在第一发布时刻至目标时刻这一段时间内,区块链高度的变化以及是否有新的链版本发布等情况,此处不做限定。由此可以在区块链节点掉电后,快速从同步到的区块链数据所包括的链版本处理合约的合约状态数据中,确定出需要缓存的当前链版本(即第一缓存版本信息)和需要缓存的最新链版本(即第二缓存版本信息),以用于后续确定待处理数据的业务逻辑数据,提升数据处理的效率。另外,在区块链节点重启后基于同步数据执行区块时,能够准确地确定出每个区块所对应的执行逻辑的链版本,避免了在同一个区块在不同节点执行时所采用的执行逻辑的版本不同,有助于提升区块链上的执行逻辑的可靠性,提升链版本管理的灵活性和可靠性。
在本申请实施例中,在获取到链版本发布交易时,可以基于链版本发布交易中的链版本参数信息,对链版本处理合约的合约状态数据中的具有最大版本生效高度的历史版本参数信息(即目标历史版本参数信息)进行更新,进而基于更新后的目标历史版本参数信息对缓存数据更新,从而后续可以基于更新后的缓存数据确定待处理数据的业务逻辑数据。由此可以通过链版本处理合约去记录针对区块链所提交的链版本,以便于基于链版本处理合约对区块链的各个链版本以及对应的链版本生效高度进行集中管理,有助于提升对区块链的链版本管理的灵活性。
进一步地,请参见图7,图7是本申请实施例提供的一种基于区块链的版本处理方法的流程示意图。该方法可由区块链节点来执行,比如,图1中的区块链节点11a。该方法至少可以包括以下步骤S201-步骤S209。
S201、获取第一业务对象通过第一业务终端发送的链版本发布交易;链版本发布交易中携带链版本参数信息和合约调用参数;链版本参数信息为第一业务对象在第一发布时刻针对区块链所提交的。
S202、基于合约调用参数,确定部署在区块链上的链版本处理合约;链版本处理合约用于在合约状态数据中记录与区块链相关联的N个历史版本参数信息;N为正整数;一个历史版本参数信息中具有一个历史链版本对应的一个历史版本生效高度,一个历史版本生效高度用于指示在启用一个历史链版本时的区块链高度;N个历史版本参数信息中具有最大的历史版本生效高度的历史版本参数信息为目标历史版本参数信息;目标历史版本参数信息为第一业务对象在第二发布时刻针对区块链所提交的;第二发布时刻为第一发布时刻之前的时刻。
S203、调用链版本处理合约,在将链版本参数信息写入合约状态数据时,通过链版本参数信息对目标历史版本参数信息进行更新,得到更新后的目标历史版本参数信息。
S204、基于更新后的目标历史版本参数信息,对节点内存中的缓存数据进行更新,得到更新后的缓存数据;更新后的缓存数据用于在获取到与第二业务对象相关联的待处理数据时,确定与待处理数据相关联的业务逻辑数据。
其中,步骤S201-S204的处理过程可以参照步骤S101-S104的相关描述,此处不做赘述。
S205、将更新后的缓存数据确定为目标缓存数据;目标缓存数据中的更新后的第二缓存版本信息为目标缓存版本信息。
其中,该目标缓存数据可以为更新后的缓存数据。可以理解的是,如上述,该缓存数据中可以包括第一缓存版本信息和第二缓存版本信息,且可以基于更新后的目标历史版本参数信息对第二缓存版本信息进行更新,因此目标缓存数据中可以包括更新后的第二缓存版本信息以及原本的第一缓存版本信息。该目标缓存版本信息可以是指目标缓存数据中的更新后的第二缓存版本信息。
应当理解的是,在得到更新后的目标历史版本参数信息时,链版本处理合约的合约状态数据中包括更新后的目标历史版本参数信息与N个历史版本参数信息。
应当理解的是,如上述,链版本处理合约包括第一版本查询接口,第一版本查询接口用于查询在指定区块高度时区块链的链版本。进而后续可以基于该第一版本查询接口去查询在确定待处理数据的业务逻辑数据时的区块链所应用的链版本。
S206、在获取到与第二业务对象相关联的待处理数据时,从目标缓存数据中获取目标缓存版本信息和第一缓存版本信息。
其中,该待处理数据可以为待进行处理的数据,该待处理数据可以为业务交易,也可以为区块,还可以为一些业务请求等等,此处不做限定。
该第一业务对象可以为用于向区块链节点发送待处理数据的业务对象。该第二业务对象可以与第一业务对象相同,也可以与第一业务对象不同,此处不做限定。
具体的,获取与第二业务对象相关联的待处理数据,可以包括以下步骤:在接收到由第二业务对象通过第二业务终端所发送的业务交易时,将业务交易确定为与第二业务对象相关联的待处理数据。
其中,换言之,与第二业务对象相关联的待处理数据可以为第二业务对象发送的业务交易。该第二业务终端可以是第二业务对象所对应的业务终端,比如,该第二业务终端可以为图1中的终端设备110b。该业务交易可以为用于进行业务处理的交易,比如,该业务交易可以为用于进行资源转移的交易,也可以为用于调用业务合约的交易,此处不做限定。
具体的,获取与第二业务对象相关联的待处理数据,可以包括以下步骤:在获取到包含第二业务对象所发送的业务交易的目标区块时,将目标区块确定为与第二业务对象相关联的待处理数据。
其中,该目标区块可以为包含第二业务对象所发送的业务交易的区块。换言之,与第二业务对象相关联的待处理数据,可以为包含第二业务对象所发送的业务交易的目标区块。
S207、在目标缓存版本信息与第一缓存版本信息不同时,获取区块链的区块链高度;所获取到的区块链高度为Q1;Q1为正整数;Q1大于或等于Q2,Q2用于指示第一缓存版本信息所对应的版本生效高度。
其中,应当理解的是,若目标缓存版本信息与第一缓存版本信息不同,则表示在获取到待处理数据时,可能存在未启用的最新的链版本,即第一缓存版本信息可能并不能表示当前区块链所需应用的链版本,因此需要通过链版本处理合约查询在获取到待处理数据时所需应用的链版本。
应当理解的是,此时所获取的区块链的区块链高度,可以是指在获取到待处理数据,且检测到目标缓存版本信息与第一缓存版本信息不同时区块链的最大区块高度。
其中,Q1用于指示所获取到的区块链高度。Q2用于指示第一缓存版本信息所对应的版本生效高度,并且,Q1大于或等于Q2。应当理解的是,第一缓存版本信息所对应的版本生效高度,是指第一缓存版本信息所指示的缓存链版本的版本生效高度。
S208、调用第一版本查询接口从链版本处理合约的合约状态数据中,查询在区块高度为Q1时区块链的链版本,将查询到的链版本确定为目标查询链版本。
其中,第一版本查询接口用于查询在指定区块高度时区块链的链版本。则区块高度为Q1就是第一版本查询接口所需要传参的指定区块高度。
目标查询链版本可以为基于第一版本查询接口查询到的在区块高度为Q1时区块链的链版本,即在区块高度为Q1时区块链所应用的链版本。
具体的,调用第一版本查询接口从链版本处理合约的合约状态数据中,查询区块链在区块高度为Q1时所应用的链版本,将查询到的链版本确定为目标查询链版本,可以包括以下步骤:通过第一版本查询接口从链版本处理合约的合约状态数据中,确定历史版本生效高度小于或等于Q1的历史版本参数信息;将历史版本生效高度小于或等于Q1的历史版本参数信息中,历史版本生效高度最大的历史版本参数信息所包括的历史链版本,确定为区块链在区块高度为Q1时所应用的链版本。
其中,应当理解的是,历史版本生效高度小于或等于Q1的历史版本参数信息,可以理解为在区块高度为Q1时已启用过的历史链版本的历史版本参数信息,那么,历史版本生效高度小于或等于Q1的历史版本参数信息中,历史版本生效高度最大的历史版本参数信息所包括的历史链版本,则表示在区块高度为Q1时正在应用的历史链版本的历史版本参数信息,由此可以确定出区块链在区块高度为Q1时所应用的链版本。
换言之,确定区块链在区块高度为Q1时所应用的链版本,也可以为历史版本生效高度小于或等于Q1的历史版本参数信息中,版本生效高度与Q1最接近的历史版本参数信息中的链版本。
请参见图8,图8是本申请实施例提供的一种确定链版本的示意图。在获取到待处理数据时,区块链高度为Q1。区块链已发布的链版本可以包括版本1、版本2和版本3。版本1所对应的版本生效高度为P1,版本2所对应的版本生效高度为P2,版本3所对应的版本生效高度为P3,并且,如图7所示,P1小于P2,P2小于Q1,Q1小于P3。在确定待处理数据的业务逻辑数据时,可以获取版本生效高度小于或等于Q1的链版本,即版本1和版本2,进而可以从版本1和版本2中确定出版本生效高度最大的链版本,即版本2,因此,对待处理数据的业务逻辑数据时区块链所应用的链版本应该为版本2。
S209、基于目标查询链版本确定与待处理数据相关联的业务逻辑数据,基于所确定的业务逻辑数据对待处理数据进行业务处理。
其中,基于目标查询链版本确定与待处理数据相关联的业务逻辑数据,可以为,在与待处理数据相关的各个链版本的逻辑处理数据中,将目标查询链版本所对应的逻辑处理数据确定为业务逻辑数据。应当理解的是,在区块链节点中,可以部署有在一定历史时间范围内(如一个月内、三个月内)所发布的链版本的逻辑处理数据。
例如,该待处理数据为第二业务对象发送的业务交易,在对业务交易进行交易解析时,需要获取用于对业务交易进行解析的业务逻辑数据。由于开发者发布了多个链版本,不同链版本中用于对业务交易进行解析的逻辑处理数据不同,因此需要通过本申请实施例,确定出在获取到待处理数据时区块链所应用的链版本,进而基于区块链所应用的链版本确定出用于对业务交易进行解析的业务逻辑数据,以基于所确定的业务逻辑数据对业务交易进行解析。
又如,该待处理数据可以为包含第二业务对象发送的业务交易的交易池中的批量的业务交易,在对交易池中的业务交易进行交易打包时,需要获取用于对交易池中的业务交易进行交易打包的业务逻辑数据。因此,可以通过本申请实施例,在获取到交易池中的批量的业务交易时区块链所应用的链版本,进而基于区块链所应用的链版本确定出对交易池中的业务交易进行交易打包的业务逻辑数据,以基于所确定的业务逻辑数据对交易池中的业务交易进行交易打包,得到一个区块。
具体的,目标缓存版本信息所指示的缓存链版本的版本生效高度为Q3;Q3为正整数;在Q1等于Q3时,目标查询链版本与第一缓存版本信息所指示的缓存链版本不同;那么,基于目标查询链版本确定与待处理数据相关联的业务逻辑数据,可以包括以下步骤:在目标查询链版本与第一缓存版本信息所指示的缓存链版本不同时,基于目标查询链版本对第一缓存版本信息进行更新,基于更新后的第一缓存版本信息所指示的缓存链版本确定与待处理数据相关联的业务逻辑数据。
应当理解的是,Q3可以是指目标缓存版本信息所指示的缓存链版本的版本生效高度。应当理解的是,在一个链版本在正式启用后,缓存数据中的第一缓存版本信息与第二缓存版本信息是相同的,在执行了链版本发布交易后,缓存数据中的第二缓存版本信息进行了更新,但第一缓存版本信息未进行更新,因此,会出现第一缓存版本与更新后的第二缓存版本信息(即目标缓存版本信息)不同的情况,随着区块链的运行,区块链高度的不断增加,在区块链高度(即Q1)等于Q3时,此时链版本发布交易所指示发布的链版本开始启用,因此,所获取到目标查询链版本与原本的第一缓存版本信息不同,进而需要对第一缓存版本信息进行更新,从而基于更新后的第一缓存版本信息所指示的缓存链版本确定与待处理数据相关联的业务逻辑数据。
具体的,目标缓存版本信息所指示的缓存链版本的版本生效高度为Q3;Q3为正整数;在Q1大于或等于Q2,且Q1小于Q3时,目标查询链版本与第一缓存版本信息所指示的缓存链版本相同;那么,基于目标查询链版本确定与待处理数据相关联的业务逻辑数据,可以包括以下步骤:在目标查询链版本与第一缓存版本信息所指示的缓存链版本相同时,基于第一缓存版本信息所指示的缓存链版本确定与待处理数据相关联的业务逻辑数据。
应当理解的是,Q3可以是指目标缓存版本信息所指示的缓存链版本的版本生效高度。应当理解的是,在一个链版本在正式启用,且对第一缓存版本信息及时更新后,缓存数据中的第一缓存版本信息与第二缓存版本信息是相同的,在执行了链版本发布交易后,缓存数据中的第二缓存版本信息进行了更新,但第一缓存版本信息未进行更新,因此,会出现第一缓存版本与更新后的第二缓存版本信息(即目标缓存版本信息)不同的情况。但是,由于区块链高度还未达到链版本发布交易所指示发布的链版本的版本生效高度,因此,仍采用原本的链版本,即所获取到目标查询链版本与原本的第一缓存版本信息相同,进而可以直接基于第一缓存版本信息所指示的缓存链版本确定与待处理数据相关联的业务逻辑数据。
具体的,在目标缓存版本信息与第一缓存版本信息相同时,基于目标缓存版本信息所指示的缓存链版本确定与待处理数据相关联的业务逻辑数据,基于所确定的业务逻辑数据对待处理数据进行业务处理。
其中,目标缓存版本信息与第一缓存版本信息相同,可以是由于在获取到该与第二业务对象相关联的待处理数据时,目标缓存版本信息所指示的缓存链版本已经开始启用,且在获取到该与第二业务对象相关联的待处理数据,由于确定其他待处理数据的业务逻辑数据或主动对缓存数据进行查询等操作,对第一缓存版本信息进行了更新,则所获取到的目标缓存版本信息与第一缓存版本信息相同,均为最新发布的链版本。进而可以直接基于目标缓存版本信息所指示的缓存链版本确定与待处理数据相关联的业务逻辑数据,以保证所确定的业务逻辑数据是已启用的最新的链版本所对应的业务逻辑数据,保证区块链上用于处理数据的业务逻辑数据的链版本的正确性,提升区块链的可靠性。
应当理解的是,在每次获取到待处理数据时,可以从缓存数据中获取第一缓存版本信息和第二缓存版本信息;在第一缓存版本信息和第二缓存版本信息不同时;获取在获取到待处理数据时区块链的区块链高度;调用第一版本查询接口从链版本处理合约的合约状态数据中,查询在区块高度为在获取到待处理数据时区块链的区块链高度时区块链的链版本,将查询到的链版本确定为第一查询链版本;基于第一查询链版本确定与待处理数据相关联的业务逻辑数据,基于所确定的业务逻辑数据对待处理数据进行业务处理。该第一查询链版本可以为在任一时刻获取到待处理数据时所查询到在获取到待处理数据时区块链的所应用的链版本。
可选的,在每次获取到待处理数据时,或者缓存数据中的第一缓存版本信息和第二缓存版本信息相同时,还可以通过第二版本查询接口查询在获取到待处理数据时合约状态数据中的具有最大历史版本生效高度的历史版本参数信息,进而将所确定的历史版本参数信息中的链版本确定为第二查询链版本,若第二查询链版本与目标缓存版本信息所指示的缓存链版本不同,则可以对第二缓存版本信息进行更新。由此可以保证缓存数据中的第二缓存版本信息是最新的链版本。基于此可以得到,缓存数据中所缓存的第二缓存版本信息,可以是在链版本发布交易上链时所自动对第二缓存版本信息进行更新的,也可以是在每次查询了具有最大历史版本生效高度的历史版本参数信息时对第二缓存版本信息进行更新的,由此可以保障当前所缓存的第二缓存版本信息中的缓存链版本是最新的链版本。
可以理解的是,缓存数据中的第一缓存版本信息与第二缓存版本信息不同时,可能是由于存在最新发布的链版本。在存在最新发布的链版本时,该最新发布的链版本可能已经启用(即区块链高度达到该最新发布的链版本的版本生效高度),也可能未启用(即区块链高度未达到该最新发布的链版本的版本生效高度)。例如,当前区块链高度为100,此时区块链的链版本为版本T1(版本T1的版本生效高度为70),即第一缓存版本信息和第二缓存版本信息此时均为版本T1。开发对象通过链版本发布交易指定在区块链高度为105时启用下一个链版本T2,即链版本T2的版本生效高度为T105,进而可以基于该链版本发布交易对链版本处理合约的合约状态数据进行更新,且可以将第二缓存版本信息更新为版本T2。进一步的,在区块链高度为100、101、102、103、104时,缓存数据中的第一缓存版本信息和第二缓存版本信息均不同(即第一缓存版本信息为版本T1,第二缓存版本信息为版本T2),且在区块链高度为100、101、102、103、104时区块链所应用的链版本均为版本T1,换言之,在通过第一版本查询接口查询到的链版本均为版本T1,进而基于版本T1的业务逻辑数据对待处理数据进行业务处理。在区块链高度达到105时,则可以通过第一版本查询接口查询到的链版本为版本T2,查询到的链版本与第一缓存版本信息不同,则可以基于版本T2对第一缓存版本信息进行更新,后续过程中,第一缓存版本信息和第二缓存版本相同,且均为版本T2,则在获取到待处理数据时,直接基于版本T2确定业务逻辑数据。
请参见图9,图9是本申请实施例所提供的一种确定业务逻辑数据的流程示意图。如图9所示,在获取到待处理数据时,获取缓存数据中的第一缓存版本信息和第二缓存版本信息(步骤S901)。其中,该第一缓存版本信息与第二缓存版本信息的介绍可以参照上述相关描述,此处不做赘述。进而,可以判断第一缓存版本信息和第二缓存版本信息是否相同(步骤S902)。若第一缓存版本信息和第二缓存版本信息相同,则基于第二缓存版本信息所指示的缓存链版本确定业务数据逻辑(步骤S903),此时表示区块链当前所启用的链版本即为最新的链版本(即具有最大版本生效高度的链版本)。若第一缓存版本信息和第二缓存版本信息不同,则通过第一版本查询接口确定在获取到待处理数据时区块链所应用的链版本(步骤S904),具体的,可以在获取到待处理数据时的区块链高度,进而基于所获取到的区块链高度调用第一版本查询接口查询对应的链版本,其具体的处理过程参照上述相关描述,此处不做赘述。进而,可以判断查询到的链版本与第一缓存版本信息是否相同(步骤S905)。若查询到的链版本与第一缓存版本信息相同,则基于原本的第一缓存版本信息所指示的缓存链版本确定业务数据逻辑(步骤S906),此时表示区块链存在暂未启用的最新的链版本,即当前所启用的链版本不为最新的链版本。若查询到的链版本与第一缓存版本信息不同,则对第一缓存版本信息进行更新(步骤S907),进而基于更新后的第一缓存版本信息所指示的缓存链版本确定业务数据逻辑(步骤S908),此时表示区块链的最新的链版本正好开始启用。由此可以通过对缓存数据中的内容进行判断,快速确定出待处理数据所需采用何种链版本所对应的业务逻辑数据进行业务处理,在保证确定链版本的准确性的同时,提升确定链版本所对应的业务逻辑数据的效率。
可以理解的是,在本申请实施例中,业务对象可以通过区块链节点查询区块链在指定区块高度时的链版本(即通过第一版本查询接口进行查询),以及可以查询区块链已发布的最新的链版本(即通过第二版本查询接口进行查询),有助于提升业务对象的区块链的链版本的了解度,并且可以方便开发者对区块链的链版本进行管理。
具体的,链版本处理合约包括第一版本查询接口,第一版本查询接口用于查询在指定区块高度时区块链的链版本;那么,本申请实施例还可以包括:获取第三业务对象通过第三业务终端提交的第一链版本查询请求;第一链版本查询请求用于查询在区块高度为P1时区块链的链版本;调用第一版本查询接口,从链版本处理合约的合约状态数据中,确定历史版本生效高度小于或等于P1的历史版本参数信息;从历史版本生效高度小于或等于P1的历史版本参数信息中,确定历史版本生效高度最大的历史版本参数信息,基于所确定的历史版本参数信息中的历史链版本,确定与第一链版本查询请求相关联的第一查询结果;将第一查询结果返回至第三业务终端。
其中,第一版本查询接口的介绍可以参照上述相关描述,此处不做赘述。其中,第三业务对象可以为用于查询在区块高度为P1时区块链的链版本的业务对象。该第三业务对象与第一业务对象、第二业务对象可以相同,也可以不同,此处不做限定。该第三业务终端,可以为第三业务对象所使用的业务终端,比如,该第三业务终端可以为图1中的终端设备110n。应当理解的是,若业务对象需要查询打包得到区块高度为F的区块的业务逻辑数据的链版本(或对区块高度为F的区块中的交易相关的业务逻辑数据的链版本),则需要查询在区块高度为F-1时的区块链的链版本。
其中,第一链版本查询请求用于查询在区块高度为P1时区块链的链版本。应当理解的是,该第一版本查询请求中可以携带待查询的区块高度(即P1)。
第一查询结果可以为第一版本查询请求所对应的查询结果。该第一查询结果即可以为基于第一版本查询接口所查询到的历史链版本。可选的,该第一查询结果中,还可以包括第一版本查询接口所查询到的历史链版本的版本生效高度、版本说明信息等内容,此处不做限定。应当理解的是,基于第一版本查询接口查询在区块高度为P1时区块链的链版本的过程,可以参照上述基于第一版本查询接口查询在区块高度为Q1时区块链所应用的链版本的相关描述,此处不做赘述。
进一步的,可以将第一查询结果返回至第三业务终端,以便于第三业务终端可以在终端页面上显示该第一查询结果,如可以显示查询到的链版本,以及链版本的版本生效高度和版本说明信息等内容,此处不做限定。从而第三业务对象可以通过第三业务终端的终端页面查看第一查询结果。
具体的,链版本处理合约包括第二版本查询接口,第二版本查询接口用于查询区块链的具有最大的历史版本生效高度的历史链版本;那么,本申请实施例还可以包括:获取第四业务对象通过第四业务终端提交的第二链版本查询请求;第二链版本查询请求用于查询区块链的具有最大的版本生效高度的链版本;调用第二版本查询接口,从链版本处理合约的合约状态数据中,确定历史版本生效高度最大的历史版本参数信息,基于所确定的历史版本参数信息中的历史链版本,确定为与第二链版本查询请求相关联的第二查询结果;将第二查询结果返回至第四业务终端。
其中,第二版本查询接口的介绍可以参照上述相关描述,此处不做赘述。其中,第四业务对象可以为用于查询区块链的具有最大的版本生效高度的链版本的业务对象。该第四业务对象与第一业务对象、第二业务对象可以相同,也可以不同,此处不做限定。该第四业务终端,可以为第四业务对象所使用的业务终端,比如,该第四业务终端可以为图1中的终端设备110n。
其中,第二链版本查询请求用于查询区块链的具有最大的版本生效高度的链版本。第二查询结果可以为第二版本查询请求所对应的查询结果。该第二查询结果即可以为基于第二版本查询接口所查询到的历史链版本。可选的,该第二查询结果中,还可以包括第二版本查询接口所查询到的历史链版本的版本生效高度、版本说明信息等内容,此处不做限定。应当理解的是,从链版本处理合约的合约状态数据中,确定历史版本生效高度最大的历史版本参数信息,也就是相当于确定合约状态数据中所记录的目标历史版本参数信息。
进一步的,可以将第二查询结果返回至第四业务终端,以便于第四业务终端可以在终端页面上显示该第二查询结果,如可以显示查询到的链版本,以及链版本的版本生效高度和版本说明信息等内容,此处不做限定。从而第四业务对象可以通过第四业务终端的终端页面查看第二查询结果。
可选的,在确定出第二查询结果时,还可以对缓存数据中的第二缓存版本信息进行更新,由此可以有助于提升缓存数据中所缓存的第二缓存版本的准确性,从而有助于提升确定区块链最新发布的链版本的准确性。可选的,在一些场景中,为了提升查询效率,还可以直接基于缓存数据中的第二缓存版本信息确定最新的链版本,从而确定出与第二版本查询请求相关联的查询结果。
在本申请实施例中,在获取到链版本发布交易时,可以基于链版本发布交易中的链版本参数信息,对链版本处理合约的合约状态数据中的具有最大版本生效高度的历史版本参数信息(即目标历史版本参数信息)进行更新,进而基于更新后的目标历史版本参数信息对缓存数据更新,从而后续可以基于更新后的缓存数据确定待处理数据的业务逻辑数据。由此可以通过链版本处理合约去记录针对区块链所提交的链版本,以便于基于链版本处理合约对区块链的各个链版本以及对应的链版本生效高度进行集中管理,有助于提升对区块链的链版本管理的灵活性。另外,通过在缓存数据中存储第一缓存版本信息和第二缓存版本信息,可以基于缓存数据快速确定出在获取到待处理数据时区块链的链版本,从而确定出对应的业务逻辑数据,由于缓存数据中的数据读取速度更快,由此可以提升确定待处理数据的链版本效率。
请参见图10,图10是本申请实施例提供的一种基于区块链的版本处理装置的结构示意图。如图10所示,基于区块链的版本处理装置1可以是运行于区块链节点(例如,上述区块链节点11c)的一个计算机程序(包括程序代码),例如该基于区块链的版本处理装置1为一个应用软件;可以理解的是,该基于区块链的版本处理装置1可以用于执行本申请实施例提供的基于区块链的版本处理方法中的相应步骤。如图10所示,该基于区块链的版本处理装置1可以包括:交易获取模块11、合约确定模块12、合约数据更新模块13、缓存数据更新模块14;
交易获取模块11,用于获取第一业务对象通过第一业务终端发送的链版本发布交易;链版本发布交易中携带链版本参数信息和合约调用参数;链版本参数信息为第一业务对象在第一发布时刻针对区块链所提交的;
合约确定模块12,用于基于合约调用参数,确定部署在区块链上的链版本处理合约;链版本处理合约用于在合约状态数据中记录与区块链相关联的N个历史版本参数信息;N为正整数;一个历史版本参数信息中具有一个历史链版本对应的一个历史版本生效高度,一个历史版本生效高度用于指示在启用一个历史链版本时的区块链高度;N个历史版本参数信息中具有最大的历史版本生效高度的历史版本参数信息为目标历史版本参数信息;目标历史版本参数信息为第一业务对象在第二发布时刻针对区块链所提交的;第二发布时刻为第一发布时刻之前的时刻;
合约数据更新模块13,用于调用链版本处理合约,在将链版本参数信息写入合约状态数据时,通过链版本参数信息对目标历史版本参数信息进行更新,得到更新后的目标历史版本参数信息;
缓存数据更新模块14,用于基于更新后的目标历史版本参数信息,对节点内存中的缓存数据进行更新,得到更新后的缓存数据;更新后的缓存数据用于在获取到与第二业务对象相关联的待处理数据时,确定与待处理数据相关联的业务逻辑数据。
其中,链版本参数信息包括区块链的目标链版本和目标链版本对应的目标版本生效高度;目标版本生效高度用于指示启用目标链版本时的区块链高度;目标历史版本参数信息中的历史链版本为目标历史链版本,目标历史版本参数信息中的历史版本生效高度为目标历史版本生效高度;目标版本生效高度大于目标历史版本生效高度;
其中,合约数据更新模块13,包括:版本更新单元131、高度更新单元132、参数信息确定单元133;
版本更新单元131,用于通过目标链版本对目标历史版本参数信息中的目标历史链版本进行更新,得到更新后的目标历史链版本;
高度更新单元132,用于通过目标版本生效高度对目标历史版本参数信息中的目标历史版本生效高度进行更新,得到更新后的目标历史版本生效高度;
参数信息确定单元133,用于基于更新后的目标历史链版本和更新后的目标历史版本生效高度,确定更新后的目标历史版本参数信息。
其中,版本更新单元131、高度更新单元132、参数信息确定单元133的处理逻辑可以参照上述图3实施例的相关描述,此处不做赘述。
其中,缓存数据中包括与区块链相关联的第一缓存版本信息和第二缓存版本信息;第一缓存版本信息用于指示在节点内存中所缓存到的区块链所应用的缓存链版本;第二缓存版本信息用于指示在节点内存中所缓存到的具有最大的历史缓存版本生效高度的缓存链版本;
其中,缓存数据更新模块14,包括:第二缓存版本更新单元141、更新缓存确定单元142;
第二缓存版本更新单元141,用于基于更新后的目标历史版本参数信息中的历史链版本,对第二缓存版本信息所指示的缓存链版本进行更新,得到更新后的第二缓存版本信息;
更新缓存确定单元142,用于基于更新后的第二缓存版本信息和第一缓存版本信息确定更新后的缓存数据。
其中,第二缓存版本更新单元141、更新缓存确定单元142的处理逻辑可以参照上述图3实施例的相关描述,此处不做赘述。
其中,链版本处理合约包括第一版本查询接口,第一版本查询接口用于查询在指定区块高度时区块链的链版本;在得到更新后的目标历史版本参数信息时,链版本处理合约的合约状态数据中包括更新后的目标历史版本参数信息与N个历史版本参数信息;
其中,基于区块链的版本处理装置1,还包括:目标缓存确定模块15、待处理数据获取模块16、第一信息比对模块17、链版本查询模块18、逻辑数据确定模块19;
目标缓存确定模块15,用于将更新后的缓存数据确定为目标缓存数据;目标缓存数据中的更新后的第二缓存版本信息为目标缓存版本信息;
待处理数据获取模块16,用于在获取到与第二业务对象相关联的待处理数据时,从目标缓存数据中获取目标缓存版本信息和第一缓存版本信息;
第一信息比对模块17,用于在目标缓存版本信息与第一缓存版本信息不同时,获取区块链的区块链高度;所获取到的区块链高度为Q1;Q1为正整数;Q1大于或等于Q2,Q2用于指示第一缓存版本信息所对应的版本生效高度;
链版本查询模块18,用于调用第一版本查询接口从链版本处理合约的合约状态数据中,查询在区块高度为Q1时区块链的链版本,将查询到的链版本确定为目标查询链版本;
逻辑数据确定模块19,用于基于目标查询链版本确定与待处理数据相关联的业务逻辑数据,基于所确定的业务逻辑数据对待处理数据进行业务处理。
其中,目标缓存确定模块15、待处理数据获取模块16、第一信息比对模块17、链版本查询模块18、逻辑数据确定模块19的处理逻辑可以参照上述图7实施例的相关描述,此处不做赘述。
其中,链版本查询模块18,包括:历史版本确定单元181、链版本确定单元182;
历史版本确定单元181,用于通过第一版本查询接口从链版本处理合约的合约状态数据中,确定历史版本生效高度小于或等于Q1的历史版本参数信息;
链版本确定单元182,用于将历史版本生效高度小于或等于Q1的历史版本参数信息中,历史版本生效高度最大的历史版本参数信息所包括的历史链版本,确定为区块链在区块高度为Q1时所应用的链版本。
其中,历史版本确定单元181、链版本确定单元182的处理逻辑可以参照上述图7实施例的相关描述,此处不做赘述。
其中,目标缓存版本信息所指示的缓存链版本的版本生效高度为Q3;Q3为正整数;在Q1等于Q3时,目标查询链版本与第一缓存版本信息所指示的缓存链版本不同;
其中,逻辑数据确定模块19,包括:第一逻辑数据确定单元191;
第一逻辑数据确定单元191,用于在目标查询链版本与第一缓存版本信息所指示的缓存链版本不同时,基于目标查询链版本对第一缓存版本信息进行更新,基于更新后的第一缓存版本信息所指示的缓存链版本确定与待处理数据相关联的业务逻辑数据。
其中,第一逻辑数据确定单元191的处理逻辑可以参照上述图7实施例的相关描述,此处不做赘述。
其中,目标缓存版本信息所指示的缓存链版本的版本生效高度为Q3;Q3为正整数;在Q1大于或等于Q2,且Q1小于Q3时,目标查询链版本与第一缓存版本信息所指示的缓存链版本相同;
其中,逻辑数据确定模块19,包括:第二逻辑数据确定单元192;
第二逻辑数据确定单元192,用于在目标查询链版本与第一缓存版本信息所指示的缓存链版本相同时,基于第一缓存版本信息所指示的缓存链版本确定与待处理数据相关联的业务逻辑数据。
其中,第二逻辑数据确定单元192的处理逻辑可以参照上述图7实施例的相关描述,此处不做赘述。
其中,基于区块链的版本处理装置1,还包括:第二信息比对模块20;
第二信息比对模块20,用于在目标缓存版本信息与第一缓存版本信息相同时,基于目标缓存版本信息所指示的缓存链版本确定与待处理数据相关联的业务逻辑数据,基于所确定的业务逻辑数据对待处理数据进行业务处理。
其中,第二信息比对模块20的处理逻辑可以参照上述图7实施例的相关描述,此处不做赘述。
其中,方法由区块链节点执行,区块链节点在第一发布时刻时属于区块链网络;在第一发布时刻时,节点内存中的缓存数据中包括第一发布时刻时的第一缓存版本信息和第一发布时刻时的第二缓存版本信息;链版本处理合约包括第一版本查询接口和第二版本查询接口,第一版本查询接口用于查询在指定区块高度时区块链的链版本;第二版本查询接口用于查询区块链的具有最大的历史版本生效高度的历史链版本;
其中,基于区块链的版本处理装置1,还包括:节点接入模块21、缓存版本信息确定模块22、缓存数据确定模块23;
节点接入模块21,用于在区块链节点在目标时刻接入区块链网络时,获取在目标时刻时区块链的区块链高度,调用第一版本查询接口从链版本处理合约的合约状态数据中,确定在区块高度为目标时刻时的区块链高度时区块链的链版本,基于所确定的链版本确定目标时刻时的第一缓存版本信息;目标时刻为第一发布时刻之后的时刻;
缓存版本信息确定模块22,用于调用第二版本查询接口,从链版本处理合约的合约状态数据中,确定出具有最大的历史版本生效高度的历史链版本,并基于所确定的历史链版本确定目标时刻时的第二缓存版本信息;
缓存数据确定模块23,用于基于目标时刻时的第一缓存版本信息和目标时刻时的第二缓存版本信息,确定目标时刻时节点内存中的缓存数据。
其中,节点接入模块21、缓存版本信息确定模块22、缓存数据确定模块23的处理逻辑可以参照上述图3实施例的相关描述,此处不做赘述。
其中,基于区块链的版本处理装置1,还包括:第一数据确定模块24;
第一数据确定模块24,用于在接收到由第二业务对象通过第二业务终端所发送的业务交易时,将业务交易确定为与第二业务对象相关联的待处理数据。
其中,第一数据确定模块24的处理逻辑可以参照上述图7实施例的相关描述,此处不做赘述。
其中,基于区块链的版本处理装置1,还包括:第二数据确定模块25;
第二数据确定模块25,用于在获取到包含第二业务对象所发送的业务交易的目标区块时,将目标区块确定为与第二业务对象相关联的待处理数据。
其中,第二数据确定模块25的处理逻辑可以参照上述图7实施例的相关描述,此处不做赘述。
其中,链版本处理合约包括第一版本查询接口,第一版本查询接口用于查询在指定区块高度时区块链的链版本;
其中,基于区块链的版本处理装置1,还包括:第一数据查询模块26;
第一数据查询模块26,用于:
获取第三业务对象通过第三业务终端提交的第一链版本查询请求;第一链版本查询请求用于查询在区块高度为P1时区块链的链版本;
调用第一版本查询接口,从链版本处理合约的合约状态数据中,确定历史版本生效高度小于或等于P1的历史版本参数信息;
从历史版本生效高度小于或等于P1的历史版本参数信息中,确定历史版本生效高度最大的历史版本参数信息,基于所确定的历史版本参数信息中的历史链版本,确定与第一链版本查询请求相关联的第一查询结果;
将第一查询结果返回至第三业务终端。
其中,第一数据查询模块26的处理逻辑可以参照上述图7实施例的相关描述,此处不做赘述。
其中,链版本处理合约包括第二版本查询接口,第二版本查询接口用于查询区块链的具有最大的历史版本生效高度的历史链版本;
其中,基于区块链的版本处理装置1,还包括:第二数据查询模块27;
获取第四业务对象通过第四业务终端提交的第二链版本查询请求;第二链版本查询请求用于查询区块链的具有最大的版本生效高度的链版本;
调用第二版本查询接口,从链版本处理合约的合约状态数据中,确定历史版本生效高度最大的历史版本参数信息,基于所确定的历史版本参数信息中的历史链版本,确定为与第二链版本查询请求相关联的第二查询结果;
将第二查询结果返回至第四业务终端。
其中,第二数据查询模块27的处理逻辑可以参照上述图7实施例的相关描述,此处不做赘述。
请参见图11,图11是本申请实施例提供的一种计算机设备的结构示意图。如图11所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图11所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图11所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以执行前文任一个所对应实施例中对该数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的基于区块链的版本处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
此外,这里需要指出的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文任一个所对应实施例提供的方法。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (17)

1.一种基于区块链的版本处理方法,其特征在于,所述方法包括:
获取第一业务对象通过第一业务终端发送的链版本发布交易;所述链版本发布交易中携带链版本参数信息和合约调用参数;所述链版本参数信息为所述第一业务对象在第一发布时刻针对区块链所提交的;
基于所述合约调用参数,确定部署在所述区块链上的链版本处理合约;所述链版本处理合约用于在合约状态数据中记录与所述区块链相关联的N个历史版本参数信息;N为正整数;一个历史版本参数信息中具有一个历史链版本对应的一个历史版本生效高度,一个历史版本生效高度用于指示在启用一个历史链版本时的区块链高度;所述N个历史版本参数信息中具有最大的历史版本生效高度的历史版本参数信息为目标历史版本参数信息;所述目标历史版本参数信息为所述第一业务对象在第二发布时刻针对所述区块链所提交的;所述第二发布时刻为所述第一发布时刻之前的时刻;
调用所述链版本处理合约,在将所述链版本参数信息写入所述合约状态数据时,通过所述链版本参数信息对所述目标历史版本参数信息进行更新,得到更新后的目标历史版本参数信息;
基于所述更新后的目标历史版本参数信息,对节点内存中的缓存数据进行更新,得到更新后的缓存数据;所述更新后的缓存数据用于在获取到与第二业务对象相关联的待处理数据时,确定与所述待处理数据相关联的业务逻辑数据。
2.根据权利要求1所述的方法,其特征在于,所述链版本参数信息包括所述区块链的目标链版本和所述目标链版本对应的目标版本生效高度;所述目标版本生效高度用于指示启用所述目标链版本时的区块链高度;所述目标历史版本参数信息中的历史链版本为目标历史链版本,所述目标历史版本参数信息中的历史版本生效高度为目标历史版本生效高度;所述目标版本生效高度大于所述目标历史版本生效高度;
所述通过所述链版本参数信息对所述目标历史版本参数信息进行更新,得到更新后的目标历史版本参数信息,包括:
通过所述目标链版本对所述目标历史版本参数信息中的所述目标历史链版本进行更新,得到更新后的目标历史链版本;
通过所述目标版本生效高度对所述目标历史版本参数信息中的所述目标历史版本生效高度进行更新,得到更新后的目标历史版本生效高度;
基于所述更新后的目标历史链版本和所述更新后的目标历史版本生效高度,确定更新后的目标历史版本参数信息。
3.根据权利要求1所述的方法,其特征在于,所述缓存数据中包括与所述区块链相关联的第一缓存版本信息和第二缓存版本信息;所述第一缓存版本信息用于指示在所述节点内存中所缓存到的所述区块链所应用的缓存链版本;所述第二缓存版本信息用于指示在所述节点内存中所缓存到的具有最大的历史缓存版本生效高度的缓存链版本;
所述基于所述更新后的目标历史版本参数信息,对节点内存中的缓存数据进行更新,得到更新后的缓存数据,包括:
基于所述更新后的目标历史版本参数信息中的历史链版本,对所述第二缓存版本信息所指示的缓存链版本进行更新,得到更新后的第二缓存版本信息;
基于所述更新后的第二缓存版本信息和所述第一缓存版本信息确定更新后的缓存数据。
4.根据权利要求3所述的方法,其特征在于,所述链版本处理合约包括第一版本查询接口,所述第一版本查询接口用于查询在指定区块高度时所述区块链的链版本;在得到更新后的目标历史版本参数信息时,所述链版本处理合约的合约状态数据中包括所述更新后的目标历史版本参数信息与所述N个历史版本参数信息;
所述方法还包括:
将所述更新后的缓存数据确定为目标缓存数据;所述目标缓存数据中的所述更新后的第二缓存版本信息为目标缓存版本信息;
在获取到与所述第二业务对象相关联的待处理数据时,从所述目标缓存数据中获取所述目标缓存版本信息和所述第一缓存版本信息;
在所述目标缓存版本信息与所述第一缓存版本信息不同时,获取所述区块链的区块链高度;所获取到的区块链高度为Q1;Q1为正整数;Q1大于或等于Q2,Q2用于指示所述第一缓存版本信息所对应的版本生效高度;
调用所述第一版本查询接口从所述链版本处理合约的合约状态数据中,查询在区块高度为Q1时所述区块链的链版本,将查询到的链版本确定为目标查询链版本;
基于所述目标查询链版本确定与所述待处理数据相关联的业务逻辑数据,基于所确定的业务逻辑数据对所述待处理数据进行业务处理。
5.根据权利要求4所述的方法,其特征在于,所述调用所述第一版本查询接口从所述链版本处理合约的合约状态数据中,查询在区块高度为Q1时所述区块链的链版本,包括:
通过所述第一版本查询接口从所述链版本处理合约的合约状态数据中,确定历史版本生效高度小于或等于Q1的历史版本参数信息;
将历史版本生效高度小于或等于Q1的历史版本参数信息中,历史版本生效高度最大的历史版本参数信息所包括的历史链版本,确定为所述区块链在区块高度为Q1时所应用的链版本。
6.根据权利要求4所述的方法,其特征在于,所述目标缓存版本信息所指示的缓存链版本的版本生效高度为Q3;Q3为正整数;在Q1等于Q3时,所述目标查询链版本与所述第一缓存版本信息所指示的缓存链版本不同;
所述基于所述目标查询链版本确定与所述待处理数据相关联的业务逻辑数据,包括:
在所述目标查询链版本与所述第一缓存版本信息所指示的缓存链版本不同时,基于所述目标查询链版本对所述第一缓存版本信息进行更新,基于更新后的第一缓存版本信息所指示的缓存链版本确定与所述待处理数据相关联的业务逻辑数据。
7.根据权利要求4所述的方法,其特征在于,所述目标缓存版本信息所指示的缓存链版本的版本生效高度为Q3;Q3为正整数;在Q1大于或等于Q2,且Q1小于Q3时,所述目标查询链版本与所述第一缓存版本信息所指示的缓存链版本相同;
所述基于所述目标查询链版本确定与所述待处理数据相关联的业务逻辑数据,包括:
在所述目标查询链版本与所述第一缓存版本信息所指示的缓存链版本相同时,基于所述第一缓存版本信息所指示的缓存链版本确定与所述待处理数据相关联的业务逻辑数据。
8.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述目标缓存版本信息与所述第一缓存版本信息相同时,基于所述目标缓存版本信息所指示的缓存链版本确定与所述待处理数据相关联的业务逻辑数据,基于所确定的业务逻辑数据对所述待处理数据进行业务处理。
9.根据权利要求1所述的方法,其特征在于,所述方法由区块链节点执行,所述区块链节点在第一发布时刻时属于区块链网络;在所述第一发布时刻时,所述节点内存中的缓存数据中包括所述第一发布时刻时的第一缓存版本信息和所述第一发布时刻时的第二缓存版本信息;所述链版本处理合约包括第一版本查询接口和第二版本查询接口,所述第一版本查询接口用于查询在指定区块高度时所述区块链的链版本;所述第二版本查询接口用于查询所述区块链的具有最大的历史版本生效高度的历史链版本;
所述方法还包括:
在所述区块链节点在目标时刻接入所述区块链网络时,获取在所述目标时刻时所述区块链的区块链高度,调用所述第一版本查询接口从所述链版本处理合约的合约状态数据中,确定在区块高度为所述目标时刻时的区块链高度时所述区块链的链版本,基于所确定的链版本确定所述目标时刻时的第一缓存版本信息;所述目标时刻为所述第一发布时刻之后的时刻;
调用所述第二版本查询接口,从所述链版本处理合约的合约状态数据中,确定出具有最大的历史版本生效高度的历史链版本,并基于所确定的历史链版本确定所述目标时刻时的第二缓存版本信息;
基于所述目标时刻时的第一缓存版本信息和所述目标时刻时的第二缓存版本信息,确定所述目标时刻时所述节点内存中的缓存数据。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到由所述第二业务对象通过第二业务终端所发送的业务交易时,将所述业务交易确定为与所述第二业务对象相关联的待处理数据。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在获取到包含所述第二业务对象所发送的业务交易的目标区块时,将所述目标区块确定为与所述第二业务对象相关联的待处理数据。
12.根据权利要求1所述的方法,其特征在于,所述链版本处理合约包括第一版本查询接口,所述第一版本查询接口用于查询在指定区块高度时所述区块链的链版本;
所述方法还包括:
获取第三业务对象通过第三业务终端提交的第一链版本查询请求;所述第一链版本查询请求用于查询在区块高度为P1时所述区块链的链版本;
调用所述第一版本查询接口,从所述链版本处理合约的合约状态数据中,确定历史版本生效高度小于或等于P1的历史版本参数信息;
从历史版本生效高度小于或等于P1的历史版本参数信息中,确定历史版本生效高度最大的历史版本参数信息,基于所确定的历史版本参数信息中的历史链版本,确定与所述第一链版本查询请求相关联的第一查询结果;
将所述第一查询结果返回至所述第三业务终端。
13.根据权利要求1所述的方法,其特征在于,所述链版本处理合约包括第二版本查询接口,所述第二版本查询接口用于查询所述区块链的具有最大的历史版本生效高度的历史链版本;
所述方法还包括:
获取第四业务对象通过第四业务终端提交的第二链版本查询请求;所述第二链版本查询请求用于查询所述区块链的具有最大的版本生效高度的链版本;
调用所述第二版本查询接口,从所述链版本处理合约的合约状态数据中,确定历史版本生效高度最大的历史版本参数信息,基于所确定的历史版本参数信息中的历史链版本,确定为与所述第二链版本查询请求相关联的第二查询结果;
将所述第二查询结果返回至所述第四业务终端。
14.一种基于区块链的版本处理装置,其特征在于,所述装置包括:
交易获取模块,用于获取第一业务对象通过第一业务终端发送的链版本发布交易;所述链版本发布交易中携带链版本参数信息和合约调用参数;所述链版本参数信息为所述第一业务对象在第一发布时刻针对区块链所提交的;
合约确定模块,用于基于所述合约调用参数,确定部署在所述区块链上的链版本处理合约;所述链版本处理合约用于在合约状态数据中记录与所述区块链相关联的N个历史版本参数信息;N为正整数;一个历史版本参数信息中具有一个历史链版本对应的一个历史版本生效高度,一个历史版本生效高度用于指示在启用一个历史链版本时的区块链高度;所述N个历史版本参数信息中具有最大的历史版本生效高度的历史版本参数信息为目标历史版本参数信息;所述目标历史版本参数信息为所述第一业务对象在第二发布时刻针对所述区块链所提交的;所述第二发布时刻为所述第一发布时刻之前的时刻;
合约数据更新模块,用于调用所述链版本处理合约,在将所述链版本参数信息写入所述合约状态数据时,通过所述链版本参数信息对所述目标历史版本参数信息进行更新,得到更新后的目标历史版本参数信息;
缓存数据更新模块,用于基于所述更新后的目标历史版本参数信息,对节点内存中的缓存数据进行更新,得到更新后的缓存数据;所述更新后的缓存数据用于在获取到与第二业务对象相关联的待处理数据时,确定与所述待处理数据相关联的业务逻辑数据。
15.一种计算机设备,其特征在于,包括存储器和处理器;
所述存储器与所述处理器相连,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-13任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-13任一项所述的方法。
17.一种计算机程序产品,其特征在于,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1-13任一项所述的方法。
CN202311426965.2A 2023-10-30 2023-10-30 基于区块链的版本处理方法、装置及相关设备 Pending CN117453654A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311426965.2A CN117453654A (zh) 2023-10-30 2023-10-30 基于区块链的版本处理方法、装置及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311426965.2A CN117453654A (zh) 2023-10-30 2023-10-30 基于区块链的版本处理方法、装置及相关设备

Publications (1)

Publication Number Publication Date
CN117453654A true CN117453654A (zh) 2024-01-26

Family

ID=89590597

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311426965.2A Pending CN117453654A (zh) 2023-10-30 2023-10-30 基于区块链的版本处理方法、装置及相关设备

Country Status (1)

Country Link
CN (1) CN117453654A (zh)

Similar Documents

Publication Publication Date Title
US11875400B2 (en) Systems, methods, and apparatuses for dynamically assigning nodes to a group within blockchains based on transaction type and node intelligence using distributed ledger technology (DLT)
CN110933163B (zh) 区块链合约部署方法、装置、设备以及存储介质
CN110431577B (zh) 用于检测重放攻击的系统和方法
WO2021233049A1 (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
CN111445333A (zh) 区块生成方法、装置、计算机设备以及存储介质
CN112632629B (zh) 基于区块链的投票管理方法、装置、介质及电子设备
CN111931220B (zh) 区块链网络的共识处理方法、装置、介质及电子设备
CN111488372A (zh) 一种数据处理方法、设备及存储介质
CN113011883A (zh) 一种数据处理方法、装置、设备及存储介质
CN110930254A (zh) 基于区块链的数据处理方法、装置、终端及介质
US20230370285A1 (en) Block-chain-based data processing method, computer device, computer-readable storage medium
CN111488626A (zh) 基于区块链的数据处理方法、装置、设备及介质
CN110660466A (zh) 结合区块链的物联网的个人健康数据上链方法及系统
CN113034281A (zh) 基于区块链的业务数据处理方法、相关系统及节点
CN115114372A (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
CN111343212B (zh) 消息处理方法、装置、设备以及存储介质
EP4040720B1 (en) Secure identity card using unclonable functions
CN111327680A (zh) 认证数据同步方法、装置、系统、计算机设备和存储介质
CN117453654A (zh) 基于区块链的版本处理方法、装置及相关设备
CN112926981B (zh) 用于区块链的交易信息处理方法、装置、介质及电子设备
CN116070191A (zh) 信息处理方法及其装置、存储介质、程序产品
CN117010889A (zh) 数据处理方法、装置及设备、介质、产品
CN111953546B (zh) 基于区块链系统的物联网设备管理方法和智能家居系统
CN116760632B (zh) 数据处理方法、装置、设备及可读存储介质
CN117057806B (zh) 基于区块链的数据处理方法、装置及相关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication