一种基于区块链世界状态的交易数据更新方法、存储介质及系统

文档序号:7560 发布日期:2021-09-17 浏览:30次 英文

一种基于区块链世界状态的交易数据更新方法、存储介质及 系统

技术领域

本发明涉及数据处理

技术领域

,特别涉及一种基于区块链世界状态的交易数据更新方法、存储介质及系统。

背景技术

区块链以节点的方式组建成网络,所有节点从同一个初始状态开始,依次执行已由各个节点达成共识的区块内交易,从而驱动各个节点的状态按照相同操作序列(增加、删除、修改)不断变化,实现所有节点在执行完相同的区块内交易后状态完全一致,这个状态称为世界状态。

区块链的每个节点内部集成了KV数据库(Key-Value数据库),用于存储各种信息,比如账户余额、智能合约字节码、各个智能合约自定义的数据、区块链的配置参数等。在区块链执行了达成共识的区块内交易之后,涉及交易的各个节点会把其交易数据传输至涉及交易的其它节点中进行数据更新,以使涉及交易的各个节点处于一致的世界状态。但是,若区块链在短时间内有多个节点分别执行多次区块内交易,则会因区块内交易过于频繁而导致区块链网络的数据传输压力过大和节点的数据存储压力过大,致使涉及交易的多个节点难以处于一致的世界状态。

发明内容

本发明要解决的技术问题是在区块内交易频繁的情况下,如何减轻区块链网络的数据传输压力和节点的数据存储压力。

为解决上述技术问题,本发明提供一种基于区块链世界状态的交易数据更新方法,所述区块链具有组建成网络的多个节点,所述方法包括如下步骤:

A.获取区块内交易信息;

B.根据所述区块内交易信息分析出涉及交易的至少两个相关节点;

C.查找分别与各个相关节点对应相邻的相邻节点;

D.获取各个相关节点对应的相邻节点数量和各个相邻节点的地址信息;

E.对每个相关节点,执行如下步骤E1、E2、E3和E4:

E1.根据所述区块内交易信息对该相关节点中的数据进行更新,得到交易过程涉及的交易数据;

E2.按照该相关节点对应的相邻节点数量,将所述交易数据分成多个数据段;

E3.将各个数据段传输至该相关节点对应的各个相邻节点中;

E4.将该相关节点对应的各个相邻节点的地址信息传输至涉及交易的其它相关节点中,使其它相关节点在区块内交易结束后能根据地址信息分别从对应的各个相邻节点中获取所述交易数据的数据段以进行数据更新。

优选地,所述区块内交易信息包括交易请求信息、交易对象信息、交易内容信息和交易时间信息。

优选地,所述交易数据包括交易对象、交易内容和交易时间。

优选地,所述步骤E3中,在将各个数据段传输至该相关节点对应的各个相邻节点中之后,利用加密密钥对各个相邻节点中的数据段进行加密;所述步骤E4中,还将与所述加密密钥互成密钥对的解密密钥传输至涉及交易的其它相关节点中。

优选地,所述步骤E3中,利用非对称加密算法生成互成密钥对的所述加密密钥和所述解密密钥。

优选地,所述步骤E2中,将所述交易数据平均分成多个数据段,使每个数据段包含的数据量相同。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的交易数据更新方法。

本发明还提供一种基于区块链世界状态的交易数据更新系统,包括相互连接的计算机可读存储介质和处理器,所述区块链具有组建成网络的多个节点,计算机可读存储介质如上所述。

本发明具有以下有益效果:每个相关节点先将其交易数据分成多个数据段后分别传输至对应的各个相邻节点中,再将对应的各个相邻节点的地址信息传输至涉及交易的其它相关节点中,使其它相关节点在区块内交易结束后能根据地址信息分别从对应的各个相邻节点中获取交易数据的数据段以进行数据更新,这样相关节点的交易数据会分摊存储在对应的各个相邻节点中以减轻节点的数据储存压力,且在区块内交易过程中只需将各个相邻节点的地址信息传输至其它相关节点中,无需将每个相关节点的交易数据本身传输至其它相关节点中,而地址信息相对于交易数据本身而言数据量较小,故能减轻区块链网络的数据传输压力,使涉及交易的多个节点容易处于一致的世界状态。

附图说明

图1是基于区块链世界状态的交易数据更新方法的流程图。

