CN110471923A - 一种区块链交易记录的处理方法及装置 - Google Patents
一种区块链交易记录的处理方法及装置 Download PDFInfo
- Publication number
- CN110471923A CN110471923A CN201910740313.3A CN201910740313A CN110471923A CN 110471923 A CN110471923 A CN 110471923A CN 201910740313 A CN201910740313 A CN 201910740313A CN 110471923 A CN110471923 A CN 110471923A
- Authority
- CN
- China
- Prior art keywords
- state
- transaction
- block
- record
- history
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 35
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 230000004048 modification Effects 0.000 claims abstract description 220
- 238000012986 modification Methods 0.000 claims abstract description 220
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000012790 confirmation Methods 0.000 claims abstract description 8
- 235000013399 edible fruits Nutrition 0.000 claims description 9
- 230000008439 repair process Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001737 promoting effect Effects 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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
-
- 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/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种区块链交易记录的处理方法及装置,方法包括:在区块链***确认第一交易生效后,确定第一交易对应的第一状态表;将根据第一交易得到的第一状态结果,更新至第一状态表中的第一状态记录;确定第一状态表具有对应的第一历史修改记录表后,在第一历史修改记录表中新增第一交易对应的第一修改信息,第一修改信息中包括第一状态结果。本技术方案用以保存历史修改记录,且在查询指定区块上的数据时,实现快速查询。
Description
技术领域
本发明实施例涉及金融科技(Fintech)领域,尤其涉及一种区块链交易记录的处理方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,区块链技术(BlockChain)也不例外,但由于金融、支付行业的安全性、实时性要求,也对区块链技术提出的更高的要求。
现有支持“状态模型”的区块链***中,当一个状态数据被修改,从旧值变成一个新值,这个过程里,包括修改前的值和修改后的新值,即产生了一次“修改记录”,当这个数据被多次修改,过去一系列的修改记录就成为了“历史修改记录”。现有技术中,不保存历史修改记录,只保留数据的最新值,即新修改的值直接覆盖旧值。
但该种不保存历史数据的方式存在不足,如当需要追溯在某个区块高度上哪个交易导致了某个数据的修改情况,则无法直接查询到,需要重放所有的交易才能查到。
发明内容
本发明实施例提供一种区块链交易记录的处理方法及装置,用以保存历史修改记录,且在查询指定区块上的数据时,实现快速查询。
一种区块链交易记录的处理方法,适用于区块链***,所述方法包括:
在所述区块链***确认第一交易生效后,确定所述第一交易对应的第一状态表;所述第一状态表仅用于记录各交易账户最新的状态结果;
将根据所述第一交易得到的第一状态结果,更新至所述第一状态表中的第一状态记录;所述第一状态记录用于记录所述第一交易对应的第一交易账户的最新的状态结果;
确定所述第一状态表具有对应的第一历史修改记录表后,在所述第一历史修改记录表中新增所述第一交易对应的第一修改信息,所述第一修改信息中包括所述第一状态结果。
上述技术方案中,在支持表结构的存储引擎的区块链***上,设置状态表和历史修改记录表,历史修改记录表用于保存交易账户的历史修改记录,且状态表和历史修改记录表独立存储,有利于存储和维护。在第一交易生效后,可以根据第一交易分别更新状态表和历史修改记录表,并且在接收到查询请求后,从历史修改记录表中查询指定区块高度上的状态结果,该技术方案无需遍历区块链上的所有区块,也无需回放所有关于交易账户的修改信息,可以直接从历史修改记录表中确定出待查询的值,实现高效快速的查找。
可选的,在所述确定所述第一交易对应的第一状态表之前,还包括:
通过各交易类型对应的智能合约,创建各交易类型对应的状态表和历史修改记录表;
所述确定所述第一交易对应的第一状态表,包括:
根据所述第一交易的交易类型,确定所述第一状态表。
上述技术方案中,通过各交易类型对应的智能合约,创建各交易类型对应的状态表和历史修改记录表,相当于通过交易类型对应的智能合约,将不同交易类型对应的状态表隔开,以及将不同交易类型对应的历史修改记录表隔开,实现不同的交易类型对应不同的表,有利于对状态表和历史修改记录表的管理。
可选的,所述第一状态记录包括所述第一交易账户及当前块高,所述当前块高用于指示所述第一交易对应的区块的块高;
所述第一修改信息还包括所述第一交易账户、所述当前块高和历史块高;所述历史块高用于指示所述第一交易账户的上一交易对应的区块的块高。
上述技术方案中,在状态记录中设置当前块高,以及在修改信息中设置当前块高和历史块高,可以将状态表和历史修改记录表结合起来,同时可以根据历史修改记录表中的各修改信息的当前块高和历史块高,设置历史修改记录表为数组结构或链式结构,方便根据查询指令中的指定高度查询相应的状态结果。
可选的,所述第一状态记录中还包括第一哈希关键值;所述第一哈希关键值是根据所述第一状态表的表名和所述第一交易账户确定的;
所述第一修改信息还包括第二哈希关键值;所述第二哈希关键值是根据所述第一历史修改记录表的表名、所述第一交易账户和所述当前块高确定的。
上述技术方案中,通过哈希值,可以保证全局唯一性,且快速索引到待查询的数据。
可选的,所述方法还包括:
接收交易查询指令,所述交易查询指令用于获取第二交易账户在指定块高时的状态结果;
根据所述交易查询指令中的交易类型,确定所述交易查询指令对应的第二状态表;
确定所述第二状态表中所述第二交易账户对应的第二状态记录中的当前块高;
在所述指定块高小于所述第二状态记录中的当前块高时,从所述第二状态表对应的第二历史修改记录表中确定所述交易查询指令对应的状态结果。
上述技术方案中,在接收到交易查询指令后,可以从交易查询指令对应的第二状态表中先确定当前块高,进而若确定指定块高小于当前块高,则确定从第二状态表对应的第二历史修改记录表确定交易查询指令对应的状态结果。
可选的,所述从所述第二状态表对应的第二历史修改记录表中确定所述交易查询指令对应的状态结果,包括:
确定所述第二历史修改记录表中所述第二交易账户对应的第二修改信息;所述第二修改信息中的当前块高为所述第二交易账户中各修改信息的当前块高中最接近所述指定块高的;所述最接近所述指定块高是指块高不大于所述指定块高的最大块高值;
将所述第二修改信息中的第二状态结果确定为所述交易查询指令对应的状态结果。
上述技术方案中,在第二历史修改记录表中确定第二交易账户对应的第二修改信息,该第二修改信息的当前块高与指定块高对应同一个状态结果,也就是说,第二修改信息的当前块高中记录有一条修改记录,第二修改信息的当前块高至指定块高中不再有新的修改记录,通过确定第二修改信息即可以确定出指定块高对应的状态结果。
可选的,所述确定所述第二历史修改记录表中所述第二交易账户对应的第二修改信息,包括:
通过索引二分法、遍历法或跳表法查询所述第二历史修改记录表,确定所述第二交易账户对应的第二修改信息。
上述技术方案中,可以通过多种方式从第二历史修改记录表中确定第二修改信息。
可选的,还包括:
在所述指定块高不小于所述第二状态记录中的当前块高时,从所述第二状态表中确定所述第二交易账户对应的第二状态记录;
将所述第二状态记录中的第三状态结果确定为所述交易查询指令对应的状态结果。
上述技术方案中,在接收到交易查询指令后,可以从交易查询指令对应的第二状态表中先确定当前块高,进而若确定指定块高不小于当前块高,则可以说明当前块高至指定块高之间没有对该交易账户的状态结果进行修改,也就是说,第二状态记录中的第三状态结果即交易查询指令对应的状态结果。
相应的,本发明实施例还提供了一种区块链交易记录的处理装置,适用于区块链***,所述装置包括:
处理单元,用于在所述区块链***确认第一交易生效后,确定所述第一交易对应的第一状态表;所述第一状态表仅用于记录各交易账户最新的状态结果;
更新单元,用于将根据所述第一交易得到的第一状态结果,更新至所述第一状态表中的第一状态记录;所述第一状态记录用于记录所述第一交易对应的第一交易账户的最新的状态结果;
所述更新单元,还用于确定所述第一状态表具有对应的第一历史修改记录表后,在所述第一历史修改记录表中新增所述第一交易对应的第一修改信息,所述第一修改信息中包括所述第一状态结果。
可选的,所述处理单元还用于:
在所述确定所述第一交易对应的第一状态表之前,通过各交易类型对应的智能合约,创建各交易类型对应的状态表和历史修改记录表;
所述处理单元具体用于:
根据所述第一交易的交易类型,确定所述第一状态表。
可选的,所述第一状态记录包括所述第一交易账户及当前块高,所述当前块高用于指示所述第一交易对应的区块的块高;
所述第一修改信息还包括所述第一交易账户、所述当前块高和历史块高;所述历史块高用于指示所述第一交易账户的上一交易对应的区块的块高。
可选的,所述第一状态记录中还包括第一哈希关键值;所述第一哈希关键值是根据所述第一状态表的表名和所述第一交易账户确定的;
所述第一修改信息还包括第二哈希关键值;所述第二哈希关键值是根据所述第一历史修改记录表的表名、所述第一交易账户和所述当前块高确定的。
可选的,所述处理单元还用于:
接收交易查询指令,所述交易查询指令用于获取第二交易账户在指定块高时的状态结果;
根据所述交易查询指令中的交易类型,确定所述交易查询指令对应的第二状态表;
确定所述第二状态表中所述第二交易账户对应的第二状态记录中的当前块高;
在所述指定块高小于所述第二状态记录中的当前块高时,从所述第二状态表对应的第二历史修改记录表中确定所述交易查询指令对应的状态结果。
可选的,所述处理单元具体用于:
确定所述第二历史修改记录表中所述第二交易账户对应的第二修改信息;所述第二修改信息中的当前块高为所述第二交易账户中各修改信息的当前块高中最接近所述指定块高的;所述最接近所述指定块高是指块高不大于所述指定块高的最大块高值;
将所述第二修改信息中的第二状态结果确定为所述交易查询指令对应的状态结果。
可选的,所述处理单元具体用于:
通过索引二分法、遍历法或跳表法查询所述第二历史修改记录表,确定所述第二交易账户对应的第二修改信息。
可选的,所述处理单元还用于:
在所述指定块高不小于所述第二状态记录中的当前块高时,从所述第二状态表中确定所述第二交易账户对应的第二状态记录;
将所述第二状态记录中的第三状态结果确定为所述交易查询指令对应的状态结果。
相应的,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述区块链交易记录的处理方法。
相应的,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述区块链交易记录的处理方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种区块链交易记录的处理方法的流程示意图;
图2为本发明实施例提供的一种交易记录的查询方法的流程示意图;
图3为本发明实施例提供的第一种历史修改记录表结构;
图4为本发明实施例提供的第二种历史修改记录表结构;
图5为本发明实施例提供的第三种历史修改记录表结构;
图6为本发明实施例提供的一种区块链交易记录的处理装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供区块链交易记录的处理方法适用于区块链***,区块链***是由多个区块链节点组成的P2P(Peer to Peer,对等)网络,区块链节点之间可以互相直接通信。一个区块链节点产生的数据,可以同时向多个区块链节点发送广播,也可以向其他任意节点查询和获取数据。
区块链***中存在状态表,状态表是由与之相同交易类型的智能合约创建的,状态表用于记录该交易类型的各交易账户的最新的状态结果。某个交易账户的状态结果可以以状态记录的形式保存,也即状态记录用于记录该交易账户的最新状态结果。可选的,状态结果可以由该智能合约生成,相当于,状态表用于保存区块链上智能合约产生的状态结果的“当前值”。
状态表可以包括区块链***中各交易账户和各交易账户对应的最新状态的结果。如第一状态表为余额表,则状态表包括各交易账户最新的余额值,状态表的表名可以为余额表(t_Balance),表字段包括交易账户(Name)和余额值(Balance)。
状态表的表字段还可以包括哈希关键值(Key)和当前块高(Blocknum)。
哈希关键值理解为状态表中的索引值,用于索引交易账户对应的状态结果,可选的,哈希关键值可以是根据状态表的表名和交易账户确定的,示例性的,哈希关键值的生成方式可以为SHA256(表名+“-”+主键),以保证全局唯一性。如以交易账户为主键,余额表里有一个交易账户的名字为“Alice”,则Key=SHA256(“t_Balance-Alice”)。
当前块高用于指示状态结果对应的交易被打包至区块的区块高度,理解为,区块链的交易被确认后,将该交易打包至区块并上链,智能合约根据该交易对交易账户的状态结果进行修改,并写入对应的状态表中,其中,会将该区块上链时所在的区块高度(也即区块链的当前块高)一起写入对应的状态表中。
本发明提供一种用于表征余额的状态表,该状态表的表名为t_Balance,表字段包括Key、Blocknum、Name、Balance,如表1所示。该状态表中包括各交易账户对应的状态记录,每个状态记录用于记录对应交易账户的最新状态结果。
表1
需要说明的是,状态表可以为余额表,也可以为其他交易类型对应的表,如成员表(t_member),订单表(t_order)等。
本发明实施例中,智能合约在创建状态表时,可以同时创建与状态表相对应的历史修改记录表,相当于,各交易类型对应的智能合约可以创建各交易类型对应的状态表和历史修改记录表。状态表用于记录某个交易账户的最新的状态结果,而历史修改记录表用于记录该交易账户的所有历史状态结果,状态表中针对一个交易账户仅有一条状态记录,而历史修改记录表中针对一个交易账户,有N次修改,则有N条修改信息,其中N大于等于1。
当执行创建状态表的时候,传入的创建指令包括是否生成历史修改记录表。对不关注历史数据的,可以不生成历史修改记录表,以减少存储开销。如指定了生成历史修改记录表,则在底层存储里实际生成了两张表。
在区块链数据库里,可以记录一条状态表的创建记录,用于表征是否创建了该状态表对应的历史修改记录表,该创建记录也可以是以表的形式存储,如表2所示,可以包括状态表的表名和是否生成历史修改记录表。
表2
状态表的表名 | 是否生成历史修改记录表 |
t_Balance | True |
t_member | True |
t_order | False |
历史修改记录表的表名可以为对应状态表的表名加后缀“_history”,历史修改记录表可以比状态表多一个字段,即上一个历史值的区块高度(Prevblocknum),用于记录这一个状态结果的上一次被改变时的区块高度,即上一次被修改时的当前块高,可以通过上一个历史值的区块高度关联到上一条历史数据。历史修改记录表中的哈希关键值可以是根据历史修改记录表的表名和交易账户、当前块高确定的,示例性的,历史修改记录表中的哈希关键值的生成方式可以为SHA256(表名+主键+当前块高),如以交易账户为主键,余额表里有一个交易账户的名字为“Alice”,则Key=SHA256(“t_Balance_history-Alice-2”)。
结合表1,本发明提供一种用于表征余额的历史修改记录表,该历史修改记录表的表名为t_Balance_history,表字段包括Key、Blocknum、Name、Balance、Prevblocknum,如表3中的Alice为例,Alice的历史修改记录表中包括每次的修改信息,修改信息用于记录Alice的历史状态结果。其中,Prevblocknum为-1,表示这条记录是新创建时所***的。在修改数据时,已知Alice的Balance在区块高度2时为100,在区块高度为3至区块高度为9的区块之间都没有修改,然后区块高度为10时,另一个交易将Alice的Balance修改为200。
表3
基于上述描述,图1示例性的示出了本发明实施例提供的一种区块链交易记录的处理方法的流程,该流程可以由区块链交易记录的处理装置执行。
如图1所示,该流程具体包括:
步骤101,在区块链***确认第一交易生效后,确定第一交易对应的第一状态表;
步骤102,将根据第一交易得到的第一状态结果,更新至第一状态表中的第一状态记录;
步骤103,确定第一状态表具有对应的第一历史修改记录表后,在第一历史修改记录表中新增第一交易对应的第一修改信息。
其中,第一状态表即用于记录各交易账户最新的状态结果,第一状态表为与第一交易相同交易类型的状态表,第一状态表中包括各交易账户对应的状态记录。根据第一交易即可以更新第一交易在第一状态表中对应的第一交易账户的第一状态记录,且第一状态记录即用于记录该第一交易账户的最新的状态结果。
在根据第一交易得到的第一状态结果后,可以将该第一状态结果更新至第一状态表中的第一状态记录,同时将该第一状态结果记录在第一修改信息中后添加至第一历史修改记录表中。
本发明实施例中,存在与第一状态表相对应的第一历史修改记录表,也即在步骤101之前,通过第一状态表对应的智能合约创建与第一状态表相同交易类型的第一历史记录表。步骤101中,可以确定第一交易所对应的交易类型,并根据交易类型,确定该交易类型对应的第一状态表。
在将该第一状态记录更新至第一状态表中时,该第一交易所对应的当前块高和第一交易账户可以一起记录在第一状态记录中,此时,当前块高指的是第一交易对应的区块的块高。在将第一修改信息添加至第一历史修改记录表中时,可以将该当前块高、第一交易账户和上一次修改所对应的历史块高一起记录在第一修改信息中,该历史块高即为第一交易账户的第一交易之前的上一次交易所对应的区块的块高。
可选的,第一状态记录中还包括第一哈希关键值,第一哈希关键值是根据第一状态表的表名和第一交易账户确定的;第一修改信息还包括第二哈希关键值;第二哈希关键值是根据第一历史修改记录表的表名、第一交易账户和当前块高确定的。
结合表3举例来说,Alice的当前余额为400,且记录在区块高度为21的区块上,且此时状态表中,Alice的当前余额为400,且对应区块高度为21,状态记录可以如表4(a)所示。若区块链的当前区块高度为30,接收到一条改变Alice的余额的交易,该交易指示Alice的余额变为500,则状态表中,Alice的当前余额变为500,且对应区块高度为30,可以如表4(b)所示;新增一条修改信息在表3中,新增的修改信息可以如表4(c)所示,其中。Prevblocknum为21指的是,上一次修改是在区块高度为21的时候。
表4(a)
表4(b)
表4(c)
上述实施例详细阐述了区块链交易记录的处理方法,具体的,将交易账户的状态记录更新至状态表中,以及将交易账户的修改信息添加至历史修改记录表中。本发明实施例还提供基于状态表和历史修改记录表的交易记录的查询方法。
流程图可以图2所示。
步骤201,接收交易查询指令;
步骤202,根据交易查询指令中的交易类型,确定交易查询指令对应的第二状态表;
步骤203,确定第二状态表中第二交易账户对应的第二状态记录中的当前块高;
步骤204,在指定块高小于第二状态记录中的当前块高时,从第二状态表对应的第二历史修改记录表中确定交易查询指令对应的状态结果。
其中,交易查询指令中包括待查询的指定块高和交易账户,如交易查询指令为“Alice,15”,则代表查询Alice在区块高度为15时的状态结果。也就是说,交易查询指令用于获取第二交易账户在指定块高时的状态结果。
可以先确定第二状态表中第二状态记录的当前块高,并比较该第二状态记录的当前块高与指定块高的大小。分以下两种情况:
情况一:指定块高小于第二状态记录中的当前块高,则确定第二历史修改记录表中第二交易账户对应的第二修改信息,将第二修改信息中的第二状态结果确定为交易查询指令对应的状态结果;
情况二:指定块高不小于第二状态记录中的当前块高,则从第二状态表中确定第二交易账户对应的第二状态记录,将第二状态记录中的第三状态结果确定为交易查询指令对应的状态结果。
情况一中,第二修改信息的当前块高为第二交易账户中各修改信息的当前块高中最接近指定块高的,其中,最接近指定块高是指块高不大于指定块高的最大块高值。以表3为例,若指定块高为15,则确定区块高度为10上的修改信息则为第二修改信息。
在确定第二历史修改记录表中第二交易账户对应的第二修改信息时,可以采用索引二分法、遍历法或跳表法查询第二历史修改记录表,进而确定第二交易账户对应的第二修改信息。下面分别对索引二分法、遍历法或跳表法查询第二历史修改记录表进行说明。
(一)索引二分法
当历史修改记录表使用RDBMS的数据库表存储,或者存储介质支持按下标随机检索时,对区块链历史的查询,可以使用二分数据查询法,二分查询法可以将查询的预期遍历次数从n减少到log(n)。
支持随机检索的历史修改记录表存储,每条记录均有Index(下文称为下标)的属性,下标属性唯一自增,历史修改记录表支持随机检索任意下标的数据,亦能检索当前的最大下标,历史修改记录表的结构可以如图3所示。基于如图3的历史修改记录表结构,可以进行历史数据的二分查找。
以查询Alice的余额为例。设状态表如表5(a)所示,历史表如表5(b)所示。查询Alice的余额当前值,采用“Alice”为Key,到状态表直接查询,即可获得当前值;如未建立历史修改记录表,则不能查询历史修改记录;如建立历史修改记录表,则可以从历史修改记录表中查询Alice的在某个指定区块高度上的历史记录。
表5(a)
表5(b)
根据历史修改记录表的结构,采用二分查找法。首先,查询状态表,得到Alice余额这条记录最新的下标和区块高度,本示例里下标是4,区块高度是21;如果输入的指定高度大于最新修改高度,则立刻返回状态表里的当前值;如果查询高度小于最新修改高度,如15,意味着要找到一个区块高度小于高度15以下的修改值。
具体步骤如下:
步骤301,从历史修改记录表的中间位置开始查询,即查询当前下标/2处(取整)的记录,此处查询4/2=2,即下标为2的记录;
步骤302,如果查询到的记录的区块高度值小于等于查询的目标值(指定高度),则在下标2到下标4的范围的中间位置开始查询,如果查询到的记录的区块高度大于查询的目标值,则在下标0至2的范围的中间位置开始查询;
步骤302,本示例中,查询到下标为2的记录的Blocknum=10,小于目标值15,则在下标2到下标4的范围中,查询2+2/2处取整的记录,即第下标为3的记录;
步骤303,查询到下标为3的记录的Blocknum=16,大于目标值15,根据历史记录查询规则,选取小于15的最大Blocknum=10的记录,即下标为2的记录;
步骤304,查询完毕,查询到状态记录为Blocknum=10,Balance=200。
(二)遍历法
遍历法即从历史修改记录表的最新一条记录开始,依次获取该记录的PrevBlocknum,直到小于指定高度为止。历史修改记录表的结构可以如图4所示。
以查询Alice的余额为例。设状态表如表6(a)所示,历史表如表6(b)所示。查询Alice的余额当前值,采用“Alice”为Key,到状态表直接查询,即可获得当前值;如未建立历史修改记录表,则不能查询历史修改记录;如建立历史修改记录表,则可以从历史修改记录表中查询Alice的在某个指定区块高度上的历史记录。
表6(a)
表6(b)
根据历史修改记录表的结构,采用遍历法。首先,查询状态表,得到Alice余额这条记录最新的区块高度,本示例里区块高度是21;如果输入的指定高度大于最新修改高度,则立刻返回状态表里的当前值;如果查询高度小于最新修改高度,如15,意味着要找到一个区块高度小于高度15以下的修改值。
具体步骤如下:
步骤401,计算Key=SHA256(“t_Balance_history-Alice-21”),查询历史修改记录表;获得Balance=400,Prevblocknum=16;其中,Prevblocknum=16大于指定高度15;
步骤402,计算Key=SHA256(“t_Balance_history-Alice-16”),查询历史修改记录表;获得Balance=300,Prevblocknum=10;其中,Prevblocknum=10小于指定高度15;
步骤403,计算Key=SHA256(“t_Balance_history-Alice-10”),查询历史修改记录表;获得Balance=200,Prevblocknum=2;
因为区块高度10是第一个小于高度15的记录,则可以返回Balance=200。
遍历法的复杂度取决于某个交易账户的记录被修改的次数,如,Alice的历史修改记录和Bob的无关,因为交易账户是不同的主键,历史修改记录表的Key考虑了交易账户做为主键,两人的历史修改记录都在同一个表里,但是查询时互不干扰。
(三)跳表法
当存储不支持随机检索,仅支持键值查询时,可以在遍历查询法的基础上,增加一组跳表,用来提升查询速度。在遍历查询法所涉及的数据结构中,增加一个索引表,索引表可配置规则,如每两条记录增加一条索引记录,如图5所示。在创建历史记录时,同时生成跳表的索引记录,规则为每新增两条历史记录,新增一条跳表记录。
以查询Alice的余额为例。设状态表如表7(a)所示,历史表如表7(b)所示,跳表如表7(c)所示。查询Alice的余额当前值,采用“Alice”为Key,到状态表直接查询,即可获当前值;如未建立历史修改记录表,则不能查询历史修改记录;如建立历史修改记录表,则可以从历史修改记录表中查询Alice的在某个指定区块高度上的历史记录。
表7(a)
表7(b)
表7(c)
根据历史修改记录表的结构,采用跳表法。首先,查询状态表,得到Alice余额这条记录最新的区块高度,本示例里区块高度是21;如果输入的指定高度大于最新修改高度,则立刻返回状态表里的当前值;如果查询高度小于最新修改高度,如15,意味着要找到一个区块高度小于高度15以下的修改值。
具体步骤如下:
步骤501,从跳表的起始位置开始查询,查询到Blocknum=21,大于指定高度15;
步骤502,查询跳表的下一跳,查询到Blocknum=10,小于指定高度15;
步骤503,确认指定高度15在这Blocknum=10和Blocknum=21之间,则从Blocknum=21的历史记录开始遍历,查询到Blocknum=10的记录;
步骤504,查询到记录Blocknum=10,Balance=200。
跳表查询法可以将查询的预期遍历次数减半,从n减少到n/2,如需要更高的查询效率时,可引入多级跳表,在当前跳表上再叠加跳表,最终可将遍历次数从n减少到log(n)次。
上述实施例中,在支持表结构的存储引擎的区块链***上,设置状态表和历史修改记录表,历史修改记录表用于保存交易账户的历史修改记录,且状态表和历史修改记录表独立存储,有利于存储和维护。在第一交易生效后,可以根据第一交易分别更新状态表和历史修改记录表,并且在接收到查询请求后,从历史修改记录表中查询指定区块高度上的状态结果,该技术方案无需遍历区块链上的所有区块,也无需回放所有关于交易账户的修改信息,可以直接从历史修改记录表中确定出待查询的值,实现高效快速的查找。
基于同一发明构思,图6示例性的示出了本发明实施例提供的一种区块链交易记录的处理装置的结构,该装置可以执行区块链交易记录的处理方法的流程。
该装置,适用于区块链***,包括:
处理单元601,用于在所述区块链***确认第一交易生效后,确定所述第一交易对应的第一状态表;所述第一状态表仅用于记录各交易账户最新的状态结果;
更新单元602,用于将根据所述第一交易得到的第一状态结果,更新至所述第一状态表中的第一状态记录;所述第一状态记录用于记录所述第一交易对应的第一交易账户的最新的状态结果;
所述更新单元602,还用于确定所述第一状态表具有对应的第一历史修改记录表后,在所述第一历史修改记录表中新增所述第一交易对应的第一修改信息,所述第一修改信息中包括所述第一状态结果。
可选的,所述处理单元601还用于:
在所述确定所述第一交易对应的第一状态表之前,通过各交易类型对应的智能合约,创建各交易类型对应的状态表和历史修改记录表;
所述处理单元601具体用于:
根据所述第一交易的交易类型,确定所述第一状态表。
可选的,所述第一状态记录包括所述第一交易账户及当前块高,所述当前块高用于指示所述第一交易对应的区块的块高;
所述第一修改信息还包括所述第一交易账户、所述当前块高和历史块高;所述历史块高用于指示所述第一交易账户的上一交易对应的区块的块高。
可选的,所述第一状态记录中还包括第一哈希关键值;所述第一哈希关键值是根据所述第一状态表的表名和所述第一交易账户确定的;
所述第一修改信息还包括第二哈希关键值;所述第二哈希关键值是根据所述第一历史修改记录表的表名、所述第一交易账户和所述当前块高确定的。
可选的,所述处理单元601还用于:
接收交易查询指令,所述交易查询指令用于获取第二交易账户在指定块高时的状态结果;
根据所述交易查询指令中的交易类型,确定所述交易查询指令对应的第二状态表;
确定所述第二状态表中所述第二交易账户对应的第二状态记录中的当前块高;
在所述指定块高小于所述第二状态记录中的当前块高时,从所述第二状态表对应的第二历史修改记录表中确定所述交易查询指令对应的状态结果。
可选的,所述处理单元601具体用于:
确定所述第二历史修改记录表中所述第二交易账户对应的第二修改信息;所述第二修改信息中的当前块高为所述第二交易账户中各修改信息的当前块高中最接近所述指定块高的;所述最接近所述指定块高是指块高不大于所述指定块高的最大块高值;
将所述第二修改信息中的第二状态结果确定为所述交易查询指令对应的状态结果。
可选的,所述处理单元601具体用于:
通过索引二分法、遍历法或跳表法查询所述第二历史修改记录表,确定所述第二交易账户对应的第二修改信息。
可选的,所述处理单元601还用于:
在所述指定块高不小于所述第二状态记录中的当前块高时,从所述第二状态表中确定所述第二交易账户对应的第二状态记录;
将所述第二状态记录中的第三状态结果确定为所述交易查询指令对应的状态结果。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述区块链交易记录的处理方法。
基于同一发明构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述区块链交易记录的处理方法。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (18)
1.一种区块链交易记录的处理方法,其特征在于,所述方法包括:
在所述区块链***确认第一交易生效后,确定所述第一交易对应的第一状态表;所述第一状态表仅用于记录各交易账户最新的状态结果;
将根据所述第一交易得到的第一状态结果,更新至所述第一状态表中的第一状态记录;所述第一状态记录用于记录所述第一交易对应的第一交易账户的最新的状态结果;
确定所述第一状态表具有对应的第一历史修改记录表后,在所述第一历史修改记录表中新增所述第一交易对应的第一修改信息,所述第一修改信息中包括所述第一状态结果。
2.如权利要求1所述的方法,其特征在于,在所述确定所述第一交易对应的第一状态表之前,还包括:
通过各交易类型对应的智能合约,创建各交易类型对应的状态表和历史修改记录表;
所述确定所述第一交易对应的第一状态表,包括:
根据所述第一交易的交易类型,确定所述第一状态表。
3.如权利要求1所述的方法,其特征在于,所述第一状态记录包括所述第一交易账户及当前块高,所述当前块高用于指示所述第一交易对应的区块的块高;
所述第一修改信息还包括所述第一交易账户、所述当前块高和历史块高;所述历史块高用于指示所述第一交易账户的上一交易对应的区块的块高。
4.如权利要求3所述的方法,其特征在于,所述第一状态记录中还包括第一哈希关键值;所述第一哈希关键值是根据所述第一状态表的表名和所述第一交易账户确定的;
所述第一修改信息还包括第二哈希关键值;所述第二哈希关键值是根据所述第一历史修改记录表的表名、所述第一交易账户和所述当前块高确定的。
5.如权利要求3所述的方法,其特征在于,所述方法还包括:
接收交易查询指令,所述交易查询指令用于获取第二交易账户在指定块高时的状态结果;
根据所述交易查询指令中的交易类型,确定所述交易查询指令对应的第二状态表;
确定所述第二状态表中所述第二交易账户对应的第二状态记录中的当前块高;
在所述指定块高小于所述第二状态记录中的当前块高时,从所述第二状态表对应的第二历史修改记录表中确定所述交易查询指令对应的状态结果。
6.如权利要求5所述的方法,其特征在于,所述从所述第二状态表对应的第二历史修改记录表中确定所述交易查询指令对应的状态结果,包括:
确定所述第二历史修改记录表中所述第二交易账户对应的第二修改信息;所述第二修改信息中的当前块高为所述第二交易账户中各修改信息的当前块高中最接近所述指定块高的;所述最接近所述指定块高是指块高不大于所述指定块高的最大块高值;
将所述第二修改信息中的第二状态结果确定为所述交易查询指令对应的状态结果。
7.如权利要求6所述的方法,其特征在于,所述确定所述第二历史修改记录表中所述第二交易账户对应的第二修改信息,包括:
通过索引二分法、遍历法或跳表法查询所述第二历史修改记录表,确定所述第二交易账户对应的第二修改信息。
8.如权利要求5所述的方法,其特征在于,还包括:
在所述指定块高不小于所述第二状态记录中的当前块高时,从所述第二状态表中确定所述第二交易账户对应的第二状态记录;
将所述第二状态记录中的第三状态结果确定为所述交易查询指令对应的状态结果。
9.一种区块链交易记录的处理装置,其特征在于,所述装置包括:
处理单元,用于在所述区块链***确认第一交易生效后,确定所述第一交易对应的第一状态表;所述第一状态表仅用于记录各交易账户最新的状态结果;
更新单元,用于将根据所述第一交易得到的第一状态结果,更新至所述第一状态表中的第一状态记录;所述第一状态记录用于记录所述第一交易对应的第一交易账户的最新的状态结果;
所述更新单元,还用于确定所述第一状态表具有对应的第一历史修改记录表后,在所述第一历史修改记录表中新增所述第一交易对应的第一修改信息,所述第一修改信息中包括所述第一状态结果。
10.如权利要求9所述的装置,其特征在于,所述处理单元还用于:
在所述确定所述第一交易对应的第一状态表之前,通过各交易类型对应的智能合约,创建各交易类型对应的状态表和历史修改记录表;
所述处理单元具体用于:
根据所述第一交易的交易类型,确定所述第一状态表。
11.如权利要求9所述的装置,其特征在于,所述第一状态记录包括所述第一交易账户及当前块高,所述当前块高用于指示所述第一交易对应的区块的块高;
所述第一修改信息还包括所述第一交易账户、所述当前块高和历史块高;所述历史块高用于指示所述第一交易账户的上一交易对应的区块的块高。
12.如权利要求11所述的装置,其特征在于,所述第一状态记录中还包括第一哈希关键值;所述第一哈希关键值是根据所述第一状态表的表名和所述第一交易账户确定的;
所述第一修改信息还包括第二哈希关键值;所述第二哈希关键值是根据所述第一历史修改记录表的表名、所述第一交易账户和所述当前块高确定的。
13.如权利要求11所述的装置,其特征在于,所述处理单元还用于:
接收交易查询指令,所述交易查询指令用于获取第二交易账户在指定块高时的状态结果;
根据所述交易查询指令中的交易类型,确定所述交易查询指令对应的第二状态表;
确定所述第二状态表中所述第二交易账户对应的第二状态记录中的当前块高;
在所述指定块高小于所述第二状态记录中的当前块高时,从所述第二状态表对应的第二历史修改记录表中确定所述交易查询指令对应的状态结果。
14.如权利要求13所述的装置,其特征在于,所述处理单元具体用于:
确定所述第二历史修改记录表中所述第二交易账户对应的第二修改信息;所述第二修改信息中的当前块高为所述第二交易账户中各修改信息的当前块高中最接近所述指定块高的;所述最接近所述指定块高是指块高不大于所述指定块高的最大块高值;
将所述第二修改信息中的第二状态结果确定为所述交易查询指令对应的状态结果。
15.如权利要求14所述的装置,其特征在于,所述处理单元具体用于:
通过索引二分法、遍历法或跳表法查询所述第二历史修改记录表,确定所述第二交易账户对应的第二修改信息。
16.如权利要求13所述的装置,其特征在于,所述处理单元还用于:
在所述指定块高不小于所述第二状态记录中的当前块高时,从所述第二状态表中确定所述第二交易账户对应的第二状态记录;
将所述第二状态记录中的第三状态结果确定为所述交易查询指令对应的状态结果。
17.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至8任一项所述的方法。
18.一种计算机可读非易失性存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1至8任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910740313.3A CN110471923B (zh) | 2019-08-12 | 2019-08-12 | 一种区块链交易记录的处理方法及装置 |
PCT/CN2020/104621 WO2021027531A1 (zh) | 2019-08-12 | 2020-07-24 | 一种区块链交易记录的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910740313.3A CN110471923B (zh) | 2019-08-12 | 2019-08-12 | 一种区块链交易记录的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110471923A true CN110471923A (zh) | 2019-11-19 |
CN110471923B CN110471923B (zh) | 2024-01-16 |
Family
ID=68511440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910740313.3A Active CN110471923B (zh) | 2019-08-12 | 2019-08-12 | 一种区块链交易记录的处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110471923B (zh) |
WO (1) | WO2021027531A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111415229A (zh) * | 2020-04-21 | 2020-07-14 | 昆明大棒客科技有限公司 | 基于区块链的电子商务交易方法、装置和设备 |
WO2021027531A1 (zh) * | 2019-08-12 | 2021-02-18 | 深圳前海微众银行股份有限公司 | 一种区块链交易记录的处理方法及装置 |
WO2021115002A1 (zh) * | 2019-12-12 | 2021-06-17 | 深圳前海微众银行股份有限公司 | 一种区块链交易记录的处理方法及装置 |
CN113256419A (zh) * | 2021-05-21 | 2021-08-13 | 上海佩俪信息科技有限公司 | 一种区块链交易检索方法及*** |
CN113468224A (zh) * | 2021-09-03 | 2021-10-01 | 支付宝(杭州)信息技术有限公司 | 在区块链中存储及查询状态数据、执行交易的方法及装置 |
CN113505138A (zh) * | 2021-09-06 | 2021-10-15 | 支付宝(杭州)信息技术有限公司 | 区块链***中状态证明及执行区块的方法及装置 |
CN113961568A (zh) * | 2021-12-22 | 2022-01-21 | 南京金宁汇科技有限公司 | 基于区块链的链式数据结构的区块快速查找方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108282474A (zh) * | 2018-01-18 | 2018-07-13 | 山东大学 | 基于区块链的数字资产交易一致性的维护方法 |
US20180293583A1 (en) * | 2017-04-05 | 2018-10-11 | Samsung Sds Co., Ltd. | Method for calculating confirmation reliability for blockchain based transaction and blockchain network monitoring system for performing the method |
CN109063016A (zh) * | 2018-07-11 | 2018-12-21 | 物数(上海)信息科技有限公司 | 区块链数据储存方法、装置、电子设备、存储介质 |
CN110008233A (zh) * | 2019-03-31 | 2019-07-12 | 杭州复杂美科技有限公司 | 一种信息查询和共识方法、***、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170140375A1 (en) * | 2015-11-15 | 2017-05-18 | Michael Kunstel | System and Method for Permissioned Distributed Block Chain |
CN106934619B (zh) * | 2017-03-13 | 2021-07-06 | 杭州复杂美科技有限公司 | 一种交易记录的方法及*** |
CN109447791B (zh) * | 2018-11-09 | 2021-07-16 | 北京邮电大学 | 一种基于区块链的资金交易方法及装置 |
CN110096522B (zh) * | 2019-05-15 | 2023-07-28 | 西安电子科技大学 | 一种支持关系型检索的区块链数据处理方法、装置及设备 |
CN110471923B (zh) * | 2019-08-12 | 2024-01-16 | 深圳前海微众银行股份有限公司 | 一种区块链交易记录的处理方法及装置 |
-
2019
- 2019-08-12 CN CN201910740313.3A patent/CN110471923B/zh active Active
-
2020
- 2020-07-24 WO PCT/CN2020/104621 patent/WO2021027531A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180293583A1 (en) * | 2017-04-05 | 2018-10-11 | Samsung Sds Co., Ltd. | Method for calculating confirmation reliability for blockchain based transaction and blockchain network monitoring system for performing the method |
CN108282474A (zh) * | 2018-01-18 | 2018-07-13 | 山东大学 | 基于区块链的数字资产交易一致性的维护方法 |
CN109063016A (zh) * | 2018-07-11 | 2018-12-21 | 物数(上海)信息科技有限公司 | 区块链数据储存方法、装置、电子设备、存储介质 |
CN110008233A (zh) * | 2019-03-31 | 2019-07-12 | 杭州复杂美科技有限公司 | 一种信息查询和共识方法、***、设备及存储介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021027531A1 (zh) * | 2019-08-12 | 2021-02-18 | 深圳前海微众银行股份有限公司 | 一种区块链交易记录的处理方法及装置 |
WO2021115002A1 (zh) * | 2019-12-12 | 2021-06-17 | 深圳前海微众银行股份有限公司 | 一种区块链交易记录的处理方法及装置 |
CN111415229A (zh) * | 2020-04-21 | 2020-07-14 | 昆明大棒客科技有限公司 | 基于区块链的电子商务交易方法、装置和设备 |
CN113256419A (zh) * | 2021-05-21 | 2021-08-13 | 上海佩俪信息科技有限公司 | 一种区块链交易检索方法及*** |
CN113256419B (zh) * | 2021-05-21 | 2022-09-02 | 上海简苏网络科技有限公司 | 一种区块链交易检索方法及*** |
CN113468224A (zh) * | 2021-09-03 | 2021-10-01 | 支付宝(杭州)信息技术有限公司 | 在区块链中存储及查询状态数据、执行交易的方法及装置 |
CN113505138A (zh) * | 2021-09-06 | 2021-10-15 | 支付宝(杭州)信息技术有限公司 | 区块链***中状态证明及执行区块的方法及装置 |
CN113505138B (zh) * | 2021-09-06 | 2021-12-21 | 支付宝(杭州)信息技术有限公司 | 区块链***中状态证明及执行区块的方法及装置 |
WO2023029731A1 (zh) * | 2021-09-06 | 2023-03-09 | 支付宝(杭州)信息技术有限公司 | 区块链***中状态证明及执行区块的方法及装置 |
CN113961568A (zh) * | 2021-12-22 | 2022-01-21 | 南京金宁汇科技有限公司 | 基于区块链的链式数据结构的区块快速查找方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110471923B (zh) | 2024-01-16 |
WO2021027531A1 (zh) | 2021-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110471923A (zh) | 一种区块链交易记录的处理方法及装置 | |
JP2020521254A (ja) | サービス・データをブロックチェーン・システムに書き込むための方法およびデバイス | |
CN104408159B (zh) | 一种数据关联、加载、查询方法及装置 | |
CN107710193A (zh) | 分布式计算环境的数据放置控制 | |
CN104809129B (zh) | 一种分布式数据存储方法、装置和*** | |
CN109146447A (zh) | 区块链透明分片方法、装置及*** | |
CN105550274B (zh) | 双副本并行数据库的查询方法和装置 | |
KR20130101349A (ko) | 데이터베이스 미들웨어를 이용한 데이터 관리 시스템 및 방법 | |
US9210219B2 (en) | Systems and methods for consistent hashing using multiple hash rings | |
CN107783980A (zh) | 索引数据生成及数据查询方法及装置、存储和查询*** | |
CN104182405A (zh) | 一种连接查询方法及装置 | |
CN106202092A (zh) | 数据处理的方法及*** | |
CN106407244A (zh) | 基于多数据库的数据查询方法、***和装置 | |
CN107180031B (zh) | 分布式存储方法及装置、数据处理方法及装置 | |
WO2021057482A1 (zh) | 一种区块链中布隆过滤器的生成方法及装置 | |
CN109087030A (zh) | 实现c2c通用移动众包的方法、通用移动众包服务器及*** | |
CN106815258A (zh) | 一种数据存储方法和协调节点 | |
CN108197187A (zh) | 查询语句的优化方法、装置、存储介质和计算机设备 | |
CN103488672B (zh) | 在关联存储器内创建优化比较标准 | |
CN109413202A (zh) | 区块链交易信息的排序***及方法 | |
JP2017532658A (ja) | 効率的な1対1結合のための方法 | |
CN109033173A (zh) | 一种用于生成多维指标数据的数据处理方法及装置 | |
US20150293971A1 (en) | Distributed queries over geometric objects | |
CN108399175A (zh) | 一种数据存储、查询方法及其装置 | |
CN107291746A (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 |