CN114157581A - 提供区块链服务的方法、装置、存储介质和电子设备 - Google Patents

提供区块链服务的方法、装置、存储介质和电子设备 Download PDF

Info

Publication number
CN114157581A
CN114157581A CN202010928915.4A CN202010928915A CN114157581A CN 114157581 A CN114157581 A CN 114157581A CN 202010928915 A CN202010928915 A CN 202010928915A CN 114157581 A CN114157581 A CN 114157581A
Authority
CN
China
Prior art keywords
service
target
blockchain
component
user
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
CN202010928915.4A
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 Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network 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 Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010928915.4A priority Critical patent/CN114157581A/zh
Publication of CN114157581A publication Critical patent/CN114157581A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5051Service on demand, e.g. definition and deployment of services in real time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components

Abstract

本申请提供一种提供区块链服务的方法、装置、存储介质和电子设备,应用于区块链服务平台,获得用户的服务需求;根据服务需求从预先配置的多个相互独立的服务组件中选取至少一个目标服务组件;其中,每一个服务组件均用于实现区块链服务平台的一种基础功能;组合至少一个目标服务组件,得到满足服务需求的目标区块链服务;向用户提供目标区块链服务。本方案通过构建多个相互独立的服务组件实现各种基础功能,通过组合服务组件为用户提供相应的区块链服务。通过这种方式,本方案降低了不同基础功能之间的耦合程度,使平台运营方可以通过对应的服务组件单独管理各个基础功能。

Description