具体实施方式

以下结合具体实施方式对本发明创造作进一步详细说明。

本实施例提供一种基于区块链世界状态的交易数据更新系统,区块链具有组建成网络的多个节点,该系统包括相互连接的计算机可读存储介质和处理器,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如图1所示的基于区块链世界状态的交易数据更新方法,该方法包括如下步骤A、B、C、D、E。

A.获取区块内交易信息。

本实施例中,在区块链执行已由各个节点达成共识的区块内交易时,获取区块内交易信息,该区块内交易信息包括交易请求信息、交易对象信息、交易内容信息和交易时间信息。

B.根据区块内交易信息分析出涉及交易的至少两个相关节点。

由于区块内交易信息包括交易对象信息,而交易对象即是区块链中进行相互交易的节点,故可根据该区块内交易信息分析出涉及交易的至少两个相关节点。

C.查找分别与各个相关节点对应相邻的相邻节点。

区块链中的多个节点组建成网络,故每个节点都具有与之相邻的相邻节点。本实施例在分析出涉及交易的至少两个相关节点之后,查找出分别与各个相关节点对应相邻的相邻节点。

D.获取各个相关节点对应的相邻节点数量和各个相邻节点的地址信息。

区块链中,每个节点的相邻节点数量不全相同,则涉及交易的每个相关节点对应的相邻节点数量不一定相同,因此,在查找出分别与各个相关节点对应相邻的相邻节点之后,获取各个相关节点对应的相邻节点数量。并且,还获取各个相邻节点的地址信息,以便后续根据地址信息找出各个相邻节点。

E.对每个相关节点,执行如下步骤E1、E2、E3和E4。

E1.根据区块内交易信息对该相关节点中的数据进行更新,得到交易过程涉及的交易数据。

以其中一个相关节点为例,在分析出涉及交易的相关节点之后,根据区块内交易信息中的交易对象信息、交易内容信息和交易时间信息对该相关节点中的数据进行更新,更新之后可获得交易过程涉及的交易数据,该交易数据包括交易对象、交易内容和交易时间。

E2.按照该相关节点对应的相邻节点数量,将交易数据分成多个数据段。

以该相关节点对应的相邻节点数量有十个为例,按照该相关节点对应的相邻节点数量,将交易数据平均分成十个数据段,其中每个数据段包含的数据量相同。

E3.将各个数据段传输至该相关节点对应的各个相邻节点中。

在得到由交易数据分成的十个数据段之后,在各个数据段传输至该相关节点对应的各个相邻节点中,即每个相邻节点拥有一个数据段,这样,相关节点的交易数据会分摊存储在对应的各个相邻节点中以减轻节点的数据储存压力。然后利用非对称加密算法生成互成密钥对的加密密钥(公钥)和解密密钥(私钥),再利用加密密钥对该相关节点对应的各个相邻节点中的数据段进行加密,以确保在后续的交易数据传输过程中进行隐私保护。

E4.将该相关节点对应的各个相邻节点的地址信息传输至涉及交易的其它相关节点中,使其它相关节点在区块内交易结束后能根据地址信息分别从对应的各个相邻节点中获取交易数据的数据段以进行数据更新。

在将该相关节点对应的各个相邻节点中的数据段进行加密之后,将该相关节点对应的各个相邻节点的地址信息传输至涉及交易的其它相关节点中,并且还将与该加密密钥互成密钥对的解密密钥传输至涉及交易的其它相关节点中,使其它相关节点在区块内交易结束后能根据各个地址信息分别从对应的各个相邻节点中获取交易数据的经加密后的数据段,然后利用对应的加密密钥对加密后的数据段进行解密,再利用解密后的数据段进行数据更新。这样在区块内交易过程中只需将各个相邻节点的地址信息传输至其它相关节点中,无需将每个相关节点的交易数据本身传输至其它相关节点中,而地址信息相对于交易数据本身而言数据量较小,故能减轻区块链网络的数据传输压力。

综上,本实施例的交易数据更新方法能减轻数据储存压力和区块链网络的数据传输压力,使涉及交易的多个节点容易处于一致的世界状态。

如上所述仅为本发明创造的实施方式,不以此限定专利保护范围。本领域技术人员在本发明创造的基础上作出非实质性的变化或替换,仍落入专利保护范围。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:更新方法、装置及计算机存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!