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

基于区块链的编码生成方法、装置、设备及存储介质

文献发布时间:2023-06-19 09:58:59


基于区块链的编码生成方法、装置、设备及存储介质

技术领域

本发明涉及计算机技术领域,尤其涉及区块链技术领域,具体涉及一种基于区块链的编码生成方法、装置、设备及存储介质。

背景技术

随着社会信息化程度的不断提高,传统的企业的业务流程逐渐转向更加高效的信息化业务办理,而在各类业务的信息化应用处理中,编码代表了对业务对象的唯一描述,是准确有效传递业务信息的重要标识。信息系统对自动编码的需求越来越广泛,希望可以方便的生成与自身业务息息相关的编码,这就要求业务应用需要采取一定的手段保证生成编码时满足高效性、唯一性等条件。

现有编码规则种类繁多。但需要大量生成不同的编码时,系统内生成的代码很有可能会发生碰撞。

发明内容

本发明提供了一种基于区块链的编码生成方法、装置、设备及存储介质,采用如下的技术方案:

一种基于区块链的编码生成方法,包含以下步骤:

获取区块链的创世区块的区块哈希,根据预设方式从创世区块的区块哈希中提取第一固定位数的数字作为第一子编码;

获取当前交易的交易哈希,根据预设方式从当前交易的交易哈希中提取第二固定位数的数字作为第二子编码;

获取当前交易所在的区块的区块高度,将区块高度对第一预设数字取模,对取模运算的结果进行标准化处理得到第三固定位数的数字作为第三子编码;

对第一子编码、第二子编码和第三子编码进行排序得到唯一编码。

进一步地,对取模运算的结果进行标准化处理得到第三固定位数的数字作为第三子编码的具体方法为:

在取模运算的结果前补充若干个数字0以将运算结果处理为8位数,将该8位数作为第三子编码。

进一步地,基于区块链的编码生成方法还包括:

将当前交易所在区块的区块高度对第二预设数字取模得到结果n,将当前交易所在的区块前的第n个区块内的交易的交易哈希进行异或运算,根据预设方式从异或运算的结果中提取第四固定位数的数字作为第四子编码;

对第一子编码、第二子编码、第三子编码和第四子编码进行排序得到唯一编码。

进一步地,根据预设方式从异或运算的结果中提取第四固定位数的数字作为第四子编码的具体方法为:

从异或运算的结果中提取8位数字作为第四子编码。

进一步地,获取当前系统时间的时间戳,根据预设方式从时间戳中提取第五固定位数的数字作为第五子编码;

对第一子编码、第二子编码、第三子编码、第四子编码和第五子编码进行排序得到唯一编码。

进一步地,第一子编码位于唯一编码的最前端。

进一步地,得到唯一编码之后,基于区块链的编码生成方法还包括:

通过预设方式生成若干个固定位数的区别编码,将若干区别编码分别连接在唯一编码的后端得到一包含若干新唯一编码的编码组。

一种基于区块链的编码生成装置,基于区块链的编码生成装置包括:

第一编码获取模块,用于获取区块链的创世区块的区块哈希,根据预设方式从创世区块的区块哈希中提取第一固定位数的数字作为第一子编码;

第二编码获取模块,用于获取当前交易的交易哈希,根据预设方式从当前交易的交易哈希中提取第二固定位数的数字作为第二子编码;

第三编码获取模块,用于获取当前交易所在的区块的区块高度,将区块高度对第一预设数字取模,对取模运算的结果进行标准化处理得到第三固定位数的数字作为第三子编码;

处理模块,用于对第一子编码、第二子编码和第三子编码进行排序得到唯一编码。

进一步地,基于区块链的编码生成装置还包括:

第四编码获取模块,用于将当前交易所在区块的区块高度对第二预设数字取模得到结果 n,将当前交易所在的区块前的第n个区块内的交易的交易哈希进行异或运算,根据预设方式从异或运算的结果中提取第四固定位数的数字作为第四子编码;

处理模块对第一子编码、第二子编码、第三子编码和第四子编码进行排序得到唯一编码。

进一步地,基于区块链的编码生成装置还包括:

第五编码获取模块,用于获取当前系统时间的时间戳,根据预设方式从时间戳中提取第五固定位数的数字作为第五子编码;

处理模块对第一子编码、第二子编码、第三子编码、第四子编码和第五子编码进行排序得到唯一编码。

进一步地,基于区块链的编码生成装置还包括:

生成模块,用于通过预设方式生成若干个固定位数的区别编码;

处理模块还用于将若干区别编码分别连接在唯一编码的后端得到一包含若干新唯一编码的编码组。

一种电子设备,电子设备包括:

处理器;以及

存储器,存储器上存储有可由处理器运行的计算机程序;

处理器运行计算机程序以实现前述的基于区块链的编码生成方法的步骤。

一种计算机存储介质,计算机可读存储介质上存储有计算机指令,计算机指令被处理器执行时实现前述的基于区块链的编码生成方法的步骤。

本发明的有益之处在于所提供的基于区块链的编码生成方法、装置、设备及存储介质,以区块链为基础,从多个维度提取子编码,再对得到的多个子编码进行排序构成唯一编码,不易发生重复。

