发明内容
本发明提供一种屏幕水印显示方法、装置、电子设备及计算机可读存储介质,其主要目的在于同时支持国产化操作系统UOS,使屏幕水印显示技术不再局限于windows办公环境和macOS办公环境,并且能够实时根据显示器的插拔、增减做出适应性的水印显示更改,且提高水印透明度,并且使水印应用程序不再受“显示桌面”、切换工作区等操作的影响,水印程序将始终保持最顶层显示,同时使鼠标能够穿透至下层应用,不受水印程序的影响。
为实现上述目的,本发明提供的一种屏幕水印显示方法,包括:
在预设环境下创建水印服务文件以形成水印生成线程,以使所述水印生成线程在系统登录时自动启动;其中,所述水印生成线程用于在自启动时获取当前显示器的目标参数,以及,根据所获取的目标参数为所述显示器生成水印;
根据所述水印生成线程自动启动时实时获取的当前显示器的目标参数,在所述显示器生成水印窗体;
通过监听组件监听所述显示器是否发生显示器动态变化和显示器参数变化;若发生显示器动态变化或显示器参数变化,则通过所述水印生成线程将所述水印窗体全部销毁形成全空显示器;
通过所述水印生成线程为所述全空显示器创建水印窗体以进行水印显示。
可选地,在预设环境下创建水印服务文件以形成水印生成线程,以使所述水印生成线程在系统登录时自动启动的过程,包括:
确定所述水印生成线程的开发环境;其中,所述开发环境为python3和pyQt5环境;
在所述系统的预设文件夹中创建水印服务文件形成水印生成线程;所述既定系统为UOS系统;
将所述水印服务文件与所述系统的登陆窗口相绑定;若所述登陆窗口为已登陆状态,则所述水印服务文件发生数据变动使所述水印生成线程自启动。
可选地,根据所述水印生成线程自动启动时实时获取的当前显示器的目标参数,在所述显示器生成水印窗体的过程,包括:
根据所述水印生成线程的自启动,更新所述水印服务文件中的数据,其中,所述水印服务文件中的数据包括当前显示器的目标参数;
根据所述水印服务文件中的数据更新,确定当前显示器的目标参数;其中,所述目标参数包括:密钥及存储标识;
根据所述存储标识获取显示端口信息;
根据所述显示端口信息获取水印生成的目标地址;
于所述目标地址验证所述密钥;若密钥解密成功,则在所述目标地址生成水印;
将所述水印标注在与所述目标地址相对应的显示器上。
可选地,通过监听组件监听所述显示器是否发生显示器动态变化和显示器参数变化;若发生显示器动态变化或显示器参数变化,则通过所述水印生成线程将所述水印窗体全部销毁形成全空显示器的过程,包括:
添加显示器变化事件包;
若所述显示器发生显示器动态变化或显示器参数变化,则所述显示器变化事件包发生数据更新形成后续事件数据包;
通过预设的监听组件对所述显示器变化事件进行实时监听,以获取所述后续事件数据包;
根据所述后续事件数据包遍历现存的所有水印窗体,并通过所述水印线程中的销毁函数销毁现存的所有的水印窗体,以使发生显示器动态变化或显示器参数变化的所有显示器转换为全空显示器。
可选地,所述显示器动态变化至少包括显示器数量的增减、插拔;
所述显数器参数变化至少包括显示器的分辨率变化。
可选地,通过所述水印生成线程为所述全空显示器创建水印窗体以进行水印显示的过程,包括:
通过所述水印生成线程中的窗体显示函数创建水印窗口,并对所述水印窗口进行规范处理以形成规范视野窗口;
通过所述水印生成线程中的隐藏函数自动隐藏所述水印生成线程的边框和任务栏图标以使所述规范视野窗口转换为隐藏式规范视野窗口;
通过预设的固定插件自动固定所述水印生成线程,使所述水印生成线程永久置顶,并通过预设的穿透机制使鼠标的操作透传到所述隐藏式规范视野窗口的下层应用;
转换水印文字的绘制坐标系,使所述水印文字呈M*N的矩阵分布,并且使所述水印文字呈预设角度倾斜以填充所述隐藏式规范视野窗口形成水印窗体。
可选地,
所述窗体显示函数至少包括前景窗体显示函数和背景窗体显示函数;
所述前景窗体显示函数用于使所述水印窗口的内容前景自动半透明;
所述背景窗体显示函数用于使所述水印窗口的背景自动全透明。
为了解决上述问题,本发明还提供一种屏幕水印显示装置,所述装置包括:
线程形成单元,用于在预设环境下创建水印服务文件以形成水印生成线程,以使所述水印生成线程在系统登录时自动启动;其中,所述水印生成线程用于在自启动时获取当前显示器的目标参数,以及,根据所获取的目标参数为所述显示器生成水印;
水印窗体生成单元,用于根据所述水印生成线程自动启动时实时获取的当前显示器的目标参数,在所述显示器生成水印窗体;
窗体销毁单元,用于通过监听组件监听所述显示器是否发生显示器动态变化和显示器参数变化;若发生显示器动态变化或显示器参数变化,则通过所述水印生成线程将所述水印窗体全部销毁形成全空显示器;
水印显示单元,用于通过所述水印生成线程为所述全空显示器创建水印窗体以进行水印显示。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现上述所述的屏幕水印显示方法中的步骤。
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述所述的屏幕水印显示方法。
本发明实施例首先在预设环境下创建水印服务文件以形成水印生成线程,以使水印生成线程在系统登录时自动启动,使水印生成线程自动启动时实时获取当前显示器的目标参数,根据目标参数在显示器生成水印窗体;再通过监听组件监听显示器是否发生显示器动态变化和显示器参数变化;若发生显示器动态变化或显示器参数变化,则通过水印生成线程将水印窗体全部销毁形成全空显示器,最后通过水印生成线程为全空显示器创建水印窗体以进行水印显示,从而使水印显示同样适应于国产UOS系统,并且能够根据显示器的插拔、增减自适应生成一致的水印,以使每个显示器都有自己的水印窗体对象,互不影响,解决同一窗体对象不能同时显示在多个屏幕上的问题,使得每一块屏幕上都能同时显示水印,并且都可以根据该块屏幕特有的参数进行水印绘制。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种屏幕水印显示方法。参照图1所示,为本发明一实施例提供的屏幕水印显示方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,屏幕水印显示方法包括:
S1:在预设环境下创建水印服务文件以形成水印生成线程,以使该水印生成线程在系统登录时自动启动;其中,水印生成线程用于在自启动时获取当前显示器的目标参数,以及,根据所获取的目标参数为显示器生成水印;
其中,该系统为UOS系统,即本屏幕水印显示方法支持国产UOS系统;
在步骤S1中,在预设环境下创建水印服务文件以形成水印生成线程,以使该水印生成线程在该系统登录时自动启动的过程,包括:
S11:确定水印生成线程的开发环境;其中,该开发环境为python3和pyQt5环境;
S12:在该系统的预设文件夹中创建水印服务文件形成水印生成线程;该系统为UOS系统;
S13:将该水印服务文件与该系统的登陆窗口相绑定;若该登陆窗口为已登陆状态,则该水印服务文件发生数据变动使该水印生成线程自启动。
具体的,确定开发平台和框架需要考虑到:①平台和框架是否支持UOS操作系统;②平台和框架是否具有较好的可移植性;③平台和框架是否能够方便最终产品部署;④平台和框架是否能支持开发者高效率开发。
首先,UOS操作系统发行版自带python3和pyQt5运行环境,故选择python3和pyQt5运行环境支持该操作系统。
其次,python语言是跨平台的语言,在其他主流操作系统上也可以使用,pyQt5是基于python和qt5的,跨平台、可移植性适宜。
再次,由于UOS系统自带了python3和pyQt5环境,因此选用这种组合开发出来的应用程序,无需额外安装运行环境,使最终产品部署变得更为简单。
最后,基于python3和pyQt5框架开发屏幕水印客户端,可以充分利用python语言的简单高效的开发特性,不用额外处理内存管理和垃圾回收等工作,使得开发工作变得更为高效,故得以实现本发明中的屏幕水印显示方法支持国产UOS系统。
S2:根据该水印生成线程自动启动时实时获取的当前显示器的目标参数,在该显示器生成水印窗体;
在步骤S2中,根据所述水印生成线程自动启动时实时获取的当前显示器的目标参数,在所述显示器生成水印窗体的过程,包括:
S21:根据所述水印生成线程的自启动,更新所述水印服务文件中的数据,其中,所述水印服务文件中的数据包括当前显示器的目标参数;
S22:根据所述水印服务文件中的数据更新,确定当前显示器的目标参数;其中,所述目标参数包括:密钥及存储标识;
S23:根据所述存储标识获取显示端口信息;;
S24:根据该显示端口信息获取水印生成的目标地址;
S25:于该目标地址验证该密钥;若密钥解密成功,则在该目标地址生成水印;
S26:将该水印标注在与该目标地址相对应的显示器上。
S3:通过监听组件监听该显示器是否发生显示器动态变化和显示器参数变化;若发生显示器动态变化或显示器参数变化,则通过该水印生成线程将该水印窗体全部销毁形成全空显示器;
在步骤S3中,通过监听组件监听该显示器是否发生显示器动态变化和显示器参数变化;若发生显示器动态变化或显示器参数变化,则通过该水印生成线程将该水印窗体全部销毁形成全空显示器的过程,包括:
S31:添加显示器变化事件包;
S32:若该显示器发生显示器动态变化或显示器参数变化,则该显示器变化事件包发生数据更新形成后续事件数据包;
S33:通过预设的监听组件对该显示器变化事件进行实时监听,以获取该后续事件数据包;
S34:根据该后续事件数据包遍历现存的所有水印窗体,并通过该水印线程中的销毁函数销毁现存的所有的水印窗体,以使发生显示器动态变化或显示器参数变化的所有显示器转换为全空显示器;
并且,该显示器动态变化至少包括显示器数量的增减、插拔;
该显数器参数变化至少包括显示器的分辨率变化。
具体的,在本实施例中,在显示器变化事件包中添加显示器的变化,该显示器的变化包括显示器动态变化,该显示器动态变化在本实施例中包括是Qt库的QApplication.screenAdde事件,即显示器数量新增,这里的新增可以为显示器插拔中的增插,也可以是人工新增连接新的显示器,和QApplication.screenRemoved事件,即显示器数量减少,这里的减少可以为显示器插拔中的拔除,也可以是人工切断原有显示器的连接;
同时,预设有监听组件,该监听组件能够对每一块屏幕的分辨率变化、新增屏幕时间、移出屏幕事件实现实时监听,在本实施例中记作Qt库的Qscreen.geometryChanged事件。
当显示器数量或屏幕分辨率发生变化时,遍历销毁每一个屏幕的屏幕水印,从而后续遍历每个屏幕,重新根据当前的分辨率和屏幕数量绘制屏幕水印,这样每个屏幕有自己的水印窗体对象,互不影响,解决同一窗体对象不能同时显示在多个屏幕上的问题,使得每一块屏幕上都能同时显示水印,并且都可以根据该块屏幕特有的参数进行水印绘制。
S4:通过该水印生成线程为该全空显示器创建水印窗体以进行水印显示;
在步骤S4中,通过该水印生成线程为该全空显示器创建水印窗体以进行水印显示的过程,包括:
S41:通过该水印生成线程中的窗体显示函数创建水印窗口,并对该水印窗口进行规范处理以形成规范视野窗口;其中,
窗体显示函数至少包括前景窗体显示函数和背景窗体显示函数;
前景窗体显示函数用于使水印窗口的内容前景自动半透明;
背景窗体显示函数用于使水印窗口的背景自动全透明。
S42:通过该水印生成线程中的隐藏函数自动隐藏该水印生成线程的边框和任务栏图标以使该规范视野窗口转换为隐藏式规范视野窗口;
S43:通过预设的固定插件自动固定所述水印生成线程,使所述水印生成线程永久置顶,并通过预设的穿透机制使鼠标的操作透传到所述隐藏式规范视野窗口的下层应用;
S44:转换水印文字的绘制坐标系,使该水印文字呈M*N的矩阵分布,并且使该水印文字呈预设角度倾斜以填充该隐藏式规范视野窗口形成水印窗体。
具体的,在本实施例中,步骤S1首先先用半透明函数setWindowOpacity函数设置窗口透明度为0.22,使窗口所有部件包括窗口背景呈现半透明效果,同时,窗体的半透明效果使屏幕呈现一种朦胧的模糊感,为了消除这种模糊感,再使用透明函数:setAttribute(Qt.WA_TranslucentBackground),该透明函数可以使窗口的背景完全透明,而不影响窗口中的部件的透明度,如此使得水印不再对操作者正常的使用产生模糊感影响;
在步骤S42中,隐藏函数包括第一隐藏函数和第二隐藏函数,屏幕水印无需显示任务栏图标,因此在本步骤中需自动隐藏水印生成线程的边框和任务栏图标,即使用Qt库的第一隐藏函数setWindowFlags(Qt.Tool)隐藏应用程序在任务栏的图标;同时,使用Qt库的第二隐藏函数setWindowFlags(Qt.FramelessWindowHint)隐藏屏幕水印程序的边框和按钮;
一般情况下当打开其他程序窗口之后,水印程序的显示内容会被覆盖,使用Qt库的固定插件setWindowFlags(Qt.WindowStaysOnTopHint)可以将窗口保持置顶状态,但当点击右下角的“显示桌面”按钮的时候,屏幕水印程序会被最小化,导致屏幕水印效果消失,故在步骤S43中预设固定插件该固定插件采用setWindowFlags(Qt.BypassWindowManagerHint)函数,该固定插件可以使应用程序脱离水印生成线程生成的窗体中窗口管理器的管理,也就是说,调用这个函数之后,水印应用程序将不会再受到“显示桌面”、切换工作区等操作的影响,水印程序将始终保持最顶层显示。
在步骤S43中,虽然用户能够看见水印下方的其他程序的界面内容(由于设置了透明),但是由于水印生成线程永久置顶,占据了顶层位置,用户的鼠标点击操作都被顶层的水印生成线程接收到了,无法被下层的其他应用程序接收到,而实际上我们的水印应用程序(水印生成线程)是不需要接收处理任何鼠标事件的,所以我们需要将用户的鼠标操作事件传递到下层的其他应用程序上,故在步骤S43中设置穿透机制,即setAttribute(WA_TransparentForMouseEvents)函数,通过该穿透机制使鼠标的操作透传到该隐藏式规范视野窗口的下层应用,即将本程序接收到的鼠标事件无条件的透传到下一层的应用程序上。
在步骤S44中,由于水印通常都是需要以一定角度倾斜显示,并形成M行*N列的水印文字矩阵,在本实施例中,首先使水印文字呈预设角度倾斜,即为画笔设置倾斜角度(设为a度)之后,整个绘制的坐标系会发生同步的旋转倾斜,使得开发人员不能按标准的坐标系来绘制水印文字和图像,其中坐标转换公式如下:
w=screenwidth/N
h=screenheight/M
x1=w*j-tan(π/180*|a|)*h*i
y1=h*i+tan(π/180*|a|)*w*j
o=h/4
最终的函数为:
x=f(w,h,i,j,a)=x1-tan(π/180*|a|)*o
y=g(w,h,i,j,a)=y1+o
其中,screenwidth为屏幕分辨率宽度,screenheight为屏幕分辨率高度,M为水印矩阵的行数量,N为水印矩阵的列数量,计算结果x1为x坐标轴基础值,计算结果y1为y坐标轴基础值,o为水印绘制起始点的纵向偏移量,w为每个水印格的宽度,j为当前绘制的水印所在的列数,a为水印倾斜角度,h为每个水印格的高度,i为当前绘制的水印所在的行数,x和y分别为最终绘制水印的坐标值。
通过如上计算,即可得到需要绘制水印文字的起始坐标点(x,y)。利用Qt库的QPainter.drawText函数,传入x,y坐标值,便可以进行水印文字的绘制,形成最终的水印窗体。
如上所述,本发明提供的屏幕水印显示方法,首先在预设环境下创建水印服务文件以形成水印生成线程,以使水印生成线程在系统登录时自动启动,使水印生成线程自动启动时实时获取当前显示器的目标参数,根据目标参数在显示器生成水印窗体;再通过监听组件监听显示器是否发生显示器动态变化和显示器参数变化;若发生显示器动态变化或显示器参数变化,则通过水印生成线程将水印窗体全部销毁形成全空显示器,最后通过水印生成线程为全空显示器创建水印窗体以进行水印显示,从而使水印显示同样适应于uos系统,并且能够根据显示器的插拔、增减自适应生成一致的水印,以使每个显示器都有自己的水印窗体对象,互不影响,解决同一窗体对象不能同时显示在多个屏幕上的问题,使得每一块屏幕上都能同时显示水印,并且都可以根据该块屏幕特有的参数进行水印绘制。
如图2所示,本发明提供一种屏幕水印显示装置100,本发明可以安装于电子设备中。根据实现的功能,该屏幕水印显示装置100可以包括线程形成单元101、水印窗体生成单元102、窗体销毁单元103、水印显示单元104。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
线程形成单元101,用于在预设环境下创建水印服务文件以形成水印生成线程,以使该水印生成线程在该系统登录时自动启动;其中,水印生成线程用于在自启动时获取当前显示器的目标参数,以及,根据所获取的目标参数为显示器生成水印;
水印窗体生成单元102,用于根据该水印生成线程自动启动时实时获取的当前显示器的目标参数,在该显示器生成水印窗体;
窗体销毁单元103,用于通过监听组件监听该显示器是否发生显示器动态变化和显示器参数变化;若发生显示器动态变化或显示器参数变化,则通过该水印生成线程将该水印窗体全部销毁形成全空显示器;
水印显示单元104,用于通过该水印生成线程为该全空显示器创建水印窗体以进行水印显示。
如图3所示,本发明提供一种屏幕水印显示方法的电子设备1。
该电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在存储器11中并可在所述处理器10上运行的计算机程序,如屏幕水印显示程序12。
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如屏幕水印显示程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如屏幕水印显示程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备1中的所述存储器11存储的屏幕水印显示程序12是多个指令的组合,在所述处理器10中运行时,可以实现:
在预设环境下创建水印服务文件以形成水印生成线程,以使水印生成线程在该系统登录时自动启动;其中,水印生成线程用于在自启动时获取当前显示器的目标参数,以及,根据所获取的目标参数为显示器生成水印;
根据水印生成线程自动启动时实时获取的当前显示器的目标参数,在显示器生成水印窗体;
通过监听组件监听显示器是否发生显示器动态变化和显示器参数变化;若发生显示器动态变化或显示器参数变化,则通过水印生成线程将水印窗体全部销毁形成全空显示器;
通过水印生成线程为该全空显示器创建水印窗体以进行水印显示。
具体地,所述处理器10对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。需要强调的是,为进一步保证上述屏幕水印显示的私密和安全性,上述屏幕水印显示数据存储于本服务器集群所处区块链的节点中。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本发明实施例还提供一种计算机可读存储介质,所述存储介质可以是非易失性的,也可以是易失性的,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现:
在预设环境下创建水印服务文件以形成水印生成线程,以使水印生成线程在该系统登录时自动启动;其中,水印生成线程用于在自启动时获取当前显示器的目标参数,以及,根据所获取的目标参数为显示器生成水印;
根据水印生成线程自动启动时实时获取的当前显示器的目标参数,在显示器生成水印窗体;
通过监听组件监听显示器是否发生显示器动态变化和显示器参数变化;若发生显示器动态变化或显示器参数变化,则通过水印生成线程将水印窗体全部销毁形成全空显示器;
通过水印生成线程为该全空显示器创建水印窗体以进行水印显示。
具体地,所述计算机程序被处理器执行时具体实现方法可参考实施例屏幕水印显示方法中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。