掌桥专利:专业的专利平台
掌桥专利
首页

一种账户地址坐标化方法与系统

文献发布时间:2023-06-19 09:29:07


一种账户地址坐标化方法与系统

技术领域

本发明涉及区块链技术领域,尤其涉及一种账户地址坐标化方法与系统。

背景技术

现有区块链技术中,当交易发生时,接收交易的节点会将交易放入交易池,并向其他节点进行广播,最后被打包到区块后进行交易持久化存储。广播和存储的交易数据一般都会包含两个字段分别是交易发送方地址以及交易接收方地址。

然而,每个账户都不会只有一个交易,其实同一个的账户的这些交易的发送方地址都是一样的,这样每次交易的流转就避免不了进行重复地址的传输与存储。

以太坊为例,每个地址的长度是42个字节,那一个交易体就有84个字节的地址占用,比特币少点每个地址34个字节,两个68个字节,经统计差不多每笔交易中地址占用交易总大小最少在10%以上。截止目前以太坊与比特币同步数据量已达到300多G大小,那么其中就有最少几十个G的存储是占用在地址的花费上。

发明人发现,地址的长度决定着交易体的大小,交易体变小一方面减少交易池占用内存空间,一方面减少持久化占用磁盘空间,另一方面也使交易的传输效率得到很大的提升。

发明人还发现,通过以账户坐标的体现形式,将交易体里的地址长度缩短,减小交易体大小,来达到上述提出的优化效果。

因此,有必要提供一种新的账户地址坐标化方法与系统,以解决上述技术问题。

发明内容

本发明的主要目的在于提供一种账户地址坐标化方法,旨在解决相关技术中,账户地址占据过多的交易数据的空间,致使交易数据占用内存空间过大,且传输效率较低的技术问题。

为实现上述目的,本发明提供一种账户地址坐标化方法,包括如下步骤:

节点接收交易数据,并解析出所述交易数据中账户地址;

判断预设的地址映射列表中是否存在与所述账户地址相应的坐标地址;

当所述地址映射列表中存在与所述账户地址相应的所述坐标地址时,将所述交易数据中所述账户地址坐标更换为所述坐标地址,以实现所述账户地址的坐标化。

优选地,还包括如下步骤:

对所述交易数据进行系列化操作后,判断所述交易数据中所述账户地址是否坐标化;

当所述账户地址坐标化时,将所述交易数据持久化存储;

当所述账户地址没有坐标化时,根据预设的坐标化算法,生成与所述账户地址相应的坐标地址。

将所述交易数据中的账户地址更换为所述坐标地址后,将所述交易数据持久化存储。

优选地,所述根据预设的坐标化算法,生成与所述账户地址相应的坐标地址的步骤之后,还包括如下步骤:

将所述账户地址、所述坐标地址以及二者之间的对应关系,加入所述地址映射表。

优选地,所述账户地址包括发送账户地址和接收账户地址,所述坐标地址包括发送坐标地址和接收坐标地址;所述账户地址的坐标化是指,所述发送账户地址和接收账户地址分别更换为所述发送坐标地址和所述接收坐标地址;

所述判断预设的地址映射列表中是否存在与所述账户地址相应的坐标地址的步骤,具体包括如下步骤:

判断所述地址映射列表中是否存在与所述发送账户地址相应的发送坐标地址,以及所述地址映射列表中是否存在与所述接收账户地址相应的接收坐标地址;

所述当所述地址映射列表中存在与所述账户地址相应的所述坐标地址时,将所述交易数据中所述账户地址坐标更换为所述坐标地址,以实现所述账户地址的坐标化的步骤,具体包括如下步骤:

当所述地址映射列表中存在与所述发送账户地址相应的所述发送坐标地址时,将所述交易数据中所述发送账户地址更换为所述发送坐标地址;

当所述地址映射列表中不存在与所述发送账户地址相应的所述发送坐标地址时,保持所述交易数据中所述发送账户地址不变;

当所述地址映射列表中存在与所述接收账户地址相应的所述接收坐标地址时,将所述交易数据中所述接收账户地址更换为所述接收坐标地址;

当所述地址映射列表中不存在与所述接收账户地址相应的所述接收坐标地址时,保持所述交易数据中所述接收账户地址不变。

优选地,所述对所述交易数据进行系列化操作后,判断所述交易数据中所述账户地址是否坐标化的步骤,具体包括如下步骤:

交易入池,并广播交易池;

交易池打包交易生成区块并广播进行共识确认;

区块确认后,判断所述交易数据中所述账户地址是否坐标化。

为解决上述技术问题,本发明还一种账户地址坐标化系统,包括:

接收和解析模块,所述接收和解析模块用于,接收交易数据,并解析出所述交易数据中账户地址;

第一判断模块,所述第一判断模块用于判断预设的地址映射列表中是否存在与所述账户地址相应的坐标地址;

