CN115563205A - 区块链系统的部署方法、装置、介质及电子设备 - Google Patents

区块链系统的部署方法、装置、介质及电子设备 Download PDF

Info

Publication number
CN115563205A
CN115563205A CN202110750894.6A CN202110750894A CN115563205A CN 115563205 A CN115563205 A CN 115563205A CN 202110750894 A CN202110750894 A CN 202110750894A CN 115563205 A CN115563205 A CN 115563205A
Authority
CN
China
Prior art keywords
block chain
node
blockchain
script
deployment
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
Application number
CN202110750894.6A
Other languages
English (en)
Inventor
陈金龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110750894.6A priority Critical patent/CN115563205A/zh
Publication of CN115563205A publication Critical patent/CN115563205A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请的实施例提供了一种区块链系统的部署方法、装置、介质及电子设备。该区块链系统的部署方法包括:获取区块链系统中待配置的区块链节点的信息;根据所述待配置的区块链节点的信息,从脚本模块库中获取所述待配置的区块链节点所对应的脚本模块,所述脚本模块库中包含有所述区块链系统的多个脚本模块,每个脚本模块对应于一个部署流程;根据所述待配置的区块链节点所对应的脚本模块对所述待配置的区块链节点进行部署。本申请实施例的技术方案可以提高区块链系统的部署效率。

Description

