一种基于时序属性的区块链交易提交、编辑和查询方法技术

技术编号:30829587 阅读:19 留言:0更新日期:2021-11-18 12:39
本发明专利技术公开了一种基于时序属性的区块链交易提交、编辑和查询方法,所述交易方法包括:根据状态数据库,为存证类型数据和交易类型数据添加时序属性,构建交易数据;将含有时序属性的交易数据进行共识排序,打包成区块,并存储在区块链上;根据打包后的结果,记录共识排序后每个交易所在区块号以及所在区块内的顺序作为交易的时序属性;提交节点根据每个交易执行后的最新状态更新状态数据库;所述状态数据库包括每一个KEY对应的最新状态以及该状态对应交易所在区块链中的位置,即所述时序属性。本发明专利技术重新设计区块链交易数据结构,客户端节点通过时序属性进行链式检索,可以跳过无效历史交易,获取所有正确历史交易记录给客户端节点。端节点。端节点。

【技术实现步骤摘要】
一种基于时序属性的区块链交易提交、编辑和查询方法


[0001]本专利技术涉及信息
,具体涉及一种基于时序属性的区块链交易提交、编辑和查询方法。

技术介绍

[0002]区块链技术可以把数据以交易的形式存储在区块链数据库中,并且有去中心化、不可篡改和公开透明的特点。但作为一个分布式数据库,区块链中必定存在因人为操作失误或恶意提交产生的非法交易,这些非法交易可借助区块链的透明性和不可篡改性产生永久性的负面影响。例如:恶意节点将不实谣言信息上链,经过共识等过程,这些信息最终永久存储在区块链上,所有节点都能访问从而受到这些不良信息的危害。而现有的对区块链交易编辑的方案中,大都会利用密码学手段,在保证不可篡改特性的同时直接对区块内容进行替换,这会导致持有密钥的人可以随意修改区块数据并且没有修改存证,造成安全隐患。另外,对交易类型数据的编辑不单单涉及被编辑的交易数据本身,而会改变区块链中后续交易的价值分配体系,可能会凭空“制造”或“消除”一定量的货币,进而影响整个区块链交易链条的有效性。

技术实现思路

