首页 / 专利库 / 资料储存系统 / 区块链 / 区块链网络的管控方法、装置、设备及存储介质

链网络的管控方法、装置、设备及存储介质

阅读:583发布:2020-05-11

专利汇可以提供链网络的管控方法、装置、设备及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种 区 块 链 网络的管控方法、装置、设备及存储介质,所述区块链网络的管控系统至少包括:第一控制台,用于管控第一组织内的区块链网络 节点 ,第二控制台,用于管控第二组织内的区块链网络节点;所述方法包括:通过所述第一控制台对所述第一组织的第一管控数据进行多维度拆分,以获得对应于分享维度的分类结果;通过所述第一控制台确定所述第二控制台的分享权限对应的分享维度;基于对应所述分享维度的分类结果,通过所述第一控制台获取对应于所述分享维度的第一管控数据,以形成向所述第二控制台同步的第一管控数据,通过本发明,能够简化控制台对管控数据的处理逻辑,并实现多组织之间不同类型管控数据的安全共享。,下面是链网络的管控方法、装置、设备及存储介质专利的具体信息内容。

1.一种链网络的管控方法,其特征在于,所述区块链网络的管控系统至少包括:
第一控制台,用于管控第一组织内的区块链网络节点
第二控制台,用于管控第二组织内的区块链网络节点;
所述方法包括:
通过所述第一控制台对所述第一组织的第一管控数据进行多维度拆分,以获得对应于分享维度的分类结果;
通过所述第一控制台确定所述第二控制台的分享权限对应的分享维度;
基于对应所述分享维度的分类结果,通过所述第一控制台获取对应于所述分享维度的第一管控数据,以形成向所述第二控制台同步的第一管控数据。
2.根据权利要求1所述的方法,其特征在于,所述通过所述第一控制台对所述第一组织的第一管控数据进行多维度拆分,包括:
通过所述第一控制台将所述第一管控数据拆分为以下分享维度中的至少之一:
对应于参与所述区块链网络的所有组织的网络管控数据;对应于通道内参与组织的通道管控数据;对应于合约参与组织的合约管控数据;组织管控数据。
3.根据权利要求2所述的方法,其特征在于,所述通过所述第一控制台确定所述第二控制台的分享权限对应的分享维度,包括:
当所述第二控制台和所述第一控制台参与相同的通道,且所述第二控制台的分享权限是所述第二控制台相对于所述第一控制台的分享权限时,通过所述第一控制台确定所述第二控制台的分享权限所对应的分享维度是通道管控数据;
当所述第二控制台和所述第一控制台共享相同的合约,且所述第二控制台的分享权限是所述第二控制台相对于所述第一控制台的分享权限时,通过所述第一控制台确定所述第二控制台的分享权限所对应的分享维度是合约管控数据。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
通过所述第一控制台将所述第一组织的第一管控数据发送到所述第二控制台;
通过所述第一控制台从所述第二控制台获取所述第二组织的第二管控数据。
5.根据权利要求4所述的方法,其特征在于,所述第一组织部署有对应于所述第一控制台的第一数据库,所述第二组织部署有对应于所述第二控制台的第二数据库,所述方法还包括:
通过所述第一控制台与所述第二控制台之间的安全连接,向所述第二控制台发送所述第一控制台的第一公钥,并接收所述第二控制台的第二公钥;
所述通过所述第一控制台将所述第一组织的第一管控数据发送到所述第二控制台,包括:
通过所述第一控制台将所述第一组织的经过第二公钥加密的第一管控数据发送到第一数据库,以使
所述第一数据库将经过加密的第一管控数据同步到所述第二数据库,并使所述第二控制台接收经过加密的第一管控数据,通过第二控制台的第二私钥对经过加密的第一管控数据进行解密,以获得所述第一管控数据,并应用到所述第二组织内的区块链网络服务。
6.根据权利要求5所述的方法,其特征在于,所述接收所述第二控制台的第二公钥,包括:
通过所述安全连接向所述第二控制台发送公钥分享请求
当所述第二控制台同意所述公钥分享请求时,接收所述第二控制台通过所述安全连接发送的第二公钥。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当所述第一控制台加入所述区块链网络时,通过所述第一控制台获取所述区块链网络中第二组织的第二控制台的身份信息;
通过所述身份信息中包括的认证信息,对所述第二控制台进行验证;
当验证成功时,开放所述第一组织所处局域网中对应所述第二控制台的访问权限,并获取所述第二控制台的访问方式,所述访问方式包括所述第二控制台的公网地址和端口。
8.根据权利要求7所述的方法,其特征在于,所述通过所述第一控制台将所述第一组织的经过第二公钥加密的第一管控数据发送到第一数据库,以使所述第一数据库将经过加密的第一管控数据同步到所述第二数据库,包括:
通过所述第一控制台将所述第一组织的经过第二公钥加密的第一管控数据提交到部署于所述第一组织的第一数据库,
以使所述第一数据库根据所述第二控制台的公网地址和端口,将所述第一管控数据同步到部署于所述第二组织的第二数据库。
9.根据权利要求5所述的方法,其特征在于,所述通过所述第一控制台将所述第一组织的经过第二公钥加密的第一管控数据发送到第一数据库,包括:
通过所述第一控制台发送所述第一管控数据至对应于所述第一控制台的第一代理服务器,以使
所述第一代理服务器获取对应于所述第二控制台的分享维度的第一管控数据;
通过所述第一代理服务器加密对应于所述第二控制台的分享维度的第一管控数据,得到经过第二公钥加密的第一管控数据;
通过所述第一代理服务器将加密后的第一管控数据发布到所述第一组织的第一数据库。
10.根据权利要求5所述的方法,其特征在于,所述通过所述第一控制台从所述第二控制台获取所述第二组织的第二管控数据,包括:
当所述第二控制台将所述第二组织的经过第一公钥加密的第二管控数据发送到所述第二数据库,并通过所述第二数据库同步到所述第一数据库时,
通过所述第一控制台接收经过加密的第二管控数据,并通过第一控制台的第一私钥对经过加密的第二管控数据进行解密,以从所述第一数据库获取所述第二组织的第二管控数据,并
将所述第二管控数据应用到所述第一组织内的区块链网络服务。
11.根据权利要求10所述的方法,其特征在于,所述通过所述第一控制台接收经过加密的第二管控数据,包括:
通过所述第一控制台的第一代理服务器监控所述第一数据库;
当所述第一数据库中的数据发生更新时,通过所述第一代理服务器接收数据更新消息;
通过所述第一代理服务器从所述第一数据库中获取对应于所述数据更新消息的经过加密的第二管控数据。
12.一种区块链网络的管控装置,其特征在于,包括:
维度拆分模块,用于:
通过所述第一控制台对第一组织的第一管控数据进行多维度拆分,以获得对应于分享维度的分类结果;
通过所述第一控制台确定所述第二控制台的分享权限对应的分享维度;
基于对应所述分享维度的分类结果,通过所述第一控制台获取对应于所述分享维度的第一管控数据,以形成向所述第二控制台同步的第一管控数据。
13.一种区块链网络的管控设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至11任一项所述的区块链网络的管控方法。
14.一种存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至11任一项所述的区块链网络的管控方法。

说明书全文

链网络的管控方法、装置、设备及存储介质

[0001] 本申请是申请号为201910853552.X,申请日为2019年09月10日,名称为:区块链网络的管控方法、装置、设备及存储介质的分案申请。

