一种区块链的证书管理方法及装置与流程

文档序号:30418290发布日期:2022-06-15 12:13阅读:150来源:国知局
一种区块链的证书管理方法及装置与流程

1.本发明涉及区块链(block chain)技术领域,尤其涉及一种区块链的证书管理方法及装置。


背景技术:

2.近些年来,随着区块链技术的日益成熟,越来越多的区块链应用出现在人们的视野之中。根据具体的应用场景及业务需求,企业或者组织会选用私有链、联盟链、公有链的作为应用底层的技术架构。其中,联盟链由于其交易速度快、扩展性高、易于运行与维护的技术特点,得到了广泛的应用。联盟链通常由特定的联盟或者组织成员进行参与,因此其参与的节点、客户端以及用户的身份验证尤为重要,而身份验证的主要方式就是依靠各类证书来实现。
3.目前,联盟链与微服务结合的模式已经成为主要的技术发展方向,其分布式的特性可以实现底层技术架构的快速迭代、便捷容错及敏捷开发等功能。而当前的联盟链证书管理模式不能够很好的适应这种灵活的应用需求,传统的联盟链证书管理方式为将相关证书存放在指定路径下,当整个链运行时通过配置文件或者其他方式读取该路径下的证书,当出现需要适配不同机构的证书的需求时,只能通过更新链的相关配置来实现,整个过程十分繁琐。


技术实现要素:

