基于bos链的令牌token应用线性一致性方法及装置

阅读: 评论:0

著录项
  • CN202110661522.6
  • 20210615
  • CN115484027A
  • 20221216
  • 中移动信息技术有限公司;中国移动通信集团有限公司
  • 叶可可;张晶;徐海勇;陈国;刘虹;张晓京;夏敬侃;初瑞;张琰;王莹;周成;张湘海
  • H04L9/32
  • H04L9/32 H04L9/40 H04L67/1004 H04L67/1095 H04L67/1097

  • 北京市西城区金融大街29号A座
  • 北京(11)
  • 北京路浩知识产权代理有限公司
  • 王毅
摘要
本发明提供了一种基于bos链的令牌token应用线性一致性方法及装置,包括:基于消息队列MQ分布式事务机制,将接收到的令牌token申请请求发送至消息队列MQ,并保存当前令牌token的申请状态;基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送已上链成功的消息;基于所述已上链成功的消息,进行第一次令牌token的申请状态更新;在上链成功后等待接收消息队列MQ交易已确认的消息,进行第二次令牌token的申请状态更新,将区块编号编码进令牌token中,并发送令牌token申请结果。本发明有效解决了全网token应用线性一致性问题。
权利要求

1.一种基于bos链的令牌token应用线性一致性方法,其特征在于,包括:

基于消息队列MQ分布式事务机制,将接收到的令牌token申请请求发送至消息队列MQ,并保存当前令牌token的申请状态;

基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送已上链成功的消息;

基于所述已上链成功的消息,进行第一次令牌token的申请状态更新;

在上链成功后等待接收消息队列MQ交易已确认的消息,进行第二次令牌token的申请状态更新,将区块编号编码进令牌token中,并发送令牌token申请结果。

2.根据权利要求1所述的基于bos链的令牌token应用线性一致性方法,其特征在于,还包括:

通过令牌token申请状态查询接口,查询token申请处理进度。

3.根据权利要求1所述的基于bos链的令牌token应用线性一致性方法,其特征在于,还包括:

基于分布式服务框架zookeeper通知获取到所述区块编号,利用负载均衡算法选择符合预设条件的区块链节点确定令牌token信息,并更新应用本地内存。

4.根据权利要求3所述的基于bos链的令牌token应用线性一致性方法,其特征在于,还包括:

定时检查本地令牌token版本,若发现已过时,则从区块链网络拉取token信息。

5.根据权利要求4所述的基于bos链的令牌token应用线性一致性方法,其特征在于,还包括:

若验证token信息失败,则检查本地应用token版本是否过期;

若已过期,则触发异步更新机制继续从区块链网络拉取token信息;若未过期,则返回token已失效信息。

6.根据权利要求1所述的基于bos链的令牌token应用线性一致性方法,其特征在于,还包括:

在基于消息队列MQ分布式事务机制,将接收到的令牌token申请请求发送至消息队列MQ,并保存当前令牌token的申请状态完成后,向申请方返回token申请已成功接收,正在处理消息。

7.根据权利要求1所述的基于bos链的令牌token应用线性一致性方法,其特征在于,所述基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送已上链成功的消息,还包括:

基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送确认字符ACK报文,和已上链成功的消息,等待与所述进行第一次令牌token的申请状态更新对应的确认消息。

8.一种基于bos链的令牌token应用线性一致性装置,其特征在于,包括:

第一模块,用于基于消息队列MQ分布式事务机制,将接收到的令牌token申请请求发送至消息队列MQ,并保存当前令牌token的申请状态;

第二模块,用于基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送已上链成功的消息;

第三模块,用于基于所述已上链成功的消息,进行第一次令牌token的申请状态更新;

第四模块,用于在上链成功后等待接收消息队列MQ交易已确认的消息,进行第二次令牌token的申请状态更新,将区块编号编码进令牌token中,并发送令牌token申请结果。

9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~7任一项所述的基于bos链的令牌token应用线性一致性方法。

10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1~7任一项所述的基于bos链的令牌token应用线性一致性方法。

说明书
技术领域

本发明涉及计算机技术领域,尤其涉及一种基于bos链的令牌token应用线性一致性方法及装置。

目前基础服务平台授权访问流程为,当服务使用者或服务提供者经过基础服务平台审核,获得appid和secret code后。携带appid和secret code向基础服务平台发起授权请求,并通过MD5加指纹。基础服务平台对授权申请进行认证后,返回token。服务使用者或服务提供者接到token之后,在有效期限内,可以访问平台类开放服务。

目前基础服务平台接收到授权申请并认证通过后,将token通过区块链同步至全网节点,并通过zookeeper通知全网应用,更新应用本地缓存。接入平台可以就近访问网状网SN省节点。

