CN115878383A - 一种基于区块链的日志文件备份方法与系统 - Google Patents
一种基于区块链的日志文件备份方法与系统 Download PDFInfo
- Publication number
- CN115878383A CN115878383A CN202211631045.XA CN202211631045A CN115878383A CN 115878383 A CN115878383 A CN 115878383A CN 202211631045 A CN202211631045 A CN 202211631045A CN 115878383 A CN115878383 A CN 115878383A
- Authority
- CN
- China
- Prior art keywords
- log
- log file
- storage
- metadata
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种基于区块链技术的高可靠、低成本的日志存储方法,该方法将待备份的日志文件进行拆分,并通过长期—短期差异化存储的方式,提升存储资源的利用效率;针对所存储的日志文件生成日志元数据,并结合区块链账本技术进行存储,进而保障日志数据的不可篡改性;在访问备份日志时,通过日志元数据查询其存储位置并构建数据路由,并将数据转移到短期数据存储空间并定期清理短期存储空间。本发明实现了日志备份的高可用、不可篡改以及保密性要求,同时最小化区块链网络的存储与运算开销。
Description
技术领域
本发明涉及区块链技术领域,具体涉及一种基于区块链的日志文件备案系统。
背景技术
互联网时代,系统日志是一种非常重要的数据。一方面,日志对系统运行者而言至关重要,日志记录着系统的运行状态和运行事件,以便于更好地管理和监控系统,特别系统错误、警告和其他重要信息,这些信息对于调试或故障排除具有重要价值。另一方面,受系统影响的第三方以及公权力机关,也有访问数据的需求,特别是在算法治理、证据固化、平台监管等领域,对日志进行备份、审计、监督的重要性日益显著。
区块链技术提供了一种分布式、去中心化的存储和记录技术,通过多用户共同参与的方式,对数据的完整性和可靠性加以维护,克服了传统中心化机制的局限性,成为确保数据高可用性、不可篡改性的一种重要技术方案。引入区块链技术以保障日志数据的不可篡改性,能进一步对日志数据的安全性、可靠性予以保障,同时借助区块链的防篡改特性可以提升日志内容的完整性和有效性。
但在实际工作中,既有技术方案未能充分考虑日志文件备份这一应用场景在存储量、读取频率方面的特点,在资源利用率上存在一定短板,因而难以应对例如日志备份这种对存储空间有着巨大需求的应用场景。因此,有必要提供一种方案,针对日志文件备份的特点,提出一种基于区块链技术的定制化解决方案具有重要意义。
发明内容
有鉴于现有技术的上述缺陷,本发明提供一种基于区块链技术的高可靠、低成本的日志存储方法,该方法将待备份的日志文件进行合并或拆分,并通过长期——短期差异化存储的方式,提升存储资源的利用效率;针对所存储的日志文件生成日志元数据,并结合区块链账本技术进行存储,进而保障日志数据的不可篡改性;在访问备份日志时,通过日志元数据查询其存储位置并构建数据路由,并将数据转移到短期数据存储空间并定期清理短期存储空间。本发明的技术方案,能够有效实现日志备份的高可用、不可篡改以及保密性要求,同时可以有效降低区块链网络的存储与运算开销。
具体地说,本发明提供一种基于区块链的日志文件备份方法,包括以下步骤:接收日志文件;将日志文件进行合并或分拆;将合并或分拆后的日志文件存储至存储层,并获取日志文件的存储地址和鉴别信息;对日志文件的元数据进行校验;以及如果元数据通过校验,则将校验后的元数据存储至元数据层。
可选的,在一些实施例中,如果元数据未通过校验,则丢弃与元数据相对应的日志文件。
可选的,在一些实施例中,还包括以下步骤:通过控制层接收读取特定时间窗口的日志的请求,其中,时间窗口包括起始时间戳和结束时间戳;根据时间窗口对元数据进行检索;根据检索结果构建日志数据路由表,其中,日志数据路由表包括日志文件的存储地址;以及根据存储地址从存储层获取日志文件。
可选的,在一些实施例中,鉴别信息包括根据日志文件所计算的哈希值、日志文件所在日志链中日志块的数量。
可选的,在一些实施例中,数据路由表包括起始时间戳、结束时间戳、存储地址、鉴别信息和校验状态。
可选的,在一些实施例中,存储层包括短期存储空间和长期存储空间,以及存储地址包括短期地址和长期地址。
本发明还提供一种基于区块链的日志文件备份系统,包括:存储层,存储层被配置为能够:接收日志文件,将日志文件进行合并或分拆,将合并或分拆后的日志文件存储至存储层,并获取日志文件的存储地址和鉴别信息;以及元数据层,元数据层被配置为能够对日志文件的元数据进行校验,如果元数据通过校验,则将校验后的元数据存储至元数据层。
可选的,在一些实施例中,还包括:控制层,控制层被配置为能够接收读取特定时间窗口的日志的请求,根据时间窗口对元数据进行检索,并根据检索结果构建日志数据路由表,以及根据存储地址从存储层获取日志文件;其中,时间窗口包括起始时间戳和结束时间戳,日志数据路由表包括日志文件的存储地址。
本发明还提供一种基于区块链的日志文件备份装置,包括存储器、处理器以及存储在存储器中并能够在处理器上运行的计算机程序,处理器被配置为能够在执行计算机程序时实现上述的基于区块链的日志文件备份方法的步骤。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时能够实现上述的基于区块链的日志文件备份方法的步骤。
本发明解决的技术问题之一是现有技术就日志文件备份的解决方案较为单一、效率较低、效果不好,本发明就日志文件备份提供了更多的选择。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
当结合附图阅读以下详细说明时,本发明将变得更易于理解,在整个附图中,相同的附图标记代表相同的零件,其中:
图1为本发明一个实施例中日志写入工作流程示意图。
图2为本发明一个实施例中日志读取工作流程示意图。
图3为本发明一个实施例中系统结构示意图。
图4为本发明中计算机装置、设备或终端的一个实施例的结构示意图。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,这些技术、方法和设备应当被视为说明书的一部分。
下面将参考构成本说明书一部分的附图对本发明的各种具体实施方式进行描述。应该理解的是,虽然在本发明中使用表示方向的术语,诸如“前”、“后”、“上”、“下”、“左”、“右”、“内”、“外”、“顶”、“底”、“正”、“反”、“近”、“远”、“横向”、“纵向”、“宽度方向”、“长度方向”、“高度方向”、“轴向”、“径向”、“顺时针方向”、“逆时针方向”等描述本发明的各种示例结构部分和元件,但是在此使用这些术语只是为了方便说明的目的,这些术语是基于附图中显示的示例性方位而确定的。本发明所公开的实施例可以按照不同的方向设置,所以这些表示方向的术语只是作为说明而不应视作为限制。
为了便于描述,附图中所表示的各个模块或部分之间的连接关系仅为示例性的描述,本领域技术人员完全可以采用其他等效的连接关系,只要在这样的连接关系下各个模块或部分也同样能够实现本发明的技术方案的功能即可。本发明所公开的实施例可以按照不同的等效的连接关系设置,所以附图及其说明书的相关内容中所表示的连接关系只是作为说明而不应视作为限制。
附图中所示出的每一部件的尺寸是任意示出的,本发明并没有限定每个部件的具体尺寸,除非在说明书和附图中有明确的记载或描述。为了使图示更清晰,附图中有些地方适当夸大了部件的尺寸或调整了相应的比例关系。
本发明中所使用的诸如“第一”和“第二”等序数词仅仅用于区分和标识,而不具有任何其他含义,如未特别指明则不表示特定的顺序,也不具有特定的关联性。例如,术语“第一部件”本身并不暗示“第二部件”的存在,术语“第二部件”本身也不暗示“第一部件”的存在。
本发明中所使用的单数形式的“一种”、“所述”和“该”等描述旨在同时包括单数或多数的形式,除非上下文清楚地表示其它含义。“多种”或“多个”等一般包含至少两种或至少两个。本发明中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A、同时存在A和B、单独存在B这三种情况。另外,本发明中字符“/”,一般表示前后关联对象是一种“或”的关系。
术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”所限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
总体上来说,本发明提供一种基于区块链的日志存储技术方案,可以由控制层、存储层、元数据层构成,每一层次又可进一步细分为若干子模块。首先,存储块负责对日志数据进行拆分和编码,以保证数据的高可用性为首要设计原则。其次,元数据层以区块链技术为底层框架,对日志相关元数据进行存储,保证其高可用性和不可篡改性。控制层主要提供数据路由功能,通过与存储层和元数据层进行交互,以安全可信的方式向用户提供日志信息。
具体地说,本发明提供一种基于区块链的日志文件备份方法。
存储日志文件时,接收日志文件;将日志文件进行合并或分拆;将合并或分拆后的日志文件存储至存储层,并获取日志文件的存储地址和鉴别信息;对日志文件的元数据进行校验;以及如果元数据通过校验,则将校验后的元数据存储至元数据层。在一些实施例中,如果元数据未通过校验,则丢弃与元数据相对应的日志文件。其中,鉴别信息可以包括根据日志文件所计算的哈希值、日志文件所在日志链中日志块的数量。
在读取日志文件时,通过控制层接收读取特定时间窗口的日志的请求,其中,时间窗口包括起始时间戳和结束时间戳;根据时间窗口对元数据进行检索;根据检索结果构建日志数据路由表,其中,日志数据路由表包括日志文件的存储地址;以及根据存储地址从存储层获取日志文件。在一些实施例中,数据路由表可以包括起始时间戳、结束时间戳、存储地址、鉴别信息和校验状态。存储层可以包括短期存储空间和长期存储空间,以及存储地址可以包括短期地址和长期地址。
在一些实施例中,完整性校验通过对日志数据进行哈希运算,并将计算结果与事前在区块链账本中存储的哈希值进行比对,确保日志数据在存储和传输过程中没有遭到篡改。分布式备份通过将日志数据进行拆分,并复制到多个节点上,以防止单点故障导致的数据丢失。智能合约支持允许使用者对系统进行二次迭代开发,在元数据层的区块链网络上部署智能合约,可以进一步实现权限控制和访问审计等功能。分层存储则充分考虑日志数据数据量大、保存时间长、读取频率低等场景化特点,采取分层存储的方式,将不同用途的日志数据存储到性能、成本有所差异的存储节点上,在节省成本的同时降低数据调取的时延。
关于存储层,为提高系统性能,可以对日志数据进行合并或拆分,避免日志文件碎片化或过于庞大引起数据在存储和传输过程中性能损耗。对日志文件合并、拆解后进行编码,并以分布式方式存储到不同的节点上。
存储层内部可以包括长期存储空间和短期存储空间两个不同存储方式的存储空间。所有日志数据都在长期存储空间中储存,该存储空间的存储成本低,适合存储海量日志文件。考虑到日志备份系统,并不需要对日志进行实时扫描,而主要为了实现灾备和不可篡改的需求,因此长期存储空间以写入模式为主,读取频率较低。当需要对特定时间段的数据进行恢复时,需要对该时间段内的文件进行集中读取乃至反复使用,因此有必要将相关数据复制到短期存储空间中,提升系统的读取性能。由于短期存储空间的数据量远小于长期存储空间,因此可以采取速度更快、更为昂贵的存储介质或云存储服务。
元数据层使用Hyperledger Fabric技术作为底层框架,对日志元数据进行存储。总之,元数据模块是日志存储系统中的重要组成部分,它负责存储日志数据的元数据信息,并采用Hyperledger Fabric技术和数据加密技术来确保数据的安全性。元数据层实现了元数据访问功能,允许用户通过指定的元数据进行检索,并返回相应的日志元数据。此外,元数据层将区块链的当前状态存储于状态数据库(state database)中,状态数据库区块链网络中的不同节点共享,用于跟踪区块链账本的最新状态,以确保元数据区块链网络的完整性和一致性。
元数据条目的内容包括日志的哈希值、日志来源、日志开始时间戳、日志结束时间戳、存储时间、存储地址等信息。
元数据层可以提供元数据审计功能,由于区块链网络记录了对元数据的所有修改操作,可以对这些处理行为进行审计,确保元数据的完整性和安全性。此外,元数据模块采用数据加密技术,对存储的信息进行加密,避免数据泄露。例如,可以使用非对称加密算法,为每个用户生成独立的公钥和私钥,并使用用户的私钥对数据进行加密,保证数据的机密性。此外,系统允许用户部署定制的智能合约,在存储元数据时自动执行一些业务逻辑,以保证数据的一致性和完整性。通过这些技术的运用,使元数据模块的设计更加灵活。
控制层通过读取元数据层以及数据层中保存的日志相关信息,构建日志数据路由表,进而实现对日志数据的读取操作。
数据路由表的主要信息由以下字段组成:起始时间戳、结束时间戳、短期地址、长期地址、校验哈希值、校验状态。其中,起始时间戳和结束时间戳记录了日志文件所覆盖的时间窗口。短期地址记录了该文件在存储层的短期存储空间中的地址,而长期地址则记录了文件在存储层中的长期地址。校验哈希值,记录了对应日志元数据层中针对该日志文件所记录的哈希摘要。在读取自己文件内容后对哈希值进行计算,可以判断日志文件是否发生篡改,若未发生篡改,则校验状态的值为“正确”,若哈希值校验异常,则校验状态的值为“错误”。
控制层构建数据路由表的步骤是,首先,根据用户提供的时间窗口,从元数据层的状态数据库中检索相关日志元数据,并在路由表中填入以下信息:开始时间戳、数据结束时间戳、数据长期地址、校验哈希值。随后,控制层将长期地址连同数据读取请求发送给存储层,并取得数据短期地址。随后,控制层从短期地址读取数据内容,并以分页(pagination)的方式将日志数据按顺序依次返回给用户端。控制层和支持批量下载的方式,对短期存储空间中的数据生成临时URL地址,并允许用户在一定时间窗口内下载相关数据,这种方式避免了大量数据下载造成控制层网络拥塞。
为保护数据隐私,存储层不会将长期地址存储空间向外部开放。因此,每当存储层收到数据读取请求时,首先会将数据从长期存储空间拷贝到短期存储空间。短期存储空间提供比长期存储空间更快速的读取性能,但存储成本较长期存储空间更高。数据被复制到短期存储空间中后,在数据地址映射缓存(采取Redis等高速缓存技术)记录长期地址与短期地址的映射关系,并将短期存储地址返回给控制层。
数据地址映射缓存的作用在于,若控制层多次向同一长期地址发送读取请求时,存储层首先在数据地址映射表中查找该长期地址对应的短期地址是否存在,若能够找到短期地址,则无需重复分配短期存储空间,提升了系统反应速度,同时节省了存储空间。
此外,存储层通过预取(pre-fetch)技术,将数据提前存储到短期存储空间,从而使用户可以以更快的速度读取相关数据。当用户想要从长期存储空间读取数据时,会首先查询地址映射表。若地址映射表中没有相关信息,则需要将该长期地址对应的数据复制到短期存储空间。不难想象,在首次读取特定时间窗口内的日志数据时,相关数据均无法在数据映射表中找到,因此出现大量的数据拷贝工作。借助预取技术,可以提前将长期存储空间中的数据存储到一个短期存储空间中,以便用户能够以更快的速度读取相关数据。具体来说,预取技术会在用户首次请求相关日志时,预测用户将来可能需要的日志信息,将这些日子数据提前存储到短期存储空间中,并将在地址映射表中填入相关信息。如此,当控制层下次请求数据时,如果所需的数据已经存在于地址映射表中,就可以立即返回给控制层,从而提高数据读取的速度。
预取算法会定期清理短期存储空间中过期或不再使用的数据。通过在地址映射表中记录最后访问时间,算法可以根据用户的历史行为和数据库的实时数据变化情况,进行动态调整预测策略,使短期数据空间中的数据尽可能符合系统的读取需求。
所属元数据层,通过哈希值校验的方式,确保待存储内容的不可篡改性。通过事先存储每个数据块的哈希值来确保数据的不可篡改性。哈希值是通过对数据进行哈希运算得到的一串指纹,具有唯一性和不可逆性。因此,只要数据内容没有发生改变,哈希值也不会改变。
在存储数据时,可以先计算出数据的哈希值,并将哈希值与数据一起存储到数据库中。这样,当用户读取数据时,就可以先计算出读取的数据的哈希值,然后与存储时的哈希值进行比对。如果计算所得的哈希值与事前存储的校验哈希值相同,就数据没有被篡改,否则数据可能已被篡改。这一设计,可以有效保证数据的完整性和不可篡改性,为用户提供更可靠的数据服务。
图1为本发明一个实施例中日志写入工作流程示意图。如图1所示,用户端在上传日志数据时,可以包括以下步骤:
S100,用户将日志信息写入日志存储层。
S200,存储层为提高系统性能,对日志数据进行合并或拆分,避免日志文件碎片化或过于庞大引起数据在存储和传输过程中性能损耗。对日志文件合并、拆分后进行编码,并以分布式方式存储到不同的节点上。
在一些实施例中,在日志文件比较大,或者同一时间段的日志文件比较小且数量较多的时候,可以将日志文件合并或拆分为日志块。例如,如果设置日志块最大为1MB,且允许对同一个小时内的日志文件进行合并,则在某一个小时之内,若有1000个零碎的比较小的日志文件(如每个日志文件为1KB),则可以对其进行合并,形成一个1MB的日志块。类似的,如果一个小时内有一个100MB的比较大的日志文件,则可以将该日志文件拆分为100个日志块。这样做的好处是,传输过程中的日志块的大小比较统一或者比较有规律,可以有效避免过于零碎或过于庞大而造成网络带宽的低效率。
文件编码是一种可以将文件中的数据编码成特定格式的技术,以便于在传输、存储或处理时更加高效。文件编码可以使用纠错码(error-correcting code)来提高数据的可靠性。作为一个实施例,文件编码算法可以是RS算法(Reed-Solomon code)。RS算法是一种高效的纠错码算法,可以在传输或存储过程中检测和修正数据错误。
在一些实施例中,存储层内部长期存储空间和短期存储空间两个存储方式。所有日志数据都在长期存储空间中储存,该存储空间的存储成本低,适合存储海量日志文件。此外,为避免对大块数据内容的反复传输,日志内容的哈希值计算也在存储层进行。
S300,元数据层得到存储层返回的日志存储地址以及相关日志内容的哈希值。元数据层采取基于联盟链技术的分布式记账技术对日志元数据进行存储。确保元数据的高可用性和不可篡改性。此外,元数据模块采用数据加密技术,对存储的信息进行加密,避免数据泄露。在本实施例中,使用完整性验证和工作量证明算法对当前节点上的日志链进行验证。
首先,统计当前节点和其他节点上日志链中日志块的数量,若数量均相同,则完整性验证通过;然后,使用工作量证明算法从前往后依次判断当前节点上的日志链和其他节点上的日志链对应同一位置的日志块中的日志信息是否相同,若一直匹配到创世块,所有位置的日志信息均相同,则有效性验证通过。
日志链是对日志存储活动的过程记录。多个日志块可以共同组成一个完整的日志文件,例如,某一个小时的日志文件可能特别多,可以拆分成几个日志块进行保存。日志上链后,会在多个节点上进行存储,当通过共识确认多个节点上所存储的日志信息相同时,则有效性验证通过。因为需要多个节点都取得该日志信息后才能最终确认日志数据成功上链,这种算法的存储效率比单节点存储要低,但在防篡改性上更加可靠。
如果完整性验证或有效性验证未通过,则表明日志链中可能存在恶意删除或修改,从而实现日志链完整性和有效性的验证。
S400,元数据层将区块链的当前状态存储于状态数据库(state database)中,状态数据库区块链网络中的不同节点共享,用于跟踪区块链账本的最新状态,以确保元数据区块链网络的完整性和一致性。元数据条目的内容包括日志的哈希值、日志来源、日志开始时间戳、日志结束时间戳、存储时间、存储地址等信息。
图2为本发明一个实施例中日志读取工作流程示意图。如图2所示,通过控制层读取日志数据可以包括以下步骤:
控制层通过读取元数据层以及数据层中保存的日志相关信息,构建日志数据路由表,进而实现对日志数据的读取操作。
数据路由表包含以下主要字段:起始时间戳、结束时间戳、短期地址、长期地址、校验哈希值和校验状态。起始时间戳和结束时间戳指明日志文件所覆盖的时间范围,短期地址和长期地址分别记录文件在存储层中的短期和长期位置。校验哈希值记录日志元数据层中的哈希摘要,读取文件内容后计算哈希值可以判断日志文件是否被篡改。如果未发生篡改,则校验状态的值为“正确”;如果哈希值校验失败,则校验状态的值为“错误”。
控制层建立数据路由表的步骤如下:
(1)根据用户提供的时间窗口,从元数据层的数据库中检索相关日志。
(2)将日志的开始时间戳、结束时间戳、长期地址和校验哈希值填入路由表。
(3)向存储层发送数据读取请求,取得短期地址。
随后,控制层从短期地址读取数据内容,并以分页(pagination)的方式将日志数据按顺序依次返回给用户端。为了保护数据的隐私,存储层不会将长期地址存储空间开放给外部使用。因此,当存储层收到数据读取请求时,会将数据从长期存储空间复制到短期存储空间,以提供更快速的读取性能。短期存储空间的存储成本比长期存储空间要高得多;但为了加快读取速度,存储层会在数据复制到短期存储空间之后,通过数据地址映射缓存(采取Redis等缓存技术)记录长期地址与短期地址的映射关系,并将短期存储地址返回给控制层。这样,控制层就可以从短期存储空间中快速获取数据,而不会受到长期存储空间的影响,同时也能够有效地保护数据的隐私,避免将长期地址存储空间开放给外部使用。
为了实现对短期存储空间中的数据进行批量下载,本技术方案提出采用控制层和支持批量下载的方式,并为用户提供一定时间窗口,以便允许用户下载相关数据。首先,在短期存储空间中的数据生成临时URL地址,以便用户访问和下载;然后,通过控制层管理用户的访问行为,允许用户在一定时间窗口内批量下载数据,从而避免了大量的数据下载对网络拥塞和负载的影响。此外,为了进一步保证用户下载数据的安全性和有效性,采用HTTPS和SSL/TSL协议,确保数据传输安全。
为了避免大量数据下载导致网络拥塞,且保护数据隐私,存储层不会将长期存储空间向外部开放。当存储层收到数据读取请求时,会先将数据从长期存储空间拷贝到短期存储空间,以获得更快的读取性能,但成本更高。此后,会使用Redis等缓存技术,记录长期地址与短期地址的映射关系,并将短期存储地址返回给控制层。数据地址映射缓存的作用是:当控制层多次向同一长期地址发出读取请求时,存储层会先检查数据地址映射表中该长期地址对应的短期地址是否已存在,若存在,则不需要重新分配短期存储空间,可以加快系统响应速度,并节省存储空间。
存储层使用预取技术,将数据预存到短期存储空间以加快读取速度。地址映射表没有预取的数据,就会将长期存储空间中的数据复制到短期存储空间。但预取技术可以预测用户可能需要的日志信息,提前将其存储到短期存储空间,并将地址映射表中填入相应信息。如此,控制层下次请求就可以立即返回数据,加快读取速度。
预取技术通常是通过分析历史访问数据来预测用户可能需要的数据的。例如,假设一个计算机系统中有一个文件系统,并且用户经常访问某些文件。在这种情况下,预取技术可以通过分析这些文件的历史访问记录来预测用户可能会访问哪些文件。然后,它就会提前预取这些文件,以便在用户访问这些文件时能够更快地响应。对于读取日志的情况,在一些实施例中,预测方式可以采用“最近最常用”(LRU)算法。LRU算法基于一种假设,即用户最近访问过的数据更可能在将来被访问到。对于日志访问的场景来说,一旦用户读取某一时间点的日志数据,则读取该时间点前后一段时间内的其他日志的概率很高。因此,可以通过用户所读取日志对应的时间戳信息,对之前和之后一段范围内的日志进行预取,以更快地响应、提升效率。
此外,预取算法可定期清理短期存储空间中过期或不再使用的数据,同时记录最后访问时间至地址映射表,以便根据用户历史行为、实时数据变化及机器学习算法、动态规划技术等动态优化预取策略,有效提高存储空间利用率,加快数据访问速度,减少读取时间,优化系统性能及提升用户体验。此外,还可根据用户访问频率动态调整预取数据量,更好满足系统性能要求。
图3为本发明一个实施例中系统结构示意图。如图3所示,示出了系统的主要模块,包括存储层、元数据层和控制层。
存储层被配置为能够:接收日志文件,将日志文件进行合并或分拆,将合并或分拆后的日志文件存储至存储层,并获取日志文件的存储地址和鉴别信息。元数据层被配置为能够对日志文件的元数据进行校验,如果元数据通过校验,则将校验后的元数据存储至元数据层。控制层被配置为能够接收读取特定时间窗口的日志的请求,根据时间窗口对元数据进行检索,并根据检索结果构建日志数据路由表,以及根据存储地址从存储层获取日志文件;其中,时间窗口包括起始时间戳和结束时间戳,日志数据路由表包括日志文件的存储地址。
存储层包括长期文件存储空间和短期文件存储空间,所有的日志文件都存储在长期文件存储空间中,当需要读取日志文件时,将日志文件拷贝到短期文件存储空间以供读取。日志文件在长期文件存储空间中的存储地址为长期地址,日志文件在短期文件存储空间中的存储地址为短期地址,日志文件的长期地址和短期地址通过数据地址映射联系起来。读取日志文件时,存储层仅对外提供短期地址,不对外提供长期地址。
元数据层包括超级账本网络和元数据状态数据库。元数据状态数据库中存储有日志文件的元数据,并通过超级账本网络与区块链中的不同节点共享,用于跟踪区块链账本的最新状态,以确保元数据区块链网络的完整性和一致性。
控制层包括API模块和数据路由模块。API模块用于与用户交互,接收用户请求并向用户返回结果。数据路由模块主要用于根据用户请求构建数据路由表来读取特定的日志文件。
本发明提供的技术方案可以是系统、方法、装置和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
在一些实施例中,本发明还提供一种计算机装置、设备或终端,其一个实施例的内部结构可以如图4所示。该计算机装置、设备或终端包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,处理器用于提供计算和控制能力,存储器包括非易失性存储介质、内存储器。非易失性存储介质存储有操作系统和计算机程序。内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。网络接口用于与外部的终端通过网络连接通信。计算机程序被处理器执行时以实现本发明公开的各种方法、流程、步骤,或者处理器执行计算机程序时实现本发明公开的实施例中各个模块或单元的功能。显示屏可以是液晶显示屏或者电子墨水显示屏,输入装置可以是显示屏上覆盖的触摸层,也可以是外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
示例性的,计算机程序可以被分割成一个或多个模块或单元,这些模块或单元被存储在存储器中,并可由处理器执行,以实现本发明的技术方案。这些模块或单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在装置、设备或终端中的执行过程。
上述的装置、设备或终端可以是桌上型计算机、笔记本、移动电子设备、掌上电脑及云端服务器等计算设备。本领域技术人员应当理解,图中所示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的装置、设备或终端的限定,具体的装置、设备或终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
处理器可以是中央处理单元(Central Processing Unit,CPU),也可以是其他通用或专用的处理器、微处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器是上述的装置、设备或终端的控制中心,利用各种接口和线路连接装置、设备或终端的各个部分。
存储器可用于存储计算机程序、模块和数据,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现装置、设备或终端的各种功能。存储器可主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;数据存储区可存储根据应用所创建的各类数据(比如多媒体数据、文档、操作历史记录等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)、磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
上述的装置或终端设备集成的模块和单元,如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读存储介质中。基于这样的理解,本发明实现所公开的各种方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
在一些实施例中,本发明公开的各种方法、流程、模块、装置、设备或系统可以在一个或多个处理装置(例如,数字处理器、模拟处理器、被设计成用于处理信息的数字电路、被设计成用于处理信息的模拟电路、状态机、计算设备、计算机和/或用于以电子方式处理信息的其他机构)中被实现或执行。该一个或多个处理装置可以包括响应于以电子方式存储在电子存储介质上的指令来执行方法的一些或所有操作的一个或多个装置。该一个或多个处理装置可以包括通过硬件、固件和/或软件被配置而专门设计成用于执行方法的一项或多项操作的一个或多个装置。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
本发明的实施方式可以在硬件、固件、软件或其各种组合中进行,还可以作为存储在机器可读介质上的且可以使用一个或多个处理装置读取和执行的指令来实现。在一些实施方式中,机器可读介质可以包括用于存储和/或传输呈机器(例如,计算装置)可读形式的信息的各种机构。例如,机器可读存储介质可以包括只读存储器、随机存取存储器、磁盘存储介质、光存储介质、快闪存储器装置以及用于存储信息的其他介质,并且机器可读传输介质可以包括多种形式的传播信号(包括载波、红外信号、数字信号)以及用于传输信息的其他介质。虽然在执行某些动作的特定示例性方面和实施方式的角度可以在以上公开内容中描述固件、软件、例程或指令,但将明显的是,这类描述仅出于方便目的并且这类动作实际上由机器设备、计算装置、处理装置、处理器、控制器、或执行固件、软件、例程或指令的其他装置或机器产生。
在本发明的权利要求书和说明书中,用来执行指定功能的模块或者使用功能性特征描述的模块,意在涵盖能够执行该功能的任何方式,例如:执行该功能的电路元件的组合,用来执行或实现该功能的软件、硬件以及软件和硬件的组合,或者任何形式的软件、固件、代码及其与适当电路或其他装置的组合。由各种模块提供的功能被以权利要求书所主张的方式组合在一起,由此应当认为,是可以提供这些功能的任何模块、部件、元件都等价或等效于权利要求书中限定的模块。根据电路的等效变换的原理,也可以对本发明中一些实施例的电路结构进行变更、修改,例如:将电流源变换为电压源、串联结构变换为并联结构等,从而获得更多样化的实施例,但这些变更和修改均属于本发明公开的范围。
本说明书使用示例来公开本发明,其中的一个或多个示例被描述或者图示于说明书及其附图之中。每个示例都是为了解释本发明而提供,而不是为了限制本发明。事实上,在不脱离本发明的范围或精神的情况下可以对本发明进行各种修改和变型。例如,作为一个实施例的一部分的图示的或描述的特征可以与另一个实施例一起使用,以得到更进一步的实施例。因此,其意图是本发明涵盖在所附权利要求书及其等同物的范围内进行的修改和变型。以上所述,仅为本发明的具体实施例,但本发明的保护范围并不局限于此,任何熟悉本领域技术的技术人员根据本发明的构思,在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,或者可容易想到的变化或替换,都应涵盖于本发明的保护范围之内。
Claims (10)
1.一种基于区块链的日志文件备份方法,其特征在于,包括以下步骤:
接收日志文件;
将所述日志文件进行合并或分拆;
将合并或分拆后的所述日志文件存储至存储层,并获取所述日志文件的存储地址和鉴别信息;
对所述日志文件的元数据进行校验;以及
如果所述元数据通过校验,则将校验后的所述元数据存储至元数据层。
2.根据权利要求1所述的基于区块链的日志文件备份方法,其特征在于:
如果所述元数据未通过校验,则丢弃与所述元数据相对应的所述日志文件。
3.根据前述任一项权利要求所述的基于区块链的日志文件备份方法,其特征在于,还包括以下步骤:
通过控制层接收读取特定时间窗口的日志的请求,其中,所述时间窗口包括起始时间戳和结束时间戳;
根据所述时间窗口对所述元数据进行检索;
根据检索结果构建日志数据路由表,其中,所述日志数据路由表包括所述日志文件的存储地址;以及
根据所述存储地址从所述存储层获取所述日志文件。
4.根据前述任一项权利要求所述的基于区块链的日志文件备份方法,其特征在于:
所述鉴别信息包括根据所述日志文件所计算的哈希值、所述日志文件所在日志链中日志块的数量。
5.根据前述任一项权利要求所述的基于区块链的日志文件备份方法,其特征在于:
所述数据路由表包括所述起始时间戳、所述结束时间戳、所述存储地址、所述鉴别信息和校验状态。
6.根据前述任一项权利要求所述的基于区块链的日志文件备份方法,其特征在于:
所述存储层包括短期存储空间和长期存储空间,以及所述存储地址包括短期地址和长期地址。
7.一种基于区块链的日志文件备份系统,其特征在于,包括:
存储层,所述存储层被配置为能够:接收日志文件,将所述日志文件进行合并或分拆,将合并或分拆后的所述日志文件存储至存储层,并获取所述日志文件的存储地址和鉴别信息;以及
元数据层,所述元数据层被配置为能够对所述日志文件的元数据进行校验,如果所述元数据通过校验,则将校验后的所述元数据存储至元数据层。
8.根据权利要求7所述的基于区块链的日志文件备份系统,其特征在于,还包括:
控制层,所述控制层被配置为能够接收读取特定时间窗口的日志的请求,根据所述时间窗口对所述元数据进行检索,并根据检索结果构建日志数据路由表,以及根据所述存储地址从所述存储层获取所述日志文件;
其中,所述时间窗口包括起始时间戳和结束时间戳,所述日志数据路由表包括所述日志文件的存储地址。
9.一种基于区块链的日志文件备份装置,包括存储器、处理器以及存储在所述存储器中并能够在所述处理器上运行的计算机程序,其特征在于,所述处理器被配置为能够在执行所述计算机程序时实现根据权利要求1-6中任一项所述的基于区块链的日志文件备份方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时能够实现根据权利要求1-6中任一项所述的基于区块链的日志文件备份方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211631045.XA CN115878383A (zh) | 2022-12-19 | 2022-12-19 | 一种基于区块链的日志文件备份方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211631045.XA CN115878383A (zh) | 2022-12-19 | 2022-12-19 | 一种基于区块链的日志文件备份方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115878383A true CN115878383A (zh) | 2023-03-31 |
Family
ID=85753955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211631045.XA Pending CN115878383A (zh) | 2022-12-19 | 2022-12-19 | 一种基于区块链的日志文件备份方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115878383A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116841801A (zh) * | 2023-07-14 | 2023-10-03 | 广州数源畅联科技有限公司 | 一种基于云服务器的数据备份方法及系统 |
CN117150575A (zh) * | 2023-10-30 | 2023-12-01 | 西安热工研究院有限公司 | 可信工控系统操作日志防篡改方法、系统、设备及介质 |
-
2022
- 2022-12-19 CN CN202211631045.XA patent/CN115878383A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116841801A (zh) * | 2023-07-14 | 2023-10-03 | 广州数源畅联科技有限公司 | 一种基于云服务器的数据备份方法及系统 |
CN116841801B (zh) * | 2023-07-14 | 2024-03-26 | 广州数源畅联科技有限公司 | 一种基于云服务器的数据备份方法及系统 |
CN117150575A (zh) * | 2023-10-30 | 2023-12-01 | 西安热工研究院有限公司 | 可信工控系统操作日志防篡改方法、系统、设备及介质 |
CN117150575B (zh) * | 2023-10-30 | 2024-02-23 | 西安热工研究院有限公司 | 可信工控系统操作日志防篡改方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3776208B1 (en) | Runtime self-correction for blockchain ledgers | |
JP7382108B2 (ja) | ブロックチェーンのための効率的な検証 | |
CN115878383A (zh) | 一种基于区块链的日志文件备份方法与系统 | |
Dobre et al. | Hybris: Robust hybrid cloud storage | |
US11200260B2 (en) | Database asset fulfillment chaincode deployment | |
Bindschaedler et al. | Hailstorm: Disaggregated compute and storage for distributed lsm-based databases | |
US8087017B1 (en) | Trace-assisted prefetching of virtual machines in a distributed system | |
US20180343110A1 (en) | Method and System for Implementing Scaling and Distribution of Blockchains without Ledger Limitations | |
US11093495B2 (en) | SQL processing engine for blockchain ledger | |
US11907199B2 (en) | Blockchain based distributed file systems | |
US11645268B2 (en) | Database world state performance improvement | |
EP3744071B1 (en) | Data isolation in distributed hash chains | |
KR101977178B1 (ko) | 블록체인 기반의 파일 위변조 검사 방법 및 이를 적용한 컴퓨터로 읽을 수 있는 저장매체 | |
US11095705B2 (en) | Content distributed over secure channels | |
US11379316B2 (en) | Snapshot restoration | |
Zhang et al. | LedgerGuard: improving blockchain ledger dependability | |
Li et al. | Using blockchain for data auditing in cloud storage | |
US11868339B2 (en) | Blockchain based distributed file systems | |
US20210081430A1 (en) | System and method for managing a role-based blockchain network | |
WO2008029146A1 (en) | A distributed file system operable with a plurality of different operating systems | |
CN114547108A (zh) | 数据处理方法、装置、设备及介质 | |
US20110035506A1 (en) | Distributed workflow framework | |
Vijaya Kmari et al. | Cloud storage auditing by utilizing provable data possession method | |
KR102716820B1 (ko) | 하둡(hdfs)에서의 데이터 보호 장치 및 그 방법 | |
KR102578567B1 (ko) | 하둡(hdfs)에서의 데이터 무결성 검증 장치 및 그 방법 |
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 |