坐标化模块,所述坐标化模块用于,当所述地址映射列表中存在与所述账户地址相应的所述坐标地址时,将所述交易数据中所述账户地址坐标更换为所述坐标地址,以实现所述账户地址的坐标化。

优选地,还包括:

第二判断模块,所述第二判断模块用于,对所述交易数据进行系列化操作后,判断所述交易数据中所述账户地址是否坐标化;

当所述账户地址坐标化时,将所述交易数据持久化存储;

当所述账户地址没有坐标化时,根据预设的坐标化算法,生成与所述账户地址相应的所述交易数据的坐标地址;

存储模块,所述存储模块用于将所述交易数据中的账户地址更换为所述坐标地址后,将所述交易数据持久化存储;

优选地,还包括:

映射模块,所述映射模块用于将所述账户地址、所述坐标地址以及二者之间的对应关系,加入所述地址映射表。

优选地,所述账户地址包括发送账户地址和接收账户地址,所述坐标地址包括发送坐标地址和接收坐标地址;所述账户地址的坐标化是指,所述发送账户地址和接收账户地址分别更换为所述发送坐标地址和所述接收坐标地址;

所述第一判断模块具体用于:

判断所述地址映射列表中是否存在与所述发送账户地址相应的发送坐标地址,以及所述地址映射列表中是否存在与所述接收账户地址相应的接收坐标地址;

所述坐标化模块具体用于:

当所述地址映射列表中存在与所述发送账户地址相应的所述发送坐标地址时,将所述交易数据中所述发送账户地址更换为所述发送坐标地址;

当所述地址映射列表中不存在与所述发送账户地址相应的所述发送坐标地址时,保持所述交易数据中所述发送账户地址不变;

当所述地址映射列表中存在与所述接收账户地址相应的所述接收坐标地址时,将所述交易数据中所述接收账户地址更换为所述接收坐标地址;

当所述地址映射列表中不存在与所述接收账户地址相应的所述接收坐标地址时,保持所述交易数据中所述接收账户地址不变。

优选地,所述第二判断模块具体用于:

交易入池,并广播交易池;

交易池打包交易生成区块并广播进行共识确认;

区块确认后,判断所述交易数据中所述账户地址是否坐标化。

本项发明提出一种可减小交易数据大小的账户地址坐标化方法和系统。将交易数据里30多或者40多个字节的账户地址换成链上坐标表示;通过坐标即可知道是哪个账户发生的交易,也能起到缩减交易数据大小的作用。在交易广播过程中节省了大部分带宽消耗,有效提升了交易的网络传输效率;其次,在交易存储上也大大降低了交易数据占用空间,使存储效率更快的同时,也节省了服务的存储资源。

附图说明

图1为本发明提供的基于账户地址坐标化方法的一较优实施例的工作流程图;

图2为图1所示的步骤S30的工作流程图;

图3为图1所示的步骤S40的工作流程图;

图4为本发明提供的基于账户地址坐标化方法中客户端和节点的交互图;

图5为本发明提供的基于账户地址坐标化系统的一较优实施例的架构图。

本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种账户地址坐标化方法。

请结合参阅图1-5,为实现上述目的,本发明的一实施例中,账户地址坐标化方法100,包括如下步骤:

S10,节点接收交易数据,并解析出所述交易数据中账户地址;

S20,判断预设的地址映射列表中是否存在与所述账户地址相应的坐标地址;

具体的,所述坐标地址的数据结构如下:区块号+区块中交易序号+发送接收类型。其中,发送接收类型用于标识账户地址的类型,当账户地址为发送地址时,发送接收类型的标识为1;当账户地址为接收地址时,发送接收类型的标识为2。区块中交易序号为区块打包的交易列表中的排序序号。

如此,根据坐标地址的前两个标识,即可以获知该坐标地址对应的交易,在哪个区块中的第几笔交易。根据最后一个标识就知道是该笔交易的发送地址,还是接收地址。

所述坐标地址只有发生交易,且被区块打包上链后才能生成。因此,坐标地址在第一次交易广播的交易数据中不会体现。但是,在区块被确认上链进行存储时可以用坐标地址表示。

所述地址映射列表用于建立一种映射对应机制。在节点接收交易后需要获取坐标,所以每个节点需要建立一个映射机制,将账户地址与对应坐标地址映射。

映射列表key为账户原地址,value就是坐标地址,以太坊第5个区块里排序为2的交易账户映射关系为例,生成发送方地址映射表为:0x18cf2beddc5153000c622a72fd5b7a5e9a27867f=>5_2_1;可以理解,0x18cf2beddc5153000c622a72fd5b7a5e9a27867f为发送地址,5_2_1为坐标地址。