通过区块链技术可以在一定程度上解决token全网同步的数据一致性问题,但是仍然存在整个交易链路的线性一致性问题。

针对现有技术中存在的问题,本发明实施例提供一种基于bos链的令牌token应用线性一致性方法及装置。

第一方面,本发明实施例提供一种基于bos链的令牌token应用线性一致性方法,包括:

基于消息队列MQ分布式事务机制,将接收到的令牌token申请请求发送至消息队列MQ,并保存当前令牌token的申请状态;

基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送已上链成功的消息;

基于所述已上链成功的消息,进行第一次令牌token的申请状态更新;

在上链成功后等待接收消息队列MQ交易已确认的消息,进行第二次令牌token的申请状态更新,将区块编号编码进令牌token中,并发送令牌token申请结果。

进一步地,还包括:

通过令牌token申请状态查询接口,查询token申请处理进度。

进一步地,还包括:

基于分布式服务框架zookeeper通知获取到所述区块编号,利用负载均衡算法选择符合预设条件的区块链节点确定令牌token信息,并更新应用本地内存。

进一步地,还包括:

定时检查本地令牌token版本,若发现已过时,则从区块链网络拉取token信息。

进一步地,还包括:

若验证token信息失败,则检查本地应用token版本是否过期;

若已过期,则触发异步更新机制继续从区块链网络拉取token信息;若未过期,则返回token已失效信息。

进一步地,还包括:

在基于消息队列MQ分布式事务机制,将接收到的令牌token申请请求发送至消息队列MQ,并保存当前令牌token的申请状态完成后,向申请方返回token申请已成功接收,正在处理消息。

进一步地,所述基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送已上链成功的消息,还包括:

基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送确认字符ACK报文,和已上链成功的消息,等待与所述进行第一次令牌token的申请状态更新对应的确认消息。

第二方面,本发明实施例提供了一种基于bos链的令牌token应用线性一致性装置,包括:

第一模块,用于基于消息队列MQ分布式事务机制,将接收到的令牌token申请请求发送至消息队列MQ,并保存当前令牌token的申请状态;

第二模块,用于基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送已上链成功的消息;

第三模块,用于基于所述已上链成功的消息,进行第一次令牌token的申请状态更新;

第四模块,用于在上链成功后等待接收消息队列MQ交易已确认的消息,进行第二次令牌token的申请状态更新,将区块编号编码进令牌token中,并发送令牌token申请结果。

第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上第一方面所述的基于bos链的令牌token应用线性一致性方法的步骤。

第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上第一方面所述的基于bos链的令牌token应用线性一致性方法的步骤。

由上述技术方案可知,本发明实施例提供的基于bos链的令牌token应用线性一致性方法及装置,通过基于消息队列MQ分布式事务机制,将接收到的令牌token申请请求发送至消息队列MQ,并保存当前令牌token的申请状态;基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送已上链成功的消息;基于所述已上链成功的消息,进行第一次令牌token的申请状态更新;在上链成功后等待接收消息队列MQ交易已确认的消息,进行第二次令牌token的申请状态更新,将区块编号编码进令牌token中,并发送令牌token申请结果从而有效解决了全网token应用线性一致性问题。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的基于bos链的令牌token应用线性一致性方法的流程示意图;

图2为本发明另一实施例提供的基于bos链的令牌token应用线性一致性方法的流程示意图;

图3为本发明一实施例提供的基于bos链的令牌token应用线性一致性装置的结构示意图;

图4为本发明一实施例中电子设备的实体结构示意图。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面将通过具体的实施例对本发明提供的基于bos链的令牌token应用线性一致性方法进行详细解释和说明。

图1为本发明一实施例提供的基于bos链的令牌token应用线性一致性方法的流程示意图;如图1所示,该方法包括:

步骤101:基于消息队列MQ分布式事务机制,将接收到的令牌token申请请求发送至消息队列MQ,并保存当前令牌token的申请状态。

步骤102:基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送已上链成功的消息。

步骤103:基于所述已上链成功的消息,进行第一次令牌token的申请状态更新。

步骤104:在上链成功后等待接收消息队列MQ交易已确认的消息,进行第二次令牌token的申请状态更新,将区块编号编码进令牌token中,并发送令牌token申请结果。

在本发明实施例中,针对背景技术中所述的“存在整个交易链路的线性一致性问题”需要说明的是:1、由于授权码通过区块链传播需要一定的耗时,zookeeper通知整体会比区块链传播授权码速度快。通过服务端负载均衡方式负载多个区块链节点时,会出现网状网部分SN节点读取到了最新的token,另外部分节点仍然读取到的是旧的token。这点不符合线性一致性约束;2、由于接入平台发起token申请失败时,可能会频繁申请;或者多线程并行申请,就会出现消息顺序问题。

