CN116628083A - 区块链交易数据扩容存储方法及系统 - Google Patents
区块链交易数据扩容存储方法及系统 Download PDFInfo
- Publication number
- CN116628083A CN116628083A CN202310476770.2A CN202310476770A CN116628083A CN 116628083 A CN116628083 A CN 116628083A CN 202310476770 A CN202310476770 A CN 202310476770A CN 116628083 A CN116628083 A CN 116628083A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- storage
- coding
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 239000011159 matrix material Substances 0.000 claims abstract description 98
- 230000008569 process Effects 0.000 claims abstract description 28
- 239000013598 vector Substances 0.000 claims description 36
- 238000012795 verification Methods 0.000 claims description 32
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000013500 data storage Methods 0.000 claims description 9
- 206010000117 Abnormal behaviour Diseases 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 230000000977 initiatory effect Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 241000772415 Neovison vison Species 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910000510 noble metal Inorganic materials 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- 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
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Accounting & Taxation (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及区块链存储技术领域,特别涉及一种区块链交易数据扩容存储方法及系统,依据交易共识过程在区块链系统各区块链节点共识生成一个或多个区块,且每个区块数据中利用区块头链接到前一区块并指定当前区块信息并利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值;基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码,将区块编码后的区块数据分别存储在区块链中区块编码对应存储位置的存储节点,且将一个区块编码后的完整区块数据存储在同一个存储节点,其中,区块编码对应存储位置依据编码前区块号进行分配。本发明在保证存储数据防篡改的同时,可降低节点存储开销,提升数据查询效率,便于区块链系统实时数据查询和溯源的实际应用。
Description
技术领域
本发明涉及区块链存储技术领域,特别涉及一种区块链交易数据扩容存储方法及系统。
背景技术
区块链技术集成了P2P网络、密码学、智能合约及共识算法等多种技术,因其独有的去中心化、可验证、不可篡改等特点,被认为是人类进化史上继血亲信用、贵金属信用、央行纸币信用之后的第四个里程碑。区块链技术通过分布式的账本管理机制和共识机制保证了其存储数据的完整性,同时依靠交易事务的时间戳和背书签名,能够不可抵赖地记录用户的操作行为。其分布式存储及独特优势被越来越多地应用在可信存储及溯源查询等方面。但随着区块链技术的发展及应用,其存在的存储开销大、查询速度慢等不足逐渐暴露,成为制约区块链技术应用落地的新瓶颈。
区块链技术由于具有的去中心化、不可篡改等特性,被越来越多地应用在数据溯源等领域。但由于区块链独特的链式结构,数据的查询需要遍历整个区块链上的区块进行逐一查询,这给区块链带来了较大的查询负担,降低了用户体验。已有区块中的Merkel树虽然可以实现区块数据的快速验证,但其应用范围有限,只能根据已知交易数据位置进行验证,而无法检验某一指定交易是否在区块交易集合中。面对区块链应用中越来越多的实时检索及溯源查询,提高数据溯源查询效率也成为了区块链应用亟待解决的问题。
发明内容
为此,本发明提供一种区块链交易数据扩容存储方法及系统,解决现有区块链存储中不能满足实时检索和溯源查询的情形,对区块进行分组编码,通过将编码后的数据块分别存储于不同位置来保证存储数据防篡改的同时,能够有效降低节点存储开销,提升数据查询效率。
按照本发明所提供的设计方案,提供一种区块链交易数据扩容存储方法,包含:
依据交易共识过程在区块链系统各区块链节点共识生成一个或多个区块,且每个区块数据中利用区块头链接到前一区块并指定当前区块信息并利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值;
基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码,将区块编码后的区块数据分别存储在区块链中区块编码对应存储位置的存储节点,且将一个区块编码后的完整区块数据存储在同一个存储节点,其中,区块编码对应存储位置依据编码前区块号进行分配。
作为本发明区块链交易数据扩容存储方法,进一步地,利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值中,同一区块中对区块交易数据按关键值排序并对分支节点交易数据进行哈希运算,利用布隆过滤器并依据交易数据哈希函数计算得到布隆过滤器二进制数组待加入元素的哈希值索引,在Merkel树分支节点加入子树交易数据关键字最值信息及布隆过滤器二进制数组,在叶子节点存储交易数据的关键字及交易数据哈希值。
作为本发明区块链交易数据扩容存储方法,进一步地,针对区块链系统,区块链节点按不同角色划分为查询节点、存储节点和验证缓存节点,其中,查询节点存储区块头数据信息并验证来自存储节点查询结果的正确性,存储节点存储区块编码数据块及相关存储节点之间的路由信息,验证缓存节点通过接收查询节点查询结果反馈来验证存储节点可靠性并将查询热区块数据信息在本地缓存。
作为本发明区块链交易数据扩容存储方法,进一步地,区块链系统中,针对新加入的区块链节点,首先将其划分为查询节点,并将该新加入的区块链节点与距离最近的存储节点相连。
作为本发明区块链交易数据扩容存储方法,进一步地,针对存储节点,当验证缓存节点通过对存储节点可靠性验证发现当前存储节点有异常行为时,将该当前存储节点角色调整为查询节点,并从与其相连的查询节点中选取表现最优的查询节点,将选取的表现最优的查询节点变更为存储节点,其中,存储节点的异常行为包含:存储区块数据有误及存储节点间消息转发路径不可靠。
作为本发明区块链交易数据扩容存储方法,进一步地,基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码时,将交易数据进行片段分割,且k个连续区块分为一组,并利用柯西矩阵和单位矩阵来构造纠删码的校验矩阵;每组的k个区块数据通过利用校验矩阵编码运算将区块数据转化为编码块数据向量并进行存储,其中,单位矩阵的大小取决于区块数据的片段分割块数k和所需编码数据块数n,且单位矩阵的阶满足n-k。
作为本发明区块链交易数据扩容存储方法,进一步地,针对编码块数据向量的存储,还包含:将校验矩阵划分为有效编码数据块对应校验矩阵一和丢失编码数据块对应校验矩阵二,并将编码块数据向量分为现存编码向量和丢失编码数据向量;依据丢失编码数据来调整校验矩阵和编码块数据向量中数据元素位置,其中,丢失编码数据依据矩阵运算规则,利用校验矩阵一、现存编码向量及校验矩阵二的逆矩阵来计算获取。
作为本发明区块链交易数据扩容存储方法,进一步地,分组编码过程中,设定第m组区块为:Gm={Bm*k,Bm*k+1,...,B(m+1)*k-1},区块Bi表示区块链中第i个区块,则第m组区块的k个区块数据编码结果表示为DBm={DBm*n,DBm*n+1,...,DB(m+1)*n-1},将编码后的数据分别存储在区块链中的n个节点。
作为本发明区块链交易数据扩容存储方法,进一步地,分组编码后编码块数据向量的存储,还包含:设定每组编码数据中前k个编码块分别对应该组编码数据的k个区块数据,根据编码前的区块号对编码数据块存储位置进行分配;其中,分配规则表示为:对于包含N个存储节点的区块链系统,当第m组中的第一个区块Bmk满足r=mk%N时,则将本组内的n个编码数据区块从第r个存储节点开始进行顺序存储。
进一步地,本发明还提供一种区块链交易数据扩容存储系统,包含:数据获取单元和数据存储单元,其中,
数据获取单元,用于依据交易共识过程在区块链系统各区块链节点共识生成一个或多个区块,且每个区块数据中利用区块头链接到前一区块并指定当前区块信息并利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值;
数据存储单元,用于基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码,将区块编码后的区块数据分别存储在区块链中区块编码对应存储位置的存储节点,且将一个区块编码后的完整区块数据存储在同一个存储节点,其中,区块编码对应存储位置依据编码前区块号进行分配。
本发明的有益效果:
本发明基于纠删码的区块存储通过对区块进行分组编码,将编码后的数据块分别存储于不同位置,保证存储数据防篡改的同时,降低了节点存储开销;进一步通过节点角色分类,利用验证缓存节点增加区块缓存机制,实现对频繁查询的热区块快速检索,降低了纠删码编码存储数据重构的延时;结合数据关键字和布隆过滤器设计新的Merkel树结构来改进区块体数据存储结构,在不影响数据验证效率的情况下提高了数据检索查询性能,便于区块链实时检索及溯源查询应用。
附图说明:
图1为实施例中基于纠删码的数据编码过程示意;
图2为实施例中校验矩阵解码分块示意;
图3为实施例中编码数据块存储分配示意;
图4为实施例中角色节点分布示意;
图5为实施例中区块查找流程示意;
图6为实施例中布隆过滤器构建流程示意;
图7为实施例中布隆过滤器查询示意;
图8为实施例中区块交易数据结构示意;
图9为实施例中区块结构示意。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
区块链技术具有的去中心化、可验证、不可篡改等特性有效解决了分布式环境下节点间的信任问题,被誉为继互联网之后的新一代颠覆性核心技术。然而,随着区块链技术的逐渐成熟,各种区块链数据快速增长,这种与日俱增的区块链数据为节点存储与数据查询带来巨大压力。针对区块链存储带来的问题。本发明实施例中,提供一种区块链交易数据扩容存储方法,包含:依据交易共识过程在区块链系统各区块链节点共识生成一个或多个区块,且每个区块数据中利用区块头链接到前一区块并指定当前区块信息并利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值;基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码,将区块编码后的区块数据分别存储在区块链中区块编码对应存储位置的存储节点,且将一个区块编码后的完整区块数据存储在同一个存储节点,其中,区块编码对应存储位置依据编码前区块号进行分配。
本案实施例中,基于纠删码的区块存储通过对区块进行分组编码,将编码后的数据块分别存储于不同位置,保证存储数据防篡改的同时,降低节点存储开销,能够提升数据检索和查询效率。
其中,纠删码(Erasure Coding,EC)是一种用于数据保护的前向错误纠正技术,其将数据分割成片段并将冗余数据块经过扩展、编码后分别存储于不同位置,即使部分数据发生丢失,仍可根据其编码原理逆向恢复全部数据。纠删码通常采用三元组(n,k,m)来表示,其数量关系满足n>k≥m。其中k表示原始数据分块后的块数,n表示原始数据块经编码后形成的编码块数,m表示恢复完整的原始数据所需要的最少编码块个数。当三元组数据中满足k=m时,将达到编码数据冗余最优状态,可将纠删码简单表示为(n,k)的形式。一个(7,4)编码形式的纠删码校验矩阵大小为3×7,如图1所示,数据D={d0,d1,d2,d3}的校验矩阵编码等式,通过图例等式可求出校验数据块{c0,c1,c2},最终得到完整的编码块数据向量
C={d0,d1,d2,d3,c0,c1,c2}。
校验矩阵H由两部分组成,其前半部分是大小为3×4的柯西矩阵P,后半部分为一个单位矩阵。其实柯西矩阵和范德蒙矩阵在构造校验矩阵时没有本质区别,但考虑到柯西矩阵运算复杂度更低,故选择柯西矩阵构造纠删码的校验矩阵。单位矩阵的大小取决于数据的原始分割块数k和所需编码数据块数n,故单位矩阵的阶满足n-k。
原数据块{d0,d1,d2,d3}经校验矩阵编码运算后转化为编码块数据向量C={d0,d1,d2,d3,c0,c1,c2}分别存储于不同位置。知(7,4)形式编码数据最多可容忍三个编码块的丢失,现假设编码块{d1,c0,c2}丢失。
本案实例中,进一步地,针对编码块数据向量的存储,将校验矩阵划分为有效编码数据块对应校验矩阵一和丢失编码数据块对应校验矩阵二,并将编码块数据向量分为现存编码向量和丢失编码数据向量;依据丢失编码数据来调整校验矩阵和编码块数据向量中数据元素位置,其中,丢失编码数据依据矩阵运算规则,利用校验矩阵一、现存编码向量及校验矩阵二的逆矩阵来计算获取。
具体地,首先对校验矩阵及编码向量中数据元素位置进行调整,将丢失的编码数据对应的校验矩阵列放至矩阵最后,将校验矩阵H分为有效编码数据块对应校验矩阵A和丢失编码数据块对应校验矩阵B。如图2所示,同时将编码数据向量分为现存的编码向量e={d0,d2,d3,c1}和丢失的编码数据向量l={d1,c0,c2}。
根据矩阵运算规则可知H×C=A×e+B×l=0,当运算有限域特征值为2时则有A×e=B×l,故我们只需要B的逆矩阵即可求得丢失编码数据向量l=B-1×A×e。计算过程如下:
考虑到区块数据编码及数据恢复开销,本案实施例中,采取区块分组编码存储机制。在区块数据编码阶段采用分组编码机制对多个区块同时进行编码,避免了每生成一个区块就要进行一次编码而造成的区块数据编码开销。另一方面采用分组编码的形式可将一个完整的区块存储在同一节点,降低了区块数据查询时向多个节点发送请求的网络通信开销。
在区块分组过程中,每次将k个连续区块分为一组,第m组区块可表示为:Gm={Bm *k,Bm*k+1,...,B(m+1)*k-1},其中区块Bi表示区块链中第i个区块。根据图1所示的数据块编码过程,将第m组中的k个区块数据进行编码运算,设编码后的数据为DBm={DBm*n,DBm*n+1,...,DB(m+1)*n-1},将编码后的数据分别存储在区块链中的n个全节点中。根据编码原理可知,每组编码数据中前k个编码块分别对应该组的k个区块数据,为避免顺序存储中前k个全节点总是存储区块数据编码块,后n-k个节点只能存储校验数据编码块的弊端,同时考虑到区块查询过程中的查找速度,本案实施例中,根据编码前的区块号对编码数据块存储位置进行分配。对于包含N个存储节点的区块链系统,当第m组中的第一个区块Bmk满足r=mk%N时,则将本组内的n个编码数据区块从第r个存储节点开始进行顺序存储。
例如,当第m组的第一个区块Bmk满足mk%N=1时,将第m组区块编码后的第一个编码数据块存储在编号为1的存储节点,其余编码数据块依次顺序存储,其存储分配过程如3所示。
在保证区块链数据存储可追溯、不可篡改等特性的前提下,为平衡区块存储与读取性能,将区块链系统中节点按照不同角色分为查询节点、存储节点及验证缓存节点三种类型。不同角色节点分布如图4所示。
不同角色中,查询节点只需存储区块头数据信息,用来验证来自存储节点的查询结果的正确性。存储节点用于存储区块编码数据块,同时保存不同存储节点之间的路由信息,当存储节点收到临近查询节点的查询请求时,将其请求转发至相关的存储节点。验证缓存节点与存储节点及查询节点相连,接收查询节点对查询结果的反馈,以验证存储节点的可靠性。同时将查询频繁的热区块数据信息在本地进行缓存,提高部分频繁查询区块的查询效率。在角色分配系统中,任何新加入节点视为查询节点,并与距离最近的存储节点相连,当验证缓存节点发现存储节点作恶或频繁丢失区块数据时,将该存储节点角色调整为查询节点,并从与其相连的查询节点中选取表现优异的查询节点变更为存储节点,同时所有角色的节点均可发起查询请求。其中,区块查找过程可如图5所示,具体实现算法可设计为包含以下六个步骤。
Step1:查询节点p首先向相邻验证缓存节点q查询其缓存队列中是否包含目标区块数据。若包含目标区块数据则将其返回查询节点,区块查询结束,否则执行Step2。
Step2:查询节点p将区块查询请求发送给相邻最近的存储节点i,消息格式为《request,p,i,l,timestamp>,σp>。其中request为请求消息标志,p表示查询节点编号,i表示与查询节点相邻最近存储节点编号,l表示需要查询的区块编号,timestamp表示请求发起时间戳,σp表示查询节点请求消息签名。
Step3:存储节点i收到请求消息后,首先检查消息正确性,然后根据请求消息封装区块查询消息,消息格式为<<query,p,m,seq,j,tIMEstamp>,σi>。其中query为查询消息标志,p表示发起查询请求的节点编号,m表示查询目标区块l所在分组,其计算方式为seq表示查询目标区块l在分组m中的序号,其计算方式为seq=l-mk。j表示存储区块l的存储节点编号,计算方式为j=(mk%N+seq)%N,N为存储节点个数。
Step4:存储节点j收到来自其他节点的查询消息后,按照原消息传递路径返回查询结果,查询结果返回消息格式为《result,j,B,p,timestamp>,σj>。其中result为查询结果消息标志,j表示发起消息的存储节点编号,B表示返回的区块数据,当节点j未存储对应查询区块时B为空值,p表示消息接收节点。
Step5:发起查询请求的节点p收到查询结果后,首先根据签名信息验证结果是否遭受篡改,然后根据本地区块头信息及Merkel山脉验证返回区块数据的真实性,并将验证结果及其证明发送到验证缓存节点。
Step6:验证缓存节点查看返回区块数据的真实性证明及查询消息转发路径上存储节点的路由可靠性。若区块正确则将其保存在验证缓存节点本地的缓存队列,以便下次查询时的快速响应。若区块数据有误或存储节点间消息转发的路由路径不可靠,则将可靠性较低的存储节点降为查询节点,并将与其相连的节点中选取表现优异的查询节点升级为存储节点。区块数据查找如算法1所示:
算法1区块数据查找算法
输入:发起查询的节点p,查询目标区块Bl,缓存区块集合BQ
输出:区块数据DBl
相比于传统区块链副本存储方式,通过编码进行区块数据存储可有效降低区块链存储空间的浪费。但区块链系统中由于恶意节点的存在,造成了一定的丢失区块恢复计算开销。在编码数据块恢复过程中,通过线性变换及伴随矩阵等方式求解逆矩阵造成较高的计算时间延迟,本案实施例中,可采用先对矩阵分解再分别求逆矩阵这种分而治之的思想,降低矩阵求逆的复杂度及时间延迟开销。
根据LU矩阵分解性质可知,一个n阶的非奇异矩阵A可分解为一个下三角矩阵L和一个上三角矩阵U。根据编码过程中校验矩阵构造原则可知,校验矩阵H中任一个n阶方阵A均满足|A|≠0,故方阵A的LU分解存在且唯一。其分解求逆矩阵过程如下:
根据高斯消元法,可得方阵A的LU分解的唯一结果,其中上三角矩阵U按照行迭代计算,下三角矩阵L按照列进行迭代计算,上下三角矩阵交错计算过程如下:
根据三角矩阵求逆运算,上三角矩阵U的逆矩阵H各元素计算方式如下:
根据矩阵求逆及转置运算性质,可将下三角矩阵L转换成上三角矩阵LT在进行求逆运算,其过程如下:
L-1=((LT)T)-1=((LT)-1)T
根据矩阵求逆运算公式A-1=(LU)-1=U-1L-1得到矩阵A的逆矩阵。最后根据图2中编码数据的解码过程,求出丢失区块的数据信息完成数据恢复。
在进行集合中数据查询时,通常选择将数据的摘要信息存储在索引表中,然后通过查询索引表来判断目标数据是否存在于集合中。在这种模式下,当数据量较大时,一个完整的哈希表无法存储在内存中,这将导致数据查询过程中需要频繁地在内存及二级存储之间切换,增大了数据查询消耗。针对上述问题,布隆过滤器概念被提出。布隆过滤器是由一定长度的二进制数组和一组随机且相互独立的哈希函数组成的概率型数据结构,借其具有占用空间少,查询效率高等优点。
布隆过滤器通过牺牲查询准确率来换取空间效率,具有单向误判性的特点。针对一个大型的数据集合D={d1,d1,...,dn},通过布隆过滤器能够在短的长时间内判断一个元素d是否属于集合D(d∈D?)。如果元素d在集合D中,则一定能够返回正确结果,即d∈D。当查询结果返回元素不在集合中时,则元素一定不在集合中,但是当时,查询结果也可能会返回d∈D,这种单向误判性也称为假阳性。其真实情况与可能的查询结果对应情况如下表。
表I查询结果与真实情况对应表
布隆过滤器根据其工作过程可分为元素插入和元素查找两个阶段。初始时,将布隆过滤器的m为二进制向量全部置为0,每个待插入集合中的元素通过k个哈希函数计算元素的索引值,并将二进制向量中对应的k位设为1。本案实施例中,可采用计算速度较快的MurmurHash3哈希函数为种子函数,通过Hk=MurmurHash3(d+k)来派生k个哈希函数。在二进制向量长度为16,哈希函数个数为4时,元素加入集合过程中,布隆过滤器构建如图6所示,(a)为初始化布隆过滤器过程,(b)中根据哈希函数计算待加入元素d的索引值Hi(i∈[1,k]),例如H1(d)=5,则将二进制向量的第5位设为1。
在元素查找阶段,对于一个给定的布隆过滤器二进制向量表,进行元素查找时,首先计算待查找元素的k个索引值Hi(i∈[1,k]),然后按照索引值逐一比较对应二进制位上的比特,只要索引值对应的二进制向量位中有一个比特位为0,则说明该元素一定不在集合中,若全部为1则说明元素可能在集合中。元素查找过程如图7所示,其中,(a)中由于所有的哈希索引对应位置均位1,故元素di可能存在于集合中,(b)中由于存在哈希索引对应位置为0,故元素dj一定不在查询集合中。
为实现交易数据的键值检索查询,本案实施例中,可在交易数据结构引入键值关键字,交易数据结构如8所示。交易数据包含交易头和交易数据两部分内容。在交易头中,version表示交易发生时采用的区块链协议版本号,preBH表示交易输入数据所在区块块号,preLocation表示交易输入数据的交易号,nowPk表示当前数据拥有者的公钥,lastSk表示交易输入数据拥有者的私钥,timestamp为交易发生时间。在交易数据中,Key表示数据关键字,同一数据的关键字唯一。Seq为同一关键字数据的流转编号,在数据溯源过程中,用于记录数据历史演变过程。Data为交易数据,对于内存较大的交易数据,此处可存储磁盘文件中的交易索引,在数据查询时根据索引信息在磁盘文件中读取相关交易数据。
在已有的区块链结构中,每个区块通常由区块头和区块体两部分组成。区块头中包含有用于链式链接到前一区块的前区块哈希值、指定当前区块链版本信息的版本号、标志着区块产生时间的时间戳、当前区块产生所需随机数、表示区块产生难度值的目标哈希值以及用于区块交易验证的Merkel树根哈希值MTR。区块体中存储的多个不同交易自下而上每两个进行哈希运算得到Merkel根哈希值。这种存储方式可以保证轻节点即使不存储完整的区块交易数据,也可以通过哈希运算验证交易数据是否遭到篡改。
然而,Merkel树只能进行验证已存储交易是否遭受篡改,却不能验证交易是否存在,且不支持数据的键值查询,降低了区块链数据的查询性能。针对这些问题,本案实施例中,可对区块体中Merkel树结构进行改进,区块结构如图9所示。利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值中,同一区块中对区块交易数据按关键值排序并对分支节点交易数据进行哈希运算,利用布隆过滤器并依据交易数据哈希函数计算得到布隆过滤器二进制数组待加入元素的哈希值索引,在Merkel树分支节点加入子树交易数据关键字最值信息及布隆过滤器二进制数组,在叶子节点存储交易数据的关键字及交易数据哈希值。
根据哈希函数性质可知,在区块体中对于不同的交易排序,其最终构造的Merkel树根哈希值也将不相同。在改进的区块体中,同一区块中的交易根据其交易数据中的关键值进行排序,然后进行再进行哈希运算,并在Merkel树分支节点加入其子树中交易数据关键字的最值信息及布隆过滤器二进制数组。其中minK表示分支节点子树交易数据中的最小关键字,maxK表示分支节点子树交易数据中的最大关键字。叶子节点中只需存储交易数据的关键字及交易数据哈希值。其分支节点哈希值计算方式为:
Hash(i-j)=Hash(left.minK,left.Hash,left.maxK,left.bits,right.minK,right.Hash,right.maxK,right.bits)
由于布隆过滤器存在假阳性且主要用来快速判断元素是否在给定集合中,而无法返回元素数据。通过在Merkel树的分支节点加入布隆过滤器实现对交易是否在区块中的快速验证,通过在分支节点加入交易数据关键字,实现区块交易的关键字查询及范围查询。此外通过Merkel树各层分支节点上的布隆过滤器验证,能够有效降低交易是否存在的误判率。两者的结合不仅加快了交易是否存在的判断,而且提高了交易数据读取效率。
根据区块结构,在设计关键字及布隆过滤器结合的快速查找验证算法时,当返回查询的区块后,首先根据布隆过滤器判断查询交易是否存在于区块中,若交易不存在则说明返回区块有误,则无需再根据关键字查询数据,直接向验证缓存节点发送交易不存在证明,并降低相关节点的可靠性值。如果布隆过滤器验证数据存在,而查询关键字不在分值节点最值范围中,则同样向验证缓存节点进行错误反馈。若布隆过滤器验证无误,且查询关键字在分支节点最值范围中,则根据查询关键字大小在分支节点的其中一个子树中继续进行查找。如果目标关键字在左节点最值范围内,则在左子树进行数据查找,如果在右节点最值范围内,则在右子树进行目标数据查找。按照关键字排序后的Merkel树在查找过程中其效率等效于二分查找,提高了交易数据查找效率。对于已有区块,交易数据查找如算法2所示。
算法2交易数据查找算法
输入:查询关键字key,区块数据Db
输出:交易数据TxData及验证路径Path
交易数据查询算法执行结束后,验证路径中依次存储验证路径数据。在图9所示的数据结构中,当根据关键字key4查找交易Tx4的数据时,验证路径Path={node1-2,node3,Tx4}。在进行验证时,首先在验证路径最后一个交易数据Tx4及查询关键字key4进行哈希运算,得到Hashnode4=Hash(Tx4&key4),然后将其运算结果与验证路径中的前一个数据进行合并运算Hashnode3-4=Hash(node3&node4)。依次类推,直至将验证路径中的数据全部合并,并将最终哈希值与区块头中的Merkel树根MTR进行比较,若相等则说明查询得到的交易数据TxData未发生篡改,否则说明查询得到的交易数据已遭受篡改,并向验证缓存节点反馈查询结果。
本案实施例中,通过采用校验矩阵的区块分组编码存储的方案,明确编码数据存储位置分配,进一步通过对系统节点角色分类,将查询频繁的热区块数据通过验证缓存节点进行缓存,能够降低编码数据重构带来的时延开销,并提高区块交易数据查询效率,便于区块链技术在可信存储及溯源查询等场景中的应用。
进一步地,基于上述的方法,本发明实施例还提供一种区块链交易数据扩容存储系统,包含:数据获取单元和数据存储单元,其中,
数据获取单元,用于依据交易共识过程在区块链系统各区块链节点共识生成一个或多个区块,且每个区块数据中利用区块头链接到前一区块并指定当前区块信息并利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值;
数据存储单元,用于基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码,将区块编码后的区块数据分别存储在区块链中区块编码对应存储位置的存储节点,且将一个区块编码后的完整区块数据存储在同一个存储节点,其中,区块编码对应存储位置依据编码前区块号进行分配。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的各实例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已按照功能一般性地描述了各示例的组成及步骤。这些功能是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不认为超出本发明的范围。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如:只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种区块链交易数据扩容存储方法,其特征在于,包含:
依据交易共识过程在区块链系统各区块链节点共识生成一个或多个区块,且每个区块数据中利用区块头链接到前一区块并指定当前区块信息并利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值;
基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码,将区块编码后的区块数据分别存储在区块链中区块编码对应存储位置的存储节点,且将一个区块编码后的完整区块数据存储在同一个存储节点,其中,区块编码对应存储位置依据编码前区块号进行分配。
2.根据权利要求1所述的区块链交易数据扩容存储方法,其特征在于,利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值中,同一区块中对区块交易数据按关键值排序并对分支节点交易数据进行哈希运算,利用布隆过滤器并依据交易数据哈希函数计算得到布隆过滤器二进制数组待加入元素的哈希值索引,在Merkel树分支节点加入子树交易数据关键字最值信息及布隆过滤器二进制数组,在叶子节点存储交易数据的关键字及交易数据哈希值。
3.根据权利要求1或2所述的区块链交易数据扩容存储方法,其特征在于,针对区块链系统,区块链节点按不同角色划分为查询节点、存储节点和验证缓存节点,其中,查询节点存储区块头数据信息并验证来自存储节点查询结果的正确性,存储节点存储区块编码数据块及相关存储节点之间的路由信息,验证缓存节点通过接收查询节点查询结果反馈来验证存储节点可靠性并将查询热区块数据信息在本地缓存。
4.根据权利要求3所述的区块链交易数据扩容存储方法,其特征在于,区块链系统中,针对新加入的区块链节点,首先将其划分为查询节点,并将该新加入的区块链节点与距离最近的存储节点相连。
5.根据权利要求3所述的区块链交易数据扩容存储方法,其特征在于,针对存储节点,当验证缓存节点通过对存储节点可靠性验证发现当前存储节点有异常行为时,将该当前存储节点角色调整为查询节点,并从与其相连的查询节点中选取表现最优的查询节点,将选取的表现最优的查询节点变更为存储节点,其中,存储节点的异常行为包含:存储区块数据有误及存储节点间消息转发路径不可靠。
6.根据权利要求1所述的区块链交易数据扩容存储方法,其特征在于,基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码时,将交易数据进行片段分割,且k个连续区块分为一组,并利用柯西矩阵和单位矩阵来构造纠删码的校验矩阵;每组的k个区块数据通过利用校验矩阵编码运算将区块数据转化为编码块数据向量并进行存储,其中,单位矩阵的大小取决于区块数据的片段分割块数k和所需编码数据块数n,且单位矩阵的阶满足n-k。
7.根据权利要求6所述的区块链交易数据扩容存储方法,其特征在于,针对编码块数据向量的存储,还包含:将校验矩阵划分为有效编码数据块对应校验矩阵一和丢失编码数据块对应校验矩阵二,并将编码块数据向量分为现存编码向量和丢失编码数据向量;依据丢失编码数据来调整校验矩阵和编码块数据向量中数据元素位置,其中,丢失编码数据依据矩阵运算规则,利用校验矩阵一、现存编码向量及校验矩阵二的逆矩阵来计算获取。
8.根据权利要求1或6所述的区块链交易数据扩容存储方法,其特征在于,分组编码过程中,设定第m组区块为:Gm={Bm*k,Bm*k+1,...,B(m+1)*k-1},区块Bi表示区块链中第i个区块,则第m组区块的k个区块数据编码结果表示为DBm={DBm*n,DBm*n+1,...,DB(m+1)*n-1},将编码后的数据分别存储在区块链中的n个节点。
9.根据权利要求8所述的区块链交易数据扩容存储方法,其特征在于,分组编码后编码块数据向量的存储,还包含:设定每组编码数据中前k个编码块分别对应该组编码数据的k个区块数据,根据编码前的区块号对编码数据块存储位置进行分配;其中,分配规则表示为:对于包含N个存储节点的区块链系统,当第m组中的第一个区块Bmk满足r=mk%N时,则将本组内的n个编码数据区块从第r个存储节点开始进行顺序存储。
10.一种区块链交易数据扩容存储系统,其特征在于,包含:数据获取单元和数据存储单元,其中,
数据获取单元,用于依据交易共识过程在区块链系统各区块链节点共识生成一个或多个区块,且每个区块数据中利用区块头链接到前一区块并指定当前区块信息并利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值;
数据存储单元,用于基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码,将区块编码后的区块数据分别存储在区块链中区块编码对应存储位置的存储节点,且将一个区块编码后的完整区块数据存储在同一个存储节点,其中,区块编码对应存储位置依据编码前区块号进行分配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310476770.2A CN116628083B (zh) | 2023-04-27 | 2023-04-27 | 区块链交易数据扩容存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310476770.2A CN116628083B (zh) | 2023-04-27 | 2023-04-27 | 区块链交易数据扩容存储方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116628083A true CN116628083A (zh) | 2023-08-22 |
CN116628083B CN116628083B (zh) | 2024-05-24 |
Family
ID=87635584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310476770.2A Active CN116628083B (zh) | 2023-04-27 | 2023-04-27 | 区块链交易数据扩容存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116628083B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116993505A (zh) * | 2023-09-25 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 交易处理方法、装置、电子设备及存储介质 |
CN117407467A (zh) * | 2023-12-15 | 2024-01-16 | 烟台大学 | 结合布隆过滤器与dht的区块链编码存储系统 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542979A (zh) * | 2018-11-19 | 2019-03-29 | 广州矩阵信息科技有限公司 | 一种区块链系统快速同步及简精数据存储的方式 |
WO2019140555A1 (zh) * | 2018-01-16 | 2019-07-25 | 华为技术有限公司 | 一种区块链构建方法及区块链节点 |
US20200136799A1 (en) * | 2019-12-20 | 2020-04-30 | Intel Corporation | Methods and apparatus to determine provenance for data supply chains |
CN112181307A (zh) * | 2020-10-13 | 2021-01-05 | 宁波金狮科技有限公司 | 基于区块链的分布式数据冗余存储方法和电子设备 |
CN112732803A (zh) * | 2021-04-06 | 2021-04-30 | 北京万物智链科技有限公司 | 一种共识区块链交易查询验证方法及系统 |
CN113852691A (zh) * | 2021-09-24 | 2021-12-28 | 支付宝(杭州)信息技术有限公司 | 一种区块链的共识方法、共识节点及电子设备 |
CN114331395A (zh) * | 2021-12-22 | 2022-04-12 | 南京航空航天大学 | 一种基于纠删码的区块链数据分组存储优化结构及方法 |
CN114594911A (zh) * | 2022-03-13 | 2022-06-07 | 西安电子科技大学 | 基于链下纠删码分布式存储的区块链数据存储系统及方法 |
CN114881654A (zh) * | 2022-05-18 | 2022-08-09 | 天津大学 | 一种基于基数估计方法的高效区块链交易查询技术 |
CN114915377A (zh) * | 2022-05-12 | 2022-08-16 | 中国人民解放军国防科技大学 | 一种基于喷泉码的联盟链存储系统 |
CN115348278A (zh) * | 2022-08-18 | 2022-11-15 | 中山大学 | 区块链的分布式存储方法 |
CN115599794A (zh) * | 2022-09-29 | 2023-01-13 | 中国人民解放军战略支援部队信息工程大学(Cn) | 跨区块链的联合溯源方法及系统 |
CN115913802A (zh) * | 2021-08-10 | 2023-04-04 | 中移(杭州)信息技术有限公司 | 业务数据处理方法、装置、电子设备和存储介质 |
CN115987799A (zh) * | 2021-10-14 | 2023-04-18 | 中移(苏州)软件技术有限公司 | 一种区块链二层网络的扩容方法、装置及设备 |
-
2023
- 2023-04-27 CN CN202310476770.2A patent/CN116628083B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019140555A1 (zh) * | 2018-01-16 | 2019-07-25 | 华为技术有限公司 | 一种区块链构建方法及区块链节点 |
CN109542979A (zh) * | 2018-11-19 | 2019-03-29 | 广州矩阵信息科技有限公司 | 一种区块链系统快速同步及简精数据存储的方式 |
US20200136799A1 (en) * | 2019-12-20 | 2020-04-30 | Intel Corporation | Methods and apparatus to determine provenance for data supply chains |
CN112181307A (zh) * | 2020-10-13 | 2021-01-05 | 宁波金狮科技有限公司 | 基于区块链的分布式数据冗余存储方法和电子设备 |
CN112732803A (zh) * | 2021-04-06 | 2021-04-30 | 北京万物智链科技有限公司 | 一种共识区块链交易查询验证方法及系统 |
CN115913802A (zh) * | 2021-08-10 | 2023-04-04 | 中移(杭州)信息技术有限公司 | 业务数据处理方法、装置、电子设备和存储介质 |
CN113852691A (zh) * | 2021-09-24 | 2021-12-28 | 支付宝(杭州)信息技术有限公司 | 一种区块链的共识方法、共识节点及电子设备 |
CN115987799A (zh) * | 2021-10-14 | 2023-04-18 | 中移(苏州)软件技术有限公司 | 一种区块链二层网络的扩容方法、装置及设备 |
CN114331395A (zh) * | 2021-12-22 | 2022-04-12 | 南京航空航天大学 | 一种基于纠删码的区块链数据分组存储优化结构及方法 |
CN114594911A (zh) * | 2022-03-13 | 2022-06-07 | 西安电子科技大学 | 基于链下纠删码分布式存储的区块链数据存储系统及方法 |
CN114915377A (zh) * | 2022-05-12 | 2022-08-16 | 中国人民解放军国防科技大学 | 一种基于喷泉码的联盟链存储系统 |
CN114881654A (zh) * | 2022-05-18 | 2022-08-09 | 天津大学 | 一种基于基数估计方法的高效区块链交易查询技术 |
CN115348278A (zh) * | 2022-08-18 | 2022-11-15 | 中山大学 | 区块链的分布式存储方法 |
CN115599794A (zh) * | 2022-09-29 | 2023-01-13 | 中国人民解放军战略支援部队信息工程大学(Cn) | 跨区块链的联合溯源方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116993505A (zh) * | 2023-09-25 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 交易处理方法、装置、电子设备及存储介质 |
CN116993505B (zh) * | 2023-09-25 | 2024-01-16 | 腾讯科技(深圳)有限公司 | 交易处理方法、装置、电子设备及存储介质 |
CN117407467A (zh) * | 2023-12-15 | 2024-01-16 | 烟台大学 | 结合布隆过滤器与dht的区块链编码存储系统 |
CN117407467B (zh) * | 2023-12-15 | 2024-03-22 | 烟台大学 | 结合布隆过滤器与dht的区块链编码存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116628083B (zh) | 2024-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116628083B (zh) | 区块链交易数据扩容存储方法及系统 | |
CN111902817B (zh) | 基于共享节点和纠错编码的区块链数据存储 | |
Goodrich et al. | Efficient authenticated dictionaries with skip lists and commutative hashing | |
CN113326317A (zh) | 基于同构多链架构的区块链存证方法及系统 | |
EP3794770B1 (en) | Shared blockchain data storage based on error correction code | |
CN109194646B (zh) | 一种基于区块链的安全认证数据存取方法 | |
CN113535706B (zh) | 两阶段布谷鸟过滤器及基于两阶段布谷鸟过滤器的重复数据删除方法 | |
CN109586896B (zh) | 一种基于哈希前缀树的数据完整性验证方法 | |
KR20210045353A (ko) | 인코딩된 블록체인 데이터의 인덱싱 및 복구 | |
CN112286963B (zh) | 一种区块链终端数据可信查询系统及其实现方法 | |
CN105356892B (zh) | 网络编码的方法及系统 | |
CN111033491A (zh) | 基于纠错编码存储共享的区块链数据 | |
EP3769235B1 (en) | Dynamic blockchain data storage based on error correction code | |
CN112202703A (zh) | 基于冗余余数系统的区块链存储优化方法 | |
CN111224747A (zh) | 可降低修复带宽和磁盘读取开销的编码方法及其修复方法 | |
CN112365247A (zh) | 基于余数系统与raft算法的区块链存储优化方法 | |
Pi et al. | xFabLedger: Extensible Ledger Storage for Hyperledger Fabric | |
CN113535803B (zh) | 一种基于关键字索引的区块链高效检索及可靠性验证方法 | |
CN113382408A (zh) | 一种基于布隆过滤器的传感器溯源编码方法 | |
CN107451178B (zh) | 保持区块链即有区块体数据的区块链勘误方法及系统 | |
CN114144775A (zh) | 总账可验证修剪系统 | |
CN112307127B (zh) | 一种物流区块链数据存储方法和系统 | |
CN117349860B (zh) | 一种基于矩阵变化和数据切分的文件存储系统及方法 | |
CN116521685A (zh) | 一种面向存储可扩展的联盟链分片方法 | |
Aditya et al. | Employing bloom filters for enforcing integrity of outsourced databases in cloud environments |
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 |