CN111737104A - 区块链网络服务平台及其测试用例共享方法、存储介质 - Google Patents

区块链网络服务平台及其测试用例共享方法、存储介质 Download PDF

Info

Publication number
CN111737104A
CN111737104A CN201911025936.9A CN201911025936A CN111737104A CN 111737104 A CN111737104 A CN 111737104A CN 201911025936 A CN201911025936 A CN 201911025936A CN 111737104 A CN111737104 A CN 111737104A
Authority
CN
China
Prior art keywords
test
written
test case
target block
service platform
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
CN201911025936.9A
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology 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 Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201911025936.9A priority Critical patent/CN111737104A/zh
Publication of CN111737104A publication Critical patent/CN111737104A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种区块链网络服务平台及其测试用例共享方法、存储介质,包括:当接收到待写入测试用例时,在主节点上验证待写入测试用例的合法性,待写入测试用例为对目标对象进行测试所需的测试流程信息;当待写入测试用例验证为合法时,将测试用例广播至多个测试节点,以供多个测试节点对测试用例进行共识验证;当多个测试节点对测试用例进行共识验证通过时,调用智能合约将待写入测试用例写入目标区块,并将目标区块上链至目标区块链,目标区块链为与待写入测试用例的标识信息相同的区块链。

Description

区块链网络服务平台及其测试用例共享方法、存储介质
技术领域
本发明涉及软件开发技术领域,尤其涉及一种区块链网络服务平台及其测试用例共享方法、存储介质。
背景技术
软件测试是软件开发的过程中的一个重要的环节,通过软件测试可以发现软件中存在的问题。其中,测试用例是进行软件测试的基础,完善的测试用例可以有效的提高软件测试的效率。
现有技术是利用测试用例管理***等平台对测试用例进行共享,测试人员可以通过权限控制对共享的测试用例进行增加、删除、修改和查询等操作,然而当测试用例管理***等平台出现故障的时候,共享的测试用例就无法访问,降低了共享装置共享测试用例时的安全性。
发明内容
为解决上述技术问题,本发明实施例期望提供一种区块链网络服务平台及其测试用例共享方法、存储介质,能够提高共享装置共享测试用例时的安全性。
本发明的技术方案是这样实现的:
本申请实施例提供一种区块链网络服务平台的测试用例共享方法,所述方法包括:
当接收到待写入测试用例时,在主节点上验证所述待写入测试用例的合法性,所述待写入测试用例为对目标对象进行测试所需的测试流程信息;
当所述待写入测试用例验证为合法时,将所述测试用例广播至多个测试节点,以供所述多个测试节点对所述测试用例进行共识验证;
当所述多个测试节点对所述测试用例进行共识验证通过时,调用智能合约将所述待写入测试用例写入目标区块,并将所述目标区块上链至目标区块链,所述目标区块链为与所述待写入测试用例的标识信息相同的区块链。
在上述方法中,所述将所述测试用例广播至多个测试节点之后,所述方法还包括:
当所述多个测试节点对所述测试用例进行共识验证通过时,将所述待写入测试用例写入所述主节点对应的主节点账本和所述多个测试节点对应的多个测试节点账本,以供所述区块链网络服务平台从所述主节点账本和所述多个测试节点账本中获取到所述待写入测试用例。
在上述方法中,所述在主节点上验证所述待写入测试用例的合法性之前,所述方法还包括:
当所述区块链网络服务平台处于非工作状态时,确定出主节点选举方式;
当所述主节点选举方式为第一选举方式时,接收主节点选举的确定指令;
将所述确定指令对应的测试节点作为所述主节点。
在上述方法中,所述确定出主节点选举方式之后,所述方法还包括:
当所述主节点选举的方式为第二选举方式时,对所述多个测试节点广播主节点选举信息;
当接收到主节点选举信息对应的第一个响应信息时,将所述第一个响应信息对应的测试节点,确定为所述主节点。
在上述方法中,所述调用智能合约将所述待写入测试用例写入目标区块,并将所述目标区块上链至目标区块链,包括:
将所述目标区块的容量值与预设区块容量值进行对比,所述预设区块容量值为所述区块链网络服务平台对区块预设的容量值;
当所述目标区块的容量值大于所述预设区块容量值时,增加所述目标区块的容量值;
调用所述智能合约将所述待写入测试用例写入目标区块,所述目标区块为增加了容量值的目标区块;
根据所述目标区块链的预设上链形式和所述待写入测试用例,确定所述目标区块的索引信息;
根据所述索引信息将所述目标区块上链至目标区块链。
在上述方法中,所述调用智能合约将所述待写入测试用例写入目标区块,并将所述目标区块上链至目标区块链之后,所述方法还包括:
当获取到所述待写入测试用例的更新指令时,根据所述更新指令更新所述待写入测试用例,得到更新后的待写入测试用例;
利用所述主节点将所述更新后的待写入测试用例广播至所述多个测试节点,以供所述多个测试节点对所述更新后的待写入测试用例进行共识验证;
当所述更新后的待写入测试用例共识验证通过时,调用智能合约将所述更新后的待写入测试用例写入更新区块,并将所述更新区块上链至目标区块链。
在上述方法中,所述调用智能合约将所述待写入测试用例写入目标区块,并将所述目标区块上链至目标区块链之后,所述方法还包括:
当预设时间到达时,将所述多个测试节点账本中的第一测试用例的版本号与所述目标区块中的所述待写入测试用例的版本号进行对比,所述第一测试用例为与所述待写入测试用例的标识相同的测试用例;
当所述第一测试用例的版本号大于所述待写入测试用例的版本号时,将所述目标区块同步至所述多个测试节点对应的所述多个测试节点账本。
在上述方法中,所述调用智能合约将所述待写入测试用例写入目标区块,并将所述目标区块上链至目标区块链之后,所述方法还包括:
当接收到待写入测试用例的测试指令时,根据所述测试指令,确定出所述待写入测试用例的标识信息和所述索引信息;
根据所述标识信息和所述索引信息,从所述目标区块链中获取所述目标区块中的所述待写入测试用例;
利用所述待写入测试用例执行相应的测试程序。
本申请实施例提供了一种区块链网络服务平台,所述区块链网络服务平台,用于当接收到待写入测试用例时,在主节点上验证所述待写入测试用例的合法性,所述待写入测试用例为对目标对象进行测试所需的测试流程信息;当所述待写入测试用例验证为合法时,将所述测试用例广播至多个测试节点,以供所述多个测试节点对所述测试用例进行共识验证;当所述多个测试节点对所述测试用例进行共识验证通过时,调用智能合约将所述待写入测试用例写入目标区块,并将所述目标区块上链至目标区块链,所述目标区块链为与所述待写入测试用例的标识信息相同的区块链。
在上述区块链网络服务平台中,所述区块链网络服务平台,还用于当所述多个测试节点对所述测试用例进行共识验证通过时,将所述待写入测试用例写入所述主节点对应的主节点账本和所述多个测试节点对应的多个测试节点账本,以供所述区块链网络服务平台从所述主节点账本和所述多个测试节点账本中获取到所述待写入测试用例。
在上述区块链网络服务平台中,所述区块链网络服务平台,还用于当所述区块链网络服务平台处于非工作状态时,确定出主节点选举方式;当所述主节点选举方式为第一选举方式时,接收主节点选举的确定指令;将所述确定指令对应的测试节点作为所述主节点。
在上述区块链网络服务平台中,所述区块链网络服务平台,还用于当所述主节点选举的方式为第二选举方式时,对所述多个测试节点广播主节点选举信息;当接收到主节点选举信息对应的第一个响应信息时,将所述第一个响应信息对应的测试节点,确定为所述主节点。
在上述区块链网络服务平台中,所述区块链网络服务平台,具体用于将所述目标区块的容量值与预设区块容量值进行对比,所述预设区块容量值为所述区块链网络服务平台对区块预设的容量值;当所述目标区块的容量值大于所述预设区块容量值时,增加所述目标区块的容量值;调用所述智能合约将所述待写入测试用例写入目标区块,所述目标区块为增加了容量值的目标区块;根据所述目标区块链的预设上链形式和所述待写入测试用例,确定所述目标区块的索引信息;根据所述索引信息将所述目标区块上链至目标区块链。
在上述区块链网络服务平台中,所述区块链网络服务平台,还用于当获取到所述待写入测试用例的更新指令时,根据所述更新指令更新所述待写入测试用例,得到更新后的待写入测试用例;利用所述主节点将所述更新后的待写入测试用例广播至所述多个测试节点,以供所述多个测试节点对所述更新后的待写入测试用例进行共识验证;当所述更新后的待写入测试用例共识验证通过时,调用智能合约将所述更新后的待写入测试用例写入更新区块,并将所述更新区块上链至目标区块链。
在上述区块链网络服务平台中,所述区块链网络服务平台,还用于当预设时间到达时,将所述多个测试节点账本中的第一测试用例的版本号与所述目标区块中的所述待写入测试用例的版本号进行对比,所述第一测试用例为与所述待写入测试用例的标识相同的测试用例;当所述第一测试用例的版本号大于所述待写入测试用例的版本号时,将所述目标区块同步至所述多个测试节点对应的所述多个测试节点账本。
在上述区块链网络服务平台中,所述区块链网络服务平台,还用于当接收到待写入测试用例的测试指令时,根据所述测试指令,确定出所述待写入测试用例的标识信息和所述索引信息;根据所述标识信息和所述索引信息,从所述目标区块链中获取所述目标区块中的所述待写入测试用例;利用所述待写入测试用例执行相应的测试程序。
本申请实施例提供一种区块链网络服务平台,所述区块链网络服务平台包括:
至少一个存储器,用于存储可执行指令;
至少一个处理器,用于执行所述至少一个存储器中存储的可执行指令,实现如上述区块链网络服务平台的测试用例共享方法。
本申请实施例提供一种存储介质,存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行如上述区块链网络服务平台的测试用例共享方法。
本发明实施例提供了区块链网络服务平台及其测试用例共享方法、存储介质,区块链网络服务平台及其测试用例共享方法包括:当接收到待写入测试用例时,在主节点上验证待写入测试用例的合法性,待写入测试用例为对目标对象进行测试所需的测试流程信息;当待写入测试用例验证为合法时,将测试用例广播至多个测试节点,以供多个测试节点对测试用例进行共识验证;当多个测试节点对测试用例进行共识验证通过时,调用智能合约将待写入测试用例写入目标区块,并将目标区块上链至目标区块链,目标区块链为与待写入测试用例的标识信息相同的区块链。采用上述方法实现方案,区块链网络服务平台通过将待写入测试用例写入目标区块中,并将该目标区块上链至目标区块链,使得目标区块链的多个测试节点都可以在目标区块中查找到待写入测试用例,当区块链中的部分测试节点出现故障时,区块链网络服务平台还可以从未出现故障的测试节点中获取到待写入测试用例,提高了区块链网络服务平台共享测试用例时的安全性。
附图说明
图1为本申请实施例提供的区块链网络服务平台的功能架构示意图;
图2为本申请实施例提供的资源层通过部署有容器化管理***而被构建为容器集群200的结构示意图;
图3为本申请实施例提供的开发者通过终端300接入区块链网络服务平台100的示意图;
图4A至图4Q是本申请实施例提供的区块链网络服务平台的各种功能管理页面的显示示意图;
图5为本申请实施例提供的示例性的使用区块链网络服务平台部署的区块链网络的结构示意图;
图6为本申请实施例提供的示例性的使用区块链网络服务平台进行交易的流程图;
图7为本申请实施例提供的一种区块链网络服务平台的测试用例共享方法流程图一;
图8为本申请实施例提供的一种示例性地共识算法示意图;
图9为本申请实施例提供的一种示例性地目标区块的索引示意图;
图10为本申请实施例提供的一种区块链网络服务平台确定出主节点的方法流程图;
图11为本申请实施例提供的一种建立目标区块的流程示意图;
图12为本申请实施例提供的一种区块链网络服务平台的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)区块(Block),记录一段时间内交易所更新的账本数据的数据结构,被标记上时间戳和之前一个区块的独特标记(例如数字指纹),区块经过区块链网络中节点的共识验证后,会被追加到区块链的末尾成为新的区块。
2)区块链(Blockchain),区块以顺序相连的方式组合成的一种链式数据结构,在每个区块中引用前一个区块或者其子集的哈希值,从而以密码学的方式保证所记录交易的不可篡改和不可伪造。
3)账本(Ledger),区块链网络中以账户为维度所记录的数据的总和,包括账本数据、账本状态、账本状态证明和区块索引等元素。
4)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对交易结果达成一致,实现共识的机制包括工作量证明(PoW)、权益证明(PoS,Proof ofStake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proofof Elapsed Time)等。
5)智能合约(Smart Contracts),也称为链码(Chaincode),部署在区块链网络中的根据条件而触发执行的程序链码运行在一个安全的容器中,来初始化和管理账本数据和账本状态。
下面说明实现本发明实施例的区块链网络的示例性的功能架构,参见图1,图1本发明实施例提供的区块链网络的功能架构示意图,包括应用层101、共识层102、网络层103、数据层104和资源层105,下面分别进行说明。
资源层105封装各种可用的计算资源和存储资源,例如计算机、服务器/集群和云中的计算资源和存储资源,进行抽象并向数据层104提供统一的接口以屏蔽实现资源层105的底层硬件的差异性。
计算资源包括各种形式的处理器,例如中央处理器(CPU)、应用专用集成电路(ASIC,Application Specific Integrated Circuit)、专用集成电路和现场可编程门阵列(FPGA,Field-Programmable Gate Array)的各种形式的处理器。
存储资源包括各种易失性存储器和非易失性存储器等各种类型的存储介质。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。
资源层105的计算资源和存储资源可以被映射为区块链网络中各种类型的节点,实现本发明实施例的存储介质存储了用于实现本发明实施例的区块链网络部署方法的可执行指令,一旦被部署到节点的可执行指令被执行,实现节点的底层资源(例如各种类型的处理器)将实现区块链网络中各种类型的节点的部署、以及执行各种类型节点的功能,从而实现针对业务过程中的交易的账本、以及基于账本的各种应用。
作为示例,可执行指令可以采用软件(包括***程序和应用程序)、软件模块、脚本、插件等的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件或者适合在计算环境中使用的其它单元。
数据层104封装了实现账本的各种数据结构,包括以文件***实现的账本数据,以数据库形式实现的账本状态和存在性证明。
网络层103封装了点对点(P2P)网络协议、数据传播机制和数据验证机制、接入和认证机制和业务主体身份。P2P网络协议实现区块链网络中节点之间的通信,数据传播机制保证了交易/交易结果在区块链网络中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点之间传输数据的可靠性;接入和认证机制用于基于业务主体身份对终端的接入和认证进行管理。
共识层102封装了区块链中传播的交易结果达成一致性的机制,包括POS、POW和DPOS等,支持共识机制的可插拔。
应用层101封装了区块链网络能够实现的各种业务,包括交易结算、溯源和存证等。
参见图2,是本发明实施例提供的资源层通过部署有容器化管理***而被构建为容器集群200的结构示意图,向资源层提供资源的机器中通过部署容器化管理***的相应组件而形成管理节点(Master Server)200和服务节点300(Node)两类节点,管理节点用于管理容器在服务节点中的调度和运行,服务节点主要用于运行各种容器,提供区块链网络中的各种应用的隔离运行环境,例如,用于运行链码的链码容器,用于运行节点(即区块链网络中各种类型的节点的代码)代码的节点容器等,下面分别进行说明。
管理节点(Master Server)200负责管理集群,以服务(Service)的形式对外提供集群的资源数据访问入口,管理节点包括几个示例性的组件。
1)状态组件(etcd),用于保存整个集群的状态。
2)应用程序接口服务(API Server)组件,用于提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制。
3)调度(Scheduler)组件,用于负责资源的调度,按照预定的调度策略将容器调度到合适的节点上运行。服务节点所运行的容器中共享机器(也就是部署服务节点组件的机器)中同一组资源的容器组(Pod)为调用的最小单位,对于区块链网络的应用来说,可以通过一个或多个的容器组来实现,容器组中的容器共享的资源包括:应用程序命名空间、网络命名空间、主机名和存储卷(Volume)。
以共享存储卷为例,当节点上部署共享文件***组件时,例如网络文件***(NFS,Network File System)、集群文件***(GlusterFS)、ceph文件***(Cephfs),调度组件就能够存储卷上所挂载的容器组轻易地调度(挂载)到其他机器(节点)的存储卷中。
4)控制管理(Controller Manager)组件,用于负责监控/维护集群的状态,通过应用程序接口服务组件提供的接口,实时监控整个集群的每个资源对象的当前状态,当发生各种故障导致***状态发生变化时,会修复到期望状态。
5)副本控制器(RC,Replication Controller)组件,控制一定时间内总有一定数量的Pod副本的运行;例如正在运行的Pod副本超出设定值,则关闭部分Pod副本;如果Pod副本少于设定值则创建新的Pod副本。
6)部署控制器(Deployment Controller)组件,用于管理维护容器集群找中的资源对象-部署(Deployment)对象,关联部署对象和副本控制器,在部署对象中为容器组和副本控制器提供声明式更新,用于声明容器组和副本控制器的目标状态,从而当部署对象更新时,控制实现副本控制器和容器组的更新。
服务节点300包括以下示例性的组件。
1)容器引擎(记为Docker),用于来负责所有具体的镜像下载和容器运行。
2)守护进程组件(记为Kubelet),用于负责维护容器的生命周期(创建、启动和停止),同时也负责存储卷和容器网络接口(CNI)的管理。
以存储卷的管理为例,守护进程组件通过节点中部署的共享文件***的组件,例如网络文件***(NFS,Network File System)、集群文件***(GlusterFS)、ceph文件***(Cephfs),将一个容器组中的各个容器挂载到相同的存储卷上,使各个容器使用相同的存储卷存储在运行过程中所生产的数据,存储卷中的数据可以被同一个容器组的任一容器访问。
3)负载均衡组件(记为Proxy),负责为Service提供cluster内部的服务发现和负载均衡。
基于图2示出的集群,部署一个区块链网络的应用的镜像被封装到容器组(在下面的示例中称为目标Pod)并运行在节点(在下面的示例中称为目标Node)的示例性过程如下所述。
首先,容器集群200的管理工具(Kubectl)提交一个创建副本控制器(RC,Replication Controller)的请求,其中包括目标Pod的定义;目标Pod需要运行的副本数量;要监控的目标Pod标签(Lable)等信息。
接下来,请求通过API Server被写入etcd中,此时Controller Manager通过APIServer的监听资源变化的接口监听到这个RC事件,发现当前集群中还没有它所对应的Pod实例,于是根据RC里的Pod模板定义生成一个Pod对象,通过API Server写入etcd。
紧接着,RC事件被Scheduler发现,它立即执行一个调度流程:为这个新Pod选定一个落户的节点,然后通过API Server将这一结果写入到etcd中,随后,目标Node上运行的Kubelet进程通过API Server监测到这个新Pod,并按照它的定义,启动新Pod,直到Pod的生命结束。
随后,Kubectl提交一个新的映射到目标Pod的Service的创建请求,ControllerManager会通过Label查询到相关联的Pod实例,然后生成Service的端点(Endpoints)信息(包括地址和端口),并通过API Server写入到etcd中;容器集群中所有Node上运行的Proxy进程通过API Server查询、并监听Service对象与其对应的Endpoints信息,建立一个软件方式的负载均衡器来实现Service访问到后端Pod的流量转发功能。
结合上文可知,实现本发明实施例的区块链网络服务平台通过在资源层部署容器集群、并运行封装有区块链网络应用的容器而实现,由此,实现本发明实施例的区块链网络可以提供为存储器和处理器的形式,在存储器中存储有可执行指令,当可执行指令被处理器执行时,在运行处理器和存储器的多个节点上建立了容器集群,通过在容器中运行封装的应用,来实现本发明实施例的区块链服务网络平台中的链码安装方法。
实现本发明实施例的区块链网络平台通过各种方式与开发者连接,并提供各种图形化的方式以进行区块链网络的部署和管理,下面进行说明。
参见图3,图3是本发明实施例提供的开发者通过终端300接入区块链网络服务平台100的示意图,开发者终端300的SDK/Web 320接口连接区块链网络服务平台100中的数据层104相应的SDE/Web接口,支持在开发者的终端300本地以远程的方式部署支撑特定业务的区块链网络,在终端300的图形界面310中显示区块链网络服务平台100的各种功能的管理页面,包括容器集群的创建和新的容器集群的接入、存储资源的管理、一键部署区块链网络、链码管理(运行状态查看)、应用商店管理等。
参见图4A至图4Q,是本发明实施例提供的区块链网络服务平台的各种功能管理页面的显示示意图,将结合图4A至图4Q示例性说明如图3中开发者终端300的图形界面310中显示的功能管理页面。
图4A示出了区块链网络服务平台100的状态查看页面,在状态查看页面中区块链网络的运行状态,例如CPU使用、内存使用、资源(节点)使用的情况。
图4B示出了区块链网络服务平台100的一键部署的控制台页面,支持开发者设置区块链网络的基本信息(包括区块域名、版本号)和组织(包括组织名、节点数量、用户数量等),采用默认值来设置高级选项,包括排序节点类型、通道名称和链码名称等。
图4C示出了的区块链网络服务平台100的资源层105的资源管理的控制台页面,其中显示了开发者通过区块链网络服务平台100可部署的集群的相关信息,包括是否连接的状态,CPU/内存使用情况等。
在图4D中支持添加用于支撑去区块链网络的容器集群,录入集群名称;在创建集群的功能选项被触发后将进入创建页面。
在图4E中示出了区块链网络服务平台100的查询集群的控制台页面,当查询集群的功能按钮被触发后,将进入集群列表页面,支持进行添加集群、查询集群、删除集群、编辑集群的操作。
在图4F中示出了区块链网络服务平台100的存储管理的控制台页面,当存储管理的功能按钮被触发时,将进入存储管理列表页,显示集群中已创建的存储项目,其中包含存储查询及删除功能。
在图4G中示出了区块链网络服务平台100的存储详情的控制台页面,在图4H中显示存储的详情,并支持对存储进行动态存储空间扩容。
在图4I中示出了区块链网络服务平台100的添加存储的控制台页面,支持对添加的存储名称和节点进行设置,根据设置将节点添加到容器集群中,并在图4J中显示添加存储后的详情信息,包括容器集群的节点的列表。
在图4K中示出了区块链网络服务平台100的超级账本的控制台页面,显示了部署区块链网络所使用的超级账本的名称、网络版本、状态和创建时间的信息。
在图4L中示出了区块链网络服务平台100的超级账本的一键部署的控制台页面,提供了针对超级账本部署的基本信息的配置项目,以及采用默认值的高级配置项,例如排序节点类型、通道、默认链码和初始化参数等。
在图4M/N中示出了区块链网络服务平台100的链码的上传/安装的控制台页面,在上传的控制台页面中提供了链码名和版本号的设置项目;在安装的控制台页面中提供了链码版本、初始化参数、组织和节点的配置项目。
在图4O中示出了区块链网络服务平台100的网络详情的控制台页面,支持查看不同通道的组织成员、区块高度、交易数量和合约数量等信息,还可以显示所查看通道的组织名称、通道内节点名称、通道内链码名称等信息。
在图4P中示出了区块链网络服务平台100的链码查询的控制台页面,支持使用网络名称、链码名称、链码参数、账本名称和链码函数等方式配合查询链码,查询的维度包括状态、消息和数据。
在图4Q中示出了区块链网络服务平台100的应用商店的控制台页面,支持开发者选择需要部署的应用,一旦有应用被确定部署到区块链网络,将通过复用应用的镜像的方式完成到资源层105的容器集群的快速部署。
参见图5,为使用区块链网络服务平台部署的区块链网络的一个示例性结构,应用程序从CA获取合法的身份证书来加入到网络内的应用通道。发起正式交易前,需要先构造交易提案(Proposal)提交给组织1和组织2中的背书节点进行背书;客户端收集到足够(数量根据背书策略决定)的背书支持后,可以利用背书构造一个合法的交易请求(携带背书节点的背书),发给排序服务中的排序节点(Orderer)进行排序,以是将交易封装形成区块。
参见图6,为应用程序与区块链网络的交易流程,其中,交易流程中客户端和各个节点的功能如下:
客户端(应用程序):使用SDK来跟区块链网络进行交互。首先,客户端从CA获取合法的身份证书来加入到网络内的应用通道。发起正式交易前,需要先构造交易提案(Proposal)提交给背书节点进行背书;客户端收集到足够(数量根据背书策略决定)的背书支持后,可以利用背书构造一个合法的交易请求(携带背书节点的背书),发给排序节点(Orderer)进行排序,以是将交易封装形成区块。客户端还可以通过事件机制来监听网络中消息,来获知交易是否被成功接收。
背书节点(Endorser):主要提供方法供客户端调用,完成对交易提案的背书(签名)处理。收到来自客户端的交易提案后,首先进行合法性和ACL权限检查,检查通过则模拟运行交易(交易中会执行需要执行的链码名称和参数,执行交易,实质就是执行交易中所指定的链码),对交易导致的状态变化(以读写集形式记录,包括所读状态的键和版本,所写状态的键值)进行背书(也就是进行数字签名)并返回客户端是否予以支持的结果。
排序节点(Orderer):接收包含背书签名的交易,对未打包的交易进行排序生成区块,广播给Peer节点。
主节点(Leader Peer):和排序节点通信的节点,负责从排序节点处获取最新的区块并在区块链网络的内部同步。
记账节点(Committer):维护区块链和账本的结构(包括状态DB、历史DB、索引DB等)。该节点会定期地从排序节点获取排序后的批量交易区块结构,对这些交易检查(包括交易消息结构、签名完整性、是否重复、读写集合版本是否匹配等)。检查通过后执行合法的交易,将结果写入账本,同时构造新的区块。
需要说明的是,所有的Peer节点都是记账节点,负责验证从排序节点区块里的交易,维护状态数据和账本的副本。部分Peer节点会执行交易并对结果进行签名背书,充当背书节点的角色。背书节点是动态的角色,是与具体链码绑定的。在链码容器中的每个链码在实例化的时候都会设置背书策略,指定哪些节点对交易背书后才是有效的。也只有在应用程序向它发起交易背书请求的时候才是背书节点,其他时候就是普通的记账节点,只负责验证交易并记账。
实施例一
本申请实施例提供了一区块链网络服务平台的测试用例共享方法,图7为本申请实施例提供的一种区块链网络服务平台的测试用例共享方法流程图一,如图7所示,测试用例共享方法可以包括:
S101、当接收到待写入测试用例时,在主节点上验证待写入测试用例的合法性,待写入测试用例为对目标对象进行测试所需的测试流程信息。
本发明实施例提供的一种区块链网络服务平台的测试用例共享方法,适用于区块链网络服务平台将存储有待写入测试用例的目标区块上链至目标区块链的场景下。
在本申请实施例中,当区块链网络服务平台接收到待写入测试用例时,区块链网络服务平台就可以在主节点上验证该待写入测试用例的合法性了。
需要说明的是,待写入测试用例为对目标对象进行测试所需的测试流程信息。
在本申请实施例中,区块链网络服务平台在主节点上验证待写入测试用例的合法性之前,区块链网络服务平台需要先判断是否存在主节点,当区块链网络服务平台中不存在主节点时,区块链网络服务平台需要先确定出主节点。在本申请实施例中,区块链网络服务平台确定主节点的过程具体为:当区块链网络服务平台处于非工作状态时,区块链网络服务平台就可以确定主节点选举方式了。
需要说明的是,区块链网络服务平台处于非工作状态可以为区块链网络服务平台处于宕机状态,也可以为区块链网络服务平台处于初始化状态,具体的可根据实际情况确定,本申请实施例对此不做限定。
在本申请实施例中,当区块链网络服务平台确定出主节点的选举方式为第一选举方式时,区块链网络服务平台就可以接收主节点选举的确定指令了。
需要说明的是,确定指令可以为将指定的测试节点作为主节点的指令。
需要说明的是,第一选举方式可以为根据用户输入的主节点指定信息来确定出主节点的方式。
在本申请实施例中,当区块链网络服务平台接收到主节点选举的确定指令时,区块链网络服务平台就将确定指令对应的测试节点作为主节点。
示例性地,区块链网络服务平台中包括3个测试节点,标号为:1号测试节点、2号测试节点和3号测试节点,当主节点选举的确定指令指示将编号为3号的测试节点作为主节点时,区块链网络服务平台就可以将编号为3号的测试节点作为主节点。
在本申请实施例中,当区块链网络服务平台确定出主节点选举的方式为第二选举方式时,区块链网络服务平台就对多个测试节点广播主节点选举信息。
需要说明的是,第二选举方式可以为对多个测试节点广播主节点选举信息来确定出节点的方式。
在本申请实施例中,区块链网络服务平台对多个测试节点广播主节点选举信息之后,多个测试节点会根据该主节点选举信息对区块链网络服务平台发送主节点选举信息对应的第一个响应信息,当区块链网络服务平台接收到多个测试节点发送的主节点选举信息对应的第一个响应信息时,区块链网络服务平台就可以将该第一个响应信息对应的测试节点,确定为主节点了。
S102、当待写入测试用例验证为合法时,将测试用例广播至多个测试节点,以供多个测试节点对测试用例进行共识验证。
在本申请实施例中,当区块链网络服务平台验证出待写入测试用例合法时,区块链网络服务平台就将该测试用例广播给多个测试节点,使得该多个测试节点可以对该测试用例进行共识验证。
在本申请实施例中,当多个测试节点对测试用例进行共识验证通过时,区块链网络服务平台将待写入测试用例写入主节点对应的主节点账本和多个测试节点对应的多个测试节点账本,以供区块链网络服务平台可以从主节点账本和多个测试节点账本中获取到待写入测试用例。
需要说明的是,本申请中的区块链网络服务平台可以通过拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT)来操作多个测试节点达成共识,区块链网络服务平台还可以利用其它共识算法来操作多个测试节点达成共识,具体的可根据实际情况确定,本申请实施例对此不做限定。
当区块链网络服务平台中的故障节点数量不超过总结点数量的1/3时,区块链网络服务平台可以通过PBFT来操作多个测试节点达成共识。如图8所示,PBFT共识过程分为五个阶段,分别是请求阶段、预准备阶段、准备阶段、确认阶段和响应阶段,其中共识一致性的确保主要分为三个阶段,分别是预准备阶段、准备阶段和确认阶段,预准备和准备两个阶段用来确保请求发送的时序性,准备和确认两个阶段用来确保在请求是严格排序的。在请求阶段,客户端发送待写入测试用例的共识请求至主节点,在预准备阶段主节点接收的到该共识请求后将该共识请求广播至多个测试节点和故障节点,在准备阶段多个测试节点向其他测试节点和主节点广播共识请求,当确认阶段时,主节点和多个测试节点以及故障节点至少可以收到两倍故障节点数量的共识请求,在响应阶段,多个测试节点和主节点分别针对客户端发送的共识请求进行响应,而故障节点不对客户端发送的共识请求进行响应,客户端根据该响应结果,确定出该共识请求可以通过验证。
示例性地,当区块链网络服务平台中共有4个节点,其中故障节点数量为0时,得到的数据和最终数据的显示结果如表1所示。当区块链网络服务平台中没有故障节点时,当主节点广播接收到的待写入测试用例的共识请求时,每个节点都可以收到其他节点发送的共识信息,并针对该共识请求进行响应,由于故障节点数量为零,此时区块链网络服务平台可以通过PBFT来达成共识。
表1当没有故障节点时的共识验证数据
服务端 得到数据 最终数据
主节点 1 1 1 1 1
测试节点1 1 1 1 1 1
测试节点2 1 1 1 1 1
测试节点3 1 1 1 1 1
示例性地,当区块链网络服务平台中共有4个节点,其中故障节点数量为1时,得到的数据和最终数据的显示结果如表2所示。当区块链网络服务平台中有1个故障节点时,当主节点广播接收到的待写入测试用例的共识请求时,每个节点都会不会接受到故障节点发送的信息,故,故障节点只能接收主节点和多个测试节点发送的信息,不能发送信息,而主节点和多个测试节点可以相互发送信息,并对该信息进行响应。由于故障节点数量不超过主节点和多个测试节点总数的1/3,故此时区块链网络服务平台可以通过PBFT来达成共识。
表2当有1个故障节点时的共识验证数据
服务端 得到数据 最终数据
主节点 1 1 1 0 1
测试节点1 1 1 0 1 1
测试节点2 1 0 1 1 1
故障节点 0 1 1 1 1
示例性地,当区块链网络服务平台中共有4个节点,其中故障节点数量为1时,得到的数据和最终数据的显示结果如表2所示。当区块链网络服务平台中有2个故障节点时,当主节点广播接收到的待写入测试用例的共识请求时,每个节点都会不会接受到故障节点发送的信息,故,故障节点只能接收主节点和多个测试节点发送的信息,不能发送信息,而主节点和多个测试节点可以相互发送信息,并对该信息进行响应。由于故障节点数量超过主节点和多个测试节点总数的1/3,故此时区块链网络服务平台无法通过PBFT来达成共识。
表3当有2个故障节点时的共识验证数据
服务端 得到数据 最终数据
主节点 1 1 0 0 N/A
测试节点1 1 0 0 1 N/A
故障节点 0 0 1 1 N/A
故障节点 0 1 1 0 N/A
S103、当多个测试节点对测试用例进行共识验证通过时,调用智能合约将待写入测试用例写入目标区块,并将目标区块上链至目标区块链,目标区块链为与待写入测试用例的标识信息相同的区块链。
在本申请实施例中,当区块链网络服务平台确定出多个测试节点对测试用例进行共识通过时,区块链网络服务平台就可以将该待写入测试用例写入目标区块,并将该目标区块上链至目标区块链。
需要说明的是,目标区块链为与待写入测试用例的标识信息相同的区块链。
还需要说明的是,当区块链网络服务平台将待写入测试用例写入目标区块之后,区块链网络服务平台就根据该待写入测试用例的标识信息确定出目标区块链,并将该目标区块上链至目标区块链。
需要说明的是,目标区块可以为创世区块,还可以不是创世区块,具体的目标区块可以根据实际情况进行确定,本申请实施例对此不做限定。
在本申请实施例中,当区块链网络服务平台将待写入测试用例写入目标区块,并将目标区块上链至目标区块链的过程具体为:区块链网络服务平台将目标区块的容量值与预设区块容量值进行对比。
需要说明的是,预设区块容量值为区块链网络服务平台对区块预设的容量值。
在本申请实施例中,当区块链网络服务平台判断出目标区块的容量值大于所述预设区块容量值时,区块链网络服务平台就增加目标区块的容量值。
需要说明的是,区块链网络服务平台增加目标区块的容量值的方式可根据实际情况进行确定,本申请实施例对此不做限定。
需要说明的是,预设区块容量值为区块链网络服务平台对区块预设的容量值。
在本申请实施例中,区块链网络服务平台调用智能合约将待写入测试用例写入目标区块。
需要说明的是,目标区块为增加了容量值的目标区块。
在本申请实施例中,当区块链网络服务平台增加了目标区块的容量值之后,区块链网络服务平台就根据目标区块链的预设上链形式和待写入测试用例,确定目标区块的索引信息。
需要说明的是,目标区块的索引信息包括:待写入测试用例的编号信息、待写入测试用例的偏移量和目标区块的占用字节数。
在本申请实施例中,当确定出待写入测试用例的编号信息、待写入测试用例的偏移量和目标区块的占用字节数时,就确定出了目标区块的索引信息,如图9所示,当根据本地账本编号确定出本地账本信息之后,就可以在本地账本编号对应的账本中根据编号信息确定出区块,当编号信息为000001时,区块链网络服务平台就可以确定出与该000001编号对应的区块,区块链网络服务平台在此区块中根据偏移量和字节数信息就确定出了待写入测试用例的具体写入位置信息。
在本申请实施例中,当区块链网络服务平台确定出目标区块的索引信息之后,区块链网络服务平台在需要查找该待写入测试用例时,就可以根据该索引信息对待写入测试用例进行查找了。
在本申请实施例中,当区块链网络服务平台得到目标区块的索引信息之后,区块链网络服务平台就可以根据索引信息将目标区块上链至目标区块链了。
在本申请实施例中,区块链网络服务平台将目标区块上链至目标区块链之后,当区块链网络服务平台获取到待写入测试用例的更新指令时,区块链网络服务平台根据更新指令更新待写入测试用例,得到更新后的待写入测试用例。
在本申请实施例中,当区块链网络服务平台得到更新后的待写入测试用例后,区块链网络服务平台就在主节点上验证该更新后的待写入测试用例的合法性,当区块链网络服务平台对该更新后的待写入测试用例验证为合法时,区块链网络服务平台就可以利用主节点将更新后的待写入测试用例广播至多个测试节点,以供多个测试节点对更新后的待写入测试用例进行共识验证。
在本申请实施例中,当区块链网络服务平台对该更新后的待写入测试用例共识验证通过时,区块链网络服务平台就调用智能合约将更新后的待写入测试用例写入更新区块,并将更新区块上链至目标区块链。
需要说明的是,更新区块为存储更新后的待写入测试用例的区块。
在本申请实施例中,区块链网络服务平台将目标区块上链至目标区块链之后,区块链网络服务平台就开始计时,当预设时间到达时,区块链网络服务平台就将多个测试节点账本中的第一测试用例与目标区块中的待写入测试用例的版本号进行对比。
需要说明的是,第一测试用例为与待写入测试用例的标识相同的测试用例。
需要说明的是,预设时间可以为一个毫秒,也可以为其他时间段,具体的可根据实时情况进行确定,本申请实施例对此不做限定。
在本申请实施例中,当区块链网络服务平台判断出第一测试用例的版本号大于待写入测试用例的版本号时,区块链网络服务平台就将目标区块同步至多个测试节点对应的多个测试节点账本,以供区块链网络服务平台从该多个测试节点账本中查找到待写入测试用例。
在本申请实施例中,区块链网络服务平台将目标区块上链至目标区块链之后,当区块链网络服务平台接收到待写入测试用例的测试指令时,区块链网络服务平台就根据测试指令,确定出待写入测试用例的标识信息和索引信息。
需要说明的是,待写入测试用例的测试指令中包含有测试用例的标识信息和索引信息,当区块链网络服务平台接收到待写入测试用例的测试指令时,区块链网络服务平台就可以从该待写入测试用例的测试指令中,确定出待写入测试用例的标识信息和索引信息了。
在本申请实施例中,当区块链网络服务平台确定出待写入测试用例的标识信息和索引信息时,区块链网络服务平台就可以根据标识信息和索引信息,从目标区块链中获取到目标区块中的待写入测试用例了。
需要说明的是,当区块链网络服务平台确定出待写入测试用例的标识信息和索引信息时,区块链网络服务平台根据待写入测试用例的标识信息和索引信息从账本中查找待写入测试用例,还可以根据标识信息和索引信息,从目标区块链中获取到目标区块中的待写入测试用例,具体的区块链网络服务平台根据标识信息和索引信息查找待写入测试用例的方式可根据实际情况进行确定,本申请实施例对比不做限定。
在本申请实施例中,当区块链网络服务平台从目标区块链中获取到目标区块中的待写入测试用例时,区块链网络服务平台就可以利用待写入测试用例执行相应的测试程序了。
图10为本申请实施例提供的一种区块链网络服务平台确定出主节点的方法流程图,如图10所示:
S201、当区块链网络服务平台处于非工作状态时,区块链网络服务平台确定出主节点选举方式。
需要说明的是,区块链网络服务平台处于非工作状态可以为区块链网络服务平台处于宕机状态,也可以为区块链网络服务平台处于初始化状态,具体的可根据实际情况确定,本申请实施例对此不做限定。
S202、当主节点选举方式为第一选举方式时,区块链网络服务平台接收主节点选举的确定指令。
需要说明的是,确定指令可以为将指定的测试节点作为主节点的指令。
需要说明的是,第一选举方式可以为根据用户输入的主节点指定信息来确定出主节点的方式。
S203、区块链网络服务平台将确定指令对应的测试节点作为主节点。
S204、当主节点选举的方式为第二选举方式时,区块链网络服务平台对多个测试节点广播主节点选举信息。
需要说明的是,第二选举方式可以为对多个测试节点广播主节点选举信息来确定出节点的方式。
S205、当接收到主节点选举信息对应的第一个响应信息时,区块链网络服务平台将第一个响应信息对应的测试节点,确定为主节点。
图11为本申请实施例提供的一种示例性地区块链写入流程示意图,如图11所示:
S301、区块链网络服务平台将目标区块的容量值与预设区块容量值进行对比。
需要说明的是,预设区块容量值为区块链网络服务平台对区块预设的容量值。
S302、当区块链网络服务平台判断出目标区块的容量值大于预设区块容量值时,区块链网络服务平台增加目标区块的容量值。
需要说明的是,区块链网络服务平台增加目标区块的容量值的方式可根据实际情况进行确定,本申请实施例对此不做限定。
S303、区块链网络服务平台调用智能合约将待写入测试用例写入目标区块,目标区块为增加了容量值的目标区块。
需要说明的是,目标区块为增加了容量值的目标区块。
S304、区块链网络服务平台保存目标区块。
S305、当区块链网络服务平台检测到目标区块异常时,恢复目标区块的容量值。
S306、当区块链网络服务平台判断出目标区块正常时,区块链网络服务平台保存目标区块中的待写入测试用例。
S307、区块链网络服务平台根据目标区块链的预设上链形式和待写入测试用例,确定目标区块的索引信息。
需要说明的是,目标区块的索引信息包括:待写入测试用例的编号信息、待写入测试用例的偏移量和目标区块的占用字节数。
S308、区块链网络服务平台根据索引信息将目标区块上链至目标区块链。
可以理解的是,本申请实施例中的区块链网络服务平台通过将待写入测试用例写入目标区块中,并将该目标区块上链至目标区块链,使得目标区块链的多个测试节点都可以在目标区块中查找到待写入测试用例,当区块链中的部分测试节点出现故障时,区块链网络服务平台还可以从未出现故障的测试节点中获取到待写入测试用例,提高了区块链网络服务平台共享测试用例时的安全性。
实施例二
基于实施例一同一发明构思,本申请实施例提供了一种区块链网络服务平台100,如图1所示,所述区块链网络服务平台100,用于当接收到待写入测试用例时,在主节点上验证所述待写入测试用例的合法性,所述待写入测试用例为对目标对象进行测试所需的测试流程信息;当所述待写入测试用例验证为合法时,将所述测试用例广播至多个测试节点,以供所述多个测试节点对所述测试用例进行共识验证;当所述多个测试节点对所述测试用例进行共识验证通过时,调用智能合约将所述待写入测试用例写入目标区块,并将所述目标区块上链至目标区块链,所述目标区块链为与所述待写入测试用例的标识信息相同的区块链。
可选的,所述区块链网络服务平台100,还用于当所述多个测试节点对所述测试用例进行共识验证通过时,将所述待写入测试用例写入所述主节点对应的主节点账本和所述多个测试节点对应的多个测试节点账本,以供所述区块链网络服务平台从所述主节点账本和所述多个测试节点账本中获取到所述待写入测试用例。
可选的,所述区块链网络服务平台100,还用于当所述区块链网络服务平台处于非工作状态时,确定出主节点选举方式;当所述主节点选举方式为第一选举方式时,接收主节点选举的确定指令;将所述确定指令对应的测试节点作为所述主节点。
可选的,所述区块链网络服务平台100,还用于当所述主节点选举的方式为第二选举方式时,对所述多个测试节点广播主节点选举信息;当接收到主节点选举信息对应的第一个响应信息时,将所述第一个响应信息对应的测试节点,确定为所述主节点。
可选的,所述区块链网络服务平台100,具体用于将所述目标区块的容量值与预设区块容量值进行对比,所述预设区块容量值为所述区块链网络服务平台对区块预设的容量值;当所述目标区块的容量值大于所述预设区块容量值时,增加所述目标区块的容量值;调用所述智能合约将所述待写入测试用例写入目标区块,所述目标区块为增加了容量值的目标区块;根据所述目标区块链的预设上链形式和所述待写入测试用例,确定所述目标区块的索引信息;根据所述索引信息将所述目标区块上链至目标区块链。
可选的,所述区块链网络服务平台100,还用于当获取到所述待写入测试用例的更新指令时,根据所述更新指令更新所述待写入测试用例,得到更新后的待写入测试用例;利用所述主节点将所述更新后的待写入测试用例广播至所述多个测试节点,以供所述多个测试节点对所述更新后的待写入测试用例进行共识验证;当所述更新后的待写入测试用例共识验证通过时,调用智能合约将所述更新后的待写入测试用例写入更新区块,并将所述更新区块上链至目标区块链。
可选的,所述区块链网络服务平台100,还用于当预设时间到达时,将所述多个测试节点账本中的第一测试用例的版本号与所述目标区块中的所述待写入测试用例的版本号进行对比,所述第一测试用例为与所述待写入测试用例的标识相同的测试用例;当所述第一测试用例的版本号大于所述待写入测试用例的版本号时,将所述目标区块同步至所述多个测试节点对应的所述多个测试节点账本。
可选的,所述区块链网络服务平台100,还用于当接收到待写入测试用例的测试指令时,根据所述测试指令,确定出所述待写入测试用例的标识信息和所述索引信息;根据所述标识信息和所述索引信息,从所述目标区块链中获取所述目标区块中的所述待写入测试用例;利用所述待写入测试用例执行相应的测试程序。
基于实施例一的同一发明构思下,本申请实施例提供一种区块链网络服务平台,如图12所示,图12为本申请实施例提出的一种区块链网络服务平台的组成结构示意图二,本申请实施例的区块链网络服务平台100包括:至少一个处理器10、至少一个存储器11及至少一个通信总线12。在具体的实施例的过程中,上述至少一个处理器11可以为特定用途集成电路(ASIC,Application Specific Integrated Circuit)、数字信号处理器(DSP,Digital Signal Processor)、数字信号处理终端(DSPD,Digital Signal ProcessingDevice)、可编程逻辑终端(PLD,Programmable Logic Device)、现场可编程门阵列(FPGA,Field P rogrammable Gate Array)、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。
在本申请的实施例中,上述至少一个通信总线12用于实现至少一个处理器10和至少一个存储器11之间的连接通信;至少一个存储器11,用于存储可执行指令;
至少一个处理器10,用于执行所述至少一个存储器11中存储的可执行指令,实现如实施例一所述的测试用例共享方法。
本申请实施例提供一种存储介质,上述存储介质存储有一个或者多个程序,上述一个或者多个程序可被一个或者多个处理器执行,应用于区块链网络服务平台中,该程序被至少一个处理器执行时实现如实施例一所述的测试用例共享方法。
可以理解的是,本申请实施例中的区块链网络服务平台通过将待写入测试用例写入目标区块中,并将该目标区块上链至目标区块链,使得目标区块链的多个测试节点都可以在目标区块中查找到待写入测试用例,当区块链中的部分测试节点出现故障时,区块链网络服务平台还可以从未出现故障的测试节点中获取到待写入测试用例,提高了区块链网络服务平台共享测试用例时的安全性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (18)