[0003]本专利技术为了克服以上技术的不足,提供了一种基于时序属性的区块链交易提交、编辑和查询方法。本专利技术主要是针对区块链数据不可编辑的特性,采用新的交易提交方法来实现对交易数据的编辑,所以本专利技术所达到的技术效果都是针对“交易数据编辑”,而本专利技术提出的交易提交方法是为交易编辑服务的,而交易查询方法是为了体现出交易编辑的结果。
[0004]本专利技术克服其技术问题所采用的技术方案是:一种基于时序属性的区块链交易提交方法,应用于区块链排序节点与提交节点,包括步骤:S101、根据状态数据库,为存证类型数据和交易类型数据添加时序属性,构建交易数据; S102、将含有时序属性的交易数据进行共识排序,打包成区块,并存储在区块链上;根据打包后的结果,记录共识排序后每个交易所在区块号以及所在区块内的顺序作为交易的时序属性;S103、提交节点根据每个交易执行后的最新状态更新状态数据库;所述状态数据库包括每一个KEY对应的最新状态以及该状态对应交易所在区块链中的位置,即所述时序属性。
[0005]进一步地,步骤S101中,根据状态数据库中保存的KEY值最新的状态为交易数据设置对应的时序属性,所述时序属性为目标KEY值对应前置交易所在区块链中的存储位置,其中,所述前置交易是与目标交易含有同一KEY值并在时间序列上靠前的前一条有效交易。
[0006]进一步地,步骤S101中,为存证类型数据添加时序属性的方法如下:存证类型数据构件交易数据前,首先需要检索状态数据库,查看该交易对应KEY的最新状态,该状态中的时序属性视为前置交易所在区块链中的存储位置。
[0007]进一步地,步骤S101中,为交易类型数据添加时序属性的方法如下:交易类型数据对应的KEY值包括交易的发送方和接收方,则时序属性包括发送方对应前置交易所在区块链中的存储位置和接收方对应前置交易所在区块链中的存储位置;交易类型数据构建交易数据前,首先需要检索状态数据库,判断发送方对应状态的固定余额是否满足转账需要:如不满足转账需要,则无法构建交易数据,直接返回交易失败的结果;如满足转账需要,则按照客户端输入将发送方规定数目的固定余额转入接收方的临时余额集合,发送方和接收方对应前置交易的时序信息记录在交易中并提交上链。
[0008]进一步地,关于固定余额和临时余额集合:将交易类型数据的账户的状态表示为固定余额和临时余额集合的形式,并设置一个固定时间段Δt,其中,Δt是为每个交易从提交到区块链上到不可编辑的时间段;在交易类型数据提交前,首先根据状态数据库检查发送方与接收方的余额状态,将符合条件的临时余额更新至固定余额,所述条件必须满足临时余额对应交易的提交时间加上时间段Δt大于等于当前交易提交的时间;发送方在进行转账时只能使用固定余额,且接收方在接受转账后的Δt时间段后需将该余额放入临时余额集合;所述时间段Δt根据实际应用场景中交易的频繁程度进行动态调整;所述临时余额集合中的每一个元素表示为接收方每一笔交易接受的余额加上该笔交易对应的时间戳。
[0009]进一步地,步骤S102中,记录时序属性并更新状态数据库,包括:交易在经过共识由排序节点打包后,遍历区块内所有的交易,记录每个交易所在区块链中的存储位置,即该交易对应的时序属性;打包后的区块发送给提交节点进行验证,并根据交易对应的状态与时序属性更新状态数据库中对应KEY的状态。
[0010]本专利技术还公开了一种基于上述所述的时序属性的区块链交易编辑方法,应用于区块链客户端节点,包括步骤:S201、接收客户端节点发送的交易编辑请求,所述编辑请求至少包括:客户端节点编辑目标历史交易的KEY值、目标历史交易的参数、时间戳以及编辑后的交易参数;S202、基于客户端节点输入的历史交易参数,利用状态数据与交易中保存的前置交易的时序属性作为索引进行链式查找;S203、将目标历史交易对应前置交易的时序属性与修改后的交易参数作为输入构建新交易数据并提交;S204、将跟时序属性进行链式查找时检索路径上所有的历史交易反序列化,记录交易元数据进入交易池,在修改后的交易正确提交之后按照时序顺序把交易池中的交易再次提交,保持正确的时序关系。
[0011]进一步地,步骤S202中,根据客户端节点发送的KEY值检索状态数据库,确认是否存在正确的目标KEY值以及状态:若存在正确的KEY值以及状态,则通过状态中的时序属性进行检索,寻找目标交易元数据进行重构交易子树;若不存在目KEY值或存在目标KEY值但对应状态中的结束位显示该KEY值已被逻辑
删除,则认为该KEY值对应的历史交易已被删除,无法编辑,返回失败。
[0012]本专利技术还公开了一种基于上述所述的时序属性的区块链交易查询方法,应用于区块链节点中,包括步骤:S301、接收客户端节点发送的查询请求,所述查询请求至少包括:查询历史交易对应的KEY值;S302、根据目标查询历史交易对应的KEY值检索状态数据库,根据最新状态获取KEY值对应最新状态所在交易的位置,即所述前置交易的时序属性;S303、根据时序属性获取对应的区块,反序列化区块并根据交易所在区块中的位置解析出交易元数据,再根据交易中包含的前置交易的时序属性进一步查询;S304、根据查询到的交易元数据,记录交易中包含的KEY值的历史快照,即历史状态;直到交易中的时序属性为空,返回所有的历史记录至所述客户端节点。
[0013]进一步地,步骤S302中,根据客户端节点发送的KEY值检索状态数据库,确认是否存在正确的目标KEY值以及状态:若存在正确的KEY值以及状态,则通过状态中的时序属性检索对应的交易元数据,并递归地通过交易中的时序属性进行检索;若不存在目KEY值或存在目标KEY值但对应状态中的结束位显示该KEY值已被逻辑删除,则直接返回空集给客户端,查询结束。
[0014]本专利技术的有益效果是:1、本专利技术所述的基于时序属性的区块链交易提交、编辑和查询方法,将区块链数据分为存证类和交易类两种数据类型,分别重新设计底层数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于时序属性的区块链交易提交方法,其特征在于,应用于区块链排序节点与提交节点,包括步骤:S101、根据状态数据库,为存证类型数据和交易类型数据添加时序属性,构建交易数据; S102、将含有时序属性的交易数据进行共识排序,打包成区块,并存储在区块链上;根据打包后的结果,记录共识排序后每个交易所在区块号以及所在区块内的顺序作为交易的时序属性;S103、提交节点根据每个交易执行后的最新状态更新状态数据库;所述状态数据库包括每一个KEY对应的最新状态以及该状态对应交易所在区块链中的位置,即所述时序属性。2.根据权利要求1所述的提交方法,其特征在于,步骤S101中,根据状态数据库中保存的KEY值最新的状态为交易数据设置对应的时序属性,所述时序属性为目标KEY值对应前置交易所在区块链中的存储位置,其中,所述前置交易是与目标交易含有同一KEY值并在时间序列上靠前的前一条有效交易。3.根据权利要求2所述的提交方法,其特征在于,步骤S101中,为存证类型数据添加时序属性的方法如下:存证类型数据构件交易数据前,首先需要检索状态数据库,查看该交易对应KEY的最新状态,该状态中的时序属性视为前置交易所在区块链中的存储位置。4.根据权利要求2所述的提交方法,其特征在于,步骤S101中,为交易类型数据添加时序属性的方法如下:交易类型数据对应的KEY值包括交易的发送方和接收方,则时序属性包括发送方对应前置交易所在区块链中的存储位置和接收方对应前置交易所在区块链中的存储位置;交易类型数据构建交易数据前,首先需要检索状态数据库,判断发送方对应状态的固定余额是否满足转账需要:如不满足转账需要,则无法构建交易数据,直接返回交易失败的结果;如满足转账需要,则按照客户端输入将发送方规定数目的固定余额转入接收方的临时余额集合,发送方和接收方对应前置交易的时序信息记录在交易中并提交上链。5.根据权利要求4所述的提交方法,其特征在于,关于固定余额和临时余额集合:将交易类型数据的账户的状态表示为固定余额和临时余额集合的形式,并设置一个固定时间段Δt,其中,Δt是为每个交易从提交到区块链上到不可编辑的时间段;在交易类型数据提交前,首先根据状态数据库检查发送方与接收方的余额状态,将符合条件的临时余额更新至固定余额,所述条件必须满足临时余额对应交易的提交时间加上时间段Δt大于等于当前交易提交的时间;发送方在进行转账时只能使用固定余额,且接收方在接受转账后的Δt时间段后需将该余额放入临时余额集合;所述时间段Δt根据实际应用场景中交易的频繁程度进行动态调整;所述临时余额集合中的每一个元素表示为接收方每一笔交易接受的余额加上该笔交易对应的时间戳。6.根据权利要求1所述的提交方法,其特征在于,步骤S102中,记录时序属性并更新状态数据库,包括:交易...

【专利技术属性】
技术研发人员:庞俊刘晨林晓丽姜承扬
申请(专利权)人:武汉科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1