接收方地址映射表为:0x18cf2beddc5153000c622a72fd5b7a5e9a27456a=>5_2_2。可以理解,0x18cf2beddc5153000c622a72fd5b7a5e9a27456a为接收地址,5_2_1为坐标地址。

S30,当所述地址映射列表中存在与所述账户地址相应的所述坐标地址时,将所述交易数据中所述账户地址坐标更换为所述坐标地址,以实现所述账户地址的坐标化。

这样在交易数据中账户地址的表现形式就不在是之前的42字节的长地址,而是变成短短的坐标地址(坐标号),从而大大缩减了交易数据占用的空间,其次,坐标地址必须有间隔标识这样容易拆分。

S40,对所述交易数据进行系列化操作后,判断所述交易数据中所述账户地址是否坐标化;

S50,当所述账户地址坐标化时,将所述交易数据持久化存储;

S60,当所述账户地址没有坐标化时,根据预设的坐标化算法,生成与所述账户地址相应的坐标地址;

所述坐标化算法即根据交易数据对应的相关信息,通过预设的公式算法,转化生成预设数据结构的坐标地址。

比如,该交易数据对应的是第5个区块的第2个交易,生成的坐标地址如下:那该交易的发送地址对应的坐标地址5_2_1,接收地址对应的坐标地址5_2_2。

S70,将所述交易数据中的账户地址更换为所述坐标地址后,将所述交易数据持久化存储。

所述步骤S60之后,还包括如下步骤:

S71,将所述账户地址、所述坐标地址以及二者之间的对应关系,加入所述地址映射表。

即,映射列表key就是账户地址,value就是坐标地址。

可以理解,所述步骤S71可以与所述步骤S70同时发生;也可以在所述步骤S70之前;也可以在所述步骤S70之后。本实施例中,优选所述步骤S71与所述步骤S70之前。

所述账户地址包括发送账户地址和接收账户地址,所述坐标地址包括发送坐标地址和接收坐标地址;所述账户地址的坐标化是指,所述账户地址中所述发送账户地址和接收账户地址分别更换为所述发送坐标地址和所述接收坐标地址;

所述步骤S20,判断预设的地址映射列表中是否存在与所述账户地址相应的坐标地址;具体包括如下步骤:

判断所述地址映射列表中是否存在与所述发送账户地址相应的发送坐标地址,以及所述地址映射列表中是否存在与所述接收账户地址相应的接收坐标地址;

请再次参阅图2,所述步骤S30,当所述地址映射列表中存在与所述账户地址相应的所述坐标地址时,将所述交易数据中所述账户地址坐标更换为所述坐标地址,以实现所述账户地址的坐标化。具体包括如下步骤:

S301,当所述地址映射列表中存在与所述发送账户地址相应的所述发送坐标地址时,将所述交易数据中所述发送账户地址更换为所述发送坐标地址;

S302,当所述地址映射列表中不存在与所述发送账户地址相应的所述发送坐标地址时,保持所述交易数据中所述发送账户地址不变;

S303,当所述地址映射列表中存在与所述接收账户地址相应的所述接收坐标地址时,将所述交易数据中所述接收账户地址更换为所述接收坐标地址;

S304,当所述地址映射列表中不存在与所述接收账户地址相应的所述接收坐标地址时,保持所述交易数据中所述接收账户地址不变。

请再次参阅图3,所述S40,对所述交易数据进行系列化操作后,判断所述交易数据中所述账户地址是否坐标化,具体包括如下步骤:

S401,交易入池,并广播交易池;

S402,交易池打包交易生成区块并广播进行共识确认;

S403,区块确认后,判断所述交易数据中所述账户地址是否坐标化。

本项发明提出一种可减小交易数据大小的账户地址坐标化方法,将交易数据里30多或者40多个字节的账户地址换成链上坐标表示;通过坐标即可知道是哪个账户发生的交易,也能起到缩减交易数据大小的作用。在交易广播过程中节省了大部分带宽消耗,有效提升了交易的网络传输效率;其次,在交易存储上也大大降低了交易数据占用空间,使存储效率更快的同时,也节省了服务的存储资源。

本发明提供一种账户地址坐标化系统。

请参阅图5,为实现上述目的,本发明的一实施例中,账户地址坐标化系统,包括:

接收和解析模块,所述接收和解析模块用于,接收交易数据,并解析出所述交易数据中账户地址;

第一判断模块,所述第一判断模块用于判断预设的地址映射列表中是否存在与所述账户地址相应的坐标地址;

具体的,所述坐标地址的数据结构如下:区块号+区块中交易序号+发送接收类型。其中,发送接收类型用于标识账户地址的类型,当账户地址为发送地址时,发送接收类型的标识为1;当账户地址为接收地址时,发送接收类型的标识为2。区块中交易序号为区块打包的交易列表中的排序序号。