1.一种区块链网络服务平台的测试用例共享方法,其特征在于,所述方法包括:
当接收到待写入测试用例时,在主节点上验证所述待写入测试用例的合法性,所述待写入测试用例为对目标对象进行测试所需的测试流程信息;
当所述待写入测试用例验证为合法时,将所述测试用例广播至多个测试节点,以供所述多个测试节点对所述测试用例进行共识验证;
当所述多个测试节点对所述测试用例进行共识验证通过时,调用智能合约将所述待写入测试用例写入目标区块,并将所述目标区块上链至目标区块链,所述目标区块链为与所述待写入测试用例的标识信息相同的区块链。
2.根据权利要求1所述的方法,其特征在于,所述将所述测试用例广播至多个测试节点之后,所述方法还包括:
当所述多个测试节点对所述测试用例进行共识验证通过时,将所述待写入测试用例写入所述主节点对应的主节点账本和所述多个测试节点对应的多个测试节点账本,以供所述区块链网络服务平台从所述主节点账本和所述多个测试节点账本中获取到所述待写入测试用例。
3.根据权利要求1所述的方法,其特征在于,所述在主节点上验证所述待写入测试用例的合法性之前,所述方法还包括:
当所述区块链网络服务平台处于非工作状态时,确定主节点选举方式;
当所述主节点选举方式为第一选举方式时,接收主节点选举的确定指令;
将所述确定指令对应的测试节点作为所述主节点。
4.根据权利要求3所述的方法,其特征在于,所述确定主节点选举方式之后,所述方法还包括:
当所述主节点选举的方式为第二选举方式时,对所述多个测试节点广播主节点选举信息;
当接收到主节点选举信息对应的第一个响应信息时,将所述第一个响应信息对应的测试节点,确定为所述主节点。
5.根据权利要求1所述的方法,其特征在于,所述调用智能合约将所述待写入测试用例写入目标区块,并将所述目标区块上链至目标区块链,包括:
将所述目标区块的容量值与预设区块容量值进行对比,所述预设区块容量值为所述区块链网络服务平台对区块预设的容量值;
当所述目标区块的容量值大于所述预设区块容量值时,增加所述目标区块的容量值;
调用所述智能合约将所述待写入测试用例写入目标区块,所述目标区块为增加了容量值的目标区块;
根据所述目标区块链的预设上链形式和所述待写入测试用例,确定所述目标区块的索引信息;
根据所述索引信息将所述目标区块上链至目标区块链。
6.根据权利要求1所述的方法,其特征在于,所述调用智能合约将所述待写入测试用例写入目标区块,并将所述目标区块上链至目标区块链之后,所述方法还包括:
当获取到所述待写入测试用例的更新指令时,根据所述更新指令更新所述待写入测试用例,得到更新后的待写入测试用例;
利用所述主节点将所述更新后的待写入测试用例广播至所述多个测试节点,以供所述多个测试节点对所述更新后的待写入测试用例进行共识验证;
当所述更新后的待写入测试用例共识验证通过时,调用智能合约将所述更新后的待写入测试用例写入更新区块,并将所述更新区块上链至目标区块链。
7.根据权利要求1所述的方法,其特征在于,所述调用智能合约将所述待写入测试用例写入目标区块,并将所述目标区块上链至目标区块链之后,所述方法还包括:
当预设时间到达时,将所述多个测试节点账本中的第一测试用例的版本号与所述目标区块中的所述待写入测试用例的版本号进行对比,所述第一测试用例为与所述待写入测试用例的标识相同的测试用例;
当所述第一测试用例的版本号大于所述待写入测试用例的版本号时,将所述目标区块同步至所述多个测试节点对应的所述多个测试节点账本。
8.根据权利要求1所述的方法,其特征在于,所述调用智能合约将所述待写入测试用例写入目标区块,并将所述目标区块上链至目标区块链之后,所述方法还包括:
当接收到待写入测试用例的测试指令时,根据所述测试指令,确定出所述待写入测试用例的标识信息和所述索引信息;
根据所述标识信息和所述索引信息,从所述目标区块链中获取所述目标区块中的所述待写入测试用例;
利用所述待写入测试用例执行相应的测试程序。
9.一种区块链网络服务平台,其特征在于,所述区块链网络服务平台,用于当接收到待写入测试用例时,在主节点上验证所述待写入测试用例的合法性,所述待写入测试用例为对目标对象进行测试所需的测试流程信息;当所述待写入测试用例验证为合法时,将所述测试用例广播至多个测试节点,以供所述多个测试节点对所述测试用例进行共识验证;当所述多个测试节点对所述测试用例进行共识验证通过时,调用智能合约将所述待写入测试用例写入目标区块,并将所述目标区块上链至目标区块链,所述目标区块链为与所述待写入测试用例的标识信息相同的区块链。
10.根据权利要求9所述的区块链网络服务平台,其特征在于,
所述区块链网络服务平台,还用于当所述多个测试节点对所述测试用例进行共识验证通过时,将所述待写入测试用例写入所述主节点对应的主节点账本和所述多个测试节点对应的多个测试节点账本,以供所述区块链网络服务平台从所述主节点账本和所述多个测试节点账本中获取到所述待写入测试用例。
11.根据权利要求9所述的区块链网络服务平台,其特征在于,
所述区块链网络服务平台,还用于当所述区块链网络服务平台处于非工作状态时,确定出主节点选举方式;当所述主节点选举方式为第一选举方式时,接收主节点选举的确定指令;将所述确定指令对应的测试节点作为所述主节点。
12.根据权利要求11所述的区块链网络服务平台,其特征在于,
所述区块链网络服务平台,还用于当所述主节点选举的方式为第二选举方式时,对所述多个测试节点广播主节点选举信息;当接收到主节点选举信息对应的第一个响应信息时,将所述第一个响应信息对应的测试节点,确定为所述主节点。
13.根据权利要求9所述的区块链网络服务平台,其特征在于,
所述区块链网络服务平台,还用于将所述目标区块的容量值与预设区块容量值进行对比,所述预设区块容量值为所述区块链网络服务平台对区块预设的容量值;当所述目标区块的容量值大于所述预设区块容量值时,增加所述目标区块的容量值;调用所述智能合约将所述待写入测试用例写入目标区块,所述目标区块为增加了容量值的目标区块;根据所述目标区块链的预设上链形式和所述待写入测试用例,确定所述目标区块的索引信息;根据所述索引信息将所述目标区块上链至目标区块链。
14.根据权利要求9所述的区块链网络服务平台,其特征在于,
所述区块链网络服务平台,还用于当获取到所述待写入测试用例的更新指令时,根据所述更新指令更新所述待写入测试用例,得到更新后的待写入测试用例;利用所述主节点将所述更新后的待写入测试用例广播至所述多个测试节点,以供所述多个测试节点对所述更新后的待写入测试用例进行共识验证;当所述更新后的待写入测试用例共识验证通过时,调用智能合约将所述更新后的待写入测试用例写入更新区块,并将所述更新区块上链至目标区块链。
15.根据权利要求9所述的区块链网络服务平台,其特征在于,
所述区块链网络服务平台,还用于当预设时间到达时,将所述多个测试节点账本中的第一测试用例的版本号与所述目标区块中的所述待写入测试用例的版本号进行对比,所述第一测试用例为与所述待写入测试用例的标识相同的测试用例;当所述第一测试用例的版本号大于所述待写入测试用例的版本号时,将所述目标区块同步至所述多个测试节点对应的所述多个测试节点账本。
16.根据权利要求9所述的区块链网络服务平台,其特征在于,
所述区块链网络服务平台,还用于当接收到待写入测试用例的测试指令时,根据所述测试指令,确定出所述待写入测试用例的标识信息和所述索引信息;根据所述标识信息和所述索引信息,从所述目标区块链中获取所述目标区块中的所述待写入测试用例;利用所述待写入测试用例执行相应的测试程序。
17.一种区块链网络服务平台,其特征在于,所述区块链网络服务平台包括:
至少一个存储器,用于存储可执行指令;
至少一个处理器,用于执行所述至少一个存储器中存储的可执行指令,实现如权利要求1-8所述的区块链网络服务平台的测试用例共享方法。
18.一种存储介质,其特征在于,存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行权利要求1-8所述的方法。
CN201911025936.9A 2019-10-25 2019-10-25 区块链网络服务平台及其测试用例共享方法、存储介质 Pending CN111737104A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911025936.9A CN111737104A (zh) 2019-10-25 2019-10-25 区块链网络服务平台及其测试用例共享方法、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911025936.9A CN111737104A (zh) 2019-10-25 2019-10-25 区块链网络服务平台及其测试用例共享方法、存储介质

