CN112685422A - 一种处理utxo数据库的方法、装置及电子设备 - Google Patents
一种处理utxo数据库的方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112685422A CN112685422A CN202011640960.6A CN202011640960A CN112685422A CN 112685422 A CN112685422 A CN 112685422A CN 202011640960 A CN202011640960 A CN 202011640960A CN 112685422 A CN112685422 A CN 112685422A
- Authority
- CN
- China
- Prior art keywords
- information
- target
- compressed information
- transaction
- processing
- 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 59
- 238000007906 compression Methods 0.000 claims description 35
- 230000006835 compression Effects 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 19
- 230000006870 function Effects 0.000 claims description 13
- 238000012795 verification Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种处理UTXO数据库的方法、装置及电子设备,其中,该方法包括:获取待存储的交易信息,交易信息包括输入部分和输出部分;对输入部分进行压缩处理,生成压缩信息;根据预设的哈希函数对账户地址进行哈希处理,将哈希处理结果作为地址指针,并将账户地址存储到地址指针对应的位置;将压缩信息作为键、将地址指针和其他信息作为值生成键值对,并将键值对存储至UTXO数据库。通过本发明实施例提供的处理UTXO数据库的方法、装置及电子设备,可以对交易信息进行压缩后再存储到UTXO数据库中,且账户地址唯一的存储到地址指针对应的位置处即可,不需要重复记录账户地址,大大减小了UTXO数据库所占的存储空间。
Description
技术领域
本发明涉及区块链技术领域,具体而言,涉及一种处理UTXO数据库的方法、装置、电子设备及计算机可读存储介质。
背景技术
在以UTXO(Unspent Transaction Output,未花费的交易输出)为基础的区块链(比如比特币)中,验证过程是使用UTXO中的记录作为判断交易是否有效的证据的过程——交易的所有输入都必须在UTXO数据库中才能有效。典型的UTXO区块链验证过程为:交易(缩写TX)由输入和输出两部分组成。输入部分主要包括支付和签名的输入交易信息,输出部分包括验证签名的用户账户地址、硬币价值等。为了提高效率,将UTXO集加载到键-值(K-V)数据库中,其中的键(K)对应输入部分,值(V)对应输出部分。当节点接收到一个新的交易时,它将通过输入部分中的键查询UTXO数据库,检查输入交易是否在UTXO集合中,如果是,UTXO数据库将返回一个输出部分用于后续的签名验证。
然而,随着UTXO集大小的急剧增加,小型计算机很难将整个UTXO集存储在DRAM(Dynamic Random Access Memory,动态随机存取存储器)中。大型UTXO集必须存储在低速磁盘中,验证事务将花费大量时间,因为磁盘访问延迟比DRAM长几个数量级。UTXO集规模的不断扩大将很快成为节点及时验证大容量事务的最大障碍,并最终成为实现高吞吐量区块链的瓶颈。
发明内容
为解决现有UTXO数据库占用空间较大的技术问题,本发明实施例提供一种处理UTXO数据库的方法、装置、电子设备及计算机可读存储介质。
第一方面,本发明实施例提供了一种处理UTXO数据库的方法,包括:
获取待存储的交易信息,所述交易信息包括输入部分和输出部分,所述输出部分包括账户地址和除所述账户地址之外的其他信息;
对所述输入部分进行压缩处理,生成压缩信息,所述压缩信息的长度小于所述输入部分的长度;
根据预设的哈希函数对所述账户地址进行哈希处理,将哈希处理结果作为地址指针,并将所述账户地址存储到所述地址指针对应的位置;
将所述压缩信息作为键、将所述地址指针和所述其他信息作为值生成键值对,并将所述键值对存储至UTXO数据库。
第二方面,本发明实施例还提供了一种处理UTXO数据库的装置,包括:
获取模块,用于获取待存储的交易信息,所述交易信息包括输入部分和输出部分,所述输出部分包括账户地址和除所述账户地址之外的其他信息;
压缩模块,用于对所述输入部分进行压缩处理,生成压缩信息,所述压缩信息的长度小于所述输入部分的长度;
账户地址处理模块,用于根据预设的哈希函数对所述账户地址进行哈希处理,将哈希处理结果作为地址指针,并将所述账户地址存储到所述地址指针对应的位置;
存储模块,用于将所述压缩信息作为键、将所述地址指针和所述其他信息作为值生成键值对,并将所述键值对存储至UTXO数据库。
第三方面,本发明实施例提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述收发器、所述存储器和所述处理器通过所述总线相连,所述计算机程序被所述处理器执行时实现上述任意一项所述的处理UTXO数据库的方法中的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的处理UTXO数据库的方法中的步骤。
本发明实施例提供的处理UTXO数据库的方法、装置、电子设备及计算机可读存储介质,将交易信息的输入部分进行压缩,将输出部分的账户地址映射为存储空间更小的地址指针,并将账户地址存储到相应的地址指针处;该方法可以对交易信息进行压缩后再存储到UTXO数据库中,且账户地址唯一的存储到地址指针对应的位置处即可,不需要重复记录账户地址,大大减小了UTXO数据库所占的存储空间。
附图说明
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
图1示出了本发明实施例所提供的一种处理UTXO数据库的方法的流程图;
图2示出了本发明实施例所提供的一种处理UTXO数据库的装置的结构示意图;
图3示出了本发明实施例所提供的一种用于执行处理UTXO数据库的方法的电子设备的结构示意图。
具体实施方式
在本发明实施例的描述中,所属技术领域的技术人员应当知道,本发明实施例可以实现为方法、装置、电子设备及计算机可读存储介质。因此,本发明实施例可以具体实现为以下形式:完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、硬件和软件结合的形式。此外,在一些实施例中,本发明实施例还可以实现为在一个或多个计算机可读存储介质中的计算机程序产品的形式,该计算机可读存储介质中包含计算机程序代码。
上述计算机可读存储介质可以采用一个或多个计算机可读存储介质的任意组合。计算机可读存储介质包括:电、磁、光、电磁、红外或半导体的***、装置或器件,或者以上任意的组合。计算机可读存储介质更具体的例子包括:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存(Flash Memory)、光纤、光盘只读存储器(CD-ROM)、光存储器件、磁存储器件或以上任意组合。在本发明实施例中,计算机可读存储介质可以是任意包含或存储程序的有形介质,该程序可以被指令执行***、装置、器件使用或与其结合使用。
上述计算机可读存储介质包含的计算机程序代码可以用任意适当的介质传输,包括:无线、电线、光缆、射频(Radio Frequency,RF)或者以上任意合适的组合。
可以以汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,例如:Java、Smalltalk、C++,还包括常规的过程式程序设计语言,例如:C语言或类似的程序设计语言。计算机程序代码可以完全的在用户计算机上执行、部分的在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行以及完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括:局域网(LAN)或广域网(WAN),可以连接到用户计算机,也可以连接到外部计算机。
本发明实施例通过流程图和/或方框图描述所提供的方法、装置、电子设备。
应当理解,流程图和/或方框图的每个方框以及流程图和/或方框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机可读程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或方框图中的方框规定的功能/操作的装置。
也可以将这些计算机可读程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储介质中。这样,存储在计算机可读存储介质中的指令就产生出一个包括实现流程图和/或方框图中的方框规定的功能/操作的指令装置产品。
也可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程数据处理装置上执行的指令能够提供实现流程图和/或方框图中的方框规定的功能/操作的过程。
下面结合本发明实施例中的附图对本发明实施例进行描述。
图1示出了本发明实施例所提供的一种处理UTXO数据库的方法的流程图。该方法通过对交易信息压缩再存储的方式,将交易信息存储到UTXO数据库中,如图1所示,该方法包括:
步骤101:获取待存储的交易信息,交易信息包括输入部分和输出部分,输出部分包括账户地址和除账户地址之外的其他信息。
本发明实施例中,交易信息为区块链发生交易时生成的信息,若需要将该交易信息存储到UTXO数据库中,则该交易信息即为待存储的交易信息。其中,该交易信息可以实时生成的,也可以是从其他UTXO数据库中存储的历史数据,本实施例对此不做限定。
本发明实施例中,该交易信息包括输入部分和输出部分,该输入部分即为交易信息的键、输出部分为交易信息的值。具体地,输入部分包括交易标识(Transaction ID,也称为交易ID)和交易索引(Index);其中,Transaction ID通常源自交易信息的SHA-2(SecureHash Algorithm 2,安全散列算法2)哈希,其一般是一个32字节的哈希值。Index是一个4字节的值,用于指示输出部分在交易中的位置。输出部分包括20字节的账户地址(accountaddress)、2字节的硬币价值、3字节的块高度等,本实施例中将除账户地址之外的信息统称为其他信息,即该其他信息包括硬币价值、块高度等。
步骤102:对输入部分进行压缩处理,生成压缩信息,该压缩信息的长度小于输入部分的长度。
本发明实施例中,对交易信息的输入部分和输出部分分别进行处理,以减少交易信息所占的存储空间。具体地,对输入部分进行压缩处理来生成长度更小的压缩信息;其中,输入部分与该压缩信息之间期望为一一对应关系,即一个输入部分对应唯一的压缩信息。其中,可以对该输入部分进行哈希处理,通过更短的哈希值来代替该输入部分,该更短的哈希值即为压缩信息。或者,可以对输入部分中的一部分信息进行哈希处理,可选地,上述步骤“对输入部分进行压缩处理,生成压缩信息”包括:
步骤A1:对交易标识进行哈希处理,生成第一子压缩信息,第一子压缩信息的长度小于交易标识的长度。
步骤A2:对交易索引进行取余处理,生成第二子压缩信息,第二子压缩信息的长度小于交易索引的长度。
步骤A3:根据第一子压缩信息和第二子压缩信息生成压缩信息。
本发明实施例中,交易标识为32字节的哈希值,此时可以再次对该交易标识进行哈希处理,只是采用输出字节更短的哈希算法,例如SHA-1(输出为20字节)或者MD5(输出为16字节)等,从而可以将交易标识转换为长度更小的第一子压缩信息。
对于4字节的交易索引,则采用取余处理,将余数作为第二压缩子信息。其中,取余处理时的除数可根据实际情况而定,例如,可以将2^16=65536作为除数,通过求余数即可完成散列,将4字节的交易索引变成2字节的第二压缩子信息。在对交易标识和交易索引均压缩后,生成最终的压缩信息。
步骤103:根据预设的哈希函数对账户地址进行哈希处理,将哈希处理结果作为地址指针,并将账户地址存储到地址指针对应的位置。
本发明实施例中,交易信息的输出部分包括账户地址和其他信息,而该账户地址为20字节的信息,其所占空间较大,占输出部分整体的70%以上;此外,由于同一个账户可以发起或接收多起交易,使得不同交易信息中输出部分的账户地址可能是相同的,传统UTXO数据库直接存储该交易信息,会导致重复存储账户地址的问题,占用UTXO数据库过多的空间。本发明实施例中通过哈希处理的方式,将该账户地址映射为地址指针,一般指针是4字节的,即可以将20字节的账户地址映射为4字节的地址指针,大大缩小所占空间;同时,将该账户地址存储到地址指针对应的存储位置,从而可以只存储一份账户地址即可,不需要每有相关的交易信息即记录一次账户地址,进一步缩小所占空间,且通过地址指针可以索引到账户地址,不影响查询账户地址。
步骤104:将压缩信息作为键、将地址指针和其他信息作为值生成键值对,并将键值对存储至UTXO数据库。
本发明实施例中,传统UTXO数据库也是以键值对形式存储交易信息的,但其直接存储交易信息的输入部分(键)和输出部分(值);本实施例中,将输入部分压缩后的压缩信息作为键,将输出部分中的账户地址换成地址指针作为值,从而生成所占空间更小的键值对,并存入UTXO数据库,使得UTXO数据库利用该压缩后的键值对以及存有所有账户地址的存储空间即可实现对原有交易信息的记录,且可以大大节省空间。
本发明实施例提供的一种处理UTXO数据库的方法,将交易信息的输入部分进行压缩,将输出部分的账户地址映射为存储空间更小的地址指针,并将账户地址存储到相应的地址指针处;该方法可以对交易信息进行压缩后再存储到UTXO数据库中,且账户地址唯一的存储到地址指针对应的位置处即可,不需要重复记录账户地址,大大减小了UTXO数据库所占的存储空间。
在上述实施例的基础上,由于交易信息是海量的,在对交易信息进行压缩时,可能存在碰撞的问题,即不同交易信息(或输入部分)压缩后的结果相同,本实施例通过建立碰撞表来解决该问题。具体地,上上述步骤104“在生成键值对”之前,该方法还包括:
步骤B1:判断压缩信息与其他压缩信息是否发生碰撞。
步骤B2:若发生碰撞,将压缩信息以及与压缩信息发生碰撞的其他压缩信息对应的交易信息存储到碰撞表中。
步骤B3:若未发生碰撞,则执行生成键值对的过程,即执行步骤104。
本发明实施例中,若压缩信息与其他压缩信息碰撞,则将相应的交易信息存储到碰撞表中,即仍然按照传统方式将完整的交易信息进行存储。其中,需要把与该压缩信息以及发生碰撞的其他压缩信息对应的交易信息均存储到碰撞表中。例如,交易信息A的压缩信息与交易信息B的压缩信息相同,则交易信息A和交易信息B均存储到碰撞表中。如果未发生碰撞,则说明该交易信息可以通过压缩的形式存储到UTXO数据库中,即执行步骤104即可。
此外,对账户地址进行哈希得到的地址指针也可能存在碰撞的可能,此时也可采用建立碰撞表或其他现有方式来解决该碰撞问题。另,由于账户地址的数量远小于交易信息的数量,故地址指针发生碰撞的可能性较低,在账户地址数量较少的情况下,也可不考虑地址指针碰撞的问题。
在上述实施例的基础上,该UTXO数据库存储压缩后的交易信息,但仍然可以对交易信息进行验证,以实现传统UTXO数据库的验证功能。具体的,该验证过程包括:
步骤C1:获取待验证的目标信息,目标信息包括目标输入部分和目标输出部分。
本发明实施例中,在需要验证某交易信息时,将该交易信息作为待验证的目标信息即可,即该目标信息本质上也是一条交易信息。
步骤C2:对目标输入部分进行相同的压缩处理,确定目标压缩信息,并与UTXO数据库中存储的键值对进行匹配。
步骤C3:若匹配成功,则确定与目标压缩信息对应的目标地址指针和目标其他信息;根据目标地址指针读取相应位置的目标账户地址,并将目标账户地址和目标其他信息作为输出值,输出值用于与目标输出部分进行对比。
本发明实施例中,对目标信息中的目标输入部分执行相同的压缩处理,即步骤C2中的压缩处理与上述步骤102中的压缩处理过程相同。例如,目标输入部分也包括交易标识和交易索引,可以对其中的交易标识进行相同的哈希处理、对交易索引进行相同的取余处理,以使得若交易信息的输入部分和该目标输入部分相同,则二者分别压缩后得到的压缩结果也相同,即交易信息对应的压缩信息与该目标压缩信息相同,从而使得该目标压缩信息匹配成功。若目标压缩信息匹配失败,则说明该UTXO数据库中不存在该目标信息,目标信息可能是非法的,可以终止验证过程。
在目标压缩信息匹配成功的情况下,由于UTXO数据库是以键值对形式存储数据的,此时该目标压缩信息与其中一个键值对的键相同,进而可以确定相对应的值,即地址指针和其他信息,本实施例将其称为目标地址指针、目标其他信息。根据该目标地址指针读取相应位置的账户地址,即目标账户地址;将该目标账户地址和目标其他信息进行组合即可生成原交易信息的输出部分,故可以将其作为输出值与目标信息的目标输出部分进行对比,若二者一致,则说明该目标信息合法。
此外可选地,如果存在碰撞表,例如通过上述步骤B1-B2生成碰撞表,此时在对目标输入部分进行相同的压缩处理之前,还需要执行以下过程:
步骤D1:判断目标输入部分与碰撞表中存储的交易信息是否匹配。
步骤D2:若匹配,则将与目标输入部分相匹配的交易信息中的输出部分作为用于与目标输出部分进行对比的输出值。
步骤D3:若不匹配,则执行对目标输入部分进行相同的压缩处理的过程。
本发明实施例中,在获取到待验证的目标信息之后,首先判断该目标信息的目标输入部分与碰撞表中的交易信息的输入部分是否匹配,若二者相匹配,则不需要与UTXO数据库中存储的压缩数据进行对比,此时通过碰撞表中存储的交易信息即可确定与该目标数据部分相对应的交易信息中的输出部分,该输出部分即可以目标信息的目标输出部分进行对比;若二者一致,则说明该目标信息合法。若二者不匹配,则需要通过UTXO数据库进行验证,即执行上述的步骤C2“对目标输入部分进行相同的压缩处理”以及步骤C3等。
本发明实施例提供的一种处理UTXO数据库的方法,将交易信息的输入部分进行压缩,将输出部分的账户地址映射为存储空间更小的地址指针,并将账户地址存储到相应的地址指针处;该方法可以对交易信息进行压缩后再存储到UTXO数据库中,且账户地址唯一的存储到地址指针对应的位置处即可,不需要重复记录账户地址,大大减小了UTXO数据库所占的存储空间。在需要对其他交易信息进行验证时,通过压缩后的UTXO数据库也可实现正常验证,不影响其验证功能。
上文详细描述了本发明实施例提供的处理UTXO数据库的方法,该方法也可以通过相应的装置实现,下面详细描述本发明实施例提供的处理UTXO数据库的装置。
图2示出了本发明实施例所提供的一种处理UTXO数据库的装置的结构示意图。如图2所示,该处理UTXO数据库的装置包括:
获取模块21,用于获取待存储的交易信息,所述交易信息包括输入部分和输出部分,所述输出部分包括账户地址和除所述账户地址之外的其他信息;
压缩模块22,用于对所述输入部分进行压缩处理,生成压缩信息,所述压缩信息的长度小于所述输入部分的长度;
账户地址处理模块23,用于根据预设的哈希函数对所述账户地址进行哈希处理,将哈希处理结果作为地址指针,并将所述账户地址存储到所述地址指针对应的位置;
存储模块24,用于将所述压缩信息作为键、将所述地址指针和所述其他信息作为值生成键值对,并将所述键值对存储至UTXO数据库。
在上述实施例的基础上,该装置还包括碰撞模块;在所述存储模块24生成键值对之前,所述碰撞模块用于:
判断所述压缩信息与其他压缩信息是否发生碰撞;
若发生碰撞,将所述压缩信息以及与所述压缩信息发生碰撞的其他压缩信息对应的交易信息存储到碰撞表中;
若未发生碰撞,则所述存储模块24生成键值对。
在上述实施例的基础上,所述输入部分包括交易标识和交易索引;
所述压缩模块22对所述输入部分进行压缩处理,生成压缩信息,包括:
对所述交易标识进行哈希处理,生成第一子压缩信息,所述第一子压缩信息的长度小于所述交易标识的长度;
对所述交易索引进行取余处理,生成第二子压缩信息,所述第二子压缩信息的长度小于所述交易索引的长度;
根据所述第一子压缩信息和所述第二子压缩信息生成压缩信息。
在上述实施例的基础上,该装置还包括:验证模块,所述验证模块用于:
获取待验证的目标信息,所述目标信息包括目标输入部分和目标输出部分;
对所述目标输入部分进行相同的压缩处理,确定目标压缩信息,并与所述UTXO数据库中存储的键值对进行匹配;
若匹配成功,则确定与所述目标压缩信息对应的目标地址指针和目标其他信息;根据所述目标地址指针读取相应位置的目标账户地址,并将所述目标账户地址和所述目标其他信息作为输出值,所述输出值用于与所述目标输出部分进行对比。
在上述实施例的基础上,若存在碰撞表,所述验证模块在对所述目标输入部分进行相同的压缩处理之前,还用于:
判断所述目标输入部分与所述碰撞表中存储的交易信息是否匹配;
若匹配,则将与所述目标输入部分相匹配的交易信息中的输出部分作为用于与所述目标输出部分进行对比的输出值;
若不匹配,则执行对所述目标输入部分进行相同的压缩处理的过程。
本发明实施例提供的一种处理UTXO数据库的装置,将交易信息的输入部分进行压缩,将输出部分的账户地址映射为存储空间更小的地址指针,并将账户地址存储到相应的地址指针处;该装置可以对交易信息进行压缩后再存储到UTXO数据库中,且账户地址唯一的存储到地址指针对应的位置处即可,不需要重复记录账户地址,大大减小了UTXO数据库所占的存储空间。在需要对其他交易信息进行验证时,通过压缩后的UTXO数据库也可实现正常验证,不影响其验证功能。
此外,本发明实施例还提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该收发器、该存储器和处理器分别通过总线相连,计算机程序被处理器执行时实现上述处理UTXO数据库的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
具体的,参见图3所示,本发明实施例还提供了一种电子设备,该电子设备包括总线1110、处理器1120、收发器1130、总线接口1140、存储器1150和用户接口1160。
在本发明实施例中,该电子设备还包括:存储在存储器1150上并可在处理器1120上运行的计算机程序,计算机程序被处理器1120执行时实现上述处理UTXO数据库的方法实施例的各个过程。
收发器1130,用于在处理器1120的控制下接收和发送数据。
本发明实施例中,总线架构(用总线1110来代表),总线1110可以包括任意数量互联的总线和桥,总线1110将包括由处理器1120代表的一个或多个处理器与存储器1150代表的存储器的各种电路连接在一起。
总线1110表示若干类型的总线结构中的任何一种总线结构中的一个或多个,包括存储器总线以及存储器控制器、***总线、加速图形端口(Accelerate Graphical Port,AGP)、处理器或使用各种总线体系结构中的任意总线结构的局域总线。作为示例而非限制,这样的体系结构包括:工业标准体系结构(Industry Standard Architecture,ISA)总线、微通道体系结构(Micro Channel Architecture,MCA)总线、扩展ISA(Enhanced ISA,EISA)总线、视频电子标准协会(Video Electronics Standards Association,VESA)、***部件互连(Peripheral Component Interconnect,PCI)总线。
处理器1120可以是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中硬件的集成逻辑电路或软件形式的指令完成。上述的处理器包括:通用处理器、中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)、复杂可编程逻辑器件(Complex Programmable LogicDevice,CPLD)、可编程逻辑阵列(Programmable Logic Array,PLA)、微控制单元(Microcontroller Unit,MCU)或其他可编程逻辑器件、分立门、晶体管逻辑器件、分立硬件组件。可以实现或执行本发明实施例中公开的各方法、步骤及逻辑框图。例如,处理器可以是单核处理器或多核处理器,处理器可以集成于单颗芯片或位于多颗不同的芯片。
处理器1120可以是微处理器或任何常规的处理器。结合本发明实施例所公开的方法步骤可以直接由硬件译码处理器执行完成,或者由译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(Random Access Memory,RAM)、闪存(FlashMemory)、只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、寄存器等本领域公知的可读存储介质中。所述可读存储介质位于存储器中,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
总线1110还可以将,例如***设备、稳压器或功率管理电路等各种其他电路连接在一起,总线接口1140在总线1110和收发器1130之间提供接口,这些都是本领域所公知的。因此,本发明实施例不再对其进行进一步描述。
收发器1130可以是一个元件,也可以是多个元件,例如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。例如:收发器1130从其他设备接收外部数据,收发器1130用于将处理器1120处理后的数据发送给其他设备。取决于计算机***的性质,还可以提供用户接口1160,例如:触摸屏、物理键盘、显示器、鼠标、扬声器、麦克风、轨迹球、操纵杆、触控笔。
应理解,在本发明实施例中,存储器1150可进一步包括相对于处理器1120远程设置的存储器,这些远程设置的存储器可以通过网络连接至服务器。上述网络的一个或多个部分可以是自组织网络(ad hoc network)、内联网(intranet)、外联网(extranet)、虚拟专用网(VPN)、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、无线广域网(WWAN)、城域网(MAN)、互联网(Internet)、公共交换电话网(PSTN)、普通老式电话业务网(POTS)、蜂窝电话网、无线网络、无线保真(Wi-Fi)网络以及两个或更多个上述网络的组合。例如,蜂窝电话网和无线网络可以是全球移动通信(GSM)***、码分多址(CDMA)***、全球微波互联接入(WiMAX)***、通用分组无线业务(GPRS)***、宽带码分多址(WCDMA)***、长期演进(LTE)***、LTE频分双工(FDD)***、LTE时分双工(TDD)***、先进长期演进(LTE-A)***、通用移动通信(UMTS)***、增强移动宽带(Enhance Mobile Broadband,eMBB)***、海量机器类通信(massive Machine Type of Communication,mMTC)***、超可靠低时延通信(UltraReliable Low Latency Communications,uRLLC)***等。
应理解,本发明实施例中的存储器1150可以是易失性存储器或非易失性存储器,或可包括易失性存储器和非易失性存储器两者。其中,非易失性存储器包括:只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存(Flash Memory)。
易失性存储器包括:随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如:静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本发明实施例描述的电子设备的存储器1150包括但不限于上述和任意其他适合类型的存储器。
在本发明实施例中,存储器1150存储了操作***1151和应用程序1152的如下元素:可执行模块、数据结构,或者其子集,或者其扩展集。
具体而言,操作***1151包含各种***程序,例如:框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序1152包含各种应用程序,例如:媒体播放器(Media Player)、浏览器(Browser),用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序1152中。应用程序1152包括:小程序、对象、组件、逻辑、数据结构以及其他执行特定任务或实现特定抽象数据类型的计算机***可执行指令。
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述处理UTXO数据库的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
计算机可读存储介质包括:永久性和非永久性、可移动和非可移动媒体,是可以保留和存储供指令执行设备所使用指令的有形设备。计算机可读存储介质包括:电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备以及上述任意合适的组合。计算机可读存储介质包括:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带存储、磁带磁盘存储或其他磁性存储设备、记忆棒、机械编码装置(例如在其上记录有指令的凹槽中的穿孔卡或凸起结构)或任何其他非传输介质、可用于存储可以被计算设备访问的信息。按照本发明实施例中的界定,计算机可读存储介质不包括暂时信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如穿过光纤电缆的光脉冲)或通过导线传输的电信号。
在本申请所提供的几个实施例中,应该理解到,所披露的装置、电子设备和方法,可以通过其他的方式实现。例如,以上描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的、机械的或其他的形式连接。
所述作为分离部件说明的单元可以是或也可以不是物理上分开的,作为单元显示的部件可以是或也可以不是物理单元,既可以位于一个位置,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或全部单元来解决本发明实施例方案要解决的问题。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术作出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(包括:个人计算机、服务器、数据中心或其他网络设备)执行本发明各个实施例所述方法的全部或部分步骤。而上述存储介质包括如前述所列举的各种可以存储程序代码的介质。
以上所述,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例披露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种处理UTXO数据库的方法,其特征在于,包括:
获取待存储的交易信息,所述交易信息包括输入部分和输出部分,所述输出部分包括账户地址和除所述账户地址之外的其他信息;
对所述输入部分进行压缩处理,生成压缩信息,所述压缩信息的长度小于所述输入部分的长度;
根据预设的哈希函数对所述账户地址进行哈希处理,将哈希处理结果作为地址指针,并将所述账户地址存储到所述地址指针对应的位置;
将所述压缩信息作为键、将所述地址指针和所述其他信息作为值生成键值对,并将所述键值对存储至UTXO数据库。
2.根据权利要求1所述的方法,其特征在于,在所述生成键值对之前,还包括:
判断所述压缩信息与其他压缩信息是否发生碰撞;
若发生碰撞,将所述压缩信息以及与所述压缩信息发生碰撞的其他压缩信息对应的交易信息存储到碰撞表中;
若未发生碰撞,则执行生成键值对的过程。
3.根据权利要求1所述的方法,其特征在于,所述输入部分包括交易标识和交易索引;
所述对所述输入部分进行压缩处理,生成压缩信息,包括:
对所述交易标识进行哈希处理,生成第一子压缩信息,所述第一子压缩信息的长度小于所述交易标识的长度;
对所述交易索引进行取余处理,生成第二子压缩信息,所述第二子压缩信息的长度小于所述交易索引的长度;
根据所述第一子压缩信息和所述第二子压缩信息生成压缩信息。
4.根据权利要求1-3任意一项所述的方法,其特征在于,还包括:
获取待验证的目标信息,所述目标信息包括目标输入部分和目标输出部分;
对所述目标输入部分进行相同的压缩处理,确定目标压缩信息,并与所述UTXO数据库中存储的键值对进行匹配;
若匹配成功,则确定与所述目标压缩信息对应的目标地址指针和目标其他信息;根据所述目标地址指针读取相应位置的目标账户地址,并将所述目标账户地址和所述目标其他信息作为输出值,所述输出值用于与所述目标输出部分进行对比。
5.根据权利要求4所述的方法,其特征在于,若存在碰撞表,在所述对所述目标输入部分进行相同的压缩处理之前,还包括:
判断所述目标输入部分与所述碰撞表中存储的交易信息是否匹配;
若匹配,则将与所述目标输入部分相匹配的交易信息中的输出部分作为用于与所述目标输出部分进行对比的输出值;
若不匹配,则执行对所述目标输入部分进行相同的压缩处理的过程。
6.一种处理UTXO数据库的装置,其特征在于,包括:
获取模块,用于获取待存储的交易信息,所述交易信息包括输入部分和输出部分,所述输出部分包括账户地址和除所述账户地址之外的其他信息;
压缩模块,用于对所述输入部分进行压缩处理,生成压缩信息,所述压缩信息的长度小于所述输入部分的长度;
账户地址处理模块,用于根据预设的哈希函数对所述账户地址进行哈希处理,将哈希处理结果作为地址指针,并将所述账户地址存储到所述地址指针对应的位置;
存储模块,用于将所述压缩信息作为键、将所述地址指针和所述其他信息作为值生成键值对,并将所述键值对存储至UTXO数据库。
7.根据权利要求6所述的指针,其特征在于,还包括碰撞模块;在所述存储模块生成键值对之前,所述碰撞模块用于:
判断所述压缩信息与其他压缩信息是否发生碰撞;
若发生碰撞,将所述压缩信息以及与所述压缩信息发生碰撞的其他压缩信息对应的交易信息存储到碰撞表中;
若未发生碰撞,则所述存储模块生成键值对。
8.根据权利要求6所述的指针,其特征在于,所述输入部分包括交易标识和交易索引;
所述压缩模块对所述输入部分进行压缩处理,生成压缩信息,包括:
对所述交易标识进行哈希处理,生成第一子压缩信息,所述第一子压缩信息的长度小于所述交易标识的长度;
对所述交易索引进行取余处理,生成第二子压缩信息,所述第二子压缩信息的长度小于所述交易索引的长度;
根据所述第一子压缩信息和所述第二子压缩信息生成压缩信息。
9.一种电子设备,包括总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述收发器、所述存储器和所述处理器通过所述总线相连,其特征在于,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的处理UTXO数据库的方法中的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的处理UTXO数据库的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011640960.6A CN112685422A (zh) | 2020-12-31 | 2020-12-31 | 一种处理utxo数据库的方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011640960.6A CN112685422A (zh) | 2020-12-31 | 2020-12-31 | 一种处理utxo数据库的方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112685422A true CN112685422A (zh) | 2021-04-20 |
Family
ID=75456788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011640960.6A Pending CN112685422A (zh) | 2020-12-31 | 2020-12-31 | 一种处理utxo数据库的方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112685422A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360951A (zh) * | 2021-05-12 | 2021-09-07 | 电子科技大学 | 一种基于分区式区块链的电子证据保全方法 |
CN113821536A (zh) * | 2021-11-23 | 2021-12-21 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109508334A (zh) * | 2018-11-23 | 2019-03-22 | 中科驭数(北京)科技有限公司 | 针对区块链数据库的数据压缩方法、访问方法和*** |
CN109583861A (zh) * | 2018-11-23 | 2019-04-05 | 中科驭数(北京)科技有限公司 | key-value数据库中的数据压缩方法、访问方法和*** |
US20200382279A1 (en) * | 2019-05-29 | 2020-12-03 | International Business Machines Corporation | Approximate hash verification of unused blockchain output |
-
2020
- 2020-12-31 CN CN202011640960.6A patent/CN112685422A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109508334A (zh) * | 2018-11-23 | 2019-03-22 | 中科驭数(北京)科技有限公司 | 针对区块链数据库的数据压缩方法、访问方法和*** |
CN109583861A (zh) * | 2018-11-23 | 2019-04-05 | 中科驭数(北京)科技有限公司 | key-value数据库中的数据压缩方法、访问方法和*** |
US20200382279A1 (en) * | 2019-05-29 | 2020-12-03 | International Business Machines Corporation | Approximate hash verification of unused blockchain output |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360951A (zh) * | 2021-05-12 | 2021-09-07 | 电子科技大学 | 一种基于分区式区块链的电子证据保全方法 |
CN113821536A (zh) * | 2021-11-23 | 2021-12-21 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11501533B2 (en) | Media authentication using distributed ledger | |
CN109918018B (zh) | 一种数据存储方法及存储设备 | |
CN112685422A (zh) | 一种处理utxo数据库的方法、装置及电子设备 | |
CN111581627A (zh) | 一种数据处理方法、装置及电子设备 | |
WO2017095671A1 (en) | Adding privacy to standard credentials | |
US11249987B2 (en) | Data storage in blockchain-type ledger | |
EP3813001B1 (en) | Data reading method based on a plurality of block chain networks and system | |
CN110334542B (zh) | 一种网络证据保全、网络证据存证校验方法及装置 | |
US10789376B2 (en) | Blockchain authorization | |
US12032493B2 (en) | Obfuscating cryptographic material in memory | |
US20200327227A1 (en) | Method of speeding up a full antivirus scan of files on a mobile device | |
CN110597461B (zh) | 块链式账本中的数据存储方法、装置及设备 | |
CN110347645B (zh) | 一种电子文件存证方法及装置 | |
KR102302952B1 (ko) | 사용자 로그인 보안 등급에 기초하여 차등 로그인 인증 처리를 수행하는 통합 금융 거래 플랫폼 장치 및 그 동작 방법 | |
CN112800486A (zh) | 一种票据信息的处理方法、装置及*** | |
US10771241B2 (en) | Time authentication method, apparatus and device in blockchain-type ledger | |
US20200372037A1 (en) | Data manipulation record storage method, system, apparatus, and device | |
CN110597462A (zh) | 块链式账本中的数据存储方法、***、装置及设备 | |
CN113342275B (zh) | 区块链节点存取数据的方法、设备和计算机可读存储介质 | |
CN115374424A (zh) | 数据库的访问方法、装置、电子设备及存储介质 | |
CN114692124A (zh) | 一种数据读取、写入方法、装置和电子设备 | |
CN114253956A (zh) | 一种边缘缓存的方法、装置及电子设备 | |
JP6763096B1 (ja) | システム | |
CN114616569A (zh) | 利用外部资源的安全元件 | |
CN111259413A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210420 |