如此,根据坐标地址的前两个标识,即可以获知该坐标地址对应的交易,在哪个区块中的第几笔交易。根据最后一个标识就知道是该笔交易的发送地址,还是接收地址。

所述坐标地址只有发生交易,且被区块打包上链后才能生成。因此,坐标地址在第一次交易广播的交易数据中不会体现。但是,在区块被确认上链进行存储时可以用坐标地址表示。

所述地址映射列表用于建立一种映射对应机制。在节点接收交易后需要获取坐标,所以每个节点需要建立一个映射机制,将账户地址与对应坐标地址映射。

映射列表key为账户原地址,value就是坐标地址,以太坊第5个区块里排序为2的交易账户映射关系为例,生成发送方地址映射表为:0x18cf2beddc5153000c622a72fd5b7a5e9a27867f=>5_2_1;可以理解,0x18cf2beddc5153000c622a72fd5b7a5e9a27867f为发送地址,5_2_1为坐标地址。

接收方地址映射表为:0x18cf2beddc5153000c622a72fd5b7a5e9a27456a=>5_2_2。可以理解,0x18cf2beddc5153000c622a72fd5b7a5e9a27456a为接收地址,5_2_1为坐标地址。

坐标化模块,所述坐标化模块用于,当所述地址映射列表中存在与所述账户地址相应的所述坐标地址时,将所述交易数据中所述账户地址坐标更换为所述坐标地址,以实现所述账户地址的坐标化。

这样在交易数据中账户地址的表现形式就不在是之前的42字节的长地址,而是变成短短的坐标地址(坐标号),从而大大缩减了交易数据占用的空间,其次,坐标地址必须有间隔标识这样容易拆分。

所述账户地址坐标化的系统还包括:

第二判断模块,所述第二判断模块用于,对所述交易数据进行系列化操作后,判断所述交易数据中所述账户地址是否坐标化;

当所述账户地址坐标化时,将所述交易数据持久化存储;

当所述账户地址没有坐标化时,根据预设的坐标化算法,生成与所述账户地址相应的坐标地址;

所述坐标化算法即根据交易数据对应的相关信息,通过预设的公式算法,转化生成预设数据结构的坐标地址。

比如,该交易数据对应的是第5个区块的第2个交易,生成的坐标地址如下:那该交易的发送地址对应的坐标地址5_2_1,接收地址对应的坐标地址5_2_2。

存储模块,所述存储模块用于将所述交易数据中的账户地址更换为所述坐标地址后,将所述交易数据持久化存储。

映射模块,所述映射模块用于将所述账户地址、所述坐标地址以及二者之间的对应关系,加入所述地址映射表。

即,映射列表key就是账户地址,value就是坐标地址。

所述账户地址包括发送账户地址和接收账户地址,所述坐标地址包括发送坐标地址和接收坐标地址;所述账户地址的坐标化是指,所述账户地址中所述发送账户地址和接收账户地址分别更换为所述发送坐标地址和所述接收坐标地址;

所述第一判断模块具体用于:

判断所述地址映射列表中是否存在与所述发送账户地址相应的发送坐标地址,以及所述地址映射列表中是否存在与所述接收账户地址相应的接收坐标地址;

所述坐标化模块具体用于:

S301,当所述地址映射列表中存在与所述发送账户地址相应的所述发送坐标地址时,将所述交易数据中所述发送账户地址更换为所述发送坐标地址;

S302,当所述地址映射列表中不存在与所述发送账户地址相应的所述发送坐标地址时,保持所述交易数据中所述发送账户地址不变;

S303,当所述地址映射列表中存在与所述接收账户地址相应的所述接收坐标地址时,将所述交易数据中所述接收账户地址更换为所述接收坐标地址;

S304,当所述地址映射列表中不存在与所述接收账户地址相应的所述接收坐标地址时,保持所述交易数据中所述接收账户地址不变。

所述第二判断模块具体用于:

S401,交易入池,并广播交易池;

S402,交易池打包交易生成区块并广播进行共识确认;

S403,区块确认后,判断所述交易数据中所述账户地址是否坐标化。

本项发明提出一种可减小交易数据大小的账户地址坐标化系统,将交易数据里30多或者40多个字节的账户地址换成链上坐标表示;通过坐标即可知道是哪个账户发生的交易,也能起到缩减交易数据大小的作用。在交易广播过程中节省了大部分带宽消耗,有效提升了交易的网络传输效率;其次,在交易存储上也大大降低了交易数据占用空间,使存储效率更快的同时,也节省了服务的存储资源。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备进入本发明各个实施例所述的方法。

在本说明书的描述中,参考术语“一实施例”、“另一实施例”、“其他实施例”、或“第一实施例~第X实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料、方法步骤或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 一种账户地址坐标化方法与系统
  • 一种判断地址是否标准化、地址标准化的方法及系统
技术分类

06120112186291