Publications (1)

Publication Number Publication Date
CN111737104A true CN111737104A (zh) 2020-10-02

Family

ID=72645673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911025936.9A Pending CN111737104A (zh) 2019-10-25 2019-10-25 区块链网络服务平台及其测试用例共享方法、存储介质

Country Status (1)

Country Link
CN (1) CN111737104A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256593A (zh) * 2020-12-18 2021-01-22 腾讯科技(深圳)有限公司 一种程序处理方法、装置、计算机设备和可读存储介质
CN112948252A (zh) * 2021-03-09 2021-06-11 上海万向区块链股份公司 基于联盟链存储的可视化用例管理方法、***及介质
CN112967137A (zh) * 2021-02-09 2021-06-15 北京大学 一种基于区块链的按需印刷装置及实现方法
CN113342694A (zh) * 2021-07-08 2021-09-03 中国工商银行股份有限公司 基于区块链的测试案例处理方法及装置
CN113485905A (zh) * 2021-02-26 2021-10-08 杜自然 数据交易中的测试方法、装置、设备以及计算机存储介质
CN114241248A (zh) * 2022-02-24 2022-03-25 北京市农林科学院信息技术研究中心 河蟹产地溯源方法及***
CN115632800A (zh) * 2022-12-22 2023-01-20 广东省电信规划设计院有限公司 基于区块链共识的物联网源端数据存储方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103118084A (zh) * 2013-01-21 2013-05-22 浪潮(北京)电子信息产业有限公司 一种主节点的选举方法及节点
CN106911728A (zh) * 2015-12-22 2017-06-30 华为技术服务有限公司 分布式***中主节点的选取方法和装置
US9934138B1 (en) * 2016-12-07 2018-04-03 International Business Machines Corporation Application testing on a blockchain
CN108537063A (zh) * 2018-02-26 2018-09-14 阿里巴巴集团控股有限公司 一种数据存储的方法、装置及设备
CN109543455A (zh) * 2018-11-06 2019-03-29 联动优势科技有限公司 一种区块链的数据归档方法及装置
CN110019235A (zh) * 2017-12-29 2019-07-16 百度在线网络技术(北京)有限公司 基于区块链的数据存储、恢复方法、装置、设备及介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103118084A (zh) * 2013-01-21 2013-05-22 浪潮(北京)电子信息产业有限公司 一种主节点的选举方法及节点
CN106911728A (zh) * 2015-12-22 2017-06-30 华为技术服务有限公司 分布式***中主节点的选取方法和装置
US9934138B1 (en) * 2016-12-07 2018-04-03 International Business Machines Corporation Application testing on a blockchain
CN110019235A (zh) * 2017-12-29 2019-07-16 百度在线网络技术(北京)有限公司 基于区块链的数据存储、恢复方法、装置、设备及介质
CN108537063A (zh) * 2018-02-26 2018-09-14 阿里巴巴集团控股有限公司 一种数据存储的方法、装置及设备
CN109543455A (zh) * 2018-11-06 2019-03-29 联动优势科技有限公司 一种区块链的数据归档方法及装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256593A (zh) * 2020-12-18 2021-01-22 腾讯科技(深圳)有限公司 一种程序处理方法、装置、计算机设备和可读存储介质
CN112256593B (zh) * 2020-12-18 2021-04-02 腾讯科技(深圳)有限公司 一种程序处理方法、装置、计算机设备和可读存储介质
CN112967137A (zh) * 2021-02-09 2021-06-15 北京大学 一种基于区块链的按需印刷装置及实现方法
CN112967137B (zh) * 2021-02-09 2023-08-25 北京大学 一种基于区块链的按需印刷装置及实现方法
CN113485905A (zh) * 2021-02-26 2021-10-08 杜自然 数据交易中的测试方法、装置、设备以及计算机存储介质
CN113485905B (zh) * 2021-02-26 2023-09-05 杜自然 数据交易中的测试方法、装置、设备以及计算机存储介质
CN112948252A (zh) * 2021-03-09 2021-06-11 上海万向区块链股份公司 基于联盟链存储的可视化用例管理方法、***及介质
CN113342694A (zh) * 2021-07-08 2021-09-03 中国工商银行股份有限公司 基于区块链的测试案例处理方法及装置
CN114241248A (zh) * 2022-02-24 2022-03-25 北京市农林科学院信息技术研究中心 河蟹产地溯源方法及***
CN114241248B (zh) * 2022-02-24 2022-07-01 北京市农林科学院信息技术研究中心 河蟹产地溯源方法及***
CN115632800A (zh) * 2022-12-22 2023-01-20 广东省电信规划设计院有限公司 基于区块链共识的物联网源端数据存储方法及装置