技术领域

[0002] 本发明涉及区块链技术,尤其涉及一种区块链网络的管控方法、装置、设备及存储介质。

背景技术

[0003] 联盟链与公有链是当前区块链的两种主要形态,在联盟链的使用场景中,各个参与组织一般分布在多个地域,相关技术的中心化区块链管控平台很难满足联盟链的需求,因此分布式联盟链控制台已经成为未来联盟链控制台的一种发展趋势,作为联盟链的控制台,其往往需要获取网络中多方组织的管控信息,在相关技术中,一般直接采用控制台对各个组织的管控数据进行交换,但是无法保证不同类型管控数据分享的安全性。

发明内容

[0004] 本发明实施例提供一种区块链网络的管控方法、装置、设备及存储介质,能够简化控制台对管控数据的处理逻辑,并实现组织之间不同类型管控数据的安全性共享。
[0005] 本发明实施例的技术方案是这样实现的:
[0006] 本发明实施例提供一种区块链网络的管控方法,
[0007] 所述区块链网络的管控系统至少包括:
[0008] 第一控制台,用于管控第一组织内的区块链网络节点
[0009] 第二控制台,用于管控第二组织内的区块链网络节点;所述方法包括:
[0010] 通过所述第一控制台对所述第一组织的第一管控数据进行多维度拆分,以获得对应于分享维度的分类结果;
[0011] 通过所述第一控制台确定所述第二控制台的分享权限对应的分享维度;
[0012] 基于对应所述分享维度的分类结果,通过所述第一控制台获取对应于所述分享维度的第一管控数据,以形成向所述第二控制台同步的第一管控数据。
[0013] 本发明实施例提供一种区块链网络的管控装置,包括:
[0014] 维度拆分模块,用于:
[0015] 通过所述第一控制台对第一组织的第一管控数据进行多维度拆分,以获得对应于分享维度的分类结果;
[0016] 基于对应所述分享维度的分类结果,通过所述第一控制台获取对应于所述分享维度的第一管控数据,以形成向所述第二控制台同步的第一管控数据。
[0017] 在上述方案中,所述维度拆分模块,还用于:
[0018] 通过所述第一控制台将所述第一管控数据拆分为以下分享维度中的至少之一:对应于参与所述区块链网络的所有组织的网络管控数据;对应于通道内参与组织的通道管控数据;对应于合约参与组织的合约管控数据;组织管控数据。
[0019] 在上述方案中,所述维度拆分模块,还用于:
[0020] 当所述第二控制台和所述第一控制台参与相同的通道,且所述第二控制台的分享权限是所述第二控制台相对于所述第一控制台的分享权限时,通过所述第一控制台确定所述第二控制台的分享权限所对应的分享维度是通道管控数据;
[0021] 当所述第二控制台和所述第一控制台共享相同的合约,且所述第二控制台的分享权限是所述第二控制台相对于所述第一控制台的分享权限时,通过所述第一控制台确定所述第二控制台的分享权限所对应的分享维度是合约管控数据。
[0022] 在上述方案中,所述装置还包括:
[0023] 管控数据发送模块,用于通过所述第一控制台将所述第一组织的第一管控数据发送到所述第二控制台;
[0024] 管控数据接收模块,用于通过所述第一控制台从所述第二控制台获取所述第二组织的第二管控数据。
[0025] 在上述方案中,所述装置还包括:
[0026] 公钥发送模块,用于通过所述第一控制台与所述第二控制台之间的安全连接,向所述第二控制台发送所述第一控制台的第一公钥;
[0027] 公钥接收模块,用于通过所述第一控制台与所述第二控制台之间的安全连接,接收所述第二控制台的第二公钥;
[0028] 所述管控数据发送模块,还用于:
[0029] 通过所述第一控制台将所述第一组织的经过第二公钥加密的第一管控数据发送到第一数据库,以使
[0030] 所述第一数据库将经过加密的第一管控数据同步到所述第二数据库,并使[0031] 所述第二控制台接收经过加密的第一管控数据,通过第二控制台的第二私钥对经过加密的第一管控数据进行解密,以获得所述第一管控数据,并应用到所述第二组织内的区块链网络服务;其中,所述第一组织部署有对应于所述第一控制台的第一数据库,所述第二组织部署有对应于所述第二控制台的第二数据库。
[0032] 在上述方案中,所述管控数据接收模块,还用于:
[0033] 当所述第二控制台将所述第二组织的经过第一公钥加密的第二管控数据发送到所述第二数据库,并通过所述第二数据库同步到所述第一数据库时,
[0034] 通过所述第一控制台接收经过加密的第二管控数据,并通过第一控制台的第一私钥对经过加密的第二管控数据进行解密,以从所述第一数据库获取所述第二组织的第二管控数据,并
[0035] 将所述第二管控数据应用到所述第一组织内的区块链网络服务。
[0036] 在上述方案中,所述公钥接收模块,还用于:
[0037] 通过所述安全连接向所述第二控制台发送公钥分享请求
[0038] 当所述第二控制台同意所述公钥分享请求时,接收所述第二控制台通过所述安全连接发送的第二公钥。
[0039] 在上述方案中,所述装置还包括:
[0040] 控制台访问模块,用于:
[0041] 当所述第一控制台加入所述区块链网络时,通过所述第一控制台获取所述区块链网络中第二组织的第二控制台的身份信息;
[0042] 通过所述身份信息中包括的认证信息,对所述第二控制台进行验证;
[0043] 当验证成功时,开放所述第一组织所处局域网中对应所述第二控制台的访问权限,并获取所述第二控制台的访问方式,所述访问方式包括所述第二控制台的公网地址和端口。
[0044] 在上述方案中,所述管控数据发送模块,还用于:
[0045] 通过所述第一控制台将所述第一组织的经过第二公钥加密的第一管控数据提交到部署于所述第一组织的第一数据库,
[0046] 以使所述第一数据库根据所述第二控制台的公网地址和端口,将所述第一管控数据同步到部署于所述第二组织的第二数据库。
[0047] 在上述方案中,所述管控数据发送模块,还用于:
[0048] 通过所述第一控制台发送所述第一管控数据至对应于所述第一控制台的第一代理服务器,以使
[0049] 所述第一代理服务器获取对应于所述第二控制台的分享维度的第一管控数据;
[0050] 通过所述第一代理服务器加密对应于所述第二控制台的分享维度的第一管控数据,得到经过第二公钥加密的第一管控数据;
[0051] 通过所述第一代理服务器将加密后的第一管控数据发布到所述第一组织的第一数据库。
[0052] 在上述方案中,所述管控数据接收模块,还用于:
[0053] 通过所述第一控制台的第一代理服务器监控所述第一数据库;
[0054] 当所述第一数据库中的数据发生更新时,通过所述第一代理服务器接收数据更新消息;
[0055] 通过所述第一代理服务器从所述第一数据库中获取对应于所述数据更新消息的经过加密的第二管控数据。
[0056] 本发明实施例提供一种区块链网络的管控设备,包括:
[0057] 存储器,用于存储可执行指令;
[0058] 处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的区块链网络的管控方法。
[0059] 本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的区块链网络的管控方法。
[0060] 本发明实施例具有以下有益效果:
[0061] 通过本发明实施例,区块链网络中各个组织拥有自己的区块链控制台,通过对管控数据进行维度拆分,实现了不同类型管控数据在各个控制台之间的安全数据共享。附图说明
[0062] 图1是本发明实施例提供的区块链网络200的应用系统100的可选示意图;
[0063] 图2是是本发明实施例提供的区块链网络200的逻辑功能架构示意图;
[0064] 图3是本发明实施例提供区块链网络200中的节点210的结构示意图;
[0065] 图4A-4D是本发明实施例提供的区块链网络的管控方法的可选流程示意图;
[0066] 图5是本发明实施例提供的区块链网络200的应用系统100的可选示意图;
[0067] 图6是本发明实施例提供的区块链网络200的交易处理流程示意图;
[0068] 图7是本发明实施例提供的分布式控制台的数据同步方案的总体架构图;
[0069] 图8是本发明实施例提供的区块链网络的管控方法中基于共享范围的管控数据维度划分示意图;
[0070] 图9是本发明实施例提供的区块链网络的管控方法中基于分布式数据一致性解决方案的管控数据共享的示意图;
[0071] 图10是本发明实施例提供的区块链网络的管控方法中基于非对称加密的管控数据的权限控制的示意图。