提供区块链服务的方法、装置、存储介质和电子设备
技术领域
本发明涉及区块链技术领域,特别涉及一种提供区块链服务的方法、装置、存储介质和电子设备。
背景技术
区块链服务(又称区块链即服务,Blockchain as a Service,BaaS)平台是一种结合了区块链技术的云服务平台。BaaS平台的平台运营方可以为需要建立专有的区块链网络的用户(可以是组织或个人)分配一定的网络资源,并基于网络资源为用户提供区块链服务(例如构建并管理专有的区块链网络)。
现有的BaaS平台,一般是针对每个区块链网络运行专有的应用程序,从而为接入这个区块链网络的各个用户提供区块链服务。一种区块链服务一般需要通过执行BaaS平台的多种基础功能来实现,对应的,提供特定区块链服务的应用程序需要包含实现相关的每一种基础功能的代码,导致应用程序中各种基础功能的代码之间相互耦合,不便于对独立地管理(包括但不限于维护和更新)各基础功能。
发明内容
基于上述现有技术缺点,本申请提供一种提供区块链服务的方法、装置、存储介质和电子设备,以提供一种能够单独管理各种基础功能的区块链服务解决方案。
本申请第一方面提供一种提供区块链服务的方法,应用于区块链服务平台,包括:
获得用户的服务需求;
从预先配置的多个相互独立的服务组件中选取至少一个目标服务组件;其中,每一个所述服务组件均用于实现所述区块链服务平台的一种基础功能;所述目标服务组件满足所述用户的服务需求;
组合所述至少一个目标服务组件,得到目标区块链服务;
向所述用户提供所述目标区块链服务。
可选的,所述区块链服务平台存储有多个区块链业务场景对应的场景配置信息,所述场景配置信息用于记录和对应的区块链业务场景关联的每一个服务组件的名称;
其中,所述根据所述服务需求从预先配置的多个服务组件中选取至少一个目标服务组件,包括:
解析所述服务需求得到所述服务需求对应的目标区块链业务场景;
查找得到所述目标区块链业务场景所对应的场景配置信息,将所述场景配置信息所记录的每一个服务组件均确定为目标服务组件。
可选的,每一个所述服务组件均定义有至少一个输入接口;
其中,所述组合所述至少一个目标服务组件,得到满足所述服务需求的目标区块链服务,包括:
针对每两个所述目标服务组件,根据所述两个目标服务组件的输入接口和对应的基础功能,确定所述两个目标服务组件的调用关系;其中,所述至少一个目标服务组件和所述目标服务组件之间的调用关系,作为目标区块链服务。
可选的,所述向所述用户提供所述目标区块链服务,包括:
将所述目标区块链服务导出为可调用的目标网络服务;
在所述用户调用所述目标网络服务的应用程序接口后,执行所述目标网络服务。
可选的,所述向所述用户提供所述目标区块链服务之前,还包括:
获取所述用户的用户权限;
若所述用户的用户权限,包括每一个所述目标服务组件的使用权限,执行所述向所述用户提供所述目标区块链服务;
若所述用户的用户权限未包括任意一个或多个所述目标服务组件的使用权限,禁止向所述用户提供所述目标区块链服务。
本申请第二方面提供一种提供区块链服务的装置,应用于区块链服务平台,所述装置包括:
获得单元,用于获得用户的服务需求;
选取单元,用于从预先配置的多个相互独立的服务组件中选取至少一个目标服务组件;其中,每一个所述服务组件均用于实现所述区块链服务平台的一种基础功能;所述目标服务组件满足所述用户的服务需求;
组合单元,用于组合所述至少一个目标服务组件,得到目标区块链服务;
提供单元,用于向所述用户提供所述目标区块链服务。
可选的,所述区块链服务平台存储有多个区块链业务场景对应的场景配置信息,所述场景配置信息用于记录和对应的区块链业务场景关联的每一个服务组件的名称;
其中,所述选取单元根据所述服务需求从预先配置的多个服务组件中选取至少一个目标服务组件时,具体用于:
解析所述服务需求得到所述服务需求对应的目标区块链业务场景;
查找得到所述目标区块链业务场景所对应的场景配置信息,将所述场景配置信息所记录的每一个服务组件均确定为目标服务组件。
可选的,每一个所述服务组件均定义有至少一个输入接口;
其中,所述组合单元组合所述至少一个目标服务组件,得到满足所述服务需求的目标区块链服务时,具体用于:
针对每两个所述目标服务组件,根据所述两个目标服务组件的输入接口和对应的基础功能,确定所述两个目标服务组件的调用关系;其中,所述至少一个目标服务组件和所述目标服务组件之间的调用关系,作为目标区块链服务。
可选的,所述提供单元向所述用户提供所述目标区块链服务时,具体用于:
将所述目标区块链服务导出为可调用的目标网络服务;
在所述用户调用所述目标网络服务的应用程序接口后,执行所述目标网络服务。
本申请第三方面提供一种存储介质,用于存储程序,所述程序被执行时,用于实现本申请第一方面任意一项所提供的提供区块链服务的方法。
本申请第四方面提供一种服务器,包括存储器和处理器;
其中,所述存储器用于存储程序;
所述处理器用于执行所述程序,所述程序被执行时,具体用于实现本申请第一方面任意一项所提供的提供区块链服务的方法。
本申请提供一种提供区块链服务的方法、装置、存储介质和电子设备,应用于区块链服务平台,获得用户的服务需求;根据服务需求从预先配置的多个相互独立的服务组件中选取至少一个目标服务组件;其中,每一个服务组件均用于实现区块链服务平台的一种基础功能;组合至少一个目标服务组件,得到满足服务需求的目标区块链服务;向用户提供目标区块链服务。本方案通过构建多个相互独立的服务组件实现各种基础功能,通过组合服务组件为用户提供相应的区块链服务。通过这种方式,本方案降低了不同基础功能之间的耦合程度,使平台运营方可以通过对应的服务组件单独管理各个基础功能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的多个企业用户组成的区块链网络的示意图;
图2为本申请实施例提供的一种提供区块链服务的方法的流程图;
图3为本申请实施例提供的BaaS平台的框架示意图;
图4为本申请实施例提供的服务组件模型的示意图;
图5为本申请实施例提供的部分服务组件和对应的基础功能的示意图;
图6为本申请实施例提供的提供区块链服务的装置的结构示意图;
图7为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
区块链服务平台(又称Blockchain as a Service,BaaS平台)是现有的一种基于区块链技术的云服务平台。一般的,BaaS平台的平台运营方会在自身的服务器集群上部署BaaS平台。多个存在业务往来的用户可以通过网络访问BaaS平台,并向BaaS平台提出建立专用的区块链网络的需要,然后BaaS平台运行根据这些用户的需要编写的应用程序,从而为这些用户建立专用的区块链网络,并对建立好的区块链网络进行管理(包括但不限于用户进入或离开区块链网络,用户上传或查询数据等),然后这些用户就可以作为区块链服务提供方通过这个专用的区块链网络实现业务往来。
如图1所示,存在业务往来的企业A,企业B和企业C可以在BaaS平台组建一个区块链网络,后续三方的数据交互可以通过这个区块链网络实现,另外,如图1所示,在获得授权的基础上,其他企业也可以加入这个区块链网络,从而增加这个区块链网络的成员。
进一步的,上述用户,即区块链服务提供方,一般应当理解为集体用户,或者说组织,例如,用户可以是有关机构或企业,这些区块链服务提供者还会向个体的客户提供进一步的服务,例如,企业会向个人出售产品,有关机构会向个人提供某些领域的办理或咨询业务。在区块链网络中,这些个人可以作为区块链服务消费方通过客户端接入区块链服务提供方的节点,从而获得区块链服务提供方提供的服务,同时,区块链服务提供方为区块链服务消费方提供服务时产生的数据会作为区块记录在这个区块链网络的区块链中。
现有的BaaS平台,一般是针对特定的用户,根据用户提供的需求文档编写特定的应用程序,然后通过运行应用程序为这些用户提供区块链服务,即建立和维护区块链网络。
而提供区块链服务会涉及BaaS平台的多种基础功能,对应的,在现有的这种方式中,应用程序需要包含区块链服务所涉及的每一种基础功能的实现代码,并且不同基础功能所对应的实现代码之间往往相互耦合,具体表现为不同的基础功能的实现代码可能会访问应用程序中相同的变量,导致难以有效的对不同基础功能的实现代码进行隔离,使得对应用程序中特定基础功能的维护比较困难。
另一方面,现有的这种方式一般要求用户在提供的需求文档中对需要建立的区块链网络进行较为详细的说明,这就需要用户对区块链技术充分了解才能提供满足要求的需求文档,用户若不了解区块链技术则难以提供需求文档,这就导致现有的这种方式只能适用于特定的某些用户,并且对于用户而言用户体验较差。
针对上述现有技术的问题,本申请提供一种提供区块链服务的方法,请参考图2,该方法包括以下步骤:
首先需要说明的是,本申请任一实施例提供的方法,其执行主体均可以认为是区块链服务平台。
S201、获得用户的服务需求。
用户可以通过网络访问区块链服务平台,并在区块链服务平台所提供的网页的输入框中输入服务需求信息,然后由区块链服务平台解析得到服务需求。
例如,输入的服务需求信息可以是,“我要建一个网络”,则区块链服务平台解析得到的服务需求是建立区块链网络;输入的服务需求信息也可以是“我要查询企业A的信息”,则区块链服务平台解析得到的需求就是针对企业A所属的区块链网络进行数据查询。
BaaS平台也可以在网页上显示平台所能提供的每一项区块链服务所对应的虚拟按钮,用户可以通过点击虚拟按钮向BaaS平台提出服务需求。
S202、从预先配置的多个相互独立的服务组件中选取至少一个目标服务组件。
其中,每一个服务组件均用于实现区块链服务平台的一种基础功能;目标服务组件满足用户的服务需求。
需要说明的是,每一个目标服务组件均只能部分满足用户的服务需求,因此,需要将各个目标服务组件组合为目标区块链服务,使各个目标服务组件之间可以相互调用,分别实现自身对应的基础功能,由此才能够完全满足用户的服务需求。
区块链服务平台可以预先存储和多个区块链业务场景对应的场景配置信息,其中每一个区块链业务场景均对应有一个场景配置信息,场景配置信息用于记录和对应的区块链业务场景关联的每一个服务组件的名称。
基于此,步骤S202的具体执行过程可以是:
解析服务需求得到服务需求对应的目标区块链业务场景;
查找得到目标区块链业务场景所对应的场景配置信息,将场景配置信息所记录的每一个服务组件均确定为目标服务组件。
服务组件设置于BaaS平台的服务层,如图3所示,本申请提供的区块链服务平台的框架包括数据层,业务逻辑层,服务层,组合服务层和接口层。
其中,数据层用于提供通过服务组件的方式实现BaaS平台的各项基础功能的所需要的底层构架,数据层数据库,区块链网络运行的服务支撑以及区块链网络中的各个用户的证书文件的存储等。
业务逻辑层主要用于提供各个服务组件的底层逻辑,如图3所示,这些底层逻辑包括证书管理,组织管理等。
服务层则用于提供对应于BaaS平台的每一项基础功能的服务组件,图3示出了12种服务组件。可以理解的,在本申请的其他实施例中,根据建立服务组件的方式的不同,以及不同BaaS平台的基础功能的差异,对应的服务组件可能比图3所示的12种服务组件更多,本申请对此不做限定。
组合服务层则用于执行本申请任一实施例所提供的方法,也就是用于选取服务组件,将选取的服务组件组合为区块链服务并通过接口层的接口提供给用户。
如图3所示,组合服务层可以组合得到的区块链服务可以包括加入区块链网络,创建区块链网络,导出SDK(Software Development Kit,软件开发工具包),以及其他由用户自定义的区块链服务。
接口层用于设置BaaS平台的多个服务接口,组合服务层组合得到的区块链服务可以和接口层的服务接口相关联,然后用户就可以通过访问或者调用服务接口的方式触发对应的区块链服务。
S203、组合至少一个目标服务组件,得到目标区块链服务。
每一个服务组件均定义有至少一个输入接口和至少一个输出接口。
步骤S203的具体执行过程可以是:
针对每两个目标服务组件,根据两个目标服务组件的输入接口和输出接口,确定两个目标服务组件的调用关系;其中,至少一个目标服务组件和目标服务组件之间的调用关系,作为目标区块链服务。
针对任意两个服务组件A和B,这两个服务组件之间的调用关系包括,服务组件A调用服务组件B,服务组件B调用服务组件A,以及服务组件A和服务组件B之间不存在调用关系。
需要说明的是,服务组件的模型如图4所示,在组合目标服务组件时,各个目标服务组件可能相互独立(例如图4中的服务组件2,服务组件3和服务组件4),也可能分别用于组合为不同的区块链服务,例如图4中服务组件1和服务组件2组合为区块链服务1,服务组件2至服务组件4组合为区块链服务2,对于后一种情况,可以直接将现有的区块链服务1和区块链服务2进行组合,从而获得区块链服务3。
S204、向用户提供目标区块链服务。
具体的,获得目标区块链服务之后,可以将目标区块链服务导出为目标网络服务,并将这个目标网络服务和BaaS平台预设的应用程序接口(Application ProgrammingInterface,API)进行关联,由此,用户就可以通过调用API的方式触发BaaS平台执行目标网络服务,从而为用户提供对应的目标区块链服务。
可选的,每一个服务组件均可以预先设置对应的使用权限,以便控制该服务组件只能被具有使用权限的用户调用。
在为每一个服务组件配置了使用权限的情况下,在执行步骤S204之前,可以先获得用户的用户权限。一个用户的用户权限,可以涵盖授权给该用户使用的每一个服务组件的使用权限。例如,如果该用户是管理员用户,则该用户的用户权限包括系统中所有服务组件的使用权限,也就是说管理员用户可以调用系统中的所有服务组件。
获得用户权限之后,可以逐一在用户权限中查找每一个目标服务组件的使用权限,若该用户的用户权限包含每一个目标服务组件的使用权限,就表示本次获取的每一个目标服务组件均已授权给该用户调用,这种情况下可以直接执行步骤S204,向该用户提供由目标服务组件组合成的目标区块链服务。
若选取的多个目标服务组件中有一个或多个目标服务组件的使用权限未包括在该用户的用户权限中,就说明这些目标服务组件未授权给该用户调用,这种情况下就需要禁止该用户调用这些未授权的目标服务组件,而目标区块链服务由多个目标服务组件组成,用户使用目标区块链服务时必然会调用其中的每一个目标区块链服务。
因此,在判断出选取的多个目标服务组件中有一个或多个目标服务组件的使用权限未包括在该用户的用户权限中之后,就需要禁止向该用户提供目标区块链服务,从而禁止用户调用其中未被授权的目标服务组件。
一方面,本申请提供的方案中,各个基础功能的实现代码均封装于对应的服务组件内,各个服务组件之间相互独立,仅通过输出数据和输入数据进行交互,不存在不同服务组件访问相同的变量的问题。因此,本方案降低了不同基础功能之间的耦合程度,使平台运营方可以通过对应的服务组件单独管理各个基础功能。
另一方面,基于预设的多种区块链业务场景所对应的配置信息,BaaS平台可以根据用户提供的简单的服务需求信息进行服务组件的选取和组合,从而为用户提供区块链服务。也就是说,本方案不需要用户提供编写特定的应用程序所需的需求文档,就可以为用户提供区块链服务,有效的降低了用户使用BaaS平台的门槛,使用户不需要了解区块链技术也可以通过BaaS平台获得相应的区块链服务。
下面结合具体的例子对本申请实施例所提供的方法进行说明。
针对步骤S202,本申请所提供的方法中,BaaS平台可以设置有12中服务组件,下面对这些服务组件进行说明。
服务组件1为创建区块链基础网络,这个服务组件运行时,具体包括生成配置信息(配置信息包括但不限于加入这个被创建的区块链网络的各个组织的公钥和私钥),生成区块链的初始区块(又称创世区块),启动区块链网络的共识网络节点。
在私有的区块链网络中,共识网络节点用于对其他节点生成的区块进行认证,一个区块只有在通过所有共识网络节点的认证之后,才能添加至区块链中。网络节点可以是任意一台接入区块链网络的设备。一般的,私有的区块链网络中,共识网络节点可以是BaaS平台的某些服务器,也可以是加入这个区块链网络的某些组织所持有的某些网络节点。
新建的区块链基础网络包括共识节点和至少一个组织,每个组织包括至少一个接入这个区块链基础网络的网络节点。每一个组织均对应有唯一的权威认证(CertificationAuthority,简称CA)证书,CA证书中记录有该组织的公钥和私钥,组织的CA证书用于在区块链网络中唯一的标识该组织的身份。一个组织所对应的每一个网络节点,均可以利用该组织的CA证书接入区块链网络并和区块链网络中的其他网络节点进行数据交互。
本方案中,BaaS平台可以在创建区块链基础网络时利用Fabric-CA(一种现有的证书生成工具)为组织生成对应的CA证书。
服务组件1的运行过程包括,加载配置文件模板,然后将配置文件模板中对应位置的信息替换为组织提供的输入信息,从而得到该组织对应的配置文件。
本方案中,每一个服务组件运行时需要的输入信息通过输入接口的方式规定,服务组件输出的信息也通过输出接口的方式规定。
对于上述服务组件1,规定的输入接口包括共识类型,设备信息和组织的公钥和私钥,其中,共识类型可以是Raft或者Kafka,设定共识类型后,BaaS平台可以根据共识类型自动定义共识节点的信息。设备信息又包括组织信息和该组织对应的每个网络节点的节点信息,组织信息包括组织名称和组织名称的英文缩写,节点信息包括节点名称,节点名称的英文缩写,以及节点在BaaS平台的数据库管理系统中的组织名和密码(BaaS平台可以采用任意一种现有的数据库管理系统,例如CouchDB)。
以上信息均由组织提供,因此,若一个区块链服务包括创建区块链基础网络这一服务组件,则BaaS平台会在这个区块链服务的应用程序接口的接口规则中规定调用该区块链服务的组织需要提供上述信息,从而保证创建区块链基础网络这一服务组件正确运行。
后续的其他服务组件类似,若某一服务组件运行时需要使用组织输入的信息,则BaaS平台会在包含这个服务组件的区块链服务的应用程序接口中增加相应的规定,以提示每一个调用这个区块链服务的组织均能够提供合适的输入信息。
获得配置文件后,服务组件1会为组织生成CA证书,然后创建区块链中的初始区块(也可以称为创世区块),最后生成区块链基础网络的第一个通道的配置交易文件。从而完成基础区块链网络的创建。
组织的CA证书包括组织的公钥和私钥,还包括组织的MSP(Membership ServiceProvider,成员关系服务提供者)信息和TLS(Transport Layer Security,传输层安全协议)信息。
服务组件1输出接口包括创建好的基础区块链网络中的共识节点的地址,以及配置交易文件的路径。
服务组件2是公私钥生成组件,用于根据组织的配置文件生成对应的组织的公钥和私钥,如前文所述,组织的CA证书记录包含该组织的公钥和私钥,因此,前述服务组件1在生成组织的CA证书之前,需要获得服务组件2生成的公钥和私钥。
服务组件3是新增组织组件,该组件用于将一个组织添加至一个现有的区块链网络中。新增组织组件的输入接口和创建区块链基础网络组件的输入接口一致,新增组织组件可以根据输入的组织信息和模板文件,生成该组织对应的CA证书,如前文所述,组织的CA证书包括组织的MSP信息和TLS信息。新增组织组件的输出接口为组织的CA证书。
服务组件4是新增节点组件,利用新增节点组件,组织可以将一个节点添加至已有的区块链网络中。新增节点组件的输入接口包括需要添加的节点的节点信息(由组织输入)和组织的CA证书,新增节点组件可以将输入的节点信息更新至组织的CA证书中,使得该节点可以利用组织的CA证书接入区块链网络。新增节点组件的输出接口为记录有新增节点的节点信息的CA证书。
服务组件5为创建区块链通道组件。在一个区块链网络中,多个网络节点之间可以组成多个不同的区块链通道,每个区块链通道的节点均可以在获得授权后访问这个区块链网络的区块链,但是不同的区块链通道之间存在数据隔离,即某个区块链通道中网络节点之间的数据交互对于其他区块链通道的网络节点是不可知的。
创建区块链通道组件可以用于在已有的区块链网络中创建一个区块链通道,由于一个区块链网络至少需要有一个区块链通道,因此,前述服务组件1(即创建基础区块链网络组件)会在生成一个区块链网络的初始区块之后,调用服务组件5为这个初始区块创建一个对应的区块链通道。
服务组件5的输入接口包括区块链网络的共识节点的地址,通道名称,通道的配置交易文件(或者通道配置文件)的路径,以及通道对应的组织的CA证书的路径。
其中,若输入的是通道配置文件的路径,则服务组件5会根据通道配置文件生成通道配置交易文件。
服务组件5会根据共识节点的地址启动共识节点,并基于通道名称,通道配置交易文件和组织的CA证书生成需要创建的通道的初始区块,从而完成区块链通道的创建。
服务组件5的输出接口为创建的区块链通道的初始区块。
需要说明的是,区块链通道的初始区块连接在对应的区块链网络的初始区块之后,区块链通道的初始区块和区块链网络的初始区块不是同一区块。
服务组件6为加入通道组件,组织可以通过该组件将对应的节点添加至已有的区块链通道中。加入通道组件的输入接口为要加入的区块链通道的初始区块,以及要加入的节点的节点信息。服务组件6可以在要加入的区块链通道的初始区块中记录输入的节点信息,使节点加入区块链通道。
服务组件7是退出通道组件,任意一个组织的任意一个节点均可以通过退出通道组件从已加入的区块链通道中退出,节点退出一个区块链通道后,该节点将不再参与这个区块链通道的任何操作,并且,若一个节点从区块链网络的所有通道中退出,则这个节点也无法连接到区块链网络。
退出通道组件的输入接口为需要退出的节点所对应的组织信息和节点信息。
退出通道组件的工作流程为,首先读取通道的配置信息(一般为加密的pb文件),然后对pb文件进行解码得到可编辑的json文件,从json文件中删除输入的节点信息,再将删除后的json文件转换为pb文件,对pb文件进行签名,然后将pb文件提交至区块链网络,最后停止目标节点(即要退出区块链通道的节点)的服务,从而完成目标节点退出区块链通道的操作。
服务组件8为安装智能合约组件,该组件用于为指定的某个区块链通道(记为目标通道)所连接的各个节点安装智能合约。安装智能合约组件的输入接口包括,智能合约版本号,编程语言(智能合约可以利用不同的编程语言编写,安装智能合约时可以选择其中某一种),智能合约代码(可以理解为智能合约的安装包,由BaaS平台提供),目标通道的通道名称,目标通道所连接的各个组织的CA证书,智能合约名称(可以由组织指定),目标通道的各个共识节点的名称,以及实例化智能合约所需的初始参数。
获得以上输入信息后,服务组件8会检测智能合约的版本号和智能合约名称是否重复,若不重复则调用软件开发工具包(SDK)在目标通道的各个节点上安装智能合约。
服务组件9为实例化智能合约组件,实例化智能合约组件的输入接口和前述安装智能合约组件的输入接口基本一致,从安装智能合约组件的输入接口中删除智能合约代码,剩余的输入接口就是实例化智能合约组件的输入接口。
实例化智能合约组件可以对每一个已经安装智能合约的节点中的智能合约进行实例化,使得智能合约在该节点生效。
具体的,实例化智能合约组件会对每一个已安装智能合约的节点检测该节点安装的智能合约是否发生错误,若未发生错误则对这个节点的智能合约进行实例化,然后更新当前最新的智能合约的版本。
服务组件10为个人注册组件。当前述组织为企业或相关机构等集体组织时,组织所对应的每个节点就对应于这些集体组织所包含的个体,例如企业的员工。这些节点可以通过节点注册组件进行注册,从而获得访问区块链网络的权限,节点注册组件包括需要注册的个体(如企业员工)的名称,密码,所对应的企业,以及在企业中所属的部门(部门为可选项,用于对不同个体进行分类)。
服务组件11为SDK配置信息导出组件,通过这个组件,组织可以下载用于实现下述任意一种或多种功能的软件开发工具包(SDK):
数据上链,查询链上数据,事件监控,个人注册以及个人信息查询。
SDK配置信息导出组件的输入接口包括组织信息,节点信息和通道信息。
以上的多个服务组件中,部分服务组件所对应的基础功能的示意图可以参阅图5。
另外,本申请提供的BaaS平台还包括:
升级智能合约组件,用于对指定通道内的各个节点的智能合约进行升级。
个人登录组件,用于为组织所包含的某个个人提供登陆至区块链网络的功能,个人可以通过输入名称和密码登录区块链网络。
数据上链组件,用于将数据记录在区块链网络的区块链中。
数据查询组件,用于从区块链网络的区块链中查找数据。
证书管理组件,用于对区块链上各个组织的公私钥证书进行管理。可以上传下载。
修改区块配置信息组件,用于通过修改配置信息,生成新的配置区块。
基于上述预先定义的服务组件,本申请所提供的BaaS平台可以通过从其中选取服务组件并进行组合的方式实现多种区块链服务。如前文所述,BaaS平台是基于预设的区块链业务场景实现服务组件的选取和组合的,下面结合一个特定的区块链业务场景说明前述实施例中选取目标服务组件以及向用户提供目标区块链服务的具体过程:
一种常见的区块链业务场景是,某个企业用户申请创建该用户的私有区块链网络,简称为创建网络,这种区块链业务场景下,用户的服务需求是,创建一个当前只包含该用户的区块链网络,其中有至少一个区块链通道,并且包括该用户的至少一个节点,并且创建成功后该区块链网络允许其他用户加入。
这种区块链业务场景所对应的配置信息中记录的服务组件包括:公私钥生成组件,创建区块链基础网络组件,新增用户组件,新增节点组件,创建区块链通道组件和加入通道组件。
通过配置信息确定出上述目标服务组件之后,就可以执行图2对应的实施例中的步骤S203,以确定各目标服务组件之间的调用关系。
具体的,创建区块链基础网络组件的输入接口包括用户的公钥和私钥,而公私钥生成组件可以生成一个用户的公钥和私钥,因此可以确定创建区块链基础网络组件和公私钥生成组件之间的调用关系为公私钥生成组件调用创建区块链基础网络组件,也就是说为了满足该用户的服务需求,需要先运行公私钥生成组件生成该用户的公钥和私钥,然后再调用创建区块链基础网络组件创建一个新的区块链网络。
进一步的,新增用户组件,新增节点组件所对应的基础功能均需要基于已有的区块链网络实现,同时,新增节点组件的输入接口包括用户的CA证书,而新增用户组件可以生成新增的用户的CA证书,因此,可以确定新增节点组件和新增用户组件之间的调用关系为新增用户组件调用新增节点组件,并且新增用户组件又被创建区块链基础网络组件调用,即先创建区块链基础网络,然后再对已创建的区块链基础网络新增用户。
加入通道组件用于将节点添加至已有的区块链通道中,因此,需要首先运行创建区块链通道组件以在区块链基础网络中建立区块链通道,所以在上述业务场景中,创建区块链通道组件和加入通道组件之间的调用关系是创建区块链通道组件调用加入通道组件。区块链通道需要在已有的区块链网络中创建,因此创建区块链通道组件被创建区块链基础网络组件调用。另外,创建区块链通道和在区块链网络中新增用户和节点之间没有联系,因此创建区块链通道组件和新增用户组件之间,以及创建区块链通道组件和新增节点组件之间均没有调用关系。
确定了上述调用关系后,BaaS平台就可以基于调用关系将这些目标服务组件组合并导出为一个网络服务(也可以称为web服务),然后向用户提供这个网络服务的应用程序接口,即API,同时BaaS平台可以在应用程序接口中规定调用该接口的用户需要提供前述共识类型、用户信息和节点信息等输入数据。
在此基础上,前述需要创建区块链网络的企业用户可以调用上述应用程序接口并提供规定的输入信息,然后BaaS平台就可以基于这些输入信息以及上述各个目标服务组件之间的调用关系,依次为这个企业用户生成公钥和私钥,创建区块链基础网络,新增用户和节点,创建通道并将节点添加至区块链通道中,从而为这个企业用户提供满足其服务需求的区块链服务,也就是为其创建一个私有的区块链网络,并等待其他用户加入。
区块链服务平台运营过程中还会涉及其他的一些区块链业务场景,下面列举一些常见的区块链业务场景及其对应的配置信息:
区块链业务场景一,加入已有的区块链网络,配置信息中涉及的服务组件包括:公私钥生成组件,修改区块配置信息组件,新增用户组件,新增节点组件,加入通道组件。其中修改区块配置信息组件用于将公私钥生成组件输出的用户的公钥和私钥添加至已有的区块链网络的配置区块中。
上述服务组件的调用关系为,公私钥生成组件调用修改区块配置信息组件,修改区块配置信息组件调用新增用户组件,新增用户组件调用新增节点组件,新增节点之后,新增节点组件调用加入通道组件,从而将新增的节点加入已有的区块链网络的某个区块链通道中,从而为用户提供加入已有区块链网络的区块链服务。
区块链业务场景二,数据上链,对应的配置信息中涉及的服务组件包括:个人注册组件,个人登录组件,和数据上链组件。
区块链业务场景三,数据查询,对应的配置信息中涉及的服务组件包括:个人注册组件,个人登录组件,和数据查询组件。
区块链业务场景四,链上区块查询,对应的配置信息中涉及的服务组件包括:个人注册组件,个人登录组件,和数据查询组件。
其中,数据查询业务场景主要是对查询指定区块所包含的所有数据,即进行数据的横向查询,而链上区块查询是按特定条件查询与指定区块中的指定数据相关联的以往的区块,即进行数据的纵向查询。
个人用户进行数据的上传和查询均需要进行身份认证,因此,在上述区块链业务场景中,若个人用户未注册,则需要调用个人注册组件进行注册,若已注册,则需要调用个人登录组件进行身份认证,身份认证通过后,个人登录组件再调用后续的数据上链组件或数据查询组件进行数据上传或查询。
业务场景五,升级智能合约,对应的配置信息中涉及的服务组件包括:升级智能合约组件,安装智能合约组件和实例化智能合约组件。
要升级区块链通道中每个节点的智能合约,需要首先升级智能合约代码,然后将升级后的智能合约代码安装至区块链通道的每一个节点,最后再对安装好的智能合约进行实例化。因此,上述三个服务组件的调用关系为,升级智能合约组件对智能合约代码进行升级,然后调用安装智能合约组件安装升级后的智能合约代码,最后调用实例化智能合约组件对每个节点的智能合约进行实例化。
另外,本申请提供的区块链服务平台也可以通过下述方式组合多个服务组件并为用户提供区块链服务:
区块链服务平台可以预先将前述服务组件1至服务组件9等9个服务组件组合为一个一键完成服务,任意一个新用户访问区块链服务平台时,可以直接调用一键完成服务对应的应用程序接口,从而实现包括创建网络,创建通道,加入通道,智能合约安装和智能合约发布在内的过程。
结合前述实施例所述的提供区块链服务的方法,本申请实施例还提供一种提供区块链服务的装置,请参考图6,该装置可以包括以下单元:
获得单元601,用于获得用户的服务需求。
选取单元602,用于从预先配置的多个相互独立的服务组件中选取至少一个目标服务组件。
其中,每一个服务组件均用于实现区块链服务平台的一种基础功能;目标服务组件满足用户的服务需求。
组合单元603,用于组合至少一个目标服务组件,得到目标区块链服务。
提供单元604,用于向用户提供目标区块链服务。
区块链服务平台存储有多个区块链业务场景对应的场景配置信息,场景配置信息用于记录和对应的区块链业务场景关联的每一个服务组件的名称;
其中,选取单元602根据服务需求从预先配置的多个服务组件中选取至少一个目标服务组件时,具体用于:
解析服务需求得到服务需求对应的目标区块链业务场景;
查找得到目标区块链业务场景所对应的场景配置信息,将场景配置信息所记录的每一个服务组件均确定为目标服务组件。
每一个服务组件均定义有至少一个输入接口;
其中,组合单元603组合至少一个目标服务组件,得到满足服务需求的目标区块链服务时,具体用于:
针对每两个目标服务组件,根据两个目标服务组件的输入接口和对应的基础功能,确定两个目标服务组件的调用关系;其中,至少一个目标服务组件和目标服务组件之间的调用关系,作为目标区块链服务。
提供单元604向用户提供目标区块链服务时,具体用于:
将目标区块链服务导出为可调用的目标网络服务;
在用户调用目标网络服务的应用程序接口后,执行目标网络服务。
本申请实施例的提供区块链服务的装置,其具体工作原理可以参考本申请实施例提供的提供区块链服务的方法,此处不再赘述。
本申请提供一种提供区块链服务的装置,应用于区块链服务平台,获得单元601获得用户的服务需求;选取单元602根据服务需求从预先配置的多个相互独立的服务组件中选取至少一个目标服务组件;其中,每一个服务组件均用于实现区块链服务平台的一种基础功能;组合单元603组合至少一个目标服务组件,得到满足服务需求的目标区块链服务;提供单元604向用户提供目标区块链服务。本方案通过构建多个相互独立的服务组件实现各种基础功能,通过组合服务组件为用户提供相应的区块链服务。通过这种方式,本方案降低了不同基础功能之间的耦合程度,使平台运营方可以通过对应的服务组件单独管理各个基础功能。
本申请实施例还提供一种存储介质,用于存储程序,存储的程序被执行时,具体用于实现本申请实施例所提供的提供区块链服务的方法。
本申请实施例还提供一种服务器,请参考图7,服务器包括存储器701和处理器702.
其中,存储器701用于存储程序。
处理器702用于执行程序,程序被执行时,具体用于实现本申请实施例所提供的提供区块链服务的方法。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种提供区块链服务的方法,其特征在于,应用于区块链服务平台,所述方法包括:
获得用户的服务需求;
从预先配置的多个相互独立的服务组件中选取至少一个目标服务组件;其中,每一个所述服务组件均用于实现所述区块链服务平台的一种基础功能;所述目标服务组件满足所述用户的服务需求;
组合所述至少一个目标服务组件,得到目标区块链服务;
向所述用户提供所述目标区块链服务。
2.根据权利要求1所述的方法,其特征在于,所述区块链服务平台存储有多个区块链业务场景对应的场景配置信息,所述场景配置信息用于记录和对应的区块链业务场景关联的每一个服务组件的名称;
其中,所述根据所述服务需求从预先配置的多个服务组件中选取至少一个目标服务组件,包括:
解析所述服务需求得到所述服务需求对应的目标区块链业务场景;
查找得到所述目标区块链业务场景所对应的场景配置信息,将所述场景配置信息所记录的每一个服务组件均确定为目标服务组件。
3.根据权利要求1所述的方法,其特征在于,每一个所述服务组件均定义有至少一个输入接口;
其中,所述组合所述至少一个目标服务组件,得到满足所述服务需求的目标区块链服务,包括:
针对每两个所述目标服务组件,根据所述两个目标服务组件的输入接口和对应的基础功能,确定所述两个目标服务组件的调用关系;其中,所述至少一个目标服务组件和所述目标服务组件之间的调用关系,作为目标区块链服务。
4.根据权利要求1所述的方法,其特征在于,所述向所述用户提供所述目标区块链服务,包括:
将所述目标区块链服务导出为可调用的目标网络服务;
在所述用户调用所述目标网络服务的应用程序接口后,执行所述目标网络服务。
5.根据权利要求1所述的方法,其特征在于,所述向所述用户提供所述目标区块链服务之前,还包括:
获取所述用户的用户权限;
若所述用户的用户权限,包括每一个所述目标服务组件的使用权限,执行所述向所述用户提供所述目标区块链服务;
若所述用户的用户权限未包括任意一个或多个所述目标服务组件的使用权限,禁止向所述用户提供所述目标区块链服务。
6.一种提供区块链服务的装置,其特征在于,应用于区块链服务平台,所述装置包括:
获得单元,用于获得用户的服务需求;
选取单元,用于从预先配置的多个相互独立的服务组件中选取至少一个目标服务组件;其中,每一个所述服务组件均用于实现所述区块链服务平台的一种基础功能;所述目标服务组件满足所述用户的服务需求;
组合单元,用于组合所述至少一个目标服务组件,得到目标区块链服务;
提供单元,用于向所述用户提供所述目标区块链服务。
7.根据权利要求6所述的装置,其特征在于,所述区块链服务平台存储有多个区块链业务场景对应的场景配置信息,所述场景配置信息用于记录和对应的区块链业务场景关联的每一个服务组件的名称;
其中,所述选取单元根据所述服务需求从预先配置的多个服务组件中选取至少一个目标服务组件时,具体用于:
解析所述服务需求得到所述服务需求对应的目标区块链业务场景;
查找得到所述目标区块链业务场景所对应的场景配置信息,将所述场景配置信息所记录的每一个服务组件均确定为目标服务组件。
8.根据权利要求6所述的装置,其特征在于,每一个所述服务组件均定义有至少一个输入接口;
其中,所述组合单元组合所述至少一个目标服务组件,得到满足所述服务需求的目标区块链服务时,具体用于:
针对每两个所述目标服务组件,根据所述两个目标服务组件的输入接口和对应的基础功能,确定所述两个目标服务组件的调用关系;其中,所述至少一个目标服务组件和所述目标服务组件之间的调用关系,作为目标区块链服务。
9.一种存储介质,其特征在于,用于存储程序,所述程序被执行时,用于实现如权利要求1至5任意一项所述的提供区块链服务的方法。
10.一种服务器,其特征在于,包括存储器和处理器;
其中,所述存储器用于存储程序;
所述处理器用于执行所述程序,所述程序被执行时,具体用于实现如权利要求1至5任意一项所述的提供区块链服务的方法。
CN202010928915.4A 2020-09-07 2020-09-07 提供区块链服务的方法、装置、存储介质和电子设备 Pending CN114157581A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010928915.4A CN114157581A (zh) 2020-09-07 2020-09-07 提供区块链服务的方法、装置、存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010928915.4A CN114157581A (zh) 2020-09-07 2020-09-07 提供区块链服务的方法、装置、存储介质和电子设备