Similar Documents

Publication Publication Date Title
CN108965468B (zh) 区块链网络服务平台及其链码安装方法、存储介质
CN111104386B (zh) 一种文件存储方法、终端及存储介质
CN111737104A (zh) 区块链网络服务平台及其测试用例共享方法、存储介质
US11615195B2 (en) Systems and methods for providing multi-node resiliency for blockchain peers
CN113169952B (zh) 一种基于区块链技术的容器云管理***
CN111294379B (zh) 区块链网络服务平台及其权限托管方法、存储介质
US20180308091A1 (en) Fairness preserving byzantine agreements
CN109472572B (zh) 基于区块链主链加并行多子链的合约***
WO2019021792A1 (ja) 運用管理方法、運用管理システム、および、運用管理プログラム
CN112527912B (zh) 基于区块链网络的数据处理方法、装置及计算机设备
CN109493052B (zh) 一种基于主链加并行多子链的跨链合约***
CN112075062A (zh) 区块链网络中的自动提交交易管理
CN110597918A (zh) 一种账户管理方法、装置及计算机可读存储介质
CN110730081B (zh) 基于区块链网络的证书吊销方法、相关设备及介质
US20210374112A1 (en) Migration support system, migration support method, and node
CN111628886A (zh) 私有云环境下组建区块链网络的方法、装置、计算机设备
US20200394162A1 (en) Operation management method for distributed ledger system, operation management system for distributed ledger system, and operation management program for distributed ledger system
CN114363162B (zh) 区块链日志的生成方法及装置、电子设备、存储介质
WO2021201827A1 (en) Method and apparatus maintaining private data with consortium blockchain
WO2023082883A1 (zh) 跨区块链处理事务的方法、装置、计算机设备、计算机存储介质及计算机程序产品
CN115001707B (zh) 基于区块链的设备认证方法和相关设备
CN113590711A (zh) 一种高弹性可扩展的多链数据分级共享存储***及方法
CN112291327A (zh) 区块链节点管理方法、装置及电子设备
CN112565211B (zh) 区块链网络服务平台及信息处理方法、设备、存储介质
CN114579354A (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