CN113986143A - 一种面向区块链日志存储的高可靠低开销数据存储方法 - Google Patents
一种面向区块链日志存储的高可靠低开销数据存储方法 Download PDFInfo
- Publication number
- CN113986143A CN113986143A CN202111333973.3A CN202111333973A CN113986143A CN 113986143 A CN113986143 A CN 113986143A CN 202111333973 A CN202111333973 A CN 202111333973A CN 113986143 A CN113986143 A CN 113986143A
- Authority
- CN
- China
- Prior art keywords
- log
- blockchain
- client
- storage
- node
- 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 24
- 238000013500 data storage Methods 0.000 title claims abstract description 21
- 238000012795 verification Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 5
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims 1
- 238000012217 deletion Methods 0.000 abstract description 2
- 230000037430 deletion Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000009412 basement excavation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
Images
Classifications
-
- 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/061—Improving I/O performance
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/0614—Improving the reliability of storage 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向区块链日志存储的高可靠低开销数据存储系统及方法,方法包括以下步骤:将待存储的日志文件分为两个存储阶段,所述两个存储阶段包括:准备阶段和提交阶段;将日志文件分阶段存入区块链日志存储系统。本发明通过日志文件的提交分为准备阶段和提交阶段完成日志文件的存储,在不增加额外机器的条件下,通过复用区块链系统所在的物理节点作为链下存储节点,可以有效地降低存储开销、扩展系统的存储容量,同时结合纠删编码提供的冗余能力避免数据被拜占庭节点删除或篡改。
Description
技术领域
本发明涉及分布式存储技术领域,更具体地,涉及一种面向区块链日志存储的高可靠低开销数据存储系统及方法。
背景技术
区块链是一种结合分布式共识、加密、时间戳等方法,在不依赖任何第三方中心化机构的情况下,实现点对点交易、协调以及协作的技术。但是区块链存在存储开销过大的问题,成为了区块链应用落地的瓶颈。针对区块链中存储开销过大的问题,存在的解决方案可分为链上存储和链下存储。链上存储将数据存储在区块链上,并不需要额外的链下存储系统,每个节点上只需要按照预先的规则存储对应的数据即可,从而降低了存储开销,链上存储可以分为协作式存储模式和轻节点模式。链下存储将区块体中的数据转移到区块链之外的存储系统中,此时区块链仅存储了指向这些数据的指针等非数据信息,非数据信息所占的存储空间小,因此可以解决区块链存储的可扩展性问题。原始的数据保存在非区块链系统中,同时按照一定的规则生成该数据的唯一标识,并返回给区块链系统;当访问完整的数据时,通过数据的唯一标识在非区块链系统中寻找原始数据。
现有技术公开了一种数据存取的方法、系统及装置,在数据存储时,先确定数据存储指令,之后根据该数据存储指令中携带的身份标识,确定与该身份标识对应的区块链以及密钥对,最后根据该密钥对,将待存储数据存储在该区块链中,在数据查询时,先确定数据查询指令,之后根据该数据查询指令对应的身份标识,确定与该身份标识对应的区块链以及私钥,最后根据该私钥,将该区块链中的数据解密后查询。可见,通过本申请实施例提供的方法,使得存取对应该身份标识的数据时,无需访问多个数据库,仅需通过访问该身份标识对应的该区块链,以及通过密钥对进行数据存储,使得保证数据安全的同时,可以简化操作的复杂性,提高数据存取的效率。该方案将数据以全副本的形式保存在区块链中,当有区块链节点出现故障时可有没有出现故障的任意节点继续工作,并可以通过正常节点来修复出现故障的区块链节点。然而全副本形式的链上存储存在存储开销过大的问题,在一个具有n个节点的系统中,每一份数据将被保存n份,以这种方式保存很少被访问的冷数据(如日志记录等)会造成过多的存储空降浪费。
发明内容
本发明为克服上述现有日志存储方案开销大,容易产生对存储资源浪费的缺陷,提供一种面向区块链日志存储的高可靠低开销数据存储系统及方法。
本发明的首要目的是为解决上述技术问题,本发明的技术方案如下:
本发明第一方面提供了一种面向区块链日志存储的高可靠低开销数据存储系统,包括:日志客户端、日志联盟链节点,所述日志客户端与所述日志联盟链节点通过RPC接口通信连接,其中,日志客户端用于对日志文件进行编码得到编码块,所述日志联盟链节点用于存储编码块和日志文件的元数据。
进一步的,所述日志客户端包括有:纠删码引擎、区块链轻客户端,第一RPC接口,其中所述纠删码引擎用于对日志文件进行纠删码编码,所述区块链轻客户端用于验证交易的存在,所述第一RPC接口用于与日志联盟链节点数据交互。
进一步的,所述纠删码引擎对日志文件进行编码的过程为:
将每一份日志文件切分成n-2f个数据块,通过(n-2f,2f)-RS编码后生成2f个校验块;n-2f个数据块和2f个校验块统称为编码块,随后将n-2f个编码块上传到联盟链节点上,n表示总的节点个数,f表示能容忍的恶意节点个数。
进一步的,所述区块链轻客户端轻中的区块头与全节点保持同步,而区块头中保存了默克尔树根,当轻客户端向全节点查询某一条交易时,全节点将会返回这条交易以及交易的默克尔证明,通过默克尔证明可以验证这条交易的存在。
进一步的,所述日志联盟链节点包括:日志存储层、区块链层、第二RPC接口,所述日志存储层用于存储编码块,所述区块链层用于存储日志的元数据,所述第二RPC接口用于与日志客户端数据交互;其中所述区块链层包括:PBFT共识引擎、交易执行模块、P2P网络,所述PBFT共识引擎用于执行现有的PBFT共识算法,所述交易执行模块用于收集交易、打包交易的模块,所述P2P网络为区块链中分布式的独立的区块链节点组成的对等网络。
本发明第二方面提供了一种面向区块链日志存储的高可靠低开销数据存储方法,所述方法应用于所述的面向区块链日志存储的高可靠低开销数据存储系统,其特征在于,包括以下步骤:
将待存储的日志文件分为两个存储阶段,所述两个存储阶段包括:准备阶段和提交阶段;
将日志文件分阶段存入区块链日志存储系统。
进一步的,在准备阶段区块链协议不工作,区块链服务器作为存储服务器,客户端向服务器发送编码块,并保存服务器返回的签名;
在提交阶段,客户端向区块链发送提交请求,并在请求中附加上准备阶段服务器返回的签名,区块链系统对签名进行验证以确保系统已经保存了足够的编码块。
进一步的,
日志文件在存储的两个阶段中,联盟链节点在两个阶段中扮演了两种不同的角色,在第一阶段,联盟链逻辑上为链下存储节点,运行日志存储层的协议;日志客户端对日志文件进行编码后上传给联盟链节点后,联盟链节点将检查编码块并存储在节点上的KV数据库中,当成功存储后,节点会使用自身的私钥对编码块进行签名,所述签名将会返回并保存在区块链中,以证明节点已经成功保存了此日志编码块。
进一步的,当日志客户端收集到了超过n-f个签名后足够的签名后,表明此时至少有n-2f个非恶意节点已经正常保存了日志编码块,此时日志客户端可以发起交易,将签名和其他日志文件元数据以交易的形式上传到日志联盟链中,区块链节点将检查提交的交易,完成检查后将以打包并添加在区块链中,同时会有一个状态数据库来索引日志文件;
用户通过客户端查询特定日志时首先从任意一个区块链获取到元数据,再通过日志存储层获取到n-2f个正确编码块后在客户端解码恢复日志。
进一步的,客户端日志文件存储过程具体步骤为:
A1:将单个日志文件作为输入参数,利用纠删编码函数对日志文件的数据进行编码得到与集群数量相等个数的编码块,并通过hash运算计算校验和;
A2:联盟链节点Ni按照公钥从1到n进行排序,客户端向联盟链节点Ni发送对应的编码块Ci、日志文件的校验、以及编码块Ci的校验,n表示集群数量;
A3:联盟链节点检查编码块是否与校验一致;并确保未曾提交过编码块对应的日志文件;
A4:定义键值对,将编码块中日志文件的校验作为键,并将编码块存储在节点本地的对象数据上,将与日志文件关联的数据作为值,所述的值包括编码后的块文件的数据本身、校验信息,以及涵盖了客户端信息、日志时间戳、应用程序路径信息的元数据,其中所述元数据的值为空时表示日志文件处于准备阶段,尚未被提交;
A5:联盟链节点返回对日志文件的校验信息和编码后的文件校验信息的签名以表明接收到并保存了编码块,客户端会在下一阶段将签名提交,作为节点正常接收的凭证;
A6:检测客户端是否收集到超过n-2f条联盟链节点返回的准备完毕消息,若是,将唤醒主线程;
A7客户端将日志文件元数据以及联盟链节点返回的签名作为交易提交。
与现有技术相比,本发明技术方案的有益效果是:
本发明通过日志文件的提交分为准备阶段和提交阶段完成日志文件的存储,在不增加额外机器的条件下,通过复用区块链系统所在的物理节点作为链下存储节点,可以有效地降低存储开销、扩展系统的存储容量,同时结合纠删编码提供的冗余能力避免数据被拜占庭节点删除或篡改。
附图说明
图1为本发明一种面向区块链日志存储的高可靠低开销数据存储系统框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
实施例1
如图1所示,本发明提供了一种面向区块链日志存储的高可靠低开销数据存储系统,包括:日志客户端、日志联盟链节点,所述日志客户端与所述日志联盟链节点通过RPC接口通信连接,其中,日志客户端用于对日志文件进行编码得到编码块,所述日志联盟链节点用于存储编码块和日志文件的元数据。
本发明实施例中,日志文件在客户端编码后得到编码块,并将编码块上传至日志联盟节点中存储;当有足够的节点返回成功存储的消息后再将日志元数据作为交易发送至区块链;在进去数据读取时,客户端向联盟链节点向联盟链节点发送请求读取编码块并在客户端恢复日志文件。
进一步地,所述日志客户端包括有:纠删码引擎、区块链轻客户端,第一RPC接口,其中所述纠删码引擎用于对日志文件进行纠删码编码,所述区块链轻客户端用于验证交易的存在,所述第一RPC接口用于与日志联盟链节点数据交互。
进一步地,所述纠删码引擎对日志文件进行编码的过程为:
将每一份日志文件切分成n-2f个数据块,通过(n-2f,2f)-RS编码后生成2f个校验块;n-2f个数据块和2f个校验块统称为编码块,随后将n-2f个编码块上传到联盟链节点上,n表示总的节点个数,f表示能容忍的恶意节点个数。
需要说明的是,在以交易的形式将日志元数据提交到区块链之前,客户端会将日志文件保存到链下存储。在本发明实施例中,为了增加链下存储的可靠性,将联盟链中的对等节点作为链下存储的节点,并将日志文件以纠删码编码块的形式写入。新型域名解析系统的日志链使用PBFT作为共识协议,使用PBFT的分布式系统能容忍不超过1/3个恶意节点,当总节点数量为n时,如果要容忍f个恶意节点,需要满足n≥3f+1。当读取某一条通过PBFT协议成功提交的数据时,只能保证在n-2f个节点上读取到正确的结果。例如,假设在通过协议提交消息m时,f个恶意节点伪装成正常节点,如果此时系统中恰好有f个非恶意节点发生了故障而宕机,系统仍能完成对消息m的提交并达成一致,此时消息m写入到了n-f个节点中,其中有n-2f个为正常节点、另外f个节点为恶意节点。当读取消息m时,恶意节点可以返回错误消息,因此只能保证可以从n-2f个节点上读取到正确的信息。在本发明中,会在运行前确定并配置最大拜占庭节点数量f,这决定了之后使用的纠删码编码模式,客户端使用(n-2f,2f)-RS对每个日志文件进行编码。具体来说,将每一份日志文件切分成n-2f个数据块,通过(n-2f,2f)-RS编码后生成2f个校验块;n-2f个数据块和2f个校验块统称为编码块,随后将n-2f个编码块上传到联盟链节点上(保存在链下);在读取时,只需要获取到n-2f个正确的编码块即可恢复日志文件。
进一步地,所述区块链轻客户端轻中的区块头与全节点保持同步,而区块头中保存了默克尔树根,当轻客户端向全节点查询某一条交易时,全节点将会返回这条交易以及交易的默克尔证明,通过默克尔证明可以验证这条交易的存在。
本发明实施例中,日志区块链的客户端中实现了日志的上传和下载。本发明中的客户端通过轻客户端协议与区块链节点交互。与全节点不同,轻客户端不参与到挖矿,也不存储区块体,对计算能力和存储能力的要求低于全节点。轻客户中的区块头与全节点保持同步,而区块头中保存了默克尔树根,当轻客户端向全节点查询某一条交易时,全节点将会返回这条交易以及交易的默克尔证明,通过默克尔证明可以验证这条交易的存在。轻客户端协议使得用户能以很小的代价参与到区块链中,由于其同步时只需要获取到区块头,因此也减少了区块链网络的负载。
本发明中,所述日志联盟链节点包括:日志存储层、区块链层、第二RPC接口,所述日志存储层用于存储编码块,所述区块链层用于存储日志的元数据,所述第二RPC接口用于与日志客户端数据交互。
本发明实施例中,所述区块链层包括:PBFT共识引擎、交易执行模块、P2P网络,所述PBFT共识引擎用于执行现有的PBFT共识算法,所述交易执行模块用于收集交易、打包交易的模块,所述P2P网络为区块链中分布式的独立的区块链节点组成的对等网络。
实施例2
本发明还提供了一种面向区块链日志存储的高可靠低开销数据存储方法,所述方法应用于所述的面向区块链日志存储的高可靠低开销数据存储系统,包括以下步骤:
将待存储的日志文件分为两个存储阶段,所述两个存储阶段包括:准备阶段和提交阶段;
将日志文件分阶段存入区块链日志存储系统。
进一步地,在准备阶段区块链协议不工作,区块链服务器作为存储服务器,客户端向服务器发送编码块,并保存服务器返回的签名;
在提交阶段,客户端向区块链发送提交请求,并在请求中附加上准备阶段服务器返回的签名,区块链系统对签名进行验证以确保系统已经保存了足够的编码块。
进一步地,日志文件在存储的两个阶段中,联盟链节点在两个阶段中扮演了两种不同的角色,在第一阶段,联盟链逻辑上为链下存储节点,运行日志存储层的协议;日志客户端对日志文件进行编码后上传给联盟链节点后,联盟链节点将检查编码块并存储在节点上的KV数据库中,当成功存储后,节点会使用自身的私钥对编码块进行签名,所述签名将会返回并保存在区块链中,以证明节点已经成功保存了此日志编码块。
进一步地,当日志客户端收集到了超过n-f个签名后足够的签名后,表明此时至少有n-2f个非恶意节点已经正常保存了日志编码块,此时日志客户端可以发起交易,将签名和其他日志文件元数据以交易的形式上传到日志联盟链中,区块链节点将检查提交的交易,完成检查后将以打包并添加在区块链中,同时会有一个状态数据库来索引日志文件;
用户通过客户端查询特定日志时首先从任意一个区块链获取到元数据,再通过日志存储层获取到n-2f个正确编码块后在客户端解码恢复日志。
实施例3
本发明中,客户端日志文件存储具体步骤为:
A1:将单个日志文件作为输入参数,利用纠删编码函数对日志文件的数据进行编码得到与集群数量相等个数的编码块,并通过hash运算计算校验和;
A2:联盟链节点Ni按照公钥从1到n进行排序,客户端向联盟链节点Ni发送对应的编码块Ci、日志文件的校验、以及编码块Ci的校验,n表示集群数量;
A3:联盟链节点检查编码块是否与校验一致;并确保未曾提交过编码块对应的日志文件;
A4:定义键值对,将编码块中日志文件的校验作为键,并将编码块存储在节点本地的对象数据上,将与日志文件关联的数据作为值,所述的值包括编码后的块(decoded-chunk)文件的数据本身(记为d)、校验信息(记为dc)、以及涵盖了客户端信息、日志时间戳、应用程序路径信息的元数据(记为meta),其中所述元数据值为空时表示日志文件处于准备阶段,尚未被提交;
A5:联盟链节点返回对日志文件校验和编码后的文件校验的签名以表明接收到并保存了编码块,客户端会在下一阶段将签名提交,作为节点正常接收的凭证;
A6:检测客户端是否收集到超过n-2f条联盟链节点返回的准备完毕消息,若是,将唤醒主线程;
A7:客户端将日志文件元数据以及联盟链节点返回的签名作为交易提交。
需要说明的是,在提交阶段中,提交消息包括:日志文件元数据、日志文件校验、准备阶段联盟链节点返回的签名,日志元数据包括了客户端信息、日志时间范围、应用程序路径等信息,可以用于检索日志,日志文件校验和以及联盟链节点返回的签名返回的签名可以用于验证日志文件的真实性。更具体地,客户端提交的交易在进入内存池之前会调用check_tx函数,check_tx函数检查了正确签名的个数,确定超过2f个节点暂存编码块之后将返回SUCCESS,交易将进入内存池并通过PBFT协议提交。完成提交后并打包区块后每个区块链节点都将将调用deliver_tx函数。deliver_tx函数用于更新区块链中的状态机,所述更新状态机即写入了日志文件的元数据,元数据的写入是为了方便客户端通过元数据查询到相应的日志文件,同时也表示日志文件正式提交成功。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种面向区块链日志存储的高可靠低开销数据存储系统,其特征在于,包括:日志客户端、日志联盟链节点,所述日志客户端与所述日志联盟链节点通过RPC接口通信连接,其中,日志客户端用于对日志文件进行编码得到编码块,所述日志联盟链节点用于存储编码块和日志文件的元数据。
2.根据权利要求1所述的一种面向区块链日志存储的高可靠低开销数据存储方法,其特征在于,所述日志客户端包括有:纠删码引擎、区块链轻客户端,第一RPC接口,其中所述纠删码引擎用于对日志文件进行纠删码编码,所述区块链轻客户端用于验证交易的存在,所述第一RPC接口用于与日志联盟链节点数据交互。
3.根据权利要求2所述的一种面向区块链日志存储的高可靠低开销数据存储系统,其特征在于,所述纠删码引擎对日志文件进行编码的过程为:
将每一份日志文件切分成n-2f个数据块,通过(n-2f,2f)-RS编码后生成2f个校验块;n-2f个数据块和2f个校验块统称为编码块,随后将n-2f个编码块上传到联盟链节点上,n表示总的节点个数,f表示能容忍的恶意节点个数。
4.根据权利要求3所述的一种面向区块链日志存储的高可靠低开销数据存储系统,其特征在于,所述区块链轻客户端轻中的区块头与全节点保持同步,而区块头中保存了默克尔树根,当轻客户端向全节点查询某一条交易时,全节点将会返回这条交易以及交易的默克尔证明,通过默克尔证明可以验证这条交易的存在。
5.根据权利要求1所述的一种面向区块链日志存储的高可靠低开销数据存储方法,其特征在于,所述日志联盟链节点包括:日志存储层、区块链层、第二RPC接口,所述日志存储层用于存储编码块,所述区块链层用于存储日志的元数据,所述第二RPC接口用于与日志客户端数据交互;其中所述区块链层包括:PBFT共识引擎、交易执行模块、P2P网络,所述PBFT共识引擎用于执行现有的PBFT共识算法,所述交易执行模块用于收集交易、打包交易的模块,所述P2P网络为区块链中分布式的独立的区块链节点组成的对等网络。
6.一种面向区块链日志存储的高可靠低开销数据存储方法,所述方法应用于权利要求1-5任一项所述的面向区块链日志存储的高可靠低开销数据存储系统,其特征在于,包括以下步骤:
将待存储的日志文件分为两个存储阶段,所述两个存储阶段包括:准备阶段和提交阶段;
将日志文件分阶段存入区块链日志存储系统。
7.根据权利要求6所述的一种面向区块链日志存储的高可靠低开销数据存储方法,其特征在于,在准备阶段区块链协议不工作,区块链服务器作为存储服务器,客户端向服务器发送编码块,并保存服务器返回的签名;
在提交阶段,客户端向区块链发送提交请求,并在请求中附加上准备阶段服务器返回的签名,区块链系统对签名进行验证以确保系统已经保存了足够的编码块。
8.根据权利要求7所述的一种面向区块链日志存储的高可靠低开销数据存储方法,其特征在于,
日志文件在存储的两个阶段中,联盟链节点在两个阶段中扮演了两种不同的角色,在第一阶段,联盟链逻辑上为链下存储节点,运行日志存储层的协议;日志客户端对日志文件进行编码后上传给联盟链节点后,联盟链节点将检查编码块并存储在节点上的KV数据库中,当成功存储后,节点会使用自身的私钥对编码块进行签名,所述签名将会返回并保存在区块链中,以证明节点已经成功保存了此日志编码块。
9.根据权利要求8所述的一种面向区块链日志存储的高可靠低开销数据存储方法,其特征在于,当日志客户端收集到了超过n-f个签名后足够的签名后,表明此时至少有n-2f个非恶意节点已经正常保存了日志编码块,此时日志客户端可以发起交易,将签名和其他日志文件元数据以交易的形式上传到日志联盟链中,区块链节点将检查提交的交易,完成检查后将以打包并添加在区块链中,同时会有一个状态数据库来索引日志文件;
用户通过客户端查询特定日志时首先从任意一个区块链获取到元数据,再通过日志存储层获取到n-2f个正确编码块后在客户端解码恢复日志。
10.根据权利要求9所述的一种面向区块链日志存储的高可靠低开销数据存储方法,其特征在于,客户端日志文件存储过程具体步骤为:
A1:将单个日志文件作为输入参数,利用纠删编码函数对日志文件的数据进行编码得到与集群数量相等个数的编码块,并通过hash运算计算校验和;
A2:联盟链节点Ni按照公钥从1到n进行排序,客户端向联盟链节点Ni发送对应的编码块Ci、日志文件的校验、以及编码块Ci的校验,n表示集群数量;
A3:联盟链节点检查编码块是否与校验一致;并确保未曾提交过编码块对应的日志文件;
A4:定义键值对,将编码块中日志文件的校验作为键,并将编码块存储在节点本地的对象数据上,将与日志文件关联的数据作为值,所述的值包括编码后的块文件的数据本身、校验信息,以及涵盖了客户端信息、日志时间戳、应用程序路径信息的元数据,其中所述元数据的值为空时表示日志文件处于准备阶段,尚未被提交;
A5:联盟链节点返回对日志文件的校验信息和编码后的文件校验信息的签名以表明接收到并保存了编码块,客户端会在下一阶段将签名提交,作为节点正常接收的凭证;
A6:检测客户端是否收集到超过n-2f条联盟链节点返回的准备完毕消息,若是,将唤醒主线程;
A7客户端将日志文件元数据以及联盟链节点返回的签名作为交易提交。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111333973.3A CN113986143A (zh) | 2021-11-11 | 2021-11-11 | 一种面向区块链日志存储的高可靠低开销数据存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111333973.3A CN113986143A (zh) | 2021-11-11 | 2021-11-11 | 一种面向区块链日志存储的高可靠低开销数据存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113986143A true CN113986143A (zh) | 2022-01-28 |
Family
ID=79748016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111333973.3A Pending CN113986143A (zh) | 2021-11-11 | 2021-11-11 | 一种面向区块链日志存储的高可靠低开销数据存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986143A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114594911A (zh) * | 2022-03-13 | 2022-06-07 | 西安电子科技大学 | 基于链下纠删码分布式存储的区块链数据存储系统及方法 |
CN115348278A (zh) * | 2022-08-18 | 2022-11-15 | 中山大学 | 区块链的分布式存储方法 |
CN115499453A (zh) * | 2022-06-28 | 2022-12-20 | 重庆邮电大学 | 面向联盟链的分片存储方法 |
CN116028990A (zh) * | 2023-03-30 | 2023-04-28 | 中国科学技术大学 | 一种基于区块链的防篡改隐私保护日志审计方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180191502A1 (en) * | 2015-09-04 | 2018-07-05 | NEC Laboratories Europe GmbH | Method for storing an object on a plurality of storage nodes |
CN109257430A (zh) * | 2018-09-30 | 2019-01-22 | 北京奇虎科技有限公司 | 基于区块链的互联网应用的系统、方法及服务器 |
CN110362536A (zh) * | 2019-07-15 | 2019-10-22 | 北京工业大学 | 基于告警关联的日志密文检索方法 |
CN111986054A (zh) * | 2020-08-18 | 2020-11-24 | 厦门市美亚柏科信息股份有限公司 | 一种全流程在线公证方法及系统 |
-
2021
- 2021-11-11 CN CN202111333973.3A patent/CN113986143A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180191502A1 (en) * | 2015-09-04 | 2018-07-05 | NEC Laboratories Europe GmbH | Method for storing an object on a plurality of storage nodes |
CN109257430A (zh) * | 2018-09-30 | 2019-01-22 | 北京奇虎科技有限公司 | 基于区块链的互联网应用的系统、方法及服务器 |
CN110362536A (zh) * | 2019-07-15 | 2019-10-22 | 北京工业大学 | 基于告警关联的日志密文检索方法 |
CN111986054A (zh) * | 2020-08-18 | 2020-11-24 | 厦门市美亚柏科信息股份有限公司 | 一种全流程在线公证方法及系统 |
Non-Patent Citations (1)
Title |
---|
蔡振华 等: "区块链存储:技术与挑战", 《网络与信息安全学报》, 31 October 2020 (2020-10-31), pages 11 - 20 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114594911A (zh) * | 2022-03-13 | 2022-06-07 | 西安电子科技大学 | 基于链下纠删码分布式存储的区块链数据存储系统及方法 |
CN114594911B (zh) * | 2022-03-13 | 2024-03-29 | 西安电子科技大学 | 基于链下纠删码分布式存储的区块链数据存储系统及方法 |
CN115499453A (zh) * | 2022-06-28 | 2022-12-20 | 重庆邮电大学 | 面向联盟链的分片存储方法 |
CN115499453B (zh) * | 2022-06-28 | 2024-03-12 | 重庆邮电大学 | 面向联盟链的分片存储方法 |
CN115348278A (zh) * | 2022-08-18 | 2022-11-15 | 中山大学 | 区块链的分布式存储方法 |
CN116028990A (zh) * | 2023-03-30 | 2023-04-28 | 中国科学技术大学 | 一种基于区块链的防篡改隐私保护日志审计方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114079660B (zh) | 一种高性能分布式存储区块数据、时间戳、跨链通信与数据协同方法 | |
CN113986143A (zh) | 一种面向区块链日志存储的高可靠低开销数据存储方法 | |
TWI737392B (zh) | 電腦實現的用於由區塊鏈網路的區塊鏈節點在可信賴執行環境tee中處理區塊鏈資料的方法、通信共享區塊鏈資料的系統及用於通信共享區塊鏈資料的裝置 | |
US11196542B2 (en) | Checkpointing for increasing efficiency of a blockchain | |
US10901957B2 (en) | Checkpointing for increasing efficiency of a blockchain | |
Goodson et al. | Efficient Byzantine-tolerant erasure-coded storage | |
TWI729880B (zh) | 可信賴執行環境中基於錯誤校正編碼的共享區塊鏈資料儲存 | |
US20210209131A1 (en) | Method for Data Synchronization of Multiple Nodes and Computer Device | |
TWI720918B (zh) | 基於錯誤校正碼之共用區塊鏈資料儲存的共識 | |
TWI740575B (zh) | 用於優先化共用區塊鏈資料儲存的方法、系統和裝置 | |
TWI759791B (zh) | 基於錯誤校正碼的共享區塊鏈資料儲存的方法、系統及裝置 | |
BR112019015208A2 (pt) | métodos implementado por computador, meios de armazenamento legíveis por computador não transitórios e sistemas | |
CN111177080A (zh) | 一种基于区块链和ipfs的知识图谱存储与验证方法 | |
US20110022883A1 (en) | Method for Voting with Secret Shares in a Distributed System | |
CN114372296B (zh) | 一种基于区块链的用户行为数据审计方法及系统 | |
CN109194646B (zh) | 一种基于区块链的安全认证数据存取方法 | |
EP2457173A2 (en) | System and method for replicating disk images in a cloud computing based virtual machine file system | |
CN114490685A (zh) | 基于区块链和可验证计算的dns数据查询更新方法及系统 | |
JP7159348B2 (ja) | 誤り訂正符号に基づく動的なブロックチェーンデータの記憶 | |
CN110555783B (zh) | 一种基于区块链的电力营销数据保护方法及系统 | |
CN113779146A (zh) | 一种基于区块链的分布式电子证照可验证存储系统 | |
CN116827957B (zh) | 基于多区块链的信息处理方法、装置、设备以及介质 | |
Qi et al. | Blockchain based consensus checking in cloud storage | |
CN116467733A (zh) | 一种基于sgx的安全高可用键值存储方法及系统 | |
CN115328931A (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 |