CN116264862A - 用于对数据存储进行定价的方法和计算机系统 - Google Patents
用于对数据存储进行定价的方法和计算机系统 Download PDFInfo
- Publication number
- CN116264862A CN116264862A CN202080105709.1A CN202080105709A CN116264862A CN 116264862 A CN116264862 A CN 116264862A CN 202080105709 A CN202080105709 A CN 202080105709A CN 116264862 A CN116264862 A CN 116264862A
- Authority
- CN
- China
- Prior art keywords
- data
- host
- ownership
- data object
- distributed ledger
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
提供了一种利用分布式账本对数据存储网络中的数据存储进行定价的方法。所述方法允许与所述数据存储网络相关联的主机基于数据的所有权时间段在这些主机自身之间分摊拥有相同数据的价格。这使得拥有数据的过程更便宜,所述价格也可以按照所述所有权时间段得到很好的分配。所述方法确定当前主机拥有当前数据对象的主机所有权时间段,此后确定一个或多个主机中的任何一个主机拥有所述当前数据对象的总所有权时间段,此后基于所述主机所有权时间段除以所述总所有权时间段确定所述当前主机的数据对象存储价格。
Description
技术领域
本公开大体上涉及数据保护和存储领域;更具体地,涉及用于利用分布式账本对数据存储网络中的数据存储进行定价的方法和计算机系统。此外,本公开还涉及执行该方法的计算机程序产品。
背景技术
数据备份用于在主存储系统中发生数据丢失时保护和恢复数据。数据丢失事件的示例可以包括但不限于数据损坏、主存储系统中的硬件或软件故障、数据意外删除、黑客攻击或恶意攻击。因此,出于安全原因,使用单独的备份系统或存储系统备份主存储系统中存在的数据。传统上,备份系统通常读取数据变化,或直接从主存储系统获取数据,而有些备份系统存储整个变化的数据。因此,随着时间的推移,随着变化的数据占据大量的存储空间,备份系统的存储空间会越来越多地被占用。这会降低备份系统的性能,因此不希望出现这种情况。此外,数据存储的费用,以及包括存储硬件费用在内的所有关联费用,仍然是一个负担。
目前,有许多技术可以用于精简数据或节省数据存储器中的空间,例如数据去重、数据压缩。这类传统技术通常涉及通过消除重复数据来减少要存储的数据量。例如,数据去重技术以分块或块形式存储数据,当接收到新数据时,新数据也被划分为可变或固定大小的分块或块。此后,检查与新数据的分块相关联的新数据(通过比较),即检查是否已经将相同的数据写入存储系统。如果已经写入新数据,则仅使用指向数据的指针(或引用)。通过这种方式,数据去重技术克服了相同数据在存储系统中重复的问题。但是,如果新数据是使用加密存储的,则只有在主存储系统与备份系统之间存在互信的情况下,才能进行数据去重。随着发展,也可能在主存储系统与备份系统之间没有互信的情况下实现数据去重。
此外,从数据存储定价的角度来看,数据去重也至关重要,因为数据去重可能涉及大量数据。虽然,对于数据去重,实现数据共享以减少占用的存储空间。然而,在这种情况下,由于与数据存储(例如云存储)相关联的高价格或费用,从参与者的角度来看,数据存储定价变得非常关键。例如,可能需要两个或更多个计算机系统(或密码数据存储系统中的主机)支付整个数据存储价格关联的数据单元(例如数据对象或块),而不管共享数据单元或此类存储的数据单元或共享的数据单元的所有权持续时间如何。此外,随着时间的推移,密码数据存储系统中的主机数量可能会增加,并且类似地,主机存储数据和主机共享数据所有权也可能增加。在这种情况下,如果数据存储价格没有得到高效地管理,数据存储系统中的主机可能会承担拥有数据的不必要的财务负担。
因此,根据上述讨论,需要克服与管理密码数据存储系统中数据存储的定价相关联的上述缺点。
发明内容
本公开寻求提供用于对数据存储网络中的数据存储进行定价的方法和计算机系统。本公开寻求提供一种解决数据存储网络中数据存储定价方式低效的现有问题的方案。本公开的目的是提供一种至少部分克服现有技术中遇到的问题的方案,并提供改进的方法和计算机系统,这些方法和计算机系统能够基于共享数据(或共享所有权的数据)的所有权时间段分摊拥有共享数据(或共享所有权的数据)的数据存储价格。
本公开的目的是通过所附独立权利要求中提供的方案实现的。本公开的有利实现方式在从属权利要求中进一步限定。
在一个方面,本公开提供了一种对数据存储网络中的数据存储进行定价的方法。所述网络包括:数据存储器,布置成存储一个或多个数据对象;一个或多个主机,布置成在所述数据存储器中存储数据对象;分布式账本,布置成可供所述一个或多个主机中的每一个主机访问,并且所述分布式账本包括存储在所述数据存储器中的所述数据对象中的每一个数据对象的一个或多个所有权指示,每个所有权指示包括拥有对应数据对象的主机的指示。所述方法用于根据所述所有权指示所指示,确定所述一个或多个主机中拥有所述一个或多个数据对象中的当前数据对象的当前主机的存储价格。所述方法包括:确定所述当前主机拥有所述当前数据对象的主机所有权时间段,确定所述一个或多个主机中的任何一个主机拥有所述当前数据对象的总所有权时间段,并基于所述主机所有权时间段除以所述总所有权时间段确定所述当前主机的数据对象存储价格。
本公开提供了一种用于管理所述数据存储网络中的数据存储定价的改进方法。通常,所述方法能够基于所有权时间段管理数据存储定价。例如,数据存储网络中的每个主机仅对主机拥有的数据对象和共享数据被收取费用,仅对主机共享的所有权时间段被收取费用。需要说明的是,所述方法使主机可以基于数据的所有权时间段在主机自身之间分摊拥有相同数据(或共享所有权的数据)的价格。通常,主机的数据对象存储价格是基于主机所有权时间段除以总所有权时间段计算的。这使得拥有数据的过程更便宜,价格也可以按照数据的所有权时间段得到很好的分配。
在一种实现方式中,所述方法还包括基于价格常数乘以所述主机所有权时间段除以所述总所有权时间段,确定所述当前主机的所述数据对象存储价格。
通过利用价格常数,对于数据存储网络中的主机,高效地管理数据对象存储价格。例如,通过选择合适的价格常数,使数据对象存储价格对于主机而言是可承担的,同时对于提供用于存储数据的数据存储器的服务提供商而言是有利润的。
在另一种实现方式中,所述方法还包括将所述当前主机的总存储价格确定为所述当前主机拥有的所述一个或多个数据对象中的每一个数据对象的数据对象存储价格的总和。
当前主机(或一个或多个主机中的每一个主机)可以与数据存储网络中的其它主机共享多个数据对象的所有权。因此,当前主机将被收取总存储价格的费用,该总存储价格是当前主机拥有的一个或多个数据对象(多个数据对象)中的每一个数据对象的数据对象存储价格的总和。由于数据对象存储价格是基于主机所有权时间段计算的,因此,即使拥有大量数据对象,主机也是可承担的。
在一种实现方式中,所述方法还包括在所述分布式账本中接收消息,所述消息包括指示在所有权时间主机对数据对象的所有权的记录,并相应地更新所述所有权指示,以反映所述数据对象从所述所有权时间起由所述主机拥有。
通过利用所有权时间,结合指示主机对数据对象的所有权的记录,能够高效地计算主机的主机所有权时间段。例如,所有权时间可以在分布式账本中适当地注释或提及,并且可以很容易地检索以计算主机所有权时间段。这还使得能够轻松计算共享多个数据对象的所有权的主机的主机所有权时间段。
在一种实现方式中,所述方法还包括通过将所述指示所有权的记录作为所有权指示存储在所述分布式账本中来更新所述所有权指示。
通过更新所有权指示,即通过使用指示所有权的记录,分布式账本可以维护主机关于数据对象的实时所有权数据。这支持高效地计算主机的主机所有权时间段。通常,在计算主机的主机所有权时间段时,可以考虑所有所需的所有权数据(即所有权时间)。
在另一种实现方式中,所述方法还包括在所述分布式账本中接收消息,所述消息包括指示在删除时间主机去除数据对象的所有权的记录,并相应地更新所述所有权指示,以反映所述主机拥有所述数据对象直至所述删除时间。
通过利用删除时间,结合指示主机对数据对象的所有权删除的记录,能够高效地计算主机的主机所有权时间段。例如,删除时间可以在分布式账本中适当地注释或提及,并且可以很容易地检索以计算主机所有权时间段。本质上,当主机失去对数据对象的所有权时,主机不应因欠数据对象而收取费用。这还使得能够轻松计算共享多个数据对象的所有权的主机的主机所有权时间段。
在另一种实现方式中,所述方法还包括通过将所述指示所有权删除的记录作为所有权指示存储在所述分布式账本中来更新所述所有权指示。
通过更新所有权删除的指示,即通过使用指示所有权删除的记录,分布式账本可以维护主机关于不再由主机拥有的数据对象的所有权删除的实时数据。这支持高效地计算主机的主机所有权时间段。通常,在计算主机的主机所有权时间段时,可以考虑所有所需的所有权删除数据(即删除时间)。
在一种实现方式中,所述方法还包括删除所述所有权指示未指示任何主机对其具有当前所有权的数据对象。
一旦任何数据对象完全失去所有权,或者数据对象不再由数据存储网络中的任何主机拥有。在这种情况下,这些数据对象可以从数据存储器中删除,以创建存储其它数据对象的表单可用空间。这使得能够高效地管理数据存储器的空间。
在另一种实现方式中,所述方法还包括进一步基于所述当前主机已访问所述当前数据对象的次数确定所述当前主机的所述数据对象存储价格。
通过进一步基于当前主机已访问当前数据对象的次数确定数据对象存储价格,可以基于使用数据存储器制定数据对象存储价格。数据存储网络是密码数据存储系统。因此,与数据存储网络相关联的所有主机都可以在拥有者主机的许可下访问拥有的数据对象和共享的数据对象。因此,如果主机访问数据对象(拥有或共享)的次数更多,则更多的数据对象存储价格适用于主机。换句话说,与访问数据对象相关联的数据对象存储价格可以被视为由提供数据存储器并负责维护数据存储器的服务提供商收取的单独费用。
在一种实现方式中,所述一个或多个数据对象中的每一个数据对象利用去重以加密格式存储,并且其中,所述分布式账本还包括标识所述数据对象的第一哈希值。所述方法还包括获取要由所述一个或多个主机中的第一主机存储的新数据对象的第一哈希值,并确定是否在所述分布式账本中找到所述第一哈希值。如果在所述分布式账本中没有找到所述第一哈希值,则:创建构成所述第一主机对所述数据对象具有所有权的证明的确认数据集;此后使用块唯一加密密钥对所述新数据对象进行加密,并使用等于所述第一哈希值的密钥将所述加密后的新数据块存储在所述数据存储器中;此后在所述分布式账本中存储第一所有权记录,所述第一所有权记录包括所述第一主机的标识、未加密的所述第一哈希值以及用仅所述第一主机已知的密钥加密的所述确认数据集,从而更新所述所有权指示。如果在所述分布式账本中找到所述第一哈希值,则从所述分布式账本中获取关于所述一个或多个主机中已经在所述数据存储器中存储与所述新数据对象相同的先前数据对象的第二主机的信息;此后在所述分布式账本中输入对所述先前数据对象的密钥的密钥请求消息,所述密钥请求包括用所述第二主机的公钥加密的确认数据集;此后从所述分布式账本接收由所述第二主机存储的密钥传输记录,所述密钥传输记录包括用所述第一主机的所述公钥加密的数据的密钥;此后向所述分布式账本发送所述第一主机已被赋予所述数据对象的所有权的新所有权记录,从而更新所述所有权指示。
该方法改进了存储在存储器中的数据的去重,该存储器是(例如在密码数据存储系统中)两个或更多个可能不信任对方的主机共用的。数据块以加密形式存储在存储器中,第一哈希值用于标识每个数据块。因此,当第一主机要存储新数据块时,将新数据块的第一哈希值与已经在存储器中存储的数据块的第一哈希值进行比较。如果第一哈希值相同,则不存储新数据块,并且将已存储的数据块(类似于新数据块)的所有权赋予第一主机。如果第一哈希值不相同,则存储新数据块,并将新数据块的所有权赋予第一主机。因此,在存储到两个或更多个可能不信任对方的主机共用的存储器中之前,如果新数据块已经在存储器存在中,则标识该新数据块。应当理解,第一主机通常共享已经存在且更早仅由第二主机拥有的数据对象的所有权。简言之,现在第一主机和第二主机都基于与数据对象关联的相同哈希值共享数据对象的所有权。
在另一种实现方式中,本公开提供了一种计算机程序产品,包括计算机可读代码模块,当所述计算机可读代码模块在数据存储网络中的计算机系统的处理器中运行时,其中,所述数据存储网络包括保存加密数据的数据存储器,可由一个或多个其它主机访问的所述数据存储器将使所述计算机系统执行上述一种或多种方法。
本公开提供了一种改进的计算机程序产品,该计算机程序产品可在计算机系统处执行,以改进数据存储网络中数据存储定价的管理。通常,主机的数据对象存储价格是基于主机所有权时间段除以总所有权时间段计算的。这使得拥有数据的过程更便宜,价格也可以在数据的所有权时间段方面得到很好的分配。
在又一种实现方式中,所述计算机程序产品包括其上具有计算机可读代码模块的非瞬时性存储模块。
通过具有计算机可读代码模块的非瞬时性存储器,提供了一种改进的计算机程序产品,其能够高效地管理数据存储网络中的数据存储定价。
在一种实现方式中,本公开提供了一种利用分布式账本的数据存储网络中的计算机系统,所述计算机系统包括程序存储器和用于执行在所述程序存储器中找到的程序的处理器,其中,所述程序存储器包括上述计算机程序产品。
本公开提供了可用于改进数据存储网络中数据存储定价的管理的计算机系统。显然,利用分布式账本的多个这样的计算机系统将构成数据存储网络,在该数据存储网络中,每个计算机系统可用于基于数据的所有权时间段在这些计算机系统自身之间分摊拥有相同数据的价格。因此,这使得拥有数据的过程更便宜,价格也可以按照数据的所有权时间段得到很好的分配。
应当理解,所有上述实现方式都可以组合。
需要说明的是,本申请中描述的所有设备、元件、电路、单元和模块可以在软件或硬件元件或其任何类型的组合中实现。本申请中描述的各种实体执行的所有步骤以及所描述的将由各种实体执行的功能旨在表明相应的实体适于或用于执行相应的步骤和功能。虽然在以下具体实施例的描述中,外部实体执行的具体功能或步骤没有在执行具体步骤或功能的实体的具体详述元件的描述中反映,但是技术人员应清楚,这些方法和功能可以通过相应的硬件或软件元件或其任何组合实现。应当理解,本公开的特征易于以各种组合进行组合,而不偏离由所附权利要求书定义的本公开的范围。
本公开的附加方面、优点、特征和目的从附图和结合以下所附权利要求书解释的说明性实现方式的详细描述中变得明显。
附图说明
当结合附图阅读时,可以更好地理解以上发明内容以及说明性实施例的以下详细描述。为了说明本公开,本公开的示例性结构在附图中示出。但是,本公开不限于本文公开的具体方法和工具。此外,本领域技术人员应理解,附图不是按比例绘制的。在可能的情况下,相同的元件用相同的标记表示。
现在参考下图仅作为示例来描述本公开的实施例,其中:
图1是根据本公开的实施例,利用分布式账本对数据存储网络中的数据存储进行定价的方法;
图2是根据本公开的实施例,利用分布式账本防止加密数据在数据存储网络中重复的方法的流程图;
图3是根据本公开的实施例,与利用分布式账本的数据存储网络相关联的计算机系统的框图。
在附图中,带下划线的标记用于表示带下划线的标记所在的项目或与带下划线的标记相邻的项目。不带下划线的标记与由将不带下划线的标记与项目关联的线标识的项目有关。当一个标记不带下划线并具有关联的箭头时,不带下划线的标记用于标识箭头指向的一般项目。
具体实施方式
以下详细描述说明了本公开的实施例以及可以实现这些实施例的方式。虽然已经公开了实施本公开的一些模式,但本领域技术人员应认识到,也可以存在用于实施或实践本公开的其它实施例。
参见图1,图1示出了根据本公开的实施例的对数据存储网络中的数据存储进行定价的方法100。方法100包括由与数据存储网络相关联的主机(或计算机系统)执行的步骤102至106。通常,方法100使数据存储网络中的主机可以管理数据存储定价,即与数据存储网络中的主机要存储和拥有的数据相关联的价格。方法100使主机可以仅为其拥有(或存储在数据存储网络中)的数据,以及仅为拥有数据的所有权的时间段付费(或被收费)。需要说明的是,方法100使主机可以基于数据的所有权时间段在这些主机自身之间分摊拥有相同数据的价格。这使得拥有数据的过程更便宜,价格也可以按照数据的所有权时间段得到很好的分配。
数据存储网络(以下可称为网络)包括布置成存储一个或多个数据对象的数据存储器。本文使用的术语“数据存储网络”或“网络”是指连接以在公共数据存储器中共享和存储数据的一组主机(即两个或更多个主机)。此外,本文使用的术语“数据存储器”是指具有至少一个通过互联网与主机连接的数据服务器的云存储器。数据存储器用于以主机提供的一个或多个数据对象(或块)的形式可靠地存储数据。此外,术语“数据对象或数据块”涉及将由主机存储在数据存储器中的固定大小的数据单元。数据可能涉及作为文本文件、图片、视频等存储的任何信息,这些信息需要安全存储,以防止任何未经授权的用户访问。例如,数据对象可以是具有固定大小数据的加密数据块。
数据存储网络包括一个或多个主机,该一个或多个主机布置成将数据对象存储在数据存储器中。术语“主机”(也可以称为计算机系统)是指具有合适的逻辑、电路、接口和/或代码的计算机系统,该计算机系统用于存储、处理数据以及/或者通过互联网与网络中的其它主机共享数据。主机与数据存储网络的各种用户相关联,以安全地存储和访问数据存储网络中的数据。将结合后面的附图更详细地解释主机。
数据存储网络还包括布置成可供一个或多个主机中的每一个主机访问的分布式账本,该分布式账本包括存储在数据存储器中的数据对象中的每一个数据对象的一个或多个所有权指示,每个所有权指示包括拥有对应数据对象的主机的指示。术语“分布式账本”是指与多方(例如网络中的主机)共享和同步以存储一个或多个加密数据块的数据库。分布式账本包括数据(或同步或异步更新的数据),以便与之关联的主机可以同时访问相同的数据。
本公开的分布式账本包括存储在数据存储器中的数据对象中的每一个数据对象的一个或多个所有权指示。通常,分布式账本包括与数据存储网络中对应主机对数据对象中的每一个对象的所有权相关的数据。例如,分布式账本可以包括针对存储在数据存储器中的数据对象中的每一个数据对象的所有权(或主机标识)的指示,例如计算机系统的序列号,或在加入数据存储网络时提供给主机的任何标识,或主机的任何IP地址。因此,分布式账本基本上包括所有权指示,即关于拥有数据对象的主机的某种指示。所有权数据将在下文更详细地解释。
根据一个实施例,分布式账本是区块链。区块链是可以记录主机之间的交易的开放的分布式账本。例如,分布式账本以高效、可验证和永久的方式包括或维护所有权数据或主机之间所有权数据的变更。区块链是一个账本,它是不可变的,可以用于受信任或不受信任的主机,其中,一个主机可能不信任网络中的另一个主机。为用作分布式账本,区块链通常由共同遵守节点间通信协议和验证新数据块的对等网络管理。虽然区块链记录并非不可更改的,但区块链可以通过设计被认为是安全的,并示例具有高拜占庭(Byzantine)容错性的分布式计算机系统。因此,通过区块链实现了去中心化共识。根据一个实施例,区块链可以是超级账本。在一个示例中,区块链或任何分布式账本(例如超级分布式账本)可用于维护存储在存储器中的加密数据的元数据。因此,本公开的数据存储网络可以视为密码数据存储系统。
本公开的方法100涉及根据所有权指示所指示,确定一个或多个主机中拥有一个或多个数据对象中的当前数据对象的当前主机的存储价格。术语“存储价格”是指与在单位时间段内存储单位数据相关联的费用(或价格)。换句话说,存储价格与主机在单位时间段内因拥有数据对象而必须支付的数据对象的费用相关联。在一个示例中,数据对象可以用数据单元定义,例如以千字节、兆字节、千兆字节等为单位,并且时间段可以用时间单元定义,例如小时、天、月等。因此,存储价格可以基于数据单元的大小和所有权时间用货币单位例如美元定义。在一个示例中,拥有一个1千兆字节(GB)的数据对象一个月的存储价格可以是一美元。在另一个示例中,每月1GB的存储价格可以为0.023美元,这是Amazon S3TM针对存储数据的标准价格(到截至日期,可能会随着时间的推移而变化)。
如上所述,方法100涉及根据所有权指示所指示,确定拥有数据对象的主机的存储价格。显然,主机的存储价格将基于主机拥有的数据对象(数据单元)的数量,该数量由分布式账本中维护的所有权数据指示。通常,当新数据对象(或新数据块)存储在数据存储器中时,存储新数据对象的主机对数据对象拥有所有权。因此,分布式账本将包括主机对数据对象的所有权的指示。此外,如果另一主机试图存储相同的数据对象(或与主机先前存储的信息相同的信息),则方法100与另一主机共享相同数据对象的所有权,而不是再次存储相同的数据对象。随后,如果更多的主机试图存储相同的数据对象,则与此类主机共享相同数据对象的所有权,而不是存储相同的数据对象。换句话说,本公开的方法100包括基于去重的数据存储网络,这将结合图2更详细地解释。
显然,数据对象(或数据块,即数据单元)可以同时由多个主机拥有。但是,数据对象的所有权时间段将基于与其它主机共享所有权的时间而有所不同。在一个示例中,数据对象可以同时由第一主机、第二主机、第三主机等拥有。此外,数据对象最初可以由第一主机拥有,并且在随后的一个月内,相同的数据对象由第二主机拥有(或所有权与第二主机共享),并且在随后的一个月内,相同的数据对象由第三主机拥有。因此,在三个月的时间段内,第一主机拥有整个三个月的数据对象,第二主机拥有两个月的数据对象,第三主机拥有一个月的数据对象。因此,应按其拥有数据对象或共享所有权的所有权时间段(即分别为三个月、两个月和一个月)对第一主机、第二主机和第三主机收取费用。
如图1所示,在步骤102中,方法100包括确定当前主机拥有当前数据对象的主机所有权时间段。如上所述,“主机所有权时间段”可以指所有权时间,即主机在数据存储网络中拥有数据对象(或共享所有权)的时间段。在一个示例中,主机所有权时间段可以由时间单元定义,例如分钟数、小时数、天数、月数或年数。在步骤102中,对于数据存储网络中的每个主机,确定主机所有权时间段。需要说明的是,主机所有权时间段是从主机在数据存储器中存储数据对象或共享数据对象所有权的时间开始确定(或计算)的。显然,单个主机可以拥有多个数据对象(或在数据存储器中存储多个数据对象),多个主机可以拥有相同的数据对象,但是,主机可能具有不同或相同的主机所有权时间段。例如,如果数据存储网络中存在主机(或当前主机),例如第一主机,并且第一主机拥有数据对象(或当前数据对象)的时间段为一个月。则第一主机的主机所有权时间段将为一个月。类似地,如果存在另一个主机,例如第二主机,并且第二主机拥有数据对象的时间段为15天,则第二主机的所有权时间段将为15天。因此,在步骤102中,确定数据存储网络中每个主机的单独的主机所有权时间段。
在一个实施例中,方法100还包括在分布式账本中接收消息,所述消息包括指示在所有权时间主机对数据对象的所有权的记录,并相应地更新所有权指示,以反映数据对象从所有权时间起由主机拥有。需要说明的是,该消息包括数据对象的所有权数据,相同的所有权数据在分布式账本中同步反映或更新,以便数据对象网络中的其它主机知道该数据对象为特定主机所拥有。通常,消息(即所有权数据或指示所有权的记录)包括所有权时间,其可以以日/月/年格式表示,具有以小时:分钟:秒(hh:mm:ss)格式表示的时间戳,以及主机标识。需要说明的是,所有权时间是主机将新数据对象存储在数据存储器中或与另一个主机共享现有数据对象的所有权的时间。在一个示例中,消息可以包括指示所有权的记录,即所有权时间,例如20/09/20和13:30:30(指示所有权时间段开始的时间),以及主机的标识,例如计算机系统的序列号,或在加入数据存储网络时提供给主机的任何标识,或主机的任何IP地址(指示主机针对所有权时间的标识)。显然,在步骤102中,在计算主机所有权时间段时,关于主机的数据对象,考虑所述指示所有权的记录(即所有权时间和主机标识)。
在一个实施例中,方法100还包括通过将指示所有权的记录作为所有权指示存储在分布式账本中来更新所有权指示。所有权指示在分布式账本中更新,以同步反映数据存储网络中的其它主机,以实时获知与数据对象对应的所有权数据已经变更。简言之,当指示任何数据对象的所有权的记录发生任何变更时,分布式账本将包括每个数据对象的更新的所有权指示(即更新的所有权时间和主机标识)。显然,指示所有权的记录将随着时间的推移而变更。例如,随着时间的推移,共享数据对象的所有权的主机数量可能会增加,或者,数据对象的所有权可能会随着时间的推移而减少。类似地,主机可能会随着时间的推移拥有更多数量的数据对象,或者可能会放弃(或失去)数据对象的所有权。因此,在分布式账本中更新所有权指示,以反映所述变更。在一个实施例中,可以以周期性的方式(例如每一小时或每一天)解析分布式账本,以适应和反映关于所有权指示的变更。
在步骤104中,方法100包括确定一个或多个主机中的任何一个主机拥有当前数据对象的总所有权时间段。如本文所述,多个主机可以拥有相同的数据对象。在这种情况下,“总所有权时间”是数据对象被拥有的总时间段单元的计数。由于数据对象由多个主机拥有,因此总所有权时间是与数据对象相关联的所有单独主机所有权时间段的总和。例如,如果存在三个主机,例如第一主机、第二主机和第三主机,并且它们拥有数据对象的时间段分别为一个月、20天和10天。则数据对象(在所述天数内由第一主机、第二主机和第三主机拥有)的总所有权时间将为60天。类似地,如果存在四个主机,例如第一主机、第二主机、第三主机和第四主机,并且它们拥有数据对象的时间段分别为一个月、20天、15天和10天,则数据对象的总所有权时间将为75天。
在步骤104中,方法100包括基于主机所有权时间段除以总所有权时间段,确定当前主机的数据对象存储价格。方法100基于每个主机所经历的主机所有权时间段确定或计算数据对象存储价格。通常,主机的数据对象存储价格是基于单独所有权时间在总所有权时间中的份额计算的。例如,如果存在三个主机,例如第一主机、第二主机和第三主机,并且这些主机中的每一个主机拥有相同数据对象的时间段分别为一个月、20天和10天。在这种情况下,数据对象的总所有权时间将为60天,第一主机的数据对象存储价格将计算为(主机所有权时间段除以总所有权时间段),即30/60。类似地,第二主机的数据对象存储价格为20/60,第三主机的数据对象存储价格为10/60。因此,方法100使第一主机、第二主机和第三主机可以基于相同数据对象的所有权时间段在这些主机自身之间分摊相同数据对象的拥有价格(即数据对象存储价格)。
在一个实施例中,方法100还包括基于价格常数乘以主机所有权时间段除以总所有权时间段,确定当前主机的数据对象存储价格。本文使用的术语“价格常数”是指价格单位(或费用或金钱),该单位将乘以主机所有权时间段除以总所有权时间段,以计算或表示以货币单位表示的数据对象存储价格。在一个示例中,对于为期一个月的1GB数据对象,价格常数可以是1美元。因此,基于上述示例,当第一主机的数据对象存储价格为30/60(基于主机所有权时间段除以总所有权时间段)时,第二主机为20/60,第三主机为10/60。然后,在考虑价格常数为一美元时,第一主机的数据对象存储价格将为1×30/60,第二主机的数据对象存储价格将为1×20/60,第三主机的数据对象存储价格将为1×10/60。简言之,数据对象(由第一主机、第二主机和第三主机拥有)的数据对象存储价格将为0.50美元、0.33美元和0.16美元。因此,本公开的方法100使得在数据存储网络中拥有(或存储)数据的过程更便宜,并且拥有数据的费用(或价格)按照所有权时间段得到良好分配。
显然,对于方法100,用于定义主机所有权时间段和价格常数的单元可以不同,以遵循不同的定价或费用计算模型。例如,主机所有权时间段可以基于分钟数、小时数、天数、月数或年数来表示或计算。此外,价格常数可以定义或设置为0.1美元、0.5美元或1美元。例如,如上所述,价格常数可以为每月1GB 0.023美元,由Amazon S3TM设定。此外,数据对象(或数据块)的大小可以用千字节、兆字节、千兆字节、百万兆字节等定义或表示。
在一个实施例中,方法100还包括将当前主机的总存储价格确定为当前主机拥有的一个或多个数据对象中的每一个数据对象的数据对象存储价格的总和。如上所述,主机可以在数据存储网络中拥有多个数据对象,因此,该主机的数据对象存储价格将是所述主机拥有的所有数据对象的数据对象存储价格的总和。例如,如果主机(例如第一主机)拥有三个数据对象,例如第一数据对象、第二数据对象和第三数据对象。此外,第一数据对象、第二数据对象和第三数据对象的数据对象存储价格分别为0.5美元、0.3美元和0.2美元,则第一主机(或当前主机)的总存储价格将为拥有第一数据对象、第二数据对象和第三数据对象(或一个或多个数据对象)的1美元。应当理解,在计算第一主机的总存储价格时,第一数据对象、第二数据对象和第三数据对象的所有权可以(也可以不)由第一主机与数据存储网络中的其它主机共享。此外,第一主机拥有第一数据对象、第二数据对象和第三数据对象的总存储价格如上所述计算,即价格常数乘以主机所有权时间段除以总所有权时间段。
根据一个实施例,所述方法还包括在分布式账本中接收消息,所述消息包括指示在删除时间主机去除数据对象的所有权的记录,并相应地更新所有权指示,以反映主机拥有数据对象直至删除时间。如本文所述,随着时间的推移,主机可能会失去对数据对象的所有权。例如,当与数据对象相关联的信息对主机没有用时,主机可能会自愿放弃数据对象的所有权。另外,如果主机未能为拥有数据对象针对存储价格付费,则主机可能会失去对该数据对象的所有权。因此,在计算数据存储网络中主机的存储价格(或总存储价格)时,方法100需要考虑此类关于失去所有权的数据或信息。因此,消息(即指示所有权删除的记录)包括删除时间,该删除时间可以用天/月/年(DD/MM/YY)格式表示,具有以小时:分钟:秒(hh:mm:ss)格式表示的时间戳,以及主机标识。需要说明的是,删除时间是主机失去或放弃对数据存储网络中新的或现有的数据对象的所有权的时间。例如,消息可以包括指示所有权删除的记录,即删除时间,例如21/08/20和15:30:30(指示所有权时间段结束的时间),以及主机的标识,例如计算机系统的序列号,或在加入数据存储网络时提供给主机的任何标识,或主机的任何IP地址(指示主机针对删除时间的标识)。显然,在步骤102中,在计算主机所有权时间段时,关于主机的数据对象,也考虑所述指示所有权删除的记录(即删除时间和主机标识)。简言之,如果主机失去(或放弃)数据对象的所有权,则此后不应向主机收取数据对象的存储价格的费用。在一个示例中,如果主机在一个月内拥有数据对象15天,然后放弃所有权,则如果存储价格是按月计算的,则只应收取主机15天的费用。在另一个示例中,如果存在两个主机,例如第一主机和第二主机,并且第一主机在一个月的最初15天拥有数据对象,此后放弃所有权,而第二主机在整个月拥有相同的数据对象。在这种情况下,当存储价格按月计算时,将只收取第一主机15天的存储价格(而不是整个月),并将收取第二主机整个月的存储价格。
在一个实施例中,方法100还包括通过将指示所有权删除的记录作为所有权指示存储在分布式账本中来更新所有权指示。关于所有权删除的指示在分布式账本中更新,以同步反映数据存储网络中的其它主机,以实时获知与数据对象对应的所有权删除数据已经变更。简言之,当指示任何数据对象的所有权删除的记录发生任何变更时,分布式账本将包括每个数据对象的所有权删除的更新指示(即更新的删除时间和主机标识)。显然,指示所有权删除的记录将随着时间的推移而变更。例如,随着时间的推移,共享数据对象的所有权的主机数量可能会增加,或者,数据对象的所有权可能会随着时间的推移而减少。类似地,主机可能会随着时间的推移拥有更多数量的数据对象,或者可能会随着时间的推移放弃(或失去)数据对象的所有权。因此,在分布式账本中更新所有权删除指示,以反映所述变更。在一个实施例中,可以以周期性的方式(例如每一小时或每一天)解析分布式账本,以适应和反映与所有权删除指示有关的变更。
在一个实施例中,方法100还包括删除所有权指示未指示任何主机对其具有当前所有权的数据对象。如上文所述,主机可以随着时间的推移拥有增加或减少数量的数据对象,或者数据对象可以随着时间的推移拥有增加数量的所有权(或删除的所有权)。因此,可能存在数据对象甚至不由单个主机拥有的实例。换句话说,数据存储网络中可能存在所有权被放弃或丢失的数据对象。在这种情况下,可以从数据存储器中删除这类数据对象,以便为其它数据对象的存储创建空白空间。例如,可以解析(或周期性更新)分布式账本,以查看缺少所有权的数据对象的详细信息,即任何缺乏主机标识(指示所有权)的数据对象,因此,可以从数据存储器中删除这些数据对象。这使本公开的方法100可以高效管理(或维护)数据存储网络的数据存储器。
在一个实施例中,方法100还包括进一步基于当前主机已访问当前数据对象的次数确定当前主机的数据对象存储价格。如上所述,密码数据存储系统中的数据存储网络,以及因此其中的主机可用于将数据存储在数据存储器中,并维护与分布式账本中数据的这种存储相关联的交易详细信息。主机还可用于验证交易和访问存储的数据。因此,可以对主机收取访问存储的数据(即存储在数据存储器中的数据对象)收费。在一个示例中,主机的数据对象存储价格基于主机访问数据对象的次数,该数据对象可以由主机拥有,或由另一个主机拥有,或其所有权被拥有。显然,当数据对象由另一个主机拥有时,主机必须从另一个主机获得访问该数据对象的许可。此外,数据对象存储价格可以基于主机与数据对象之间的关系而变化。例如,如果数据对象由主机拥有,则与访问由另一个主机拥有的数据对象相比,主机访问数据对象的数据对象存储价格将更低。此外,在访问所有权被共享的数据对象时,可以对主机适度收费。
根据一个实施例,如上所述,与方法100相关联的数据存储网络基于去重。通常,方法100防止数据存储器中加密数据的重复。加密数据的重复是指在存储器中多次存储特定数据(例如原始/相同数据)。重复会导致相同数据的重复副本不必要地占用存储空间。此外,它还会降低存储器的性能。此外,数据存储的费用,以及包括存储硬件费用在内的所有相关联费用,随着原始数据的重复副本而继续增加。本公开的方法100通过防止加密数据的重复来保护存储器免于性能降低。加密数据是指以加密形式存储在数据存储器中,从而使数据(或数据对象)仅可使用加密密钥访问的数据。数据使用加密算法加密。换句话说,方法100防止密码数据存储系统的加密数据的重复。
在一个实施例中,该方法包括通过将一组数据划分为两个或更多个相同大小或可变大小的块来获得新数据块的步骤。在一个示例中,主机用于使用数据分块算法将要存储在数据存储器中的数据分成可变(或固定)大小的块,即数据块(或数据对象)。基于数据分块算法,数据由主机形成为数据块。
根据一个实施例,在对数据存储进行定价的方法100中,一个或多个数据对象中的每一个数据对象利用去重以加密格式存储,并且其中,分布式账本还包括标识数据对象的第一哈希值。如上所述,与数据存储网络相关联的主机可用于共享数据(即数据对象或数据块)的所有权,而不是单独拥有相同的数据,这继而能够为数据存储器节省空间。通常,数据对象的所有权是基于识别与数据对象相关联的哈希值共享的。简言之,主机共享数据对象的所有权通过标识数据对象的哈希值来执行,这将在图2中进一步详细解释。
在一个实施例中,方法100还涉及包括一个或多个加密数据块(或数据对象)的数据存储器。此外,分布式账本可由两个或更多个主机中的每一个主机访问,并且对于一个或多个加密数据块中的每一个加密数据块,保存标识数据块的第一哈希值。数据存储器用于以两个或更多个主机提供的一个或多个加密数据块的形式可靠地存储数据。一个或多个加密数据块中的每一个加密数据块包括固定大小的数据。此外,存储器不被两个或更多个主机信任,即两个或更多个主机信任存储器将存储数据而不会丢失数据。
现在参考图2,图2示出了根据本公开的实施例的利用分布式账本防止数据存储网络中的加密数据重复的方法200的流程图。显然,与方法200相关联的分布式账本类似于与对具有多个主机的数据存储网络的数据存储进行定价的方法100相关联的分布式账本。
如图所示,在步骤202中,方法200包括获取要由一个或多个主机中的第一主机存储的新数据对象的第一哈希值。第一主机用于通过对新数据块应用哈希函数或哈希算法获取第一哈希值。第一哈希值使得与已经存储在数据存储器中的一个或多个加密数据块相比,能够对新数据块进行不同的标识。显然,无论应用哈希算法的主机如何,都将为给定数据块生成类似的哈希值。
根据一个实施例,存储在存储器中的一个或多个加密数据块中的每一个加密数据块包括标识相应数据块的第一哈希值。哈希值是指使用哈希函数或哈希算法生成的具有任意大小的数据的固定大小值。换句话说,哈希值是指表示具有任意大小的原始数据的固定大小值。在一个示例中,哈希值是表示数据的几个字符的十六进制字符串。哈希算法的示例包括但不限于SHA-2、MD5、CRC32。有益的是,哈希值支持在两个数据块之间进行比较,而无需在两个数据块之间进行实际比较。第一哈希值是指网络中的特定主机首次为数据块生成的哈希值。第一哈希值支持标识和防止主机存储重复数据块。
在步骤204中,方法200包括确定是否在分布式账本中找到第一哈希值。通过将为新数据块生成的第一哈希值与存储在数据存储器中的一个或多个加密数据块中的每一个哈希值进行比较,确定是否在分布式账本中找到第一哈希值。在一个示例中,该方法可以使用比较函数来比较上述哈希值。在另一个示例中,在比较上述哈希值后,如果在分布式账本中找到第一哈希值,则生成真信号(是),如果在分布式账本中没有找到第一哈希值,则生成假信号(否)。有益的是,确定是否在分布式账本中找到第一哈希值使得方法200能够防止存储器中已经存在的数据的重复。
如果基于确定,在分布式账本中没有找到第一哈希值,则执行步骤206、208和210。如果基于确定,在分布式账本中找到第一哈希值,则执行步骤212、214、216和218。
如果在分布式账本中没有找到第一哈希值,则在步骤206中,方法200包括创建确认数据集,这些确认数据构成第一主机对数据对象具有所有权的证明。由于在分布式账本中没有找到新数据块的哈希值,因此创建确认数据集,以使第一主机拥有新数据块的所有权,该新数据块将存储在数据存储器中,并将该新数据块的所有权数据添加到分布式账本中。确认数据集可以指示待添加到区块链中的新数据块是由第一主机创建的。创建确认数据集可防止网络的任何其它主机添加类似于新数据块的重复数据块。根据一个实施例,确认数据集包括第二哈希值。第二哈希值是通过应用本领域已知的哈希算法来创建的。第二哈希值提高了新数据块的安全性,而第一哈希值支持在账本中标识重复数据块。
在步骤208中,方法200包括使用块唯一加密密钥对新数据对象进行加密,并使用等于第一哈希值的密钥将加密后的新数据块存储在存储器中。用于加密新数据块(或新数据对象)的块唯一加密密钥由第一主机创建。新数据块以加密形式存储在存储器中,以防止网络中任何未经授权的用户或主机访问新数据块。根据一个实施例,新数据块可以包括与第一主机相关联的机密信息。新数据块的加密可防止未经授权的用户窃取此类机密信息。使用本领域已知的加密算法,用块唯一加密密钥加密新数据块。块唯一加密密钥是专门用于加密相应数据块(例如新数据块)的唯一加密密钥。因此,新数据块只能使用块唯一加密密钥访问。等于第一哈希值的密钥也与加密后的新数据块一起存储在存储器中。这使网络的其它主机能够标识与给定的另一个主机关联的给定新数据块是否存在于分布式账本中。根据一个实施例,第一主机还用于存储具有一些私钥的关于新数据块的私有元数据,以在需要时允许(通过解密)恢复新数据块。
在步骤210中,方法200还包括在分布式账本中存储第一所有权记录,所述第一所有权记录包括第一主机的标识、未加密的第一哈希值以及用仅第一主机已知的密钥加密的确认数据集,从而更新所有权指示。在一个示例中,第一所有权记录包括第一主机的标识,例如计算机系统的序列号。另外,第一所有权记录可以包括在加入网络时提供给第一主机的任何标识。第一主机的标识基本上必须相对于网络中的其它主机是唯一的。在一个示例中,第一哈希值以明文存储。第一哈希值以明文(即,以非加密的方式)存储,用于使网络中的其它主机可以在没有第一主机许可的情况下读取第一哈希值。此外,第一所有权记录可以包括第一主机用于加密新数据块的块唯一加密密钥。确认数据集使用密钥进行加密,以防止任何主机在没有第一主机许可的情况下访问确认数据集。在一个示例中,密钥由第一主机创建。第一所有权记录使得能够在需要时基于第一主机的标识、未加密的第一哈希值和确认数据集从数据存储器中恢复新数据块,上述每一者是所有权指示。
根据一个实施例,第一所有权记录还包括用第一主机的公钥加密的私钥。换句话说,第一主机已知的私钥也可以存储在用第一主机的公钥加密的账本中。私钥用公钥加密,以保护私钥不被任何未经授权的用户访问,并进一步防止访问与第一主机的新数据块相关联的确认数据集。此外,用第一主机的公钥加密私钥使网络中的其它主机可以访问第一主机的公钥。这将使网络中的其它主机可以使用第一主机的公钥与第一主机就第一所有权记录进行通信。
如果在分布式账本中没有找到第一哈希值,则在步骤212中,方法200包括从分布式账本中获取关于一个或多个主机中已经在数据存储器中存储与新数据对象相同的先前数据对象的第二主机的信息。一旦在分布式账本中找到新数据块的第一哈希值,就会标识拥有可能携带与第一哈希值相同哈希值的先前块的第二主机。关于具有先前块的第二主机的账本信息是基于与具有先前块的所有权的第二主机相关联的所有权记录获得的,该所有权记录先前存储在账本中。通常,将新数据块的第一哈希值与现有的一个或多个先前块的账本中存在的一个或多个哈希值进行比较,以标识已存储或拥有与新数据块相同的先前数据块的第二主机。在一个示例中,关于第二主机的账本信息包括第二主机的标识、针对先前块未加密的哈希值(相当于新数据块的第一哈希值)、使用仅第二主机已知的密钥加密的确认数据集(针对先前块),以及用于第二主机加密先前块的块唯一加密密钥。此外,用于加密先前块的确认数据集的密钥用第二主机的公钥进行加密。需要说明的是,第一主机在确定在账本中找到新数据块的第一哈希值之后,请求关于第二主机的账本信息。
在步骤214中,方法200还包括在分布式账本中输入对先前数据对象的密钥的密钥请求消息,所述密钥请求包括用第二主机的公钥加密的确认数据集。一旦在账本中找到新数据块的第一哈希值,第一主机就会向第二主机发出对先前块密钥的密钥请求。通常,密钥请求指示或涉及第一主机与第二主机之间关于先前块的密钥请求的通信(或交易)。在一个示例中,密钥请求可以存储在区块链中,指示第一主机与第二主机之间关于请求先前块的密钥的可能通信或交易。密钥请求由第一主机输入到账本中,以从第二主机接收用第二主机的公钥加密的确认数据集。密钥请求使第一主机能够在确定在账本中找到新数据块的第一哈希值之后启用新数据块已存在于分布式账本中的验证。
根据一个实施例,密钥请求包括未加密的第一哈希值和与具有第二主机公钥的关于请求主机的数据一起加密的确认数据集。密钥请求包括未加密的第一哈希值,因为这使账本可以保留第一主机与第二主机之间关于请求先前块的密钥的通信或交易的记录。此外,第一哈希值相对于密钥请求的未加密性质支持账本使网络中的其它主机标识此类密钥请求。此外,密钥请求包括确认数据集,即关于包括在先前块中的数据的所有权数据由第二主机拥有。密钥请求还包括关于请求主机的数据,即从第二主机请求密钥的第一主机。
根据一个实施例,由第二主机计算的确认数据集存储在分布式账本中,由第二主机的私钥加密。确认数据集(或所有权数据)由第二主机创建,以使第二主机能够拥有分布式账本中的先前块的所有权。创建确认数据集可防止网络的任何其它主机添加类似于先前块的重复数据块。此外,使用私有对确认数据集加密使第二主机能够防止任何未经授权的用户访问存储在分布式账本中的先前块。根据一个实施例,由第二主机计算的确认数据集包括第二哈希值。
在步骤216中,方法200还包括从分布式账本接收由第二主机存储的密钥传输记录,该密钥传输记录包括用第一主机的公钥加密的数据的密钥。如上所述,第一主机向第二主机请求先前块的密钥,因此第二主机接收第一主机的请求,并与第一主机共享先前块的密钥。因此,密钥传输记录,即第一主机与第二主机之间关于密钥交换的通信或交易,保存在账本或区块链中。通常,第二主机在与第一主机共享先前块的所请求密钥之后,将密钥传输记录添加到账本中。密钥传输记录包括用第一主机的公钥加密的数据的密钥,因为这只允许第一主机(禁止网络中的其它主机)使用第一主机的私钥访问密钥(由第二主机共享)。
根据一个实施例,密钥传输记录还包括数据的哈希值和第一主机的标识。在一个示例中,数据的哈希值是第一主机希望存储在数据存储器中的数据对象(或块)的哈希值,该数据对象(或块)已经存在于数据存储器中,并由第二主机拥有。此外,数据的哈希值涉及第一主机与第二主机之间关于所请求密钥的交换的交易详细信息。数据的哈希值存储在分布式账本中,以维护第二主机与第一块共享先前块的所请求密钥的记录。密钥传输记录还包括指示密钥请求是由第一主机发出的第一主机的标识。在一个示例中,第一主机的标识可以是第一主机唯一的序列号。另外,第一所有权记录可以包括在加入网络时提供给第一主机的任何标识。
在步骤218中,方法200还包括向分布式账本发送第一主机已被赋予数据对象的所有权的新所有权记录,从而更新所有权指示。一旦基于第二主机将所请求密钥共享给第一主机,将密钥转移记录输入(存储或记录)在分布式账本中,就将新所有权记录输入账本。新所有权记录通常包括第一主机已被赋予先前块的所有权的信息,该先前块先前由第二主机拥有。将新所有权记录发送到账本使账本能够在其它主机希望存储类似于已存储在账本中的新数据块的数据块时向网络的任何其它主机提供关于第一主机的信息。在一个示例中,新所有权记录包括第一主机的标识、未加密的第一哈希值以及用仅第一主机已知的密钥加密的确认数据集。先前块的所有权数据的转移将阻止第一主机将新数据块(与先前块类似,由第二主机拥有)添加到存储器中。这可以实现数据去重,从而节省存储器中的空间。此外,在这种情况下,第一主机通常共享已经存在且较早仅由第二主机拥有的数据对象的所有权。简言之,现在第一主机和第二主机都共享相同数据对象的所有权。类似地,显然,多个主机(例如第一主机、第二主机、第三主机、第四主机等)可以共享相同数据对象或数据块的所有权,以实现数据去重,从而节省数据存储器的空间。此外,单个主机可以类似地共享多个数据对象或数据块的所有权。
根据一个实施例,新所有权记录还包括用第一主机的公钥加密的私钥。私钥用公钥加密,以保护私钥不被任何未经授权的用户访问,并进一步防止访问与第一主机的新数据块相关联的确认数据集。
步骤202至218仅仅是说明性的,在不脱离本文权利要求的范围的情况下,还可以提供添加一个或多个步骤、删除一个或多个步骤,或以不同的顺序提供一个或多个步骤的其它替代方案。
根据一个实施例,本公开还提供了一种包括计算机可读代码模块的计算机程序产品,当计算机可读代码模块在包括保存加密数据(即数据对象或块)的数据存储器的数据存储网络中的计算机系统的处理器中运行时,可由一个或多个其它主机访问的所述数据存储器将使计算机系统执行方法100和200。计算机系统涉及数据存储网络中的主机。在一个示例中,计算机可读代码由网络(例如密码数据存储网络)中的第一主机执行。此外,用于提供非瞬时性存储器的计算机程序产品的计算机可读存储器的示例可以包括但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备,或上述任何合适的组合。
在一个实施例中,计算机程序产品包括非瞬时性存储模块,其上具有计算机可读代码模块。非瞬时性计算机可读存储模块的实现示例包括但不限于电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、随机存取存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、硬盘驱动器(harddisk drive,HDD)、闪存、安全数字(secure digital,SD)卡、固态硬盘(solid-statedrive,SSD)、计算机可读存储介质和/或CPU高速缓冲存储器。
根据一个实施例,本公开还涉及一种利用分布式账本的数据存储网络中的计算机系统,所述计算机系统包括程序存储器和用于执行在程序存储器中找到的程序的处理器,其中,所述程序存储器包括上文所述的计算机程序产品。结合图3进一步详细说明计算机系统。
现在参考图3,图3示出了根据本公开的实施例的与利用分布式账本的数据存储网络相关联的计算机系统的框图。通常,图3所示的一个或多个计算机系统包括程序存储器,该程序存储器存储有计算机程序产品,该计算机程序产品支持一个或多个计算机系统执行方法100和200。参考图3,示出了第一计算机系统302(与第一主机相关联或可互换地称为第一主机,在上文结合图1和图2解释)。第一计算机系统302包括处理器304、收发器306和程序存储器308。处理器304可操作地耦合到收发器306和程序存储器308。图3还示出了第二计算机系统310(与第二主机相关联或可互换地称为第二主机,上文结合图1和2解释)。第二计算机系统310还包括功能组件,例如处理器、收发器和程序存储器(未示出)。图3还示出了第一计算机系统302通过数据存储器320和分布式账本330可通信地和可操作地耦合到第二计算机系统310。
图3典型地示出了利用分布式账本的数据存储网络的网络环境图的框图。应当理解,第一计算机系统302和第二计算机系统310与结合图1和图2解释的第一主机和第二主机相关联(或有关)。类似地,图3所示的数据存储器320和分布式账本330与结合图1和图2解释的数据存储网络(或密码数据存储系统)相关联。简言之,图3示出了数据存储网络中的第一计算机系统302和第二计算机系统310(例如第一主机和第二主机),用于执行或实现对数据存储网络中的数据存储进行定价和防止加密数据在数据存储网络中重复的方法,这些方法在上文结合图1和图2解释。
第一计算机系统302的处理器304用于提供数据对象形式的数据,以便存储在数据存储器320中。在一种实现方式中,处理器304用于执行存储在程序存储器308中的指令。在一个示例中,处理器304可以是通用处理器。处理器304的其它示例可以包括但不限于微处理器、微控制器、复杂指令集计算(complex instruction set computing,CISC)处理器、专用集成电路(application-specific integrated circuit,ASIC)处理器、精简指令集(reduced instruction set,RISC)处理器、超长指令字(very long instruction word,VLIW)处理器、中央处理单元(central processing unit,CPU)、状态机、数据处理单元和其它处理器或控制电路。此外,处理器304可以指一个或多个单独的处理器、处理设备、作为机器(例如第一计算机系统302)一部分的处理单元。
收发器306包括合适的逻辑、电路和接口,这些逻辑、电路和接口可以用于与一个或多个外部设备(例如数据存储器320和分布式账本330)通信。收发器306的示例可以包括但不限于天线、远程信息处理单元、射频(radio frequency,RF)收发器、一个或多个放大器、一个或多个振荡器、数字信号处理器、编解码器(coder-decoder,CODEC)芯片组和/或用户识别模块(subscriber identity module,SIM)卡。
程序存储器308是指第一计算机系统302的主存储系统。程序存储器308包括合适的逻辑、电路和接口,这些逻辑、电路和接口可以用于存储可由处理器304执行的指令。程序存储器308的实现示例可以包括但不限于电可擦除可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、随机存取存储器(random accessmemory,RAM)、只读存储器(read only memory,ROM)、硬盘驱动器(hard disk drive,HDD)、闪存、固态硬盘(solid-state drive,SSD)和/或CPU高速缓冲存储器。程序存储器308可以存储操作系统和/或其它程序产品(包括一个或多个操作算法)以操作第一计算机系统302。
在操作中,处理器304可用于确定第一主机(即与第一计算机系统302相关联)拥有当前数据对象的主机所有权时间段。通常,处理器304可用于向分布式账本330发送消息,该消息包括指示在所有权时间第一主机对当前数据对象的所有权的记录,并相应地更新所有权指示,以反映当前数据对象从所有权时间起由第一主机拥有。处理器304还可用于确定一个或多个主机中的任何一个主机(例如与第二计算机系统310相关联的第二主机)拥有当前数据对象的总所有权时间段。此后,处理器304可用于基于主机所有权时间段除以总所有权时间段确定第一主机的数据对象存储价格。处理器304还可用于考虑价格常数,乘以主机所有权时间段除以总所有权时间段,以确定第一主机的数据对象存储价格。因此,处理器304可用于允许第一主机(或第一计算机系统302)基于数据的所有权时间段在它们自身之间(例如与第二主机或第二计算机系统310)分摊用于拥有相同数据的数据对象存储价格。
根据一个实施例,在操作中,处理器304可用于共享数据对象的所有权,该数据对象由第一计算机系统302拥有,并且第二计算机系统310还希望拥有该数据对象或将该数据对象存储在数据存储器320中。通常,第一计算机系统302的处理器304可用于将新数据块(例如所述数据对象)存储在数据存储器320中。处理器304用于获取新数据块的第一哈希值,并进一步确定是否在分布式账本330中找到第一哈希值。如果在分布式账本330中没有找到第一哈希值,则处理器304用于创建构成第一计算机系统302对数据具有所有权的证明的确认数据集;使用块唯一加密密钥对新数据块进行加密,并使用等于第一哈希值的密钥将加密后的新数据块存储在数据存储器320中;并在分布式账本330中存储第一所有权记录。如果在分布式账本330中找到第一哈希值,则第一计算机系统302用于从分布式账本330中获取关于已经在数据存储器320中存储与新数据块相同的先前块的第二计算机系统310的信息;在分布式账本330中输入对先前块的密钥的密钥请求;从分布式账本330接收由第二计算机系统310存储的密钥传输记录;并向分布式账本330发送第一计算机系统302已被赋予数据块的所有权的新所有权记录。
在不脱离所附权利要求书所定义的本公开范围的情况下,可以对上文描述的本公开实施例进行修改。如“包括”、“结合”、“具有”、“是/为”等用于描述和要求保护本公开的表述旨在以非排他性的方式解释,即允许未明确描述的项目、组件或元件也存在。对单数的引用也应解释为涉及复数。本文使用的词语“示例性”表示“作为一个示例、实例或说明”。任何描述为“示例性的”实施例并不一定解释为相比其它实施例是优选或有利的,和/或并不排除结合其它实施例的特征。本文使用的词语“可选地”表示“在一些实施例中提供且在其它实施例中没有提供”。应当理解,为了清楚起见而在单独实施例的上下文中描述的本公开的某些特征还可以通过组合提供在单个实施例中。相反地,为了清楚起见而在单个实施例的上下文中描述的本公开的各种特征也可以单独地或通过任何合适的组合或作为本公开的任何其它描述的实施例提供。
Claims (14)
1.一种对数据存储网络中的数据存储进行定价的方法(100),其特征在于,所述网络包括:
-数据存储器(320),布置成存储一个或多个数据对象;
-一个或多个主机(302、310),布置成在所述数据存储器(320)中存储数据对象;以及
-分布式账本(330),布置成可供所述一个或多个主机(302、310)中的每一个主机访问,并且所述分布式账本(330)包括存储在所述数据存储器(320)中的所述数据对象中的每一个数据对象的一个或多个所有权指示,每个所有权指示包括拥有对应数据对象的主机的指示,其中,所述方法(100)用于
-根据所述所有权指示所指示,确定所述一个或多个主机(302、310)中拥有所述一个或多个数据对象中的当前数据对象的当前主机的存储价格,其中,所述方法(100)包括:
-确定所述当前主机拥有所述当前数据对象的主机所有权时间段;
-确定所述一个或多个主机(302、310)中的任何一个主机拥有所述当前数据对象的总所有权时间段;
-基于所述主机所有权时间段除以所述总所有权时间段,确定所述当前主机的数据对象存储价格。
2.根据权利要求1所述的对数据存储进行定价的方法(100),其特征在于,所述方法(100)还包括基于价格常数乘以所述主机所有权时间段除以所述总所有权时间段,确定所述当前主机的所述数据对象存储价格。
3.根据权利要求1或2所述的对数据存储进行定价的方法(100),其特征在于,所述方法(100)还包括将所述当前主机的总存储价格确定为所述当前主机拥有的所述一个或多个数据对象中的每一个数据对象的数据对象存储价格的总和。
4.根据上述权利要求中任一项所述的对数据存储进行定价的方法(100),其特征在于,所述方法(100)还包括:
-在所述分布式账本(330)中接收消息,所述消息包括指示在所有权时间主机对数据对象的所有权的记录,并相应地更新所述所有权指示,以反映所述数据对象从所述所有权时间起由所述主机拥有。
5.根据权利要求4所述的对数据存储进行定价的方法(100),其特征在于,所述方法(100)还包括通过将所述指示所有权的记录作为所有权指示存储在所述分布式账本(330)中来更新所述所有权指示。
6.根据上述权利要求中任一项所述的对数据存储进行定价的方法(100),其特征在于,所述方法(100)还包括:
-在所述分布式账本(330)中接收消息,所述消息包括指示在删除时间主机去除数据对象的所有权的记录,并相应地更新所述所有权指示,以反映所述主机拥有所述数据对象直至所述删除时间。
7.根据权利要求6所述的对数据存储进行定价的方法(100),其特征在于,所述方法(100)还包括通过将所述指示去除所有权的记录作为所有权指示存储在所述分布式账本(330)中来更新所述所有权指示。
8.根据上述权利要求中任一项所述的对数据存储进行定价的方法(100),其特征在于,所述方法(100)还包括删除所述所有权指示未指示任何主机对其具有当前所有权的数据对象。
9.根据上述权利要求中任一项所述的对数据存储进行定价的方法(100),其特征在于,所述方法(100)还包括进一步基于所述当前主机已访问所述当前数据对象的次数确定所述当前主机的所述数据对象存储价格。
10.根据上述权利要求中任一项所述的对数据存储进行定价的方法(100),其特征在于,所述数据存储网络基于去重。
11.根据上述权利要求中任一项所述的对数据存储进行定价的方法(100),其特征在于,所述一个或多个数据对象中的每一个数据对象利用去重以加密格式存储,并且其中,所述分布式账本(330)还包括标识所述数据对象的第一哈希值,
所述方法(100)还包括:
-获取要由所述一个或多个主机(302、310)中的第一主机(302)存储的新数据对象的第一哈希值;
-确定是否在所述分布式账本(330)中找到所述第一哈希值;
-如果在所述分布式账本(330)中没有找到所述第一哈希值,则
-创建构成所述第一主机(302)对所述数据对象具有所有权的证明的确认数据集;
-使用块唯一加密密钥对所述新数据对象进行加密,并使用等于所述第一哈希值的密钥将所述加密后的新数据块存储在所述数据存储器中;
-在所述分布式账本(330)中存储第一所有权记录,所述第一所有权记录包括所述第一主机(302)的身份、未加密的所述第一哈希值以及用仅所述第一主机(302)已知的密钥加密的所述确认数据集,从而更新所述所有权指示;
-如果在所述分布式账本(330)中找到所述第一哈希值,则
-从所述分布式账本(330)中获取关于所述一个或多个主机(302、310)中已经在所述数据存储器(320)中存储与所述新数据对象相同的先前数据对象的第二主机(310)的信息;
-在所述分布式账本(330)中输入对所述先前数据对象的密钥的密钥请求消息,所述密钥请求包括用所述第二主机(310)的公钥加密的确认数据集;
-从所述分布式账本(330)接收由所述第二主机(310)存储的密钥传输记录,所述密钥传输记录包括用所述第一主机(302)的所述公钥加密的数据的密钥;
-向所述分布式账本(330)发送所述第一主机(302)已被赋予所述数据对象的所有权的新所有权记录,从而更新所述所有权指示。
12.一种计算机程序产品,包括计算机可读代码模块,当所述计算机可读代码模块在包括保存加密数据的数据存储器(320)的数据存储网络中的计算机系统(302)的处理器(304)中运行时,能够由一个或多个其它主机(302、310)访问的所述数据存储器(320)将使所述计算机系统(302)执行根据权利要求1至11中任一项所述的方法。
13.根据权利要求12所述的计算机程序产品,其特征在于,包括其上具有计算机可读代码模块的非瞬时性存储模块。
14.一种利用分布式账本(330)的数据存储网络中的计算机系统(302、310),其特征在于,所述计算机系统(302、310)包括程序存储器(308)和用于执行在所述程序存储器(308)中找到的程序的处理器(304),其中,所述程序存储器(308)包括根据权利要求12或13所述的计算机程序产品。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2020/077898 WO2022073584A1 (en) | 2020-10-06 | 2020-10-06 | Method and computer system for pricing data storage |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116264862A true CN116264862A (zh) | 2023-06-16 |
Family
ID=72801469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080105709.1A Pending CN116264862A (zh) | 2020-10-06 | 2020-10-06 | 用于对数据存储进行定价的方法和计算机系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116264862A (zh) |
WO (1) | WO2022073584A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040039891A1 (en) * | 2001-08-31 | 2004-02-26 | Arkivio, Inc. | Optimizing storage capacity utilization based upon data storage costs |
US20100333116A1 (en) * | 2009-06-30 | 2010-12-30 | Anand Prahlad | Cloud gateway system for managing data storage to cloud storage sites |
US10630652B2 (en) * | 2017-12-29 | 2020-04-21 | Janine Darling | Data-centric secure data technology, archiving, and storage system |
-
2020
- 2020-10-06 WO PCT/EP2020/077898 patent/WO2022073584A1/en active Application Filing
- 2020-10-06 CN CN202080105709.1A patent/CN116264862A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022073584A1 (en) | 2022-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3438903B1 (en) | Hierarchical network system, and node and program used in same | |
JP6980769B2 (ja) | データ処理用の分散型台帳を使用するための方法、装置及びコンピュータプログラム | |
US9503542B1 (en) | Writing back data to files tiered in cloud storage | |
US9727470B1 (en) | Using a local cache to store, access and modify files tiered to cloud storage | |
CN103262090B (zh) | 使用存储租约保护数据完整性 | |
CN109493223B (zh) | 一种记账方法及装置 | |
CN111434084A (zh) | 来自实体的访问信息的许可 | |
US11907199B2 (en) | Blockchain based distributed file systems | |
EP3816912B1 (en) | Blockchain-based transaction processing method and apparatus, and electronic device | |
EP3709568A1 (en) | Deleting user data from a blockchain | |
US11328064B2 (en) | Automatic ransomware detection with an on-demand file system lock down and automatic repair function | |
CN104836862B (zh) | 一种智能终端数据存储方法 | |
CN113287111B (zh) | 用于数据完整性监管和数据保护系统中的存在证明的区块链技术 | |
CN109508564B (zh) | 一种基于区块链的数字资产存储系统和方法 | |
CN109522314B (zh) | 基于区块链的数据归档方法及终端设备 | |
US11627122B2 (en) | Inter-system linking method and node | |
US11693963B2 (en) | Automatic ransomware detection with an on-demand file system lock down and automatic repair function | |
US11868339B2 (en) | Blockchain based distributed file systems | |
US20240097879A1 (en) | Blockchain-based data management of distributed binary objects | |
CN110914826B (zh) | 用于分布式数据映射的系统和方法 | |
US11818267B1 (en) | Multi-level access distributed ledger system | |
CN114691617A (zh) | 一种智能终端数据压缩防冗余交互方法、装置及相关组件 | |
CN109067849B (zh) | 基于区块的数据同步方法 | |
CN108876378B (zh) | 公有链数据加密备份方法 | |
KR20200118985A (ko) | 블록체인 환경에서의 데이터 관리 방법 및 이를 위한 장치 |
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 |