CN110008738B - 用于区块链合约数据的缓存方法、装置、介质和计算设备 - Google Patents
用于区块链合约数据的缓存方法、装置、介质和计算设备 Download PDFInfo
- Publication number
- CN110008738B CN110008738B CN201910130108.5A CN201910130108A CN110008738B CN 110008738 B CN110008738 B CN 110008738B CN 201910130108 A CN201910130108 A CN 201910130108A CN 110008738 B CN110008738 B CN 110008738B
- Authority
- CN
- China
- Prior art keywords
- key
- contract data
- hash
- contract
- cache
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000012545 processing Methods 0.000 claims description 12
- 238000013500 data storage Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004995 multiple fission Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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/3827—Use of message hashing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了用于区块链合约数据的缓存方法、装置、介质和计算设备。该用于区块链合约数据的缓存方法包括从合约账户缓存中获取合约数据的第一键值对,该第一键值对包括第一键以及第一值;获取合约账户的公钥地址;基于上述第一键以及公钥地址,生成该合约数据的第二键;基于上述第二键以及第一值,在哈希缓存中缓存该合约数据。本发明基于哈希缓存,本方法通过合约数据的原有键值及公钥地址来生成该合约数据的具有唯一性的新键值,利用该新键值无需进行多次查找操作即可直接将该合约数据缓存于哈希缓存的特定位置处。与现有方法相比,本发明提高了合约数据的存取效率。
Description
技术领域
本发明的实施方式涉及区块链合约数据缓存领域,更具体地,本发明的实施方式涉及用于区块链合约数据的缓存方法、装置、介质和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前,基于以太坊架构的联盟区块链,其核心缓存模型结构通常为MerklePatricia Tree(MPT),其为结合默克尔树以及紧凑前缀树两种特性的一种数据结构。当需要读写合约账户中的数据时,根据MPT中树的高度以及节点数的不同,可能需要对于MPT进行多次读写操作。此外,MPT中一个树节点的变更可能会引起MPT中树结构发生多次裂变。随着合约数据的增加,MPT中所缓存的数据量也将增大,这会导致合约数据的读写速度下降。
发明内容
本发明实施例提供用于区块链合约数据的缓存方法、装置、介质和计算设备,用以解决现有技术方案存在的随着合约数据的增加,MPT中所缓存的数据量也将增大,导致合约数据的读写速度下降的问题。
本发明实施例是通过以下技术方案实现的:
第一方面,本发明实施例提供用于区块链合约数据的缓存方法,该方法基于哈希缓存,包括从合约账户缓存中获取合约数据的第一键值对,该第一键值对包括第一键以及第一值;获取合约账户的公钥地址;基于上述第一键以及公钥地址,生成该合约数据的第二键;基于第二键以及上述第一值,在哈希缓存结构中缓存该合约数据。
在本发明实施例提供的用于区块链合约数据的缓存方法基于哈希缓存,而非MPT结构。本方法通过合约数据的原有键值及公钥地址来生成该合约数据的具有唯一性的新键值,利用该新键值无需进行多次查找操作即可直接将该合约数据缓存于哈希缓存的特定位置处。与现有方法相比,本发明提高了合约数据存取效率。
在本发明的一个实施例中,基于第一键以及公钥地址,生成该合约数据的第二键的步骤包括基于第一键以及公钥地址,利用安全散列算法生成该合约数据的第二键。上述方法利用安全散列算法来生成第二键,从而增强了安全性。
在本发明的一个实施例中,该方法还包括基于第二键,从该哈希缓存中读取所述合约数据。通过这一方式,可利用第二键来直接从哈希缓存中读取到所需的合约数据,而无需进行多次查找操作,从而提高了合约数据的读取效率。
在本发明的一个实施例中,该方法还包括确定合约数据更新后的第二值;基于第二键以及上述第二值,在哈希缓存中更新该合约数据。通过这一方式,可利用第二键来在哈希缓存中直接更新合约数据,而无需进行多次查找操作,从而提高了合约数据的更新效率。
在本发明的一个实施例中,该方法还包括基于第二键,从哈希缓存中删除合约数据。通过这一方式,可利用第二键来在哈希缓存中直接删除合约数据,而无需进行多次查找操作,从而提高了合约数据的删除效率。
在本发明的一个实施例中,该方法还包括以下至少任一项:将该哈希缓存中的合约数据存储至数据库中;从数据库中删除该哈希缓存中已不再缓存的合约数据;将该哈希缓存中已更新的合约数据更新到数据库中。通过这一方式,哈希缓存中的合约数据得以提交到底层数据库中。
在本发明的一个实施例中,区块链为以太坊联盟区块链。
在本发明的一个实施例中,哈希缓存为哈希映射。
第二方面,本发明实施例提供一种用于区块链合约数据的缓存装置,该装置基于哈希缓存,包括:第一键值对获取单元,用于从合约账户缓存中获取合约数据的第一键值对,该第一键值对包括第一键以及第一值;公钥地址获取单元,用于获取合约账户的公钥地址;第二键生成单元,用于基于上述第一键以及公钥地址,生成该合约数据的第二键;缓存单元,用于基于上述第二键以及第一值,在哈希缓存中缓存该合约数据。
在本发明的一个实施例中,第二键生成单元用于基于第一键以及公钥地址,利用安全散列算法生成合约数据的第二键。
在本发明的一个实施例中,该装置还包括读取单元,用于基于第二键,从哈希缓存中读取合约数据。
在本发明的一个实施例中,该装置还包括第二值确定单元,用于确定合约数据更新后的第二值;更新单元,用于基于第二键以及上述第二值,在哈希缓存中更新该合约数据。
在本发明的一个实施例中,该装置还包括删除单元,用于基于第二键,从哈希缓存中删除合约数据。
在本发明的一个实施例中,该装置还包括以下至少任一项:数据存储单元,用于将哈希缓存中的合约数据存储至数据库中;数据删除单元,用于从数据库中删除哈希缓存中已不再缓存的合约数据;数据更新单元,用于将哈希缓存中已更新的合约数据更新到数据库中。
在本发明的一个实施例中,区块链为以太坊联盟区块链。
在本发明的一个实施例中,哈希缓存为哈希映射。
第三方面,提供了一种介质,该介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行第一方面中任一实施例的方法。
在本发明实施方式的第四方面中,提供了一种计算设备,包括处理单元、存储器以及输入/输出(In/Out,I/O)接口;存储器,用于存储处理单元执行的程序或指令;处理单元,用于根据存储器存储的程序或指令,执行第一方面中任一实施例的方法;I/O接口,用于在处理单元的控制下接收或发送数据。
本发明的实施方式提供的技术方案,其通过合约数据的原有键值及公钥地址来生成该合约数据的具有唯一性的新键值,利用该新键值无需进行多次查找操作即可直接将该合约数据缓存于哈希缓存的特定位置处。与现有的基于MPT的缓存方法相比,上述方法提高了合约数据存取效率。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了利用本发明实施例的方法,区块链中合约数据的读写操作执行过程示意图;
图2示意性地示出了根据本发明实施例涉及的一种用于区块链合约数据的缓存方法的流程示意图;
图3示意性地示出了根据本发明实施例涉及的一种用于区块链合约数据的缓存装置的结构示意图;
图4示意性地示出了本发明实施例涉及的一种介质的结构示意图;
图5示意性地示出了本发明实施例涉及的一种计算设备的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了用于区块链合约数据的缓存方法、介质、装置和计算设备。
在本文中,需要理解的是,所涉及的几个概念的含义如下:
Merkle Patricia Tree(MPT)是结合默克尔树以及紧凑前缀树两种特性的一种数据结构,其广泛应用于如以太坊联盟链等区块链中。
区块链中的合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,例如以太坊联盟链中的智能合约。在区块链中,一个合约对应着一个唯一的合约账户,其中包括该合约的各种合约数据。
哈希缓存指基于哈希结构的缓存。哈希结构是一种可根据键值来直接进行访问的数据结构,它通过把键值映射到哈希结构中的特定位置来直接访问数据记录,以加快数据查找的速度。哈希缓存可包括多种形式,例如哈希表(Hash Table),哈希映射(Hash Map)等。
上述概念均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,目前区块链中合约数据所使用的缓存结构通常基于MPT,但随着合约数据的增加,MPT中合约数据的查找及读写速度下降。为了克服现有技术存在的问题,本发明中提出用于区块链合约数据的缓存方法、装置、介质和计算设备。本发明方法基于哈希缓存,包括:从合约账户缓存中获取合约数据的第一键值对,该第一键值对包括第一键以及第一值;获取合约账户的公钥地址;基于上述第一键以及公钥地址,生成该合约数据的第二键;基于上述第二键以及第一值,在哈希缓存中缓存该合约数据。
本发明方案基于哈希缓存,本方法通过合约数据的原有键值及公钥地址来生成该合约数据的具有唯一性的新键值,利用该新键值无需进行多次查找操作即可直接将该合约数据缓存于哈希缓存的特定位置处。与现有的基于MPT的缓存方法相比,本发明提高了合约数据存取效率。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
本发明实施例可以应用于区块链中合约数据的缓存,例如以太坊联盟区块链中的合约数据的缓存。图1示出了利用本发明实施例的方法,执行区块链中合约数据的读写操作的过程示意图。如图1所示,在本方法中,区块链中合约数据的读写操作将涉及合约账户缓存、哈希缓存以及数据库,其中合约账户缓存可面向区块链中的交易业务需求,哈希缓存则实现了上层业务模型与底层数据库之间的连接。按照区块链中业务的需要,对于合约数据的典型操作包括读操作(例如查询)和写操作(例如增加、更新、删除)。
如图1所示,当执行合约数据的写操作时,首先将执行步骤W1以将合约数据写入合约账户缓存,然后执行步骤W2以将合约账户缓存中的合约数据写入到哈希缓存中,最后将执行步骤W3来将哈希缓存中的合约数据写入到数据库中从而完成该写操作。当需要从数据库读取合约数据时,则将首先执行步骤R1以从数据库中读取合约数据到哈希缓存中,然后将执行步骤R2以从哈希缓存中读取合约数据到合约账户缓存中,最后将执行步骤R3以从合约账户缓存中读取合约数据,从而完成该合约数据读操作。
本发明实施例可应用于上述区块链中的合约数据的读写操作过程。此外,本实施例也可应用于适用的任何场景。
本发明实施例所提供的技术方案适用于各种计算设备,例如服务器、电脑等。
示例性方法
下面结合上文所示的应用场景,参考图2来描述根据本发明第一方面示例性实施方式的用于区块链合约数据的缓存方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
区块链中的合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,例如以太坊联盟链中的智能合约。在区块链中,一个合约对应着一个唯一的合约账户,该合约账户中包括该合约所对应的各种合约数据。通常,可以用键值对[key,value]的方式来表示一个合约数据。
如前文结合图1所述,当执行合约数据的写操作时,首先将执行步骤W1以将合约数据写入合约账户缓存,然后执行步骤W2以将合约账户缓存中的合约数据写入到哈希缓存中,最后将执行步骤W3来将哈希缓存中的合约数据写入到数据库中从而完成该写操作。
本发明实施例提供了一种用于区块链合约数据的缓存方法。该实施可应用于上述步骤W2中。此外,本实施例也可应用于适用的任何场景。
如图2所示,该实施例所提供的方法包括:
S201:从合约账户缓存中获取合约数据的第一键值对,该第一键值对包括第一键以及第一值。
S202:获取合约账户的公钥地址。
S203:基于上述第一键以及公钥地址,生成该合约数据的第二键;
S204:基于上述第二键以及第一值,在哈希缓存中缓存该合约数据。
图2所示的方法基于哈希缓存,其通过合约数据的原有键值及公钥地址来生成该合约数据的具有唯一性的新键值,利用该新键值无需进行多次查找操作即可直接将该合约数据缓存于哈希缓存的特定位置处。与现有的基于MPT的缓存结构相比,本发明提高了合约数据的存取效率。
具体地,在步骤S201中将从合约账户缓存中获取合约数据的第一键值对,该第一键值对包括第一键以及第一值。
如前文结合图1所述,在执行本实施例所涉及的步骤W2之前,首先将执行步骤W1以将合约数据写入合约账户缓存。虽然步骤W1并非本方案实施例中所涉及的步骤,但为便于理解本方案,首先将以下例来对步骤W1进行简单描述。假定该例中将新增合约数据,其键值对为[key,value]。首先确定用于合约数据缓存的第一键(first_key),例如,按如下方式计算第一键:first_key=keccak256(bytes32(key)+bytes32(position),其中函数keccak256()为哈希摘要实现函数,position为该合约数据在合约账户中所处的位置。按照上述方式所生成的第一键在同一个合约账户中具有唯一性。然后可利用第一键(first_key)来将该合约数据的值(value)写入合约账户缓存中,从而完成步骤W1。在本方案中,将用第一键值对[first_key,value]指代合约账户缓存中的合约数据,其包括第一键(first_key)以及第一值(value)。
在步骤S201中,将从合约账户缓存中获取合约数据的第一键值对,该第一键值对包括第一键以及第一值。一般地,合约账户缓存提供数据接口(例如API函数等)以用于存取合约数据。因此,可利用该接口来从合约账户缓存中获取到合约数据。用第一键值对[first_key,value]来指代从合约账户缓存中所获取的合约数据,其中包括第一键(first_key)以及第一值(value)。
接着,执行步骤S202来获取合约账户的公钥地址。如前文所述,在区块链中,一个合约对应着一个唯一的合约账户。一般地,该合约账户具有可唯一标识该合约账户的公钥地址。由于合约账户的公钥地址通常将是公开的,因此在本步骤中,可以获取到该合约账户的公钥地址。为便于描述,以下以account_address来指代合约账户的公钥地址。
在步骤S203中,将基于上述第一键以及公钥地址,生成该合约数据的第二键。在一个实施例中,可以将第一键(first_key)与公钥地址(account_address)相加来得到第二键。由于公钥地址可在区块链中唯一标识一个合约账户,并且如上文所述,一个合约数据的第一键在其合约账户中也是唯一的,因此,将公钥地址与合约数据的第一键相加后所得到的第二键在区块链中具有唯一性,可在区块链中唯一标识一个合约数据。
在一个优选实施例中,将基于第一键以及公钥地址,利用安全散列算法生成该合约数据的第二键。例如,sha3为第三代安全散列算法,可根据下述公式来生成第二键:second_key=sha3(first_key+account_address)。安全散列算法具有当输入唯一时,其输出也唯一的特性。如上文所述,由于第一键与公钥地址相加后所得到结果在区块链中是唯一的,因此按照上述方式所获得的第二键也是唯一的,可用于在区块链中唯一标识一个合约数据。
在步骤S204中,将基于上述第二键(second_key)以及第一值(value),在哈希缓存中缓存该合约数据。如前文所述,哈希缓存指基于哈希结构的缓存。哈希结构是一种可根据键值来直接进行访问的数据结构,它通过把键值映射到哈希结构中的特定位置来直接访问数据记录,以加快数据查找的速度。哈希缓存可包括多种形式,例如哈希表(Hash Table)等。在步骤S204中,可将上述第二键(second_key)映射到哈希缓存的特定位置,并在该位置处缓存该合约数据的第一值(value)。如上文所述,在步骤S203中所生成的第二键(second_key)在区块链中具有唯一性,因此上述映射方式将不会造成哈希缓存中的数据冲突。由于本实施例的方法无需多次查找操作即可利用第二键直接映射到哈希缓存中的特定位置,因此与现有方法相比,提高了合约数据的存取效率。
在一个优选实施例中,将使用哈希映射(Hash Map)作为哈希缓存。
在一个实施例中,还包括步骤S205(图2中未示出):基于上述第二键(second_key),从哈希缓存中读取该合约数据。如上文所述,由于第二键(second_key)具有唯一性,因此,能够使用该第二键(second_key)直接映射到哈希缓存的特定位置,并从该位置处读取到相对应的合约数据。
在一个实施例中,还包括:
步骤S206(图2中未示出):确定合约数据更新后的第二值;
步骤S207(图2中未示出):基于上述第二键以及第二值,在哈希缓存中更新该合约数据。
例如原合约数据的第一值为50,在步骤S206中,确定合约数据更新后的第二值为100。则在步骤S207中,将基于该合约数据的第二键来直接映射到哈希缓存的特定位置,并将该位置处所缓存的该合约数据的值从50更新为第二值100。
在一个实施例中,还包括步骤S208(图2中未示出):基于第二键,从哈希缓存中删除该合约数据。例如,当一个合约数据不再需要时,将基于该合约数据的第二键来直接映射到哈希缓存的特定位置,并将该位置处所缓存的该合约数据删除。
在一个实施例中,还包括以下至少一个步骤:
S209a(图2中未示出):将哈希缓存中的合约数据存储至数据库中。
S209b(图2中未示出):从数据库中删除哈希缓存中已不再缓存的合约数据。
S209c(图2中未示出):将哈希缓存中已更新的合约数据更新到数据库中。
如前文所述,区块链中合约数据的写操作将涉及写合约账户缓存、写哈希缓存以及写数据库操作。如图1所示,在执行步骤W1、W2之后,合约数据被写入到哈希缓存。然后将执行步骤W3来将哈希缓存中的合约数据写入到数据库中从而实现合约数据的持久存储。本实施例可应用于步骤W3。此外,本实施例也可应用于适用的任何场景。
通常,数据库将提供数据读写接口(例如API函数或数据操作命令等)用于存取数据库中的数据。当哈希缓存中增加了新的合约数据后,可以执行步骤S209a来调用数据库接口,并基于该合约数据的第二键来将该合约数据存储至数据库中。当从哈希缓存中删除了合约数据之后,可以执行步骤S209b来调用数据库接口,并基于该合约数据的第二键来从数据库中删除该合约数据。当在哈希缓存中的合约数据被更新之后,可以执行步骤S209c来调用数据库接口,并基于该合约数据的第二键来将数据库中的该合约数据进行相应的更新。
在一个实施例中,本方法所涉及的区块链为以太坊联盟区块链。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,介绍本发明提供的示例性实施的装置。本发明第二方面提供的用于区块链合约数据的缓存装置如图3所示,其可以实现图2对应的实施例所提供的方法。
参见图3,本发明提供的用于区块链合约数据的缓存装置300包括第一键值对获取单元301、公钥地址获取单元302、第二键生成单元303、以及缓存单元304。其中,
第一键值对获取单元301,用于从合约账户缓存中获取合约数据的第一键值对,该第一键值对包括第一键以及第一值。
公钥地址获取单元302,用于获取合约账户的公钥地址。
第二键生成单元303,用于基于上述第一键以及公钥地址,生成该合约数据的第二键;
缓存单元304,用于基于上述第二键以及第一值,在哈希缓存中缓存该合约数据。
可选的,第二键生成单元303用于基于上述第一键以及公钥地址,利用安全散列算法生成该合约数据的第二键。
可选的,该缓存装置300还包括读取单元305(图3中未示出),用于基于第二键,从哈希缓存中读取该合约数据。
可选的,该缓存装置300还包括第二值确定单元306(图3中未示出),用于确定合约数据更新后的第二值;以及更新单元307(图3中未示出),用于基于上述第二键以及第二值,在该哈希缓存中更新该合约数据。
可选的,该缓存装置300还包括删除单元308(图3中未示出),用于基于上述第二键,从哈希缓存中删除该合约数据。
可选的,该缓存装置300还包括以下至少任一项:
数据存储单元309a(图3中未示出),用于将哈希缓存中的合约数据存储至数据库中。
数据删除单元309b(图3中未示出),用于从数据库中删除哈希缓存中已不再缓存的合约数据。
数据更新单元309c(图3中未示出),用于将哈希缓存中已更新的合约数据更新到数据库中。
可选的,该缓存装置300所使用的区块链为以太坊联盟区块链。
可选的,该缓存装置300所使用的哈希缓存为哈希映射。
示例性介质
在介绍了本发明示例性实施方式的方法和装置之后,接下来,参考图4,本发明提供了一种示例性介质,该介质存储有计算机可执行指令,该计算机可执行指令可用于使所述计算机执行图2对应的本发明示例性实施方式中任一项所述的方法。
示例性计算设备
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图5,介绍本发明提供的一种示例性计算设备50,该计算设备50包括处理单元501、存储器502、总线503、外部设备504、I/O接口505以及网络适配器506,该存储器502包括随机存取存储器(random access memory,RAM)5021、高速缓存存储器5022、只读存储器(Read-OnlyMemory,ROM)5023以及至少一片存储单元5024构成的存储单元阵列5025。其中该存储器502,用于存储处理单元501执行的程序或指令;该处理单元501,用于根据该存储器502存储的程序或指令,执行图1对应的本发明示例性实施方式中任一项所述的方法;该I/O接口505,用于在该处理单元501的控制下接收或发送数据。
应当注意,尽管在上文详细描述中提及了装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (16)
1.一种用于区块链合约数据的缓存方法,其特征在于,所述方法基于哈希缓存,该方法包括:
从合约账户缓存中获取合约数据的第一键值对,所述第一键值对包括第一键以及第一值;
获取所述合约账户的公钥地址;
基于所述第一键以及所述公钥地址,生成所述合约数据的第二键;
基于所述第二键以及所述第一值,在所述哈希缓存结构中缓存所述合约数据;
基于所述第二键,从所述哈希缓存中读取所述合约数据。
2.根据权利要求1所述的方法,其特征在于,基于所述第一键以及所述公钥地址,生成所述合约数据的第二键包括:
基于所述第一键以及所述公钥地址,利用安全散列算法生成所述合约数据的第二键。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
确定所述合约数据更新后的第二值;
基于所述第二键以及所述第二值,在所述哈希缓存中更新所述合约数据。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
基于所述第二键,从所述哈希缓存中删除所述合约数据。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括以下至少任一项:
将所述哈希缓存中的所述合约数据存储至数据库中;
从数据库中删除所述哈希缓存结构中已不再缓存的所述合约数据;
将所述哈希缓存结构中已更新的所述合约数据更新到数据库中。
6.根据权利要求1或2所述的方法,其特征在于,所述区块链为以太坊联盟区块链。
7.根据权利要求1或2所述的方法,其特征在于,所述哈希缓存为哈希映射。
8.一种用于区块链合约数据的缓存装置,其特征在于,所述装置基于哈希缓存,该装置包括:
第一键值对获取单元,用于从合约账户缓存中获取合约数据的第一键值对,所述第一键值对包括第一键以及第一值;
公钥地址获取单元,用于获取所述合约账户的公钥地址;
第二键生成单元,用于基于所述第一键以及所述公钥地址,生成所述合约数据的第二键;
缓存单元,用于基于所述第二键以及所述第一值,在所述哈希缓存结构中缓存所述合约数据;
读取单元,用于基于所述第二键,从所述哈希缓存中读取所述合约数据。
9.根据权利要求8所述的装置,其特征在于,所述第二键生成单元用于:
基于所述第一键以及所述公钥地址,利用安全散列算法生成所述合约数据的第二键。
10.根据权利要求8或9所述的装置,其特征在于,所述装置还包括:
第二值确定单元,用于确定所述合约数据更新后的第二值;
更新单元,用于基于所述第二键以及所述第二值,在所述哈希缓存中更新所述合约数据。
11.根据权利要求8或9所述的装置,其特征在于,所述装置还包括:
删除单元,用于基于所述第二键,从所述哈希缓存中删除所述合约数据。
12.根据权利要求8或9所述的装置,其特征在于,所述装置还包括以下至少任一项:
数据存储单元,用于将所述哈希缓存中的所述合约数据存储至数据库中;
数据删除单元,用于从数据库中删除所述哈希缓存结构中已不再缓存的所述合约数据;
数据更新单元,用于将所述哈希缓存结构中已更新的所述合约数据更新到数据库中。
13.根据权利要求8或9所述的装置,其特征在于,所述区块链为以太坊联盟区块链。
14.根据权利要求8或9所述的装置,其特征在于,所述哈希缓存为哈希映射。
15.一种介质,其特征在于,所述介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行权利要求1至7任一项所述的方法。
16.一种计算设备,其特征在于,包括处理单元、存储器以及I/O接口;其中
所述存储器,用于存储所述处理单元执行的程序或指令;
所述处理单元,用于根据所述存储器存储的程序或指令,执行权利要求1至7任一项所述的方法;
所述I/O接口,用于在所述处理单元的控制下接收或发送数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910130108.5A CN110008738B (zh) | 2019-02-21 | 2019-02-21 | 用于区块链合约数据的缓存方法、装置、介质和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910130108.5A CN110008738B (zh) | 2019-02-21 | 2019-02-21 | 用于区块链合约数据的缓存方法、装置、介质和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110008738A CN110008738A (zh) | 2019-07-12 |
CN110008738B true CN110008738B (zh) | 2021-06-25 |
Family
ID=67165834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910130108.5A Active CN110008738B (zh) | 2019-02-21 | 2019-02-21 | 用于区块链合约数据的缓存方法、装置、介质和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110008738B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110599169B (zh) * | 2019-09-16 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、终端及介质 |
CN110535664B (zh) * | 2019-09-20 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、服务器及存储介质 |
CN111741000B (zh) * | 2020-06-22 | 2021-06-22 | 北京邮电大学 | 基于区块链和智能合约的数据访问系统、方法 |
CN112269839B (zh) * | 2020-11-18 | 2024-02-23 | 网易(杭州)网络有限公司 | 区块链中的数据存储方法、装置、电子设备及存储介质 |
CN112541825B (zh) * | 2020-12-09 | 2024-07-16 | 网易(杭州)网络有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
CN112559635B (zh) * | 2020-12-23 | 2023-06-16 | 网易(杭州)网络有限公司 | 以太坊联盟链节点的业务处理方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682528A (zh) * | 2016-12-31 | 2017-05-17 | 杭州复杂美科技有限公司 | 区块链加密检索方案 |
CN107995160A (zh) * | 2017-10-26 | 2018-05-04 | 常熟市第人民医院 | 一种基于云端管控的json数据包加密解密方法 |
CN108629027A (zh) * | 2018-05-09 | 2018-10-09 | 深圳壹账通智能科技有限公司 | 区块链上用户数据库重建方法、装置、设备及介质 |
CN109063016A (zh) * | 2018-07-11 | 2018-12-21 | 物数(上海)信息科技有限公司 | 区块链数据储存方法、装置、电子设备、存储介质 |
US20190052466A1 (en) * | 2017-08-11 | 2019-02-14 | Secure Open Systems, Inc. | Hash contract generation and verification system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7885412B2 (en) * | 2005-09-29 | 2011-02-08 | International Business Machines Corporation | Pre-generation of generic session keys for use in communicating within communications environments |
US10621157B2 (en) * | 2016-10-10 | 2020-04-14 | AlphaPoint | Immediate order book failover |
CN109145188A (zh) * | 2018-08-03 | 2019-01-04 | 上海点融信息科技有限责任公司 | 用于搜索区块链数据的方法、设备及计算机可读存储介质 |
-
2019
- 2019-02-21 CN CN201910130108.5A patent/CN110008738B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682528A (zh) * | 2016-12-31 | 2017-05-17 | 杭州复杂美科技有限公司 | 区块链加密检索方案 |
US20190052466A1 (en) * | 2017-08-11 | 2019-02-14 | Secure Open Systems, Inc. | Hash contract generation and verification system |
CN107995160A (zh) * | 2017-10-26 | 2018-05-04 | 常熟市第人民医院 | 一种基于云端管控的json数据包加密解密方法 |
CN108629027A (zh) * | 2018-05-09 | 2018-10-09 | 深圳壹账通智能科技有限公司 | 区块链上用户数据库重建方法、装置、设备及介质 |
CN109063016A (zh) * | 2018-07-11 | 2018-12-21 | 物数(上海)信息科技有限公司 | 区块链数据储存方法、装置、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110008738A (zh) | 2019-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110008738B (zh) | 用于区块链合约数据的缓存方法、装置、介质和计算设备 | |
US11157449B2 (en) | Managing data in storage according to a log structure | |
CN109766341B (zh) | 一种建立哈希映射的方法、装置、存储介质 | |
US8423594B2 (en) | Real-time hash map | |
US10817428B2 (en) | Method and electronic device for accessing data | |
EP2863310B1 (en) | Data processing method and apparatus, and shared storage device | |
US20210081388A1 (en) | Methods, apparatuses and computer program products for managing metadata of storage object | |
CN109684335B (zh) | 基于键值对的数据结构实现方法、装置、设备和存储介质 | |
CN109726206B (zh) | 区块链节点的数据处理方法、装置、设备和存储介质 | |
CN106331153B (zh) | 一种业务请求的过滤方法、装置及系统 | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
US20100228914A1 (en) | Data caching system and method for implementing large capacity cache | |
CN109656886B (zh) | 基于键值对的文件系统实现方法、装置、设备和存储介质 | |
CN112947856A (zh) | 一种内存数据的管理方法、装置、计算机设备及存储介质 | |
CN112948409A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN115203211A (zh) | 一种唯一哈希序号生成方法和系统 | |
KR20230026946A (ko) | 해싱을 사용하는 키 밸류 스토리지 장치 및 그것의 동작 방법 | |
KR101806394B1 (ko) | 모바일 dbms환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법 | |
CN118535578A (zh) | 一种基于哈希和LSM Tree的混合索引方法及键值存储系统 | |
US20220413729A1 (en) | Tiered Storage System with Defragmentation Based on Weighted Flash Fragmentation Factor | |
WO2024108939A1 (zh) | 一种多级映射框架、数据操作请求处理方法及系统 | |
CN103077099A (zh) | 一种块级快照系统及基于该系统的用户读写方法 | |
WO2024119797A1 (zh) | 一种数据处理方法、系统、设备以及存储介质 | |
CN116048428A (zh) | 数据请求处理方法、装置、存储设备和可读存储介质 | |
CN111857556A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |