一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

区块链的区块打包方法、电子装置及存储介质与流程

2021-12-17 21:32:00 来源:中国专利 TAG:


1.本发明涉及区块链技术领域,尤其涉及一种区块链的区块打包方法、电子装置及存储介质。


背景技术:

2.区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,区块链的信息不可伪造和篡改,其上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,公共账本位于存储区块上,任何节点可见,从而保证其不可伪造和篡改。在比特币等加密货币应用中,区块链保存了用户的交易信息,在以太坊等智能合约应用中,区块链保存了用户的智能合约。然而,大型区块链矿场在同一区域布建巨量的矿机进行挖矿,使得在同一区域的挖矿成功几率大幅提高,这种现象与区块链技术强调的去中心化特性背道而驰。


技术实现要素:

3.有鉴于此,有必要提供一种区块链的区块打包方法、电子装置及存储介质,根据电子装置与打包节点之间的距离确定挖矿难度,并根据所述挖矿难度进行挖矿,避免挖矿成功的矿机集中在同一区域。
4.本发明的第一方面提供一种区块链的区块打包方法,所述方法包括:
5.验证接收到的打包区块是否有效;
6.当验证接收到的所述打包区块有效时,从所述打包区块的标头中提取对应打包节点的地理位置信息;
7.根据电子装置的地理位置信息与所述打包节点的地理位置信息计算所述电子装置的挖矿难度;
8.猜测一随机数,并根据所述随机数计算hash值;
9.判断计算得到的所述hash值是否符合所述挖矿难度;
10.当所述hash值符合所述挖矿难度时,将所述电子装置的地理位置信息存储在新区块中,并将所述新区块写入区块链。
11.优选地,所述方法还包括:
12.当所述hash值不符合所述挖矿难度时,继续猜测另一随机数,并根据所述随机数计算hash值,直至计算得到的hash值符合所述挖矿难度。
13.优选地,所述方法还包括:
14.对所述电子装置定位以获取所述电子装置的地理位置信息,其中,所述地理位置信息为经纬度信息。
15.优选地,所述方法还包括:
16.当验证所述打包区块无效时,从所述打包区块的上一有效区块的标头中提取所述有效区块对应打包节点的地理位置信息。
17.优选地,所述根据电子装置的地理位置信息与所述打包节点的地理位置信息计算所述电子装置的挖矿难度包括:
18.根据所述电子装置的地理位置信息与所述打包节点的地理位置信息计算所述电子装置与所述打包节点之间的距离;及
19.根据所述电子装置与所述打包节点之间的距离与两个节点之间的理论最大距离计算所述挖矿难度。
20.优选地,计算所述挖矿难度的计算公式为difficulty=(1-dist/dist
max
)*2
256
,其中,difficulty为所述挖矿难度,dist为所述电子装置与所述打包节点之间的距离,dist
max
为两个节点之间的所述理论最大距离。
21.优选地,所述猜测一随机数,并根据所述随机数计算hash值”包括:
22.将所述打包区块的hash值与所述新区块的信息组成一个字符串。
23.将所述随机数添加至所述字符串的末尾而组成新的字符串;及
24.对所述新的字符串进行hash值运算而得到所述hash值。
25.优选地,所述判断计算得到的所述hash值是否符合所述挖矿难度包括:
26.判断所述hash值是否小于或等于所述挖矿难度;
27.当所述hash值小于或等于所述挖矿难度时,判定所述hash值符合所述挖矿难度;及
28.当所述hash值大于所述挖矿难度时,判定所述hash值不符合所述挖矿难度。
29.本发明的第二方面提供一种电子装置,所述电子装置包括:
30.处理器;以及
31.存储器,所述存储器中存储有多个程序模块,所述多个程序模块由所述处理器加载并执行上述的区块链的区块打包方法。
32.本发明的第三方面提供一种计算机可读的存储介质,其上存储有至少一条计算机指令,所述指令由处理器加载并执行上述的区块链的区块打包方法。
33.上述区块链的区块打包方法、电子装置及存储介质,可以根据电子装置与打包节点之间的距离确定挖矿难度,并根据所述挖矿难度进行挖矿,使得与打包节点之间距离较远的矿机具有更大的挖矿成功几率,避免挖矿成功的矿机集中在同一区域,保证区块链的去中心化。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
35.图1是本发明较佳实施方式提供的区块链的区块打包方法的应用环境架构示意图。
36.图2是本发明较佳实施方式提供的电子装置的结构示意图。
37.图3是本发明较佳实施方式提供的区块打包装置的结构示意图。
38.图4是本发明较佳实施方式提供的区块链的区块打包方法的流程图。
39.主要元件符号说明
40.电子装置
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ141.处理器
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
10
42.区块打包装置
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
100
43.定位模块
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
101
44.验证模块
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
102
45.提取模块
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
103
46.计算模块
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
104
47.判断模块
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
105
48.打包模块
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
106
49.广播模块
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
107
50.存储器
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
20
51.计算机程序
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
30
52.区块链
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ253.如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
54.为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
55.在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
56.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
57.请参阅图1所示,为本发明较佳实施方式提供的区块链的区块打包方法的应用环境架构示意图。
58.本发明中的区块链的区块打包方法应用在电子装置1中,所述电子装置1与通过网络与其他多个电子装置建立通信连接。所述多个电子装置之间形成一区块链2,每个电子装置为所述区块链2上的节点。所述网络可以是有线网络,也可以是无线网络,例如无线电、无线保真(wireless fidelity,wifi)、蜂窝等。
59.所述电子装置1可以为安装有区块打包程序的电子设备,例如个人电脑、服务器等,其中,所述服务器可以是单一的服务器、服务器集群或云端服务器等。在本实施方式中,所述电子装置1为在所述区块链2上挖矿的矿机。
60.请参阅图2所示,为本发明电子装置较佳实施方式的结构示意图。
61.所述电子装置1包括,但不仅限于,处理器10、存储器20以及存储在所述存储器20中并可在所述处理器10上运行的计算机程序30,例如区块打包程序。所述处理器10执行所述计算机程序30时实现区块链的区块打包方法中的步骤,例如图4所示的步骤s401~s408。
或者,所述处理器10执行所述计算机程序30时实现区块打包装置中各模块/单元的功能,例如图3中的模块101-107。
62.示例性的,所述计算机程序30可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器10执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序30在所述电子装置1中的执行过程。例如,所述计算机程序30可以被分割成图3中的定位模块101、验证模块102、提取模块103、计算模块104、判断模块105、打包模块106及广播模块107。各模块具体功能参见区块打包装置实施例中各模块的功能。
63.本领域技术人员可以理解,所述示意图仅仅是电子装置1的示例,并不构成对电子装置1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子装置1还可以包括输入输出设备、网络接入设备、总线等。
64.所称处理器10可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器10也可以是任何常规的处理器等,所述处理器10是所述电子装置1的控制中心,利用各种接口和线路连接整个电子装置1的各个部分。
65.所述存储器20可用于存储所述计算机程序30和/或模块/单元,所述处理器10通过运行或执行存储在所述存储器20内的计算机程序和/或模块/单元,以及调用存储在存储器20内的数据,实现所述电子装置1的各种功能。所述存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子装置1的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
66.请参阅图3所示,本发明区块打包装置较佳实施方式的功能模块图。
67.在一些实施方式中,区块打包装置100运行于所述电子装置1中。所述区块打包装置100可以包括多个由程序代码段所组成的功能模块。所述区块打包装置100中的各个程序段的程序代码可以存储于电子装置1的存储器20中,并由所述至少一个处理器10所执行,以实现区块打包功能。
68.本实施方式中,区块打包装置100根据其所执行的功能,可以被划分为多个功能模块。参阅图3所示,所述功能模块可以包括定位模块101、验证模块102、提取模块103、计算模块104、判断模块105、打包模块106及广播模块107。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器20中。可以理解的是,在其他实施例中,上述模块也可为固化于所述处理器10中的程序指令或固件(firmware)。
69.所述定位模块101用于对所述电子装置1定位以获取所述电子装置1的地理位置信
dist/dist
max
)*2
256
。其中,difficulty为所述挖矿难度,dist为所述电子装置1与所述打包节点之间的距离,dist
max
为两个节点之间的所述理论最大距离。
81.例如,当所述电子装置1的地理位置信息为西经74度、北纬40度,所述打包节点的地理位置信息为东经121度、北纬25度时,所述电子装置1与打包区块对应打包节点之间的距离dist为18231公里。两个节点之间的所述理论最大距离为赤道长度的一半,即20038公里。如此,所述电子装置1的挖矿难度difficulty=(1-18231/20038)*2
256
=0.09*2
256

