CN111130841B - 区块链网络部署方法、电子装置及计算机可读存储介质 - Google Patents
区块链网络部署方法、电子装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111130841B CN111130841B CN201911151724.5A CN201911151724A CN111130841B CN 111130841 B CN111130841 B CN 111130841B CN 201911151724 A CN201911151724 A CN 201911151724A CN 111130841 B CN111130841 B CN 111130841B
- Authority
- CN
- China
- Prior art keywords
- block chain
- server
- network
- fabric
- chain network
- 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.)
- Active
Links
Images
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种区块链技术,揭露了一种区块链网络部署方法,该方法包括:通过JAVA服务提供Restful API接口,接收客户端发起的创建区块链网络的HTTP请求;根据所述HTTP请求中的参数,使用模板生成yaml配置文件;调用Kubernetes的Restful API接口,根据所述yaml配置文件启动容器,搭建区块链网络;采用Fabric‑CA生成用户证书,并保存到网络附属存储NAS网盘共享。本发明还提供一种电子装置及计算机可读存储介质。本发明提供的区块链网络部署方法、电子装置及计算机可读存储介质能够解决官方样例中的缺陷和不足,应用于生产环境。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链网络部署方法、电子装置及计算机可读存储介质。
背景技术
Hyperledger Fabric(以下简称Fabric)是一个区块链开源项目,官方提供了基于Docker(应用容器引擎)实现一键部署区块链网络的样例,可以快速搭建用于测试和演示用途的区块链网络,但是官方样例考虑的场景比较简单,不能满足生产环境需求。官方样例主要存在以下不足之处:(1)私钥和证书使用命令行工具生成,一次生成所有证书,不能动态增加。(2)底层基于Docker和Docker-Compose技术实现,容器使用Docker-Compose启动,不支持分布式,所有组件限制在一台主机上面运行。(3)通过Shell脚本完成一键部署,组织结构固定,修改复杂,且不支持添加新组织。
发明内容
有鉴于此,本发明提出一种区块链网络部署方法、电子装置及计算机可读存储介质,以解决至少一个上述技术问题。
首先,为实现上述目的,本发明提出一种区块链网络部署方法,该方法包括步骤:
通过JAVA服务提供Restful API接口,接收客户端发起的创建区块链网络的HTTP请求;
根据所述HTTP请求中的参数,使用模板生成yaml配置文件;
调用Kubernetes的Restful API接口,根据所述yaml配置文件启动容器,搭建区块链网络;及
采用Fabric-CA生成用户证书,并保存到NAS网盘共享。
可选地,该方法还包括步骤:
当需要创建新用户时,调用Fabric-CA的接口动态生成新用户证书,并保存到所述NAS网盘。
可选地,所述根据所述yaml配置文件启动容器,搭建区块链网络以及采用Fabric-CA生成用户证书,并保存到NAS网盘共享的步骤包括:
启动Root-CA服务器作为CA服务器的根节点;
启动每个组织的ICA服务器;
启动Setup节点完成初始化,通过ICA服务器生成用户证书文件;
将生成的用户证书文件保存到NAS网盘共享;
启动Orderer节点和Peer节点。
可选地,所述通过ICA服务器生成用户证书文件的步骤包括:
使用Fabric-ca-client的注册身份命令,在ICA服务器上注册用户,设置用户名和密码;
生成一对公钥和私钥,将私钥文件保存到本地磁盘;
使用Fabric-ca-client的登记身份命令,将注册的用户名、密码以及公钥文件发送到ICA服务器,ICA服务器返回签发的数字证书。
可选地,所述HTTP请求中包含JSON格式的参数,所述JSON格式的参数用于定制化区块链网络结构,根据用户录入的区块链网络信息进行配置,包括所述区块链网络名称、所述区块链网络包含的组织名称及个数、每个组织包含的节点名称及个数。
此外,为实现上述目的,本发明还提供一种电子装置,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的区块链网络部署系统,所述区块链网络部署系统被所述处理器执行时实现如上述的区块链网络部署方法的步骤。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有区块链网络部署系统,所述区块链网络部署系统可被至少一个处理器执行,以使所述至少一个处理器执行如上述的区块链网络部署方法的步骤。
相较于现有技术,本发明所提出的区块链网络部署方法、电子装置及计算机可读存储介质,可以由服务端提供Java服务,根据客户端发起的HTTP请求生成yaml配置文件,调用K8s的Restful API接口,根据所述yaml配置文件启动各个容器,完成区块链网络搭建,实现了区块链即服务,支持一键部署Fabric区块链网络。另外,采用Fabric-CA生成用户证书,每个组织部署有一个ICA服务器,可以保障数据安全,并且所有证书保存到NAS网盘共享。本发明解决了官方样例中的缺陷和不足,可以应用于生产环境。
附图说明
图1是本发明电子装置一可选的硬件架构的示意图;
图2是本发明区块链网络部署系统第一实施例的程序模块示意图;
图3是本发明中部署的一种区块链网络的架构示意图;
图4是本发明区块链网络部署系统第二实施例的程序模块示意图;
图5是本发明区块链网络部署方法第一实施例的流程示意图;
图6是图5中步骤S404和S406的细化流程图;
图7是本发明区块链网络部署方法第二实施例的流程示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参阅图1所示,是本发明电子装置2一可选的硬件架构的示意图。
本实施例中,所述电子装置2可包括,但不仅限于,可通过系统总线相互通信连接存储器11、处理器12、网络接口13。需要指出的是,图1仅示出了具有组件11-13的电子装置2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
其中,所述电子装置2可以是服务器,也可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。所述服务器可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,并且可以是独立的服务器,也可以是多个服务器所组成的服务器集群。
所述电子装置2可以是组成区块链网络的节点。
所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器11可以是所述电子装置2的内部存储单元,例如该电子装置2的硬盘或内存。在另一些实施例中,所述存储器11也可以是所述电子装置2的外部存储设备,例如该电子装置2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器11还可以既包括所述电子装置2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器11通常用于存储安装于所述电子装置2的操作系统和各类应用软件,例如区块链网络部署系统200的程序代码等。此外,所述存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子装置2的总体操作。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行所述的区块链网络部署系统200等。
所述网络接口13可包括无线网络接口或有线网络接口,该网络接口13通常用于在所述电子装置2与其他电子设备之间建立通信连接。
至此,己经详细介绍了本发明相关设备的硬件结构和功能。下面,将基于上述介绍提出本发明的各个实施例。
首先,本发明提出一种区块链网络部署系统200。
参阅图2所示,是本发明区块链网络部署系统200第一实施例的程序模块图。
本实施例中,所述区块链网络部署系统200包括一系列的存储于存储器11上的计算机程序指令,当该计算机程序指令被处理器12执行时,可以实现本发明各实施例的区块链网络部署操作。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,区块链网络部署系统200可以被划分为一个或多个模块。例如,在图2中,所述区块链网络部署系统200可以被分割成接收模块201、配置模块202、启动模块203、生成模块204。其中:
所述接收模块201,用于接收创建区块链网络的HTTP请求。
具体地,本实施例使用Kubernetes(简称K8s)管理Docker容器,支持扩容(在初次创建的节点基础上可扩展成更多节点),提供Java服务,支持一键部署Fabric区块链网络,完成区块链网络所需各个组件的启动工作。所谓一键部署意味着用户只需要发出一个启动部署的指令,然后等待部署工作完成即可,部署过程中不需要介入。并且本实施例将一键部署作为Web服务,支持HTTP请求。Java服务调用K8s的API接口,实现容器的启动和停止。
客户端用户通过浏览器录入区块链网络相关信息(例如各个组织相关信息),并发起创建区块链网络的HTTP请求,所述HTTP请求中包含JSON格式的参数。所述JSON格式的参数用于定制化区块链网络结构,根据用户所录入的区块链网络相关信息进行配置,包括网络名称、包含的组织名称、组织个数、每个组织启动的节点名称及个数等。
服务端(所述电子装置2)的Java服务提供Restful API接口,接收所述HTTP请求后,解析JSON格式的参数,拼装K8s所需参数,然后向K8s发送所述HTTP请求来创建区块链网络。
所述配置模块202,用于根据所述HTTP请求生成yaml配置文件。
具体地,Java服务根据所述JSON格式的参数,使用模板生成yaml配置文件,例如namespace.yaml、pvc.yaml、deployment.yaml、svc.yaml等。
所述yaml配置文件包括k8s的配置文件和Fabric的配置文件。为了启动Docker容器,无论使用K8s还是Docker-compose,都需要编写大量的yaml配置文件,用来定义容器的镜像、挂载卷、环境变量、启动脚本等信息。在Fabric官方样例中,这些配置文件都是手工编写,在启动网络前准备好的。如果需要修改区块链网络信息,例如增加一个组织,那么就需要重新编写这些yaml配置文件,费时费力。本实施例将这些配置文件抽象为Freemarker模板,实现数据和模板的分离,这样就可以接收用户输入的信息,动态生成K8s和Fabric所需的yaml配置文件,实现区块链网络的一键部署。
所述启动模块203,用于根据所述yaml配置文件启动容器,搭建区块链网络。
具体地,Java服务调用K8s的Restful API接口,创建区块链网络。K8s根据所述yaml配置文件中的请求参数,启动Docker容器,完成区块链网络搭建。
Fabric区块链网络是基于Docker容器的,使用K8s来管理Docker容器,可以支持将Fabric区块链网络部署到分布式环境中,而不用将所有组件限制在一台主机上面运行。Fabric区块链网络中包容若干个组织,组织是Fabric网络中非常重要的概念,节点、通道、智能合约等都与组织密切相关。本实施例实现了区块链即服务(Blockchain-as-a-service),支持通过API来一键部署区块链网络,并且支持动态加入新的组织。
所述生成模块204,用于采用Fabric-CA(Certificate Authority,证书授权)生成用户证书。
具体地,区块链中大量用到加解密技术,需要生成私钥和证书,用来进行加解密和签名。在官方样例中,私钥和证书使用命令行工具生成,一次生成所有证书,但是在生产环境中,某些业务场景(例如新增用户)需要动态生成新的证书,使用命令行工具不能满足要求。本实施例使用Fabric-CA作为认证中心生成用户证书,可以随时添加新的证书,并且可以定制证书的CSR(Certificate Signing Request,证书请求文件)信息。Fabric-CA可以提供身份注册、签发登记证书、签发交易证书、证书续期和撤销功能。在区块链网络启动阶段,Orderer节点、Peer节点和提交交易等需要用到CA证书,这些证书是在启动区块链网络时生成的,生成后保存在NAS(Network Attached Storage,网络附属存储)网盘上,需要时从NAS网盘上读取这些证书。
另外,采用Fabric-CA可以保证私钥保存在不同的节点上,保证私钥的安全(官方样例使用命令行工具生成的私钥都保存在一起,不安全)。
所述区块链网络各个容器的启动顺序存在依赖关系,所述启动模块203和所述生成模块204的具体处理过程包括:
(1)启动Root-CA服务器作为CA服务器的根节点。
具体地,区块链中采用非对称加密技术进行数据加解密,在非对称加密技术中需要使用私钥和公钥,其中私钥只有数据接收方知道,而公钥是公开的。数据发送方使用数据接收方的公钥对数据进行加密,并发送给数据接收方,数据接收方使用自身对应的私钥进行解密。
CA服务器作为第三方权威机构,证明公钥是安全的、没有被篡改的,用于保证公钥的安全。具体证明的方法为:数据接收方将自身的公钥发送给CA服务器,CA服务器返回一个数字证书(即所述用户证书)给数据接收方,然后数据接收方将CA服务器颁发的数字证书发送至数据发送方做加密使用(数字证书中包含有数据接收方的公钥)。
在本实施例中,针对区块链的多个组织,需要部署多个CA服务器,并且将Root-CA服务器作为CA服务器的根节点。
(2)启动每个组织的ICA(Intermediate CA,中间CA)服务器。
具体地,每个组织都部署有一个ICA服务器,各个组织ICA服务器的证书由相同的Root-CA服务器签发,Root-CA服务器和ICA服务器形成信任链。每个组织的ICA服务器为当前组织的其他节点(包括Peer节点和SDK节点等)提供证书验签服务,用于颁发这个组织内所需的数字证书。ICA服务器是一个Web服务器,可以接收HTTP请求并进行处理。
(3)启动Setup节点完成初始化,通过ICA服务器生成用户证书文件。
具体地,为了方便与ICA服务器通信,采用Fabric-ca-client完成向ICA服务器发送HTTP请求并解析返回结果。所述Fabric-ca-client是一个Shell脚本,有两个最常用的命令:注册身份和登记身份。
通过ICA服务器为用户生成数字证书文件的步骤包括:
a)使用Fabric-ca-client的注册身份命令,在ICA服务器上注册用户,设置用户名和密码;
b)生成一对公钥和私钥,将私钥文件保存到本地磁盘;
c)使用Fabric-ca-client的登记身份命令,将注册的用户名、密码以及公钥文件发送到ICA服务器,ICA服务器返回签发的数字证书。
(4)将生成的用户证书文件保存到NAS网盘共享。
具体地,当ICA服务器返回数字证书后,将数字证书文件(ca-cert.pem)保存到NAS网盘。
(5)启动Orderer节点和Peer节点。
具体地,Orderer节点和Peer节点都是基于Docker容器技术来启动的,都是基于Docker镜像文件创建容器、运行容器,并在容器启动完成后执行shell命令来启动服务。Docker镜像文件可以类比使用GHOST工具安装操作系统时的GHO镜像文件。
Orderer节点和Peer节点的启动也有区别:Orderer节点基于hyperledger/fabric-orderer这个Docker镜像来启动,容器启动完成后执行Orderer命令;Peer节点基于hyperledger/fabric-peer这个Docker镜像来启动,容器启动完成后执行peer node start命令。
启动容器前可以通过yaml配置文件来设置环境变量。例如,启动Orderer节点时所需的数字证书文件路径就是通过配置环境变量来实现的。
由于本实施例用到Kubernetes技术,因此容器实际上是由Kubernetes来启动的,具体方式是调用Kubernetes提供的Restful API接口,传入yaml配置文件来启动Orderer节点和Peer节点。
参阅图3所示,是本发明中部署的一种区块链网络的架构示意图。
本实施例支持所述区块链网络中节点或者组织扩容。其中,当新的Peer节点加入组织时,所述配置模块202和所述启动模块203的具体处理过程包括:
(1)启动新的Peer节点(启动容器并执行shell脚本启动服务)。
(2)修改组织的Crypto-config.yaml配置文件,增加Peer节点个数。
(3)修改Network-config.json配置文件,增加Peer节点信息,实现SDK节点发现新Peer节点。
另外,如果需要的话,还要将新的Peer节点加入到通道中,以及在新的Peer节点上安装智能合约。
当新组织加入区块链联盟时,所述配置模块202和所述启动模块203的具体处理过程包括:
(1)启动新的组织网络(使用容器技术),包括启动ICA节点、Peer节点和SDK节点。
(2)提交加入区块链联盟的申请(申请中包含组织网络信息),联盟管理员审核通过后加入。
(3)修改通道配置,将组织加入通道。具体包括如下步骤:
a)获取通道当前配置区块。
b)使用Configtxlator工具读取配置区块,生成JSON格式的配置文件。
c)修改JSON格式的配置文件,增加新的组织信息。
d)使用Configtxlator工具生成新的Protobuf格式的通道配置。
e)创建配置交易,提交已签名的配置交易来更新通道配置。
另外,如果需要的话,还要将新组织内的Peer节点加入到通道,以及在新组织内的Peer节点上安装智能合约。
本实施例提供的区块链网络部署系统,可以基于Kubernetes和Fabric-CA一键部署区块链网络,Kubernetes支持分布式部署,可根据需要进行扩容,通过调用Java服务而不是执行Shell脚本来启动Fabric区块链网络,实现了区块链即服务。另外通过集成Fabric-CA生成用户证书,每个组织部署有一个ICA服务器,保障数据安全。本实施例解决了官方样例中的缺陷和不足,可以应用于生产环境。
参阅图4所示,是本发明区块链网络部署系统200第二实施例的程序模块图。本实施例中,所述的区块链网络部署系统200除了包括第一实施例中的所述接收模块201、配置模块202、启动模块203、生成模块204之外,还包括创建模块205。
所述创建模块205,用于当需要创建新用户时,调用Fabric-CA的接口动态生成新用户证书,并保存到NAS网盘。
具体地,区块链网络启动以后,在运行过程中,根据业务需要可能需要创建新用户,并动态创建新用户证书。本实施例可以在创建用户时通过访问SDK节点获取,SDK节点调用Fabric-CA(ICA服务器)的接口生成新用户证书,生成后保存到NAS网盘。
SDK节点中使用Network-config.yaml访问Fabric-CA。SDK是一个Java服务,提供Restful API接口,用户通过访问SDK节点的API接口来操作区块链网络。Network-config.yaml是SDK的配置文件,在该yaml文件中定义了ICA服务器信息,包括访问地址、用户和密码以及访问证书等,Network-config.yaml不仅可以提供给SDK使用,也可以提供给其他应用(例如区块链浏览器)使用。SDK节点启动时解析Network-config.yaml配置文件,从而读取到ICA服务器的配置信息,自动构造访问ICA服务器的客户端,简化了与CA服务器的交互操作,方便动态生成用户证书。
本实施例提供的区块链网络部署系统,可以基于Kubernetes和Fabric-CA一键部署区块链网络,Kubernetes支持分布式部署,可根据需要进行扩容,通过调用Java服务而不是执行Shell脚本来启动Fabric区块链网络,实现了区块链即服务。另外通过集成Fabric-CA生成用户证书,每个组织部署有一个ICA服务器,可以在区块链网络启动以后动态生成新的证书。本实施例解决了官方样例中的缺陷和不足,可以应用于生产环境。
此外,本发明还提出一种区块链网络部署方法。
参阅图5所示,是本发明区块链网络部署方法第一实施例的流程示意图。在本实施例中,根据不同的需求,图5所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。该方法包括:
步骤S400,接收创建区块链网络的HTTP请求。
具体地,本实施例使用Kubernetes(简称K8s)管理Docker容器,支持扩容(在初次创建的节点基础上可扩展成更多节点),提供Java服务,支持一键部署Fabric区块链网络,完成区块链网络所需各个组件的启动工作。所谓一键部署意味着用户只需要发出一个启动部署的指令,然后等待部署工作完成即可,部署过程中不需要介入。并且本实施例将一键部署作为Web服务,支持HTTP请求。Java服务调用K8s的API接口,实现容器的启动和停止。
客户端用户通过浏览器录入区块链网络相关信息(例如各个组织相关信息),并发起创建区块链网络的HTTP请求,所述HTTP请求中包含JSON格式的参数。所述JSON格式的参数用于定制化区块链网络结构,根据用户所录入的区块链网络相关信息进行配置,包括网络名称、包含的组织名称、组织个数、每个组织启动的节点名称及个数等。
服务端(所述电子装置2)的Java服务提供Restful API接口,接收所述HTTP请求后,解析JSON格式的参数,拼装K8s所需参数,然后向K8s发送所述HTTP请求来创建区块链网络。
步骤S402,根据所述HTTP请求生成yaml配置文件。
具体地,Java服务根据所述JSON格式的参数,使用模板生成yaml配置文件,例如namespace.yaml、pvc.yaml、deployment.yaml、svc.yaml等。
所述yaml配置文件包括k8s的配置文件和Fabric的配置文件。为了启动Docker容器,无论使用K8s还是Docker-compose,都需要编写大量的yaml配置文件,用来定义容器的镜像、挂载卷、环境变量、启动脚本等信息。在Fabric官方样例中,这些配置文件都是手工编写,在启动网络前准备好的。如果需要修改区块链网络信息,例如增加一个组织,那么就需要重新编写这些yaml配置文件,费时费力。本实施例将这些配置文件抽象为Freemarker模板,实现数据和模板的分离,这样就可以接收用户输入的信息,动态生成K8s和Fabric所需的yaml配置文件,实现区块链网络的一键部署。
步骤S404,根据所述yaml配置文件启动容器,搭建区块链网络。
具体地,Java服务调用K8s的Restful API接口,创建区块链网络。K8s根据所述yaml配置文件中的请求参数,启动Docker容器,完成区块链网络搭建。
Fabric区块链网络是基于Docker容器的,使用K8s来管理Docker容器,可以支持将Fabric区块链网络部署到分布式环境中,而不用将所有组件限制在一台主机上面运行。Fabric区块链网络中包容若干个组织,组织是Fabric网络中非常重要的概念,节点、通道、智能合约等都与组织密切相关。本实施例实现了区块链即服务,支持通过API来一键部署区块链网络,并且支持动态加入新的组织。
步骤S406,采用Fabric-CA生成用户证书,并保存到NAS网盘共享。
具体地,区块链中大量用到加解密技术,需要生成私钥和证书,用来进行加解密和签名。在官方样例中,私钥和证书使用命令行工具生成,一次生成所有证书,但是在生产环境中,某些业务场景(例如新增用户)需要动态生成新的证书,使用命令行工具不能满足要求。本实施例使用Fabric-CA作为认证中心生成用户证书,可以随时添加新的证书,并且可以定制证书的CSR信息。Fabric-CA可以提供身份注册、签发登记证书、签发交易证书、证书续期和撤销功能。在区块链网络启动阶段,Orderer节点、Peer节点和提交交易等需要用到CA证书,这些证书是在启动区块链网络时生成的,生成后保存在NAS网盘上,需要时从NAS网盘上读取这些证书。
另外,采用Fabric-CA可以保证私钥保存在不同的节点上,保证私钥的安全(官方样例使用命令行工具生成的私钥都保存在一起,不安全)。
在本实施例中,所述区块链网络各个容器的启动顺序存在依赖关系。参阅图6所示,所述步骤S404和S406具体包括:
步骤S4000,启动Root-CA服务器作为CA服务器的根节点。
具体地,区块链中采用非对称加密技术进行数据加解密,在非对称加密技术中需要使用私钥和公钥,其中私钥只有数据接收方知道,而公钥是公开的。数据发送方使用数据接收方的公钥对数据进行加密,并发送给数据接收方,数据接收方使用自身对应的私钥进行解密。
CA服务器作为第三方权威机构,证明公钥是安全的、没有被篡改的,用于保证公钥的安全。具体证明的方法为:数据接收方将自身的公钥发送给CA服务器,CA服务器返回一个数字证书(即所述用户证书)给数据接收方,然后数据接收方将CA服务器颁发的数字证书发送至数据发送方做加密使用(数字证书中包含有数据接收方的公钥)。
在本实施例中,针对区块链的多个组织,需要部署多个CA服务器,并且将Root-CA服务器作为CA服务器的根节点。
步骤S4002,启动每个组织的ICA服务器。
具体地,每个组织都部署有一个ICA服务器,各个组织ICA服务器的证书由相同的Root-CA服务器签发,Root-CA服务器和ICA服务器形成信任链。每个组织的ICA服务器为当前组织的其他节点(包括Peer节点和SDK节点等)提供证书验签服务,用于颁发这个组织内所需的数字证书。ICA服务器是一个Web服务器,可以接收HTTP请求并进行处理。
步骤S4004,启动Setup节点完成初始化,通过ICA服务器生成用户证书文件。
具体地,为了方便与ICA服务器通信,采用Fabric-ca-client完成向ICA服务器发送HTTP请求并解析返回结果。所述Fabric-ca-client是一个Shell脚本,有两个最常用的命令:注册身份和登记身份。
通过ICA服务器为用户生成数字证书文件的步骤包括:
a)使用Fabric-ca-client的注册身份命令,在ICA服务器上注册用户,设置用户名和密码;
b)生成一对公钥和私钥,将私钥文件保存到本地磁盘;
c)使用Fabric-ca-client的登记身份命令,将注册的用户名、密码以及公钥文件发送到ICA服务器,ICA服务器返回签发的数字证书。
步骤S4006,将生成的用户证书文件保存到NAS网盘共享。
具体地,当ICA服务器返回数字证书后,将数字证书文件(ca-cert.pem)保存到NAS网盘。
步骤S4008,启动Orderer节点和Peer节点。
具体地,Orderer节点和Peer节点都是基于Docker容器技术来启动的,都是基于Docker镜像文件创建容器、运行容器,并在容器启动完成后执行shell命令来启动服务。Docker镜像文件可以类比使用GHOST工具安装操作系统时的GHO镜像文件。
Orderer节点和Peer节点的启动也有区别:Orderer节点基于hyperledger/fabric-orderer这个Docker镜像来启动,容器启动完成后执行Orderer命令;Peer节点基于hyperledger/fabric-peer这个Docker镜像来启动,容器启动完成后执行peer node start命令。
启动容器前可以通过yaml配置文件来设置环境变量。例如,启动Orderer节点时所需的数字证书文件路径就是通过配置环境变量来实现的。
由于本实施例用到Kubernetes技术,因此容器实际上是由Kubernetes来启动的,具体方式是调用Kubernetes提供的Restful API接口,传入yaml配置文件来启动Orderer节点和Peer节点。
本实施例支持所述区块链网络中节点或者组织扩容。其中,当新的Peer节点加入组织时,具体处理步骤包括:
(1)启动新的Peer节点(启动容器并执行shell脚本启动服务)。
(2)修改组织的Crypto-config.yaml配置文件,增加Peer节点个数。
(3)修改Network-config.json配置文件,增加Peer节点信息,实现SDK节点发现新Peer节点。
另外,如果需要的话,还要将新的Peer节点加入到通道中,以及在新的Peer节点上安装智能合约。
当新组织加入区块链联盟时,具体处理步骤包括:
(1)启动新的组织网络(使用容器技术),包括启动ICA节点、Peer节点和SDK节点。
(2)提交加入区块链联盟的申请(申请中包含组织网络信息),联盟管理员审核通过后加入。
(3)修改通道配置,将组织加入通道。具体包括如下步骤:
a)获取通道当前配置区块。
b)使用Configtxlator工具读取配置区块,生成JSON格式的配置文件。
c)修改JSON格式的配置文件,增加新的组织信息。
d)使用Configtxlator工具生成新的Protobuf格式的通道配置。
e)创建配置交易,提交已签名的配置交易来更新通道配置。
另外,如果需要的话,还要将新组织内的Peer节点加入到通道,以及在新组织内的Peer节点上安装智能合约。
本实施例提供的区块链网络部署方法,可以基于Kubernetes和Fabric-CA一键部署区块链网络,Kubernetes支持分布式部署,可根据需要进行扩容,通过调用Java服务而不是执行Shell脚本来启动Fabric区块链网络,实现了区块链即服务。另外通过集成Fabric-CA生成用户证书,每个组织部署有一个ICA服务器,保障数据安全。本实施例解决了官方样例中的缺陷和不足,可以应用于生产环境。
如图7所示,是本发明区块链网络部署方法的第二实施例的流程示意图。本实施例中,所述区块链网络部署方法的步骤S500-S506与第一实施例的步骤S400-S406相类似,区别在于该方法还包括步骤S508。
该方法包括以下步骤:
步骤S500,接收创建区块链网络的HTTP请求。
具体地,本实施例使用Kubernetes(简称K8s)管理Docker容器,支持扩容(在初次创建的节点基础上可扩展成更多节点),提供Java服务,支持一键部署Fabric区块链网络,完成区块链网络所需各个组件的启动工作。所谓一键部署意味着用户只需要发出一个启动部署的指令,然后等待部署工作完成即可,部署过程中不需要介入。并且本实施例将一键部署作为Web服务,支持HTTP请求。Java服务调用K8s的API接口,实现容器的启动和停止。
客户端用户通过浏览器录入区块链网络相关信息(例如各个组织相关信息),并发起创建区块链网络的HTTP请求,所述HTTP请求中包含JSON格式的参数。所述JSON格式的参数用于定制化区块链网络结构,根据用户所录入的区块链网络相关信息进行配置,包括网络名称、包含的组织名称、组织个数、每个组织启动的节点名称及个数等。
服务端(所述电子装置2)的Java服务提供Restful接口,接收所述HTTP请求后,解析JSON格式的参数,拼装K8s所需参数,然后向K8s发送所述HTTP请求来创建区块链网络。
步骤S502,根据所述HTTP请求生成yaml配置文件。
具体地,Java服务根据所述JSON格式的参数,使用模板生成yaml配置文件,例如namespace.yaml、pvc.yaml、deployment.yaml、svc.yaml等。
所述yaml配置文件包括k8s的配置文件和Fabric的配置文件。为了启动Docker容器,无论使用K8s还是Docker-compose,都需要编写大量的yaml配置文件,用来定义容器的镜像、挂载卷、环境变量、启动脚本等信息。在Fabric官方样例中,这些配置文件都是手工编写,在启动网络前准备好的。如果需要修改区块链网络信息,例如增加一个组织,那么就需要重新编写这些yaml配置文件,费时费力。本实施例将这些配置文件抽象为Freemarker模板,实现数据和模板的分离,这样就可以接收用户输入的信息,动态生成K8s和Fabric所需的yaml配置文件,实现区块链网络的一键部署。
步骤S504,根据所述yaml配置文件启动容器,搭建区块链网络。
具体地,Java服务调用K8s的Restful API接口,创建区块链网络。K8s根据所述yaml配置文件中的请求参数,启动Docker容器,完成区块链网络搭建。
Fabric区块链网络是基于Docker容器的,使用K8s来管理Docker容器,可以支持将Fabric区块链网络部署到分布式环境中,而不用将所有组件限制在一台主机上面运行。Fabric区块链网络中包容若干个组织,组织是Fabric网络中非常重要的概念,节点、通道、智能合约等都与组织密切相关。本实施例实现了区块链即服务,支持通过API来一键部署区块链网络,并且支持动态加入新的组织。
步骤S506,采用Fabric-CA生成用户证书,并保存到NAS网盘共享。
具体地,区块链中大量用到加解密技术,需要生成私钥和证书,用来进行加解密和签名。在官方样例中,私钥和证书使用命令行工具生成,一次生成所有证书,但是在生产环境中,某些业务场景(例如新增用户)需要动态生成新的证书,使用命令行工具不能满足要求。本实施例使用Fabric-CA作为认证中心生成用户证书,可以随时添加新的证书,并且可以定制证书的CSR信息。Fabric-CA可以提供身份注册、签发登记证书、签发交易证书、证书续期和撤销功能。在区块链网络启动阶段,Orderer节点、Peer节点和提交交易等需要用到CA证书,这些证书是在启动区块链网络时生成的,生成后保存在NAS网盘上,需要时从NAS网盘上读取这些证书。
另外,采用Fabric-CA可以保证私钥保存在不同的节点上,保证私钥的安全(官方样例使用命令行工具生成的私钥都保存在一起,不安全)。
步骤S508,当需要创建新用户时,调用Fabric-CA的接口动态生成新用户证书,并保存到NAS网盘。
具体地,区块链网络启动以后,在运行过程中,根据业务需要可能需要创建新用户,并动态创建新用户证书。本实施例可以在创建用户时通过访问SDK节点获取,SDK节点调用Fabric-CA(ICA服务器)的接口生成新用户证书,生成后保存到NAS网盘。
SDK节点中使用Network-config.yaml访问Fabric-CA。SDK是一个Java服务,提供Restful API接口,用户通过访问SDK节点的API接口来操作区块链网络。Network-config.yaml是SDK的配置文件,在该yaml文件中定义了ICA服务器信息,包括访问地址、用户和密码以及访问证书等,Network-config.yaml不仅可以提供给SDK使用,也可以提供给其他应用(例如区块链浏览器)使用。SDK节点启动时解析Network-config.yaml配置文件,从而读取到ICA服务器的配置信息,自动构造访问ICA服务器的客户端,简化了与CA服务器的交互操作,方便动态生成用户证书。
本实施例提供的区块链网络部署方法,可以基于Kubernetes和Fabric-CA一键部署区块链网络,Kubernetes支持分布式部署,可根据需要进行扩容,通过调用Java服务而不是执行Shell脚本来启动Fabric区块链网络,实现了区块链即服务。另外通过集成Fabric-CA生成用户证书,每个组织部署有一个ICA服务器,可以在区块链网络启动以后动态生成新的证书。本实施例解决了官方样例中的缺陷和不足,可以应用于生产环境。
本发明还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有区块链网络部署程序,所述区块链网络部署程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的区块链网络部署方法的步骤。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种区块链网络部署方法,其特征在于,所述方法包括步骤:
通过JAVA服务提供Restful API接口,接收客户端发起的创建区块链网络的HTTP请求;
根据所述HTTP请求中的参数,使用模板生成yaml配置文件;
调用Kubernetes的Restful API接口;
根据所述yaml配置文件启动容器,搭建区块链网络,采用Fabric-CA生成用户证书,并保存到网络附属存储NAS网盘共享,包括:启动Root-CA服务器作为CA服务器的根节点,启动每个组织的ICA服务器,启动Setup节点完成初始化,通过ICA服务器生成用户证书文件,将生成的用户证书文件保存到NAS网盘共享,启动Orderer节点和Peer节点。
2.如权利要求1所述的区块链网络部署方法,其特征在于,该方法还包括步骤:
当需要创建新用户时,调用Fabric-CA的接口动态生成新用户证书,并保存到所述NAS网盘。
3.如权利要求1所述的区块链网络部署方法,其特征在于,所述通过ICA服务器生成用户证书文件的步骤包括:
使用Fabric-ca-client的注册身份命令,在ICA服务器上注册用户,设置用户名和密码;
生成一对公钥和私钥,将私钥文件保存到本地磁盘;
使用Fabric-ca-client的登记身份命令,将注册的用户名、密码以及公钥文件发送到ICA服务器,ICA服务器返回签发的数字证书。
4.如权利要求1或2所述的区块链网络部署方法,其特征在于,所述HTTP请求中包含JSON格式的参数,所述JSON格式的参数用于定制化区块链网络结构,根据用户录入的区块链网络信息进行配置,包括所述区块链网络名称、所述区块链网络包含的组织名称及个数、每个组织包含的节点名称及个数。
5.一种区块链网络部署装置,其特征在于,所述装置包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的区块链网络部署程序,所述区块链网络部署程序被所述处理器执行时实现如下步骤:
通过JAVA服务提供Restful API接口,接收客户端发起的创建区块链网络的HTTP请求;
根据所述HTTP请求中的JSON格式的参数,使用模板生成yaml配置文件;
调用Kubernetes的Restful API接口;
根据所述yaml配置文件启动容器,搭建区块链网络,采用Fabric-CA生成用户证书,并保存到网络附属存储NAS网盘共享,包括:启动Root-CA服务器作为CA服务器的根节点,启动每个组织的ICA服务器,启动Setup节点完成初始化,通过ICA服务器生成用户证书文件,将生成的用户证书文件保存到NAS网盘共享,启动Orderer节点和Peer节点。
6.如权利要求5所述的装置,其特征在于,所述区块链网络部署程序被所述处理器执行时还实现步骤:
当需要创建新用户时,调用Fabric-CA的接口动态生成新用户证书,并保存到所述NAS网盘。
7.如权利要求5所述的装置,其特征在于,所述通过ICA服务器生成用户证书文件的步骤包括:
使用Fabric-ca-client的注册身份命令,在ICA服务器上注册用户,设置用户名和密码;
生成一对公钥和私钥,将私钥文件保存到本地磁盘;
使用Fabric-ca-client的登记身份命令,将注册的用户名、密码以及公钥文件发送到ICA服务器,ICA服务器返回签发的数字证书。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有区块链网络部署程序,所述区块链网络部署程序可被至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-4中任一项所述的区块链网络部署方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911151724.5A CN111130841B (zh) | 2019-11-21 | 2019-11-21 | 区块链网络部署方法、电子装置及计算机可读存储介质 |
PCT/CN2020/086275 WO2021098140A1 (zh) | 2019-11-21 | 2020-04-23 | 区块链网络部署方法、电子装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911151724.5A CN111130841B (zh) | 2019-11-21 | 2019-11-21 | 区块链网络部署方法、电子装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111130841A CN111130841A (zh) | 2020-05-08 |
CN111130841B true CN111130841B (zh) | 2022-07-08 |
Family
ID=70496144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911151724.5A Active CN111130841B (zh) | 2019-11-21 | 2019-11-21 | 区块链网络部署方法、电子装置及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111130841B (zh) |
WO (1) | WO2021098140A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813413B (zh) * | 2020-06-28 | 2022-12-16 | 四川长虹电器股份有限公司 | 一种自动生成yaml文件的方法 |
CN111984271B (zh) * | 2020-08-27 | 2023-11-03 | 京东科技信息技术有限公司 | 一种区块链应用程序处理方法、装置及区块链应用系统 |
CN112256388A (zh) * | 2020-10-15 | 2021-01-22 | 深圳壹账通智能科技有限公司 | 基于容器的区块链网络部署方法、装置、设备及存储介质 |
CN112765586A (zh) * | 2021-01-12 | 2021-05-07 | 湖北宸威玺链信息技术有限公司 | 一种基于区块链的部署文件分发方法、设备和存储介质 |
CN113312429B (zh) * | 2021-06-22 | 2023-01-17 | 工银科技有限公司 | 区块链中的智能合约管理系统、方法、介质和产品 |
CN113256296B (zh) * | 2021-07-01 | 2021-10-08 | 支付宝(杭州)信息技术有限公司 | 智能合约执行方法、系统、装置和存储介质 |
CN113572643B (zh) * | 2021-07-24 | 2024-04-26 | 上海边界智能科技有限公司 | 一种基于容器化技术的区块链多链及跨链网络的部署方法 |
CN113590265A (zh) * | 2021-08-02 | 2021-11-02 | 杭州云象网络技术有限公司 | 联盟链集群环境迁移方法、介质、装置和系统 |
CN114172804B (zh) * | 2021-12-01 | 2024-03-01 | 杭州云象网络技术有限公司 | 一种联盟链分离部署方法、系统、介质和电子设备 |
CN114465887B (zh) * | 2021-12-23 | 2024-01-23 | 杭州溪塔科技有限公司 | 一种基于git的区块链配置管理方法和装置 |
CN114666060B (zh) * | 2022-03-14 | 2024-03-12 | 北京工业大学 | 一种基于Hyperledger Fabric的电子数据保全方法及系统 |
CN114599036B (zh) * | 2022-05-09 | 2022-08-05 | 北京乐开科技有限责任公司 | 一种多用户参与的nas文件安全操作方法及系统 |
CN115203330B (zh) * | 2022-07-21 | 2024-01-19 | 深圳前海环融联易信息科技服务有限公司 | 智能合约部署方法及其装置、设备、介质、产品 |
CN115348168B (zh) * | 2022-07-21 | 2024-03-19 | 金蝶软件(中国)有限公司 | 一种区块链网络的部署方法及装置 |
CN115811442B (zh) * | 2023-02-09 | 2023-05-05 | 上海特高信息技术有限公司 | 一种基于积木形式的联盟链BaaS平台搭建方法 |
CN116055308B (zh) * | 2023-02-10 | 2024-01-05 | 青岛闪收付信息技术有限公司 | 一种供应链金融平台的底层区块链网络部署方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737106A (zh) * | 2018-05-09 | 2018-11-02 | 深圳壹账通智能科技有限公司 | 区块链系统上用户验证方法、装置、终端设备及存储介质 |
CN109710384A (zh) * | 2018-12-29 | 2019-05-03 | 杭州趣链科技有限公司 | 一种安全的Java智能合约解释执行引擎及方法 |
CN109800056A (zh) * | 2019-01-16 | 2019-05-24 | 杭州趣链科技有限公司 | 一种基于容器的区块链部署方法 |
CN109976774A (zh) * | 2019-04-11 | 2019-07-05 | 北京启迪区块链科技发展有限公司 | 区块链节点部署方法、装置、设备和存储介质 |
CN110098954A (zh) * | 2019-03-29 | 2019-08-06 | 北京百度网讯科技有限公司 | Hyperledger Fabric网络的创建方法、控制器及存储介质 |
CN110351263A (zh) * | 2019-07-01 | 2019-10-18 | 昆明理工大学 | 一种基于超级账本fabric的物联网认证方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10469248B2 (en) * | 2017-10-17 | 2019-11-05 | Amrican Express Travel Related Services Company, Inc. | API request and response balancing and control on blockchain |
US10084600B1 (en) * | 2018-04-16 | 2018-09-25 | Xage Security, Inc. | Decentralized information protection for confidentiality and tamper-proofing on distributed database |
CN108921551B (zh) * | 2018-06-11 | 2021-07-27 | 西安纸贵互联网科技有限公司 | 基于Kubernetes平台的联盟区块链系统 |
CN109194506B (zh) * | 2018-08-16 | 2021-10-15 | 北京京东尚科信息技术有限公司 | 区块链网络部署方法、平台及计算机存储介质 |
CN110135992A (zh) * | 2019-05-14 | 2019-08-16 | 北京智签科技有限公司 | 区块链网络Fabric-CA数字证书的获取方法和获取装置 |
CN110308903B (zh) * | 2019-07-04 | 2023-07-25 | 明链科技(深圳)有限公司 | 创建区块链网络的方法、电子设备及介质 |
-
2019
- 2019-11-21 CN CN201911151724.5A patent/CN111130841B/zh active Active
-
2020
- 2020-04-23 WO PCT/CN2020/086275 patent/WO2021098140A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737106A (zh) * | 2018-05-09 | 2018-11-02 | 深圳壹账通智能科技有限公司 | 区块链系统上用户验证方法、装置、终端设备及存储介质 |
CN109710384A (zh) * | 2018-12-29 | 2019-05-03 | 杭州趣链科技有限公司 | 一种安全的Java智能合约解释执行引擎及方法 |
CN109800056A (zh) * | 2019-01-16 | 2019-05-24 | 杭州趣链科技有限公司 | 一种基于容器的区块链部署方法 |
CN110098954A (zh) * | 2019-03-29 | 2019-08-06 | 北京百度网讯科技有限公司 | Hyperledger Fabric网络的创建方法、控制器及存储介质 |
CN109976774A (zh) * | 2019-04-11 | 2019-07-05 | 北京启迪区块链科技发展有限公司 | 区块链节点部署方法、装置、设备和存储介质 |
CN110351263A (zh) * | 2019-07-01 | 2019-10-18 | 昆明理工大学 | 一种基于超级账本fabric的物联网认证方法 |
Non-Patent Citations (1)
Title |
---|
JAVA中使用freemark生成自定义文件(json、excel、yaml、txt);dgqvhtlwq472235338;《CSDN》;https://blog.csdn.net/dgqvhtlwq472235338/article/details/101415395?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164515303316780274162335%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164515303316780274162335;20161125;1-5 * |
Also Published As
Publication number | Publication date |
---|---|
CN111130841A (zh) | 2020-05-08 |
WO2021098140A1 (zh) | 2021-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111130841B (zh) | 区块链网络部署方法、电子装置及计算机可读存储介质 | |
CN111935110B (zh) | 一种对租户访问容器实例的权限的控制方法和装置 | |
CN111010372A (zh) | 区块链网络身份认证系统、数据处理方法及网关设备 | |
CN109168156B (zh) | 一种虚拟sim卡的实现方法、系统、介质、计算机程序产品及服务器 | |
US10990428B2 (en) | Virtual machine integrity | |
CN104754552A (zh) | 一种可信执行环境tee初始化方法及设备 | |
CN112714158A (zh) | 事务处理方法、中继网络、跨链网关、系统、介质和设备 | |
CN112632573A (zh) | 智能合约执行方法、装置、系统、存储介质及电子设备 | |
CN113572862A (zh) | 一种集群部署方法、装置、电子设备及存储介质 | |
CN105141632A (zh) | 用于查看页面的方法和装置 | |
CN114168928B (zh) | 获取身份认证信息的方法、装置、存储介质及系统 | |
CN114553608A (zh) | 用于接入云平台的方法和装置 | |
CN105814834B (zh) | 用于公共云应用的基于推送的信任模型 | |
CN114268638A (zh) | 区块链平台通道管理方法、装置、计算机设备和存储介质 | |
CN108228280A (zh) | 浏览器参数的配置方法及装置、存储介质、电子设备 | |
CN111666590A (zh) | 分布式文件安全传输方法、装置及系统 | |
CN113360172B (zh) | 应用部署方法、装置、计算机设备及存储介质 | |
CN110598389A (zh) | 基于区块链的户口簿存证方法及其装置 | |
CN107172082B (zh) | 一种文件共享方法及系统 | |
CN112953892B (zh) | 第三方系统的访问认证方法和装置 | |
CN115221562A (zh) | 浏览器文件的签名方法、装置及计算机可读存储介质 | |
CN110266501B (zh) | 区块链节点设备及区块链网络系统 | |
CN114640684A (zh) | 用于联盟链的组织成员扩展方法、处理器及存储介质 | |
CN115145976A (zh) | 基于区块链的数据处理方法、装置、计算机设备和介质 | |
CN112527377A (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 |