在本发明实施例中,可以理解的是,基础服务平台接收到token申请并认证通过后,将token请求发送到MQ,同时在本地数据库中记录token申请处理状态等消息,并返回给申请方token申请已成功接收,正在处理的消息。下游token上链程序接收到MQ消息时,执行token上链业务逻辑,将token上链后,向MQ发送token已上链,等待确认的消息(即确认已进行第一次令牌token的申请状态更新的消息);并异步监听区块链token上链结果,获取到token上链结果后,将上链结果及区块编号发送到MQ;基础服务平台应用接收到MQ消息后,更新本地数据库token申请处理状态。当接收到交易上链结果并更新本地数据库成功后,通过申请方的回调接口,通知申请方token申请已处理完毕。同时提供申请进度查询接口,供申请方查询申请进度。

SN集内部署监听程序,接收MQ token上链成功消息,同时监听当前集内区块链节点。并通过zookeeper向集内应用发送token已更新的通知。集内应用收到通知后,通过负载均衡算法根据接收到的授权码所属区块编号,选择合适的区块链节点,更新应用本地token信息。

token经过重新编码,将对应的区块编号编码进token后,返回给申请方。

当网状网SN节点,发现交易发起方token失效时,验证本地token信息版本是否比交易发起方token版本新,如果比交易发起方token新,说明token已失效,如果比交易发起方token旧,说明本地应用token信息已过时,重新更新token信息。

由上面技术方案可知,本发明实施例提供的基于bos链的令牌token应用线性一致性方法,通过基于消息队列MQ分布式事务机制,将接收到的令牌token申请请求发送至消息队列MQ,并保存当前令牌token的申请状态;基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送已上链成功的消息;基于所述已上链成功的消息,进行第一次令牌token的申请状态更新;在上链成功后等待接收消息队列MQ交易已确认的消息,进行第二次令牌token的申请状态更新,将区块编号编码进令牌token中,并发送令牌token申请结果,从而有效解决了全网token应用线性一致性问题。

在上述实施例的基础上,在本实施例中,还包括:

通过令牌token申请状态查询接口,查询token申请处理进度。

在本实例中,举例来说,如申请方等待一段时间,没有接收到token申请结果时,可以通过token申请状态查询接口,查询token申请处理进度。

由上面技术方案可知,本发明实施例提供的基于bos链的令牌token应用线性一致性方法,可以使申请方有效监控token申请处理进度。

在上述实施例的基础上,在本实施例中,还包括:

基于分布式服务框架zookeeper通知获取到所述区块编号,利用负载均衡算法选择符合预设条件的区块链节点确定令牌token信息,并更新应用本地内存。

在本实例中,举例来说,如各大区部署的区块交易事件监听程序,监听区块链网络token交易事件。接收到token交易事件后,向zookeeper发送通知,集内应用接收到zookeeper通知后,根据通知获取到的token交易所在区块编号,利用负载均衡算法,选择符合条件的区块链节点,从区块链网络中获取最新token信息,更新应用本地内存。

由上面技术方案可知,本发明实施例提供的基于bos链的令牌token应用线性一致性方法,结合MQ、区块链、zookeeper、负载均衡技术,实现token应用线性一致性访问。

在上述实施例的基础上,在本实施例中,还包括:

定时检查本地令牌token版本,若发现已过时,则从区块链网络拉取token信息。

在本实例中,举例来说,如集内应用定时检查本地token版本,如果发现已过时,从区块链网络拉取最新token信息。

由上面技术方案可知,本发明实施例提供的基于bos链的令牌token应用线性一致性方法,能够定时检查本地token版本,从而在发现token已过时,从区块链网络拉取最新token信息

在上述实施例的基础上,在本实施例中,还包括:

若验证token信息失败,则检查本地应用token版本是否过期;

若已过期,则触发异步更新机制继续从区块链网络拉取token信息;若未过期,则返回token已失效信息。

在本实例中,举例来说,如集内应用,验证token失效后,检查本地应用token版本是否过期,如果过期,触发异步更新机制,从区块链中拉取最新token信息。如果没有过期,返回token已失效信息。

在上述实施例的基础上,在本实施例中,还包括:

在基于消息队列MQ分布式事务机制,将接收到的令牌token申请请求发送至消息队列MQ,并保存当前令牌token的申请状态完成后,向申请方返回token申请已成功接收,正在处理消息。

由上面技术方案可知,本发明实施例提供的基于bos链的令牌token应用线性一致性方法,使得申请方能够获知token申请已成功接收,正在处理消息。

在上述实施例的基础上,在本实施例中,所述基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送已上链成功的消息,还包括:

基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送确认字符ACK报文,和已上链成功的消息,等待与所述进行第一次令牌token的申请状态更新对应的确认消息。