82.需要说明的是,从上述计算公式可以看出,当所述电子装置1与所述打包节点之间的距离越远,所述挖矿难度的值越小,挖矿成功率更高。当所述电子装置1与所述打包节点之间的距离越近,所述挖矿难度的值越大,挖矿成功率更低。
83.所述计算模块104还用于猜测一随机数,并根据所述随机数计算hash值。
84.具体的,所述计算模块104首先将所述打包区块的hash值与新区块的信息组成一个字符串。
85.在本实施方式中,所述新区块的信息包括基本信息和交易记录。所述计算模块104将所述打包区块的hash值、所述新区块的基本信息和交易记录组成所述字符串。
86.进一步地,所述计算模块104任意猜测一随机数,将所述随机数添加至所述字符串的末尾而组成新的字符串,以及对所述新的字符串进行hash值运算而得到所述hash值。
87.在本实施方式中,所述计算模块104对所述字符串执行哈希算法得到所述hash值。其中,所述哈希算法为sha(secure hash algorithm)256,所述hash值为256位的二进制整数。
88.所述判断模块105用于判断计算得到的所述hash值是否符合所述挖矿难度。
89.在本实施方式中,所述判断模块105判断所述hash值是否小于或等于所述挖矿难度。当所述hash值小于所述挖矿难度时,判定所述hash值符合所述挖矿难度。当所述hash值大于或等于所述挖矿难度时,判定所述hash值不符合所述挖矿难度。
90.当判断模块105判定所述hash值不符合所述挖矿难度时,所述计算模块104继续猜测另一随机数,并根据所述随机数计算hash值,直至计算得到的hash值符合所述挖矿难度。
91.所述打包模块106用于当所述hash值符合所述挖矿难度时,将所述电子装置1的地理位置信息存储在新区块中,并将所述新区块写入区块链。
92.在本实施方式中,所述打包模块106将所述地理位置信息及其他基本信息存储至所述新区块的标头,以及将若干个交易记录信息存储至所述新区块中,然后将所述新区块写入所述区块链2。
93.所述广播模块107用于在将所述新区块写入所述区块链2之前对所述新区块进行广播。
94.在本实施方式中,所述广播模块107将所述打包模块106打包的新区块的信息发送至相邻节点的电子装置,所述相邻节点的电子装置在验证通过后进而将所述信息发送至与其相邻节点的电子装置,从而实现所述新区块的广播。当所述区块链2上所有节点都对所述新区块验证通过后,所述打包模块106将所述新区块写入所述区块链2。
95.请参阅图4所示,是本发明提供的区块链的区块打包方法的流程图。根据不同的需求,所述流程图中步骤的顺序可以改变,某些步骤可以省略。
96.步骤s401,对所述电子装置1定位以获取所述电子装置1的地理位置信息。
97.步骤s402,验证接收到的打包区块是否有效。当验证接收到的打包区块有效时,所述流程图进入步骤s403。当验证接收到的打包区块无效时,所述流程图进入步骤s404。
98.步骤s403,从所述打包区块的标头中提取对应打包节点的地理位置信息。
99.步骤s404,从所述打包区块的上一有效区块的标头中提取所述有效区块对应打包节点的地理位置信息。
100.步骤s405,根据电子装置1的地理位置信息与所述打包节点的地理位置信息计算所述电子装置1的挖矿难度。
101.步骤s406,猜测一随机数,并根据所述随机数计算hash值。
102.步骤s407,判断计算得到的所述hash值是否符合所述挖矿难度。当判定所述hash值符合所述挖矿难度时,所述流程进入步骤s408。当判定所述hash值不符合所述挖矿难度时,所述流程返回步骤s406。
103.步骤s408,将所述电子装置1的地理位置信息存储在新区块中,并将所述新区块写入所述区块链。
104.所述电子装置1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
105.本发明提供的区块链的区块打包方法、电子装置及存储介质,根据电子装置与打包节点之间的距离确定挖矿难度,并根据所述挖矿难度进行挖矿,使得与打包节点之间距离更远的矿机具有更大的挖矿成功几率,避免挖矿成功的矿机集中在同一区域,保证区块链的去中心化。
106.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由同一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
107.最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的
技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献