附图说明

图1是本申请实施例提供的基于区块链的编码生成方法的流程示意图;

图2是本申请实施例提供的基于区块链的编码生成装置的结构示意图;

图3是本申请实施例提供的一种电子设备的框图。

具体实施方式

下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

如图1所示为本申请实施例的一种基于区块链的编码生成方法,主要包含以下步骤:步骤S1:获取区块链的创世区块的区块哈希,根据预设方式从创世区块的区块哈希中提取第一固定位数的数字作为第一子编码。步骤S2:获取当前交易的交易哈希,根据预设方式从当前交易的交易哈希中提取第二固定位数的数字作为第二子编码。步骤S3:获取当前交易所在的区块的区块高度,将区块高度对第一预设数字取模,对取模运算的结果进行标准化处理得到第三固定位数的数字作为第三子编码。步骤S4:对第一子编码、第二子编码和第三子编码进行排序得到唯一编码。其中,第一固定位数、第二固定位数和第三固定位数可以是相同位数,也可以不同。在一种优选的实施方式中,第一固定位数、第二固定位数和第三固定位数均为 8。具体设置情况见下述具体实例。通过上述步骤生成的唯一编码,基于区块链的交易过程自动生成,产生ID碰撞的概率非常小。以下具体介绍上述步骤。

对于步骤S1:获取区块链的创世区块的区块哈希,根据预设方式从创世区块的区块哈希中提取第一固定位数的数字作为第一子编码。

首先,在区块链启动时,会生成创世区块。不同区块链的创世区块的区块哈希是不同的。获取创世区块的区块哈希,并且根据预设的方式在创世区块的区块哈希中提取第一固定位数的数字作为第一子编码。在本发明中,第一子编码为创世区块的区块哈希前8位数字。可以理解的是,从创世区块的区块哈希中提取第一子编码的方式很多,可以根据实际需求具体设定。通过第一子编码,可以识别编码是通过哪一个具体的区块链生成的。

对于步骤S2:获取当前交易的交易哈希,根据预设方式从当前交易的交易哈希中提取第二固定位数的数字作为第二子编码。

当需要生成编码时,在区块链中产生交易。获取当前交易的交易哈希,并根据预设的方式从当前交易的交易哈希中提取第二固定位数的数字作为第二子编码。具体的,在本发明中,从当前交易的交易哈希中提取前8位作为第二子编码。同样的,从当前交易的交易哈希中提取第二子编码的方式是可选的。

对于步骤S3:获取当前交易所在的区块的区块高度,将区块高度对第一预设数字取模,对取模运算的结果进行标准化处理得到第三固定位数的数字作为第三子编码。

具体的,第一预设数字优选为10

对于步骤S4:对第一子编码、第二子编码和第三子编码进行排序得到唯一编码。

在本申请中,将第一子编码、第二子编码、第三子编码、第四子编码和第五子编码按照一定顺序进行排列,将排列结果作为生成的唯一编码。通过以上步骤,生成唯一编码。

作为优选的实施方式,基于区块链的编码生成方法还包括:

将当前交易所在区块的区块高度对第二预设数字取模得到结果n,将当前交易所在的区块前的第n个区块内的交易的交易哈希进行异或运算,根据预设方式从异或运算的结果中提取第四固定位数的数字作为第四子编码。原来的步骤S4具体为:对第一子编码、第二子编码、第三子编码和第四子编码进行排序得到唯一编码。

通过该步骤,将当前交易区块和其之前的一个区块关联在一起,进一步提高生成的编码的随机性,减小碰撞产生的可能性。第二预设数字的值一般取20以下,确保两个关联的区块距离不会太大。以当前交易所在区块为基准,找到当前交易区块前的第n个区块,再将当前交易所在的区块前的第n个区块内的交易的交易哈希进行异或运算,从异或运算的运算结果中提取第四固定位数的数字。优选的,从异或运算的运算结果中提取8位数字作为第四子编码。创世区块不属于交易区块。可以理解的是,在某些情况下,当前交易的区块之前没有其他区块,或其他区块的数量较少,小于计算结果n。在这种情况下,当前交易区块之前的第n 个区块不存在。在当前区块之前没有其他交易区块时,则直接用当前区块代替。若当前区块之前的区块的数量小于n,则采用当前区块之前的最远的区块代替。比如n的值为5,而当前交易区块之前只有3个区块,则采用当前区块之前的第三个区块代替。优选的,第二预设数字为4。

作为优选的实施方式,基于区块链的编码生成方法还包括:

获取当前系统时间的时间戳,根据预设方式从时间戳中提取第五固定位数的数字作为第五子编码。原来的步骤S4具体为:对第一子编码、第二子编码、第三子编码、第四子编码和第五子编码进行排序得到唯一编码。

该步骤将编号与系统时间挂钩。将系统时间的时间戳作为生成的编号的一部分。获取当前系统时间的时间戳,根据预设方式从时间戳中提取第五固定位数的数字作为第五子编码。在本实施例中,将时间戳整体作为第五子编码。