Publications (1)

Publication Number Publication Date
CN114157581A true CN114157581A (zh) 2022-03-08

Family

ID=80460380

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010928915.4A Pending CN114157581A (zh) 2020-09-07 2020-09-07 提供区块链服务的方法、装置、存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN114157581A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107888681A (zh) * 2017-11-09 2018-04-06 北京中电普华信息技术有限公司 一种业务流程处理方法及装置
CN108989389A (zh) * 2018-06-11 2018-12-11 北京航空航天大学 一种建立智能合约微服务化的方法
CN109886689A (zh) * 2019-03-05 2019-06-14 阿里巴巴集团控股有限公司 基于区块链的数据存证、取证方法及装置
KR20190142653A (ko) * 2018-06-18 2019-12-27 주식회사 비즈모델라인 Pos 기반 블록체인을 이용한 서비스 제공 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107888681A (zh) * 2017-11-09 2018-04-06 北京中电普华信息技术有限公司 一种业务流程处理方法及装置
CN108989389A (zh) * 2018-06-11 2018-12-11 北京航空航天大学 一种建立智能合约微服务化的方法
KR20190142653A (ko) * 2018-06-18 2019-12-27 주식회사 비즈모델라인 Pos 기반 블록체인을 이용한 서비스 제공 방법
CN109886689A (zh) * 2019-03-05 2019-06-14 阿里巴巴集团控股有限公司 基于区块链的数据存证、取证方法及装置

