CN116841991A - 链上数据管理方法及其装置、存储介质、程序产品 - Google Patents
链上数据管理方法及其装置、存储介质、程序产品 Download PDFInfo
- Publication number
- CN116841991A CN116841991A CN202210287102.0A CN202210287102A CN116841991A CN 116841991 A CN116841991 A CN 116841991A CN 202210287102 A CN202210287102 A CN 202210287102A CN 116841991 A CN116841991 A CN 116841991A
- Authority
- CN
- China
- Prior art keywords
- transaction
- information
- block
- hash
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000003860 storage Methods 0.000 title claims abstract description 52
- 238000013523 data management Methods 0.000 title claims description 60
- 238000012545 processing Methods 0.000 claims description 82
- 238000012795 verification Methods 0.000 claims description 70
- 238000004364 calculation method Methods 0.000 claims description 47
- 238000007726 management method Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 abstract description 23
- 230000003993 interaction Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 28
- 238000012546 transfer Methods 0.000 description 18
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 3
- 238000012550 audit Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000012954 risk control Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000012098 association analyses Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 229910052500 inorganic mineral Inorganic materials 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011707 mineral Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种链上数据管理方法及其装置、存储介质、程序产品,从交易池获取包括第一交易数据、第一交易有效期信息和第一交易哈希信息的目标交易信息后,当根据第一交易有效期信息和上链时间戳确定第一交易数据未超期,创建包括第一交易数据、第一交易有效期信息和第一交易哈希信息的目标区块,并在区块链网络达成对目标区块的共识后,将目标区块添加到区块链,当根据读取的第一交易有效期信息确定第一交易数据已超期,删除第一交易数据但保留第一交易哈希信息。本申请能够节省节点的存储空间,从而提高节点的运行效率。本申请可以广泛应用于例如智能手机、平板电脑、计算机、智能语音交互设备、智能家电、车载终端等设备的数据安全管理技术中。
Description
技术领域
本申请涉及数据管理技术领域,尤其涉及一种链上数据管理方法及其装置、存储介质、程序产品。
背景技术
目前的区块链系统中,每个节点都会保存一份完整的区块链信息,包括各个区块的区块信息和交易数据。当需要对区块进行验证时,需要使用区块的区块信息和交易数据进行验证,因此,目前的区块链系统中,节点中所保存的区块信息和交易数据都是不能删除的。但是,正由于这些数据不能被删除,导致了在业务系统不再使用区块链上的数据时,节点也无法删除这些没有价值的交易数据,从而导致节点所保存的数据量越来越大,不仅会造成资源浪费,还会影响节点的运行效率。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本申请实施例提供了一种链上数据管理方法及其装置、存储介质、程序产品,能够节省节点的存储空间,从而提高节点的运行效率。
一方面,本申请实施例提供了一种链上数据管理方法,包括以下步骤:
从交易池中获取目标交易信息,所述目标交易信息包括第一交易数据、第一交易有效期信息和第一交易哈希信息,其中,所述第一交易哈希信息根据对所述第一交易数据和所述第一交易有效期信息进行哈希计算而得到;
生成包括上链时间戳的候选区块,当根据所述第一交易有效期信息和所述上链时间戳确定所述第一交易数据未超期,根据所述候选区块和所述目标交易信息得到目标区块;
在区块链网络中广播所述目标区块,使得所述区块链网络中的参与节点对所述目标区块进行共识处理;
当所述区块链网络中的参与节点达成对所述目标区块的共识,将所述目标区块添加到区块链;
响应于对所述目标区块中的数据进行管理,读取所述目标区块中的所述第一交易有效期信息;
当根据所述第一交易有效期信息确定所述第一交易数据已超期,删除所述第一交易数据,保留所述第一交易哈希信息,其中,所述第一交易哈希信息用于作为对所述目标区块进行验证的验证参数。
另一方面,本申请实施例还提供了一种链上数据管理装置,包括:
信息获取单元,用于从交易池中获取目标交易信息,所述目标交易信息包括第一交易数据、第一交易有效期信息和第一交易哈希信息,其中,所述第一交易哈希信息根据对所述第一交易数据和所述第一交易有效期信息进行哈希计算而得到;
区块创建单元,用于生成包括上链时间戳的候选区块,当根据所述第一交易有效期信息和所述上链时间戳确定所述第一交易数据未超期,根据所述候选区块和所述目标交易信息得到目标区块;
区块广播单元,用于在区块链网络中广播所述目标区块,使得所述区块链网络中的参与节点对所述目标区块进行共识处理;
区块添加单元,用于当所述区块链网络中的参与节点达成对所述目标区块的共识,将所述目标区块添加到区块链;
信息读取单元,用于响应于对所述目标区块中的数据进行管理,读取所述目标区块中的所述第一交易有效期信息;
信息删除单元,用于当根据所述第一交易有效期信息确定所述第一交易数据已超期,删除所述第一交易数据,保留所述第一交易哈希信息,其中,所述第一交易哈希信息用于作为对所述目标区块进行验证的验证参数。
可选地,所述候选区块包括区块头和区块体;所述区块创建单元还用于:
根据所述第一交易哈希信息计算得到所述目标交易信息的第一交易根哈希;
将所述第一交易根哈希填充到所述区块头,以及将所述目标交易信息填充到所述区块体,得到目标区块。
可选地,所述链上数据管理装置还包括:
信息关联单元,用于建立所述区块头、所述第一交易数据、所述上链时间戳、所述第一交易根哈希、所述第一交易有效期信息和所述第一交易哈希信息之间的第一关联关系;
第一保存单元,用于将所述区块头保存至第一数据库;
第二保存单元,用于将所述第一交易数据保存至第二数据库;
第三保存单元,用于将所述上链时间戳、所述第一交易根哈希、所述第一交易有效期信息和所述第一交易哈希信息保存至第三数据库。
可选地,所述信息删除单元还用于:
当所述第一交易有效期信息不等于预设阈值且小于当前时间,确定所述第一交易数据已超期;
根据所述第一关联关系确定与所述第一交易有效期信息对应的所述第一交易哈希信息;
根据所述第一交易哈希信息和所述第一关联关系确定所述第一交易数据在所述第二数据库中的存储位置;
在所述第二数据库中删除所述第一交易数据。
可选地,所述链上数据管理装置还包括:
信息接收单元,用于接收由客户端发送的所述目标交易信息;
超期判断单元,用于根据所述目标交易信息中的所述第一交易有效期信息判断所述第一交易数据是否超期;
验证处理单元,用于当确定所述第一交易数据未超期,对所述目标交易信息进行验证处理;
第四保存单元,用于当验证通过,将所述目标交易信息保存至所述交易池。
可选地,所述区块创建单元还用于:
当所述第一交易有效期信息等于预设阈值,确定所述第一交易数据未超期;
或者,
当所述第一交易有效期信息不等于预设阈值且大于所述上链时间戳,确定所述第一交易数据未超期。
可选地,所述目标交易信息的数量为多个;所述区块创建单元还用于:
对每两个所述目标交易信息中的所述第一交易哈希信息进行合并与哈希处理,得到多个第一合并哈希信息;
对每两个所述第一合并哈希信息进行所述合并与哈希处理,得到多个第二合并哈希信息;
对每两个所述第二合并哈希信息进行所述合并与哈希处理,直到得到数量唯一的最后合并哈希信息;
将得到的所述最后合并哈希信息确定为所有所述目标交易信息的第一交易根哈希。
可选地,所述区块广播单元还用于:
对所述第一交易有效期信息和所述第一交易哈希信息进行签名处理,得到签名后的目标区块;
在区块链网络中广播所述签名后的目标区块,使得所述区块链网络中的参与节点对所述签名后的目标区块进行共识处理。
可选地,所述链上数据管理装置还包括:
区块接收单元,用于接收由所述区块链网络中的参与节点发送的待验证区块,所述待验证区块包括第二交易根哈希、第二交易数据、第二交易有效期信息和第二交易哈希信息,其中,所述第二交易有效期信息用于表征所述第二交易数据在所述待验证区块中的有效时间,所述第二交易哈希信息根据对所述第二交易数据和所述第二交易有效期信息进行哈希计算而得到,所述第二交易根哈希根据对所述第二交易哈希信息进行哈希计算而得到;
哈希计算单元,用于根据所述第二交易哈希信息计算得到第三交易根哈希;
共识处理单元,用于当所述第三交易根哈希与所述第二交易根哈希相一致,确认所述待验证区块通过共识;
第五保存单元,用于将所述第二交易根哈希、所述第二交易数据、所述第二交易有效期信息和所述第二交易哈希信息保存至数据库。
可选地,所述第五保存单元还用于:
建立所述待验证区块的区块头、所述第二交易根哈希、所述第二交易数据、所述第二交易有效期信息和所述第二交易哈希信息之间的第二关联关系;
将所述待验证区块的区块头保存至第一数据库;
将所述第二交易数据保存至第二数据库;
将所述第二交易根哈希、所述第二交易有效期信息和所述第二交易哈希信息保存至第三数据库。
可选地,所述第二交易哈希信息的数量为多个;所述哈希计算单元还用于:
对每两个所述第二交易哈希信息进行合并与哈希处理,得到多个第三合并哈希信息;
对每两个所述第三合并哈希信息进行所述合并与哈希处理,得到多个第四合并哈希信息;
对每两个所述第四合并哈希信息进行所述合并与哈希处理,直到得到数量唯一的最终合并哈希信息;
将得到的所述最终合并哈希信息确定为第三交易根哈希。
另一方面,本申请实施例还提供了一种链上数据管理装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当至少一个所述程序被至少一个所述处理器执行时实现如前面所述的链上数据管理方法。
另一方面,本申请实施例还提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序被处理器执行时用于实现如前面所述的链上数据管理方法。
另一方面,本申请实施例还提供了一种计算机程序产品,包括计算机程序或计算机指令,所述计算机程序或所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序或所述计算机指令,所述处理器执行所述计算机程序或所述计算机指令,使得所述计算机设备执行如前面所述的链上数据管理方法。
本申请实施例至少包括以下有益效果:从交易池中获取包括第一交易数据、第一交易有效期信息和第一交易哈希信息的目标交易信息之后,生成包括上链时间戳的候选区块,当根据第一交易有效期信息和上链时间戳确定第一交易数据未超期时,根据候选区块和目标交易信息得到目标区块,在目标区块通过了区块链网络的共识处理而将目标区块添加到区块链之后,响应于对目标区块中的数据进行管理,读取第一交易有效期信息,当根据第一交易有效期信息确定第一交易数据已超期时,可以删除第一交易数据,从而释放节点的存储空间,达到节省节点的存储空间的目的,而且,由于节点所保存的数据量得到了减少,因此节点对存储空间的数据查询效率和数据插入效率均可以得到提升,从而能够提高节点的运行效率。另外,由于在删除第一交易数据时保留了第一交易哈希信息,并且第一交易哈希信息根据对第一交易数据和第一交易有效期信息进行哈希计算而得到,因此可以使用第一交易哈希信息作为对目标区块进行验证的验证参数,在删除了过期的第一交易数据的情况下,仍然可以使用第一交易哈希信息对目标区块进行验证,从而可以保证对目标区块的验证正确性,不对区块链产生影响。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请一个实施例提供的一种链上数据管理方法的流程图;
图3是本申请一个实施例提供的终端节点向区块节点发送交易信息的流程图;
图4是图2中步骤120的一种具体方法流程图;
图5是本申请一个实施例提供的对过期的第一交易数据进行定时巡检的流程图;
图6是本申请一个实施例提供的对来自客户端的第一交易信息进行判断处理的流程图;
图7是本申请一个实施例提供的计算所有第一交易信息的第一交易根哈希的示意图;
图8是本申请另一个实施例提供的一种链上数据管理方法的流程图;
图9是本申请一个具体例子提供的区块节点创建区块并在区块链网络中广播该区块以对该区块进行共识处理的处理流程图;
图10是本申请一个具体例子提供的链上数据管理方法的流程图;
图11是本申请一个实施例提供的一种链上数据管理装置的示意图;
图12是本申请另一个实施例提供的一种链上数据管理装置的示意图。
具体实施方式
下面结合说明书附图和具体的实施例对本申请进行进一步的说明。所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)区块链(Blockchain),是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。区块链底层平台可以包括用户管理、基础服务以及智能合约等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能。平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
2)哈希(Hash),是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。哈希函数能够把任意长度的输入通过散列算法转换成固定长度的输出,该输出就是散列值。哈希函数中的转换处理是一种压缩映射,也就是说,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,因此无法根据散列值确定唯一的输入值,即无法根据哈希函数的输出值逆向计算得到输入值。
3)云技术(Cloud Technology),是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站、电商平台网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
4)云安全(Cloud Security),是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。云安全主要研究方向包括:1、云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、目标对象数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2、安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3、云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
5)智能交通系统(Intelligent Traffic System,ITS),又称智能运输系统(Intelligent Transportation System),是将先进的科学技术(信息技术、计算机技术、数据通信技术、传感器技术、电子控制技术、自动控制理论、运筹学、人工智能等)有效地综合运用于交通运输、服务控制和车辆制造,加强车辆、道路、使用者三者之间的联系,从而形成一种保障安全、提高效率、改善环境、节约能源的综合运输系统。
6)智能车路协同系统(Intelligent Vehicle Infrastructure CooperativeSystems,IVICS),简称车路协同系统,是智能交通系统(ITS)的一个发展方向。车路协同系统是采用先进的无线通信和新一代互联网等技术,全方位实施车车、车路动态实时信息交互,并在全时空动态交通信息采集与融合的基础上开展车辆主动安全控制和道路协同管理,充分实现人车路的有效协同,保证交通安全,提高通行效率,从而形成的安全、高效和环保的道路交通系统。
目前的区块链系统中,每个节点都会保存一份完整的区块链信息,包括各个区块的区块信息和交易数据。当需要对区块进行验证时,需要使用区块的区块信息和交易数据进行验证,因此,目前的区块链系统中,节点中所保存的区块信息和交易数据都是不能删除的。但是,正由于这些数据不能被删除,导致了在业务系统不再使用区块链上的数据时,节点也无法删除这些没有价值的交易数据。例如,对于零售等业务,每件商品都是有其有效期的,如一瓶水的保质期只有6个月,假设将这瓶水的生产时间、上市日期、保质期、矿物成分等相关数据连接上区块链后,如果这瓶水过了保质期,那么从实际应用出发,区块链是无需再保存这瓶水的相关信息的,因为这些信息都已经失效了,用户对这瓶水的相关信息进行查询也是无意义的。但由于目前的区块链系统无法针对这些过期的数据进行清理,导致了区块链上的失效数据越来越多,节点所保存的数据量也越来越大。为了应对这一问题,目前的一般方法是在节点中部署大容量的磁盘,用以支持越来越大的数据量的存储需求,例如,在部署一个新节点时,往往会部署存储容量在1TB以上的大容量磁盘。但是,在前期数据量不大的情况下,这种方法会导致磁盘的大部分存储空间处于闲置状态,无法得到充分的利用,从而造成了资源浪费的问题;而且,随着存储的数据量不断增大,节点对磁盘的数据查询操作和数据插入操作都会变慢,从而影响了节点的运行效率,导致每秒上链的交易数下降,不利于区块链系统的高效运行。
为了能够节省节点的存储空间而提高节点的运行效率,本申请实施例提供了一种链上数据管理方法、链上数据管理装置、计算机可读存储介质以及计算机程序产品,从交易池中获取包括第一交易数据、第一交易有效期信息和第一交易哈希信息的目标交易信息之后,生成包括上链时间戳的候选区块,当根据第一交易有效期信息和上链时间戳确定第一交易数据未超期时,根据候选区块和目标交易信息得到目标区块,在目标区块通过了区块链网络的共识处理而将目标区块添加到区块链之后,响应于对目标区块中的数据进行管理,读取第一交易有效期信息,当根据第一交易有效期信息确定第一交易数据已超期,可以删除第一交易数据,从而释放节点的存储空间,达到节省节点的存储空间的目的,而且,由于节点所保存的数据量得到了减少,因此节点对存储空间的数据查询效率和数据插入效率均可以得到提升,从而能够提高节点的运行效率。另外,由于在删除第一交易数据时保留了第一交易哈希信息,并且第一交易哈希信息是根据对第一交易数据和第一交易有效期信息进行哈希计算而得到的,因此可以使用第一交易哈希信息作为对目标区块进行验证的验证参数,在删除了过期的第一交易数据的情况下,仍然可以使用第一交易哈希信息对目标区块进行验证,从而可以保证对目标区块的验证正确性,不对区块链产生影响。
图1是本申请实施例提供的一种实施环境的示意图。参照图1,该实施环境包括终端节点101和多个区块节点102,这些区块节点102构成了区块链网络,终端节点101与这些区块节点102中的一个通过有线或无线通信方式进行直接或间接的连接。
终端节点101可以包括但不限于智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备、智能家电、车载终端、智能电视等。可选地,终端节点101可以安装有客户端,用户可以通过客户端进行将交易信息添加到区块链的操作。
需要说明的是,本申请实施例所涉及到的交易信息,是指作为交易媒介的对象的相关信息,例如,对于作为交易媒介的商品,其交易信息可以是商品信息、生产时间、上市日期、保质期、保修期等信息;对于作为交易媒介的货币,其交易信息可以是货币价值、原归属对象、现归属对象等信息;对于作为交易媒介的服务,其交易信息可以是服务内容、提供服务的对象、接受服务的对象等信息。
区块节点102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。
终端节点101至少具有对用户输入的交易信息进行哈希计算、对交易信息进行签名加密、将签名后的交易信息发送给区块节点102进行上链处理等功能,例如,能够在获取到原始交易数据和交易有效期信息之后,对原始交易数据和交易有效期信息进行哈希计算得到交易哈希信息,然后对交易哈希信息进行签名处理得到签名交易信息,接着将原始交易数据、交易有效期信息和签名交易信息组装在一起发送给区块节点102进行上链处理。
区块节点102至少具有创建区块、将区块添加到区块链、删除区块中过期的原始交易数据等功能,例如,能够在交易池中获取包括原始交易数据、交易有效期信息和交易哈希信息的交易信息,并根据该交易信息创建区块,然后在区块链网络中广播该区块使得区块链网络对该区块进行共识处理,当达成对该区块的共识,将该区块添加到区块链;另外,在区块节点102将该区块添加到区块链后,读取该区块中的交易有效期信息,当根据交易有效期信息确定对应的原始交易数据已超期,则删除该原始交易数据。
需要说明的是,终端节点101和区块节点102所具有的上述功能,可以应用于不同的应用场景中,例如:
在一应用场景中,终端节点101为台式计算机,并且终端节点101安装有用于实现数据上链的客户端。响应于用户通过客户端将商品信息和商品有效期信息输入到终端节点101的操作,终端节点101计算该商品信息和商品有效期信息的哈希值,然后对该哈希值进行签名,接着将该商品信息、商品有效期信息和签名后的哈希值打包成为交易信息,并发送给区块节点102;响应于接收到来自终端节点101的交易信息,区块节点102先判断该交易信息是否超期,如果不超期,根据该交易信息创建区块,并在区块链网络中广播该区块使得区块链网络对该区块进行共识处理;响应于达成对该区块的共识,区块节点102将该区块添加到区块链;响应于已经将区块添加到区块链,区块节点102执行定时巡检程序,定期检测商品有效期信息是否超期,如果检测到商品有效期信息超期,则删除该商品信息。
在另一应用场景中,终端节点101为智能手机,并且终端节点101安装有用于进行交易的客户端。响应于用户A通过客户端向用户B进行交易转账的操作,终端节点101生成对应的交易有效期信息,并计算交易转账数据和交易有效期信息的哈希值,然后对该哈希值进行签名,接着将该交易转账数据、交易有效期信息和签名后的哈希值打包成为交易转账信息,并发送给区块节点102;响应于接收到来自终端节点101的交易转账信息,区块节点102先判断该交易转账信息是否超期,如果不超期,根据该交易转账信息创建区块,并在区块链网络中广播该区块使得区块链网络对该区块进行共识处理;响应于达成对该区块的共识,区块节点102将该区块添加到区块链;响应于已经将区块添加到区块链,区块节点102通过终端节点101向用户A反馈完成交易的通知信息,并且,区块节点102执行定时巡检程序,定期检测交易有效期信息是否超期,如果检测到交易有效期信息超期,则删除该交易转账数据。
可以理解的是,在本申请的各个具体实施方式中,如果涉及到目标对象信息、目标对象行为数据,目标对象历史数据以及目标对象属性信息等与目标对象身份或特性相关的数据,当本申请的实施例运用到具体产品或技术中时,需要获得目标对象的许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
图2是本申请实施例提供的一种链上数据管理方法的流程图。在本实施例中,以区块节点作为执行主体为例进行说明。参照图2,该链上数据管理方法包括但不限于步骤110至步骤160。
步骤110:从交易池中获取目标交易信息,目标交易信息包括第一交易数据、第一交易有效期信息和第一交易哈希信息。
需要说明的是,第一交易有效期信息用于表征第一交易数据在区块链中的有效时间,第一交易哈希信息根据对第一交易数据和第一交易有效期信息进行哈希计算而得到,第一交易哈希信息用于作为对携带有该目标交易信息的区块进行验证的验证参数。
需要说明的是,当区块节点接收到终端节点发送的包括第一交易数据、第一交易有效期信息和第一交易哈希信息的目标交易信息之后,区块节点会先将该目标交易信息保存至交易池,当需要创建待添加到区块链的区块时,区块节点再从交易池中取出该目标交易信息,以便于后续步骤可以将该目标交易信息填充至该待添加到区块链的区块中,完成对该待添加到区块链的区块的创建。
需要说明的是,第一交易数据、第一交易有效期信息和第一交易哈希信息均是来自终端节点的数据,也就是说,在执行步骤110之前,区块节点还可以接收终端节点发送的第一交易数据、第一交易有效期信息和第一交易哈希信息。例如,参照图3所示,当用户通过终端节点输入第一交易数据(例如包括第一交易数据A、第一交易数据B、第一交易数据C等)和第一交易有效期信息之后,终端节点可以先对第一交易数据和第一交易有效期信息进行哈希计算得到第一交易哈希信息,然后使用签名私钥对该第一交易哈希信息进行签名,接着将第一交易数据、第一交易有效期信息和签名后的第一交易哈希信息打包成交易信息,并将该交易信息发送给区块节点。其中,根据区块链的不同需求,终端节点可以选择不同的哈希算法对第一交易数据和第一交易有效期信息进行哈希计算,此处不作具体限定;另外,根据区块链的不同需求以及终端节点所支持的私钥类型,终端节点可以选择不同的签名算法对第一交易哈希信息进行签名加密,例如可以采用椭圆曲线数字签名算法(EllipticCurve Digital Signature Algorithm,ECDSA)、国密算法或者RSA签名算法等,此处不作具体限定。
需要说明的是,第一交易有效期信息可以由用户自定义并输入到终端节点,也可以由终端节点根据第一交易数据的类型自行生成,此处不作具体限定。例如,假设第一交易数据为商品信息,那么终端节点可以根据该商品信息确定对应的保质期(如6个月),然后根据该保质期生成对应的第一交易有效期信息。
需要说明的是,第一交易有效期信息可以是以秒为基础的时间戳,也可以是以分钟为基础的时间戳,或者可以是以其他时间单位为基础的时间戳,可以根据实际应用情况而进行适当的选择,此处不作具体限定。
需要说明的是,第一交易有效期信息的取值为自然数,当第一交易有效期信息的取值不同时,可以表示不同的含义。例如,当第一交易有效期信息的取值为0时,表示对应的第一交易数据永久不过期;当第一交易有效期信息的取值不为0时,表示对应的第一交易数据具有确定的有效时间,当第一交易有效期信息小于当前时间时,说明对应的第一交易数据已经过期,当第一交易有效期信息大于当前时间时,说明对应的第一交易数据还没有过期。
需要说明的是,交易池是区块链网络中所有节点共享的,当区块链网络中的任一节点接收到来自客户端的并且通过了验证的交易信息,都会将交易信息保存至交易池,然后,区块链网络中的所有节点都会周期性地从交易池中获取交易信息,然后根据获取到的交易信息创建区块并竞争地将区块添加到区块链中。
步骤120:生成包括上链时间戳的候选区块,当根据第一交易有效期信息和上链时间戳确定第一交易数据未超期,根据候选区块和目标交易信息得到目标区块。
需要说明的是,上链时间戳是生成候选区块时的时间戳,当从交易池中获取目标交易信息之后,可以先生成一个候选区块,再在该候选区块的区块头中填充生成该候选区块的上链时间戳,然后将第一交易有效期信息和上链时间戳进行比较,当根据第一交易有效期信息和上链时间戳确定第一交易数据未超期,则可以根据该候选区块和目标交易信息得到目标区块,实现针对目标区块的创建处理。上链时间戳不仅能够体现目标区块的创建时间,还可以用于后续步骤对第一交易有效期信息进行判断处理以确定第一交易数据是否为有效的数据,以便于可以根据判断结果对目标区块中的数据进行管理。
需要说明的是,候选区块包括区块头和区块体,其中,区块头中包括有区块版本信息、前一区块的哈希值、默克尔树(Merkle树)根哈希值、区块生成的时间戳、区块高度和随机数(nonce值)等信息;区块体中包括有交易列表,该交易列表包括至少一条交易信息。其中,第一交易数据、第一交易有效期信息和第一交易哈希信息均保存在区块体中。需要说明的是,区块高度是指本区块距离区块链中第一个区块(或称为创世区块)的高度,第一个区块的高度为0。随机数是区块链网络进行共识过程所需要的预生成的随机数据,用于作为工作量证明算法中的计数器。默克尔树根哈希值可以通过如下步骤计算得到:在默克尔树中,对各个叶节点处的数据(即区块体中的各条交易信息)进行哈希计算,并且针对默克尔树的每个分支,在该分支的根处级联该分支的所有哈希值,针对默克尔树重复执行上述处理,直到得到整个默克尔树的根节点的哈希值,该根节点的哈希值即为默克尔树根哈希值。需要说明的是,默克尔树的根节点存储的数据代表该默克尔树中的所有数据的哈希值,当一个哈希值声称是默克尔树中存储的交易信息时,可以通过判断默克尔树中是否包括与该哈希值相一致的数据来进行快速验证。
需要说明的是,如果根据第一交易有效期信息和上链时间戳判断第一交易数据已经超期,说明第一交易数据已经是失效或者无价值的信息,后续基本上不会再使用该第一交易数据,如果继续将该第一交易数据进行上链,则会导致资源浪费,因此,当确定第一交易数据已经超期时,可以丢弃该目标交易信息,避免将失效或者无价值的交易信息添加到区块链而导致资源浪费。此外,当确定第一交易数据已经超期时,区块节点还会将对应的目标交易信息从交易池中删除,以免影响后续针对其他交易信息的上链处理。
需要说明的是,对于不同取值的第一交易有效期信息,会有不同的判断方式以确定第一交易数据是否超期。例如,当第一交易有效期信息等于预设阈值时,可以确定第一交易数据未超期,或者,当第一交易有效期信息不等于预设阈值且大于上链时间戳时,可以确定第一交易数据未超期。其中,当第一交易哈希信息等于预设阈值时,表示对应的第一交易数据永久不过期;当第一交易哈希信息不等于预设阈值时,表示对应的第一交易数据具有确定的有效时间。预设阈值可以根据实际应用情况而进行适当的选择,此处不作具体限定,例如,预设阈值可以设置为0,或者可以设置为第一交易有效期信息所对应的字节的最大值。
在一些可行的实施方式中,假设预设阈值设置为0,那么,当第一交易有效期信息的取值为0时,表示对应的第一交易数据永久不过期,因此可以确定第一交易数据没有超期;当第一交易有效期信息的取值不为0时,表示对应的第一交易数据具有确定的有效时间,那么,可以进一步比较第一交易有效期信息和上链时间戳的大小,如果第一交易有效期信息小于上链时间戳,说明第一交易数据已经过期,如果第一交易有效期信息大于上链时间戳,说明第一交易数据还没有过期。
需要说明的是,由于目标区块根据候选区块和目标交易信息而得到,因此目标区块可以包括第一交易数据和第一交易哈希信息,并且第一交易哈希信息用于作为对目标区块进行验证的验证参数,因此当需要对目标区块进行验证时,例如由于用户查询区块信息而触发对目标区块进行验证时,或者由于进行共识处理而对目标区块进行验证时,可以利用第一交易数据进行验证,或者可以利用第一交易哈希信息进行验证,可以根据实际应用情况而进行适当的选择。其中,对目标区块的验证过程是根据第一交易数据或者第一交易哈希信息计算默克尔树根哈希值,然后将计算得到的默克尔树根哈希值与目标区块中的默克尔树根哈希值进行比较,如果相一致,说明验证成功,否则,说明验证失败。
步骤130:在区块链网络中广播目标区块,使得区块链网络中的参与节点对目标区块进行共识处理。
本步骤中,由于在步骤120中得到了目标区块,因此可以在区块链网络中广播该目标区块以使区块链网络中的参与节点对该目标区块进行共识处理,以便于在区块链网络中的参与节点对该目标区块达成了共识后,可以将该目标区块添加到区块链,实现交易上链处理。
需要说明的是,对目标区块的共识处理,包括对区块头中的随机数进行验证以及对区块体中的所有交易信息进行验证,其中,先验证区块头中的随机数,如果通过了验证,再验证区块体中的所有交易信息,当区块体中的所有交易信息都通过了验证,则区块链网络中的其他参与节点会接受该目标区块,达成对该目标区块的共识。
步骤140:当区块链网络中的参与节点达成对目标区块的共识,将目标区块添加到区块链。
本步骤中,当区块链网络中的参与节点达成了对目标区块的共识,区块节点会接收到来自区块链网络的用于表示目标区块已被接受的通知消息,此时,区块节点可以将目标区块添加到区块链,从而实现交易上链处理。
需要说明的是,区块节点和区块链网络中的其他参与节点都会保存一份区块链副本,当区块链网络达成了对目标区块的共识,区块节点和区块链网络中的其他参与节点都会将该目标区块添加到其所保存的区块链副本中,实现将目标区块添加到区块链的操作,这样,用户通过任一节点都可实现对区块链中的信息的查询,从而提供了信息查询的便捷性。
步骤150:响应于对目标区块中的数据进行管理,读取目标区块中的第一交易有效期信息。
需要说明的是,区块节点将目标区块添加到区块链时,会将目标区块中的信息保存到对应的数据库中,因此,当响应于对目标区块中的数据进行管理,区块节点可以从数据库中读取第一交易有效期信息,以便于后续步骤可以根据第一交易有效期信息判断第一交易数据是否超期,从而可以根据判断结果实现对第一交易数据的管理,达到链上数据可管理的目的。
需要说明的是,在不同的应用场景中,区块节点可以基于不同的触发条件读取第一交易有效期信息。例如,区块节点可以在接收到来自终端节点的请求信息之后,根据请求信息从数据库中读取第一交易有效期信息;又如,区块节点可以基于预设的周期时间,定时地从数据库中读取第一交易有效期信息。
步骤160:当根据第一交易有效期信息确定第一交易数据已超期,删除第一交易数据,保留第一交易哈希信息,其中,第一交易哈希信息用于作为对目标区块进行验证的验证参数。
本步骤中,由于在步骤150中读取了第一交易有效期信息,因此可以根据读取到的第一交易有效期信息判断第一交易数据是否超期,如果确定第一交易数据已超期,则可以删除该过期的第一交易数据,但保留用于对目标区块进行验证的第一交易哈希信息,由于第一交易数据是已经连接到区块链的目标区块中的数据,因此可以实现对区块链中的数据进行管理的目的,从而克服了无法对区块链中的数据进行管理的技术偏见,此外,由于区块链的目标区块保留第一交易哈希信息,因此可以使用第一交易哈希信息作为对该目标区块进行验证的验证参数,所以,即使删除了过期的第一交易数据,仍然可以使用第一交易哈希信息对目标区块进行验证,从而可以保证对目标区块的验证正确性,不对区块链产生影响。
需要说明的是,当根据第一交易有效期信息确定第一交易数据还没有超期,则说明第一交易数据目前还处于有效期内,例如商品还处于保质期或者保修期内,因此不会删除目标区块中的第一交易数据。
本实施例中,通过包括前面步骤110至步骤160的链上数据管理方法,从交易池中获取包括第一交易数据、第一交易有效期信息和第一交易哈希信息的目标交易信息之后,生成包括上链时间戳的候选区块,当根据第一交易有效期信息和上链时间戳确定第一交易数据未超期时,根据候选区块和目标交易信息得到目标区块,在目标区块通过了区块链网络的共识处理而将目标区块添加到区块链之后,响应于对目标区块中的数据进行管理,读取第一交易有效期信息,当根据第一交易有效期信息确定第一交易数据已超期,可以删除第一交易数据,从而释放节点的存储空间,达到节省节点的存储空间的目的,而且,由于节点所保存的数据量得到了减少,因此节点对存储空间的数据查询效率和数据插入效率均可以得到提升,从而能够提高节点的运行效率。另外,由于在删除第一交易数据时保留了第一交易哈希信息,并且第一交易哈希信息是根据对第一交易数据和第一交易有效期信息进行哈希计算而得到的,因此可以使用第一交易哈希信息作为对目标区块进行验证的验证参数,在删除了过期的第一交易数据的情况下,仍然可以使用第一交易哈希信息对目标区块进行验证,从而可以保证对目标区块的验证正确性,不对区块链产生影响。
参照图4所示,本申请的一个实施例,对步骤120进行进一步的说明,在候选区块包括区块头和区块体的情况下,步骤120可以包括但不限于步骤121和步骤122。
步骤121:根据第一交易哈希信息计算得到目标交易信息的第一交易根哈希。
本步骤中,当根据第一交易有效期信息和上链时间戳确定了第一交易数据未超期,因此可以根据第一交易哈希信息计算得到目标交易信息的第一交易根哈希,以便于后续步骤可以将第一交易根哈希填充到区块头,完成对目标区块的创建处理。
需要说明的是,由于第一交易哈希信息根据对第一交易数据和第一交易有效期信息进行哈希计算而得到,因此在计算目标交易信息的第一交易根哈希时,可以直接使用第一交易哈希信息进行计算,或者,也可以重新对第一交易数据和第一交易有效期信息进行哈希计算得到第一交易哈希信息,然后根据重新计算得到的第一交易哈希信息计算得到目标交易信息的第一交易根哈希。
需要说明的是,当目标交易信息的数量为一个时,可以通过对第一交易哈希信息进行哈希计算得到目标交易信息的第一交易根哈希;当目标交易信息的数量为多个时,第一交易哈希信息的数量也为多个,此时,需要对所有的目标交易信息进行哈希计算,才会得到所有的目标交易信息的第一交易根哈希,例如,可以将这些第一交易哈希信息作为默克尔树的叶节点,然后根据前面所述的计算默克尔树根哈希值的步骤,计算得到默克尔树根哈希值,此时,该默克尔树根哈希值即为所有的目标交易信息的第一交易根哈希。
步骤122:将第一交易根哈希填充到区块头,以及将目标交易信息填充到区块体,得到目标区块。
本步骤中,由于在步骤121中计算得到了目标交易信息的第一交易根哈希,因此可以将第一交易根哈希填充到候选区块的区块头;而且,由于根据第一交易有效期信息和上链时间戳确定了第一交易数据未超期,因此说明第一交易数据是有效的,所以可以将目标交易信息填充到候选区块的区块体,得到目标区块,完成对目标区块的创建处理,以便于后续步骤可以对目标区块进行上链处理。
另外,本申请的一个实施例,对该链上数据管理方法进行进一步的说明,在执行步骤130之后,该链上数据管理方法还可以包括但不限于以下步骤:
建立区块头、第一交易数据、上链时间戳、第一交易根哈希、第一交易有效期信息和第一交易哈希信息之间的第一关联关系;
将区块头保存至第一数据库;
将第一交易数据保存至第二数据库;
将上链时间戳、第一交易根哈希、第一交易有效期信息和第一交易哈希信息保存至第三数据库。
本实施例中,在执行步骤140将目标区块添加到区块链之后,在区块节点本地,需要将目标区块所包含的信息保存到对应的数据库。为了方便后续步骤可以对目标区块中的第一交易数据进行查询、删除等管理操作,可以先建立区块头、第一交易数据、上链时间戳、第一交易根哈希、第一交易有效期信息和第一交易哈希信息之间的第一关联关系,然后将区块头保存至第一数据库,将第一交易数据保存至第二数据库,以及将上链时间戳、第一交易根哈希、第一交易有效期信息和第一交易哈希信息保存至第三数据库。由于区块头、第一交易数据、上链时间戳、第一交易根哈希、第一交易有效期信息和第一交易哈希信息相互关联,并且不同的数据库保存不同类型的信息,因此可以简化信息查询条件,提高信息的查询效率,从而可以更为便捷地在对应的数据库中查询或者删除相关的信息,例如,当需要查询某一区块高度的区块信息和第一交易数据时,可以先从第一数据库中查询该区块高度的区块头,然后根据区块头与第一交易数据之间的第一关联关系,可以很容易地在第二数据库中查找到对应的第一交易数据。又如,当需要对过期的第一交易数据进行删除处理时,可以先从第三数据库中获取第一交易有效期信息,然后确定已经超期的第一交易有效期信息,接着根据第一交易有效期信息与第一交易数据之间的第一关联关系,可以很容易地在第二数据库中查找到过期的第一交易数据,从而可以删除第二数据库中的过期的第一交易数据。
另外,本申请的一个实施例,对步骤160进行进一步的说明,步骤160可以包括但不限于以下步骤:
当第一交易有效期信息不等于预设阈值且小于当前时间,确定第一交易数据已超期;
根据第一关联关系确定与第一交易有效期信息对应的第一交易哈希信息;
根据第一交易哈希信息和第一关联关系确定第一交易数据在第二数据库中的存储位置;
在第二数据库中删除第一交易数据。
需要说明的是,在第三数据库中读取了第一交易哈希信息之后,可以先根据第一交易哈希信息判断对应的第一交易数据是否超期,例如,当第一交易有效期信息不等于预设阈值且小于当前时间时,可以确定第一交易数据已超期,其中,预设阈值用于区分对第一交易哈希信息的判断方式,当第一交易哈希信息等于预设阈值时,表示对应的第一交易数据永久不过期,当第一交易哈希信息不等于预设阈值时,表示对应的第一交易数据具有确定的有效时间。当确定第一交易数据已超期之后,可以在第三数据库中根据第一关联关系确定与第一交易有效期信息对应的第一交易哈希信息,然后根据第一交易哈希信息和第一关联关系在第二数据库中确定对应的第一交易数据的存储位置,接着可以在第二数据库中删除该过期的第一交易数据,从而实现对区块链中的数据进行管理的目的。
需要说明的是,预设阈值可以根据实际应用情况而进行适当的选择,此处不作具体限定,例如,预设阈值可以设置为0,或者可以设置为第一交易有效期信息所对应的字节的最大值。
下面以一个具体例子进行说明:
参照图5所示,图5是一个例子中的对过期的第一交易数据进行定时巡检的流程图。当区块节点将目标区块添加到区块链之后,区块节点可以单独启动一个协程以定期巡检数据库中的信息,假设第三数据库中的第一交易有效期信息均不等于用于表示永久不过期的预设阈值,区块节点定期巡检数据库中的信息的过程可以包括以下步骤:
步骤51:启动定时巡检程序,其中,该定时巡检程序会在预设的时间范围内进行启动。
需要说明的是,定时巡检程序用于定时检查第一交易数据是否超期,从而有利于实现对区块链中的数据进行管理。定时巡检程序可以在将目标区块添加到区块链之后马上启动,也可以在将目标区块添加到区块链之后,等待达到了预设时间再启动,此处不作具体限定。其中,预设时间可以根据第一交易有效期信息而确定,例如,预设时间可以等于第一交易有效期信息,或者可以等于第一交易有效期信息与预设时间阈值的差值,此处不作具体限定。
步骤52:响应于定时巡检程序的触发,从第三数据库中读取相互对应的第一交易有效期信息和第一交易哈希信息。
本步骤中,由于在步骤51中启动了定时巡检程序,因此当定时巡检程序被触发时,响应于定时巡检程序的触发,可以从第三数据库中读取相互对应的第一交易有效期信息和第一交易哈希信息,以便于后续步骤可以根据第一交易有效期信息确定对应的第一交易数据是否过期,并且可以在确定第一交易数据已经过期的情况下,根据第一交易哈希信息删除该过期的第一交易数据,从而实现对区块链中的数据的管理。例如,当用于定时检查商品交易数据是否超期的定时巡检程序被触发,可以从数据库中读取对应的商品交易有效期信息和商品交易哈希信息,以便于后续步骤可以根据商品交易有效期信息确定该商品交易数据是否过期,并且可以在确定该商品交易数据已经过期的情况下,根据商品交易哈希信息删除该过期的商品交易数据,从而实现对区块链中的商品交易数据的管理。
步骤53:判断第一交易有效期信息是否大于当前时间,若是,执行步骤52,若否,执行步骤54。
本步骤中,由于在步骤52中读取了相互对应的第一交易有效期信息和第一交易哈希信息,因此可以判断第一交易有效期信息是否大于当前时间,当第一交易有效期信息大于当前时间,说明对应的第一交易数据还没有过期,因此可以执行步骤52,从第三数据库中读取其他的第一交易有效期信息和第一交易哈希信息,以便于后续步骤可以对其他的第一交易数据进行保留或者删除的管理;当第一交易有效期信息小于当前时间,说明对应的第一交易数据已经过期,因此可以执行步骤54以删除对应的过期的第一交易数据。例如,当判断商品交易有效期信息大于当前时间,可以执行步骤52,从第三数据库中读取其他的商品交易有效期信息和商品交易哈希信息,以便于后续步骤可以对其他商品交易数据进行保留或者删除的管理;当商品交易有效期信息小于当前时间,可以执行步骤54,删除对应的过期的商品交易数据。
步骤54:根据第一交易哈希信息在第二数据库中删除过期的第一交易数据。
本步骤中,当步骤53中的判断结果为第一交易有效期信息小于当前时间,说明对应的第一交易数据已经过期,因此可以根据第一交易哈希信息在第二数据库中删除过期的第一交易数据,从而实现对区块链中的数据的管理。例如,当步骤53中的判断结果为商品交易有效期信息小于当前时间,则可以根据商品交易哈希信息在第二数据库中删除过期的商品交易数据。
在本例子中,通过定期巡检并删除过期的第一交易数据,不仅能够对区块链中的数据进行管理,还能够释放区块节点的存储空间,达到节省存储空间的目的,而且,由于区块节点所保存的数据量得到了减少,因此区块节点对存储空间的数据查询效率和数据插入效率均可以得到提升,从而能够提高区块节点的运行效率。
另外,本申请的一个实施例,对该链上数据管理方法进行进一步的说明,在执行步骤110之前,该链上数据管理方法还可以包括但不限于以下步骤:
接收由客户端发送的目标交易信息;
根据目标交易信息中的第一交易有效期信息判断第一交易数据是否超期;
当确定第一交易数据未超期,对目标交易信息进行验证处理;
当验证通过,将目标交易信息保存至交易池。
需要说明的是,当用户通过终端节点的客户端发起针对目标交易信息的上链请求时,客户端会向区块节点发送该目标交易信息,当区块节点接收到由客户端发送的目标交易信息之后,区块节点可以先根据目标交易信息中的第一交易有效期信息判断第一交易数据是否超期,当确定第一交易数据未超期时,可以进一步对目标交易信息进行验证处理,当目标交易信息通过了验证,说明目标交易信息是有效并且正确的,目标交易信息可以用于后续的上链处理,因此,区块节点可以先将目标交易信息保存至交易池,以便于后续步骤可以对目标交易信息进行上链处理。
需要说明的是,客户端发送的目标交易信息会包括有第一交易数据、第一交易有效期信息和第一交易哈希信息,其中,第一交易哈希信息可以是经过加密签名的信息,当区块节点接收到该目标交易信息之后,可以先判断第一交易有效期信息是否超期,如果没有超期,再对第一交易数据和第一交易哈希信息进行验证处理;如果超期,区块节点会向客户端返回错误通知,提示客户端第一交易有效期信息的数值过小。其中,在对第一交易数据和第一交易哈希信息进行验证处理的过程中,如果通过了验证,区块节点会将目标交易信息保存至交易池,如果验证失败,则会向客户端返回相应的错误通知消息。在判断第一交易有效期信息是否超期的过程中,如果检测到第一交易有效期信息等于预设阈值(例如预设阈值为0),代表第一交易数据永久有效,无需将第一交易有效期信息与当前时间进行比较,因此可以直接进行下一步的验证处理;如果检测到第一交易有效期信息大于预设阈值(例如预设阈值为0),代表第一交易数据具有确定的有效期,需要先将第一交易有效期信息与当前时间进行比较,在第一交易有效期信息大于当前时间的情况下,再进行下一步的验证处理。
需要说明的是,对经过加密签名的第一交易哈希信息进行签名验证,可以有不同的实施方式,此处不作具体限定。例如,在一些可行的实施方式中,可以先对第一交易数据和第一交易有效期信息进行哈希计算得到哈希值,然后使用签名公钥对第一交易哈希信息进行解密得到解密信息,接着比较该解密信息和哈希值,若两者一致,说明通过验证,若两者不一致,说明验证失败。又如,在另一些可行的实施方式中,可以先对第一交易数据和第一交易有效期信息进行哈希计算得到哈希值,然后使用对应的签名密钥对该哈希值进行签名得到签名值,接着比较该签名值和哈希值,若两者一致,说明通过验证,若两者不一致,说明验证失败。
下面以一个具体例子进行说明:
参照图6所示,图6是一个例子中的对来自客户端的目标交易信息进行判断处理的流程图。区块节点对来自客户端的目标交易信息进行判断处理的过程可以包括以下步骤:
步骤61:接收由客户端发送的包括第一交易数据、第一交易有效期信息和第一交易哈希信息的目标交易信息;
步骤62:判断第一交易有效期信息是否等于0,如果等于0,代表第一交易数据在区块链上永久保存,区块节点不应该将其清理,此时,执行步骤64;如果不等于0,代表第一交易数据在区块链上具有确定的有效期,并且在超过有效期时将会被区块节点清理,此时,执行步骤63;
步骤63:判断第一交易有效期信息是否大于当前时间,若是,代表第一交易数据还处于有效期之内,此时,执行步骤64;若否,向客户端返回错误通知,提示客户端第一交易有效期信息的数值过小,无法进行上链处理;
步骤64:对第一交易数据和第一交易哈希信息进行验证处理,如果通过验证,执行步骤65;如果验证失败,向客户端返回相应的错误通知;
步骤65:将包括有第一交易数据、第一交易有效期信息和第一交易哈希信息的目标交易信息保存至交易池。
在本例子中,当区块节点接收到客户端发送的目标交易信息之后,先根据目标交易信息中的第一交易有效期信息判断第一交易数据是否仍然处于有效期之内,再基于判断结果执行后续的处理步骤,能够避免将数值过小的第一交易有效期信息所对应的第一交易数据添加到区块链,从源头上对区块链中的数据进行合理的管理,从而可以降低后续针对区块链中的数据的管理难度。
另外,本申请的一个实施例,对步骤121进行进一步的说明,在目标交易信息的数量为多个的情况下,步骤121可以包括但不限于以下步骤:
对每两个目标交易信息中的第一交易哈希信息进行合并与哈希处理,得到多个第一合并哈希信息;
对每两个第一合并哈希信息进行合并与哈希处理,得到多个第二合并哈希信息;
对每两个第二合并哈希信息进行合并与哈希处理,直到得到数量唯一的最后合并哈希信息;
将得到的最后合并哈希信息确定为所有目标交易信息的第一交易根哈希。
本实施例中,当目标交易信息的数量为多个时,对应的第一交易哈希信息的数量也为多个,因此,在计算全部目标交易信息的第一交易根哈希的过程中,可以先对每两个目标交易信息中的第一交易哈希信息进行合并与哈希处理,得到多个第一合并哈希信息;再对每两个第一合并哈希信息进行合并与哈希处理,得到多个第二合并哈希信息;然后对每两个第二合并哈希信息进行合并与哈希处理,直到得到数量唯一的最后合并哈希信息;接着将得到的最后合并哈希信息确定为所有目标交易信息的第一交易根哈希。
下面以一个具体例子进行说明:
参照图7所示,图7是一个例子中的计算所有目标交易信息的第一交易根哈希的示意图。假设目标交易信息的数量为4个,则对应的第一交易哈希信息的数量也为4个,分别为交易哈希A、交易哈希B、交易哈希C和交易哈希D,那么,在计算这些目标交易信息的第一交易根哈希时,先将交易哈希A和交易哈希B进行合并与哈希处理得到合并哈希信息AB,并且将交易哈希C和交易哈希D进行合并与哈希处理得到合并哈希信息CD,接着,将合并哈希信息AB和合并哈希信息CD进行合并与哈希处理得到合并哈希信息ABCD,由于此时得到的合并哈希信息ABCD是数量唯一的,因此可以将该合并哈希信息ABCD确定为所有目标交易信息的第一交易根哈希。需要说明的是,合并与哈希处理具体包括如下步骤:先将第一信息和第二信息拼接在一起得到合并信息,然后对合并信息进行哈希计算得到合并哈希信息。
由于在计算第一交易根哈希的过程中使用到了所有的目标交易信息(第一交易哈希信息根据对第一交易数据和第一交易有效期信息进行哈希计算而得到),因此,当任何目标交易信息被篡改,第一交易根哈希必然会发生改变,因此第一交易根哈希可用于对区块中的信息进行校验,从而能够保证区块中的信息的唯一性。
另外,本申请的一个实施例,对步骤130进行进一步的说明,步骤130可以包括但不限于以下步骤:
对第一交易有效期信息和第一交易哈希信息进行签名处理,得到签名后的目标区块;
在区块链网络中广播签名后的目标区块,使得区块链网络中的参与节点对签名后的目标区块进行共识处理。
需要说明的是,当区块节点在区块链网络中广播目标区块以对目标区块进行共识处理时,区块节点会先对第一交易有效期信息和第一交易哈希信息进行签名处理,得到签名后的目标区块,然后在区块链网络中广播签名后的目标区块,使得区块链网络中的参与节点对签名后的目标区块进行共识处理。当区块链网络中的参与节点接收到该签名后的目标区块后,会先验证目标区块的签名,保证目标区块没有被篡改,然后对目标区块中的随机数和交易信息进行验证,如果通过了验证时,区块链网络中的参与节点会将该目标区块添加到其保存的区块链副本中,并通知区块节点达成了对该目标区块的共识,此时,区块节点会将目标区块添加到其保存的区块链副本中,并对应保存目标区块中的信息,完成对目标区块的上链处理。如果验证失败,区块链网络中的参与节点会丢弃该目标区块,并将共识失败的消息通知区块节点,区块节点在接收到共识失败的消息后,也会丢弃该目标区块。
参照图8所示,本申请的一个实施例,对该链上数据管理方法进行进一步的说明,该链上数据管理方法还可以包括但不限于步骤170至步骤200。
步骤170:接收由区块链网络中的参与节点发送的待验证区块,待验证区块包括第二交易根哈希、第二交易数据、第二交易有效期信息和第二交易哈希信息。
需要说明的是,第二交易有效期信息用于表征第二交易数据在待验证区块中的有效时间,第二交易哈希信息根据对第二交易数据和第二交易有效期信息进行哈希计算而得到,第二交易根哈希根据对第二交易哈希信息进行哈希计算而得到。
需要说明的是,当某一用户通过其他的终端节点进行交易信息的上链处理时,区块链网络中对应的参与节点会根据用户上传的交易信息生成对应的待验证区块,并将该待验证区块在区块链网络中进行广播。当区块节点接收到由区块链网络中的参与节点发送的待验证区块之后,区块节点可以执行后续的步骤以对该待验证区块进行共识处理。
步骤180:根据第二交易哈希信息计算得到第三交易根哈希。
需要说明的是,在根据第二交易哈希信息计算第三交易根哈希的过程中,由于第二交易哈希信息根据对第二交易数据和第二交易有效期信息进行哈希计算而得到,因此可以直接使用第二交易哈希信息计算第三交易根哈希,或者,也可以重新对第二交易数据和第二交易有效期信息进行哈希计算得到第二交易哈希信息,然后根据重新计算得到的第二交易哈希信息计算第三交易根哈希。
需要说明的是,当待验证区块中包括一个交易信息时,第二交易哈希信息的数量也为一个,此时,可以通过对第二交易哈希信息进行哈希计算得到第三交易根哈希;当待验证区块中包括多个交易信息时,第二交易哈希信息的数量也为多个,此时,需要对待验证区块中的所有交易信息进行哈希计算,才会得到第三交易根哈希,例如,可以将这些第二交易哈希信息作为默克尔树的叶节点,然后根据前面所述的计算默克尔树根哈希值的步骤,计算得到默克尔树根哈希值,此时,该默克尔树根哈希值即为第三交易根哈希。
步骤190:当第三交易根哈希与第二交易根哈希相一致,确认待验证区块通过共识。
需要说明的是,当区块节点接收到由区块链网络中的参与节点发送的待验证区块之后,区块节点会先根据待验证区块中的第二交易哈希信息计算得到第三交易根哈希,然后将计算得到的第三交易根哈希与待验证区块中的第二交易根哈希进行比较,如果第三交易根哈希与第二交易根哈希相一致,则可以确认待验证区块通过共识,如果第三交易根哈希与第二交易根哈希不一致,则确认待验证区块没有通过共识。
步骤200:将第二交易根哈希、第二交易数据、第二交易有效期信息和第二交易哈希信息保存至数据库。
需要说明的是,当区块节点确认待验证区块通过共识时,区块节点会将待验证区块添加到其保存的区块链副本中,并且将第二交易根哈希、第二交易数据、第二交易有效期信息和第二交易哈希信息保存至数据库,接着,通过区块链网络向参与节点反馈待验证区块通过共识的结果,使得参与节点可以将待验证区块添加到其保存的区块链副本中。当确认待验证区块没有通过共识时,区块节点会丢弃该待验证区块,并且通过区块链网络向参与节点反馈待验证区块没有通过共识的结果,使得参与节点丢弃该待验证区块。
另外,本申请的一个实施例,对步骤200进行进一步的说明,步骤200可以包括但不限于以下步骤:
建立待验证区块的区块头、第二交易根哈希、第二交易数据、第二交易有效期信息和第二交易哈希信息之间的第二关联关系;
将待验证区块的区块头保存至第一数据库;
将第二交易数据保存至第二数据库;
将第二交易根哈希、第二交易有效期信息和第二交易哈希信息保存至第三数据库。
本实施例中,当区块节点确认待验证区块通过了共识,区块节点会将待验证区块添加到区块链,并且,在区块节点本地,需要将待验证区块所包含的信息保存到对应的数据库。为了方便后续步骤可以对待验证区块中的第二交易数据进行查询、删除等管理操作,可以先建立待验证区块的区块头、第二交易根哈希、第二交易数据、第二交易有效期信息和第二交易哈希信息之间的第二关联关系,然后将待验证区块的区块头保存至第一数据库,将第二交易数据保存至第二数据库,以及将第二交易根哈希、第二交易有效期信息和第二交易哈希信息保存至第三数据库。由于待验证区块的区块头、第二交易根哈希、第二交易数据、第二交易有效期信息和第二交易哈希信息相互关联,并且不同的数据库保存不同类型的信息,因此可以简化后续的信息查询条件,提高信息的查询效率,从而可以更为便捷地在对应的数据库中查询或者删除相关的信息,例如,当需要查询某一区块高度的区块信息和第二交易数据时,可以先从第一数据库中查询该区块高度的区块头,然后根据区块头与第二交易数据之间的第二关联关系,可以很容易地在第二数据库中查找到对应的第二交易数据。又如,当需要对过期的第二交易数据进行删除处理时,可以先从第三数据库中获取第二交易有效期信息,然后确定已经超期的第二交易有效期信息,接着根据第二交易有效期信息与第二交易数据之间的第二关联关系,可以很容易地在第二数据库中查找到过期的第二交易数据,从而可以删除第二数据库中的过期的第二交易数据。
另外,本申请的一个实施例,对步骤180进行进一步的说明,在第二交易哈希信息的数量为多个的情况下,步骤180可以包括但不限于以下步骤:
对每两个第二交易哈希信息进行合并与哈希处理,得到多个第三合并哈希信息;
对每两个第三合并哈希信息进行合并与哈希处理,得到多个第四合并哈希信息;
对每两个第四合并哈希信息进行合并与哈希处理,直到得到数量唯一的最终合并哈希信息;
将得到的最终合并哈希信息确定为第三交易根哈希。
本实施例中,在第二交易哈希信息的数量为多个的情况下,在计算全部第二交易哈希信息的第三交易根哈希的过程中,可以先对每两个第二交易哈希信息进行合并与哈希处理,得到多个第三合并哈希信息;再对每两个第三合并哈希信息进行合并与哈希处理,得到多个第四合并哈希信息;然后对每两个第四合并哈希信息进行合并与哈希处理,直到得到数量唯一的最终合并哈希信息;接着将得到的最终合并哈希信息确定为所有第二交易哈希信息的第三交易根哈希。
需要说明的是,本实施例中的根据第二交易哈希信息计算第三交易根哈希的具体过程,可以参考如图7所示的具体例子的计算过程,为了避免内容重复冗余,此处不再赘述。
为了更加清楚的说明本申请实施例提供的链上数据管理方法的处理流程,下面结合不同的应用场景给出不同的具体示例以进行说明。
场景一:
参照图9,图9是一个具体例子中区块节点创建区块并在区块链网络中广播该区块以对该区块进行共识处理的处理流程图。
假设用户A希望通过终端节点中的客户端向用户B进行无第三方机构参与的交易转账,在这种情况下,终端节点可以先调用客户端生成对应的交易有效期信息,并对交易转账数据和交易有效期信息进行哈希计算,得到交易哈希信息,再对交易哈希信息进行签名,得到签名后的交易哈希信息,然后将交易转账数据、交易有效期信息和签名后的交易哈希信息打包成交易信息,接着将该交易信息上传到区块节点。当区块节点接收到该交易信息后,会先对该交易信息进行验证,当通过了对该交易信息的验证,区块节点会将该交易信息保存到交易池中,以便于执行后续的上链处理。在区块节点将交易信息保存到交易池之后,区块链网络会执行如图9所示的步骤,具体地:
步骤901:区块节点生成含有上链时间戳的候选区块,其中,上链时间戳填充于候选区块的区块头。
本步骤中,当区块节点需要创建目标区块时,可以先生成含有上链时间戳的候选区块,以便于后续步骤可以通过在候选区块中填充对应的交易信息以实现对目标区块的创建。
步骤902:区块节点从交易池中获取一定数量的交易信息,交易信息包括交易哈希信息、交易有效期信息和交易数据,其中,交易数据为交易转账数据。
本步骤中,由于在步骤901中生成了候选区块,因此可以从交易池中获取预设数量的交易信息,以便于后续步骤可以筛选出未过期的交易信息并将未过期的交易信息填充到候选区块以实现对目标区块的创建。
步骤903:区块节点对各个交易信息中的交易有效期信息进行校验,判断交易有效期信息是否大于区块头中的上链时间戳,如果不大于,丢弃当前交易信息,并从交易池中删除当前交易信息;如果大于,则跳转到步骤904。
本步骤中,由于在步骤902中获取了包括交易哈希信息、交易有效期信息和交易数据的交易信息,因此可以先对各个交易信息中的交易有效期信息进行校验,判断这些交易信息是否为有效的交易信息。当交易有效期信息不大于区块头中的上链时间戳,说明当前的交易信息失效,因此可以丢弃当前的交易信息,并从交易池中删除当前的交易信息;当交易有效期信息大于区块头中的上链时间戳,说明当前的交易信息有效,因此可以跳转到步骤904。
步骤904:区块节点将交易信息保存至区块体中。
本步骤中,当在步骤903中判断交易有效期信息大于区块头中的上链时间戳时,说明当前的交易信息有效,因此可以将当前的交易信息保存至区块体中。
步骤905:区块节点对区块体中所有交易信息的交易哈希信息计算默克尔树根哈希值,并将默克尔树根哈希值填充至区块头中,得到目标区块。
本步骤中,在区块节点将交易信息保存至区块体之后,可以对区块体中所有交易信息的交易哈希信息计算默克尔树根哈希值,并将默克尔树根哈希值填充至区块头,从而实现对目标区块的创建。
步骤906:区块节点使用签名私钥对目标区块进行签名,得到签名后的目标区块。
本步骤中,当区块节点完成了对目标区块的创建,可以先使用签名私钥对目标区块进行签名,得到签名后的目标区块,达到对目标区块实现数据安全的目的。
步骤907:区块节点将签名后的目标区块在区块链网络中进行广播。
本步骤中,在得到签名后的目标区块后,区块节点可以将该签名后的目标区块在区块链网络中进行广播,使得区块链网络的其他参与节点能够对该签名后的目标区块进行共识处理。
步骤908:区块链网络中的其他参与节点在接收到该目标区块后,对该目标区块的签名进行验证,如果签名验证失败,其他参与节点丢弃该目标区块,如果签名验证成功,跳转到步骤909。
需要说明的是,由于区块上链是区块链网络中的各个节点竞争性进行的,当任一节点在区块链网络中广播了区块后,其他参与节点都需要对该区块进行验证以及共识,只有达成了共识的区块才能够被允许添加到区块链,因此,当区块链网络中的其他参与节点在接收到该目标区块后,会对该目标区块的签名进行验证,如果签名验证失败,说明该目标区块已经被篡改,因此其他参与节点会丢弃该目标区块,并向区块节点反馈没能达成共识的结果;如果签名验证成功,说明该目标区块没有被篡改,因此其他参与节点可以对该目标区块进行后续的共识处理。
步骤909:其他参与节点对该目标区块中所有交易信息的交易哈希信息计算默克尔树根哈希值,并判断计算得到的默克尔树根哈希值是否与目标区块中保存的默克尔树根哈希值相等,如果相等,跳转到步骤910,如果不相等,丢弃该目标区块。
本步骤中,当区块链网络中的其他参与节点通过了对目标区块的签名验证,因此可以对该目标区块中所有交易信息的交易哈希信息计算默克尔树根哈希值,并判断计算得到的默克尔树根哈希值是否与目标区块中保存的默克尔树根哈希值相等,如果相等,说明该目标区块正确,因此可以跳转到步骤910;如果不相等,说明该目标区块不正确,因此其他参与节点会丢弃该目标区块,并向区块节点反馈没能达成共识的结果。
步骤910:当区块链网络中的其他参与节点达成对该目标区块的共识,区块节点将该目标区块添加到区块链,并将该目标区块中的信息保存至数据库中,其中:将区块头保存至第一数据库;将交易数据(即交易转账数据)保存至第二数据库;将上链时间戳、默克尔树根哈希值、交易有效期信息和交易哈希信息保存至第三数据库。
在本例子中,终端节点通过将交易转账数据和交易有效期信息上传到区块节点,使得区块节点能够利用包括交易转账数据和交易有效期信息的交易信息创建目标区块并添加到区块链中,因此,区块节点能够基于交易有效期信息定期对过期的交易转账数据进行删除处理,从而可以释放区块节点的存储空间,达到节省区块节点的存储空间的目的,而且,由于区块节点所保存的数据量得到了减少,因此区块节点对存储空间的数据查询效率和数据插入效率均可以得到提升,从而能够提高区块节点的运行效率。另外,由于添加到区块链的目标区块中包括有交易哈希信息,而交易哈希信息根据对交易转账数据和交易有效期信息进行哈希计算而得到,因此交易哈希信息可以用于作为对目标区块进行验证的验证参数,所以,在删除了过期的交易转账数据的情况下,仍然可以使用交易哈希信息对目标区块进行验证,从而可以保证对目标区块的验证正确性,不对区块链产生影响。
场景二:
参照图10,图10是一个具体例子中的链上数据管理方法的流程图。
假设商户希望通过终端节点中的客户端将商品信息和商品有效期信息上传到区块链,以便于消费者可以随时查看相关的商品信息,在这种情况下,该链上数据管理方法可以包括以下步骤:
步骤1001:客户端获取目标交易信息,其中,目标交易信息包括第一交易数据和第一交易有效期信息,其中,第一交易数据为商品信息,第一交易有效期信息为商品有效期信息。
需要说明的是,当用户通过终端节点的客户端发起针对目标交易信息的上链请求时,客户端可以获取用户输入的包括有第一交易数据和第一交易有效期信息的目标交易信息。其中,第一交易有效期信息用于表征第一交易数据在区块链中的有效时间。
步骤1002:客户端对第一交易数据和第一交易有效期信息进行哈希计算,得到第一交易哈希信息。
本步骤中,第一交易哈希信息可以作为目标交易信息的一部分,用于作为对后续的携带有该目标交易信息的目标区块进行验证的验证参数。
步骤1003:客户端利用签名私钥对第一交易哈希信息进行签名,得到签名后的第一交易哈希信息。
为了实现对目标交易信息的数据安全,客户端在将目标交易信息发送给区块节点之前,可以先利用签名私钥对第一交易哈希信息进行签名,得到签名后的第一交易哈希信息。需要说明的是,由于第一交易哈希信息根据对第一交易数据和第一交易有效期信息进行哈希计算而得到,因此当第一交易数据和第一交易有效期信息中的任一个发生了改变,都会导致第一交易哈希信息发生改变,所以,可以只对第一交易哈希信息进行签名以实现对目标交易信息的数据安全。
步骤1004:客户端对第一交易数据、第一交易有效期信息和签名后的第一交易哈希信息进行组装得到组装后的目标交易信息,并向区块节点发送该组装后的目标交易信息。
本步骤中,由于在步骤1003中得到了签名后的第一交易哈希信息,因此客户端可以对第一交易数据、第一交易数有效期信息和签名后的第一交易哈希信息进行组装得到组装后的目标交易信息,并向区块节点发送该组装后的目标交易信息,以便于区块节点可以对该组装后的目标交易信息进行上链处理。
步骤1005:区块节点接收客户端发送的目标交易信息。
步骤1006:区块节点判断目标交易信息中的第一交易有效期信息是否为0,若是,确定第一交易数据永久有效,并跳转到步骤1008;若否,确定第一交易数据具有确定的有效期,并跳转到步骤1007。
本步骤中,在区块节点接收到目标交易信息之后,区块节点可以判断目标交易信息中的第一交易有效期信息是否为0,若第一交易有效期信息为0,可以确定第一交易数据永久有效,可以进行后续的上链处理,因此可以跳转到步骤1008,对目标交易信息进行进一步的数据安全的验证;若第一交易有效期信息不为0,则可以确定第一交易数据具有确定的有效期,因此可以跳转到步骤1007,对目标交易信息进行进一步的有效期确认。
步骤1007:区块节点判断第一交易有效期信息是否小于当前时间,若否,跳转到步骤1008;若是,表示第一交易数据已经过期失效,无法进行上链处理,此时,丢弃该目标交易信息,并向客户端反馈第一交易数据已经过期失效的提示信息。
需要说明的是,在第一交易有效期信息不为0的情况下,可以确定第一交易数据具有确定的有效期,因此本步骤中,可以进一步判断第一交易有效期信息是否小于当前时间,若不小于当前时间,说明目标交易信息为有效的交易数据,因此可以跳转到步骤1008,对目标交易信息进行进一步的数据安全的验证;若小于当前时间,说明第一交易数据已经过期失效,无法进行上链处理,因此区块节点会丢弃该目标交易信息,并向客户端反馈第一交易数据已经过期失效的提示信息。
步骤1008:区块节点对第一交易数据和签名后的第一交易哈希信息进行验证,判断目标交易信息的正确性,若验证结果为正确,跳转到步骤1009;若验证结果为错误,向客户端反馈相应的错误通知信息。
本步骤中,当目标交易信息通过了时效的验证,区块节点可以对目标交易信息进行进一步的数据安全的验证,因此,区块节点可以对第一交易数据和签名后的第一交易哈希信息进行验证,判断目标交易信息的正确性,若验证结果为正确,说明目标交易信息为正确有效的交易信息,因此可以跳转到步骤1009,将目标交易信息保存至交易池,以便于实现后续的交易信息上链处理;若验证结果为错误,说明目标交易信息为错误的交易信息,因此会丢弃该目标交易信息,并向客户端反馈相应的错误通知信息。
步骤1009:区块节点将目标交易信息保存至交易池。
步骤1010:区块节点生成含有上链时间戳的区块头。
本步骤中,当区块节点需要创建目标区块时,可以先生成在区块头中携带上链时间戳的候选区块,以便于后续步骤可以通过在候选区块中填充对应的目标交易信息以实现对目标区块的创建。
步骤1011:区块节点从交易池中获取一定数量的目标交易信息,然后筛选出第一交易有效期信息大于上链时间戳的目标交易信息,并在交易池中删除第一交易有效期信息小于上链时间戳的目标交易信息。
本步骤中,由于在步骤1010中得到了上链时间戳,因此可以从交易池中获取预设数量的目标交易信息,然后筛选出第一交易有效期信息大于上链时间戳的目标交易信息,并在交易池中删除第一交易有效期信息小于上链时间戳的目标交易信息,也就是说,筛选出未过期的目标交易信息,并在交易池中删除过期的目标交易信息。
步骤1012:区块节点根据上链时间戳按照时间的先后顺序对第一交易有效期信息大于上链时间戳的目标交易信息进行排序。
本步骤中,当筛选出了未过期的目标交易信息,可以根据上链时间戳按照时间的先后顺序对这些未过期的目标交易信息进行排序。经过排序的目标交易信息可以为后续的数据查询等处理提供便利。
步骤1013:区块节点将排序后的目标交易信息填充至区块体,并根据所有目标交易信息的第一交易哈希信息计算默克尔树根哈希值。
本步骤中,当区块节点对未过期的目标交易信息进行排序后,可以将排序后的目标交易信息填充至区块体,并根据所有目标交易信息的第一交易哈希信息计算默克尔树根哈希值,以便于后续步骤可以将默克尔树根哈希值填充至区块头,从而实现对目标区块的创建。
步骤1014:区块节点将默克尔树根哈希值填充至区块头。
步骤1015:区块节点对区块头进行哈希计算,得到区块头哈希值。
步骤1016:区块节点使用签名私钥对区块头哈希值进行签名,得到签名后的区块头哈希值。
本步骤中,在完成对区块头的数据填充之后,为了提高数据的安全性,可以使用签名私钥对区块头哈希值进行签名,得到签名后的区块头哈希值,以便于后续步骤可以根据签名后的区块头哈希值得到目标区块。
步骤1017:区块节点对原始区块头、签名后的区块头哈希值和所有目标交易信息进行重组形成目标区块。
本步骤中,由于在步骤1016中得到了签名后的区块头哈希值,因此可以对原始的区块头、签名后的区块头哈希值和所有目标交易信息进行重组形成目标区块,由于区块头哈希值是经过签名的,因此可以提高目标区块的数据安全性。
步骤1018:区块节点将目标区块进行广播,使得区块链网络对该目标区块进行共识处理。
步骤1019:当达成对该目标区块的共识,区块节点对目标区块进行入库操作,其中:将区块头和签名后的区块头哈希值保存至第一数据库;将第一交易数据保存至第二数据库;将上链时间戳、默克尔树根哈希值、第一交易有效期信息和第一交易哈希信息等信息保存至第三数据库。
本步骤中,由于将区块头、签名后的区块头哈希值、第一交易数据、上链时间戳、默克尔树根哈希值、第一交易有效期信息和第一交易哈希信息分别保存至不同的数据库,因此可以简化后续的信息查询条件,从而可以提高信息的查询效率,能够更为便捷地在对应的数据库中查询或者删除相关的信息。
步骤1020:当到达预设时间,区块节点启动定时巡检程序。
本步骤中,定时巡检程序用于定时检查第一交易数据是否超期,从而有利于实现对区块链中的数据进行管理。预设时间可以等于第一交易有效期信息,或者可以等于第一交易有效期信息与预设时间阈值的差值,此处不作具体限定。
步骤1021:响应于定时巡检程序的触发,区块节点从第三数据库中读取相关联的第一交易有效期信息和第一交易哈希信息。
本步骤中,由于在步骤1020中启动了定时巡检程序,因此当定时巡检程序被触发时,响应于定时巡检程序的触发,区块节点可以从第三数据库中读取相互对应的第一交易有效期信息和第一交易哈希信息,以便于后续步骤可以根据第一交易有效期信息确定对应的第一交易数据是否过期,并且可以在确定第一交易数据已经过期的情况下,根据第一交易哈希信息删除该过期的第一交易数据,从而实现对区块链中的数据的管理。
步骤1022:区块节点判断第一交易有效期信息是否大于当前时间,若是,跳转到步骤1021,若否,跳转到步骤1023。
本步骤中,由于在步骤1021中读取了相关联的第一交易有效期信息和第一交易哈希信息,因此可以判断第一交易有效期信息是否大于当前时间,当第一交易有效期信息大于当前时间,说明对应的第一交易数据还没有过期,因此可以执行步骤1021,从第三数据库中读取其他的第一交易有效期信息和第一交易哈希信息,以便于后续步骤可以对其他的第一交易数据进行保留或者删除的管理;当第一交易有效期信息小于当前时间,说明对应的第一交易数据已经过期,因此可以执行步骤1023以删除对应的过期的第一交易数据。
步骤1023:区块节点根据第一交易哈希信息在第二数据库中删除过期的第一交易数据。
本步骤中,当步骤1022中的判断结果为第一交易有效期信息小于当前时间,说明对应的第一交易数据已经过期,因此可以根据第一交易哈希信息在第二数据库中删除过期的第一交易数据,从而实现对区块链中的数据的管理。
在本例子中,客户端通过将商品信息、商品有效期信息和商品哈希信息上传到区块节点,使得区块节点能够利用包括商品信息、商品有效期信息和商品哈希信息的商品交易信息创建目标区块并添加到区块链中,因此,区块节点能够基于商品有效期信息定期对过期的商品信息进行删除处理,从而可以释放区块节点的存储空间,达到节省区块节点的存储空间的目的,而且,由于区块节点所保存的数据量得到了减少,因此区块节点对存储空间的数据查询效率和数据插入效率均可以得到提升,从而能够提高区块节点的运行效率。另外,由于添加到区块链的目标区块中包括有商品哈希信息,而商品哈希信息根据对商品信息和商品有效期信息进行哈希计算而得到,因此商品哈希信息可以用于作为对目标区块进行验证的验证参数,所以,在删除了过期的商品信息的情况下,仍然可以使用商品哈希信息对目标区块进行验证,从而可以保证对目标区块的验证正确性,不对区块链产生影响。
参照图11,本申请实施例还公开了一种链上数据管理装置,该链上数据管理装置300能够实现如前面实施例的链上数据管理方法,该链上数据管理装置300包括:
信息获取单元310,用于从交易池中获取目标交易信息,目标交易信息包括第一交易数据、第一交易有效期信息和第一交易哈希信息,其中,第一交易哈希信息根据对第一交易数据和第一交易有效期信息进行哈希计算而得到;
区块创建单元320,用于生成包括上链时间戳的候选区块,当根据第一交易有效期信息和上链时间戳确定第一交易数据未超期,根据候选区块和目标交易信息得到目标区块;
区块广播单元330,用于在区块链网络中广播目标区块,使得区块链网络中的参与节点对目标区块进行共识处理;
区块添加单元340,用于当区块链网络中的参与节点达成对目标区块的共识,将目标区块添加到区块链;
信息读取单元350,用于响应于对目标区块中的数据进行管理,读取目标区块中的第一交易有效期信息;
信息删除单元360,用于当根据第一交易有效期信息确定第一交易数据已超期,删除第一交易数据,保留第一交易哈希信息,其中,第一交易哈希信息用于作为对目标区块进行验证的验证参数。
在一实施例中,候选区块包括区块头和区块体;区块创建单元320还用于:
根据第一交易哈希信息计算得到目标交易信息的第一交易根哈希;
将第一交易根哈希填充到区块头,以及将目标交易信息填充到区块体,得到目标区块。
在一实施例中,该链上数据管理装置300还包括:
信息关联单元,用于建立区块头、第一交易数据、上链时间戳、第一交易根哈希、第一交易有效期信息和第一交易哈希信息之间的第一关联关系;
第一保存单元,用于将区块头保存至第一数据库;
第二保存单元,用于将第一交易数据保存至第二数据库;
第三保存单元,用于将上链时间戳、第一交易根哈希、第一交易有效期信息和第一交易哈希信息保存至第三数据库。
在一实施例中,信息删除单元360还用于:
当第一交易有效期信息不等于预设阈值且小于当前时间,确定第一交易数据已超期;
根据第一关联关系确定与第一交易有效期信息对应的第一交易哈希信息;
根据第一交易哈希信息和第一关联关系确定第一交易数据在第二数据库中的存储位置;
在第二数据库中删除第一交易数据。
在一实施例中,该链上数据管理装置300还包括:
信息接收单元,用于接收由客户端发送的目标交易信息;
超期判断单元,用于根据目标交易信息中的第一交易有效期信息判断第一交易数据是否超期;
验证处理单元,用于当确定第一交易数据未超期,对目标交易信息进行验证处理;
第四保存单元,用于当验证通过,将目标交易信息保存至交易池。
在一实施例中,区块创建单元320还用于:
当第一交易有效期信息等于预设阈值,确定第一交易数据未超期;
或者,
当第一交易有效期信息不等于预设阈值且大于上链时间戳,确定第一交易数据未超期。
在一实施例中,目标交易信息的数量为多个;区块创建单元320还用于:
对每两个目标交易信息中的第一交易哈希信息进行合并与哈希处理,得到多个第一合并哈希信息;
对每两个第一合并哈希信息进行合并与哈希处理,得到多个第二合并哈希信息;
对每两个第二合并哈希信息进行合并与哈希处理,直到得到数量唯一的最后合并哈希信息;
将得到的最后合并哈希信息确定为所有目标交易信息的第一交易根哈希。
在一实施例中,区块广播单元330还用于:
对第一交易有效期信息和第一交易哈希信息进行签名处理,得到签名后的目标区块;
在区块链网络中广播签名后的目标区块,使得区块链网络中的参与节点对签名后的目标区块进行共识处理。
在一实施例中,该链上数据管理装置300还包括:
区块接收单元,用于接收由区块链网络中的参与节点发送的待验证区块,待验证区块包括第二交易根哈希、第二交易数据、第二交易有效期信息和第二交易哈希信息,其中,第二交易有效期信息用于表征第二交易数据在待验证区块中的有效时间,第二交易哈希信息根据对第二交易数据和第二交易有效期信息进行哈希计算而得到,第二交易根哈希根据对第二交易哈希信息进行哈希计算而得到;
哈希计算单元,用于根据第二交易哈希信息计算得到第三交易根哈希;
共识处理单元,用于当第三交易根哈希与第二交易根哈希相一致,确认待验证区块通过共识;
第五保存单元,用于将第二交易根哈希、第二交易数据、第二交易有效期信息和第二交易哈希信息保存至数据库。
在一实施例中,第五保存单元还用于:
建立待验证区块的区块头、第二交易根哈希、第二交易数据、第二交易有效期信息和第二交易哈希信息之间的第二关联关系;
将待验证区块的区块头保存至第一数据库;
将第二交易数据保存至第二数据库;
将第二交易根哈希、第二交易有效期信息和第二交易哈希信息保存至第三数据库。
在一实施例中,第二交易哈希信息的数量为多个;哈希计算单元还用于:
对每两个第二交易哈希信息进行合并与哈希处理,得到多个第三合并哈希信息;
对每两个第三合并哈希信息进行合并与哈希处理,得到多个第四合并哈希信息;
对每两个第四合并哈希信息进行合并与哈希处理,直到得到数量唯一的最终合并哈希信息;
将得到的最终合并哈希信息确定为第三交易根哈希。
需要说明的是,由于本实施例的链上数据管理装置300能够实现如前面实施例中以区块节点作为执行主体的链上数据管理方法,因此本实施例的链上数据管理装置300与前面实施例中以区块节点作为执行主体的链上数据管理方法,具有相同的技术原理以及相同的有益效果,为了避免内容重复,此处不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
参照图12,本申请实施例还公开了一种链上数据管理装置,该链上数据管理装置400包括:
至少一个处理器401;
至少一个存储器402,用于存储至少一个程序;
当至少一个程序被至少一个处理器401执行时,实现如前面任意实施例所述的链上数据管理方法。
本申请实施例还公开了一种计算机可读存储介质,其中存储有处理器可执行的程序,处理器可执行的程序被处理器执行时,用于实现如前面任意实施例所述的链上数据管理方法。
本申请实施例还公开了一种计算机程序产品,包括计算机程序或计算机指令,计算机程序或计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取计算机程序或计算机指令,处理器执行计算机程序或计算机指令,使得计算机设备执行如前面任意实施例所述的链上数据管理方法。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其他步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机、服务器或者网络装置等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于上述方法实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
Claims (15)
1.一种链上数据管理方法,其特征在于,包括以下步骤:
从交易池中获取目标交易信息,所述目标交易信息包括第一交易数据、第一交易有效期信息和第一交易哈希信息,其中,所述第一交易哈希信息根据对所述第一交易数据和所述第一交易有效期信息进行哈希计算而得到;
生成包括上链时间戳的候选区块,当根据所述第一交易有效期信息和所述上链时间戳确定所述第一交易数据未超期,根据所述候选区块和所述目标交易信息得到目标区块;
在区块链网络中广播所述目标区块,使得所述区块链网络中的参与节点对所述目标区块进行共识处理;
当所述区块链网络中的参与节点达成对所述目标区块的共识,将所述目标区块添加到区块链;
响应于对所述目标区块中的数据进行管理,读取所述目标区块中的所述第一交易有效期信息;
当根据所述第一交易有效期信息确定所述第一交易数据已超期,删除所述第一交易数据,保留所述第一交易哈希信息,其中,所述第一交易哈希信息用于作为对所述目标区块进行验证的验证参数。
2.根据权利要求1所述的链上数据管理方法,其特征在于,所述候选区块包括区块头和区块体;所述根据所述候选区块和所述目标交易信息得到目标区块,包括:
根据所述第一交易哈希信息计算得到所述目标交易信息的第一交易根哈希;
将所述第一交易根哈希填充到所述区块头,以及将所述目标交易信息填充到所述区块体,得到目标区块。
3.根据权利要求2所述的链上数据管理方法,其特征在于,所述将所述目标区块添加到区块链之后,所述链上数据管理方法还包括:
建立所述区块头、所述第一交易数据、所述上链时间戳、所述第一交易根哈希、所述第一交易有效期信息和所述第一交易哈希信息之间的第一关联关系;
将所述区块头保存至第一数据库;
将所述第一交易数据保存至第二数据库;
将所述上链时间戳、所述第一交易根哈希、所述第一交易有效期信息和所述第一交易哈希信息保存至第三数据库。
4.根据权利要求3所述的链上数据管理方法,其特征在于,所述当根据所述第一交易有效期信息确定所述第一交易数据已超期,删除所述第一交易数据,包括:
当所述第一交易有效期信息不等于预设阈值且小于当前时间,确定所述第一交易数据已超期;
根据所述第一关联关系确定与所述第一交易有效期信息对应的所述第一交易哈希信息;
根据所述第一交易哈希信息和所述第一关联关系确定所述第一交易数据在所述第二数据库中的存储位置;
在所述第二数据库中删除所述第一交易数据。
5.根据权利要求1所述的链上数据管理方法,其特征在于,所述从交易池中获取目标交易信息之前,所述链上数据管理方法还包括:
接收由客户端发送的所述目标交易信息;
根据所述目标交易信息中的所述第一交易有效期信息判断所述第一交易数据是否超期;
当确定所述第一交易数据未超期,对所述目标交易信息进行验证处理;
当验证通过,将所述目标交易信息保存至所述交易池。
6.根据权利要求1所述的链上数据管理方法,其特征在于,所述根据所述第一交易有效期信息和所述上链时间戳确定所述第一交易数据未超期,包括:
当所述第一交易有效期信息等于预设阈值,确定所述第一交易数据未超期;
或者,
当所述第一交易有效期信息不等于预设阈值且大于所述上链时间戳,确定所述第一交易数据未超期。
7.根据权利要求2所述的链上数据管理方法,其特征在于,所述目标交易信息的数量为多个;所述根据所述第一交易哈希信息计算得到所述目标交易信息的第一交易根哈希,包括:
对每两个所述目标交易信息中的所述第一交易哈希信息进行合并与哈希处理,得到多个第一合并哈希信息;
对每两个所述第一合并哈希信息进行所述合并与哈希处理,得到多个第二合并哈希信息;
对每两个所述第二合并哈希信息进行所述合并与哈希处理,直到得到数量唯一的最后合并哈希信息;
将得到的所述最后合并哈希信息确定为所有所述目标交易信息的第一交易根哈希。
8.根据权利要求1所述的链上数据管理方法,其特征在于,所述在区块链网络中广播所述目标区块,使得所述区块链网络中的参与节点对所述目标区块进行共识处理,包括:
对所述第一交易有效期信息和所述第一交易哈希信息进行签名处理,得到签名后的目标区块;
在区块链网络中广播所述签名后的目标区块,使得所述区块链网络中的参与节点对所述签名后的目标区块进行共识处理。
9.根据权利要求1所述的链上数据管理方法,其特征在于,所述链上数据管理方法还包括:
接收由所述区块链网络中的参与节点发送的待验证区块,所述待验证区块包括第二交易根哈希、第二交易数据、第二交易有效期信息和第二交易哈希信息,其中,所述第二交易有效期信息用于表征所述第二交易数据在所述待验证区块中的有效时间,所述第二交易哈希信息根据对所述第二交易数据和所述第二交易有效期信息进行哈希计算而得到,所述第二交易根哈希根据对所述第二交易哈希信息进行哈希计算而得到;
根据所述第二交易哈希信息计算得到第三交易根哈希;
当所述第三交易根哈希与所述第二交易根哈希相一致,确认所述待验证区块通过共识;
将所述第二交易根哈希、所述第二交易数据、所述第二交易有效期信息和所述第二交易哈希信息保存至数据库。
10.根据权利要求9所述的链上数据管理方法,其特征在于,所述将所述第二交易根哈希、第二交易数据、第二交易有效期信息和第二交易哈希信息保存至数据库,包括:
建立所述待验证区块的区块头、所述第二交易根哈希、所述第二交易数据、所述第二交易有效期信息和所述第二交易哈希信息之间的第二关联关系;
将所述待验证区块的区块头保存至第一数据库;
将所述第二交易数据保存至第二数据库;
将所述第二交易根哈希、所述第二交易有效期信息和所述第二交易哈希信息保存至第三数据库。
11.根据权利要求9所述的链上数据管理方法,其特征在于,所述第二交易哈希信息的数量为多个;所述根据所述第二交易哈希信息计算得到第三交易根哈希,包括:
对每两个所述第二交易哈希信息进行合并与哈希处理,得到多个第三合并哈希信息;
对每两个所述第三合并哈希信息进行所述合并与哈希处理,得到多个第四合并哈希信息;
对每两个所述第四合并哈希信息进行所述合并与哈希处理,直到得到数量唯一的最终合并哈希信息;
将得到的所述最终合并哈希信息确定为第三交易根哈希。
12.一种链上数据管理装置,其特征在于,包括:
信息获取单元,用于从交易池中获取目标交易信息,所述目标交易信息包括第一交易数据、第一交易有效期信息和第一交易哈希信息,其中,所述第一交易哈希信息根据对所述第一交易数据和所述第一交易有效期信息进行哈希计算而得到;
区块创建单元,用于生成包括上链时间戳的候选区块,当根据所述第一交易有效期信息和所述上链时间戳确定所述第一交易数据未超期,根据所述候选区块和所述目标交易信息得到目标区块;
区块广播单元,用于在区块链网络中广播所述目标区块,使得所述区块链网络中的参与节点对所述目标区块进行共识处理;
区块添加单元,用于当所述区块链网络中的参与节点达成对所述目标区块的共识,将所述目标区块添加到区块链;
信息读取单元,用于响应于对所述目标区块中的数据进行管理,读取所述目标区块中的所述第一交易有效期信息;
信息删除单元,用于当根据所述第一交易有效期信息确定所述第一交易数据已超期,删除所述第一交易数据,保留所述第一交易哈希信息,其中,所述第一交易哈希信息用于作为对所述目标区块进行验证的验证参数。
13.一种链上数据管理装置,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当至少一个所述程序被至少一个所述处理器执行时实现如权利要求1至11任意一项所述的链上数据管理方法。
14.一种计算机可读存储介质,其特征在于,其中存储有处理器可执行的程序,所述处理器可执行的程序被处理器执行时用于实现如权利要求1至11任意一项所述的链上数据管理方法。
15.一种计算机程序产品,包括计算机程序或计算机指令,其特征在于,所述计算机程序或所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序或所述计算机指令,所述处理器执行所述计算机程序或所述计算机指令,使得所述计算机设备执行如权利要求1至11任意一项所述的链上数据管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210287102.0A CN116841991A (zh) | 2022-03-23 | 2022-03-23 | 链上数据管理方法及其装置、存储介质、程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210287102.0A CN116841991A (zh) | 2022-03-23 | 2022-03-23 | 链上数据管理方法及其装置、存储介质、程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116841991A true CN116841991A (zh) | 2023-10-03 |
Family
ID=88160343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210287102.0A Pending CN116841991A (zh) | 2022-03-23 | 2022-03-23 | 链上数据管理方法及其装置、存储介质、程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116841991A (zh) |
-
2022
- 2022-03-23 CN CN202210287102.0A patent/CN116841991A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112214780B (zh) | 一种数据处理方法、装置、智能设备及存储介质 | |
CN109409122B (zh) | 文件存储方法及其电子设备、存储介质 | |
EP3698518B1 (en) | Primary and secondary blockchain device | |
CN111314067B (zh) | 区块存储方法、装置、计算机设备及存储介质 | |
CN109472164A (zh) | 合同数据的验证方法及其网络和电子设备 | |
SE541713C2 (en) | Method and system for registering digital documents | |
Khodaei et al. | Scalable & resilient vehicle-centric certificate revocation list distribution in vehicular communication systems | |
US20200387859A1 (en) | Methods, Application Server, Block Chain Node and Media For Logistics Tracking and Source Tracing | |
CN109491965A (zh) | 购售电合同的存储方法及其网络和电子设备 | |
CN110598456B (zh) | 一种数据存储方法、装置、电子设备以及存储介质 | |
CN112395353A (zh) | 一种基于联盟链的智能电能表质量数据共享方法及系统 | |
CN108768672B (zh) | 数据处理方法、装置及存储介质 | |
CN113052721B (zh) | 电力数据的处理方法及装置 | |
CN111488372A (zh) | 一种数据处理方法、设备及存储介质 | |
CN112732695A (zh) | 一种基于区块链的云存储数据安全去重方法 | |
CN116304265A (zh) | 一种基于区块链的电子档案管理方法及系统 | |
CN111367923A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN109948370A (zh) | 一种基于区块链的业务处理方法、装置和电子设备 | |
CN115412568A (zh) | 分布式数据传输方法、装置及系统 | |
CN114239044B (zh) | 一种去中心化的可追溯共享访问系统 | |
CN113129008B (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
US20240129108A1 (en) | Data processing methods and apparatuses based on blockchain, electronic device, computer-readable storage medium, and computer program product | |
CN112035863B (zh) | 一种基于智能合约方式的电子合同取证方法及系统 | |
CN110618989B (zh) | 信息处理方法、信息处理装置及相关产品 | |
CN111414417A (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 |