可以理解的是,在本发明中,对若干子编码进行排序的方式是任意可选的,若干子编码可以按照任意顺序进行排列。作为优选的实施方式,第一子编码位于唯一编码的最前端。这样,通过生成的唯一编码的前8位数能够快速识别出该唯一编码是通过哪一条区块链生成。在本实施例中,其他在编码按照编码顺序按需排列在第一子编码之后构成唯一编码。

作为优选的实施方式,得到唯一编码之后,基于区块链的编码生成方法还包括:通过预设方式生成若干个固定位数的区别编码,将若干区别编码分别连接在唯一编码的后端得到一包含若干新唯一编码的编码组。

可以理解的是,通过上述步骤,每生成一个唯一编码都需要在区块链中进行一次交易,当需要批量生成大量的唯一编码时,需要重复进行多次交易,比较占用时间。因此,为了快速生成大量唯一编码,在通过前述步骤生成了唯一编码后,再根据需要生成若干个固定位数的不同的区别编码。这些区别编码可以是连续的,也可以是不连续的。将这些区别编码分别连接在生成的唯一编码后。这样,通过生成的一个唯一编码可以快速大批量的生成一组新唯一编码。

如图2所示为本申请的一种基于区块链的编码生成装置100,基于区块链的编码生成装置100主要包括:第一编码获取模块10、第二编码获取模块20、第三编码获取模块30和处理模块40。

具体而言,第一编码获取模块10用于获取区块链的创世区块的区块哈希,根据预设方式从创世区块的区块哈希中提取第一固定位数的数字作为第一子编码。具体的,第一子编码为创世区块的区块哈希前8位数字。第二编码获取模块20用于获取当前交易的交易哈希,根据预设方式从当前交易的交易哈希中提取第二固定位数的数字作为第二子编码。具体的,从当前交易的交易哈希中提取前8位作为第二子编码。第三编码获取模块30用于获取当前交易所在的区块的区块高度,将区块高度对第一预设数字取模,对取模运算的结果进行标准化处理得第三固定位数的数字作为第三子编码。具体的,第一预设数字为10

作为优选的实施方式,基于区块链的编码生成装置100还包括:第四编码获取模块50。

第四编码获取模块50用于将当前交易所在区块的区块高度对第二预设数字取模得到结果n,将当前交易所在的区块前的第n个区块内的交易的交易哈希进行异或运算,根据预设方式从异或运算的结果中提取第四固定位数的数字作为第四子编码。处理模块40对第一子编码、第二子编码、第三子编码和第四子编码进行排序得到唯一编码。

具体的,以当前交易所在区块为基准,找到当前交易区块前的第n个区块,再将当前交易所在的区块前的第n个区块内的交易的交易哈希进行异或运算,从异或运算的运算结果中提取8位数字作为第四子编码。优选的,第二预设数字的值为4。第二预设数字和第四固定位数的值范围见前述的基于区块链的编码生成方法中的描述,此处不再赘述。

作为优选的实施方式,基于区块链的编码生成装置100还包括:第五编码获取模块60。

第五编码获取模块60用于获取当前系统时间的时间戳,根据预设方式从时间戳中提取第五固定位数的数字作为第五子编码。处理模块40对第一子编码、第二子编码、第三子编码、第四子编码和第五子编码进行排序得到唯一编码。具体的,将时间戳整体作为第五子编码。

作为优选的实施方式,基于区块链的编码生成装置100还包括:生成模块70。

生成模块70用于通过预设方式生成若干个固定位数的区别编码。处理模块40还用于将若干区别编码分别连接在唯一编码的后端得到一包含若干新唯一编码的编码组。生成模块70 生成的这些区别编码可以是连续的,也可以是不连续的。

如图3所示为根据本申请实施例的基于区块链的编码生成方法的电子设备的框图,电子设备旨在表示各种形式的数字计算机,如台式计算机、工作台、服务器等其他适合的计算机。电子设备还可以表示各种形式的移动装置,诸如智能电话、可穿戴智能设备和其他类似的计算装置。本文所示的部件、它们到的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图3所示,该电子设备包括:处理器51和存储器52以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。其中,存储器52上存储有可由处理器51运行的计算机程序。处理器51运行计算机程序以实现本申请实施例提供的基于区块链的编码生成方法的步骤,在此不再赘述。

电子设备还可以包括:输入装置53和输出装置54。处理器51、存储器52、输入装置53 和输出装置54可以通过总线或者其他方式连接,图3中通过总线连接。输入装置53可接收输入的数字或字符信息,例如触摸屏、小键盘、鼠标、轨迹板、触摸板等。输出装置54可以包括显示设备、辅助照明装置和触觉反馈装置等。

本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。在一些实施例中,存储介质可以是闪存、磁表面存储器、光盘、或光盘存储器等存储器;也可以是包括上述存储器52 之一或任意组合的各种设备。在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(Hyper Text Markup Language,HTML)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个车载计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备执行。

以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

相关技术
  • 基于区块链的编码生成方法、装置、设备及存储介质
  • 基于区块链的报告生成方法、装置、电子设备及存储介质
技术分类

06120112372135