4.本发明实施例提供一种区块链的证书管理方法及装置,用以提高证书管理的效率,降低区块链的时间成本。
5.第一方面,本发明实施例提供一种区块链的证书管理方法,包括:
6.获取客户端发送的交易请求;所述交易请求包括待处理的交易;
7.判断所述待处理的交易对应的证书插件的插件状态是否为可用,若否,则将所述交易请求放入预设的消息队列中,直到确定所述待处理的交易对应的证书插件的插件状态为可用时,将所述交易请求发送给排序节点进行处理。
8.上述技术方案中,通过将证书封装为插件的形式,并根据证书插件的插件状态来适配不同的证书,从而可以实现无需更新区块链的配置文件,即可灵活适配不同的证书,提高证书管理效率。
9.可选的,在所述获取客户端发送的交易请求之前,还包括:
10.获取区块链中各机构的证书;
11.根据配置的场景及业务,将所述证书封装为证书插件;
12.将所述证书插件以动态库的形式存储到区块链中。
13.可选的,所述方法还包括:
14.通过证书插件管理接口监听所述动态库中对证书插件的操作;
15.将监听到的操作的协议转换为与所述证书插件的证书机构方相同的协议。
16.可选的,所述方法还包括:
17.在监听到场景和/或业务发生变化时,将发生变化后的场景和/或业务对应的证书插件的插件状态设置为可用。
18.可选的,所述方法还包括:
19.在所述区块链的共识模块初始化时,加载当前场景和/或业务所需的证书插件。
20.第二方面,本发明实施例提供一种区块链的证书管理装置,包括:
21.获取单元,用于获取客户端发送的交易请求;所述交易请求包括待处理的交易;
22.处理单元,用于判断所述待处理的交易对应的证书插件的插件状态是否为可用,若否,则将所述交易请求放入预设的消息队列中,直到确定所述待处理的交易对应的证书插件的插件状态为可用时,将所述交易请求发送给排序节点进行处理。
23.可选的,所述处理单元还用于:
24.在所述获取客户端发送的交易请求之前,获取区块链中各机构的证书;
25.根据配置的场景及业务,将所述证书封装为证书插件;
26.将所述证书插件以动态库的形式存储到区块链中。
27.可选的,所述处理单元还用于:
28.通过证书插件管理接口监听所述动态库中对证书插件的操作;
29.将监听到的操作的协议转换为与所述证书插件的证书机构方相同的协议。
30.可选的,所述处理单元还用于:
31.在监听到场景和/或业务发生变化时,将发生变化后的场景和/或业务对应的证书插件的插件状态设置为可用。
32.可选的,所述处理单元还用于:
33.在所述区块链的共识模块初始化时,加载当前场景和/或业务所需的证书插件。
34.第三方面,本发明实施例还提供一种计算设备,包括:
35.存储器,用于存储程序指令;
36.处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述区块链的证书管理方法。
37.第四方面,本发明实施例还提供一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述区块链的证书管理方法。
附图说明
38.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1为本发明实施例提供的一种系统架构的示意图;
40.图2为本发明实施例提供的一种区块链的证书管理方法的流程示意图;
41.图3为本发明实施例提供的一种区块链交易处理的示意图;
42.图4为本发明实施例提供的一种区块链的证书管理装置的结构示意图。
具体实施方式
43.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
44.图1为本发明实施例提供的一种系统架构。如图1所示,该系统架构可以包括上层应用、成员管理、证书服务、链码服务、共识服务以及账本存储等单元模块;
45.其中,上层应用可以提供api、操作界面和日志管理等功能。
46.成员管理可以实现联盟链中各成员的注册和证书服务交互的功能。
47.证书服务可以实现证书管理和证书状态管理,该证书状态也可以称为插件状态。
48.链码服务用于提供安全容器执行环境以及安全镜像文件仓库。
49.共识服务主要提供p2p协议、分布式账本、排序服务和背书验证等服务。
50.账本存储可以提供分布式存储、关系型数据库、kv数据库、ipfs等存储功能。
51.需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。
52.基于上述描述,图2详细的示出了本发明实施例提供的一种区块链的证书管理方法的流程,该流程可以由区块链的证书管理装置执行。
53.如图2所示,该流程具体包括:
54.步骤201,获取客户端发送的交易请求。
55.在本发明实施例中,该交易请求中包括待处理的交易。在获取该客户端发送的交易请求之前,需要先将证书进行封装,具体的,可以获取区块链中各机构的证书,然后根据配置的场景及业务,将证书封装为证书插件,最后将证书插件以动态库的形式存储在区块链中。
56.当区块链中的共识模块初始化时,就可以同时加载当前场景和/或业务所需的证书插件。其中,每个证书插件都配备有其使用的场景及业务类型,当有对应的场景和对应业务的交易请求到来时,可以自行调用该证书插件。
57.为了能够灵活的适配不同场景和业务时使用的证书插件时,可以在监听到场景和/或业务发生变化时,将发生变化后的场景和/或业务对应的证书插件的插件状态设置为可用,同时将发生变化前的场景和/或业务对应的证书插件的插件状态设置为不可用。
58.也就是说,当ca服务或应用证书需求发生变化时,无需修改链的配置文件,只需要对相关证书插件进行增删改操作,系统监听到插件的变化可以对插件状态进行动态更新。
59.为了便于不同主体对证书进行统一操作,可以证书插件管理接口监听动态库中对证书插件的操作,然后将监听到的操作对应的协议转换为与所述证书插件的证书机构方相同的协议,即可以针对常用的证书方法(证书申请、证书更新、证书吊销)进行抽象,以适配调用不同的证书机构方的协议。
60.步骤202,判断所述待处理的交易对应的证书插件的插件状态是否为可用,若否,则将所述交易请求放入预设的消息队列中,直到确定所述待处理的交易对应的证书插件的插件状态为可用时,将所述交易请求发送给排序节点进行处理。
61.在得到交易请求之后,需要先判断交易请求中待处理的交易对应的证书插件是否可用,若可用,可以直接将该交易请求发送给排序节点进行后续处理。若不可用,则需要先
将交易请求放入预设的消息队列中,同时继续监听插件状态,直到确定待处理的交易对应的证书插件的插件状态为可用时,将该交易请求发送给排序节点进行处理,即排序交易并生成区块。
62.在具体实施过程中,插件状态发生变化时,系统生成一个该插件的中间件,当区块链收到的交易请求中操作涉及到该插件中的证书方法时会被该中间件拦截,并将该交易请求存放到预设的消息队列(本发明实施例可以使用redis)中,等到证书插件的插件状态更新完成时依次从redis取出并执行后续操作。
63.为了更好的适配区块链的可插拔的共识框架特性,系统将证书插件模块与共识框架进行绑定。通过修改区块链的共识模块(consensus)路径下的controller包代码,在共识模块初始化方法中加载配套的证书插件,从而实现证书模块与共识算法的动态关联。
64.本发明实施例中提供的证书管理方法,可以将联盟链运行中所需的证书集成到插件中,为链系统运行中对各类证书实现动态管理,同时提供统一管理接口,为相关技术人员进行开发与维护。将证书插件与公式框架进行动态绑定,可以满足联盟链向可插拔微服务方向发展的高扩展性需求。
65.为了更好的解释本发明实施例,下面将在具体的实施场景下来描述上述区块链的证书管理的过程。
66.如图3所示,具体步骤包括:
67.步骤1,提交交易提案。
68.步骤2,返回背书结果。
69.应用程序和背书节点相互交互,用以实现交易背书。
70.步骤3,提交签名背书和交易。
71.应用程序向区块链提交签名背书和交易请求。
72.区块链判断该交易请求中的交易对应的证书的插件状态是否可用,若可用,则转入步骤4。否则询问是否继续交易,若不继续交易,则结束交易。若继续交易,则将该交易请求放入消息队列中,同时区块链系统监听插件状态,在确定插件状态可用时,释放交易,将交易发送给排序节点。
73.步骤4,排序交易并生成区块。
74.排序节点对交易进行排序并生成区块。
75.步骤5,广播区块。
76.排序节点广播区块。
77.步骤6,同步区块。
78.区块链中的各节点同步区块。
79.在本发明实施例中,获取客户端发送的交易请求,交易请求包括待处理的交易,判断待处理的交易对应的证书插件的插件状态是否为可用,若否,则将交易请求放入预设的消息队列中,直到确定待处理的交易对应的证书插件的插件状态为可用时,将交易请求发送给排序节点进行处理。通过将证书封装为插件的形式,并根据证书插件的插件状态来适配不同的证书,从而可以实现无需更新区块链的配置文件,即可灵活适配不同的证书,提高证书管理效率。
80.基于相同的技术构思,图4示例性的示出了本发明实施例提供的一种区块链的证
书管理装置的结构,该装置可以执行区块链的证书管理流程。
81.如图4所示,该装置具体包括:
82.获取单元401,用于获取客户端发送的交易请求;所述交易请求包括待处理的交易;
83.处理单元402,用于判断所述待处理的交易对应的证书插件的插件状态是否为可用,若否,则将所述交易请求放入预设的消息队列中,直到确定所述待处理的交易对应的证书插件的插件状态为可用时,将所述交易请求发送给排序节点进行处理。
84.可选的,所述处理单元402还用于:
85.在所述获取客户端发送的交易请求之前,获取区块链中各机构的证书;
86.根据配置的场景及业务,将所述证书封装为证书插件;
87.将所述证书插件以动态库的形式存储到区块链中。
88.可选的,所述处理单元402还用于:
89.通过证书插件管理接口监听所述动态库中对证书插件的操作;
90.将监听到的操作的协议转换为与所述证书插件的证书机构方相同的协议。
91.可选的,所述处理单元402还用于:
92.在监听到场景和/或业务发生变化时,将发生变化后的场景和/或业务对应的证书插件的插件状态设置为可用。
93.可选的,所述处理单元402还用于:
94.在所述区块链的共识模块初始化时,加载当前场景和/或业务所需的证书插件。
95.基于相同的技术构思,本发明实施例还提供了一种计算设备,包括:
96.存储器,用于存储程序指令;
97.处理器,用于调用存储器中存储的程序指令,按照获得的程序执行上述区块链的证书管理方法。
98.基于相同的技术构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行计算机可读指令时,使得计算机执行上述区块链的证书管理方法。
99.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
100.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
101.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
102.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
103.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1