为了更好的理解本发明,下面结合实施例进一步阐述本发明的内容,但本发明不仅仅局限于下面的实施例,参见图2。

一、基础服务平台接收到token申请,基于MQ分布式事务机制,将token申请请求发送到MQ,并在本地数据库保存token申请状态。事务完成后,向发起方返回申请token申请已成功接收,正在处理消息。

二、token上链程序接收到token申请消息,执行token上链程序,上链成功后,在本地数据库记录token上链状态,并向MQ发送ACK报文。同时向MQ发送已上链成功,等待确认的消息。

三、基础服务平台从MQ接收到上链成功的消息后,更新token申请状态。

四、token上链结果监听程序,监听区块链token交易,并将成功上链token交易消息,发送到MQ。

五、基础服务平台应用接收到MQ交易已确认的消息后,更新本地token申请状态,将区块编号+offset编码进token中,并通过申请方回调接口,向申请方发送token申请结果。

六、申请方等待一段时间,没有接收到token申请结果时,可以通过token申请状态查询接口,查询token申请处理进度。

七、各大区部署的区块交易事件监听程序,监听区块链网络token交易事件。接收到token交易事件后,向zookeeper发送通知,集内应用接收到zookeeper通知后,根据通知获取到的token交易所在区块编号,利用负载均衡算法,选择符合条件的区块链节点,从区块链网络中获取最新token信息,更新应用本地内存。

八、集内应用定时检查本地token版本,如果发现已过时,从区块链网络拉取最新token信息。

九、集内应用,验证token失效后,检查本地应用token版本是否过期,如果过期,触发异步更新机制,从区块链中拉取最新token信息。如果没有过期,返回token已失效信息。

本发明实施例利用分布式事务保证上链环节数据一致性;利用区块链技术进行交易排序;结合MQ、区块链、zookeeper(确认字符)、负载均衡技术,实现token应用线性一致性访问。

综上所述,本发明实施例一方面有效解决了token上链成功后,SN节点读取到了不一致的数据视图的问题,另一方面利用MQ(消息队列,Messsage Queue)与区块链技术结合,解决了因网络拥塞等情况导致的交易顺序性问题。

图3为本发明一实施例提供的基于bos链的令牌token应用线性一致性装置的结构示意图,如图3所示,该装置包括:第一模块201、第二模块202、第三模块203和第四模块204,其中:

其中,第一模块201,用于基于消息队列MQ分布式事务机制,将接收到的令牌token申请请求发送至消息队列MQ,并保存当前令牌token的申请状态;

第二模块202,用于基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送已上链成功的消息;

第三模块203,用于基于所述已上链成功的消息,进行第一次令牌token的申请状态更新;

第四模块204,用于在上链成功后等待接收消息队列MQ交易已确认的消息,进行第二次令牌token的申请状态更新,将区块编号编码进令牌token中,并发送令牌token申请结果。

本发明实施例提供的基于bos链的令牌token应用线性一致性装置具体可以用于执行上述实施例的基于bos链的令牌token应用线性一致性方法,其技术原理和有益效果类似,具体可参见上述实施例,此处不再赘述。

基于相同的发明构思,本发明实施例提供一种电子设备,参见图4,电子设备具体包括如下内容:处理器301、通信接口303、存储器302和通信总线304;

其中,处理器301、通信接口303、存储器302通过通信总线304完成相互间的通信;通信接口303用于实现各建模软件及智能制造装备模块库等相关设备之间的信息传输;处理器301用于调用存储器302中的计算机程序,处理器执行计算机程序时实现上述各方法实施例所提供的方法,例如,处理器执行计算机程序时实现下述步骤:基于消息队列MQ分布式事务机制,将接收到的令牌token申请请求发送至消息队列MQ,并保存当前令牌token的申请状态;基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送已上链成功的消息;基于所述已上链成功的消息,进行第一次令牌token的申请状态更新;在上链成功后等待接收消息队列MQ交易已确认的消息,进行第二次令牌token的申请状态更新,将区块编号编码进令牌token中,并发送令牌token申请结果。

基于相同的发明构思,本发明又一实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法实施例提供的方法,例如,基于消息队列MQ分布式事务机制,将接收到的令牌token申请请求发送至消息队列MQ,并保存当前令牌token的申请状态;基于所述令牌token申请请求执行令牌token上链程序,在上链成功后记录令牌token上链状态,并发送已上链成功的消息;基于所述已上链成功的消息,进行第一次令牌token的申请状态更新;在上链成功后等待接收消息队列MQ交易已确认的消息,进行第二次令牌token的申请状态更新,将区块编号编码进令牌token中,并发送令牌token申请结果。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。

此外,在本发明中,诸如“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

本文发布于:2023-04-13 10:32:09,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/85962.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图