区块链系统的部署方法、装置、介质及电子设备
技术领域
本申请涉及计算机及通信技术领域,具体而言,涉及一种区块链系统的部署方法、装置、介质及电子设备。
背景技术
相关技术所提出的区块链节点部署方案中,通常需要人工确定好服务器节点后,编写相关脚本,按照手工规划的部署步骤,人工触发脚本命令,这样的部署方法自动化程度低,严重影响了区块链系统的部署效率。
发明内容
本申请的实施例提供了一种区块链系统的部署方法、装置、介质及电子设备,进而至少在一定程度上可以提高区块链系统的部署效率。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种区块链系统的部署方法,包括:获取区块链系统中待配置的区块链节点的信息;根据所述待配置的区块链节点的信息,从脚本模块库中获取所述待配置的区块链节点所对应的脚本模块,所述脚本模块库中包含有所述区块链系统的多个脚本模块,每个脚本模块对应于一个部署流程;根据所述待配置的区块链节点所对应的脚本模块对所述待配置的区块链节点进行部署。
根据本申请实施例的一个方面,提供了一种区块链系统的部署装置,包括:获取单元,配置为获取区块链系统中待配置的区块链节点的信息;第一处理单元,配置为根据所述待配置的区块链节点的信息,从脚本模块库中获取所述待配置的区块链节点所对应的脚本模块,所述脚本模块库中包含有所述区块链系统的多个脚本模块,每个脚本模块对应于一个部署流程;第二处理单元,配置为根据所述待配置的区块链节点所对应的脚本模块对所述待配置的区块链节点进行部署。
在本申请的一些实施例中,基于前述方案,所述区块链系统的部署装置还包括:分组单元,配置为根据区块链节点的信息对区块链节点进行分组,得到至少一个节点分组;生成单元,配置为生成针对指定节点分组的配置脚本,所述配置脚本用于对所述指定节点分组中的区块链节点的参数进行批量配置。
在本申请的一些实施例中,基于前述方案,所述配置脚本中包含有指定字段,所述指定字段中包含有需要进行批量配置的区块链节点的参数。
在本申请的一些实施例中,基于前述方案,所述第二处理单元配置为:根据所述区块链系统中待配置的区块链节点所对应的脚本模块生成部署文件,所述部署文件中包含有所述待配置的区块链节点所属的节点分组的信息;执行所述部署文件,以对所述待配置的区块链节点进行部署。
在本申请的一些实施例中,基于前述方案,所述第二处理单元还配置为:若所述待配置的区块链节点所属的节点分组中包含有多个区块链节点,则在所述部署文件中添加所述待配置的区块链节点的网络地址信息。
在本申请的一些实施例中,基于前述方案,所述第二处理单元配置为:根据所述区块链系统中待配置的区块链节点的信息生成部署文件,所述部署文件中包含有待配置的各个区块链节点的任务字段;将所述各个区块链节点所对应的脚本模块添加至所述部署文件中各个区块链节点的任务字段中。
在本申请的一些实施例中,基于前述方案,所述区块链系统的部署装置还包括:测试单元,配置为在根据所述待配置的区块链节点所对应的脚本模块对所述待配置的区块链节点进行部署之后,对所述区块链系统中包含的区块链服务进行测试,得到所述区块链系统的测试结果。
在本申请的一些实施例中,基于前述方案,所述测试单元还配置为:在对所述区块链系统测试完成之后,根据测试结果生成测试报告;显示所述测试报告。
在本申请的一些实施例中,基于前述方案,所述测试单元配置为:显示测试报告呈现界面,在所述测试报告呈现界面上显示所述测试报告,所述测试报告呈现界面中包含有所测试的各个区块链服务的信息、所述各个区块链服务的测试用例信息、所述各个区块链服务的测试结果。
在本申请的一些实施例中,基于前述方案,所述第二处理单元配置为:若根据所述待配置的区块链节点所对应的目标脚本模块对所述区块链节点部署失败,则对所述目标脚本模块的部署过程进行回滚操作。
在本申请的一些实施例中,基于前述方案,所述脚本模块的执行过程支持幂等性。
在本申请的一些实施例中,基于前述方案,所述区块链系统的部署装置还包括:第三处理单元,配置为根据区块链系统中的区块链节点在部署时的部署流程,生成所述区块链系统的多个脚本模块,将所述多个脚本模块存储至所述脚本模块库中。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的区块链系统的部署方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的区块链系统的部署方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的区块链系统的部署方法。
在本申请的一些实施例所提供的技术方案中,通过根据待配置的区块链节点的信息,从脚本模块库中获取待配置的区块链节点所对应的脚本模块,而脚本模块库中包含有区块链系统的多个脚本模块,每个脚本模块对应于一个部署流程,然后根据待配置的区块链节点所对应的脚本模块对待配置的区块链节点进行部署,使得可以将区块链系统的部署过程模块化,进而可以在部署时根据所需要配置的区块链节点的信息获取相应的脚本模块直接进行部署,实现了脚本模块的可复用性,有利于提高区块链系统的部署效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了区块链网络的结构示意图。
图2示出了区块链中各区块的连接关系示意图。
图3示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
图4示出了根据本申请的一个实施例的区块链系统的部署方法的流程图。
图5示出了根据本申请的一个实施例的区块链系统的部署方法的流程图。
图6示出了根据本申请的一个实施例的节点的脚本模块列表示意图。
图7示出了根据本申请的一个实施例的测试报告的呈现界面图。
图8示出了根据本申请的一个实施例的区块链系统的部署方案的整体流程图。
图9示出了根据本申请的一个实施例的区块链系统的部署装置的框图。
图10示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是:在本文中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
相关技术所提出的区块链节点部署方案中,通常需要人工确定好服务器节点后,编写相关脚本,按照手工规划的部署步骤,人工触发脚本命令,这样的部署方法自动化程度低,严重影响了区块链系统的部署效率。基于此,本申请的实施例提供了一种新的区块链系统的部署方案,实现了脚本模块的可复用性,有利于提高区块链系统的部署效率。在介绍本申请实施例的技术方案之前,先介绍本申请实施例中涉及到的区块链技术。
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块(即区块),每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
如上所述,区块链本质上是一个去中心化的数据库,而区块链是由区块链网络中的节点共同维护的。比如,在图1所示的区块链网络中,可以包括多个节点101,多个节点101可以是形成区块链网络的各个客户端。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该区块链网络内的共享数据。为了保证区块链网络内的信息互通,区块链网络中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当区块链网络中的任意节点接收到输入信息时,区块链网络中的其它节点便根据共识算法获取该输入信息,将该输入信息作为共享数据进行存储,使得区块链网络中全部节点上存储的数据均一致。
对于区块链网络中的每个节点,均具有与其对应的节点标识,而且区块链网络中的每个节点均可以存储有其它节点的节点标识,以便后续根据其它节点的节点标识,将生成的区块广播至区块链网络中的其它节点。每个节点中可维护一个节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(InternetProtocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息。
区块链网络中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图2所示,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值等,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值等,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
区块链网络中各个节点可以是服务器,也可以是终端设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算(Cloud Computing)、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。各个节点之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
基于前述介绍的区块链技术,以及相关技术中所存在的问题,本申请的实施例提供的一种新的区块链系统的部署方案。具体而言,在本申请的一个应用场景中,如图3所示,主要包含了电子设备301、脚本模块库302、部署服务器303和测试服务器304。
在本申请的一个实施例中,部署人员事先可以使用电子设备301来根据区块链系统中的区块链节点在部署时的部署流程,生成区块链系统的多个脚本模块,然后将生成的多个脚本模块存储至脚本模块库302中,这样脚本模块库302中存储有区块链系统的多个脚本模块,每个脚本模块对应于一个部署流程。
在需要对区块链系统中待配置的区块链节点进行部署时,部署服务器303可以获取待配置的区块链节点的信息,然后根据待配置的区块链节点的信息,从脚本模块库302中获取待配置的区块链节点所对应的脚本模块,进而根据待配置的区块链节点所对应的脚本模块对待配置的区块链节点进行部署。并且在对待配置的区块链节点进行部署之后,可以由测试服务器304对区块链系统中包含的区块链服务进行测试,得到区块链系统的测试结果。可见,本申请实施例的技术方案可以将区块链系统的部署过程模块化,进而可以在部署时根据所需要配置的区块链节点的信息获取相应的脚本模块直接进行部署,实现了脚本模块的可复用性,有利于提高区块链系统的部署效率。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图4示出了根据本申请的一个实施例的区块链系统的部署方法的流程图,该区块链系统的部署方法可以由电子设备来执行,该电子设备可以是服务器。参照图4所示,该区块链系统的部署方法至少包括步骤S410至步骤S430,详细介绍如下:
在步骤S410中,获取区块链系统中待配置的区块链节点的信息。
在本申请的一个实施例中,区块链系统中待配置的区块链节点可以是区块链系统中的全部区块链节点,也可以是部分区块链节点。
在步骤S420中,根据待配置的区块链节点的信息,从脚本模块库中获取待配置的区块链节点所对应的脚本模块,该脚本模块库中包含有区块链系统的多个脚本模块,每个脚本模块对应于一个部署流程。
在本申请的一个实施例中,可以事先根据区块链系统中的区块链节点在部署时的部署流程,生成区块链系统的多个脚本模块,然后将多个脚本模块存储至脚本模块库中,进而可以实现脚本模块的复用性。
在步骤S430中,根据待配置的区块链节点所对应的脚本模块对待配置的区块链节点进行部署。
在本申请的一个实施例中,可以根据区块链系统中待配置的区块链节点的信息生成部署文件,该部署文件中包含有待配置的各个区块链节点的任务字段,然后将各个区块链节点所对应的脚本模块添加至部署文件中各个区块链节点的任务字段中,进而可以通过执行该部署文件来对待配置的区块链节点进行部署。
在本申请的一个实施例中,可以根据区块链节点的信息对区块链节点进行分组,得到至少一个节点分组,然后可以生成针对指定节点分组的配置脚本,该配置脚本用于对指定节点分组中的区块链节点的参数进行批量配置。该实施例的技术方案使得可以通过针对某个节点分组的配置脚本实现对同一节点分组中的区块链节点参数进行批量配置,解决了各个节点分别进行配置导致效率低下的问题。
可选地,针对节点分组的配置脚本中可以包含有指定字段,该指定字段中包含有需要进行批量配置的区块链节点的参数,进而可以将需要进行批量配置的区块链节点参数包含在该指定字段中,以实现对同一节点分组中的区块链节点参数进行批量配置。
在本申请的一个实施例中,如果区块链节点进行了分组,那么根据待配置的区块链节点所对应的脚本模块对待配置的区块链节点进行部署的过程可以是:根据区块链系统中待配置的区块链节点所对应的脚本模块生成部署文件,该部署文件中包含有待配置的区块链节点所属的节点分组的信息,然后执行部署文件,以对待配置的区块链节点进行部署。该实施例通过在部署文件中包含区块链节点所属的节点分组的信息,使得可以通过节点分组所对应的配置脚本来对区块链节点进行批量配置。
可选地,如果待配置的区块链节点所属的节点分组中包含有多个区块链节点,则可以在部署文件中添加待配置的区块链节点的网络地址信息。该实施例的技术方案使得在同一节点分组中包含有多个区块链节点的情况下,通过网络地址信息明确所要配置的区块链节点。
需要说明的是:由于同一节点分组中包含有多个区块链节点,在部署文件中添加了待配置的区块链节点的网络地址信息和所属的节点分组,因此同一节点分组中的不同区块链节点也可以部署在不同的区块链系统中,在这种情况下,同样可以通过节点分组所对应的配置脚本来对区块链节点进行批量配置。
在本申请的一个实施例中,在根据待配置的区块链节点所对应的脚本模块对待配置的区块链节点进行部署之后,可以对区块链系统中包含的区块链服务进行测试,得到区块链系统的测试结果。
在本申请的一个实施例中,在对区块链系统测试完成之后,根据测试结果生成测试报告并进行显示。可选地,比如可以显示测试报告呈现界面,在测试报告呈现界面上显示测试报告,测试报告呈现界面中包含有所测试的各个区块链服务的信息、各个区块链服务的测试用例信息、各个区块链服务的测试结果。该实施例的技术方案使得测试人员能够通过可视化的测试报告呈现界面来查看各个区块链服务的测试结果信息。
在本申请的一个实施例中,如果根据待配置的区块链节点所对应的目标脚本模块对区块链节点部署失败,则可以对目标脚本模块的部署过程进行回滚操作,以便于重新进行部署。此外,区块链节点的脚本模块的执行过程可以支持幂等性,即不管执行多少次,其结果是一致的,进而可以保证重新部署的顺利进行。
以下结合图5至图8对本申请实施例的技术方案进行详细阐述:
图5示出了根据本申请的一个实施例的区块链系统的测试方法的流程图,如图5所示,该区块链系统的测试方法包括如下步骤:
步骤S510,获取服务器节点信息。具体地,服务器节点即为区块链节点,可以将被测区块链节点的机器信息提交给自动化部署平台,区块链节点的机器信息包括IP地址、端口、用户名和用户密码等,该机器信息用于自动化部署平台通过SSH(Secure Shell,安全外壳)协议连接到服务器节点,以执行部署脚本。
在部署之前,可以将服务器节点的部署过程通过编写脚本进行模块化,化整为零,以便于通过自由拼接脚本模块的方式实现部署脚本的可复用性。
步骤S520,对节点进行分组。
具体地,可以编写host文件(一种系统文件)来按照需求自由分组,例如:
[test_blockchain_node1]
192.168.0.xx1 ansible_ssh_port=xx1
192.168.0.xx2 ansible_ssh_port=xx2
[test_blockchain_node2]
192.168.0.xx3 ansible_ssh_port=xx3
[test_blockchain_node3]
192.168.0.xx4 ansible_ssh_port=xx4
192.168.0.xx5 ansible_ssh_port=xx5
在该示例中,将服务器节点分成了3个分组,第1个分组“test_blockchain_node1”中包含了两个服务器节点,其IP地址分别为192.168.0.xx1、192.168.0.xx2;SSH端口分别为xx1、xx2。第2个分组“test_blockchain_node2”中包含了1个服务器节点,其IP地址为192.168.0.xx3,SSH端口为xx3。第3个分组“test_blockchain_node3”中包含了两个服务器节点,其IP地址分别为192.168.0.xx4、192.168.0.xx5;SSH端口分别为xx4、xx5。
需要说明的是,不同分组中的服务器节点的数目可以是根据实际需求进行设置的。在分组完成之后,可以编写针对某个分组的yaml(一种数据格式)脚本,然后通过该yaml脚本进行的参数配置操作会对分组内的所有IP生效。
步骤S530,编写分组对应的脚本模块。该脚本模块可以是yaml脚本,各个节点可以自由地按需分模块,并且支持参数化。具体如图6所示,每个节点下的tasks目录下有若干的以“.yml”结尾的文件就是脚本模块,每个脚本模块对应一个执行步骤,不同节点下的吧模块可自由组合,自由拼接,实现了脚本模块的可复用性,并且能够提高节点的配置效率。
步骤S540,编写部署文件,实施部署。具体地,可以编写主部署文件,在该主部署文件中指定要配置的服务器节点,然后通过该主部署文件来实现对节点的部署。可选地,该主部署文件中可以添加有服务器节点的分组信息,以便于通过分组的配置脚本进行批量化配置。
在部署完成之后,可以触发自动化测试用例的执行,在测试过程中收集各个被测区块链节点的监控指标。
步骤S550,生成测试报告。
具体地,在测试完成之后,可以生成相应的测试报告,供开发人员或测试人员来定位问题。可选地,测试报告的呈现界面可以如图7所示,在界面左侧可以显示不同的报告类型供开发人员或测试人员进行选择,界面右侧可以呈现出具体的测试报告内容,比如测试环境、项目名称、测试时间、测试用例类、测试的区块链服务的描述信息、测试类型、测试结果等。
步骤S560,基于测试报告进行问题定位。
图8示出了根据本申请的一个实施例的区块链系统的部署方案的整体流程图。具体包括区块链产品提测阶段810;分布式部署及测试阶段820;发布阶段830,以及复用阶段840。
在区块链产品提测阶段810中,在完成区块链产品的开发后,将区块链产品中所涉及的各个模拟提交到测试平台,由测试平台进行分发审核,在审核通过后,进入测试流程。其中,测试平台可以用于管理软件版本开发、提测、缺陷提交、回归测试、发布整个生命周期。
在分布式部署及测试阶段820中,需要编写进行模块化部署的脚本模块进行按需自由组合(如图6所示),并编写主部署文件进行执行。在部署完成之后,触发自动化用例执行,在测试过程中,收集监控指标进行异常告警和问题定位。
对于同一个分组中的节点,可以编写对应的配置脚本,以实现参数的一处修改,处处生效。比如可以设置参数化字段,将需要批量修改的参数放入该参数化字段内,然后基于python的jinja2模板库实现一处修改参数变量,处处生效的功能。
在发布阶段830中,当测试完成之后,可以发布区块链产品进行评审,并生成测试报告,评审及测试无误后可以发布上线。
如果需要再次部署,则可以在复用阶段840中,复用之前的脚本模块,自由组合按需部署。同时,脚本模块也可以在部署过程中出现中断(比如执行失败)时,进行回滚操作,同时可以支持幂等性。
本申请实施例的技术方案可以在部署前,将分布式节点的部署过程模块化,进行化整为零,自由拼接脚本模块来实现部署;同时可以将分布式节点的配置参数化,实现一处修改,处处生效的目的,同时可以在执行失败时进行回滚操作,重复执行,支持幂性。总体而言,本申请实施例的技术方案可以极大提高区块链节点的部署效率,提高部署自动化率、增加脚本复用率,降低部署的时间成本和人力损耗。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的区块链系统的部署方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的区块链系统的测试方法的实施例。
图9示出了根据本申请的一个实施例的区块链系统的部署装置的框图,该区块链系统的部署装置可以设置在电子设备内,该电子设备可以是服务器。
参照图9所示,根据本申请的一个实施例的区块链系统的部署装置900,包括:获取单元902、第一处理单元904和第二处理单元906。
其中,获取单元902配置为获取区块链系统中待配置的区块链节点的信息;第一处理单元904配置为根据所述待配置的区块链节点的信息,从脚本模块库中获取所述待配置的区块链节点所对应的脚本模块,所述脚本模块库中包含有所述区块链系统的多个脚本模块,每个脚本模块对应于一个部署流程;第二处理单元906配置为根据所述待配置的区块链节点所对应的脚本模块对所述待配置的区块链节点进行部署。
在本申请的一些实施例中,基于前述方案,所述区块链系统的部署装置900还包括:分组单元,配置为根据区块链节点的信息对区块链节点进行分组,得到至少一个节点分组;生成单元,配置为生成针对指定节点分组的配置脚本,所述配置脚本用于对所述指定节点分组中的区块链节点的参数进行批量配置。
在本申请的一些实施例中,基于前述方案,所述配置脚本中包含有指定字段,所述指定字段中包含有需要进行批量配置的区块链节点的参数。
在本申请的一些实施例中,基于前述方案,第二处理单元906配置为:根据所述区块链系统中待配置的区块链节点所对应的脚本模块生成部署文件,所述部署文件中包含有所述待配置的区块链节点所属的节点分组的信息;执行所述部署文件,以对所述待配置的区块链节点进行部署。
在本申请的一些实施例中,基于前述方案,第二处理单元906还配置为:若所述待配置的区块链节点所属的节点分组中包含有多个区块链节点,则在所述部署文件中添加所述待配置的区块链节点的网络地址信息。
在本申请的一些实施例中,基于前述方案,第二处理单元906配置为:根据所述区块链系统中待配置的区块链节点的信息生成部署文件,所述部署文件中包含有待配置的各个区块链节点的任务字段;将所述各个区块链节点所对应的脚本模块添加至所述部署文件中各个区块链节点的任务字段中。
在本申请的一些实施例中,基于前述方案,所述区块链系统的部署装置900还包括:测试单元,配置为在根据所述待配置的区块链节点所对应的脚本模块对所述待配置的区块链节点进行部署之后,对所述区块链系统中包含的区块链服务进行测试,得到所述区块链系统的测试结果。
在本申请的一些实施例中,基于前述方案,所述测试单元还配置为:在对所述区块链系统测试完成之后,根据测试结果生成测试报告;显示所述测试报告。
在本申请的一些实施例中,基于前述方案,所述测试单元配置为:显示测试报告呈现界面,在所述测试报告呈现界面上显示所述测试报告,所述测试报告呈现界面中包含有所测试的各个区块链服务的信息、所述各个区块链服务的测试用例信息、所述各个区块链服务的测试结果。
在本申请的一些实施例中,基于前述方案,所述第二处理单元906配置为:若根据所述待配置的区块链节点所对应的目标脚本模块对所述区块链节点部署失败,则对所述目标脚本模块的部署过程进行回滚操作。
在本申请的一些实施例中,基于前述方案,所述脚本模块的执行过程支持幂等性。
在本申请的一些实施例中,基于前述方案,所述区块链系统的部署装置900还包括:第三处理单元,配置为根据区块链系统中的区块链节点在部署时的部署流程,生成所述区块链系统的多个脚本模块,将所述多个脚本模块存储至所述脚本模块库中。
图10示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图10示出的电子设备的计算机系统1000仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,计算机系统1000包括中央处理单元(Central Processing Unit,CPU)1001,其可以根据存储在只读存储器(Read-Only Memory,ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(Random Access Memory,RAM)1003中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1003中,还存储有系统操作所需的各种程序和数据。CPU 1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(Input/Output,I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (15)

1.一种区块链系统的部署方法,其特征在于,包括:
获取区块链系统中待配置的区块链节点的信息;
根据所述待配置的区块链节点的信息,从脚本模块库中获取所述待配置的区块链节点所对应的脚本模块,所述脚本模块库中包含有所述区块链系统的多个脚本模块,每个脚本模块对应于一个部署流程;
根据所述待配置的区块链节点所对应的脚本模块对所述待配置的区块链节点进行部署。
2.根据权利要求1所述的区块链系统的部署方法,其特征在于,所述区块链系统的部署方法还包括:
根据区块链节点的信息对区块链节点进行分组,得到至少一个节点分组;
生成针对指定节点分组的配置脚本,所述配置脚本用于对所述指定节点分组中的区块链节点的参数进行批量配置。
3.根据权利要求2所述的区块链系统的部署方法,其特征在于,所述配置脚本中包含有指定字段,所述指定字段中包含有需要进行批量配置的区块链节点的参数。
4.根据权利要求2所述的区块链系统的部署方法,其特征在于,根据所述待配置的区块链节点所对应的脚本模块对所述待配置的区块链节点进行部署,包括:
根据所述区块链系统中待配置的区块链节点所对应的脚本模块生成部署文件,所述部署文件中包含有所述待配置的区块链节点所属的节点分组的信息;
执行所述部署文件,以对所述待配置的区块链节点进行部署。
5.根据权利要求4所述的区块链系统的部署方法,其特征在于,所述区块链系统的部署方法还包括:
若所述待配置的区块链节点所属的节点分组中包含有多个区块链节点,则在所述部署文件中添加所述待配置的区块链节点的网络地址信息。
6.根据权利要求4所述的区块链系统的部署方法,其特征在于,根据所述区块链系统中待配置的区块链节点所对应的脚本模块生成部署文件,包括:
根据所述区块链系统中待配置的区块链节点的信息生成部署文件,所述部署文件中包含有待配置的各个区块链节点的任务字段;
将所述各个区块链节点所对应的脚本模块添加至所述部署文件中各个区块链节点的任务字段中。
7.根据权利要求1所述的区块链系统的部署方法,其特征在于,在根据所述待配置的区块链节点所对应的脚本模块对所述待配置的区块链节点进行部署之后,所述区块链系统的部署方法还包括:
对所述区块链系统中包含的区块链服务进行测试,得到所述区块链系统的测试结果。
8.根据权利要求7所述的区块链系统的部署方法,其特征在于,所述区块链系统的部署方法还包括:
在对所述区块链系统测试完成之后,根据测试结果生成测试报告;
显示所述测试报告。
9.根据权利要求8所述的区块链系统的部署方法,其特征在于,显示所述测试报告,包括:
显示测试报告呈现界面,在所述测试报告呈现界面上显示所述测试报告,所述测试报告呈现界面中包含有所测试的各个区块链服务的信息、所述各个区块链服务的测试用例信息、所述各个区块链服务的测试结果。
10.根据权利要求1所述的区块链系统的部署方法,其特征在于,根据所述待配置的区块链节点所对应的脚本模块对所述待配置的区块链节点进行部署,包括:
若根据所述待配置的区块链节点所对应的目标脚本模块对所述区块链节点部署失败,则对所述目标脚本模块的部署过程进行回滚操作。
11.根据权利要求1所述的区块链系统的部署方法,其特征在于,所述脚本模块的执行过程支持幂等性。
12.根据权利要求1至11中任一项所述的区块链系统的部署方法,其特征在于,所述区块链系统的部署方法还包括:
根据区块链系统中的区块链节点在部署时的部署流程,生成所述区块链系统的多个脚本模块,将所述多个脚本模块存储至所述脚本模块库中。
13.一种区块链系统的部署装置,其特征在于,包括:
获取单元,配置为获取区块链系统中待配置的区块链节点的信息;
第一处理单元,配置为根据所述待配置的区块链节点的信息,从脚本模块库中获取所述待配置的区块链节点所对应的脚本模块,所述脚本模块库中包含有所述区块链系统的多个脚本模块,每个脚本模块对应于一个部署流程;
第二处理单元,配置为根据所述待配置的区块链节点所对应的脚本模块对所述待配置的区块链节点进行部署。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至12中任一项所述的区块链系统的部署方法。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至12中任一项所述的区块链系统的部署方法。
CN202110750894.6A 2021-07-01 2021-07-01 区块链系统的部署方法、装置、介质及电子设备 Pending CN115563205A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110750894.6A CN115563205A (zh) 2021-07-01 2021-07-01 区块链系统的部署方法、装置、介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110750894.6A CN115563205A (zh) 2021-07-01 2021-07-01 区块链系统的部署方法、装置、介质及电子设备

Publications (1)

Publication Number Publication Date
CN115563205A true CN115563205A (zh) 2023-01-03

Family

ID=84738073

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110750894.6A Pending CN115563205A (zh) 2021-07-01 2021-07-01 区块链系统的部署方法、装置、介质及电子设备

Country Status (1)

Country Link
CN (1) CN115563205A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116643784A (zh) * 2023-05-26 2023-08-25 北京信息科技大学 用于区块链应用的自适应一键部署方法、系统和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116643784A (zh) * 2023-05-26 2023-08-25 北京信息科技大学 用于区块链应用的自适应一键部署方法、系统和装置

Similar Documents

Publication Publication Date Title
CN108600029B (zh) 一种配置文件更新方法、装置、终端设备及存储介质
EP3511820A1 (en) Cloud based artifact lifecycle management system and method thereof
Mori et al. Systems‐of‐systems modeling using a comprehensive viewpoint‐based SysML profile
CN111291060B (zh) 一种管理区块链节点的方法、装置及计算机可读介质
CN112527912B (zh) 基于区块链网络的数据处理方法、装置及计算机设备
CN110443075A (zh) 一种区块链智能合约验证部署的方法及装置
CN112291372B (zh) 区块链的异步落账方法、装置、介质及电子设备
CN110727575B (zh) 一种信息处理方法、系统、装置、以及存储介质
CN112134956A (zh) 一种基于区块链的分布式物联网指令管理方法和系统
CN114154987B (zh) 一种基于nfr和互链网的元宇宙安全系统及运行方法
CN111949531B (zh) 区块链网络的测试方法、装置、介质及电子设备
CN112738138B (zh) 云安全托管方法、装置、设备及存储介质
CN111444090B (zh) 区块链中的合约测试方法、装置、电子设备及存储介质
CN116155771A (zh) 网络异常测试方法、装置、设备、存储介质和程序
CN107147711A (zh) 应用服务更新方法及装置
CN111352835B (zh) 一种智能合约的测试方法、装置、设备及存储介质
CN115812298A (zh) 供应故障的区块链管理
CN113238929A (zh) 基于Mock数据的代码测试方法、装置、电子设备及存储介质
CN115563205A (zh) 区块链系统的部署方法、装置、介质及电子设备
CN112926981B (zh) 用于区块链的交易信息处理方法、装置、介质及电子设备
CN115701078B (zh) 跨链交易处理方法、装置、电子设备以及存储介质
CN111737130B (zh) 公有云多租户认证服务测试方法、装置、设备及储存介质
US20230101077A1 (en) Verification device, verification system, verification method, and computer readable medium
CN113592645A (zh) 数据验证的方法和装置
CN115599658A (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