Similar Documents

Publication Publication Date Title
Maesa et al. Blockchain based access control services
Almorsy et al. Collaboration-based cloud computing security management framework
US9111086B2 (en) Secure management of user rights during accessing of external systems
CN111580820B (zh) 一种小程序生成方法和装置
CN108351771B (zh) 维持对于在部署到云计算环境期间的受限数据的控制
CN109598117A (zh) 权限管理方法、装置、电子设备及存储介质
CN108351807B (zh) 维持对云计算环境中的受限数据的控制的事件管理
US20140013387A1 (en) Efficient single sign-on and identity provider configuration and deployment in a database system
CN113297550A (zh) 权限控制的方法、装置、设备、存储介质及程序产品
US20110093367A1 (en) Method, apparatus, and computer product for centralized account provisioning
CN111680310B (zh) 一种权限控制的方法及装置、电子设备、存储介质
WO2021027532A1 (zh) 一种智能合约的权限验证方法及装置
US20200233699A1 (en) Platform-based change management
CN109005058A (zh) 一种智能系统管控平台及管控方法
CN114726632B (zh) 一种登录方法、设备及存储介质
Truong et al. On analyzing and developing data contracts in cloud-based data marketplaces
KR20210141601A (ko) 라이센스 분석을 위한 시스템들 및 방법들
CN105681291B (zh) 一种实现多客户端统一认证方法及系统
CN114157581A (zh) 提供区块链服务的方法、装置、存储介质和电子设备
US11757976B2 (en) Unified application management for heterogeneous application delivery
KR102349344B1 (ko) 데이터화 된 변수를 활용한 소스코드 자동 생성 시스템 및 방법
JP2007004786A (ja) 顧客サポートシステム及び顧客サポート方法
CN113986327A (zh) 小程序管理方法、装置、第三方平台及存储介质
CN112887130A (zh) 微服务管理方法及装置
CN110083589A (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