CN110378691A - 基于部署中心的区块链部署方法、装置和计算机设备 - Google Patents
基于部署中心的区块链部署方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN110378691A CN110378691A CN201910528627.7A CN201910528627A CN110378691A CN 110378691 A CN110378691 A CN 110378691A CN 201910528627 A CN201910528627 A CN 201910528627A CN 110378691 A CN110378691 A CN 110378691A
- Authority
- CN
- China
- Prior art keywords
- block chain
- designated terminal
- information
- terminal
- acquisition request
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004891 communication Methods 0.000 claims abstract description 134
- 230000004048 modification Effects 0.000 claims description 23
- 238000012986 modification Methods 0.000 claims description 23
- 230000007246 mechanism Effects 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 description 7
- 108010001267 Protein Subunits Proteins 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 238000012508 change request Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请揭示了一种基于部署中心的区块链部署方法、装置、计算机设备和存储介质,所述方法包括:接收指定终端发送的指定数据获取请求;根据预设的合法性判断规则判断所述获取请求是否合法;若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据;接收所述指定终端的注册请求;记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。从而在坚持去中心化的基础上提高区块链部署效率。
Description
技术领域
本申请涉及到计算机领域,特别是涉及到一种基于部署中心的区块链部署方法、装置、计算机设备和存储介质。
背景技术
现有技术在部署区块链网络时,有两种方式:一种是分布式部署,每个节点管理员按照约定的规则分别进行部署,这种方式协商成本大,部署工作量大;另一种是集中式部署,拥有一个超级管理员可以操控网络中的所有节点,这种方式违背了去中心化的思想,使得超级管理员的权限过大,可以控制每一个区块链节点,从而削弱了区块链的信用体系。因此,现有技术在部署区块链网络,要么花费大量的成本,要么削弱区块链的信用体系,即现有技术缺乏同时兼顾去中心化与部署效率的技术方案。
发明内容
本申请的主要目的为提供一种基于部署中心的区块链部署方法、装置、计算机设备和存储介质,旨在坚持去中心化的基础上提高区块链部署效率。
为了实现上述发明目的,本申请提出一种基于部署中心的区块链部署方法,包括以下步骤:
接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像;
根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断;
若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据;
接收已在所述虚拟机镜像中安装并启动所述区块链节点容器镜像的所述指定终端的注册请求,所述注册请求附带有所述指定终端的IP地址和通信端口的信息;
记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
进一步地,所述获取请求具有用于代表所述终端身份的身份令牌,所述根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断的步骤,包括:
从所述获取请求中提取所述身份令牌;
根据预设的身份令牌与终端的对应关系,确定所述指定终端;
判断所述指定终端是否记载于预设的权限列表中;
若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法。
进一步地,所述获取请求是经过私钥进行加密后的密文,所述部署中心存储有所述私钥对应的公钥,所述根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断的步骤,包括:
从存储的多个公钥中获取能够解密所述密文的公钥;
根据所述能够解密所述密文的公钥,利用预设的公钥与终端的对应关系,确定所述指定终端;
判断所述指定终端是否记载于预设的权限列表中;
若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法。
进一步地,所述获取请求携带有所述指定终端的操作***信息,所述若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据的步骤,包括:
若所述获取请求合法,则从所述获取请求中提取出所述操作***信息;
从预存的多种虚拟机镜像中选择与所述操作***信息相匹配的正确虚拟机镜像;
根据所述获取请求,向所述指定终端发送至少包括所述正确虚拟机镜像和所述区块链节点容器镜像的指定数据。
进一步地,所述记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署的步骤,包括:
判断所述注册请求是否具有由所述区块链网络中的证书权威节点签发的数字证书;
若所述注册请求具有由所述区块链网络中的证书权威节点签发的数字证书,则获取所述数字证书,并从所述数字证书中获知所述指定终端的节点类型,其中所述节点类型包括同伴节点或者命令者节点;
记录所述注册请求的信息,并向所述指定终端发送所有区块链节点的节点类型、IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的节点类型、IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
进一步地,所述记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署的步骤之后,包括:
接收所述指定终端发送的修改IP地址或者通信端口的修改请求;
根据所述修改请求,在所述指定终端的注册信息中修改所述终端的IP地址或者通信端口;
将修改后的所述终端的IP地址或者通信端口的信息发送给所有区块链节点。
进一步地,所述接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像的步骤之前,包括:
利用指定语言创建区块链类,并将所述区块链类实例化后获得创世区块,在所述创世区块中将前一区块的哈希值设置为0;
基于所述创世区块,生成其他区块,其中所述其他区块记载有前一区块的哈希值;
以同意所述区块链网络的预设共识机制的终端作为区块链节点,从而搭建所述区块链网络。
本申请提供一种基于部署中心的区块链部署装置,包括:
获取请求接收单元,用于接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像;
合法性判断单元,用于根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断;
指定数据发送单元,用于若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据;
注册请求接收单元,用于接收已在所述虚拟机镜像中安装并启动所述区块链节点容器镜像的所述指定终端的注册请求,所述注册请求附带有所述指定终端的IP地址和通信端口的信息;
注册信息记录单元,用于记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的基于部署中心的区块链部署方法、装置、计算机设备和存储介质,通过接收指定数据获取请求;若所述获取请求合法,向指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据;接收所述指定终端的注册请求;记录所述注册请求的信息,并向所述指定终端发送所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,完成部署,从而实现了兼顾去中心化与部署效率。
附图说明
图1为本申请一实施例的基于部署中心的区块链部署方法的流程示意图;
图2为本申请一实施例的基于部署中心的区块链部署装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例提供一种基于部署中心的区块链部署方法,包括以下步骤:
S1、接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像;
S2、根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断;
S3、若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据;
S4、接收已在所述虚拟机镜像中安装并启动所述区块链节点容器镜像的所述指定终端的注册请求,所述注册请求附带有所述指定终端的IP地址和通信端口的信息;
S5、记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
现有技术在配置部署区块链网络时,一种是分布式部署,即每个节点都按照约定的规则分别进行部署,此时每个节点都必须单独获取公共帐本、区块链的组织结构、其他节点的IP地址、通信端口等,当区块链节点很多时,部署工作量巨大;另一种是采用具有超级管理员权限节点的集中式部署,其中超级管理员权限节点有权登陆、控制节块链网络中的所有节点,这种方式违背了去中心化的思想,使得超级管理员的权限过大,违背了区块链的本意。本申请采用部署中心进行辅助部署区块链,其中所述部署中心没有管理员权限,无法登陆或者控制其他节点,并且能够统一提供部署的相应资源(虚拟机镜像和区块链节点容器镜像等),从而在坚持去中心化的基础上,增加了区块链部署效率。
如上述步骤S1所述,接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像。其中,所述预先搭建的区块链网络可以为公有链、联盟链或者私有链。部署中心指预存有用于部署区块链节点的虚拟机镜像和区块链节点容器镜像的终端或服务器。进一步地,部署中心还预存有节点组织、通道配置或者智能合约等资源。其中,虚拟机镜像用于提供基础运行环境,例如运行区块链节点容器镜像的环境、编程程序语言运行环境或者基础工具包等。区块链节点容器镜像保存有公共帐本等数据,用于在安装并启动区块链节点容器镜像后,使所述终端具有成为区块链节点的基础条件(例如还需要获取其他区块链节点的IP地址等信息,以及告知其他区块链节点本终端的IP地址等信息,才能完成加入所述区块链网络)。所述获取请求至少包括请求获取虚拟机镜像和区块链节点容器镜像,进一步地,所述获取请求还包括请求获取节点组织、通道配置或者智能合约等数据。其中,预先搭建的区块链网络中可以为任意方式搭建起的区块链网络,优选仅有一个节点链节点(即部署中心)的区块链网络,再通过本申请实现在所述区块链网络中部署其他的区块链节点。
如上述步骤S2所述,根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断。所述合法性判断可以为任意可以判断方法,例如包括对所述指定终端的权限判断。所述权限判断的过程包括:从存储的多个公钥中获取能够解密所述密文的公钥;根据所述能够解密所述密文的公钥,利用预设的公钥与终端的对应关系,确定所述指定终端;判断所述指定终端是否记载于预设的权限列表中;若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法。从而实现预先对终端进行分类,以针对性地确定将成为区块链节点的备选终端。进一步地,所述合法性判断规则还可以包括任意判断规则,例如判断指定终端的各硬件配置级别是否均达到预定级别,若达到则判定合格。
如上述步骤S3所述,若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据。由前述,若所述获取请求合法,表明所述指定终端是将成为区块链节点的备选终端,因此则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据。而所述指定终端在获得至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据后,在所述虚拟机镜像中安装并启动所述区块链节点容器镜像后,即可完成加入区块链的准备。
如上述步骤S4所述,接收已在所述虚拟机镜像中安装并启动所述区块链节点容器镜像的所述指定终端的注册请求,所述注册请求附带有所述指定终端的IP地址和通信端口的信息。所述指定终端要加入区块链,应当获知其他区块链节点的IP地址和通信端口的信息,同时也应当让其他区块链节点获知所述指定终端的IP地址和通信端口的信息。从而,在所述指定终端加入区块链后,所述指定终端与其他区块链节点的信息通信就不再需要通过部署中心,也即实现了去中心化。其中,所述通信端口为任意端口,例如为不同服务提供通信的端口中,例如123是状态数据库访问端口,343是事件监听端口,999是数据同步端口等。
如上述步骤S5所述,记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。本申请中,部署中心不仅提供区块链节点部署需要的资源(虚拟机镜像等),还能够记录指定终端的注册请求的信息,并提供指定终端和区块链节点之间至少第一次的IP地址和通信端口的信息交换。即记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息。因此指定终端与区块链节点之间能够互相获知对方,从而完成所述指定终端在所述区块链网络中的部署。
在一个实施方式中,所述获取请求具有用于代表所述终端身份的身份令牌,所述根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断的步骤S2,包括:
S201、从所述获取请求中提取所述身份令牌;
S202、根据预设的身份令牌与终端的对应关系,确定所述指定终端;
S203、判断所述指定终端是否记载于预设的权限列表中;
S204、若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法。
如上所述,实现了根据预设的合法性判断规则判断所述获取请求是否合法。本实施方式中,采用身份令牌以确定所述指定终端。其中,所述身份令牌可以由任意方式生成,例如由部署中心生成与所述指定终端对应的身份令牌,并将所述与所述指定终端对应的身份令牌发送给所述指定终端。因此,所述身份令牌为部署中心所预知,并且身份令牌与终端的对应关系预存在所述部署中心中。据此,通过所述获取请求中的身份令牌即可确定所述指定终端。再通过判断所述指定终端是否记载于预设的权限列表中,从而实现对所述指定终端的权限判断。若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法;反之,则判定所述指定终端不合法。
在一个实施方式中,所述获取请求是经过私钥进行加密后的密文,所述部署中心存储有所述私钥对应的公钥,所述根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断的步骤S2,包括:
S211、从存储的多个公钥中获取能够解密所述密文的公钥;
S212、根据所述能够解密所述密文的公钥,利用预设的公钥与终端的对应关系,确定所述指定终端;
S213、判断所述指定终端是否记载于预设的权限列表中;
S214、若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法。
如上所述,实现了根据预设的合法性判断规则判断所述获取请求是否合法。其中,所述部署中心存储的所述私钥对应的公钥,可以通过任意方式获得,例如通过当前时间之前从所述指定终端发送的附带有所述私钥对应的公钥的通信信息中获取。因此部署中心存储有多个公钥,每个公钥对应于一个终端,当一个公钥能够解开密文,那么这个公钥对应的终端即为发送所述密文的终端。从而,即利用了非对称密钥的加密技术提高了通信安全性,又可以利用公钥直接确定指定终端的身份。再通过判断所述指定终端是否记载于预设的权限列表中,从而实现对所述指定终端的权限判断。若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法;反之,则判定所述指定终端不合法。
在一个实施方式中,所述获取请求携带有所述指定终端的操作***信息,所述若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据的步骤S3,包括:
S301、若所述获取请求合法,则从所述获取请求中提取出所述操作***信息;
S302、从预存的多种虚拟机镜像中选择与所述操作***信息相匹配的正确虚拟机镜像;
S303、根据所述获取请求,向所述指定终端发送至少包括所述正确虚拟机镜像和所述区块链节点容器镜像的指定数据。
如上所述,实现了向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据。若所述获取请求合法,则可以向所述指定终端发送所述获取请求要求的数据。其中,虚拟机镜像根据操作***的种类和操作***的版本分别设置有对应的虚拟机镜像,例如对于不同版本的linux操作***,如redhat、centos、ubuntu,分别采用三种对应的虚拟机镜像,从而针对性地发送正确虚拟机镜像和所述区块链节点容器镜像的指定数据,避免所述虚拟机镜像和所述区块链节点容器镜像无法使用,造成区块链节点部署失败。
在一个实施方式中,所述记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署的步骤S5,包括:
S501、判断所述注册请求是否具有由所述区块链网络中的证书权威节点签发的数字证书;
S502、若所述注册请求具有由所述区块链网络中的证书权威节点签发的数字证书,则获取所述数字证书并从所述数字证书中获知所述指定终端的节点类型,其中所述节点类型包括同伴节点或者命令者节点;
S503、记录所述注册请求的信息,并向所述指定终端发送所有区块链节点的节点类型、IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的节点类型、IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
如上所述,通过部署中心实现了IP地址和通信端口的信息的交换。本申请的区块链网络为公有链、联盟链或者私有链,而本实施方式中优选联盟链或者私用链,并采用证书权威节点管理区块链节点的身份。其中,证书权威节点(CA节点,Certificate Authority)是指所述区块链(联盟链或者私有链)中管理各节点身份的节点,包括通过签发代表节点身份的身份证书给对应的节点,以在所述区块链中证明节点的身份。具有证书权威节点签发的数字证书的注册请求,表明发送所述注册请求的指定终端是得到证书权威节点许可的,有资格加入所述区块链网络,并且所述数字证书中记载有节点类型的信息,其中所述节点类型包括同伴节点或者命令者节点。其中,命令者节点,用于负责确保此区块链的一致性并传达被背书的交易给中的同伴节点;同伴节点,用于执行合约、访问账本数据、背书交易。因此,记录所述注册请求的信息,并向所述指定终端发送所有区块链节点的节点类型、IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的节点类型、IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
在一个实施方式中,所述记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署的步骤S5之后,包括:
S51、接收所述指定终端发送的修改IP地址或者通信端口的修改请求;
S52、根据所述修改请求,在所述指定终端的注册信息中修改所述终端的IP地址或者通信端口;
S53、将修改后的所述终端的IP地址或者通信端口的信息发送给所有区块链节点。
如上所述,通过部署中心实现了更新IP地址或者通信端口。当所述指定终端的IP地址或者通信端口发生改变后,为了使其他区块链节点还能找到所述指定终端,则应当将修改后的IP地址或者通信端口的信息发送给其他区块链节点。具体地,部署中心接收所述指定终端发送的修改IP地址或者通信端口的修改请求,根据所述修改请求,在所述指定终端的注册信息中修改所述终端的IP地址或者通信端口,将修改后的所述终端的IP地址或者通信端口的信息发送给所有区块链节点。从而借助部署中心实现了IP地址或者通信端口的更新。进一步地,部署中心还可以主动判断指定终端的IP地址或者通信端口是否发生修改,若发生了修改,则获取修改后的指定终端的IP地址或者通信端口,并在所述指定终端的注册信息中修改所述终端的IP地址或者通信端口,再将修改后的所述终端的IP地址或者通信端口的信息发送给所有区块链节点。
在一个实施方式中,所述接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像的步骤S1之前,包括:
S001、利用指定语言创建区块链类,并将所述区块链类实例化后获得创世区块,在所述创世区块中将前一区块的哈希值设置为0;
S002、基于所述创世区块,生成其他区块,其中所述其他区块记载有前一区块的哈希值;
S003、以同意所述区块链网络的预设共识机制的终端作为区块链节点,从而搭建所述区块链网络。
如上所述,实现了搭建所述区块链网络。其中创建区块链类的语言可以为任意可行语言,例如JAVA、C++、Go语言等,本实施方式优选Go语言,从而优化区块链类。其中区块链类(class)是对区块链的定义,将所述区块链类实例化即是确定区块链的具体参数,从而获得第一个区块(创世区块),从而作为其他区块的生成依据。由于创世区块是第一个区块,实际上没有之前的区块,因此在创世区块中将前一区块的哈希值设置为0。所述区块链网络的预设共识机制可为任意共识机制,例如为工作量证明机制、权益证明机制、拜占庭容错机制等,本实施方式优选拜占庭容错机制。
本申请的基于部署中心的区块链部署方法,通过接收指定数据获取请求;若所述获取请求合法,向指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据;接收所述指定终端的注册请求;记录所述注册请求的信息,并向所述指定终端发送所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,完成部署,从而实现了兼顾去中心化与部署效率。
参照图2,本申请实施例提供一种基于部署中心的区块链部署装置,包括:
获取请求接收单元10,用于接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像;
合法性判断单元20,用于根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断;
指定数据发送单元30,用于若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据;
注册请求接收单元40,用于接收已在所述虚拟机镜像中安装并启动所述区块链节点容器镜像的所述指定终端的注册请求,所述注册请求附带有所述指定终端的IP地址和通信端口的信息;
注册信息记录单元50,用于记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
现有技术在配置部署区块链网络时,一种是分布式部署,即每个节点都按照约定的规则分别进行部署,此时每个节点都必须单独获取公共帐本、区块链的组织结构、其他节点的IP地址、通信端口等,当区块链节点很多时,部署工作量巨大;另一种是采用具有超级管理员权限节点的集中式部署,其中超级管理员权限节点有权登陆、控制节块链网络中的所有节点,这种方式违背了去中心化的思想,使得超级管理员的权限过大,违背了区块链的本意。本申请采用部署中心进行辅助部署区块链,其中所述部署中心没有管理员权限,无法登陆或者控制其他节点,并且能够统一提供部署的相应资源(虚拟机镜像和区块链节点容器镜像等),从而在坚持去中心化的基础上,增加了区块链部署效率。
如上述单元10所述,接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像。其中,所述预先搭建的区块链网络可以为公有链、联盟链或者私有链。部署中心指预存有用于部署区块链节点的虚拟机镜像和区块链节点容器镜像的终端或服务器。进一步地,部署中心还预存有节点组织、通道配置或者智能合约等资源。其中,虚拟机镜像用于提供基础运行环境,例如运行区块链节点容器镜像的环境、编程程序语言运行环境或者基础工具包等。区块链节点容器镜像保存有公共帐本等数据,用于在安装并启动区块链节点容器镜像后,使所述终端具有成为区块链节点的基础条件(例如还需要获取其他区块链节点的IP地址等信息,以及告知其他区块链节点本终端的IP地址等信息,才能完成加入所述区块链网络)。所述获取请求至少包括请求获取虚拟机镜像和区块链节点容器镜像,进一步地,所述获取请求还包括请求获取节点组织、通道配置或者智能合约等数据。其中,预先搭建的区块链网络中可以为任意方式搭建起的区块链网络,优选仅有一个节点链节点(即部署中心)的区块链网络,再通过本申请实现在所述区块链网络中部署其他的区块链节点。
如上述单元20所述,根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断。所述合法性判断可以为任意可以判断方法,例如包括对所述指定终端的权限判断。所述权限判断的过程包括:从存储的多个公钥中获取能够解密所述密文的公钥;根据所述能够解密所述密文的公钥,利用预设的公钥与终端的对应关系,确定所述指定终端;判断所述指定终端是否记载于预设的权限列表中;若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法。从而实现预先对终端进行分类,以针对性地确定将成为区块链节点的备选终端。进一步地,所述合法性判断规则还可以包括任意判断规则,例如判断指定终端的各硬件配置级别是否均达到预定级别,若达到则判定合格。
如上述单元30所述,若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据。由前述,若所述获取请求合法,表明所述指定终端是将成为区块链节点的备选终端,因此则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据。而所述指定终端在获得至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据后,在所述虚拟机镜像中安装并启动所述区块链节点容器镜像后,即可完成加入区块链的准备。
如上述单元40所述,接收已在所述虚拟机镜像中安装并启动所述区块链节点容器镜像的所述指定终端的注册请求,所述注册请求附带有所述指定终端的IP地址和通信端口的信息。所述指定终端要加入区块链,应当获知其他区块链节点的IP地址和通信端口的信息,同时也应当让其他区块链节点获知所述指定终端的IP地址和通信端口的信息。从而,在所述指定终端加入区块链后,所述指定终端与其他区块链节点的信息通信就不再需要通过部署中心,也即实现了去中心化。其中,所述通信端口为任意端口,例如为不同服务提供通信的端口中,例如123是状态数据库访问端口,343是事件监听端口,999是数据同步端口等。
如上述单元50所述,记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。本申请中,部署中心不仅提供区块链节点部署需要的资源(虚拟机镜像等),还能够记录指定终端的注册请求的信息,并提供指定终端和区块链节点之间至少第一次的IP地址和通信端口的信息交换。即记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息。因此指定终端与区块链节点之间能够互相获知对方,从而完成所述指定终端在所述区块链网络中的部署。
在一个实施方式中,所述获取请求具有用于代表所述终端身份的身份令牌,所述合法性判断单元20,包括:
身份令牌提取子单元,用于从所述获取请求中提取所述身份令牌;
指定终端确定子单元,用于根据预设的身份令牌与终端的对应关系,确定所述指定终端;
权限列表判断子单元,用于判断所述指定终端是否记载于预设的权限列表中;
合法判定子单元,用于若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法。
如上所述,实现了根据预设的合法性判断规则判断所述获取请求是否合法。本实施方式中,采用身份令牌以确定所述指定终端。其中,所述身份令牌可以由任意方式生成,例如由部署中心生成与所述指定终端对应的身份令牌,并将所述与所述指定终端对应的身份令牌发送给所述指定终端。因此,所述身份令牌为部署中心所预知,并且身份令牌与终端的对应关系预存在所述部署中心中。据此,通过所述获取请求中的身份令牌即可确定所述指定终端。再通过判断所述指定终端是否记载于预设的权限列表中,从而实现对所述指定终端的权限判断。若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法;反之,则判定所述指定终端不合法。
在一个实施方式中,所述获取请求是经过私钥进行加密后的密文,所述部署中心存储有所述私钥对应的公钥,所述合法性判断单元20,包括:
公钥获取子单元,用于从存储的多个公钥中获取能够解密所述密文的公钥;
指定终端确定子单元,用于根据所述能够解密所述密文的公钥,利用预设的公钥与终端的对应关系,确定所述指定终端;
权限列表判断子单元,用于判断所述指定终端是否记载于预设的权限列表中;
合法判定子单元,用于若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法。
如上所述,实现了根据预设的合法性判断规则判断所述获取请求是否合法。其中,所述部署中心存储的所述私钥对应的公钥,可以通过任意方式获得,例如通过当前时间之前从所述指定终端发送的附带有所述私钥对应的公钥的通信信息中获取。因此部署中心存储有多个公钥,每个公钥对应于一个终端,当一个公钥能够解开密文,那么这个公钥对应的终端即为发送所述密文的终端。从而,即利用了非对称密钥的加密技术提高了通信安全性,又可以利用公钥直接确定指定终端的身份。再通过判断所述指定终端是否记载于预设的权限列表中,从而实现对所述指定终端的权限判断。若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法;反之,则判定所述指定终端不合法。
在一个实施方式中,所述获取请求携带有所述指定终端的操作***信息,所述指定数据发送单元30,包括:
操作***信息提取子单元,用于若所述获取请求合法,则从所述获取请求中提取出所述操作***信息;
正确虚拟机镜像选择子单元,用于从预存的多种虚拟机镜像中选择与所述操作***信息相匹配的正确虚拟机镜像;
指定数据发送子单元,用于根据所述获取请求,向所述指定终端发送至少包括所述正确虚拟机镜像和所述区块链节点容器镜像的指定数据。
如上所述,实现了向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据。若所述获取请求合法,则可以向所述指定终端发送所述获取请求要求的数据。其中,虚拟机镜像根据操作***的种类和操作***的版本分别设置有对应的虚拟机镜像,例如对于不同版本的linux操作***,如redhat、centos、ubuntu,分别采用三种对应的虚拟机镜像,从而针对性地发送正确虚拟机镜像和所述区块链节点容器镜像的指定数据,避免所述虚拟机镜像和所述区块链节点容器镜像无法使用,造成区块链节点部署失败。
在一个实施方式中,所述注册信息记录单元50,包括:
数字证书判断子单元,用于判断所述注册请求是否具有由所述区块链网络中的证书权威节点签发的数字证书;
节点类型获取子单元,用于若所述注册请求具有由所述区块链网络中的证书权威节点签发的数字证书,则获取所述数字证书并从所述数字证书中获知所述指定终端的节点类型,其中所述节点类型包括同伴节点或者命令者节点;
注册信息记录子单元,用于记录所述注册请求的信息,并向所述指定终端发送所有区块链节点的节点类型、IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的节点类型、IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
如上所述,通过部署中心实现了IP地址和通信端口的信息的交换。本申请的区块链网络为公有链、联盟链或者私有链,而本实施方式中优选联盟链或者私用链,并采用证书权威节点管理区块链节点的身份。其中,证书权威节点(CA节点,Certificate Authority)是指所述区块链(联盟链或者私有链)中管理各节点身份的节点,包括通过签发代表节点身份的身份证书给对应的节点,以在所述区块链中证明节点的身份。具有证书权威节点签发的数字证书的注册请求,表明发送所述注册请求的指定终端是得到证书权威节点许可的,有资格加入所述区块链网络,并且所述数字证书中记载有节点类型的信息,其中所述节点类型包括同伴节点或者命令者节点。其中,命令者节点,用于负责确保此区块链的一致性并传达被背书的交易给中的同伴节点;同伴节点,用于执行合约、访问账本数据、背书交易。因此,记录所述注册请求的信息,并向所述指定终端发送所有区块链节点的节点类型、IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的节点类型、IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
在一个实施方式中,所述装置,包括:
修改请求接收单元,用于接收所述指定终端发送的修改IP地址或者通信端口的修改请求;
注册信息修改单元,用于根据所述修改请求,在所述指定终端的注册信息中修改所述终端的IP地址或者通信端口;
信息发送单元,用于将修改后的所述终端的IP地址或者通信端口的信息发送给所有区块链节点。
如上所述,通过部署中心实现了更新IP地址或者通信端口。当所述指定终端的IP地址或者通信端口发生改变后,为了使其他区块链节点还能找到所述指定终端,则应当将修改后的IP地址或者通信端口的信息发送给其他区块链节点。具体地,部署中心接收所述指定终端发送的修改IP地址或者通信端口的修改请求,根据所述修改请求,在所述指定终端的注册信息中修改所述终端的IP地址或者通信端口,将修改后的所述终端的IP地址或者通信端口的信息发送给所有区块链节点。从而借助部署中心实现了IP地址或者通信端口的更新。进一步地,部署中心还可以主动判断指定终端的IP地址或者通信端口是否发生修改,若发生了修改,则获取修改后的指定终端的IP地址或者通信端口,并在所述指定终端的注册信息中修改所述终端的IP地址或者通信端口,再将修改后的所述终端的IP地址或者通信端口的信息发送给所有区块链节点。
在一个实施方式中,所述装置,包括:
创世区块获取单元,用于利用指定语言创建区块链类,并将所述区块链类实例化后获得创世区块,在所述创世区块中将前一区块的哈希值设置为0;
其他区块生成单元,用于基于所述创世区块,生成其他区块,其中所述其他区块记载有前一区块的哈希值;
区块链网络搭建单元,用于以同意所述区块链网络的预设共识机制的终端作为区块链节点,从而搭建所述区块链网络。
如上所述,实现了搭建所述区块链网络。其中创建区块链类的语言可以为任意可行语言,例如JAVA、C++、Go语言等,本实施方式优选Go语言,以优化区块链类。其中区块链类(class)是对区块链的定义,将所述区块链类实例化即是确定区块链的具体参数,从而获得第一个区块(创世区块),从而作为其他区块的生成依据。由于创世区块是第一个区块,实际上没有之前的区块,因此在创世区块中将前一区块的哈希值设置为0。所述区块链网络的预设共识机制可为任意共识机制,例如为工作量证明机制、权益证明机制、拜占庭容错机制等,本实施方式优选拜占庭容错机制。
本申请的基于部署中心的区块链部署装置,通过接收指定数据获取请求;若所述获取请求合法,向指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据;接收所述指定终端的注册请求;记录所述注册请求的信息,并向所述指定终端发送所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,完成部署,从而实现了兼顾去中心化与部署效率。
参照图3,本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于部署中心的区块链部署方法所用数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于部署中心的区块链部署方法。
上述处理器执行上述基于部署中心的区块链部署方法,包括以下步骤:接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像;根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断;若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据;接收已在所述虚拟机镜像中安装并启动所述区块链节点容器镜像的所述指定终端的注册请求,所述注册请求附带有所述指定终端的IP地址和通信端口的信息;记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
在一个实施方式中,所述获取请求具有用于代表所述终端身份的身份令牌,所述根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断的步骤,包括:从所述获取请求中提取所述身份令牌;根据预设的身份令牌与终端的对应关系,确定所述指定终端;判断所述指定终端是否记载于预设的权限列表中;若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法。
在一个实施方式中,所述获取请求是经过私钥进行加密后的密文,所述部署中心存储有所述私钥对应的公钥,所述根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断的步骤,包括:从存储的多个公钥中获取能够解密所述密文的公钥;根据所述能够解密所述密文的公钥,利用预设的公钥与终端的对应关系,确定所述指定终端;判断所述指定终端是否记载于预设的权限列表中;若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法。
在一个实施方式中,所述获取请求携带有所述指定终端的操作***信息,所述若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据的步骤,包括:若所述获取请求合法,则从所述获取请求中提取出所述操作***信息;从预存的多种虚拟机镜像中选择与所述操作***信息相匹配的正确虚拟机镜像;根据所述获取请求,向所述指定终端发送至少包括所述正确虚拟机镜像和所述区块链节点容器镜像的指定数据。
在一个实施方式中,所述记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署的步骤,包括:判断所述注册请求是否具有由所述区块链网络中的证书权威节点签发的数字证书;若所述注册请求具有由所述区块链网络中的证书权威节点签发的数字证书,则获取所述数字证书,并从所述数字证书中获知所述指定终端的节点类型,其中所述节点类型包括同伴节点或者命令者节点;记录所述注册请求的信息,并向所述指定终端发送所有区块链节点的节点类型、IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的节点类型、IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
在一个实施方式中,所述记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署的步骤之后,包括:接收所述指定终端发送的修改IP地址或者通信端口的修改请求;根据所述修改请求,在所述指定终端的注册信息中修改所述终端的IP地址或者通信端口;将修改后的所述终端的IP地址或者通信端口的信息发送给所有区块链节点。
在一个实施方式中,所述接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像的步骤之前,包括:利用指定语言创建区块链类,并将所述区块链类实例化后获得创世区块,在所述创世区块中将前一区块的哈希值设置为0;基于所述创世区块,生成其他区块,其中所述其他区块记载有前一区块的哈希值;以同意所述区块链网络的预设共识机制的终端作为区块链节点,从而搭建所述区块链网络。
本领域技术人员可以理解,图中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请的计算机设备,通过接收指定数据获取请求;若所述获取请求合法,向指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据;接收所述指定终端的注册请求;记录所述注册请求的信息,并向所述指定终端发送所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,完成部署,从而实现了兼顾去中心化与部署效率。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现基于部署中心的区块链部署方法,包括以下步骤:接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像;根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断;若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据;接收已在所述虚拟机镜像中安装并启动所述区块链节点容器镜像的所述指定终端的注册请求,所述注册请求附带有所述指定终端的IP地址和通信端口的信息;记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
在一个实施方式中,所述获取请求具有用于代表所述终端身份的身份令牌,所述根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断的步骤,包括:从所述获取请求中提取所述身份令牌;根据预设的身份令牌与终端的对应关系,确定所述指定终端;判断所述指定终端是否记载于预设的权限列表中;若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法。
在一个实施方式中,所述获取请求是经过私钥进行加密后的密文,所述部署中心存储有所述私钥对应的公钥,所述根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断的步骤,包括:从存储的多个公钥中获取能够解密所述密文的公钥;根据所述能够解密所述密文的公钥,利用预设的公钥与终端的对应关系,确定所述指定终端;判断所述指定终端是否记载于预设的权限列表中;若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法。
在一个实施方式中,所述获取请求携带有所述指定终端的操作***信息,所述若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据的步骤,包括:若所述获取请求合法,则从所述获取请求中提取出所述操作***信息;从预存的多种虚拟机镜像中选择与所述操作***信息相匹配的正确虚拟机镜像;根据所述获取请求,向所述指定终端发送至少包括所述正确虚拟机镜像和所述区块链节点容器镜像的指定数据。
在一个实施方式中,所述记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署的步骤,包括:判断所述注册请求是否具有由所述区块链网络中的证书权威节点签发的数字证书;若所述注册请求具有由所述区块链网络中的证书权威节点签发的数字证书,则获取所述数字证书,并从所述数字证书中获知所述指定终端的节点类型,其中所述节点类型包括同伴节点或者命令者节点;记录所述注册请求的信息,并向所述指定终端发送所有区块链节点的节点类型、IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的节点类型、IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
在一个实施方式中,所述记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署的步骤之后,包括:接收所述指定终端发送的修改IP地址或者通信端口的修改请求;根据所述修改请求,在所述指定终端的注册信息中修改所述终端的IP地址或者通信端口;将修改后的所述终端的IP地址或者通信端口的信息发送给所有区块链节点。
在一个实施方式中,所述接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像的步骤之前,包括:利用指定语言创建区块链类,并将所述区块链类实例化后获得创世区块,在所述创世区块中将前一区块的哈希值设置为0;基于所述创世区块,生成其他区块,其中所述其他区块记载有前一区块的哈希值;以同意所述区块链网络的预设共识机制的终端作为区块链节点,从而搭建所述区块链网络。
本申请的计算机可读存储介质,通过接收指定数据获取请求;若所述获取请求合法,向指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据;接收所述指定终端的注册请求;记录所述注册请求的信息,并向所述指定终端发送所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,完成部署,从而实现了兼顾去中心化与部署效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(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.一种基于部署中心的区块链部署方法,其特征在于,包括:
接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像;
根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断;
若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据;
接收已在所述虚拟机镜像中安装并启动所述区块链节点容器镜像的所述指定终端的注册请求,所述注册请求附带有所述指定终端的IP地址和通信端口的信息;
记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
2.根据权利要求1所述的基于部署中心的区块链部署方法,其特征在于,所述获取请求具有用于代表所述终端身份的身份令牌,所述根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断的步骤,包括:
从所述获取请求中提取所述身份令牌;
根据预设的身份令牌与终端的对应关系,确定所述指定终端;
判断所述指定终端是否记载于预设的权限列表中;
若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法。
3.根据权利要求1所述的基于部署中心的区块链部署方法,其特征在于,所述获取请求是经过私钥进行加密后的密文,所述部署中心存储有所述私钥对应的公钥,所述根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断的步骤,包括:
从存储的多个公钥中获取能够解密所述密文的公钥;
根据所述能够解密所述密文的公钥,利用预设的公钥与终端的对应关系,确定所述指定终端;
判断所述指定终端是否记载于预设的权限列表中;
若所述指定终端记载于预设的权限列表中,则判定所述指定终端合法。
4.根据权利要求1所述的基于部署中心的区块链部署方法,其特征在于,所述获取请求携带有所述指定终端的操作***信息,所述若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据的步骤,包括:
若所述获取请求合法,则从所述获取请求中提取出所述操作***信息;
从预存的多种虚拟机镜像中选择与所述操作***信息相匹配的正确虚拟机镜像;
根据所述获取请求,向所述指定终端发送至少包括所述正确虚拟机镜像和所述区块链节点容器镜像的指定数据。
5.根据权利要求1所述的基于部署中心的区块链部署方法,其特征在于,所述记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署的步骤,包括:
判断所述注册请求是否具有由所述区块链网络中的证书权威节点签发的数字证书;
若所述注册请求具有由所述区块链网络中的证书权威节点签发的数字证书,则获取所述数字证书,并从所述数字证书中获知所述指定终端的节点类型,其中所述节点类型包括同伴节点或者命令者节点;
记录所述注册请求的信息,并向所述指定终端发送所有区块链节点的节点类型、IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的节点类型、IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
6.根据权利要求1所述的基于部署中心的区块链部署方法,其特征在于,所述记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署的步骤之后,包括:
接收所述指定终端发送的修改IP地址或者通信端口的修改请求;
根据所述修改请求,在所述指定终端的注册信息中修改所述终端的IP地址或者通信端口;
将修改后的所述终端的IP地址或者通信端口的信息发送给所有区块链节点。
7.根据权利要求1所述的基于部署中心的区块链部署方法,其特征在于,所述接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像的步骤之前,包括:
利用指定语言创建区块链类,并将所述区块链类实例化后获得创世区块,在所述创世区块中将前一区块的哈希值设置为0;
基于所述创世区块,生成其他区块,其中所述其他区块记载有前一区块的哈希值;
以同意所述区块链网络的预设共识机制的终端作为区块链节点,从而搭建所述区块链网络。
8.一种基于部署中心的区块链部署装置,其特征在于,包括:
获取请求接收单元,用于接收指定终端发送的指定数据获取请求,其中所述部署中心位于预先搭建的区块链网络中,所述指定数据至少包括虚拟机镜像和区块链节点容器镜像;
合法性判断单元,用于根据预设的合法性判断规则判断所述获取请求是否合法,其中所述合法性判断规则至少包括对所述指定终端的权限判断;
指定数据发送单元,用于若所述获取请求合法,则根据所述获取请求,向所述指定终端发送至少包括所述虚拟机镜像和所述区块链节点容器镜像的指定数据;
注册请求接收单元,用于接收已在所述虚拟机镜像中安装并启动所述区块链节点容器镜像的所述指定终端的注册请求,所述注册请求附带有所述指定终端的IP地址和通信端口的信息;
注册信息记录单元,用于记录所述注册请求的信息,并向所述指定终端发送预存的所有区块链节点的IP地址和通信端口的信息,以及向所有区块链节点发送所述指定终端的IP地址和通信端口的信息,从而完成所述指定终端在所述区块链网络中的部署。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910528627.7A CN110378691A (zh) | 2019-06-18 | 2019-06-18 | 基于部署中心的区块链部署方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910528627.7A CN110378691A (zh) | 2019-06-18 | 2019-06-18 | 基于部署中心的区块链部署方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110378691A true CN110378691A (zh) | 2019-10-25 |
Family
ID=68249305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910528627.7A Pending CN110378691A (zh) | 2019-06-18 | 2019-06-18 | 基于部署中心的区块链部署方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110378691A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110995480A (zh) * | 2019-11-25 | 2020-04-10 | 百度在线网络技术(北京)有限公司 | 区块链网络部署方法、装置、电子设备和介质 |
CN111124617A (zh) * | 2019-12-24 | 2020-05-08 | 腾讯科技(深圳)有限公司 | 区块链***的创建方法和装置、存储介质及电子装置 |
CN111328025A (zh) * | 2020-02-26 | 2020-06-23 | 中国联合网络通信集团有限公司 | 一种轨迹追踪方法、终端设备、基站及服务器 |
CN112765586A (zh) * | 2021-01-12 | 2021-05-07 | 湖北宸威玺链信息技术有限公司 | 一种基于区块链的部署文件分发方法、设备和存储介质 |
TWI728571B (zh) * | 2019-11-26 | 2021-05-21 | 中華電信股份有限公司 | 區塊鏈服務的資源管理方法及系統 |
CN113709128A (zh) * | 2021-08-19 | 2021-11-26 | 山东新一代信息产业技术研究院有限公司 | 一种基于区块链的iros***通信方法及设备 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR1211999A (fr) * | 1957-03-28 | 1960-03-21 | Sperry Rand Corp | Calculateur électronique |
US20180082256A1 (en) * | 2016-09-19 | 2018-03-22 | Sap Se | Decentralized credentials verification network |
CN107888384A (zh) * | 2017-11-30 | 2018-04-06 | 中链科技有限公司 | 一种身份数据管理方法、***和计算机可读存储介质 |
WO2018162789A1 (en) * | 2017-03-06 | 2018-09-13 | Nokia Technologies Oy | Secure de-centralized domain name system |
CA3056933A1 (en) * | 2017-05-04 | 2018-11-08 | Monticello Enterprises LLC | Providing cryptocurrency payments through a browser application programming interface |
CN108830733A (zh) * | 2018-06-21 | 2018-11-16 | 中国银行股份有限公司 | 一种信息处理方法、区块链集群及*** |
CN108965468A (zh) * | 2018-08-16 | 2018-12-07 | 北京京东尚科信息技术有限公司 | 区块链网络服务平台及其链码安装方法、存储介质 |
CN109376528A (zh) * | 2018-10-26 | 2019-02-22 | 上海交通大学 | 一种基于区块链的可信身份管理***和方法 |
CN109417549A (zh) * | 2016-04-30 | 2019-03-01 | 西伟科技有限公司 | 使用集中式或分布式分类账来提供信息证明的方法和设备 |
CN109450638A (zh) * | 2018-10-23 | 2019-03-08 | 国科赛思(北京)科技有限公司 | 基于区块链的电子元器件数据管理***及方法 |
CN109509108A (zh) * | 2018-12-19 | 2019-03-22 | 中国平安财产保险股份有限公司 | 基于区块链技术的保险保单处理方法、装置和计算机设备 |
CN109617698A (zh) * | 2019-01-09 | 2019-04-12 | 腾讯科技(深圳)有限公司 | 发放数字证书的方法、数字证书颁发中心和介质 |
WO2019087007A1 (en) * | 2017-11-02 | 2019-05-09 | nChain Holdings Limited | Computer-implemented systems and methods for linking a blockchain to a set of digital twins |
CN110535654A (zh) * | 2019-07-23 | 2019-12-03 | 平安科技(深圳)有限公司 | 基于区块链的并行***部署方法、装置和计算机设备 |
CN110555319A (zh) * | 2019-07-22 | 2019-12-10 | 平安科技(深圳)有限公司 | 基于区块链的资源预期结果审核方法、装置和计算机设备 |
CN110601874A (zh) * | 2019-08-14 | 2019-12-20 | 深圳壹账通智能科技有限公司 | 区块链部署方法、装置、计算机设备和存储介质 |
-
2019
- 2019-06-18 CN CN201910528627.7A patent/CN110378691A/zh active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR1211999A (fr) * | 1957-03-28 | 1960-03-21 | Sperry Rand Corp | Calculateur électronique |
CN109417549A (zh) * | 2016-04-30 | 2019-03-01 | 西伟科技有限公司 | 使用集中式或分布式分类账来提供信息证明的方法和设备 |
US20180082256A1 (en) * | 2016-09-19 | 2018-03-22 | Sap Se | Decentralized credentials verification network |
WO2018162789A1 (en) * | 2017-03-06 | 2018-09-13 | Nokia Technologies Oy | Secure de-centralized domain name system |
CA3056933A1 (en) * | 2017-05-04 | 2018-11-08 | Monticello Enterprises LLC | Providing cryptocurrency payments through a browser application programming interface |
WO2019087007A1 (en) * | 2017-11-02 | 2019-05-09 | nChain Holdings Limited | Computer-implemented systems and methods for linking a blockchain to a set of digital twins |
CN107888384A (zh) * | 2017-11-30 | 2018-04-06 | 中链科技有限公司 | 一种身份数据管理方法、***和计算机可读存储介质 |
CN108830733A (zh) * | 2018-06-21 | 2018-11-16 | 中国银行股份有限公司 | 一种信息处理方法、区块链集群及*** |
CN108965468A (zh) * | 2018-08-16 | 2018-12-07 | 北京京东尚科信息技术有限公司 | 区块链网络服务平台及其链码安装方法、存储介质 |
CN109450638A (zh) * | 2018-10-23 | 2019-03-08 | 国科赛思(北京)科技有限公司 | 基于区块链的电子元器件数据管理***及方法 |
CN109376528A (zh) * | 2018-10-26 | 2019-02-22 | 上海交通大学 | 一种基于区块链的可信身份管理***和方法 |
CN109509108A (zh) * | 2018-12-19 | 2019-03-22 | 中国平安财产保险股份有限公司 | 基于区块链技术的保险保单处理方法、装置和计算机设备 |
CN109617698A (zh) * | 2019-01-09 | 2019-04-12 | 腾讯科技(深圳)有限公司 | 发放数字证书的方法、数字证书颁发中心和介质 |
CN110555319A (zh) * | 2019-07-22 | 2019-12-10 | 平安科技(深圳)有限公司 | 基于区块链的资源预期结果审核方法、装置和计算机设备 |
CN110535654A (zh) * | 2019-07-23 | 2019-12-03 | 平安科技(深圳)有限公司 | 基于区块链的并行***部署方法、装置和计算机设备 |
CN110601874A (zh) * | 2019-08-14 | 2019-12-20 | 深圳壹账通智能科技有限公司 | 区块链部署方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
张贝贝;: "当AI遇上云 UCloud如何为企业赋能", 软件和集成电路 * |
徐晓冰;戚枭宏;***;李奇越;孙伟;: "基于区块链的物联网可伸缩管理机制", 计算机应用研究 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110995480A (zh) * | 2019-11-25 | 2020-04-10 | 百度在线网络技术(北京)有限公司 | 区块链网络部署方法、装置、电子设备和介质 |
TWI728571B (zh) * | 2019-11-26 | 2021-05-21 | 中華電信股份有限公司 | 區塊鏈服務的資源管理方法及系統 |
CN111124617A (zh) * | 2019-12-24 | 2020-05-08 | 腾讯科技(深圳)有限公司 | 区块链***的创建方法和装置、存储介质及电子装置 |
CN111124617B (zh) * | 2019-12-24 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 区块链***的创建方法和装置、存储介质及电子装置 |
CN111328025A (zh) * | 2020-02-26 | 2020-06-23 | 中国联合网络通信集团有限公司 | 一种轨迹追踪方法、终端设备、基站及服务器 |
CN112765586A (zh) * | 2021-01-12 | 2021-05-07 | 湖北宸威玺链信息技术有限公司 | 一种基于区块链的部署文件分发方法、设备和存储介质 |
CN113709128A (zh) * | 2021-08-19 | 2021-11-26 | 山东新一代信息产业技术研究院有限公司 | 一种基于区块链的iros***通信方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110378691A (zh) | 基于部署中心的区块链部署方法、装置和计算机设备 | |
CN113742782B (zh) | 基于隐私保护的区块链访问权限控制方法和区块链*** | |
CN110535833B (zh) | 一种基于区块链的数据共享控制方法 | |
CN108235805A (zh) | 账户统一方法、装置及存储介质 | |
CN111159288A (zh) | 链式结构数据存储、验证、实现方法、***、装置及介质 | |
CN102238146B (zh) | 认证方法、装置、认证中心及*** | |
CN110535872A (zh) | 在区块链网络中处理数据请求的方法和装置 | |
CN108111604A (zh) | 区块链共识方法、装置和***、标识信息处理方法和装置 | |
CN107025409A (zh) | 一种数据安全存储平台 | |
CN110175467A (zh) | 基于区块链的签名文件保存方法、装置和计算机设备 | |
US20190141048A1 (en) | Blockchain identification system | |
CN109509108A (zh) | 基于区块链技术的保险保单处理方法、装置和计算机设备 | |
CN111931215B (zh) | 数据管理方法和装置及存储介质 | |
CN105450750A (zh) | 智能终端安全交互方法 | |
US20210184845A1 (en) | Secure, decentralized, automated platform and multi-actors for object identity management through the use of a block chain technology | |
CN110458558A (zh) | 基于区块链的数据保密方法、装置和计算机设备 | |
CN112308561A (zh) | 基于区块链的存证方法、***、计算机设备和存储介质 | |
CN112149077B (zh) | 基于区块链技术的供应链票据方法、***和计算机设备 | |
CN110278255A (zh) | 一种基于区块链的物联网iot设备间通信的方法及装置 | |
CN114528601B (zh) | 基于区块链数据的访问方法和装置、处理器及电子设备 | |
CN112132581B (zh) | 基于iota的pki身份认证***及方法 | |
Durán et al. | An architecture for easy onboarding and key life-cycle management in blockchain applications | |
Kim et al. | Can we create a cross-domain federated identity for the industrial Internet of Things without Google? | |
CN114710370B (zh) | 基于雾区块链和属性加密的细粒度访问控制方法及*** | |
CN115118434A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20191025 |