一种去中心化的分布式服务方法、系统及装置
文献发布时间:2023-06-19 11:27:38
技术领域
本发明属于数据通信技术领域,具体涉及一种去中心化的分布式服务方法、系统及装置。
背景技术
传统分布式服务器架构是一种中心化的分布式架构思想,所有的请求经过网关,对请求进行过滤以及认证,然后通过网关对请求进行转发,然后各个服务执行自己的功能,但是这条请求的规则必须是该服务器去制定的,否则将无法工作,而网关则是该服务器的中心。采用这种依赖中心化的架构形式的话,一旦出现某个请求是其他服务器制定的规则这种情况,当需要处理它的时候,现有架构的服务方式将无法在保证它安全有效的前提下对其进行处理。
发明内容
本发明所要解决的技术问题是:提供一种去中心化的分布式服务方法、系统及装置,利用数据通信的分布式记账与共识机制,保证了数据通信的开放性与安全性,更进一步地,还能够统一HTTP API并且将其与区块链网络的P2P通信以及多节点平台进行结合,实现服务节点之间通信的智能合约,从而保证了通信的独立性。
本发明是这样实现的:一种去中心化的分布式服务方法,包括:
对请求接入业务平台的独立服务进行校验,若校验成功,生成批准接入信息,授予公钥,若校验失败,生成拒绝接入信息;
对服务节点发出的通信请求进行校验,若校验成功,批准通信请求,若校验失败,拒绝通信请求,并发送此次对通信请求校验失败的结果;
针对服务节点返回的通信结果,其它服务节点根据公钥对通信结果进行合法性校验,生成合法性校验结果;
将通信结果进行分布式记账;
响应于对通信请求校验失败的结果,按照节点管理的规则管理发出通信请求的服务节点;
对所有合法性校验结果进行判断,若校验失败的结果的数量超过校验成功的结果的数量,则按照节点管理的规则管理发出通信请求的服务节点。
进一步地,还包括:
记录服务节点之间的通信过程,并根据查询请求,提供通信记录。
进一步地,所述对请求接入业务平台的独立服务进行校验的过程为:
单独访问所述独立服务的业务接口,判断是否存在异常代码,若存在,校验失败,若不存在,校验成功。
进一步地,所述对请求接入业务平台的独立服务进行校验的过程为:
单独访问所述独立服务的业务接口,判断是否存在异常代码,若存在,校验失败,若不存在,向该独立服务发送测试请求,根据测试请求的返回结果判断独立服务是否遵循统一HTTP API的智能合约准则,若不遵循,校验失败,若遵循,校验成功。
进一步地,所述对请求接入业务平台的独立服务进行校验的过程为:
单独访问所述独立服务的业务接口,判断是否存在异常代码,若存在,校验失败,若不存在,向该独立服务发送业务请求,根据业务请求的返回结果判断该独立服务的业务功能与预设业务功能是否一致,若不一致,校验失败,若一致,校验成功。
进一步地,所述对请求接入业务平台的独立服务进行校验的过程为:
单独访问所述独立服务的业务接口,判断是否存在异常代码,若存在,校验失败,若不存在,向该独立服务发送测试请求,根据测试请求的返回结果判断独立服务是否遵循统一HTTP API的智能合约准则,若不遵循,校验失败,若遵循,向该独立服务发送业务请求,根据业务请求的返回结果判断业务功能是否与预设业务功能一致,若不一致,校验失败,若一致,校验成功。
进一步地,所述对服务节点发出的通信请求进行校验的过程为:
获取服务节点发出的通信请求;
判断通信请求是否遵循统一HTTP API的智能合约准则,若遵循,校验成功,若不遵循,校验失败。
进一步地,所述针对服务节点返回的通信结果,其它服务节点根据公钥对通信结果进行合法性校验的过程为:
获取被请求的服务节点返回的通信结果;
其它服务节点判断是否能够通过所述公钥解析所述通信结果得到通信数据;若不能够解析,生成校验失败结果,若能够解析,判断通信数据是否遵循统一HTTP API的智能合约准则;若不遵循,生成校验失败结果,若遵循,判断当前通信数据是否携带前一次通信的结果信息,若不携带,生成校验失败结果,若携带,生成校验成功结果。
进一步地,所述节点管理的规则为:将服务节点移出业务平台。
本发明该提供了一种去中心化的分布式服务系统,包括:
监控平台,所述监控平台包括:
审核模块,用于对请求接入业务平台的独立服务进行校验,若校验成功,生成批准接入信息,授予公钥,若校验失败,生成拒绝接入信息;
监控模块,用于对服务节点发出的通信请求进行校验,若校验成功,批准通信请求,若校验失败,并发送此次对通信请求校验失败的结果;将通信结果进行分布式记账;
管理模块,用于响应于对通信请求校验失败的结果,按照节点管理的规则管理发出通信请求的服务节点;对所有合法性校验结果进行判断,若校验失败的结果的数量超过校验成功的结果的数量,则按照节点管理的规则管理发出通信请求的服务节点;
业务平台,用于响应于批准接入信息,批准独立服务接入业务平台形成服务节点,响应于拒绝接入信息,拒绝独立服务接入业务平台;
服务节点,用于与其它服务节点建立通信,根据公钥对服务节点返回的通信结果进行合法性校验,生成合法性校验结果。
进一步地,所述监控平台还包括:
追溯模块,用于记录服务节点之间的通信过程,并根据查询请求,提供通信记录。
本发明还提供了一种去中心化的分布式服务装置,包括处理器和存储器;所述存储器存储有计算机程序,所述处理器执行计算机程序时实现前述方法的步骤。
本发明带来的有益效果是:本发明利用数据通信的分布式记账与共识机制,保证了数据通信的开放性与安全性,更进一步地,还能够统一HTTP API并且将其与区块链网络的P2P通信以及多节点平台进行结合,实现服务节点之间通信的智能合约,从而保证了通信的独立性。
附图说明
图1为本发明中的分布式服务系统的组成框图;
图2为本发明中第一种独立服务校验方法的流程图;
图3为本发明中第二种独立服务校验方法的流程图;
图4为本发明中第三种独立服务校验方法的流程图;
图5为本发明中第四种独立服务校验方法的流程图;
图6为本发明中通信请求校验方法的流程图;
图7为本发明中通信结果校验方法的流程图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
一种去中心化的分布式服务方法,包括:
对请求接入业务平台的独立服务进行校验,若校验成功,生成批准接入信息,授予公钥,若校验失败,生成拒绝接入信息;
对服务节点发出的通信请求进行校验,若校验成功,批准通信请求,若校验失败,拒绝通信请求,并发送此次对通信请求校验失败的结果;
针对服务节点返回的通信结果,其它服务节点根据公钥对通信结果进行合法性校验,生成合法性校验结果;
将通信结果进行分布式记账;
响应于对通信请求校验失败的结果,按照节点管理的规则管理发出通信请求的服务节点;
对所有合法性校验结果进行判断,若校验失败的结果的数量超过校验成功的结果的数量,则按照节点管理的规则管理发出通信请求的服务节点,否则维持现状;
记录服务节点之间的通信过程,并根据查询请求,提供通信记录。
如图1所示,基于同样的发明构思,本发明还提供了一种去中心化的分布式服务系统,包括:监控平台、业务平台和服务节点。
监控平台包括审核模块、监控模块、管理模块和追溯模块。
审核模块,用于对请求接入业务平台的独立服务进行校验,若校验成功,生成批准接入信息,授予公钥,若校验失败,生成拒绝接入信息。对于业务平台而言,独立服务加入业务平台必须经过审核,审核模块负责了解独立服务的安全性以及它所实现的某项业务功能,确认无误之后,独立服务才能加入业务平台,成为其中的一个服务节点。需要说明的是,独立服务在接入业务平台时,其信息将被录入到节点管理模块里。信息包括业务功能、业务接口、服务地址、公钥及签名。
监控模块,用于对服务节点发出的通信请求进行校验,若校验成功,批准通信请求,若校验失败,并发送此次对通信请求校验失败的结果;将通信结果进行分布式记账。
对于监控模块,服务节点与服务节点进行通信,发生了通信数据的改变时(比如服务与服务之间进行合作、产生了结果,形成某种进展),监控模块将该结果共享给所有的服务节点,每个服务节点对该结果进行分布式存储,同时都可以参与合作结果合法性校验,同时也可以共同为其作证,这个就是服务通信的分布式记账。分布式记账属于现有技术,故不赘述其原理及工作过程。
分布式记账的优点在于:保证每个服务节点都完整的存在服务节点的合作结果,传统分布式存储一般是将数据按照一定的规则分成多份进行存储。服务通信的分布式记账使每个服务节点存储都是独立的、地位等同的,依靠共识机制保证存储的一致性,而传统分布式存储一般是通过中心节点往其他备份节点同步数据。服务通信的分布式记账使得服务节点之间的通信结果对所有服务节点进行共享,使其公开、透明、合法有效,保证了服务节点数据的开放性。
管理模块,用于响应于对通信请求校验失败的结果,按照节点管理的规则管理发出通信请求的服务节点;对所有合法性校验结果进行判断,若校验失败的结果的数量超过校验成功的结果的数量,则按照节点管理的规则管理发出通信请求的服务节点。具体地,若业务平台内接入100个服务节点,如服务节点1,服务节点2,……,服务节点99,服务节点100。当服务节点1发起通信请求与服务节点2建立通信并产生通信结果1时,其它服务节点分别对通信结果1进行合法性校验,得到98个合法性校验,如果其中校验失败的结果的数量超过校验成功的交过的数量,则将发起通信请求的服务节点,也即服务节点1移出业务平台。
追溯模块,用于记录服务节点之间的通信过程,并根据查询请求,提供通信记录。追溯模块使其每一条服务节点的合作结果可看、可查、可追溯。
业务平台,用于响应于批准接入信息,批准独立服务接入业务平台形成服务节点,响应于拒绝接入信息,拒绝独立服务接入业务平台。
服务节点,用于与其它服务节点建立通信,根据公钥对服务节点返回的通信结果进行合法性校验,生成合法性校验结果。
如图2所示,在一可选实施例中提供了第一种独立服务校验方法,包括:
SA1、单独访问独立服务的业务接口。
SA2、判断独立服务是否存在异常代码,若存在,转向SA3,若不存在,转向SA4。需要说明的是,本申请中,异常代码主要为以下情形:请求接入的业务接口的返回结果是否存在病毒,是否存在恶意代码注入。如果存在上述情形中的任一种情形,则判为异常代码。
SA3、生成拒绝接入信息。
SA4、生成批准接入信息。
SA5、生成公钥,将公钥授予校验成功的独立服务。
对应地,本例中的审核模块包括:接口模块、校验模块、拒绝模块、批准模块和公钥模块。
接口模块用于单独访问独立服务的业务接口。校验模块用于判断独立服务是否存在异常代码,若存在,启动拒绝模块,若不存在,启动批准模块。拒绝模块用于生成拒绝接入信息。批准模块用于生成批准接入信息。公钥模块用于生成公钥,将公钥授予校验成功的独立服务。
如图3所示,在一可选实施例中提供了第二种独立服务校验方法,包括:
SB1、单独访问独立服务的业务接口。
SB2、判断独立服务是否存在异常代码,若存在,转向SB3,若不存在,转向SB4。需要说明的是,本申请中,异常代码主要为以下情形:请求接入的业务接口的返回结果是否存在病毒,是否存在恶意代码注入。如果存在上述情形中的任一种情形,则判为异常代码。
SB3、生成拒绝接入信息。
SB4、向该独立服务发送测试请求,根据测试请求的返回结果判断独立服务是否遵循统一HTTP API的智能合约准则,若不遵循,转向SB3,若遵循,转向SB5。
SB5、生成批准接入信息。
SB6、生成公钥,将公钥授予校验成功的独立服务。
对应地,本例中的审核模块包括:接口模块、第一校验模块、第二校验模块、拒绝模块、批准模块和公钥模块。
接口模块用于单独访问独立服务的业务接口。第一校验模块用于判断独立服务是否存在异常代码,若存在,启动拒绝模块,若不存在,启动第二校验模块。第二校验模块用于向该独立服务发送测试请求,根据测试请求的返回结果判断独立服务是否遵循统一HTTPAPI的智能合约准则,若不遵循,启动拒绝模块,若遵循,启动批准模块。拒绝模块用于生成拒绝接入信息。批准模块用于生成批准接入信息。公钥模块用于生成公钥,将公钥授予校验成功的独立服务。
如图4所示,在一可选实施例中提供了第三种独立服务校验方法,包括:
SC1、单独访问独立服务的业务接口。
SC2、判断独立服务是否存在异常代码,若存在,转向SC3,若不存在,转向SC4。需要说明的是,本申请中,异常代码主要为以下情形:请求接入的业务接口的返回结果是否存在病毒,是否存在恶意代码注入。如果存在上述情形中的任一种情形,则判为异常代码。
SC3、生成拒绝接入信息。
SC4、向该独立服务发送业务请求,根据业务请求的返回结果判断该独立服务的业务功能与预设业务功能是否一致,若不一致,转向SC3,若一致,转向SC5。
SC5、生成批准接入信息。
SC6、生成公钥,将公钥授予校验成功的独立服务。
对应地,本例中的审核模块包括:接口模块、第一校验模块、第二校验模块、拒绝模块、批准模块和公钥模块。
接口模块用于单独访问独立服务的业务接口。第一校验模块用于判断独立服务是否存在异常代码,若存在,启动拒绝模块,若不存在,启动第二校验模块。第二校验模块用于向该独立服务发送业务请求,根据业务请求的返回结果判断该独立服务的业务功能与预设业务功能是否一致,若不一致,启动拒绝模块,若一致,启动批准模块。拒绝模块用于生成拒绝接入信息。批准模块用于生成批准接入信息。公钥模块用于生成公钥,将公钥授予校验成功的独立服务。
如图5所示,在一可选实施例中提供了第四种独立服务校验方法,包括:
SD1、单独访问独立服务的业务接口。
SD2、判断独立服务是否存在异常代码,若存在,转向SD3,若不存在,转向SD4。需要说明的是,本申请中,异常代码主要为以下情形:请求接入的业务接口的返回结果是否存在病毒,是否存在恶意代码注入。如果存在上述情形中的任一种情形,则判为异常代码。
SD3、生成拒绝接入信息。
SD4、向该独立服务发送测试请求,根据测试请求的返回结果判断独立服务是否遵循统一HTTP API的智能合约准则,若不遵循,转向SD3,若遵循,转向SD5。
SD5、向该独立服务发送业务请求,根据业务请求的返回结果判断该独立服务的业务功能与预设业务功能是否一致,若不一致,转向SD3,若一致,转向SD6。
SD6、生成批准接入信息。
SD7、生成公钥,将公钥授予校验成功的独立服务。
对应地,本例中的审核模块包括:接口模块、第一校验模块、第二校验模块、第三校验模块、拒绝模块、批准模块和公钥模块。
接口模块用于单独访问独立服务的业务接口。第一校验模块用于判断独立服务是否存在异常代码,若存在,启动拒绝模块,若不存在,启动第二校验模块。第二校验模块用于向该独立服务发送测试请求,根据测试请求的返回结果判断独立服务是否遵循统一HTTPAPI的智能合约准则,若不遵循,启动拒绝模块,若遵循,启动第三校验模块。第三校验模块用于向该独立服务发送业务请求,根据业务请求的返回结果判断该独立服务的业务功能与预设业务功能是否一致,若不一致,启动拒绝模块,若一致,启动批准模块。拒绝模块用于生成拒绝接入信息。批准模块用于生成批准接入信息。公钥模块用于生成公钥,将公钥授予校验成功的独立服务。
上述四种校验方法中,公钥是一段32位的伪代码随机串,用于对HTTP加密授权进行解密,以及服务节点的签名,该签名为一段32位序列,基于服务节点名称的MD5加密生成而来,用于与业务平台中的服务节点进行通信。
如图6所示,在一可选实施例中提供了通信请求校验方法,包括:
SE1、获取服务节点发出的通信请求。
SE2、判断通信请求是否遵循统一HTTP API的智能合约准则,若遵循,转向SE3,若不遵循,转向SE4。
SE3、将通信请求发送给被请求的服务节点。
SE4、拒绝发出通信请求的服务节点与其它服务节点建立通信。
对应地,本例中的监控模块包括获取模块、校验模块、发送模块和拒绝模块。
获取模块用于获取服务节点发出的通信请求。校验模块用于判断通信请求是否遵循统一HTTP API的智能合约准则,若遵循,启动发送模块,若不遵循,启动拒绝模块。发送模块用于将通信请求发送给被请求的服务节点。拒绝模块用于拒绝发出通信请求的服务节点与其它服务节点建立通信。
如图7所示,在一可选实施例中提供了通信结果校验方法,包括:
SF1、获取被请求的服务节点返回的通信结果。
SF2、其它服务节点判断是否能够通过公钥解析通信结果得到通信数据;若不能够解析,转向SF3,若能够解析,转向SF4。
SF3、生成合法性校验失败结果。
SF4、判断通信数据是否遵循统一HTTP API的智能合约准则;若不遵循,转向SF3,若遵循,转向SF5。
SF5、判断当前通信数据是否携带前一次通信的结果信息,若不携带,转向SF3,若携带,转向SF6。
SF6、生成合法性校验成功结果。
对应地,本例中的监控模块包括:获取模块、第一校验模块、第二校验模块、第三校验模块、批准模块和拒绝模块。
获取模块用于获取被请求的服务节点返回的通信结果。第一校验模块用于判断是否能够通过公钥解析通信结果得到通信数据;若不能够解析,启动拒绝模块,若能够解析,启动第二校验模块。第二校验模块用于判断通信数据是否遵循统一HTTP API的智能合约准则;若不遵循,启动拒绝模块,若遵循,启动第三校验模块。第三校验模块判断当前通信数据是否携带前一次通信的结果信息,若不携带,启动拒绝模块,若携带,启动发送模块。批准模块用于生成合法性校验成功结果。拒绝模块用于生成合法性校验失败结果。
上述实施例中,节点管理的规则为:将服务节点移出业务平台。
上述实施例中,统一HTTP API智能合约基于区块链P2P的通信方式,通过solidty实现智能合约,智能合约实现统一API,再通过web3j封装到java web项目中去,由java web项目提供统一Restful风格的HTTP调用,同时利用区块链的多节点平台实现数据共享,这个就是服务节点通信的智能合约方案。统一HTTP API的智能合约方案采用公钥签名算法ECDSA 和哈希算法 SHA-256对通信数据进行安全加密校验,以此保证HTTP在通信过程中的难以篡改性和难以伪造的特征。统一HTTP API的智能合约基于协商一致的规范和协议(哈希算法与公钥签名算法 ECDSA),整个去中心化的服务方案技术不依赖其他第三方,所有节点能够在系统内自动安全地验证、交换数据,不需要任何人为的干预。从而保证了通信的独立性。统一HTTP API智能合约格式如下:
请求
url :http//被服务节点的请求地址/服务名称/业务接口
token:ECDSA(私钥+当前时间戳+请求发起服务节点的签名)
content:哈希算法 SHA-256(请求体,一般为json格式)
返回
url:http//被服务节点的请求地址/服务名称/业务接口
token:ECDSA(私钥+当前时间戳+被请求的服务节点的签名)
content:哈希算法 SHA-256(返回内容,一般为json格式)
基于同样的发明构思,本发明还提供了一种去中心化的分布式服务装置,包括处理器和存储器;存储器存储有计算机程序,处理器执行计算机程序时实现去中心化的分布式服务方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
- 一种去中心化的分布式服务方法、系统及装置
- 一种去中心化服务方法、装置及系统