CN110601874A - 区块链部署方法、装置、计算机设备和存储介质 - Google Patents
区块链部署方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110601874A CN110601874A CN201910750575.8A CN201910750575A CN110601874A CN 110601874 A CN110601874 A CN 110601874A CN 201910750575 A CN201910750575 A CN 201910750575A CN 110601874 A CN110601874 A CN 110601874A
- Authority
- CN
- China
- Prior art keywords
- block chain
- preset
- terminal
- deployment
- designated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/142—Network analysis or design using statistical or mathematical methods
Abstract
本申请揭示了一种区块链部署方法、装置、计算机设备和存储介质,所述方法包括:向指定终端发送基于指定通信协议的空报文,接收回复报文;若所述回复报文符合指定报文规则,则根据公式:H(t)=min(G(t),m),其中获取函数H(t);获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,计算出正常流量时间占比;若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数;远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中,提高区块链部署的效率与成功率。
Description
技术领域
本申请涉及到计算机领域,特别是涉及到一种区块链部署方法、装置、计算机设备和存储介质。
背景技术
传统技术对于区块链的部署,一般是在对应的终端中安装区块链软件并设置相应的部署参数,因此配置参数编辑操作繁琐、效率低下,并且在大规模部署区块链时的工作量巨大,容易出错。并且在部署区块链时,由于没有进行有效地筛选出具有正常通信且能够正常工作的终端,容易造成部署失败。
发明内容
本申请的主要目的为提供一种区块链部署方法、装置、计算机设备和存储介质,旨在提高区块链部署的效率与成功率。
为了实现上述发明目的,本申请提出一种区块链部署方法,应用于区块链部署平台,所述区块链部署平台是预先构建的区块链网络的一个区块链节点,包括:
向指定终端发送基于指定通信协议的空报文,接收所述指定终端基于所述空报文发送的回复报文,根据预设的通信协议与报文规则的对应关系获取与所述指定通信协议对应指定报文规则,并判断所述回复报文是否符合指定报文规则;
若所述回复报文符合指定报文规则,则根据公式:H(t)=min(G(t),m),其中E(t)=F(t)-f(t),获取函数H(t),其中F(t)为指定终端的流量随时间变化的流量函数,f(t)为预设的标准流量函数,E(t)为所述流量函数与所述标准流量函数的差值函数,为所述差值函数对时间的微分函数,min指最小值函数,t为时间,m为预设的大于0的误差参数值;
获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,根据公式:正常流量时间占比=所述第一时间长度/(所述第一时间长度+所述第二时间长度),计算出所述正常流量时间占比,并判断所述正常流量时间占比是否大于预设占比阈值;
若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数;
依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中。
进一步地,所述回复报文被封装为多个数据包,所述判断所述回复报文是否符合指定报文规则的步骤,包括:
计算所述回复报文的数据大小、所述数据包的数据大小和所述数据包的数量;
判断所述回复报文的数据大小是否大于预设的报文数据阈值,以及判断所述数据包的数据大小是否大于预设的数据包数据阈值,以及判断所述数据包的数量是否与预设的数量相同;
若所述回复报文的数据大小大于预设的报文数据阈值,并且所述数据包的数据大小大于预设的数据包数据阈值,并且所述数据包的数量与预设的数量相同,则判定所述回复报文符合指定报文规则。
进一步地,所述若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数的步骤之前,包括:
采用预定的编程语言生成可视化界面;
在所述可视化界面中设置用于接收输入的部署参数的第一插件;
在所述可视化界面中设置窗口控件,以显示预设的参考参数、所述部署参数和所述部署参数是否超出预设参数范围的判断结果,从而获得所述参数输入工具。
进一步地,所述区块链部署平台预存有虚拟机镜像和区块链节点容器镜像,所述部署参数包括所述指定终端的操作系统信息,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤,包括:
从预存的多种虚拟机镜像中选择与所述指定终端的操作系统信息相匹配的正确虚拟机镜像;
向所述指定终端发送所述正确虚拟机镜像和所述区块链节点容器镜像;
远程控制所述指定终端接收所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,从而将所述指定终端加入所述区块链网络中。
进一步地,所述远程控制所述指定终端接收所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,从而将所述指定终端加入所述区块链网络中的步骤,包括:
获取所述指定终端的IP地址与用于区块链通信的通信端口;
将所述指定终端的IP地址与用于区块链通信的通信端口加入预设的通信列表中,其中所述通信列表记录了所述区块链网络中的所有区块链节点的IP地址与用于区块链通信的通信端口;
将所述通信列表发送给所述指定终端;
远程控制所述指定终端接收所述通信列表、所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,并远程控制所述指定终端依据所述通信列表获取所述区块链网络中的所有区块链节点,从而将所述指定终端加入所述区块链网络中。
进一步地,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤之前,包括:
利用C++语言创建区块链类,并赋予所述区块链类指定参数,从而获得创世区块,并在所述创世区块中将前一区块的哈希值设为0;
基于所述创世区块,采用预设的区块生成技术生成其他区块,其中所述其他区块记载有前一区块的哈希值;
以预设终端作为区块链网络的区块链节点,从而搭建所述区块链网络。
进一步地,所述指定终端存在多个,所述部署参数包括所述指定终端的区块链节点类型,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤,包括:
将指定区块链节点类型的多个指定终端的部署参数记录入预设的配置文件中,并获取与所述指定区块链节点类型对应的指定区块链节点镜像;
将所述指定区块链节点镜像和所述配置文件发送给第一指定终端,其中所述第一指定终端是所述配置文件中的一个指定终端;
远程控制所述第一指定终端接收所述指定区块链节点镜像和所述配置文件,并远程控制所述第一指定终端安装预设的区块链节点镜像;
远程控制所述第一指定终端将所述指定区块链节点镜像和所述配置文件发送给所述配置文件中记录的其他指定终端。
本申请提供一种区块链部署装置,应用于区块链部署平台,所述区块链部署平台是预先构建的区块链网络的一个区块链节点,包括:
空报文发送单元,用于向指定终端发送基于指定通信协议的空报文,接收所述指定终端基于所述空报文发送的回复报文,根据预设的通信协议与报文规则的对应关系获取与所述指定通信协议对应指定报文规则,并判断所述回复报文是否符合指定报文规则;
函数H(t)获取单元,用于若所述回复报文符合指定报文规则,则根据公式:H(t)=min(G(t),m),其中E(t)=F(t)-f(t),获取函数H(t),其中F(t)为指定终端的流量随时间变化的流量函数,f(t)为预设的标准流量函数,E(t)为所述流量函数与所述标准流量函数的差值函数,为所述差值函数对时间的微分函数,min指最小值函数,t为时间,m为预设的大于0的误差参数值;
正常流量时间判断单元,用于获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,根据公式:正常流量时间占比=所述第一时间长度/(所述第一时间长度+所述第二时间长度),计算出所述正常流量时间占比,并判断所述正常流量时间占比是否大于预设占比阈值;
部署参数获取单元,用于若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数;
远程部署单元,用于依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中。
本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的区块链部署方法、装置、计算机设备和存储介质,向指定终端发送基于指定通信协议的空报文,接收回复报文;若所述回复报文符合指定报文规则,则根据公式:H(t)=min(G(t),m),其中获取函数H(t);获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,计算出正常流量时间占比;若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数;远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中,提高区块链部署的效率与成功率。
附图说明
图1为本申请一实施例的区块链部署方法的流程示意图;
图2为本申请一实施例的区块链部署装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例提供一种区块链部署方法,应用于区块链部署平台,所述区块链部署平台是预先构建的区块链网络的一个区块链节点,包括:
S1、向指定终端发送基于指定通信协议的空报文,接收所述指定终端基于所述空报文发送的回复报文,根据预设的通信协议与报文规则的对应关系获取与所述指定通信协议对应指定报文规则,并判断所述回复报文是否符合指定报文规则;
S2、若所述回复报文符合指定报文规则,则根据公式:
H(t)=min(G(t),m),其中E(t)=F(t)-f(t),获取函数H(t),其中F(t)为指定终端的流量随时间变化的流量函数,f(t)为预设的标准流量函数,E(t)为所述流量函数与所述标准流量函数的差值函数,为所述差值函数对时间的微分函数,min指最小值函数,t为时间,m为预设的大于0的误差参数值;
S3、获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,根据公式:正常流量时间占比=所述第一时间长度/(所述第一时间长度+所述第二时间长度),计算出所述正常流量时间占比,并判断所述正常流量时间占比是否大于预设占比阈值;
S4、若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数;
S5、依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中。
如上述步骤S1所述,向指定终端发送基于指定通信协议的空报文,接收所述指定终端基于所述空报文发送的回复报文,根据预设的通信协议与报文规则的对应关系获取与所述指定通信协议对应指定报文规则,并判断所述回复报文是否符合指定报文规则。由于本申请采用空报文的形式来确定所述指定终端是否通信正常,因此网络开销极少,在大规模进行区块链部署时,其部署效率能有效提高。其中区块链部署平台与所述指定终端预先约定了通信协议与报文规则的对应关系,因此虽然报文为空,但是根据通信协议的不同,能够获取对应的报文规则,以防止指定终端被劫持等不安全隐患。其中所述指定报文规则为任意规则,例如为在预定时间内接收到的报文数据的大小与预设的数据大小相符合;或者例如为:计算所述回复报文的数据大小、所述数据包的数据大小和所述数据包的数量;判断所述回复报文的数据大小是否大于预设的报文数据阈值,判断所述数据包的数据大小是否大于预设的数据包数据阈值,判断所述数据包的数量是否与预设的数量相同;若所述回复报文的数据大小大于预设的报文数据阈值,并且所述数据包的数据大小大于预设的数据包数据阈值,并且所述数据包的数量与预设的数量相同,则判定所述回复报文符合指定报文规则。据此,不仅在网络开销小的前提下验证所述指定终端的通信是否正常,更能防止指定终端被劫持等不安全隐患,还能通过接收的数据大小粗略判断所述指定终端的通信能力是否满足要求。其中所述通信协议例如为HTTP协议等。
如上述步骤S2所述,若所述回复报文符合指定报文规则,则根据公式:
H(t)=min(G(t),m),其中E(t)=F(t)-f(t),获取函数H(t),其中F(t)为指定终端的流量随时间变化的流量函数,f(t)为预设的标准流量函数,E(t)为所述流量函数与所述标准流量函数的差值函数,为所述差值函数对时间的微分函数,min指最小值函数,t为时间,m为预设的大于0的误差参数值。其中函数H(t)用以表征所述指定终端的流量状况,当函数H(t)取值为m时,表示流量过大,处于异常状态;当函数H(t)取值不为m时,表示流量正常,处于正常状态,并以此判断所述指定终端是否异常。
如上述步骤S3所述,获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,根据公式:正常流量时间占比=所述第一时间长度/(所述第一时间长度+所述第二时间长度),计算出所述正常流量时间占比,并判断所述正常流量时间占比是否大于预设占比阈值。其中正常流量时间占比用以衡量所述指定终端的正常工作时间比例。若所述正常流量时间占比大于预设占比阈值,则认定所述指定终端正常,将其作为区块链网络的一个区块链节点是可行的。
如上述步骤S4所述,若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数。其中预设的参数输入工具具有可视化页面,从而操作人员通过可视化页面能够批量输入部署参数,相对于传统技术的单一设置部署参数的形式,更快捷且更不易出错。其中所述参数输入工具的获取方法例如为:采用预定的编程语言生成可视化界面;在所述可视化界面中设置用于接收输入的部署参数的第一插件;在所述可视化界面中设置窗口控件,以显示预设的参考参数、所述部署参数和所述部署参数是否超出预设参数范围的判断结果,从而获得所述参数输入工具。其中所述部署参数例如为区块链节点类型,操作系统信息,IP地址,通信端口等。
如上述步骤S5所述,依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中。本申请通过预设设置区块链节点镜像的方式,使得区块链节点的部署可以批量完成,提高了部署效率。进一步地,所述远程控制所述指定终端安装预设的区块链节点镜像还包括:从预存的多种虚拟机镜像中选择与所述指定终端的操作系统信息相匹配的正确虚拟机镜像;向所述指定终端发送所述正确虚拟机镜像和所述区块链节点容器镜像;远程控制所述指定终端接收所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,从而将所述指定终端加入所述区块链网络中。
在一个实施方式中,所述回复报文被封装为多个数据包,所述判断所述回复报文是否符合指定报文规则的步骤S1,包括:
S101、计算所述回复报文的数据大小、所述数据包的数据大小和所述数据包的数量;
S102、判断所述回复报文的数据大小是否大于预设的报文数据阈值,以及判断所述数据包的数据大小是否大于预设的数据包数据阈值,以及判断所述数据包的数量是否与预设的数量相同;
S103、若所述回复报文的数据大小大于预设的报文数据阈值,并且所述数据包的数据大小大于预设的数据包数据阈值,并且所述数据包的数量与预设的数量相同,则判定所述回复报文符合指定报文规则。
如上所述,实现了判断所述回复报文是否符合指定报文规则。为了避免区块链节点部署失败,本申请采用判断所述回复报文的数据大小是否大于预设的报文数据阈值,判断所述数据包的数据大小是否大于预设的数据包数据阈值,判断所述数据包的数量是否与预设的数量相同,以确保指定终端不存在被劫持等不安全隐患,还能通过接收的数据大小粗略判断所述指定终端的通信能力是否满足要求。其中回复报文的数据大小、所述数据包的数据大小反应了所述指定终端的数据传输能力,所述数据包的数量用以佐证所述指定终端的安全性。
在一个实施方式中,所述若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数的步骤S4之前,包括:
S31、采用预定的编程语言生成可视化界面;
S32、在所述可视化界面中设置用于接收输入的部署参数的第一插件;
S33、在所述可视化界面中设置窗口控件,以显示预设的参考参数、所述部署参数和所述部署参数是否超出预设参数范围的判断结果,从而获得所述参数输入工具。
如上所述,实现了获得所述参数输入工具。其中,所述预定的编程语言可为任意编程语言,例如JAVA,C语言,C++,Pyphon语言等。生成可视化界面(例如窗口界面,利于信息的输入与信息的反馈),从而使区块链的部署参数的编辑过程更直观,更易操作。通过插件以实现接收输入的部署参数,并将预设的参考参数、所述部署参数和所述部署参数是否超出预设参数范围的判断结果呈现在窗口控件中,以提高区块链部署效率。进一步地,所述第一插件还用于接收输入的多个终端的部署参数,从而实现了批量部署,更进一步提高了部署效率。
在一个实施方式中,所述区块链部署平台预存有虚拟机镜像和区块链节点容器镜像,所述部署参数包括所述指定终端的操作系统信息,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤S5,包括:
S501、从预存的多种虚拟机镜像中选择与所述指定终端的操作系统信息相匹配的正确虚拟机镜像;
S502、向所述指定终端发送所述正确虚拟机镜像和所述区块链节点容器镜像;
S503、远程控制所述指定终端接收所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,从而将所述指定终端加入所述区块链网络中。
如上所述,实现了远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中。其中,虚拟机镜像根据操作系统的种类和操作系统的版本分别设置有对应的虚拟机镜像,例如对于不同版本的linux操作系统,如redhat、centos、ubuntu,分别采用三种对应的虚拟机镜像,从而针对性地发送正确虚拟机镜像和所述区块链节点容器镜像的指定数据,避免所述虚拟机镜像和所述区块链节点容器镜像无法使用,造成区块链节点部署失败。
在一个实施方式中,所述远程控制所述指定终端接收所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,从而将所述指定终端加入所述区块链网络中的步骤S503,包括:
S5031、获取所述指定终端的IP地址与用于区块链通信的通信端口;
S5032、将所述指定终端的IP地址与用于区块链通信的通信端口加入预设的通信列表中,其中所述通信列表记录了所述区块链网络中的所有区块链节点的IP地址与用于区块链通信的通信端口;
S5033、将所述通信列表发送给所述指定终端;
S5034、远程控制所述指定终端接收所述通信列表、所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,并远程控制所述指定终端依据所述通信列表获取所述区块链网络中的所有区块链节点,从而将所述指定终端加入所述区块链网络中。
如上所述,实现了将所述指定终端加入所述区块链网络中。区块链节点的IP地址和通信端口是区块链节点之间进行通信的基础。本申请通过将将所述指定终端的IP地址与用于区块链通信的通信端口加入预设的通信列表中,以实现通信信息的更新,从而加入所述区块链网络的指定终端能够与其他区块链节点进行通信。进一步地,还包括:将所述通信列表发送给所述区块链网络中的其他区块链节点。
在一个实施方式中,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤S5之前,包括:
S41、利用C++语言创建区块链类,并赋予所述区块链类指定参数,从而获得创世区块,并在所述创世区块中将前一区块的哈希值设为0;
S42、基于所述创世区块,采用预设的区块生成技术生成其他区块,其中所述其他区块记载有前一区块的哈希值;
S43、以预设终端作为区块链网络的区块链节点,从而搭建所述区块链网络。
如上所述,实现了搭建所述区块链网络。其中创建区块链类的语言可以为任意可行语言,例如JAVA、C++、Go语言等,本实施方式优选C++、Go语言,从而优化区块链类。其中区块链类(class)是对区块链的定义,将所述区块链类实例化即是确定区块链的具体参数,从而获得第一个区块(创世区块),从而作为其他区块的生成依据。由于创世区块是第一个区块,实际上没有之前的区块,因此在创世区块中将前一区块的哈希值设置为0。并基于所述创世区块,生成其他区块,其中所述其他区块记载有前一区块的哈希值,从而所有区块紧密相连,防止数据被篡改。所述第二区块链网络的预设共识机制可为任意共识机制,例如为工作量证明机制、权益证明机制、拜占庭容错机制、股份授权证明机制等,本实施方式优选股份授权证明机制。其中采用预设的区块生成技术例如为,设置区块头、区块体;在所述区块头中前一区块的哈希值,本区块体的哈希值和时间戳;在区块体中存储预先准备的数据,从而所述区块头与所述区块体构成了一个区块。
在一个实施方式中,所述指定终端存在多个,所述部署参数包括所述指定终端的区块链节点类型,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤S5,包括:
S501、将指定区块链节点类型的多个指定终端的部署参数记录入预设的配置文件中,并获取与所述指定区块链节点类型对应的指定区块链节点镜像;
S502、将所述指定区块链节点镜像和所述配置文件发送给第一指定终端,其中所述第一指定终端是所述配置文件中的一个指定终端;
S503、远程控制所述第一指定终端接收所述指定区块链节点镜像和所述配置文件,并远程控制所述第一指定终端安装预设的区块链节点镜像;
S504、远程控制所述第一指定终端将所述指定区块链节点镜像和所述配置文件发送给所述配置文件中记录的其他指定终端。
如上所述,实现了将所述指定终端加入所述区块链网络中。本申请通过将所述指定区块链节点镜像和所述配置文件发送给第一指定终端,其中所述第一指定终端是所述配置文件中的一个指定终端;远程控制所述第一指定终端接收所述指定区块链节点镜像和所述配置文件,并远程控制所述第一指定终端安装预设的区块链节点镜像;远程控制所述第一指定终端依照预设的洪水算法,将所述指定区块链节点镜像和所述配置文件发送给所述配置文件中记录的其他指定终端的方式,减轻了区块链部署平台的负担。其中,由于预先将指定终端及对应的部署参数按区块链节点的类型记录入配置文件中,即将指定区块链节点类型的多个指定终端的部署参数记录入预设的配置文件中,因此同一区块链节点类型的终端进行部署的数据大致相同,据此将需要的指定区块链节点镜像与对应的配置文件仅发送给第一指定终端(仅发送一次)即可,从而免去了多次发送相同的数据而需要的大量网络开销。而再远程控制所述第一指定终端依照预设的洪水算法,将所述指定区块链节点镜像和所述配置文件发送给所述配置文件中记录的其他指定终端,即可实现部署所需数据的发送。进一步地,所述远程控制所述第一指定终端将所述指定区块链节点镜像和所述配置文件发送给所述配置文件中记录的其他指定终端包括:远程控制所述第一指定终端依照预设的洪水算法,将所述指定区块链节点镜像和所述配置文件发送给所述配置文件中记录的其他指定终端。其中,所述洪水算法也称洪水填充算法,在本申请中即是使第一指定终端相邻的其他指定终端获取所述指定区块链节点镜像和所述配置文件,再依次使获取所述指定区块链节点镜像和所述配置文件的指定终端相邻的其他指定终端也获取所述指定区块链节点镜像和所述配置文件,直至所有的指定终端均获取所述指定区块链节点镜像和所述配置文件,以防止漏过节点。
本申请的区块链部署方法,向指定终端发送基于指定通信协议的空报文,接收回复报文;若所述回复报文符合指定报文规则,则根据公式:H(t)=min(G(t),m),其中E(t)=F(t)-f(t),获取函数H(t);获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,计算出正常流量时间占比;若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数;远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中,提高区块链部署的效率与成功率。
参照图2,本申请实施例提供一种区块链部署装置,应用于区块链部署平台,所述区块链部署平台是预先构建的区块链网络的一个区块链节点,包括:
空报文发送单元10,用于向指定终端发送基于指定通信协议的空报文,接收所述指定终端基于所述空报文发送的回复报文,根据预设的通信协议与报文规则的对应关系获取与所述指定通信协议对应指定报文规则,并判断所述回复报文是否符合指定报文规则;
函数H(t)获取单元20,用于若所述回复报文符合指定报文规则,则根据公式:H(t)=min(G(t),m),其中E(t)=F(t)-f(t),获取函数H(t),其中F(t)为指定终端的流量随时间变化的流量函数,f(t)为预设的标准流量函数,E(t)为所述流量函数与所述标准流量函数的差值函数,为所述差值函数对时间的微分函数,min指最小值函数,t为时间,m为预设的大于0的误差参数值;
正常流量时间判断单元30,用于获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,根据公式:正常流量时间占比=所述第一时间长度/(所述第一时间长度+所述第二时间长度),计算出所述正常流量时间占比,并判断所述正常流量时间占比是否大于预设占比阈值;
部署参数获取单元40,用于若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数;
远程部署单元50,用于依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中。
如上述单元10所述,向指定终端发送基于指定通信协议的空报文,接收所述指定终端基于所述空报文发送的回复报文,根据预设的通信协议与报文规则的对应关系获取与所述指定通信协议对应指定报文规则,并判断所述回复报文是否符合指定报文规则。由于本申请采用空报文的形式来确定所述指定终端是否通信正常,因此网络开销极少,在大规模进行区块链部署时,其部署效率能有效提高。其中区块链部署平台与所述指定终端预先约定了通信协议与报文规则的对应关系,因此虽然报文为空,但是根据通信协议的不同,能够获取对应的报文规则,以防止指定终端被劫持等不安全隐患。其中所述指定报文规则为任意规则,例如为在预定时间内接收到的报文数据的大小与预设的数据大小相符合;或者例如为:计算所述回复报文的数据大小、所述数据包的数据大小和所述数据包的数量;判断所述回复报文的数据大小是否大于预设的报文数据阈值,判断所述数据包的数据大小是否大于预设的数据包数据阈值,判断所述数据包的数量是否与预设的数量相同;若所述回复报文的数据大小大于预设的报文数据阈值,并且所述数据包的数据大小大于预设的数据包数据阈值,并且所述数据包的数量与预设的数量相同,则判定所述回复报文符合指定报文规则。据此,不仅在网络开销小的前提下验证所述指定终端的通信是否正常,更能防止指定终端被劫持等不安全隐患,还能通过接收的数据大小粗略判断所述指定终端的通信能力是否满足要求。其中所述通信协议例如为HTTP协议等。
如上述单元20所述,若所述回复报文符合指定报文规则,则根据公式:
H(t)=min(G(t),m),其中E(t)=F(t)-f(t),获取函数H(t),其中F(t)为指定终端的流量随时间变化的流量函数,f(t)为预设的标准流量函数,E(t)为所述流量函数与所述标准流量函数的差值函数,为所述差值函数对时间的微分函数,min指最小值函数,t为时间,m为预设的大于0的误差参数值。其中函数H(t)用以表征所述指定终端的流量状况,当函数H(t)取值为m时,表示流量过大,处于异常状态;当函数H(t)取值不为m时,表示流量正常,处于正常状态,并以此判断所述指定终端是否异常。
如上述单元30所述,获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,根据公式:正常流量时间占比=所述第一时间长度/(所述第一时间长度+所述第二时间长度),计算出所述正常流量时间占比,并判断所述正常流量时间占比是否大于预设占比阈值。其中正常流量时间占比用以衡量所述指定终端的正常工作时间比例。若所述正常流量时间占比大于预设占比阈值,则认定所述指定终端正常,将其作为区块链网络的一个区块链节点是可行的。
如上述单元40所述,若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数。其中预设的参数输入工具具有可视化页面,从而操作人员通过可视化页面能够批量输入部署参数,相对于传统技术的单一设置部署参数的形式,更快捷且更不易出错。其中所述参数输入工具的获取方法例如为:采用预定的编程语言生成可视化界面;在所述可视化界面中设置用于接收输入的部署参数的第一插件;在所述可视化界面中设置窗口控件,以显示预设的参考参数、所述部署参数和所述部署参数是否超出预设参数范围的判断结果,从而获得所述参数输入工具。其中所述部署参数例如为区块链节点类型,操作系统信息,IP地址,通信端口等。
如上述单元50所述,依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中。本申请通过预设设置区块链节点镜像的方式,使得区块链节点的部署可以批量完成,提高了部署效率。进一步地,所述远程控制所述指定终端安装预设的区块链节点镜像还包括:从预存的多种虚拟机镜像中选择与所述指定终端的操作系统信息相匹配的正确虚拟机镜像;向所述指定终端发送所述正确虚拟机镜像和所述区块链节点容器镜像;远程控制所述指定终端接收所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,从而将所述指定终端加入所述区块链网络中。
在一个实施方式中,所述回复报文被封装为多个数据包,所述空报文发送单元10,包括:
数据计算子单元,用于计算所述回复报文的数据大小、所述数据包的数据大小和所述数据包的数量;
数据判断子单元,用于判断所述回复报文的数据大小是否大于预设的报文数据阈值,以及判断所述数据包的数据大小是否大于预设的数据包数据阈值,以及判断所述数据包的数量是否与预设的数量相同;
符合指定报文规则判定子单元,用于若所述回复报文的数据大小大于预设的报文数据阈值,并且所述数据包的数据大小大于预设的数据包数据阈值,并且所述数据包的数量与预设的数量相同,则判定所述回复报文符合指定报文规则。
如上所述,实现了判断所述回复报文是否符合指定报文规则。为了避免区块链节点部署失败,本申请采用判断所述回复报文的数据大小是否大于预设的报文数据阈值,判断所述数据包的数据大小是否大于预设的数据包数据阈值,判断所述数据包的数量是否与预设的数量相同,以确保指定终端不存在被劫持等不安全隐患,还能通过接收的数据大小粗略判断所述指定终端的通信能力是否满足要求。其中回复报文的数据大小、所述数据包的数据大小反应了所述指定终端的数据传输能力,所述数据包的数量用以佐证所述指定终端的安全性。
在一个实施方式中,所述装置,包括:
生成可视化界面单元,用于采用预定的编程语言生成可视化界面;
第一插件设置单元,用于在所述可视化界面中设置用于接收输入的部署参数的第一插件;
设置窗口控件单元,用于在所述可视化界面中设置窗口控件,以显示预设的参考参数、所述部署参数和所述部署参数是否超出预设参数范围的判断结果,从而获得所述参数输入工具。
如上所述,实现了获得所述参数输入工具。其中,所述预定的编程语言可为任意编程语言,例如JAVA,C语言,C++,Pyphon语言等。生成可视化界面(例如窗口界面,利于信息的输入与信息的反馈),从而使区块链的部署参数的编辑过程更直观,更易操作。通过插件以实现接收输入的部署参数,并将预设的参考参数、所述部署参数和所述部署参数是否超出预设参数范围的判断结果呈现在窗口控件中,以提高区块链部署效率。进一步地,所述第一插件还用于接收输入的多个终端的部署参数,从而实现了批量部署,更进一步提高了部署效率。
在一个实施方式中,所述区块链部署平台预存有虚拟机镜像和区块链节点容器镜像,所述部署参数包括所述指定终端的操作系统信息,所述远程部署单元50,包括:
正确虚拟机镜像选择子单元,用于从预存的多种虚拟机镜像中选择与所述指定终端的操作系统信息相匹配的正确虚拟机镜像;
发送子单元,用于向所述指定终端发送所述正确虚拟机镜像和所述区块链节点容器镜像;
远程控制子单元,用于远程控制所述指定终端接收所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,从而将所述指定终端加入所述区块链网络中。
如上所述,实现了远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中。其中,虚拟机镜像根据操作系统的种类和操作系统的版本分别设置有对应的虚拟机镜像,例如对于不同版本的linux操作系统,如redhat、centos、ubuntu,分别采用三种对应的虚拟机镜像,从而针对性地发送正确虚拟机镜像和所述区块链节点容器镜像的指定数据,避免所述虚拟机镜像和所述区块链节点容器镜像无法使用,造成区块链节点部署失败。
在一个实施方式中,所述远程控制子单元,包括:
通信端口获取模块,用于获取所述指定终端的IP地址与用于区块链通信的通信端口;
通信列表加入模块,用于将所述指定终端的IP地址与用于区块链通信的通信端口加入预设的通信列表中,其中所述通信列表记录了所述区块链网络中的所有区块链节点的IP地址与用于区块链通信的通信端口;
通信列表发送模块,用于将所述通信列表发送给所述指定终端;
远程控制模块,用于远程控制所述指定终端接收所述通信列表、所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,并远程控制所述指定终端依据所述通信列表获取所述区块链网络中的所有区块链节点,从而将所述指定终端加入所述区块链网络中。
如上所述,实现了将所述指定终端加入所述区块链网络中。区块链节点的IP地址和通信端口是区块链节点之间进行通信的基础。本申请通过将将所述指定终端的IP地址与用于区块链通信的通信端口加入预设的通信列表中,以实现通信信息的更新,从而加入所述区块链网络的指定终端能够与其他区块链节点进行通信。进一步地,还包括:将所述通信列表发送给所述区块链网络中的其他区块链节点。
在一个实施方式中,所述装置,包括:
获得创世区块单元,用于利用C++语言创建区块链类,并赋予所述区块链类指定参数,从而获得创世区块,并在所述创世区块中将前一区块的哈希值设为0;
生成其他区块单元,用于基于所述创世区块,采用预设的区块生成技术生成其他区块,其中所述其他区块记载有前一区块的哈希值;
搭建区块链网络单元,用于以预设终端作为区块链网络的区块链节点,从而搭建所述区块链网络。
如上所述,实现了搭建所述区块链网络。其中创建区块链类的语言可以为任意可行语言,例如JAVA、C++、Go语言等,本实施方式优选C++、Go语言,从而优化区块链类。其中区块链类(class)是对区块链的定义,将所述区块链类实例化即是确定区块链的具体参数,从而获得第一个区块(创世区块),从而作为其他区块的生成依据。由于创世区块是第一个区块,实际上没有之前的区块,因此在创世区块中将前一区块的哈希值设置为0。并基于所述创世区块,生成其他区块,其中所述其他区块记载有前一区块的哈希值,从而所有区块紧密相连,防止数据被篡改。所述第二区块链网络的预设共识机制可为任意共识机制,例如为工作量证明机制、权益证明机制、拜占庭容错机制、股份授权证明机制等,本实施方式优选股份授权证明机制。其中采用预设的区块生成技术例如为,设置区块头、区块体;在所述区块头中前一区块的哈希值,本区块体的哈希值和时间戳;在区块体中存储预先准备的数据,从而所述区块头与所述区块体构成了一个区块。
在一个实施方式中,所述指定终端存在多个,所述部署参数包括所述指定终端的区块链节点类型,所述远程部署单元50,包括:
配置文件获取子单元,用于将指定区块链节点类型的多个指定终端的部署参数记录入预设的配置文件中,并获取与所述指定区块链节点类型对应的指定区块链节点镜像;
配置文件发送子单元,用于将所述指定区块链节点镜像和所述配置文件发送给第一指定终端,其中所述第一指定终端是所述配置文件中的一个指定终端;
镜像安装子单元,用于远程控制所述第一指定终端接收所述指定区块链节点镜像和所述配置文件,并远程控制所述第一指定终端安装预设的区块链节点镜像;
远程控制发送子单元,用于远程控制所述第一指定终端将所述指定区块链节点镜像和所述配置文件发送给所述配置文件中记录的其他指定终端。
如上所述,实现了将所述指定终端加入所述区块链网络中。本申请通过将所述指定区块链节点镜像和所述配置文件发送给第一指定终端,其中所述第一指定终端是所述配置文件中的一个指定终端;远程控制所述第一指定终端接收所述指定区块链节点镜像和所述配置文件,并远程控制所述第一指定终端安装预设的区块链节点镜像;远程控制所述第一指定终端依照预设的洪水算法,将所述指定区块链节点镜像和所述配置文件发送给所述配置文件中记录的其他指定终端的方式,减轻了区块链部署平台的负担。其中,由于预先将指定终端及对应的部署参数按区块链节点的类型记录入配置文件中,即将指定区块链节点类型的多个指定终端的部署参数记录入预设的配置文件中,因此同一区块链节点类型的终端进行部署的数据大致相同,据此将需要的指定区块链节点镜像与对应的配置文件仅发送给第一指定终端(仅发送一次)即可,从而免去了多次发送相同的数据而需要的大量网络开销。而再远程控制所述第一指定终端依照预设的洪水算法,将所述指定区块链节点镜像和所述配置文件发送给所述配置文件中记录的其他指定终端,即可实现部署所需数据的发送。进一步地,所述远程控制所述第一指定终端将所述指定区块链节点镜像和所述配置文件发送给所述配置文件中记录的其他指定终端包括:远程控制所述第一指定终端依照预设的洪水算法,将所述指定区块链节点镜像和所述配置文件发送给所述配置文件中记录的其他指定终端。其中,所述洪水算法也称洪水填充算法,在本申请中即是使第一指定终端相邻的其他指定终端获取所述指定区块链节点镜像和所述配置文件,再依次使获取所述指定区块链节点镜像和所述配置文件的指定终端相邻的其他指定终端也获取所述指定区块链节点镜像和所述配置文件,直至所有的指定终端均获取所述指定区块链节点镜像和所述配置文件,以防止漏过节点。
本申请的区块链部署装置,向指定终端发送基于指定通信协议的空报文,接收回复报文;若所述回复报文符合指定报文规则,则根据公式:H(t)=min(G(t),m),其中E(t)=F(t)-f(t),获取函数H(t);获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,计算出正常流量时间占比;若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数;远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中,提高区块链部署的效率与成功率。
参照图3,本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储区块链部署方法所用数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链部署方法。
上述处理器执行上述区块链部署方法,应用于区块链部署平台,所述区块链部署平台是预先构建的区块链网络的一个区块链节点,包括:向指定终端发送基于指定通信协议的空报文,接收所述指定终端基于所述空报文发送的回复报文,根据预设的通信协议与报文规则的对应关系获取与所述指定通信协议对应指定报文规则,并判断所述回复报文是否符合指定报文规则;若所述回复报文符合指定报文规则,则根据公式:H(t)=min(G(t),m),其中E(t)=F(t)-f(t),获取函数H(t),其中F(t)为指定终端的流量随时间变化的流量函数,f(t)为预设的标准流量函数,E(t)为所述流量函数与所述标准流量函数的差值函数,为所述差值函数对时间的微分函数,min指最小值函数,t为时间,m为预设的大于0的误差参数值;获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,根据公式:正常流量时间占比=所述第一时间长度/(所述第一时间长度+所述第二时间长度),计算出所述正常流量时间占比,并判断所述正常流量时间占比是否大于预设占比阈值;若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数;依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中。
在一个实施方式中,所述回复报文被封装为多个数据包,所述判断所述回复报文是否符合指定报文规则的步骤,包括:计算所述回复报文的数据大小、所述数据包的数据大小和所述数据包的数量;判断所述回复报文的数据大小是否大于预设的报文数据阈值,以及判断所述数据包的数据大小是否大于预设的数据包数据阈值,以及判断所述数据包的数量是否与预设的数量相同;若所述回复报文的数据大小大于预设的报文数据阈值,并且所述数据包的数据大小大于预设的数据包数据阈值,并且所述数据包的数量与预设的数量相同,则判定所述回复报文符合指定报文规则。
在一个实施方式中,所述若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数的步骤之前,包括:采用预定的编程语言生成可视化界面;在所述可视化界面中设置用于接收输入的部署参数的第一插件;在所述可视化界面中设置窗口控件,以显示预设的参考参数、所述部署参数和所述部署参数是否超出预设参数范围的判断结果,从而获得所述参数输入工具。
在一个实施方式中,所述区块链部署平台预存有虚拟机镜像和区块链节点容器镜像,所述部署参数包括所述指定终端的操作系统信息,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤,包括:从预存的多种虚拟机镜像中选择与所述指定终端的操作系统信息相匹配的正确虚拟机镜像;向所述指定终端发送所述正确虚拟机镜像和所述区块链节点容器镜像;远程控制所述指定终端接收所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,从而将所述指定终端加入所述区块链网络中。
在一个实施方式中,所述远程控制所述指定终端接收所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,从而将所述指定终端加入所述区块链网络中的步骤,包括:获取所述指定终端的IP地址与用于区块链通信的通信端口;将所述指定终端的IP地址与用于区块链通信的通信端口加入预设的通信列表中,其中所述通信列表记录了所述区块链网络中的所有区块链节点的IP地址与用于区块链通信的通信端口;将所述通信列表发送给所述指定终端;远程控制所述指定终端接收所述通信列表、所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,并远程控制所述指定终端依据所述通信列表获取所述区块链网络中的所有区块链节点,从而将所述指定终端加入所述区块链网络中。
在一个实施方式中,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤之前,包括:利用C++语言创建区块链类,并赋予所述区块链类指定参数,从而获得创世区块,并在所述创世区块中将前一区块的哈希值设为0;基于所述创世区块,采用预设的区块生成技术生成其他区块,其中所述其他区块记载有前一区块的哈希值;以预设终端作为区块链网络的区块链节点,从而搭建所述区块链网络。
在一个实施方式中,所述指定终端存在多个,所述部署参数包括所述指定终端的区块链节点类型,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤,包括:将指定区块链节点类型的多个指定终端的部署参数记录入预设的配置文件中,并获取与所述指定区块链节点类型对应的指定区块链节点镜像;将所述指定区块链节点镜像和所述配置文件发送给第一指定终端,其中所述第一指定终端是所述配置文件中的一个指定终端;远程控制所述第一指定终端接收所述指定区块链节点镜像和所述配置文件,并远程控制所述第一指定终端安装预设的区块链节点镜像;远程控制所述第一指定终端将所述指定区块链节点镜像和所述配置文件发送给所述配置文件中记录的其他指定终端。
本领域技术人员可以理解,图中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请的计算机设备,向指定终端发送基于指定通信协议的空报文,接收回复报文;若所述回复报文符合指定报文规则,则根据公式:H(t)=min(G(t),m),其中E(t)=F(t)-f(t),获取函数H(t);获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,计算出正常流量时间占比;若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数;远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中,提高区块链部署的效率与成功率。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现区块链部署方法,应用于区块链部署平台,所述区块链部署平台是预先构建的区块链网络的一个区块链节点,包括:向指定终端发送基于指定通信协议的空报文,接收所述指定终端基于所述空报文发送的回复报文,根据预设的通信协议与报文规则的对应关系获取与所述指定通信协议对应指定报文规则,并判断所述回复报文是否符合指定报文规则;若所述回复报文符合指定报文规则,则根据公式:H(t)=min(G(t),m),其中E(t)=F(t)-f(t),获取函数H(t),其中F(t)为指定终端的流量随时间变化的流量函数,f(t)为预设的标准流量函数,E(t)为所述流量函数与所述标准流量函数的差值函数,为所述差值函数对时间的微分函数,min指最小值函数,t为时间,m为预设的大于0的误差参数值;获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,根据公式:正常流量时间占比=所述第一时间长度/(所述第一时间长度+所述第二时间长度),计算出所述正常流量时间占比,并判断所述正常流量时间占比是否大于预设占比阈值;若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数;依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中。
在一个实施方式中,所述回复报文被封装为多个数据包,所述判断所述回复报文是否符合指定报文规则的步骤,包括:计算所述回复报文的数据大小、所述数据包的数据大小和所述数据包的数量;判断所述回复报文的数据大小是否大于预设的报文数据阈值,以及判断所述数据包的数据大小是否大于预设的数据包数据阈值,以及判断所述数据包的数量是否与预设的数量相同;若所述回复报文的数据大小大于预设的报文数据阈值,并且所述数据包的数据大小大于预设的数据包数据阈值,并且所述数据包的数量与预设的数量相同,则判定所述回复报文符合指定报文规则。
在一个实施方式中,所述若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数的步骤之前,包括:采用预定的编程语言生成可视化界面;在所述可视化界面中设置用于接收输入的部署参数的第一插件;在所述可视化界面中设置窗口控件,以显示预设的参考参数、所述部署参数和所述部署参数是否超出预设参数范围的判断结果,从而获得所述参数输入工具。
在一个实施方式中,所述区块链部署平台预存有虚拟机镜像和区块链节点容器镜像,所述部署参数包括所述指定终端的操作系统信息,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤,包括:从预存的多种虚拟机镜像中选择与所述指定终端的操作系统信息相匹配的正确虚拟机镜像;向所述指定终端发送所述正确虚拟机镜像和所述区块链节点容器镜像;远程控制所述指定终端接收所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,从而将所述指定终端加入所述区块链网络中。
在一个实施方式中,所述远程控制所述指定终端接收所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,从而将所述指定终端加入所述区块链网络中的步骤,包括:获取所述指定终端的IP地址与用于区块链通信的通信端口;将所述指定终端的IP地址与用于区块链通信的通信端口加入预设的通信列表中,其中所述通信列表记录了所述区块链网络中的所有区块链节点的IP地址与用于区块链通信的通信端口;将所述通信列表发送给所述指定终端;远程控制所述指定终端接收所述通信列表、所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,并远程控制所述指定终端依据所述通信列表获取所述区块链网络中的所有区块链节点,从而将所述指定终端加入所述区块链网络中。
在一个实施方式中,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤之前,包括:利用C++语言创建区块链类,并赋予所述区块链类指定参数,从而获得创世区块,并在所述创世区块中将前一区块的哈希值设为0;基于所述创世区块,采用预设的区块生成技术生成其他区块,其中所述其他区块记载有前一区块的哈希值;以预设终端作为区块链网络的区块链节点,从而搭建所述区块链网络。
在一个实施方式中,所述指定终端存在多个,所述部署参数包括所述指定终端的区块链节点类型,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤,包括:将指定区块链节点类型的多个指定终端的部署参数记录入预设的配置文件中,并获取与所述指定区块链节点类型对应的指定区块链节点镜像;将所述指定区块链节点镜像和所述配置文件发送给第一指定终端,其中所述第一指定终端是所述配置文件中的一个指定终端;远程控制所述第一指定终端接收所述指定区块链节点镜像和所述配置文件,并远程控制所述第一指定终端安装预设的区块链节点镜像;远程控制所述第一指定终端将所述指定区块链节点镜像和所述配置文件发送给所述配置文件中记录的其他指定终端。
本申请的计算机可读存储介质,向指定终端发送基于指定通信协议的空报文,接收回复报文;若所述回复报文符合指定报文规则,则根据公式:H(t)=min(G(t),m),其中E(t)=F(t)-f(t),获取函数H(t);获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,计算出正常流量时间占比;若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数;远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中,提高区块链部署的效率与成功率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种区块链部署方法,其特征在于,应用于区块链部署平台,所述区块链部署平台是预先构建的区块链网络的一个区块链节点,包括:
向指定终端发送基于指定通信协议的空报文,接收所述指定终端基于所述空报文发送的回复报文,根据预设的通信协议与报文规则的对应关系获取与所述指定通信协议对应指定报文规则,并判断所述回复报文是否符合指定报文规则;
若所述回复报文符合指定报文规则,则根据公式:H(t)=min(G(t),m),其中E(t)=F(t)-f(t),获取函数H(t),其中F(t)为指定终端的流量随时间变化的流量函数,f(t)为预设的标准流量函数,E(t)为所述流量函数与所述标准流量函数的差值函数,为所述差值函数对时间的微分函数,min指最小值函数,t为时间,m为预设的大于0的误差参数值;
获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,根据公式:正常流量时间占比=所述第一时间长度/(所述第一时间长度+所述第二时间长度),计算出所述正常流量时间占比,并判断所述正常流量时间占比是否大于预设占比阈值;
若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数;
依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中。
2.根据权利要求1所述的区块链部署方法,其特征在于,所述回复报文被封装为多个数据包,所述判断所述回复报文是否符合指定报文规则的步骤,包括:
计算所述回复报文的数据大小、所述数据包的数据大小和所述数据包的数量;
判断所述回复报文的数据大小是否大于预设的报文数据阈值,以及判断所述数据包的数据大小是否大于预设的数据包数据阈值,以及判断所述数据包的数量是否与预设的数量相同;
若所述回复报文的数据大小大于预设的报文数据阈值,并且所述数据包的数据大小大于预设的数据包数据阈值,并且所述数据包的数量与预设的数量相同,则判定所述回复报文符合指定报文规则。
3.根据权利要求1所述的区块链部署方法,其特征在于,所述若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数的步骤之前,包括:
采用预定的编程语言生成可视化界面;
在所述可视化界面中设置用于接收输入的部署参数的第一插件;
在所述可视化界面中设置窗口控件,以显示预设的参考参数、所述部署参数和所述部署参数是否超出预设参数范围的判断结果,从而获得所述参数输入工具。
4.根据权利要求1所述的区块链部署方法,其特征在于,所述区块链部署平台预存有虚拟机镜像和区块链节点容器镜像,所述部署参数包括所述指定终端的操作系统信息,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤,包括:
从预存的多种虚拟机镜像中选择与所述指定终端的操作系统信息相匹配的正确虚拟机镜像;
向所述指定终端发送所述正确虚拟机镜像和所述区块链节点容器镜像;
远程控制所述指定终端接收所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,从而将所述指定终端加入所述区块链网络中。
5.根据权利要求4所述的区块链部署方法,其特征在于,所述远程控制所述指定终端接收所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,从而将所述指定终端加入所述区块链网络中的步骤,包括:
获取所述指定终端的IP地址与用于区块链通信的通信端口;
将所述指定终端的IP地址与用于区块链通信的通信端口加入预设的通信列表中,其中所述通信列表记录了所述区块链网络中的所有区块链节点的IP地址与用于区块链通信的通信端口;
将所述通信列表发送给所述指定终端;
远程控制所述指定终端接收所述通信列表、所述正确虚拟机镜像和所述区块链节点容器镜像,并远程控制所述指定终端在所述正确虚拟机镜像中安装所述区块链节点容器镜像,并远程控制所述指定终端依据所述通信列表获取所述区块链网络中的所有区块链节点,从而将所述指定终端加入所述区块链网络中。
6.根据权利要求1所述的区块链部署方法,其特征在于,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤之前,包括:
利用C++语言创建区块链类,并赋予所述区块链类指定参数,从而获得创世区块,并在所述创世区块中将前一区块的哈希值设为0;
基于所述创世区块,采用预设的区块生成技术生成其他区块,其中所述其他区块记载有前一区块的哈希值;
以预设终端作为区块链网络的区块链节点,从而搭建所述区块链网络。
7.根据权利要求1所述的区块链部署方法,其特征在于,所述指定终端存在多个,所述部署参数包括所述指定终端的区块链节点类型,所述依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中的步骤,包括:
将指定区块链节点类型的多个指定终端的部署参数记录入预设的配置文件中,并获取与所述指定区块链节点类型对应的指定区块链节点镜像;
将所述指定区块链节点镜像和所述配置文件发送给第一指定终端,其中所述第一指定终端是所述配置文件中的一个指定终端;
远程控制所述第一指定终端接收所述指定区块链节点镜像和所述配置文件,并远程控制所述第一指定终端安装预设的区块链节点镜像;
远程控制所述第一指定终端将所述指定区块链节点镜像和所述配置文件发送给所述配置文件中记录的其他指定终端。
8.一种区块链部署装置,其特征在于,应用于区块链部署平台,所述区块链部署平台是预先构建的区块链网络的一个区块链节点,包括:
空报文发送单元,用于向指定终端发送基于指定通信协议的空报文,接收所述指定终端基于所述空报文发送的回复报文,根据预设的通信协议与报文规则的对应关系获取与所述指定通信协议对应指定报文规则,并判断所述回复报文是否符合指定报文规则;
函数H(t)获取单元,用于若所述回复报文符合指定报文规则,则根据公式:H(t)=min(G(t),m),其中E(t)=F(t)-f(t),获取函数H(t),其中F(t)为指定终端的流量随时间变化的流量函数,f(t)为预设的标准流量函数,E(t)为所述流量函数与所述标准流量函数的差值函数,为所述差值函数对时间的微分函数,min指最小值函数,t为时间,m为预设的大于0的误差参数值;
正常流量时间判断单元,用于获取所述函数H(t)在时间轴上不等于m时的第一时间长度和等于m时的第二时间长度,根据公式:正常流量时间占比=所述第一时间长度/(所述第一时间长度+所述第二时间长度),计算出所述正常流量时间占比,并判断所述正常流量时间占比是否大于预设占比阈值;
部署参数获取单元,用于若所述正常流量时间占比大于预设占比阈值,则从预设的参数输入工具的可视化页面中获取输入的部署参数;
远程部署单元,用于依据所述部署参数,远程控制所述指定终端安装预设的区块链节点镜像,从而将所述指定终端加入所述区块链网络中。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910750575.8A CN110601874B (zh) | 2019-08-14 | 2019-08-14 | 区块链部署方法、装置、计算机设备和存储介质 |
PCT/CN2020/105348 WO2021027570A1 (zh) | 2019-08-14 | 2020-07-29 | 区块链部署方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910750575.8A CN110601874B (zh) | 2019-08-14 | 2019-08-14 | 区块链部署方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110601874A true CN110601874A (zh) | 2019-12-20 |
CN110601874B CN110601874B (zh) | 2022-06-17 |
Family
ID=68854315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910750575.8A Active CN110601874B (zh) | 2019-08-14 | 2019-08-14 | 区块链部署方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110601874B (zh) |
WO (1) | WO2021027570A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378691A (zh) * | 2019-06-18 | 2019-10-25 | 重庆金融资产交易所有限责任公司 | 基于部署中心的区块链部署方法、装置和计算机设备 |
WO2021027570A1 (zh) * | 2019-08-14 | 2021-02-18 | 深圳壹账通智能科技有限公司 | 区块链部署方法、装置、计算机设备和存储介质 |
CN114363178A (zh) * | 2022-01-21 | 2022-04-15 | 无锡软美信息科技有限公司 | 区块链网络优化方法、装置及系统 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116520815B (zh) * | 2023-07-03 | 2023-10-17 | 合众新能源汽车股份有限公司 | 一种远程诊断方法、装置、计算机设备和存储介质 |
CN117240894B (zh) * | 2023-11-13 | 2024-01-12 | 湖南超弦科技股份有限公司 | 一种Qt平台与PLC的互通控制方法、系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7277944B1 (en) * | 2001-05-31 | 2007-10-02 | Cisco Technology, Inc. | Two phase reservations for packet networks |
CN103236956A (zh) * | 2013-04-18 | 2013-08-07 | 神州数码网络(北京)有限公司 | 一种对通讯设备进行吞吐量测试的方法及交换机 |
CN104486787A (zh) * | 2014-12-08 | 2015-04-01 | 福建星网锐捷网络有限公司 | 一种无线链路故障检测方法及装置 |
CN107733855A (zh) * | 2017-08-31 | 2018-02-23 | 中国科学院信息工程研究所 | 一种可同时支持公有链、联盟链及私有链的区块链系统及应用方法 |
CN108886479A (zh) * | 2018-02-12 | 2018-11-23 | 深圳前海达闼云端智能科技有限公司 | 网络质量评估方法、装置、网络检测设备及可读存储介质 |
CN109561052A (zh) * | 2017-09-26 | 2019-04-02 | 北京国双科技有限公司 | 网站异常流量的检测方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10026118B2 (en) * | 2016-02-22 | 2018-07-17 | Bank Of America Corporation | System for allowing external validation of data in a process data network |
CN108595126B (zh) * | 2018-04-27 | 2022-09-02 | 腾讯科技(深圳)有限公司 | 数据存储系统、查询方法、查询装置、服务器及存储介质 |
CN110601874B (zh) * | 2019-08-14 | 2022-06-17 | 深圳壹账通智能科技有限公司 | 区块链部署方法、装置、计算机设备和存储介质 |
-
2019
- 2019-08-14 CN CN201910750575.8A patent/CN110601874B/zh active Active
-
2020
- 2020-07-29 WO PCT/CN2020/105348 patent/WO2021027570A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7277944B1 (en) * | 2001-05-31 | 2007-10-02 | Cisco Technology, Inc. | Two phase reservations for packet networks |
CN103236956A (zh) * | 2013-04-18 | 2013-08-07 | 神州数码网络(北京)有限公司 | 一种对通讯设备进行吞吐量测试的方法及交换机 |
CN104486787A (zh) * | 2014-12-08 | 2015-04-01 | 福建星网锐捷网络有限公司 | 一种无线链路故障检测方法及装置 |
CN107733855A (zh) * | 2017-08-31 | 2018-02-23 | 中国科学院信息工程研究所 | 一种可同时支持公有链、联盟链及私有链的区块链系统及应用方法 |
CN109561052A (zh) * | 2017-09-26 | 2019-04-02 | 北京国双科技有限公司 | 网站异常流量的检测方法及装置 |
CN108886479A (zh) * | 2018-02-12 | 2018-11-23 | 深圳前海达闼云端智能科技有限公司 | 网络质量评估方法、装置、网络检测设备及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
张珠君等: "区块链技术保障无线终端安全问题探究", 《保密科学技术》 * |
王锡亮等: "区块链综述:技术与挑战", 《无线电通信技术》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378691A (zh) * | 2019-06-18 | 2019-10-25 | 重庆金融资产交易所有限责任公司 | 基于部署中心的区块链部署方法、装置和计算机设备 |
WO2021027570A1 (zh) * | 2019-08-14 | 2021-02-18 | 深圳壹账通智能科技有限公司 | 区块链部署方法、装置、计算机设备和存储介质 |
CN114363178A (zh) * | 2022-01-21 | 2022-04-15 | 无锡软美信息科技有限公司 | 区块链网络优化方法、装置及系统 |
CN114363178B (zh) * | 2022-01-21 | 2022-12-27 | 肯特智能技术(深圳)股份有限公司 | 区块链网络优化方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110601874B (zh) | 2022-06-17 |
WO2021027570A1 (zh) | 2021-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110601874B (zh) | 区块链部署方法、装置、计算机设备和存储介质 | |
CN109788032B (zh) | 镜像文件的获取方法、装置、计算机设备和存储介质 | |
US20180115517A1 (en) | Secured Process Control Communications | |
DE102017124821A1 (de) | Veröffentlichung von daten über eine datendiode für gesicherte prozesssteuerungskommunikationen | |
CN103782566A (zh) | 通信协议 | |
CN110138741B (zh) | 基于统一管理平台的微服务管理方法、装置和计算机设备 | |
CN112769924B (zh) | RocketMQ的分布式部署方法、装置、设备及介质 | |
CN110704312A (zh) | 压力测试的方法、装置、计算机设备和存储介质 | |
CN114500358A (zh) | 网关报文分发方法、装置、设备及存储介质 | |
CN110808847B (zh) | 管理das系统的方法和设备、电子设备、存储介质 | |
CN112600801A (zh) | 一种流量访问控制方法、设备及存储介质 | |
CN113282327A (zh) | 应用程序配置项的配置方法、装置、设备及存储介质 | |
CN110602234B (zh) | 区块链网络节点管理方法、装置、设备以及存储介质 | |
CN110727588A (zh) | 网络应用的测试方法、系统、计算机设备和可读存储介质 | |
US11412369B2 (en) | Method for obtaining a command relating to a profile for accessing a network | |
CN108259477B (zh) | 基于sdn的网络访问控制方法、装置和计算机设备 | |
CN112738264B (zh) | 消息中间件消息传输方法、装置、计算机设备和存储介质 | |
JP6388629B2 (ja) | 車載制御装置、ゲートウェイ装置、および、車載ネットワークシステム | |
CN110166528B (zh) | 防止节点变更通知丢失的方法、装置和计算机设备 | |
JP6813110B1 (ja) | 通信装置、プログラム、通信方法、及び通信システム | |
CN112073470A (zh) | 工业控制系统通信方法、装置、计算机设备和存储介质 | |
CN113064658A (zh) | 配置数据的拷贝方法、装置、设备及计算机可读存储介质 | |
CN111736917A (zh) | 数据校验方法、装置、计算机设备和存储介质 | |
CN111698295B (zh) | 通信方法、装置、设备及计算机存储介质 | |
CN108667671B (zh) | 网管系统通信方法、装置、存储介质及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |