CN111737266B - 区块数据访问方法、区块数据存储方法及装置 - Google Patents
区块数据访问方法、区块数据存储方法及装置 Download PDFInfo
- Publication number
- CN111737266B CN111737266B CN202010759163.3A CN202010759163A CN111737266B CN 111737266 B CN111737266 B CN 111737266B CN 202010759163 A CN202010759163 A CN 202010759163A CN 111737266 B CN111737266 B CN 111737266B
- Authority
- CN
- China
- Prior art keywords
- block
- storage space
- blocks
- access
- value
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书一个或多个实施例提供一种区块数据访问方法、区块数据存储方法及装置,应用于区块链节点,该区块数据访问方法可以包括:确定目标区块所属的目标存储空间,所述目标存储空间为本地存储空间和/或外部存储空间;所述本地存储空间用于存储访问价值大于价值阈值的区块,所述外部存储空间用于存储所述本地存储空间未存储的区块或全量区块;从所述目标存储空间中访问所述目标区块包含的目标数据。
Description
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种区块数据访问方法、区块数据存储方法及装置。
背景技术
区块链技术(也被称之为,分布式账本技术)是一种去中性化的分布式数据库技术,具有去中心化、公开透明、不可篡改、可信任等多种特点,适用于诸多对数据可靠性具有高需求的应用场景中。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种区块数据访问方法、区块数据存储方法及装置。
本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种区块数据访问方法,应用于区块链节点,
所述区块链节点对应的存储空间包括本地存储空间和外部存储空间,所述外部存储空间包括下述至少之一:云存储服务器、分布式存储设备;所述本地存储空间用于存储访问价值大于价值阈值的区块,所述外部存储空间用于存储所述本地存储空间未存储的区块或全量区块;其中,任一区块的访问价值与下述至少之一呈正相关:所述任一区块所含交易的业务价值、所述任一区块的区块高度、所述任一区块的关联区块的访问价值;
所述方法包括:
根据对应于全量区块的区块索引表,将所述本地存储空间或所述外部存储空间确定为包含目标区块的目标存储空间;或者,确定关于所述本地存储空间中保存的区块的区块索引表中是否记录有所述目标区块的相关信息;若是,则将所述本地存储空间确定为所述目标存储空间,否则将所述外部存储空间确定为所述目标存储空间;
从所述目标存储空间中访问所述目标区块包含的目标数据。
根据本说明书一个或多个实施例的第二方面,提出了一种区块数据存储方法,应用于区块链节点,包括:
获取所述区块链节点产生的区块;
将所述区块保存至本地存储空间和/或外部存储空间;所述本地存储空间用于存储访问价值大于价值阈值的区块,所述外部存储空间用于存储所述本地存储空间未存储的区块或全量区块;所述外部存储空间包括下述至少之一:云存储服务器、分布式存储设备;其中,任一区块的访问价值与下述至少之一呈正相关:所述任一区块所含交易的业务价值、所述任一区块的区块高度、所述任一区块的关联区块的访问价值;
根据所有区块的存储位置生成对应于全量区块的区块索引表;或者,根据所述本地存储空间中保存的区块生成对应于被保存至所述本地存储空间中的区块的区块索引表。
根据本说明书一个或多个实施例的第三方面,提出了一种区块数据访问装置,应用于区块链节点,
所述区块链节点对应的存储空间包括本地存储空间和外部存储空间,所述外部存储空间包括下述至少之一:云存储服务器、分布式存储设备;所述本地存储空间用于存储访问价值大于价值阈值的区块,所述外部存储空间用于存储所述本地存储空间未存储的区块或全量区块;其中,任一区块的访问价值与下述至少之一呈正相关:所述任一区块所含交易的业务价值、所述任一区块的区块高度、所述任一区块的关联区块的访问价值;
所述装置包括:
确定单元,根据对应于全量区块的区块索引表,将所述本地存储空间或所述外部存储空间确定为包含目标区块的目标存储空间;或者,确定关于所述本地存储空间中保存的区块的区块索引表中是否记录有所述目标区块的相关信息;若是,则将所述本地存储空间确定为所述目标存储空间,否则将所述外部存储空间确定为所述目标存储空间;
访问单元,从所述目标存储空间中访问所述目标区块包含的目标数据。
根据本说明书一个或多个实施例的第四方面,提出了一种区块数据存储装置,应用于区块链节点,包括:
获取单元,获取所述区块链节点产生的区块;
保存单元,将所述区块保存至本地存储空间和/或外部存储空间;所述本地存储空间用于存储访问价值大于价值阈值的区块,所述外部存储空间用于存储所述本地存储空间未存储的区块或全量区块;所述外部存储空间包括下述至少之一:云存储服务器、分布式存储设备;其中,任一区块的访问价值与下述至少之一呈正相关:所述任一区块所含交易的业务价值、所述任一区块的区块高度、所述任一区块的关联区块的访问价值;
生成单元,根据所有区块的存储位置生成对应于全量区块的区块索引表;或者,根据所述本地存储空间中保存的区块生成对应于被保存至所述本地存储空间中的区块的区块索引表。
根据本说明书一个或多个实施例的第五方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第一方面或第二方面所述的方法。
根据本说明书一个或多个实施例的第六方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面或第二方面所述方法的步骤。
附图说明
图1是本说明书一示例性实施例示出的一种区块数据存储方法的流程图。
图2是本说明书一示例性实施例示出的一种区块数据访问方法的流程图。
图3是本说明书一示例性实施例示出的另一种区块数据存储方法的流程图。
图4是本说明书一示例性实施例示出的一种区块存储位置调整方法的流程图。
图5是本说明书一示例性实施例示出的另一种区块数据访问方法的流程图。
图6是本说明书一示例性实施例示出的一种电子设备的结构示意图。
图7是本说明书一示例性实施例示出的一种区块数据访问装置的框图。
图8是本说明书一示例性实施例示出的另一种电子设备的结构示意图。
图9是本说明书一示例性实施例示出的一种区块数据存储装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链技术(也被称之为,分布式账本技术)是一种去中性化的分布式数据库技术,具有去中心化、公开透明、不可篡改、可信任等多种特点,适用于诸多对数据可靠性具有高需求的应用场景中。
然而,伴随区块链技术去中心化、不可篡改等优质特性,通过区块链技术存储数据同样存在其弊端。例如,由于所有的区块链节点均需保存一份完整的分布式账本,这使得区块链技术在实现数据不可篡改的同时,造成了数据只增不减的情况。随着区块数量的增加,区块链节点的本地存储空间迟早无法承载新产生的区块。因此,需要持续地对本地存储空间进行拓展,带来了持续的硬件成本和维护成本。
基于上述原因,本说明书对现有区块链节点中的数据存储方式进行了改进,使得区块链节点可以在不对本地存储空间进行拓展的前提下,一直承载新生成的区块,且能够在用户需要访问区块数据时,快速读取所需的数据。
图1为本说明书一示例性实施例示出的一种区块数据存储方法,该方法应用于区块链节点;如图1所示,该方法可以包括以下步骤:
步骤102,获取所述区块链节点产生的区块。
在本说明书中,区块链节点可以部署于任意类型的电子设备,比如手机、PC(Personal Computer,个人计算机)、平板电脑、笔记本电脑、掌上电脑(PDAs,PersonalDigital Assistants)、可穿戴设备(如智能眼镜、智能手表等)、服务器等,本说明书不对此进行限制。
本说明书中的区块链节点可以为任一类型的区块链网络所包含的节点,例如,该区块链网络可以为公有链、联盟链、私有链等,本说明书不对此进行限制。
步骤104,将所述区块保存至本地存储空间和/或外部存储空间;所述本地存储空间用于存储访问价值大于价值阈值的区块,所述外部存储空间用于存储所述本地存储空间未存储的区块或全量区块;所述外部存储空间包括下述至少之一:云存储服务器、分布式存储设备;其中,任一区块的访问价值与下述至少之一呈正相关:所述任一区块所含交易的业务价值、所述任一区块的区块高度、所述任一区块的关联区块的访问价值。
在相关技术中,通常将区块链节点产生的所有区块均保存在本地存储空间中,而本地存储空间有限,为了避免本地存储空间饱和而影响区块的存储,需要不断拓展本地存储空间,带来持续的硬件成本和维护成本。
在本说明书中,区块链节点产生的区块除了被存储于本地存储空间以外,还被存储于外部存储空间中。这使得即使区块链节点保存的区块数量只增不减,也无需拓展本地存储空间,而只需将区块存储至外部存储空间即可。除此之外,本说明书根据区块的访问价值对区块进行存储。其中,本地存储空间用于存储访问价值相对更高的区块,而外部存储空间可以存储访问价值相对更低的区块或全量区块,这使得用户在需要访问区块数据的时候,能够有较大概率直接从本地存储空间中获取所需的区块数据,进而提高访问区块数据的效率。
在本说明书中,可以预设一价值阈值,以通过将区块的访问价值与该价值阈值进行比较,进而确定将该区块保存至本地存储空间还是保存至外部存储空间。该价值阈值可以由本领域技术人员根据实际情况确定,本说明书对此不作限制。
在本说明书中,只需保存至本地存储空间的区块和保存至外部存储空间的区块的总和能够覆盖全量区块即可,具体的保存方式可以根据实际情况确定。
在一实施例中,本地存储空间和外部存储空间可以分别保存全量区块的一部分,两者所保存的区块相互之间不重复。例如,将访问价值高于价值阈值的区块保存至本地存储空间,而将访问价值低于价值阈值的区块保存至外部存储空间。由于通过该方式保存的区块在所属区块链节点中不存在备份,使得最大程度地节省了存储空间,避免了存储空间的浪费。
在另一实施例中,本地存储空间中可以仅保存全量区块中的一部分,而外部存储空间则保存有全量区块。例如,仅将访问价值高于价值阈值的区块保存至本地存储空间,而将全量区块保存至外部存储空间。由于该方式在外部存储空间中保存有全量区块,使得被保存至本地存储空间的区块在外部存储空间中存在备份区块。应当理解的是,由于本地存储空间中保存的为访问价值相对更高的区块,访问价值较高通常意味着较为重要。换言之,外部存储空间中保存有访问价值相对更高的区块的备份区块,相当于将相对重要的区块进行了备份。可见,通过本实施例的方法,可以保证相对重要的区块的安全性。
随着区块存储数量的增加,很可能出现访问价值高于价值阈值的区块的总数据量大于本地存储空间的容量的情况。在该情况下,可以仅将访问价值高于价值阈值的区块中访问价值相对更高的区块保存至本地存储空间。举例而言,假设本地存储空间的容量为100GB,而访问价值高于价值阈值的区块的总数据量为150GB,那么,可以确定该150GB中访问价值相对更高的总数据量小于或等于100GB的区块,并将确定的区块保存至本地存储空间中。应当理解的是,确定的区块的数据量之所以需要小于或等于100GB是由于数据以区块形式存储,无法对其中的数据进行分别存储,在实际应用中,通常会将尽可能多的区块存储至本地存储空间中,即在该举例中会尽可能使本地存储空间的100GB被访问价值相对更高的区块填满,以最大程度地利用本地存储空间。
步骤106,根据所有区块的存储位置生成对应于全量区块的区块索引表;或者,根据所述本地存储空间中保存的区块生成对应于被保存至所述本地存储空间中的区块的区块索引表。
在本说明书中,可以基于所有区块的存储位置生成区块索引表,例如,可以记录有各个区块被保存至本地存储空间还是外部存储空间的区块索引,以用于查找各个区块的存储位置,其具体形式和记录的内容可以根据实际情况确定。
在一实施例中,该区块索引表可以对应于全量区块。具体的,可以根据所有区块的存储位置生成该区块索引表。在此基础上,当存在用户需要访问保存在目标区块中的目标数据时,即可根据该区块索引表查找到该目标区块被保存在本地存储空间还是被保存在外部存储空间。应当理解的是,在该情况下,若该目标区块被同时保存在本地存储空间和外部存储空间,优先从本地存储空间中访问该目标区块。原因在于,在实际应用中,访问外部存储空间中保存的区块,需要将区块优先从外部存储空间读取至本地存储空间,再访问被读取至本地存储空间的区块,访问效率较低。
在另一实施例中,该区块索引表可以仅对应于本地存储空间中保存的区块。具体的,该区块索引表中可以仅记录保存在本地存储空间中的区块。在此基础上,当存在用户需要访问保存在目标区块中的目标数据时,即可确定该区块索引表中是否记录有目标区块的索引信息,若存在,则证明目标区块被保存在本地存储空间,否则证明被保存在外部存储空间中。与此对应的是,若本地存储空间和外部存储空间均仅保存全量区块中的一部分区块,且两者保存的区块相互之间不重复,那么,该区块索引表也可以仅对应于外部存储空间中保存的区块,在该情况下,若在区块索引表中查找到目标区块,则证明目标区块被保存在外部存储空间中,否则证明该目标区块被保存在本地存储空间中。
在本说明书中,上述区块索引表还可以记录有各个区块所存储的区块数据,以在接收到针对目标数据的区块数据访问请求的情况下,根据该区块索引表确定存储有目标数据的目标区块,再确定目标区块的存储位置。
在区块链节点中,区块数据通常以交易的形式被保存。在此基础上,本说明书中任一区块的访问价值与其所包含交易的业务价值呈正相关。应当理解的是,若一区块中包含多个交易,上述所包含交易的业务价值指的是这多个交易的业务价值总和。
在本说明书中,每条交易的业务价值通常需要从多个维度进行衡量。例如,每条交易的业务价值可以与其所涉及的资产类型、所涉及的资产数额、交易类型、所涉及用户的重要程度中的至少之一相关。当然,该举例仅是示意性的,每条交易的业务价值具体如何衡量,可以由本领域技术人员根据实际需求确定,本说明书对此不作限制。
区块的访问价值除了与其所包含交易的业务价值相关以外,还可以与其他因素相关。例如,区块的访问价值还可以与其区块高度和/或访问热度相关。
区块高度可以用于衡量某一区块到创世区块的距离,由于区块按照生成的时刻顺序依次链接,因此,区块高度也可以用来衡量该区块生成时刻距离当前时刻的时长。其中,区块高度越高,意味着其离创世区块的距离越远,其生成的时刻距离当前时刻越近。而在本领域中,区块生成的时刻距离当前时刻越近,意味着该区块中保存的数据的时效性越强,其访问价值也就越高。换言之,区块的访问价值与其区块高度呈正相关。
在本实施例中,区块的访问价值可以还与相应区块的访问热度呈正相关,而区块的访问热度通常与其被访问频率相关。
在一实施例中,区块的访问热度与该区块在预设时长内的被访问频率呈正相关。在该实施例中,可以直接用被访问频率表征相应区块的访问热度,例如,可以统计区块在预设时长内的被访问频率,并将该被访问频率作为相应区块的访问热度。
在另一实施例中,区块的访问热度可以由热度分析模型根据相应区块在预设时长内的被访问频率预测得到。具体的,可以预先设定上述预设时长,并获取已存储的若干区块的被访问频率和访问热度,再将获取的被访问频率作为输入、将获取的访问热度作为输出,以训练得到上述热度分析模型。在此基础上,当存在需要保存的新的区块的情况下,可以优先统计相应区块在预设时长内的被访问频率,并基于该统计得到的被访问频率和上述热度分析模型确定相应区块的访问热度。当然上述获取访问热度的方式仅是示意性的,具体如何获取访问热度,以及访问热度与哪些因素相关可由本领域技术人员根据实际情况确定,本说明书对此不作限定。
由上述内容可知,区块的访问价值可以与其所包含交易的业务价值、访问热度以及区块高度相关。在实际应用中,可以通过神经网络等深度学习方式得到任一区块的访问价值。例如,本领域的专业人员可以基于专业知识和工作经验确定样本区块的访问热度、区块高度、访问价值以及其所包含交易的业务价值,并将样本区块的访问热度、区块高度以及所包含交易的业务价值作为输入、将样本区块的访问价值作为输出,以训练价值分析模型。在此基础上,即可由训练得到的价值分析模型根据任一区块所含交易的业务价值、区块高度和访问热度得到该任一区块的访问价值。
在区块链节点中,不同区块所包含的数据可能在一些维度上存在相似性,使得这些区块的访问价值的实际值较为接近,但由于这些区块在另一些维度上存在差异,又导致区块链节点确定的这些区块的访问价值相差较大。换言之,由于不同区块在部分维度上的差异,容易导致区块链节点对区块的访问价值造成误判。可见,仅基于区块本身的相关数据确定的访问价值可能与实际值存在加大的偏差。因此,本说明书还引入了关联区块的概念,以更为准确地确定区块的访问价值。
在本说明书中,互为关联区块指的是区块之间在某些特定维度上存在一定的相似性,例如,该相似性可以体现在所包含交易的相似性上。在实际应用中,可以根据两区块中保存的交易的相似度确定两者是否为关联区块。例如,若两个区块互为关联区块,那么,一区块包含的至少一个交易与另一区块所包含的至少一个交易之间互为关联交易。而互为关联交易的交易所保存的数据相类似,具体的,两者存在下述关联至少之一:所涉及资产类型相同、所属交易类型相同或相近、涉及同一用户或所涉及的用户之间存在关联关系。当然,该举例仅是示意性的,具体如何确定关联交易和关联区块,可由本领域技术人员根据实际需求确定,本说明书对此不作限定。
确定关联区块的访问价值的方式与上文介绍的确定区块访问价值的方式一致,在此不作赘述。其中,上述任一区块的访问价值与其关联区块的访问价值呈正相关。
除确定关联区块的访问价值之外,还需要确定关联区块对上述任一区块的影响程度。应当理解的是,对于上述任一区块而言,可能存在不止一个关联区块,且不同关联区块对上述任一区块的影响程度可能相同,也可能不同。举例而言,当第一区块、第二区块均为第三区块的关联区块时,第一区块的访问价值对于第三区块的访问价值的影响,可能与第二区块的访问价值对第三区块的访问价值相同,也可能不同。相对应的,同一区块在作为不同区块的关联区块时,产生的影响程度亦是可能相同,也可能不同。举例而言,当第一区块同时作为第四区块和第五区块的关联区块时,第一区块的访问价值对第四区块的访问价值的影响程度,可能与第一区块的访问价值对第五区块的访问价值的影响程度相同,也可能不同。
在实际应用中,关联区块对上述任一区块的影响程度通常与两区块之间的区块高度相关。应当理解的是,互为关联区块的两区块的区块高度差值越大,意味着两区块的生成时刻相差越远。而生成时刻相差越远,证明两区块的数据的关联性也相对较小,例如两者的时效性会相差很大。因此,关联区块的访问价值对上述任一区块的访问价值的影响程度,负相关于该关联区块与该任一区块之间的区块高度差。
在本说明书中,若需要访问被保存在外部存储空间的区块,需要优先将该区块传输至本地存储空间,再从本地存储空间中读取。通过该方式,被访问的区块可以被缓存在本地存储空间,以便用户随时读取。
在本说明书中,本地存储空间的数据读写速度高于外部存储空间的数据读写速度。基于此,访问价值相对更高的区块可以被快速读写,提高了用户访问数据的速度。
在本说明书中,存在多种类型的外部存储空间,例如,外部存储空间可以为云存储服务器、分布式存储设备,当然,该举例仅是示意性的,除了云存储服务器、分布式存储设备之外,还可以采用其他任意类型的网络存储设备。类似的,在本说明书中,也存在多种类型的本地存储空间,例如,可以为内存、SSD(Solid State Drives,固态硬盘)、HDD(Hard DiskDrives,机械硬盘)等。本地存储空间和外部存储空间采用何种设备或硬件可以由本领域技术人员根据实际情况确定,本说明书对此不作限定。
由上述技术方案可知,本说明书通过引入外部存储空间,使得在需被保存的所有区块所占用的总数据量大于本地存储空间的容量的情况下,可以将区块保存至外部存储空间,避免了相关技术中由于区块链中数据只增不减的特性造成的因本地存储空间饱和而需要对其进行拓展的技术问题,降低了硬件成本和维护成本。
进一步的,本说明书在获取到区块链产生的区块后,将访问价值较高的区块保存至本地存储空间,将访问价值较低的区块或全量区块保存至外部存储空间。在此基础上,在用户请求访问区块数据时,可以有较大概率从本地存储空间中获取所需访问的区块数据,提高了用户访问区块数据的效率。
再进一步的,本说明书引入关联区块的概念,并在需要确定任一区块的访问价值时,将关联区块的访问价值作为影响该任一区块的访问价值的因素之一,避免了由于仅通过该任一区块本身确定访问价值,而造成确定的访问价值与实际值不符的问题,即通过引入关联区块,提高了区块访问价值的准确度。
与上述区块数据存储方法相对应的,本说明书还提供一种区块数据访问方法,以对通过上述方法存储的区块数据进行访问。
需要声明的是,在下一实施例中,大多内容已在上一实施例中进行了介绍,例如,获取区块的访问价值的方式、对区块进行存储的方式。因此,在下一实施例中不再对重复的内容进行赘述,相关内容均可参照上一实施例的介绍。
图2为本说明书一示例性实施例示出的一种区块数据访问方法,该方法应用于区块链节点;如图2所示,该方法可以包括以下步骤:
步骤202,根据对应于全量区块的区块索引表,将所述本地存储空间或所述外部存储空间确定为包含目标区块的目标存储空间;或者,确定关于所述本地存储空间中保存的区块的区块索引表中是否记录有所述目标区块的相关信息;若是,则将所述本地存储空间确定为所述目标存储空间,否则将所述外部存储空间确定为所述目标存储空间。
如上所述,区块链节点对应的存储空间包括本地存储空间和外部存储空间。其中,本地存储空间用于存储访问价值大于价值阈值的区块,外部存储空间用于存储本地存储空间未存储的区块或全量区块;
如上所述,区块链节点可以部署于任意类型的电子设备,例如,可以为常见的用户终端,比如手机、PC、平板电脑、笔记本电脑、掌上电脑、可穿戴设备、服务器等。
如上所述,本说明书中的区块链节点可以为任一类型的区块链网络所包含的节点,例如,该区块链网络可以为公有链、联盟链、私有链等,本说明书不对此进行限制。
如上所述,可以预设一价值阈值,以通过将区块的访问价值与该价值阈值进行比较,进而确定将该区块保存至本地存储空间还是保存至外部存储空间。在一种情况下,本地存储空间和外部存储空间可以分别保存全量区块的一部分,两者所保存的区块相互之间不重复;在另一种情况下,外部存储空间中可以保存全量区块。
如上所述,在访问价值高于价值阈值的区块的总数据量大于本地存储空间的容量的情况下,本地存储空间用于在访问价值高于价值阈值的区块中优先存储访问价值相对更高的区块。
步骤204,从所述目标存储空间中访问所述目标区块包含的目标数据。
如上所述,在将区块保存至本地存储空间和/或外部存储空间之后,可以基于所有区块的存储位置生成区块索引表。该区块索引表可以仅对应于本地存储空间中保存的区块,也可以对应于全量区块。其中,在区块索引表对应于全量区块的情况下,区块链节点可以根据对应于全量区块的区块索引表确定保存有目标区块的目标存储空间。在区块索引表对应于本地存储空间中保存的区块的情况下,区块链节点可以确定关于本地存储空间中保存的区块的区块索引表中是否记录有目标区块的相关信息;若是,则将本地存储空间确定为所述目标存储空间,否则将外部存储空间确定为目标存储空间。
如上所述,区块索引表还可以记录有各个区块所存储的区块数据,以在接收到针对目标数据的区块数据访问请求的情况下,根据该区块索引表确定存储有目标数据的目标区块,再确定目标区块的存储位置。
如上所述,任一区块的访问价值与其所包含交易的业务价值呈正相关。而每条交易的业务价值可以与其所涉及的资产类型、所涉及的资产数额、交易类型、所涉及用户的重要程度中的至少之一相关。
如上所述,区块的访问价值还可以与其他因素相关。例如,区块的访问价值还与其区块高度、访问热度中的至少之一呈正相关。其中,任一区块的访问热度可以与该任一区块在预设时长内的被访问频率呈正相关;或者,任一区块的访问热度由热度分析模型根据该任一区块在预设时长内的被访问频率进行预测得到。
如上所述,在实际应用中,可以通过神经网络等深度学习方式得到任一区块的访问价值。例如,本领域的专业人员可以基于专业知识和工作经验确定样本区块的访问热度、区块高度、访问价值以及其所包含交易的业务价值,并将其访问热度、区块高度以及所包含交易的业务价值作为输入、将样本区块的访问价值作为输出,以训练价值分析模型。在此基础上,即可由该训练得到的价值分析模型根据任一区块所含交易的业务价值、区块高度和访问热度得到该任一区块的访问价值。
如上所述,本说明书还引入了关联区块的概念,以将关联区块的访问价值作为影响相应区块的访问价值的因素之一,提高了确定的区块的访问价值的准确度。具体的,任一区块的访问价值与其关联区块的访问价值呈正相关。其中,若两个区块互为关联区块,那么,一区块包含的至少一个交易与另一区块所包含的至少一个交易之间互为关联交易。而互为关联交易的交易之间存在下述关联至少之一:所涉及资产类型相同、所属交易类型相同或相近、涉及同一用户或所涉及的用户之间存在关联关系。
如上所述,任一区块的访问价值与其关联区块的访问价值呈正相关。除此之外,该任一区块的访问价值还与其关联区块对其的影响程度相关,具体的,该影响程度与两区块之间的区块高度差呈负相关。
如上所述,若需要访问被保存在外部存储空间的区块,需要优先将该区块传输至本地存储空间,再从本地存储空间中读取。
如上所述,本地存储空间的数据读写速度高于外部存储空间的数据读写速度。基于此,访问价值相对更高的区块可以被快速读写,提高了用户访问目标数据的速度。
如上所述,本说明书中存在多种类型的外部存储空间,例如,该外部存储空间可以为云存储服务器、分布式存储设备等。类似的,本地存储空间也可以为不同的存储媒介,例如,可以为内存、SSD(Solid State Drives,固态硬盘)、HDD(Hard Disk Drives,机械硬盘)等。本地存储空间和外部存储空间采用何种存储媒介可以由本领域技术人员根据实际情况确定,本说明书对此不作限定。
由上述技术方案可知,本说明书按照访问价值的高低将区块链节点产生的区块分别存储至本地存储空间和/或外部存储空间,其中,本地存储空间中存储的区块的访问价值高于外部存储空间中的区块的访问价值。通过该存储方式,使得被访问价值较高的区块可以被快速访问,提高了访问区块数据的效率。
接下来,结合具体实施例,对本说明书的技术方案进行介绍。
图3为本说明书一示例性实施例公开的另一种区块数据存储方法,该方法应用于区块链节点,如图3所示,该方法可以包括以下步骤:
步骤301,获取区块链节点产生的区块。
在本实施例中,区块链节点可以在接收到待存储交易的情况下,生成相应的区块。在实际应用中,在生成区块后,可以将该区块优先保存至本地存储空间,以对其进行访问价值的计算。
需要声明的是,在本地存储空间已饱和的情况下,可以先将生成的区块保存至外部存储空间,以进行访问价值的计算。当然,在实际应用中,也可以在本地存储空间未饱和的情况下,将区块直接保存至外部存储空间进行访问价值的计算,本说明书对此不作限制。
步骤302,获取该区块中所有交易的业务价值,以及该区块的区块高度、被访问频率。
在本实施例中,需要基于产生的区块本身的相关数据得到一初始访问价值,这些相关数据可以包括该区块的区块高度、该区块中所有交易的业务价值、以及该区块的被访问频率。
其中,被访问频率用于表征上文所述的访问热度,该区块的被访问频率可以在被先被保存至本地存储空间或外部存储空间后,按照预设时长直接进行统计得到,当然也可以通过上文所述的预先建立的热度分析模型得到。
为了方便理解,举例进行说明:假设本实施例在步骤301中产生了区块A,那么,在本步骤中,一方面需要获取区块A中所有交易的业务价值以及其区块高度;另一方面,还需要在将其保存至本地存储空间后,按照预设时长统计区块A的被访问频率。
步骤303,确定该区块的关联区块。
为了获得更为准确的访问价值,除了需要通过产生的区块本身的相关数据确定一初始访问价值以外,还需要确定其关联区块的访问价值,以作为计算区块最终访问价值的因素之一。
在本实施例中,可以优先获取该区块包含的所有交易的相关信息,例如,相关信息可以包括交易所属的类型、所涉及用户、所涉及资产的类型及数额,并将该区块所含交易的相关信息与节点中已存储的其他区块中所含交易的相关信息进行比较,以将相关信息较为相似的已存储区块确定为该区块的关联区块。
承接上述举例,可以获取区块A所含交易所涉及的用户、所涉及的资产类型及数额、所属交易类型,进而将这些信息与已存储的区块B、C、D等所含交易的相关信息进行比较,假设区块B所含交易所涉及的资产类型及数额、所属交易类型等与区块A较为相似,那么,可以将区块B确定为区块A的关联区块。
步骤304,获取该关联区块的区块高度、访问价值。
确定的关联区块被作为计算最终访问价值的因素之一,其对最终访问价值的影响程度与其访问价值和区块高度相关,因此,还需要获取关联区块的访问价值与区块高度。
承接上述举例,可以获取区块B的访问价值以及其区块高度。在实际应用中,可以建立相应的区块信息表,以用于查询与已存储区块相关的信息。
步骤305,将获取的区块中所有交易的业务价值、该区块的区块高度、该区块的访问热度,以及其关联区块的区块高度和访问价值代入价值计算公式,以得到该区块的访问价值。
在确定区块中所有交易的业务价值、该区块的区块高度、该区块的访问热度,以及其关联区块的区块高度和访问价值之后,即可计算该区块的访问价值。需要声明的是,对于设备而言,所做的其实是在获取上述与该区块相关的数据以及与其关联区块相关的数据之后,直接代入预先建立的模型以得到该区块的访问价值。
在本实施例中,公开了一种预设模型算法,以用于计算该区块的访问价值。该预设模型算法为:
其中,
Block[Value]表征区块访问价值。
a表征上述初始访问价值的调整系数,可由本领域技术人员根据实际情况确定,或者由设备按照第一预设规则动态调整。
f1(x)表征用于计算上述初始访问价值的函数,该函数可由具备专业知识和丰富工作经验的专业人员进行设定,也可以基于通过样本区块的相关数据训练得到的价值分析模型确定。
B[n]表征区块所包含的第n条交易的业务价值。
Block[height]表征区块高度。
P(x)表征区块的被访问频率,在该公式中将区块的被访问频率作为直接作为该区块的访问热度。
b表征关联区块对上述初始访问价值的调整参数,可由本领域技术人员根据实际情况进行确定,或者由设备按照第二预设规则进行动态调整。
f2(x)表征用于计算上述调整幅度的函数,该函数可由具备专业知识和丰富工作经验的专业人员进行设定。
RBlock[value]表征关联区块的访问价值。
RBlock[height]表征关联区块的区块高度。
值得注意的是,在上述公式中,第二部分中也包括Block[height]这一参数,该参数用于与RBlock[height]共同计算两区块的区块高度差,以确定关联区块对需要计算访问价值的区块的影响程度。
步骤306,判断该区块的访问价值是否高于价值阈值;若是,则跳转至步骤307;若否,则跳转至步骤308。
在本实施例中,可以优先设定价值阈值,以作为判断将区块保存至本地存储空间还是外部存储空间的依据。例如,假设访问价值通过数值1-10表征,其中数字越大证明相应区块的访问价值越高,那么,该价值阈值可以设置为5。
承接上述举例,假设通过上述公式得到区块A的访问价值为8,则可以确定该区块A的访问价值高于价值阈值,因此,可以将区块存储至本地存储空间;相反的,若通过上述公式得到区块A的访问价值为3,则可以确定区块A的访问价值低于该价值阈值,因此,可以将区块A存储至外部存储空间。
步骤307,将该区块保存至本地存储空间。
步骤308,将该区块保存至外部存储空间。
应当理解的是,若在步骤301中,优先将区块保存至本地存储空间,那么访问价值高于价值阈值的区块无需对其进行移动;而对于访问价值低于价值阈值的区块,则应当将其转移至外部存储空间中。
相应的,若在步骤301中,优先将区块保存至外部存储空间,那么,需要将访问价值高于价值阈值的区块转移至本地存储空间;而对于访问价值低于价值阈值的区块,则不对其进行移动。
需要声明的是,上述保存方式应用于“本地存储空间和外部存储空间均仅保存全量区块的一部分”的情况,即任一区块仅被保存至本地存储空间或外部存储空间。在实际应用中,还可以在外部存储空间保存全量区块,在该情况下,若在步骤301中,优先将区块保存至本地存储空间,那么访问价值高于价值阈值的区块需要被复制到外部存储空间;而对于访问价值低于价值阈值的区块,则将其转移至外部存储空间中。若在步骤301中,优先将区块保存至外部存储空间,那么,需要将访问价值高于价值阈值的区块复制到本地存储空间;而对于访问价值低于价值阈值的区块,则不对其进行操作。
步骤309,将区块的存储位置记录于区块索引表。
在本实施例中,在将区块保存至相应的存储空间后,即可生成相应的区块索引表,该区块索引表记录有各个区块的存储位置,以用于在接收到访问请求的情况下,查找需要访问的区块的存储位置。
承接上述举例,假设节点还生成了区块F,且通过上述方法最终将区块F存储至外部存储空间,那么,针对区块A和区块F即可生成如表1所示的区块索引表。
如表1所示,该区块索引表中记录了区块A存储位置为本地存储空间、区块F的存储位置为外部存储空间。
当然,需要声明的是,尽管本实施例中将存储至本地存储空间的区块和存储至外部存储空间的区块均记录于区块索引表。在实际应用中,也可以仅记录本地存储空间中保存的区块或外部存储空间中存储的区块。
由上述技术方案可知,在区块链节点产生区块后,区块链节点可以通过预设价值计算公式计算该区块的访问价值,并将该访问价值与预设的价值阈值进行比较,进而将访问价值高于该价值阈值的区块存储至本地存储空间,将访问价值低于价值阈值的区块存储至外部存储空间。一方面,即使本地存储空间饱和仍不会影响区块的存储过程,避免了相关技术中由于区块数据只增不减的特性而造成的存储空间饱和而无法存储产生的区块的情况;另一方面,本说明书将访问价值较高的区块存储至本地存储空间中,使得访问价值较高的区块可以被快速访问,提高了访问区块的效率。
进一步的,在计算访问价值的过程中,本说明书一方面通过区块自身的相关数据计算该区块的初始访问价值;另一方面将关联区块的访问价值作为相应区块的访问价值的计算参数之一。通过该方法,使得本说明书计算得到的访问价值更为准确。
在基于上一实施例对区块链节点产生的区块进行存储后,还可以根据各个区块的访问价值的变化,对区块的存储位置进行调整。接下来,在上一实施例的基础上,对如何基于区块访问价值的变化调整区块的存储位置进行介绍。
图4为本说明书一示例性实施例示出的一种区块存储位置调整方法。如图4所示,该方法可以包括以下步骤:
步骤401,统计下一预设时长内区块的被访问频率。
在上一实施例中,将区块的被访问频率作为评估区块访问价值的因素之一,而区块的被访问频率会随着用户对数据的访问发生变化。因此,尽管区块中所保存的交易以及区块高度不会发生变化,但区块的访问价值仍会随着被访问频率的变化而变化。在此基础上,需要基于被访问频率的变化对区块的访问价值进行重复计算,以对区块的存储位置进行调整。
应当理解的是,本步骤中的下一预设时长,指的是上一实施例中进行被访问频率统计的第一个预设时长之后的预设时长。
步骤402,基于统计得到的被访问频率重新确定区块的访问价值。
在本实施例中,可以将步骤401统计得到的被访问频率再次代入上一实施例中介绍的价值计算公式中,以重新确定区块的访问价值。
在值得注意的是,在实际应用中,区块的关联区块也可能发生变化。例如,在将该区块存储至区块链节点后,继续有新的区块被保存至区块链节点,且新的区块所包含的交易与该区块所包含的交易相似度较高,即可将该新的区块确定为该区块的关联区块,进而重新基于新的关联区块确定该区块的访问价值。
步骤403,将重新确定的区块的访问价值与价值阈值进行比较。
承接上述举例,假设本次重新确定的区块A和区块F的访问价值均为3,那么即可确定重新确定的区块A的访问价值和区块F的访问价值均已低于价值阈值。
步骤404,基于比较结果对区块的存储位置进行调整。
承接上述举例,假设区块A和F在上一实施例中被保存后的存储位置如表1所示。那么,由于重新确定的区块A的访问价值已经低于价值阈值,因此,应当将其由本地存储空间转移至外部存储空间;而对于区块F,由于其重新确定的访问价值也低于价值阈值,且本就被保存在外部存储空间中,因此,无需对其存储位置进行调整。
需要声明的是,若外部存储空间中保存的为全量区块,那么,只需将保存在本地存储空间中的区块A删除即可,而区块F则仍无需对其操作。
步骤405,基于调整结果更新区块索引表,并跳转至步骤401。
在本实施例中,在对区块的存储位置进行调整后,应当对区块索引表进行相应的更新,以避免区块索引表更新不及时而造成无法找到区块的情况。
承接上述举例,更新后的区块索引表可以如表2所示。
应当理解的是,调整区块存储位置以及更新区块索引表的过程是持续的、一直进行的。因此,在更新区块索引表后,可以跳转至步骤401,以进行下一次区块位置的调整和索引表的更新。
在基于上一实施例将产生的区块进行存储后,本实施例可以继续对已存储的区块的被访问频率进行统计,并通过再次统计得到的被访问频率重新确定区块的访问价值。在此基础上,即可根据重新确定的访问价值与价值阈值的比较结果对已存储区块的存储位置进行调整,使得访问价值较高的区块始终被保存于独写速度更快的本地存储空间,保证了用户访问区块的效率。
除此之外,本实施例在对已存储区块的存储位置进行调整后,可以基于调整后的存储位置,对区块索引表进行更新,使得用户在需要访问区块时,可以根据最新的区块索引表查找所需访问的区块,避免了由于区块索引表更新不及时而造成的无法查找到所要访问区块的问题。
在上述实施例的基础上,本说明书还提供一种区块数据访问方法。
图5为本说明书一示例性实施例示出的另一种区块数据访问方法,如图5所示,该方法可以包括以下步骤:
步骤501,接收针对目标区块的访问请求。
在实际应用中,区块链节点接收到的可能并非为直接针对某一区块的访问请求,而是针对保存于区块中的数据的访问请求。因此,在接收到针对任一数据,例如目标数据的情况下,可以优先确定保存有该目标数据的目标区块,再进一步确定保存有目标区块的存储空间,然后通过访问保存在确定的存储空间中的目标区块,以获取上述目标数据。
步骤502,获取区块链节点所维护的区块索引表。
在本实施例中,为确定目标数据对应的目标区块,还可以在生成区块的过程中,在区块索引表中记录各个区块所包含的数据。通过该方式,即可在接收到针对任一数据的访问请求的情况下,确定包含该任一数据的区块,进而确定保存有该区块的存储空间。
步骤503,基于区块索引表确定目标区块存储于本地存储空间还是外部存储空间。
以上述实施例中的表1为例,假设步骤501中确定的目标区块为区块A,则能够基于区块索引表确定区块A被保存在本地存储空间;假设步骤501中确定的目标区块为区块F,则能够基于区块索引表确定区块F被保存在外部存储空间。
步骤504,在确定目标区块存储于外部存储空间的情况下,将目标区块从外部存储空间读取至本地存储空间。
承接上述举例,在目标区块为区块F的情况下,可以优先将保存于外部存储空间的区块F读取至本地存储空间,例如,该外部存储空间可以为云存储服务器,那么可以通过向该云存储服务器发送针对区块F的获取请求,以将区块F从云存储服务器转移至本地存储空间。在此基础上,即可直接访问被转移至本地存储空间的区块F。
步骤505,访问被读取至本地存储空间的目标区块。
步骤506,在确定目标区块存储于本地存储空间的情况下,访问本地存储空间中保存的目标区块。
承接上述举例,在目标区块为区块A的情况下,可以直接访问保存于本地存储空间的区块A。
由上述技术方案可知,在接收到针对目标区块的访问请求的情况下,本说明书可以根据区块链节点维护的区块索引表确定保存有该目标区块的存储空间。其中,在确定目标区块存储于本地存储空间的情况下,可以直接访问本地存储空间中保存的目标区块;在确定目标区块存储于外部存储空间的情况下,可以优先将目标区块从外部存储空间读取至本地存储空间,再访问被读取至本地存储空间的目标区块。可见,通过本说明书的技术方案可以精准确定区块的存储位置,进而提高了区块数据的访问效率。
图6是一示例性实施例提供的一种电子设备的示意结构图。请参考图6,在硬件层面,该设备包括处理器602、内部总线604、网络接口606、内存608以及非易失性存储器610,当然还可能包括其他业务所需要的硬件。处理器602从非易失性存储器610中读取对应的计算机程序到内存608中然后运行,在逻辑层面上形成区块数据访问装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图7,在软件实施方式中,该区块数据访问装置可以包括:
确定单元701,根据对应于全量区块的区块索引表,将所述本地存储空间或所述外部存储空间确定为包含目标区块的目标存储空间;或者,确定关于所述本地存储空间中保存的区块的区块索引表中是否记录有所述目标区块的相关信息;若是,则将所述本地存储空间确定为所述目标存储空间,否则将所述外部存储空间确定为所述目标存储空间;
访问单元702,从所述目标存储空间中访问所述目标区块包含的目标数据。
可选的,在访问价值高于价值阈值的区块的总数据量大于所述本地存储空间的容量的情况下,所述本地存储空间用于在访问价值高于价值阈值的区块中优先存储访问价值相对更高的区块。可选的,每条交易的业务价值与下述至少之一相关:
所涉及的资产类型、所涉及的资产数额、交易类型、所涉及用户的重要程度。
可选的,所述任一区块的访问价值还与所述任一区块的访问热度呈正相关。
可选的,所述访问热度与所述任一区块在预设时长内的被访问频率呈正相关;或者,
所述访问热度由热度分析模型根据所述任一区块在预设时长内的被访问频率进行预测得到。
可选的,所述任一区块的访问价值由价值分析模型根据所述任一区块所含交易的业务价值、区块高度和访问热度进行预测得到。
可选的,所述关联区块的访问价值对所述任一区块的访问价值的影响程度,负相关于所述关联区块与所述任一区块之间的区块高度差。
可选的,所述任一区块包含的至少一个交易与所述关联区块包含的至少一个交易互为关联交易;互为关联交易的交易之间存在下述关联中至少之一:
所涉及资产类型相同、所属交易类型相同或相近、涉及同一用户或所涉及的用户之间存在关联关系。
可选的,所述本地存储空间的数据读写速度高于所述外部存储空间的数据读写速度。
图8是一示例性实施例提供的一种电子设备的示意结构图。请参考图8,在硬件层面,该设备包括处理器802、内部总线804、网络接口806、内存808以及非易失性存储器810,当然还可能包括其他业务所需要的硬件。处理器802从非易失性存储器810中读取对应的计算机程序到内存808中然后运行,在逻辑层面上形成区块数据存储装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图9,在软件实施方式中,该区块数据存储装置可以包括:
获取单元901,获取所述区块链节点产生的区块;
保存单元902,将所述区块保存至本地存储空间和/或外部存储空间;所述本地存储空间用于存储访问价值大于价值阈值的区块,所述外部存储空间用于存储所述本地存储空间未存储的区块或全量区块;所述外部存储空间包括下述至少之一:云存储服务器、分布式存储设备;其中,任一区块的访问价值与下述至少之一呈正相关:所述任一区块所含交易的业务价值、所述任一区块的区块高度、所述任一区块的关联区块的访问价值;
生成单元903,根据所有区块的存储位置生成对应于全量区块的区块索引表;或者,根据所述本地存储空间中保存的区块生成对应于被保存至所述本地存储空间中的区块的区块索引表。
可选的,保存单元902进一步用于:
在访问价值高于价值阈值的区块的总数据量大于所述本地存储空间的容量的情况下,将访问价值高于价值阈值的区块中访问价值相对更高的区块存储至所述本地存储空间。
可选的,每条交易的业务价值与下述至少之一相关:
所涉及的资产类型、所涉及的资产数额、交易类型、所涉及用户的重要程度。
可选的,所述任一区块的访问价值还与所述任一区块的访问热度呈正相关。
可选的,所述访问热度与所述任一区块在预设时长内的被访问频率呈正相关;或者,
所述访问热度由热度分析模型根据所述任一区块在预设时长内的被访问频率进行预测得到。
可选的,所述任一区块的访问价值由价值分析模型根据所述任一区块所含交易的业务价值、区块高度和访问热度进行预测得到。
可选的,所述关联区块的访问价值对所述任一区块的访问价值的影响程度,负相关于所述关联区块与所述任一区块之间的区块高度差。
可选的,所述任一区块包含的至少一个交易与所述关联区块包含的至少一个交易互为关联交易;互为关联交易的交易之间存在下述关联中至少之一:
所涉及资产类型相同、所属交易类型相同或相近、涉及同一用户或所涉及的用户之间存在关联关系。
可选的,所述本地存储空间的数据读写速度高于所述外部存储空间的数据读写速度。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM)和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (22)
1.一种区块数据访问方法,应用于区块链节点,
所述区块链节点对应的存储空间包括本地存储空间和外部存储空间,所述外部存储空间包括下述至少之一:云存储服务器、分布式存储设备;所述本地存储空间用于存储访问价值大于价值阈值的区块,所述外部存储空间用于存储所述本地存储空间未存储的区块或全量区块,所述全量区块包括所述区块链节点产生的所有区块;其中,任一区块的访问价值与下述至少之一呈正相关:所述任一区块所含交易的业务价值、所述任一区块的区块高度、所述任一区块的关联区块的访问价值;
所述方法包括:
根据对应于全量区块的区块索引表,将所述本地存储空间或所述外部存储空间确定为包含目标区块的目标存储空间;或者,确定关于所述本地存储空间中保存的区块的区块索引表中是否记录有所述目标区块的相关信息;若是,则将所述本地存储空间确定为所述目标存储空间,否则将所述外部存储空间确定为所述目标存储空间;
从所述目标存储空间中访问所述目标区块包含的目标数据。
2.根据权利要求1所述的方法,在访问价值高于价值阈值的区块的总数据量大于所述本地存储空间的容量的情况下,所述本地存储空间用于在访问价值高于价值阈值的区块中优先存储访问价值相对更高的区块。
3.根据权利要求1所述的方法,每条交易的业务价值与下述至少之一相关:
所涉及的资产类型、所涉及的资产数额、交易类型、所涉及用户的重要程度。
4.根据权利要求1所述的方法,所述任一区块的访问价值还与所述任一区块的访问热度呈正相关。
5.根据权利要求4所述的方法,
所述访问热度与所述任一区块在预设时长内的被访问频率呈正相关;或者,
所述访问热度由热度分析模型根据所述任一区块在预设时长内的被访问频率进行预测得到。
6.根据权利要求4所述的方法,
所述任一区块的访问价值由价值分析模型根据所述任一区块所含交易的业务价值、区块高度和访问热度进行预测得到。
7.根据权利要求1所述的方法,所述关联区块的访问价值对所述任一区块的访问价值的影响程度,负相关于所述关联区块与所述任一区块之间的区块高度差。
8.根据权利要求1所述的方法,所述任一区块包含的至少一个交易与所述关联区块包含的至少一个交易互为关联交易;互为关联交易的交易之间存在下述关联中至少之一:
所涉及资产类型相同、所属交易类型相同或相近、涉及同一用户或所涉及的用户之间存在关联关系。
9.根据权利要求1所述的方法,所述本地存储空间的数据读写速度高于所述外部存储空间的数据读写速度。
10.一种区块数据存储方法,应用于区块链节点,包括:
获取所述区块链节点产生的区块;
将所述区块保存至本地存储空间和/或外部存储空间;所述本地存储空间用于存储访问价值大于价值阈值的区块,所述外部存储空间用于存储所述本地存储空间未存储的区块或全量区块,所述全量区块包括所述区块链节点产生的所有区块;所述外部存储空间包括下述至少之一:云存储服务器、分布式存储设备;其中,任一区块的访问价值与下述至少之一呈正相关:所述任一区块所含交易的业务价值、所述任一区块的区块高度、所述任一区块的关联区块的访问价值;
根据所有区块的存储位置生成对应于全量区块的区块索引表;或者,根据所述本地存储空间中保存的区块生成对应于被保存至所述本地存储空间中的区块的区块索引表。
11.根据权利要求10所述的方法,所述将所述区块保存至本地存储空间和/或外部存储空间,包括:
在访问价值高于价值阈值的区块的总数据量大于所述本地存储空间的容量的情况下,将访问价值高于价值阈值的区块中访问价值相对更高的区块存储至所述本地存储空间。
12.根据权利要求10所述的方法,每条交易的业务价值与下述至少之一相关:
所涉及的资产类型、所涉及的资产数额、交易类型、所涉及用户的重要程度。
13.根据权利要求10所述的方法,所述任一区块的访问价值还与所述任一区块的访问热度呈正相关。
14.根据权利要求13所述的方法,
所述访问热度与所述任一区块在预设时长内的被访问频率呈正相关;或者,
所述访问热度由热度分析模型根据所述任一区块在预设时长内的被访问频率进行预测得到。
15.根据权利要求13所述的方法,
所述任一区块的访问价值由价值分析模型根据所述任一区块所含交易的业务价值、区块高度和访问热度进行预测得到。
16.根据权利要求10所述的方法,所述关联区块的访问价值对所述任一区块的访问价值的影响程度,负相关于所述关联区块与所述任一区块之间的区块高度差。
17.根据权利要求10所述的方法,所述任一区块包含的至少一个交易与所述关联区块包含的至少一个交易互为关联交易;互为关联交易的交易之间存在下述关联中至少之一:
所涉及资产类型相同、所属交易类型相同或相近、涉及同一用户或所涉及的用户之间存在关联关系。
18.根据权利要求10所述的方法,所述本地存储空间的数据读写速度高于所述外部存储空间的数据读写速度。
19.一种区块数据访问装置,应用于区块链节点,
所述区块链节点对应的存储空间包括本地存储空间和外部存储空间,所述外部存储空间包括下述至少之一:云存储服务器、分布式存储设备;所述本地存储空间用于存储访问价值大于价值阈值的区块,所述外部存储空间用于存储所述本地存储空间未存储的区块或全量区块,所述全量区块包括所述区块链节点产生的所有区块;其中,任一区块的访问价值与下述至少之一呈正相关:所述任一区块所含交易的业务价值、所述任一区块的区块高度、所述任一区块的关联区块的访问价值;
所述装置包括:
确定单元,根据对应于全量区块的区块索引表,将所述本地存储空间或所述外部存储空间确定为包含目标区块的目标存储空间;或者,确定关于所述本地存储空间中保存的区块的区块索引表中是否记录有所述目标区块的相关信息;若是,则将所述本地存储空间确定为所述目标存储空间,否则将所述外部存储空间确定为所述目标存储空间;
访问单元,从所述目标存储空间中访问所述目标区块包含的目标数据。
20.一种区块数据存储装置,应用于区块链节点,包括:
获取单元,获取所述区块链节点产生的区块;
保存单元,将所述区块保存至本地存储空间和/或外部存储空间;所述本地存储空间用于存储访问价值大于价值阈值的区块,所述外部存储空间用于存储所述本地存储空间未存储的区块或全量区块,所述全量区块包括所述区块链节点产生的所有区块;所述外部存储空间包括下述至少之一:云存储服务器、分布式存储设备;其中,任一区块的访问价值与下述至少之一呈正相关:所述任一区块所含交易的业务价值、所述任一区块的区块高度、所述任一区块的关联区块的访问价值;
生成单元,根据所有区块的存储位置生成对应于全量区块的区块索引表;或者,根据所述本地存储空间中保存的区块生成对应于被保存至所述本地存储空间中的区块的区块索引表。
21.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-18中任一项所述的方法。
22.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-18中任一项所述方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010759163.3A CN111737266B (zh) | 2020-07-31 | 2020-07-31 | 区块数据访问方法、区块数据存储方法及装置 |
US17/338,179 US20220035797A1 (en) | 2020-07-31 | 2021-06-03 | Block data access method, block data storage method, and apparatuses thereof |
EP21179692.5A EP3945694B1 (en) | 2020-07-31 | 2021-06-16 | Block data access method, block data storage method, and apparatuses thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010759163.3A CN111737266B (zh) | 2020-07-31 | 2020-07-31 | 区块数据访问方法、区块数据存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111737266A CN111737266A (zh) | 2020-10-02 |
CN111737266B true CN111737266B (zh) | 2020-11-24 |
Family
ID=72656796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010759163.3A Active CN111737266B (zh) | 2020-07-31 | 2020-07-31 | 区块数据访问方法、区块数据存储方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220035797A1 (zh) |
EP (1) | EP3945694B1 (zh) |
CN (1) | CN111737266B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296707A (zh) * | 2021-05-31 | 2021-08-24 | 尧领有限公司 | 磁盘存储方法及系统、区块链节点、计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933987A (zh) * | 2018-11-30 | 2019-06-25 | 上海点融信息科技有限责任公司 | 用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备 |
US20200218940A1 (en) * | 2019-01-08 | 2020-07-09 | International Business Machines Corporation | Creating and managing machine learning models in a shared network environment |
CN110535687B (zh) * | 2019-07-30 | 2021-06-04 | 大连理工大学 | 一种基于车联网环境下轻量级区块链的协同缓存方法 |
CN110489429B (zh) * | 2019-08-22 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 数据获取方法、装置、计算机可读存储介质和计算机设备 |
-
2020
- 2020-07-31 CN CN202010759163.3A patent/CN111737266B/zh active Active
-
2021
- 2021-06-03 US US17/338,179 patent/US20220035797A1/en not_active Abandoned
- 2021-06-16 EP EP21179692.5A patent/EP3945694B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3945694B1 (en) | 2023-08-30 |
US20220035797A1 (en) | 2022-02-03 |
EP3945694A1 (en) | 2022-02-02 |
EP3945694C0 (en) | 2023-08-30 |
CN111737266A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111737265B (zh) | 区块数据访问方法、区块数据存储方法及装置 | |
EP3557447A1 (en) | False address information identification method and device | |
CN106911743B (zh) | 小文件的写聚合、读聚合方法及系统和客户端 | |
CN111930848B (zh) | 数据分区存储方法、装置及系统 | |
CN112181902B (zh) | 数据库的存储方法、装置及电子设备 | |
CN105468644B (zh) | 一种用于在数据库中进行查询的方法与设备 | |
CN110858210B (zh) | 数据查询方法及装置 | |
CN111275106B (zh) | 对抗样本生成方法、装置及计算机设备 | |
CN110851434A (zh) | 一种数据存储方法、装置及设备 | |
CN111046052B (zh) | 一种数据库中的操作记录存储方法、装置及设备 | |
CN111737266B (zh) | 区块数据访问方法、区块数据存储方法及装置 | |
CN111506580A (zh) | 一种基于中心化块链式账本的交易存储方法 | |
US20200364211A1 (en) | Predictive database index modification | |
CN110362569A (zh) | 数据表的校验方法及装置、电子设备、存储介质 | |
CN109271453A (zh) | 一种数据库容量的确定方法和装置 | |
US11226993B2 (en) | Method and apparatus for clustering data stream | |
WO2019228009A1 (zh) | 一种lsm树的优化方法、装置及计算机设备 | |
CN114896250B (zh) | 一种键值分离的键值存储引擎索引优化方法及装置 | |
US20220342887A1 (en) | Predictive query processing | |
CN108140047B (zh) | 数据处理装置和方法以及数据容器结构 | |
CN112685329A (zh) | 用于处理数据的方法及相关装置 | |
CN114880322B (zh) | 一种金融数据列式存储方法、系统、设备及存储介质 | |
CN110020069B (zh) | 访问量计算的方法及装置 | |
CN113724009A (zh) | 一种运力定价方法、装置、电子设备及机器可读存储介质 | |
CN112711684A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40041830 Country of ref document: HK |