具体实施方式

[0072] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0073] 在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解“, 一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
[0074] 在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
[0075] 除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
[0076] 对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
[0077] 1)链即服务(BaaS,Blockchain as a Service),是部署在网络中的区块链网络的开发平台,可以提供为服务的形式。区块链网络可以作为客户端/后端的业务架构中的后端,向各种客户端(例如移动APP、网络APP)提供底层的服务,例如包括云端数据/文件存储、账户管理、消息推送和社交媒体整合等,区块链网络支持客户端以提交交易的形式来使用这些服务,从而客户端的开发者可以只需专注于客户端的业务逻辑的开发,降低开发成本。
[0078] 2)控制台,区块链网络的开发平台的前端程序,用于供开发人员创建和管控区块链网络,提供命令行或图形化的图形界面。
[0079] 3)交易提案(Proposal),是执行交易中所包括的智能合约调用(下文简称为执行交易)的请求,包括接收交易的通道的标识、在通道中需要调用的智能合约的标识、以及需要向调用的智能合约传递的参数信息。
[0080] 4)交易,也称为交易请求,等同于计算机术语事务(Transaction),交易包括了需要提交到区块链网络执行的操作,以及对应的交易结果。并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
[0081] 例如,交易可以包括部署(Deploy)交易和调用(Invoke)交易,部署交易用于将智能合约到区块链网络的节点中并准备好被调用;调用(Invoke)交易用于对账本中的状态数据库进行查询操作(即读操作)或更新操作(即写操作,包括增加、删除和修改)。
[0082] 5)区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,从而基于哈希值实现区块中交易的防篡改和防伪造;新产生的交易被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长。
[0083] 6)区块链网络(Blockchain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
[0084] 7)账本(Ledger),是区块链(也称为账本数据)、以及与区块链同步的状态数据库的统称。其中,区块链是以文件系统中的文件的形式来记录交易;状态数据库是以不同类型的键(Key)值(Value)对的形式来记录区块链中的交易,用于支持对区块链中交易的快速查询。
[0085] 8)智能合约(Smart Contracts),也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,承载了执行交易的业务逻辑,运行在隔离运行环境中(例如容器或虚拟机)。
[0086] 9)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部。实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
[0087] 10)成员(Member),也称为业务主体,代表某个具体的实体身份(例如公司、企业和社会团体等),在区块链网络中有自己的根证书,区块链中的节点属于某个成员,同一个成员可以在同一个通道中拥有多个节点。
[0088] 11)组织(Organization),部分成员(接入区块链网络中的所有成员的子集)为实现特定业务(不需要所有成员参与)而形成的域。
[0089] 12)通道(Channel),区块链网络中向组织中成员的节点提供的私有隔离环境,通道中的智能合约和账本只对加入通道的成员的节点可见,同一个节点可以加入多个通道,并对应每个通道维护一个账本。
[0090] 在相关技术中,由于联盟链多地域的形态,使得联盟链的控制台从中心化向分布式发展,而作为联盟链的管控平台,各个分布式控制台又需要获取联盟链的全局管控信息,因此往往使用控制台实时交换的方式来同步一些全局管控数据,这种方式的优点是可以保证数据的实时性,但是同时也会带来一系列的问题,首先,由于联盟链的控制台是分布式的,因此获取全局管控数据的时候往往需要同时从多个组织的控制台中获取相应的管控数据,影响控制台的性能;其次,当存储全局管控数据的某一个控制台出现故障以后,会导致所有控制台的不可用,形成单点故障。本发明实施例提供了一种适用于联盟链分布式控制台的管控数据同步方案,该方案将管控数据拆分为网络共享数据、通道共享数据、合约共享数据、非共享数据等维度,通过分布式数据一致性解决方案,实现管控数据在联盟链分布式控制台的共享。同时,为了对不同维度的管控数据的共享范围进行控制,使用公私钥对共享数据进行加密,保证只有指定控制台权限范围内的管控数据的共享。本发明在实现管控数据实时共享的同时,还能够保证管控数据的一致性,解决管控数据对单一控制台的依赖。
[0091] 下面说明本发明实施例提供的区块链网络的示例性应用,参见图1,图1是本发明实施例提供的区块链网络200的示例性的应用系统100的架构示意图,包括区块链网络200、客户端510/410和认证中心(CA,Certificate Authority)300。
[0092] 区块链网络200的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的终端或服务器中运行的客户端,都可以在无需授权的情况下接入区块链网络200而成为一类特殊的节点,称为客户端节点;以联盟链为例,业务主体在被授权成为区块链网络200的成员后,对应的客户端可以接入区块链网络200而成为客户端节点。
[0093] 需要指出,归属于同一业务主体客户端节点的数量不存在限制,图1中示出了业务主体400(第一组织)使用的一个客户端410(控制台),且可以接入区块链网络200而成为客户端节点,同理,业务主体500(第二组织)使用的一个客户端510(控制台)可以接入区块链网络200而成为客户端节点。
[0094] 客户端节点针对区块链网络200的操作主要包括账本查询与账本更新两种类型。对于账本查询来说,客户端节点向区块链网络200发起交易提案,交易提案中包括与查询操作相关的智能合约调用,由区块链网络200的节点执行交易提案中包括的智能合约调用以查询账本,并将查询到的数据作为交易结果携带在提案响应中以返回客户端。
[0095] 对于账本更新来说,客户端节点向区块链网络200发起交易提案中包括与更新操作相关的智能合约调用,由区块链网络200的节点对账本模拟执行(即账本不会被改变)交易提案中包括的智能合约调用,将账本中被更新的键值据作为交易结果携带在提案响应中以返回客户端,客户端进而将交易提案、提案响应构造为交易,并提交到区块链网络200,由区块链网络200的节点将交易记录到账本中。
[0096] 客户端节点是一类区别于区块链网络200中的原生的节点的特殊节点,默认可以缺省区块链网络200中的原生的节点具有的记账功能,从而降低客户端的开发难度并实现客户端的轻量化。客户端与区块链网络200之间支持事件的传递,例如客户端通过可以监听/订阅区块链网络200运行中与智能合约调用相关的事件,例如生成新区块的事件,从而当区块链网络200中产生特定事件时,触发自身或外部系统的相关的业务逻辑。
[0097] 区块链网络200外部的认证中心300用于响应客户端410/510(下面简称为客户端)的注册申请,返回注册密码用于登录,以便获取用于声明客户端所属成员的身份信息的数字证书。作为认证中心(CA,Certificate Authority)300的替换方案,区块链网络200中可以设置有CA节点以实现上述功能。
[0098] 下面说明本发明实施例提供的区块链网络的示例性的逻辑功能架构,参见图2,图2是本发明实施例提供的区块链网络200的逻辑功能架构示意图,下面分别进行说明。
[0099] 区块链网络200的上层对接客户端,客户端410/510中提供了标准的RPC接口,并在API的基础之上封装了SDK,从而使得开发人员可以在SDK中开发基于区块链的各种业务逻辑;客户端的事件机制能够使得客户端接收区块链网络200的各种事件时,例如当接收到创建新区块的事件时、执行智能合约的事件时,执行预先定义的回调函数,从而使得各个节点之间达成共识的执行时间尽量缩短。
[0100] 在一些实施例中,从区块链网络200对接客户端的顶层的度,区块链网络200的功能包括身份管理、账本管理、交易管理和智能合约的功能,下面分别进行说明。
[0101] (1)身份管理
[0102] 客户端的用户注册和登录认证中心后,客户端获取到成员的数字证书(EC ert),其他所有的操作都需要与数字证书关联的私钥进行签名,消息接收方与成员持有来自认证中心的相同的根证书,消息接收方首先会进行签名和数字证书的验证,才进行后续的消息处理。节点同样会用到认证中心颁发的数字证书,比如接入区块链网络的成员启动下辖的节点的系统和对下辖的节点进行管理时,身份管理功能都会对成员的身份信息进行认证和授权。
[0103] (2)账本管理
[0104] 授权接入区块链网络200的成员查询账本,可以通过多种方式查询,包括根据区块号查询区块、根据区块哈希查询区块、根据交易号查询区块和根据交易号查询交易,还可以根据通道名称获取查询到的区块链。
[0105] (3)交易管理
[0106] 账本只能通过提交交易的方式更新,客户端通过区块链网络200的交易管理功能提交交易提案,并获取到交易的背书后,再向排序节点提交交易,然后由排序节点打包生成区块。
[0107] (4)智能合约
[0108] 实现“可编程的账本”(Programmable Ledger),通过智能合约调用执行交易,实现基于区块链的智能合约业务逻辑。只有智能合约才能更新账本。
[0109] 在一些实施例中,从区块链网络200对接底层的角度,区块链网络200的功能包括成员管理、共识服务、链码服务、安全和密码服务,下面分别进行说明。
[0110] (1)成员管理
[0111] 通过根信任证书(Root of Trust Certificate)体系,利用,(PKI,Public Key Infrastructure)对成员的身份信息进行认证,验证成员的数字签名。结合区块链网络内部的认证中心或者第三方认证中心,提供成员的注册功能,并对成员的数字证书进行管理,例如证书新增和撤销。示例性地,数字的证书分为注册证书(ECert)、交易证书(TCert)和TLS证书(TLS Cert),它们分别用于用户身份、交易签名和安全传输层协议(TLS,Transport Layer Security Pro tocol)传输。
[0112] (2)共识服务
[0113] 共识机制由3个阶段完成:客户端向背书节点提交提案以获得背书,客户端获得背书后提交交易给排序节点进行排序生成区块,之后广播给记账节点验证区块中交易后写入记账节点的本地账本。
[0114] (3)智能合约
[0115] 智能合约的实现依赖于安全的执行环境,确保安全的执行过程和用户数据的隔离。
[0116] (4)安全和密码服务
[0117] 实现密钥生成、哈希运算、签名验签、加密解密等基础功能。
[0118] 下面说明实现本发明实施例的区块链网络的节点的示例性结构,可以理解地,区块链网络200中的任一类型的节点的硬件结构可以根据下文说明的硬件结构而实施。
[0119] 参见图3,图3是本发明实施例提供区块链网络200中的节点210的结构示意图,图3所示的节点210包括:至少一个处理器2110、存储器2150和至少一个网络接口2120。节点210中的各个组件通过总线系统2140耦合在一起。可理解,总线系统2140用于实现这些组件之间的连接通信。总线系统2140除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统2140。
[0120] 处理器2110可以是一种集成电路芯片,具有信号的处理能,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
[0121] 存储器2150可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器2150可选地包括在物理位置上远离处理器2110的一个或多个存储设备。
[0122] 存储器2150包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本发明实施例描述的存储器2150旨在包括任意适合类型的存储器。
[0123] 在一些实施例中,存储器2150能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
[0124] 操作系统2151,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
[0125] 网络通信模块2152,用于经由一个或多个(有线或无线)网络接口2120到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(Wi Fi)、和通用串行总线(USB,Universal Serial Bus)等;
[0126] 在一些实施例中,本发明实施例提供的区块链网络的管控装置可以采用软件方式实现,图3示出了存储在存储器2150中的区块链网络的管控装置2155,其可以是程序和插件等形式的软件,包括以下软件模块:管控数据发送模块21551、管控数据接收模块21552、公钥发送模块21553、私钥解密模块21554、公钥接收模块21555、公钥加密模块21556、维度拆分模块21557以及控制台访问模块21558,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
[0127] 下面,结合本发明实施例提供的终端的示例性应用和实施,说明本发明实施例提供的区块链网络的管控方法。
[0128] 参见图4A,图4A是本发明实施例提供的区块链网络的管控方法的一个可选的流程示意图,将结合图4A示出的步骤101-107进行说明。
[0129] 在步骤101中,通过第一控制台将第一组织的第一管控数据发送到第一数据库。
[0130] 在步骤102中,第一数据库将第一管控数据同步到第二数据库。
[0131] 在步骤103中,第二控制台从第二数据库获取第一管控数据,以应用到第二组织内的区块链网络服务。
[0132] 这里,本发明实施例的方法应用于区块链网络的管控系统,区块链网络的管控系统包括:用于管控第一组织内的区块链网络节点的第一控制台、部署于第一组织的第一数据库;用于管控第二组织内的区块链网络节点的第二控制台,部署于第二组织的第二数据库;这里部署于第一组织的第一数据库表示第一数据库和第一组织部署在相同的网络环境中,部署于第二组织的第二数据库表示第二数据库和第二组织部署在相同的网络环境中。
[0133] 在一些实施例中,通过第一控制台将第一组织的第一管控数据发送到第一数据库,以使第一数据库将第一管控数据同步到第二数据库,第二控制台从第二数据库获取第一管控数据,以应用到第二组织内的区块链网络服务。通过部署在各个组织的分布式数据库实现了数据库之间的管控数据的同步,第一数据库可以将第一管控数据同步到第二数据库,以使第二控制台从第二数据库获取第一管控数据。
[0134] 在步骤104中,第二控制台将第二组织的第二管控数据发送到第二数据库。
[0135] 在步骤105中,并通过第二数据库同步到第一数据库时。
[0136] 在步骤106中,通过第一控制台从第一数据库获取第二组织的第二管控数据。
[0137] 在步骤107中,将第二管控数据应用到第一组织内的区块链网络服务。
[0138] 在一些实施例中,当第二控制台将第二组织的第二管控数据发送到第二数据库,并通过第二数据库同步到第一数据库时,通过第一控制台从第一数据库获取第二组织的第二管控数据,并将第二管控数据应用到第一组织内的区块链网络服务。通过部署在各个组织的分布式数据库实现了数据库之间的管控数据的同步,第二数据库可以将第二管控数据同步到第一数据库,以使第一控制台从第一数据库获取第二组织的第二管控数据。这里的第一组织和第二组织可以是接入同一区块链网络且位于不同地域的组织,也可以是接入同一区块链网络且位于相同地域的组织。针对位于不同地域且接入同一区块链网络的两个组织而言,应用本发明实施例提供的区块链网络的管控方法,分布在多个地域的控制台能够实现管控数据的同步共享。
[0139] 在一些实施例中,区块链网络200中的记账节点根据其在记账功能之外实现的功能可以划分为不同的类型,作为图1中示出的区块链网络200的划分为不同类型的示例,参见图5,图5是本发明实施例提供的区块链网络200的应用架构100的示意图,除了客户端节点(客户端410/510),区块链网络200中的节点默认都具有验证交易并记账的功能,其中仅具有验证交易并记账功能的节点称为记账节点(Committer),还包括一些特殊类型的记账节点:背书节点(Endorser)、排序节点(Orderer)和主节点(Leader Peer)。
[0140] 作为区块链网络200中设置有通道的示例,区块链网络200中的上述节点可以加入不同组织的通道,如图5示出了开展不同业务的组织1和组织2,区块链网络200中归属于组织1/2的成员的节点可以对应加入组织1/2的通道,每个通道内的节点接收与所属组织的业务相关的交易,并将交易记录到账本中,账本对于通道外的节点是隔离的。但是通过控制台对组织2中的节点接收与所属组织的业务相关的交易的同时也会需要查询与组织2加入了同一通道的组织1中的安装合约数据等等,通过本发明实施例提供的区块链网络的管控方法,组织1中的安装合约数据可以自动被同步到组织2对应的分布式数据库中,从而组织2中的控制台能够在本地获得组织1中的安装合约数据。
[0141] 在一些实施例中,对于合约数据而言,第一组织下所辖的节点在进行交易时需要调用第二组织的合约,通过本发明实施例的区块链网络的管控方法,第一组织可以获得第二组织共享同步的合约数据;对于通道数据而言,通道数据中可以包括通道内的交易账本数据,新加入通道中的第二组织需要查询交易,通过本发明实施例的区块链网络的管控方法,第二组织可以获得第一组织共享同步的交易账本数据。
[0142] 在一些实施例中,客户端中内置软件开发套件(SDK,Software Developm ent Kit)来实现对区块链网络200的管控,从而客户端的原生代码可以只关注实现业务相关的逻辑,忽略区块链网络200的内部运行细节,降低客户端的开发难度。
[0143] 作为示例,SDK向客户端提供了与区块链网络200的节点之间的基于远程过程调用(RPC,Remote Procedure Call)连接的一系列应用编程接口(API,Application Programming Interface),用于供客户端管理和使用区块链网络200的功能,这些功能包括:身份管理、账本管理、交易管理、智能合约、交易管理、成员管理、共识服务、智能合约服务、安全和密码服务和事件处理等,将在下文具体说明上述功能。
[0144] 作为交易管理的示例,客户端通过SDK实现的交易管理功能包括提交交易提案和提交交易两个阶段,下面参见图6,图6是本发明实施例提供的区块链网络的交易处理流程示意图,结合图6示出的交易提案和提交交易两个阶段的处理过程,就上述不同类型的节点的功能进行说明。
[0145] 客户端向区块链网络200中的背书节点发起交易提案,交易提案包括交易号、时间戳(发起交易提案的时间)、执行交易的通道(即交易中的调用的智能合约的所在的通道)的标识(例如序号或名称)、以及需要在通道中需要执行的智能合约调用,包括需要调用的智能合约的标识例如名称或序列号、智能合约的版本和需要向智能合约传递的参数信息等。其中智能合约和参数与客户端需要执行的操作相关,例如智能合约可以用于增加、删除、查询或修改操作,参数信息可以是增加、删除、查询或修改操作的数据。
[0146] 交易提案还携带认证中心向客户端签发的数字证书、以及客户端针对交易提案的数字签名,数字证书用于声明客户端所属的成员的身份信息,数字签名用于证明交易提案没有被篡改。
[0147] 背书节点在收到交易提案后会根据背书策略进行一些验证,包括:交易提案携带的数字证书是否是由受信任的认证中心签发;交易提案的数字签名是否有效;交易提案的格式是否正确;交易提案是否重复提交过;客户端在请求执行智能合约调用的通道中是否已被授权有写权限。
[0148] 在一些实施例中,背书节点验证交易提案成功时,背书节点会对自身所维护的账本的状态数据库中模拟执行交易,即执行交易提案中包括的智能合约调用以得到交易结果。背书节点对交易结果进行签名(即背书),将数字签名结合背书节点的数字证书、以及其他的相关信息构造成为提案响应(Proposal Resp onse),然后返回给客户端。
[0149] 作为示例,当交易提案中包括用于查询操作的智能合约调用时,交易结果是读集(Read Set),包含模拟执行过程中从账本数据库读取的键值;当交易提案中包括用于查询操作的智能合约调用时,交易结果是写集(Write Set)也包含了一个唯一键的列表,还有在模拟执行过程中对账本数据库写入的键值。
[0150] 作为示例,其他的相关信息可以包括:成功码(指示验证交易提案成功)、时间戳(生成提案响应的时间)、背书节点针对交易结果的数字签名、接收交易的通道的标识(例如序列号或名称)和交易提案的哈希值(用于与交易提案一对一地绑定,避免在提交交易阶段交易被篡改)。
[0151] 在一些实施例中,背书节点验证交易提案失败时,会向客户端返回携带失败码(指示验证交易提案失败的错误类型)的提案响应。
[0152] 当客户端收到提案响应时,首先会通过验证交易提案携带的数字证书和数字签名以确认提案响应的有效性。当客户端收集到足够数量的背书节点的提案响应,且提案响应中的交易结果一致时,会根据交易提案以及提案响应来构造交易。
[0153] 作为示例,交易包括:时间戳(构造交易的时间)、接收交易的通道的标识、需要在通道中调用的智能合约的标识(例如名称或序列号)、智能合约的版本和向智能合约传递的参数等和交易结果(例如读/写集)、以及背书节点针对交易结果的数字签名。
[0154] 需要指出,如果客户端提交的交易提案中的智能合约调用仅用于查询账本(而不用于更新账本),则客户端不会构造交易,仅将提案响应中的交易结果作为账本查询结果来完成相关的业务逻辑。
[0155] 客户端构造交易后,将交易广播给区块链网络200中的排序节点,对于所接收的交易,排序节点从交易中读取交易所属的通道的标识,按照接收的交易的先后顺序,将对应各个通道接收的交易构造相应通道的区块,并将区块发送到相应通道中的主节点。
[0156] 以图5为例,排序节点接收到交易时,根据交易中的通道的标识确定需要接收交易的通道是组织1的通道还是组织2的通道,根据对应各个通道的接收交易的先后顺序,构造对应组织1的通道的区块以及对应组织2的通道的区块,对应发送到组织1/组织2的通道中的主节点。
[0157] 主节点是代表通道内的其他记账节点和排序节点通信的节点,用于从排序节点获取最新的区块并在通道内部同步;主节点可以是被强制设置的,也可以是动态选举产生的。
[0158] 通道内的记账节点各自验证接收的区块中的各个交易,并在验证通过后追加到各自维护的区块链的尾部,并利用区块中交易的交易结果更新账本数据库。
[0159] 在一些实施例中,记账节点对区块中交易的验证包括:
[0160] 是否为合法的交易:交易格式是否正确,是否有合法的签名,交易内容是否被篡改;记账节点是否加入交易中所指示的接收交易的通道;交易是否符合背书策略。背书策略是对交易进行背书的规则,指定一个交易在提交前需要的背书所来自的组织、相应组织内节点的类型和有效背书的数量。
[0161] 参见图4B,基于图4A,图4B是本发明实施例提供的区块链网络的管控方法的一个可选的流程示意图,将结合图4B示出的步骤进行说明。
[0162] 在执行上述图4A所示的方法的过程中,还可以执行下述步骤:
[0163] 在步骤108中,通过第一控制台与第二控制台之间的安全连接,向第二控制台发送第一控制台的第一公钥。
[0164] 在步骤109中,响应于第一控制台接收第二控制台的经过加密的第二管控数据,利用第一控制台的第一私钥对经过加密的第二管控数据进行解密,以获得第二管控数据,经过加密的第二管控数据由第二控制台利用第一公钥对第二管控数据加密得到。
[0165] 在一些实施例中,当第一控制台新加入统一的区块链网络时,第一控制台会向区块链网络中的其他控制台发送第一控制台的公钥,这里的其他控制台即为本发明实施例中的第二控制台,第二控制台的数目可以为多个,相对于第一控制台用于管控不同组织下辖节点的控制台即为第二控制台。通过向区块链网络中的第二控制台发送第一控制台的公钥,使得第二控制台利用第一控制台的公钥对同步到第一控制台的第二管控数据进行加密,从而只有第一控制台能够通过自己的私钥对第二管控数据进行解密。
[0166] 参见图4C,基于图4A,图4C是本发明实施例提供的区块链网络的管控方法的一个可选的流程示意图,将结合图4C示出的步骤进行说明。
[0167] 在执行上述图4A所示的方法的过程中,还可以执行下述步骤:
[0168] 在步骤110中,通过第一控制台与第二控制台之间的安全连接,接收第二控制台的第二公钥。
[0169] 在步骤111中,响应于第一控制台确定向第二控制台同步第一管控数据,利用第二公钥对第一管控数据进行加密。
[0170] 在步骤112中,第二控制台接收经过加密的第一管控数据,并通过第二控制台的第二私钥对经过加密的第一管控数据进行解密,以获得第一管控数据。
[0171] 在一些实施例中,当第一控制台新加入统一的区块链网络时,第一控制台会接收区块链网络中的其他控制台发送的公钥,这里的其他控制台即为本发明实施例中的第二控制台,第二控制台的数目可以为多个,相对于第一控制台用于管控不同组织下辖节点的控制台即为第二控制台。通过接收区块链网络中的第二控制台发送的第二公钥,使得第一控制台利用第二控制台的公钥对要同步到第二控制台的第一管控数据进行加密,从而只有第二控制台能够通过自己的私钥对第一管控数据进行解密,进而保证第一管控数据的安全性,在全局同步数据的情况下,使得没有获得第一管控数据权限的控制台无法对第二管控数据进行解密。
[0172] 在一些实施例中,在步骤110中通过第一控制台与第二控制台之间的安全连接,接收第二控制台的第二公钥可以通过如下方式实现:通过安全连接向第二控制台发送公钥分享请求;当第二控制台同意公钥分享请求时,接收第二控制台通过安全连接发送的第二公钥。当第一控制台加入统一的区块链网络时,不仅需要第一控制台向区块链网络中的其他控制台广播自己的公钥,还需要获取其他控制台的公钥,通过向第二控制台发送公钥分享请求,使得第二控制台基于公钥分享请求,将自己的公钥发送给第一控制台。
[0173] 参见图4D,基于图4A,图4D是本发明实施例提供的区块链网络的管控方法的一个可选的流程示意图,将结合图4D示出的步骤进行说明。
[0174] 在执行上述图4A所示的方法的过程中,还可以执行下述步骤:
[0175] 在步骤113中,通过第一控制台对第一管控数据进行多维度拆分,以获得对应于分享维度的分类结果。
[0176] 在步骤114中,通过第一控制台确定第二控制台的分享权限对应的分享维度。
[0177] 在步骤115中,基于分享维度,通过第一控制台获取对应于分享维度的第一管控数据,以形成向第二控制台同步的第一管控数据。
[0178] 在一些实施例中,管控数据可以按照不同的维度进行拆分,基于多维度进行拆分后,可以得到:网络管控数据,比如当前网络的通道总数量、组织总数量、网络的基本详情信息等,所有加入网络的组织可以获取网络管控数据;通道管控数据,比如通道内参与的组织,安装的合约,加入的节点,通道基本详情信息等,所有加入通道的组织能够获取通道管控数据;合约管控数据,比如合约代码、合约的私有数据信息等,所有参与合约共享的组织能获取合约管控数据;各个组织单独拥有的组织管控数据,比如该组织的操作日志、证书等信息,只有拥有的组织才能够获取组织管控数据,其不参与共享。这里,对于部分管控数据而言,其可以是属于多维度的,例如,安装的合约属于通道管控数据,同时安装的合约也属于对应于该合约的合约管控数据,其作为通道管控数据时所能够被分享到的目的控制台和其作为合约管控数据时所能够被分享到的目的控制台可以是相同的,也可以是不同的。通过第一控制台可以将第一管控数据拆分为以下维度中的至少之一:对应于参与所述区块链网络的所有组织的网络管控数据、对应于通道内参与组织的通道管控数据、对应于合约参与组织的合约管控数据以及组织私有管控数据,在实际应用中,分享维度也可以不限于上述四种。
[0179] 在一些实施例中,通过第一控制台对第一管控数据进行多维度拆分,以获得对应于分享维度的分类结果,这里的分类结果是通过拆分第一管控数据得到的,得到了对应于各个分享维度下的不同类型的数据,例如,对于第一控制台而言,其所具有的通道管控数据可以是具有不同参与者的不同通道的相关数据,因而,第一管控数据拆分后将会获得在各个分享维度下的各个类别的管控数据,通过第一控制台确定第二控制台的分享权限对应的分享维度,这里的第二控制台的分享权限实际上是第二控制台相对于第一控制台的分享权限,即第二控制台是否与第一控制台参与相同的通道,第二控制台是否与第一控制台共享相同的合约等等,进而基于所确定的第二控制台的分享权限对应的分享维度,通过第一控制台获取对应于分享维度的第一管控数据,以形成向第二控制台同步的第一管控数据。
[0180] 在一些实施例中,在步骤101中通过第一控制台将第一组织的第一管控数据发送到第一数据库,具体可以通过下述方式实现:通过第一控制台发送第一管控数据至对应于第一控制台的第一代理服务器;通过第一代理服务器将第一管控数据发布到第一组织的第一数据库。利用第一代理服务器作为第一控制台与第一数据库之间的中间枢纽,这里的第一代理服务器用于向第一数据库发布其所对应的第一控制台发送的第一管控数据。
[0181] 在一些实施例中,通过第一控制台发送第一管控数据至对应于第一控制台的第一代理服务器,通过第一控制台发送第一管控数据至第一代理服务器,以使第一代理服务器获取对应于第二控制台的分享维度的第一管控数据。第一控制台发送管控数据到第一代理服务器时,所发送的是所有需要被同步的第一管控数据,通过第一代理服务器能够获取到对应于第二控制台的分享维度的第一管控数据,以使得后续通过分布式数据库将对应于第二控制台的分享维度的第一管控数据同步到第二控制台。
[0182] 在一些实施例中,通过第一代理服务器将第一管控数据发布到第一组织的第一数据库,利用第二控制台的第二公钥,通过第一代理服务器加密对应于第二控制台的分享维度的第一管控数据,得到加密后的第一管控数据,通过第一代理服务器将加密后的第一管控数据发布到第一组织的第一数据库,以使后续经过数据库同步之后,第二控制台能够获取用自己公钥加密后的第一管控数据,从而利用自己的私钥进行解密。这里第二公钥和第二私钥是一对密钥,当新的控制台加入到统一的网络时,新的控制台将自己的公钥广播到区块链网路中的每一个控制台,同时也会获取其他控制台的公钥。
[0183] 在一些实施例中,当第一控制台加入区块链网络时,通过第一控制台获取区块链网络中第二组织的第二控制台的身份信息;通过身份信息中包括的认证信息,对第二控制台进行验证;当验证成功时,开放第一组织所处局域网中对应第二控制台的访问权限,并获取第二控制台的访问方式,访问方式包括第二控制台的公网地址和端口。在进行管控数据同步分享之前,需要在控制台之间建立安全连接,基于安全连接,新加入的控制台可以向其他控制台发送自己的公钥,并且,基于安全连接,第一数据库和第二数据库可以获取对方的公网地址和端口,从而实现分布式数据库之间的管控数据分享同步。在建立安全连接的过程中,通过第一控制台获取区块链网络中第二组织的第二控制台的身份信息,这里的身份信息可以存储在公有链上,通过身份信息中包括的认证信息,对第二控制台进行验证,当验证成功时,开放第一组织所处局域网中对应第二控制台的访问权限,并获取第二控制台的访问方式,访问方式包括第二控制台的公网地址和端口。
[0184] 在一些实施例中,通过第一控制台将第一组织的第一管控数据发送到第一数据库,以使第一数据库将第一管控数据同步到第二数据库,这里,通过第一控制台将第一组织的第一管控数据提交到部署于第一组织的第一数据库,以使第一数据库根据第二控制台的公网地址和端口,将第一管控数据同步到部署于第二组织的第二数据库。基于在上述实施例中获得的第二控制台的公网地址和端口,第一数据库可以获得第二数据库的公网地址和端口,从而将第一管控数据同步到部署于第二组织的第二数据库。
[0185] 在一些实施例中,通过第一控制台从第一数据库获取第二组织的第二管控数据,通过第一控制台的第一代理服务器监控第一数据库,当第一数据库中的数据发生更新时,通过第一代理服务器接收数据更新消息,通过第一代理服务器从第一数据库中获取对应于数据更新消息的第二管控数据,通过第一控制台从第一代理服务器中获取第二管控数据。这里,第一代理服务器会监听数据库中订阅信息的变化,当第一数据库接收到来自于第二数据库的同步的数据时,第一代理服务器可以监听到数据更新消息,从而向第一数据库主动获取第二管控数据。
[0186] 下面,将说明本发明实施例在一个实际的应用场景中的示例性应用。
[0187] 参见图7,图7是本发明实施例提供的分布式控制台的数据同步方案的总体架构图,本发明提供了一种适用于联盟链分布式控制台的管控数据共享方案,该方案根据管控数据的共享范围对数据进行不同维度的拆分,通过分布式数据一致性解决方案,利用图7中的代理服务器和分布式数据库节点作为数据分享组件,由控制台通过各自的代理服务器向分布式数据库发布或者订阅更新数据,从而通过分布式数据库实现管控数据在联盟链分布式控制台的共享。同时,对不同纬度的管控数据使用公私钥进行加密,实现对管控数据分发的权限控制。该方案具有以下几个优点:1、对管控数据进行不同维度的拆分,简化控制台对管控数据的处理逻辑;2、通过分布式数据一致性解决方案,实现管控数据在分布式控制台的共享,保证管控数据的实时性,一致性,解决管控数据对单一控制台的依赖;3、通过公私钥加密技术实现对管控数据的权限控制,有效保障管控数据的隐私性。本发明提供的适用于联盟链分布式控制台的管控数据同步方案主要由以下三个方面组成:根据共享范围对管控数据进行不同维度拆分;使用分布式数据一致性解决方案实现管控数据在分布式控制台的共享;根据不同维度的管控数据的共享范围,使用非对称加密技术进行权限控制。
[0188] 参见图8,图8是本发明实施例提供的区块链网络的管控方法中基于共享范围的管控数据维度划分示意图在一个联盟链中,管控数据可以划分为以下四类:第一类是网络管控数据,比如当前网络的通道总数量、组织总数量、网络的基本详情信息等。对于这一类信息,所有加入的组织应该都可以获取,因此第一类管控数据的共享范围是参与网络的所有组织。第二类是通道管控数据,比如通道内参与的组织,安装的合约,加入的节点,通道基本详情信息等。对于这一类信息,所有加入的组织都应该能够获取,因此第二类管控数据的共享范围是加入通道的所有组织。第三类是合约管控数据,比如合约代码、合约的私有数据信息等。对于这一类信息,所有参与合约共享的组织应该都能获取,因此第三类管控数据的共享范围是共享合约的所有组织。第四类管控数据则是各个组织单独拥有的管控数据,比如该组织的操作日志、证书等信息。对于这类数据,只有拥有的组织才能够获取,因此第四类管控数据应该由各个组织持有,不参与共享。根据管控数据的共享范围进行维度划分,可以简化控制台对管控数据的管理逻辑,对非共享数据,控制台不需要进行任务共享操作,而对于不同维度的管控数据,控制台可以根据其共享范围在管控数据共享组件中进行发布和订阅。
[0189] 参见图9,图9是本发明实施例提供的区块链网络的管控方法中基于分布式数据一致性解决方案的管控数据共享的示意图,在基于共享范围对管控数据进行维护划分后,分布式控制台之间要共享管控数据,除了要保证管控数据的实时性,还需要实现各个控制台之间管控数据的一致性。为了达到这个目的,本发明使用分布式数据一致性解决方法实现管控数据的全局共享,该方案要求各个分布式控制台都要有一个分布式节点用于实现管控数据的全局共享,同时,还需要一个代理服务器来处理控制台对于共享型管控的数据的发布和订阅,当控制台产生新的管控数据时,首先需要根据管控数据的分类决定管控数据是否需要进行共享。如果管控数据属于前三类,则需要交给代理服务器处理。代理服务器根据管控数据的共享范围获取对应于各管控数据的分享控制台,代理服务器是控制台和分布式数据库集群的交互通道,当控制台由管控数据需要进行共享时,需要先将管控数据提交给代理服务器,由代理服务器去发布到分布式数据库集群。同时,控制台可以订阅相应的管控数据,同样是将订阅请求发给代理服务器,然后代理服务器会定期去获取分布式数据库集群的数据,并同步给控制台的数据库。其他控制台同样也会使用代理服务器订阅分布式节点上的管控数据,当订阅的管控数据发生变化时,代理服务器需要获取相应的管控数据并交给各自的控制台处理。
[0190] 参见图10,图10是本发明实施例提供的区块链网络的管控方法中基于非对称加密的管控数据的权限控制的示意图,由于管控数据可以根据共享范围的不同进行维度划分,而基于分布式数据一致性解决方案实现管控数据共享时,只能达到管控数据全局共享的结果,为了实现根据不同管控数据的维度来进行不同范围的共享,所有分布式控制台都会配备相应的公私密钥对,对于加入统一网络的控制台,需要向其他控制台分发自己的公钥,当其中的控制台发布管控数据时,需要根据管控数据的范围,使用相应控制台的公钥对管控数据进行加密,当其他控制台收到共享的管控数据时,只有具有权限的控制台才能使用其私钥解密获得相应的管控数据。如图10所示,对于通道AB内的管控数据,相对于控制台A而言,只有控制台B具有获得通道AB内的管控数据的权限,因此,在同步过程中,对通道AB内的数据用控制台A的公钥或者控制台B的公钥进行加密,从而使得控制台A能够用自己的私钥对控制台B分享的通道AB内的管控数据进行解密,控制台B能够用自己的私钥对控制台A分享的通道AB内的管控数据进行解密,而控制台C和控制台D无法用自己的私钥对通道AB内的管控数据进行解密。
[0191] 下面继续说明本发明实施例提供的区块链网络的管控装置2155的实施为软件模块的示例性结构,在一些实施例中,如图5所示,存储在存储器2140的区块链网络的管控装置2155中的软件模块可以包括:
[0192] 管控数据发送模块21551,用于通过所述第一控制台将所述第一组织的第一管控数据发送到所述第一数据库,以使所述第一数据库将所述第一管控数据同步到所述第二数据库,并使所述第二控制台从所述第二数据库获取所述第一管控数据,以应用到所述第二组织内的区块链网络服务;
[0193] 管控数据接收模块21552,用于当所述第二控制台将所述第二组织的第二管控数据发送到所述第二数据库,并通过所述第二数据库同步到所述第一数据库时,通过所述第一控制台从所述第一数据库获取所述第二组织的第二管控数据,并将所述第二管控数据应用到所述第一组织内的区块链网络服务。
[0194] 在一些实施例中,所述装置还包括:
[0195] 公钥发送模块21553,用于通过所述第一控制台与所述第二控制台之间的安全连接,向所述第二控制台发送所述第一控制台的第一公钥;
[0196] 私钥解密模块21554,用于响应于所述第一控制台接收所述第二控制台的经过加密的第二管控数据,利用所述第一控制台的第一私钥对经过加密的第二管控数据进行解密,以获得所述第二管控数据;
[0197] 其中,所述经过加密的第二管控数据由所述第二控制台利用所述第一公钥对所述第二管控数据加密得到。
[0198] 在一些实施例中,所述装置还包括:
[0199] 公钥接收模块21555,用于通过所述第一控制台与所述第二控制台之间的安全连接,接收所述第二控制台的第二公钥;
[0200] 公钥加密模块21556,用于响应于所述第一控制台确定向所述第二控制台同步所述第一管控数据,利用所述第二公钥对所述第一管控数据进行加密,以使所述第二控制台接收经过加密的第一管控数据,并通过第二控制台的第二私钥对所述经过加密的第一管控数据进行解密,以获得所述第一管控数据。
[0201] 在一些实施例中,所述装置还包括:所述公钥接收模块,还用于:
[0202] 通过所述安全连接向所述第二控制台发送公钥分享请求;
[0203] 当所述第二控制台同意所述公钥分享请求时,接收所述第二控制台通过所述安全连接发送的第二公钥。
[0204] 在一些实施例中,所述装置还包括:
[0205] 维度拆分模块21557,用于:
[0206] 通过所述第一控制台对所述第一管控数据进行多维度拆分,以获得对应于分享维度的分类结果;
[0207] 通过所述第一控制台确定所述第二控制台的分享权限对应的分享维度;
[0208] 基于所述分享维度,通过所述第一控制台获取对应于所述分享维度的第一管控数据,以形成向所述第二控制台同步的第一管控数据。
[0209] 在一些实施例中,所述维度拆分模块21557,还用于:
[0210] 通过所述第一控制台将所述第一管控数据拆分为以下维度中的至少之一:对应于参与所述区块链网络的所有组织的网络管控数据、对应于通道内参与组织的通道管控数据、对应于合约参与组织的合约管控数据以及组织私有管控数。
[0211] 在一些实施例中,所述管控数据发送模块21551,还用于:
[0212] 通过所述第一控制台发送所述第一管控数据至对应于所述第一控制台的第一代理服务器;
[0213] 通过所述第一代理服务器将所述第一管控数据发布到所述第一组织的第一数据库。
[0214] 在一些实施例中,所述管控数据发送模块21551,还用于:
[0215] 通过所述第一控制台发送所述第一管控数据至所述第一代理服务器,[0216] 以使所述第一代理服务器获取对应于所述第二控制台的分享维度的第一管控数据。
[0217] 在一些实施例中,所述管控数据发送模块21551,还用于:
[0218] 通过所述第二控制台的第二公钥,加密对应于所述第二控制台的分享维度的第一管控数据,得到加密后的第一管控数据;
[0219] 通过所述第一代理服务器将加密后的第一管控数据发布到所述第一组织的第一数据库。
[0220] 在一些实施例中,所述装置还包括:
[0221] 控制台访问模块21558,用于:
[0222] 当所述第一控制台加入所述区块链网络时,通过所述第一控制台获取所述区块链网络中第二组织的第二控制台的身份信息;
[0223] 通过所述身份信息中包括的认证信息,对所述第二控制台进行验证;
[0224] 当验证成功时,开放所述第一组织所处局域网中对应所述第二控制台的访问权限,并获取所述第二控制台的访问方式,所述访问方式包括所述第二控制台的公网地址和端口。
[0225] 在一些实施例中,所述管控数据发送模块21551,还用于:
[0226] 通过所述第一控制台将所述第一组织的第一管控数据提交到部署于所述第一组织的第一数据库,
[0227] 以使所述第一数据库根据所述第二控制台的公网地址和端口,将所述第一管控数据同步到部署于所述第二组织的第二数据库。
[0228] 在一些实施例中,所述管控数据接收模块21552,还用于:
[0229] 通过所述第一控制台的第一代理服务器监控所述第一数据库;
[0230] 当所述第一数据库中的数据发生更新时,通过所述第一代理服务器接收数据更新消息;
[0231] 通过所述第一代理服务器从所述第一数据库中获取对应于所述数据更新消息的第二管控数据;
[0232] 通过所述第一控制台从所述第一代理服务器中获取所述第二管控数据。
[0233] 本发明实施例提供一种区块链网络的管控设备,包括:
[0234] 存储器,用于存储可执行指令;
[0235] 处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的区块链网络的管控方法,例如,如图4A-4D示出的方法。
[0236] 这里的设备可以是终端或服务器,接入了区块链网络开发系统,运行区块链网络的开发系统的前端程序,即控制台。
[0237] 本发明实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的区块链网络的管控方法,例如,如图4A-4D示出的方法。
[0238] 在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EE PROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0239] 在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0240] 作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(H TML,Hyper Text Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0241] 作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0242] 综上所述,通过本发明实施例,根据共享范围对管控数据进行不同维度拆分,使用分布式数据一致性解决方案实现管控数据在分布式控制台的共享,同时根据不同维度的管控数据的共享范围,使用非对称加密技术进行权限控制,在实现管控数据实时共享的同时,还能够保证管控数据的一致性,解决管控数据对单一控制台的依赖。
[0243] 以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