基于区块链和智能合约的数据访问系统、方法转让专利

申请号 : CN202010577371.1

文献号 : CN111741000B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘江张然黄韬刘韵洁于非杨丹

申请人 : 北京邮电大学

摘要 :

本发明实施例提供了一种基于区块链和智能合约的数据访问系统、方法及移动基站,其中系统包括:多个缓存节点和内容提供服务器,以及设置在移动基站的多个缓存与区块链控制器;其中,缓存节点包括:至少一个设置在移动基站的移动边缘缓存节点和至少一个缓存有内容数据的第一用户终端;缓存与区块链控制器接收智能合约部署请求,确定智能合约执行节点;并生成智能合约描述;获得智能合约地址;目标缓存节点,用于基于智能合约地址获得智能合约描述,并向第二用户终端发送目标数据;第二用户终端,接收目标数据并向目标缓存节点发送内容传输收据;智能合约执行节点,用于执行智能合约。本发明实施例能够实现能够集中管控与调度。

权利要求 :

1.一种基于区块链和智能合约的数据访问系统,其特征在于,包括:多个缓存节点和内容提供服务器,以及设置在移动基站的多个缓存与区块链控制器;其中,缓存节点包括:至少一个设置在移动基站的移动边缘缓存节点和至少一个缓存有内容数据的第一用户终端;

所述内容提供服务器,用于接收第二用户终端发送的包含目标数据标识的数据访问请求;基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定是否有缓存节点缓存有目标数据;若有,则向所述第二用户终端所属的本地基站的缓存与区块链控制器发送智能合约部署请求;

所述缓存与区块链控制器,用于接收所述智能合约部署请求,基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定至少一个目标缓存节点,从目标缓存节点中,确定至少一个智能合约执行节点;并生成智能合约描述,将所述智能合约描述发送至所述智能合约执行节点进行存储;获得智能合约地址,并将所述智能合约地址发送至所述内容提供服务器;所述智能合约描述中携带有付款信息,报酬信息,以及智能合约执行节点信息;

所述智能合约地址为智能合约描述的链接地址;

所述内容提供服务器,还用于将所述智能合约地址发送至所述第二用户终端;

所述第二用户终端,还用于基于所述区块链或智能合约描述,获得目标缓存节点的标识,并将所述智能合约地址发送至所述目标缓存节点;

所述目标缓存节点,用于基于所述智能合约地址获得所述智能合约描述,并向所述第二用户终端发送所述目标数据;

所述第二用户终端,进一步接收所述目标数据,并向所述目标缓存节点发送内容传输收据;

所述目标缓存节点,进一步根据所述智能合约描述中的智能合约执行节点信息,将所述内容传输收据,发送至所述智能合约执行节点;

所述智能合约执行节点,用于从所述第二用户终端获得支付费用,按照所述智能合约描述,分别向所述目标缓存节点、所述内容提供服务器以及所述智能合约执行节点支付相应报酬,以执行智能合约;或者,用于从所述内容提供服务器获得支付费用,按照所述智能合约描述,分别向所述目标缓存节点以及所述智能合约执行节点支付相应报酬,以执行智能合约。

2.根据权利要求1所述的系统,其特征在于,所述缓存与区块链控制器,基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定至少一个目标缓存节点,从目标缓存节点中,确定至少一个智能合约执行节点,包括:

获取各个目标缓存节点存储在区块链中的历史行为数据;根据各个目标缓存节点的所述历史行为数据,确定各个目标缓存节点的可信度;所述可信度用于表征该缓存节点作为智能合约执行节点时,按照智能合约描述执行的概率;

根据各个所述目标缓存节点的可信度,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点,其中一个为主智能合约执行节点,其他为从智能合约执行节点;

所述主智能合约执行节点,具体用于:与各个从智能合约执行节点进行交互,获取各个从智能合约执行节点的交易真实性确认信息,并基于实用拜占庭容错协议,自身的交易真实性确认信息,以及各个从智能合约执行节点发送的交易真实性确认信息,确定是否执行智能合约;如果确定执行,则按照所述智能合约描述,分别向所述目标缓存节点、内容提供服务器以及所述智能合约执行节点支付相应报酬。

3.根据权利要求2所述的系统,其特征在于,所述缓存与区块链控制器,根据各个所述目标缓存节点的可信度,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点,包括:

根据预设表达式,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点,所述预设表达式为:

上式中, 表示所述智能合约执行节点的预设数量, 表示第 个智能合约执行节点的可信度。

4.根据权利要求2所述的系统,其特征在于,所述主智能合约执行节点,进一步在按照所述智能合约描述,分别向所述目标缓存节点、所述内容提供服务器以及所述智能合约执行节点支付相应报酬,以执行智能合约之后,将内容分发记录,转账记录以及各个所述智能合约执行节点对该交易的交易真实性确认信息,发送至区块链共识算法见证节点,所述区块链共识算法见证节点为:从多个缓存节点和内容提供服务器中定时选举出的;

所述区块链共识算法见证节点,用于:将所述内容分发记录、所述转账记录以及各个所述智能合约执行节点对该交易的交易真实性确认信息作为历史行为数据,写入所述区块链的新区块中;

根据所述主智能合约执行节点发送的所述交易真实性确认信息,确定所述新区块中内容是否真实;

如果所述新区块中的内容为真实的,则将所述新区块添加至所述区块链上。

5.根据权利要求1所述的系统,其特征在于,每个移动基站对应多个缓存与区块链控制器;

所述第二用户终端所属的本地基站的缓存与区块链控制器为:从第二用户终端所属的本地基站对应的多个缓存与区块链控制器定时选举出的。

6.根据权利要求1所述的系统,其特征在于,所述缓存与区块链控制器,进一步用于:建立马尔可夫决策过程MDP,所述MDP中包括:预设的状态空间,奖励函数以及动作空间,所述状态空间中的状态所表征的信息中包含各个缓存节点的分享意愿;所述奖励函数包含:各个所述缓存节点,与所述缓存节点向用户终端提供所缓存的内容数据时所产生的流量之间的关系;所述动作空间中的动作表征各个缓存节点与该缓存节点所缓存内容数据的对应关系;所述分享意愿为基于每次用户终端访问数据时缓存节点所获得的报酬与预期报酬之间的关系确定的;

定时获取各个缓存节点在历史访问数据的过程中,所获得的报酬,并基于报酬确定各个缓存节点的新的分享意愿,利用新的分享意愿更新所述状态,获得更新后的状态;

将所述更新后的状态输入预先训练好的深度Q网络DQN中,获得新的动作,所述新的动作表征:各个缓存节点与该缓存节点所缓存内容数据的新的对应关系;向所述缓存节点发送所述新的对应关系,以及更新所述区块链中所存储的对应关系;所述DQN为预先基于样本状态空间、样本奖励函数以及样本动作空间训练得到的;

所述缓存节点还用于根据所述新的对应关系,对该缓存节点所缓存的数据内容进行更新。

7.一种基于区块链和智能合约的数据访问方法,其特征在于,应用于权利要求1‑6任一项所述的基于区块链和智能合约的数据访问系统,所述方法包括:内容提供服务器接收第二用户终端发送的包含目标数据标识的数据访问请求;基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定是否有缓存节点缓存有目标数据;若有,则向所述第二用户终端所属的本地基站的缓存与区块链控制器发送智能合约部署请求;

缓存与区块链控制器接收所述智能合约部署请求,基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定至少一个目标缓存节点,从目标缓存节点中,确定至少一个智能合约执行节点;并生成智能合约描述,将所述智能合约描述发送至所述智能合约执行节点进行存储;获得智能合约地址,并将所述智能合约地址发送至所述内容提供服务器;所述智能合约描述中携带有付款信息,报酬信息,以及智能合约执行节点信息;所述智能合约地址为智能合约描述的链接地址;

内容提供服务器将所述智能合约地址发送至所述第二用户终端;

第二用户终端基于所述区块链或智能合约描述,获得目标缓存节点的标识,并将所述智能合约地址发送至所述目标缓存节点;

目标缓存节点基于所述智能合约地址获得所述智能合约描述,并向所述第二用户终端发送所述目标数据;

所述第二用户终端进一步接收所述目标数据,并向所述目标缓存节点发送内容传输收据;

所述目标缓存节点进一步根据所述智能合约描述中的智能合约执行节点信息,将所述内容传输收据,发送至所述智能合约执行节点;

智能合约执行节点从所述第二用户终端获得支付费用,按照所述智能合约描述,分别向所述目标缓存节点、所述内容提供服务器以及所述智能合约执行节点支付相应报酬,以执行智能合约;或者,从所述内容提供服务器获得支付费用,按照所述智能合约描述,分别向所述目标缓存节点以及所述智能合约执行节点支付相应报酬,以执行智能合约。

8.根据权利要求7所述的方法,其特征在于,所述基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定至少一个目标缓存节点,从目标缓存节点中,确定至少一个智能合约执行节点的步骤,包括:

获取各个目标缓存节点存储在区块链中的历史行为数据;根据各个目标缓存节点的所述历史行为数据,确定各个目标缓存节点的可信度;所述可信度用于表征该缓存节点作为智能合约执行节点时,按照智能合约描述执行的概率;

根据各个所述目标缓存节点的可信度,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点,其中一个为主智能合约执行节点,其他为从智能合约执行节点;

所述分别向所述目标缓存节点、所述内容提供服务器以及所述智能合约执行节点支付相应报酬,以执行智能合约的步骤,包括:主智能合约执行节点与各个从智能合约执行节点进行交互,获取各个从智能合约执行节点的交易真实性确认信息,并基于实用拜占庭容错协议,自身的交易真实性确认信息,以及各个从智能合约执行节点发送的交易真实性确认信息,确定是否执行智能合约;如果确定执行,则按照所述智能合约描述,分别向所述目标缓存节点、内容提供服务器以及所述智能合约执行节点支付相应报酬。

9.根据权利要求8所述的方法,其特征在于,所述缓存与区块链控制器,根据各个所述目标缓存节点的可信度,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点的步骤,包括:

所述缓存与区块链控制器,根据预设表达式,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点,所述预设表达式为:上式中, 表示所述智能合约执行节点的预设数量, 表示第 个智能合约执行节点的可信度。

说明书 :

基于区块链和智能合约的数据访问系统、方法

技术领域

[0001] 本发明涉及数据缓存技术领域,特别是涉及一种基于区块链和智能合约的数据访问系统、方法及移动基站。

背景技术

[0002] 随着互联网技术与应用飞速发展,互联网的用户数量快速增长,随之而来的是网络流量正以前所未有的速度爆发。为了有效解决网络流量爆炸的问题,网络缓存被广泛地
研究与部署。
[0003] 现有的网络缓存分享系统为P2P(peer‑to‑peer,个人对个人)缓存系统,也可以称为对等网络缓存系统,如图1所示,通常包含用户终端1、用户终端 2和用户终端3等多个用
户终端和一个调度服务器110,调度服务器中存储有每个用户终端与所缓存的内容的对应
关系。例如:当用户终端1需要访问内容时,首先向调度服务器110发送一个访问请求,调度
服务器110将缓存待访问内容的用户终端2的信息发送给用户终端1,用户终端1向缓存有待
访问内容的用户终端2支付相应积分,用户终端2获得该积分后,将待访问内容发送给用户
终端1。
[0004] 由于现有技术中的P2P缓存系统中,用户终端在访问数据时,只需要向缓存有待访问内容的用户终端支付相应积分,缓存有待访问内容的用户终端收到积分后,将待访问内
容发送给请求的用户终端。因此,在整个访问过程中,缺少集中的管控与调度。

发明内容

[0005] 本发明实施例的目的在于提供一种基于区块链和智能合约的数据访问系统、方法及移动基站,以实现能够集中管控与调度。具体技术方案如下:
[0006] 本发明实施例的第一方面,提供了一种基于区块链和智能合约的数据访问系统,包括:多个缓存节点和内容提供服务器,以及设置在移动基站的多个缓存与区块链控制器;
其中,缓存节点包括:至少一个设置在移动基站的移动边缘缓存节点和至少一个缓存有内
容数据的第一用户终端;
[0007] 所述内容提供服务器,用于接收第二用户终端发送的包含目标数据标识的数据访问请求;基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定否有缓存节点
缓存有目标数据;若有,则向所述第二用户终端所属的本地基站的缓存与区块链控制器发
送智能合约部署请求;
[0008] 所述缓存与区块链控制器,用于接收所述智能合约部署请求,基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定至少一个目标缓存节点,从目标缓存节点
中,确定至少一个智能合约执行节点;并生成智能合约描述,将所述智能合约描述发送至所
述智能合约执行节点进行存储;获得智能合约地址,并将所述智能合约地址发送至所述内
容提供服务器;所述智能合约描述中携带有付款信息,报酬信息,以及智能合约执行节点信
息;所述智能合约地址为智能合约描述的链接地址;
[0009] 所述内容提供服务器,还用于将所述智能合约地址发送至所述第二用户终端;
[0010] 所述第二用户终端,还用于基于所述区块链或智能合约描述,获得目标缓存节点的标识,并将所述智能合约地址发送至所述目标缓存节点;
[0011] 所述目标缓存节点,用于基于所述智能合约地址获得所述智能合约描述,并向所述第二用户终端发送所述目标数据;
[0012] 所述第二用户终端,进一步接收所述目标数据,并向所述目标缓存节点发送内容传输收据;
[0013] 所述目标缓存节点,进一步根据所述智能合约描述中的智能合约执行节点信息,将所述内容传输收据,发送至所述智能合约执行节点;
[0014] 所述智能合约执行节点,用于从所述第二用户终端获得支付费用,按照所述智能合约描述,分别向所述目标缓存节点、所述内容提供服务器以及所述智能合约执行节点支
付相应报酬,以执行智能合约;或者,用于从所述内容提供服务器获得支付费用,按照所述
智能合约描述,分别向所述目标缓存节点以及所述智能合约执行节点支付相应报酬,以执
行智能合约。
[0015] 可选地,所述缓存与区块链控制器,基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定至少一个目标缓存节点,从目标缓存节点中,确定至少一个智能合约
执行节点,包括:
[0016] 获取各个目标缓存节点存储在区块链中的历史行为数据;根据各个目标缓存节点的所述历史行为数据,确定各个目标缓存节点的可信度;所述可信度用于表征该缓存节点
作为智能合约执行节点时,按照智能合约描述执行的概率;
[0017] 根据各个所述目标缓存节点的可信度,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点,其中一个为主智能合约执行节点,其他为从智能合约执行节点;
[0018] 所述主智能合约执行节点,具体用于:与各个从智能合约执行节点进行交互,获取各个从智能合约执行节点的交易真实性确认信息,并基于实用拜占庭容错协议,自身的交
易真实性确认信息,以及各个从智能合约执行节点发送的交易真实性确认信息,确定是否
执行智能合约;如果确定执行,则按照所述智能合约描述,分别向所述目标缓存节点、内容
提供服务器以及所述智能合约执行节点支付相应报酬。
[0019] 可选地,所述缓存与区块链控制器,根据各个所述目标缓存节点的可信度,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点,包括:
[0020] 根据预设表达式,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点,所述预设表达式为:
[0021]
[0022] 上式中,NP表示所述智能合约执行节点的预设数量,JΩi表示第i个智能合约执行节点的可信度。
[0023] 可选地,所述主智能合约执行节点,进一步在按照所述智能合约描述,分别向所述目标缓存节点、所述内容提供服务器以及所述智能合约执行节点支付相应报酬,以执行智
能合约之后,将内容分发记录,转账记录以及各个所述智能合约执行节点对该交易的交易
真实性确认信息,发送至区块链共识算法见证节点,所述区块链共识算法见证节点为:从多
个缓存节点和内容提供服务器中定时选举出的;
[0024] 所述区块链共识算法见证节点,用于:
[0025] 将所述内容分发记录,所述转账记录,以及各个所述智能合约执行节点对该交易的交易真实性确认信息作为历史行为数据,作为历史行为数据写入所述区块链的新区块
中;
[0026] 根据所述主智能合约执行节点发送的所述交易真实性确认信息,确定所述新区块中内容是否真实;
[0027] 如果所述新区块中的内容为真实的,则将所述新区块添加至所述区块链上。
[0028] 可选地,每个移动基站对应多个缓存与区块链控制器;
[0029] 所述第二用户终端所属的本地基站的缓存与区块链控制器为:从第二用户终端所属的本地基站对应的多个缓存与区块链控制器定时选举出的。
[0030] 可选地,所述缓存与区块链控制器,进一步用于:
[0031] 建立MDP,所述MDP中包括:预设的状态空间,奖励函数以及动作空间,所述状态空间中的状态所表征的信息中包含各个缓存节点的分享意愿;所述奖励函数包含:各个所述
缓存节点,与所述缓存节点向用户终端提供所缓存的内容数据时所产生的流量之间的关
系;所述动作空间中的动作表征各个缓存节点与该缓存节点所缓存内容数据的对应关系;
所述分享意愿为基于每次用户终端访问数据时缓存节点所获得的报酬与预期报酬之间的
关系确定的;
[0032] 定时获取各个缓存节点在历史访问数据的过程中,所获得的报酬,并基于报酬确定各个缓存节点的新的分享意愿,利用新的分享意愿更新所述状态,获得更新后的状态;
[0033] 将所述更新后的状态输入预先训练好的DQN中,获得新的动作,所述新的动作表征:各个缓存节点与该缓存节点所缓存内容数据的新的对应关系;向所述缓存节点发送所
述新的对应关系,以及更新所述区块链中所存储的对应关系;所述DQN为预先基于样本状态
空间、样本奖励函数以及样本动作空间训练得到的;
[0034] 所述缓存节点还用于根据所述新的对应关系,对该缓存节点所缓存的数据内容进行更新。
[0035] 本发明实施例的第二方面,提供了一种基于区块链和智能合约的数据访问方法,应用于上述任一项所述的基于区块链和智能合约的数据访问系统,所述系统包括:多个缓
存节点和内容提供服务器,以及设置在移动基站的多个缓存与区块链控制器;其中,缓存节
点包括:至少一个设置在移动基站的移动边缘缓存节点和至少一个缓存有内容数据的第一
用户终端;
[0036] 所述方法包括:
[0037] 所述内容提供服务器,接收第二用户终端发送的包含目标数据标识的数据访问请求;基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定否有缓存节点缓存
有目标数据;若有,则向所述第二用户终端所属的本地基站的缓存与区块链控制器发送智
能合约部署请求;
[0038] 所述缓存与区块链控制器,接收所述智能合约部署请求,基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定至少一个目标缓存节点,从目标缓存节点中,确
定至少一个智能合约执行节点;并生成智能合约描述,将所述智能合约描述发送至所述智
能合约执行节点进行存储;获得智能合约地址,并将所述智能合约地址发送至所述内容提
供服务器;所述智能合约描述中携带有付款信息,报酬信息,以及智能合约执行节点信息;
所述智能合约地址为智能合约描述的链接地址;
[0039] 所述内容提供服务器,将所述智能合约地址发送至所述第二用户终端;
[0040] 所述第二用户终端,基于所述区块链或智能合约描述,获得目标缓存节点的标识,并将所述智能合约地址发送至所述目标缓存节点;
[0041] 所述目标缓存节点,基于所述智能合约地址获得所述智能合约描述,并向所述第二用户终端发送所述目标数据;
[0042] 所述第二用户终端,接收所述目标数据,并向所述目标缓存节点发送内容传输收据;
[0043] 所述目标缓存节点,根据所述智能合约描述中的智能合约执行节点信息,将所述内容传输收据,发送至所述智能合约执行节点;
[0044] 所述智能合约执行节点,从所述第二用户终端获得支付费用,按照所述智能合约描述,分别向所述目标缓存节点、所述内容提供服务器以及所述智能合约执行节点支付相
应报酬,以执行智能合约;或者,从所述内容提供服务器获得支付费用,按照所述智能合约
描述,分别向所述目标缓存节点以及所述智能合约执行节点支付相应报酬,以执行智能合
约。
[0045] 本发明实施例的再一方面,还提供了一种移动基站,应用于上述任一项所述的基于区块链和智能合约的数据访问系统,所述移动基站包括:多个缓存与区块链控制器,以及
移动边缘缓存节点,第二用户终端所属的本地基站的缓存与区块链控制器为:从第二用户
终端所属的本地基站对应的多个缓存与区块链控制器定时选举出的。
[0046] 本发明实施例有益效果:
[0047] 本发明实施例提供的一种基于区块链和智能合约的数据访问系统、方法及移动基站,通过缓存与区块链控制器部署智能合约,确定至少一个目标缓存节点,从目标缓存节点
中,确定至少一个智能合约执行节点;生成智能合约描述,并将所述智能合约描述发送至所
述智能合约执行节点进行存储,获得智能合约地址,并将所述智能合约地址发送至所述内
容提供服务器;目标缓存提供者向第二用户终端发送目标数据,并接收用户终端发送的内
容传输收据,在智能合约执行节点接收到内容传输收据后,向目标缓存提供者、内容提供服
务器以及智能合约执行节点支付相应报酬。在本发明实施例中,每一次用户访问内容数据
的过程中,均由缓存与区块链控制器统一管理与调度。
[0048] 当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

[0049] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的实施例。
[0050] 图1为现有技术中提供的网络缓存分享系统的结构示意图;
[0051] 图2为本发明实施例提供的基于区块链和智能合约的数据访问系统的一种结构示意图;
[0052] 图3为本发明实施例提供的基于区块链和智能合约的数据访问系统的另一种结构示意图;
[0053] 图4为本发明实施例提供的基于区块链和智能合约的数据访问方法的一种交互示意图;
[0054] 图5为本发明实施例提供的基于区块链和智能合约的数据访问方法的另一种交互示意图。

具体实施方式

[0055] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0056] 如图2所示,本发明实施例首先提供了一种基于区块链和智能合约的数据访问系统,包括:多个缓存节点和内容提供服务器280,以及设置在移动基站 270的多个缓存与区
块链控制器260;其中,缓存节点包括:至少一个设置在移动基站270的移动边缘缓存节点
250和至少一个缓存有内容数据的第一用户终端210。
[0057] 在本发明实施例中,内容提供服务器为存储有大量内容数据的服务器,该内容提供服务器可以为一个服务器,也可以为一个服务器集群。内容提供服务器可以利用回传网
络与移动基站通信连接,移动基站可以为蜂窝网基站。
[0058] 如图3所示,本发明实施例提供的基于区块链和智能合约的数据访问系统中还包括设置在移动基站的网络控制器290,至少一个第一用户终端210之间在网络控制器290的
控制下,通过D2D(Device‑to‑Device,设备到设备)链路互相通信连接。
[0059] 本发明实施例中的缓存节点包括:至少一个设置在移动基站的移动边缘缓存节点,以及至少一个第一用户终端。其中,移动边缘缓存节点可以为由第三方提供的,用于缓
存数据内容的服务器。如图2所示,至少一个第一用户终端之间互相通信连接,且至少一个
第一用户终端可以通过无线接入点240与移动基站连接。因此,第一用户终端和移动边缘缓
存节点均可以用于缓存内容提供服务器所提供的内容数据。因此,能够充分利用整个基于
区块链和智能合约的数据访问系统中的缓存资源,避免缓存资源的浪费。
[0060] 内容提供服务器,用于接收第二用户终端220发送的包含目标数据标识的数据访问请求;基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定否有缓存节点
缓存有目标数据;若有,则向第二用户终端所属的本地基站的缓存与区块链控制器发送智
能合约部署请求。
[0061] 在用户终端想要访问数据内容时,可以向内容提供服务器发送包含目标数据标识的数据访问请求,内容提供服务器即可接收到该数据访问请求。
[0062] 在本发明实施例提供的基于区块链和智能合约的数据访问系统中,部署有分布式区块链,其中区块链中的内容可以分别存储在各个缓存节点,该区块链中可以预先存储数
据内容与缓存节点的对应关系。内容提供服务器可以通过与缓存节点交互,获取该对应关
系,并根据该对应关系,确定是否有缓存节点缓存有目标数据。
[0063] 此处需要说明的是,在本发明实施例提供的基于区块链和智能合约的数据访问系统中,可以部署多个移动基站,其中具体部署的数量可以根据整个互联网部署要求确定。例
如,按照实际需求,一个城市中多个不同区域分别部署一个移动基站。其中,与第二用户终
端通过无线接入点240通信连接的移动基站为本地基站。因此,在确定缓存节点中缓存有目
标数据之后,则可以向第二用户终端所属的本地基站的缓存与区块链控制器发送智能合约
部署请求,以减少消耗的网络流量,进而减小数据访问过程中的成本,而且还能够提高访问
数据内容的速度。
[0064] 缓存与区块链控制器,用于接收智能合约部署请求,基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定至少一个目标缓存节点,从目标缓存节点中,确定至
少一个智能合约执行节点;并生成智能合约描述,将智能合约描述发送至智能合约执行节
点进行存储;获得智能合约地址,并将智能合约地址发送至内容提供服务器;智能合约描述
中携带有付款信息,报酬信息,以及智能合约执行节点信息;智能合约地址为智能合约描述
的链接地址。
[0065] 在本发明实施例中,在对内容提供服务器所提供的内容进行缓存的过程中,当一个数据内容过大时,可以将该数据内容拆分为多个子数据内容,并分别缓存至不同的缓存
节点中;也可以将一个数据内容分别缓存至不同的缓存节点中,这些缓存节点可以为位于
不同移动基站中的移动边缘缓存节点,或者第一用户终端。
[0066] 缓存与区块链控制器可以接收内容提供服务器发送的智能合约部署请求,并从区块链中获取数据内容与缓存节点的对应关系,从而确定缓存有目标数据的目标缓存节点的
数量,以及各个目标缓存节点的标识。缓存与区块链控制器可以从至少一个目标缓存节点
中确定至少一个智能合约节点,即,从至少一个目标缓存节点中选择预设数量个目标缓存
节点作为智能合约执行节点。
[0067] 缓存与区块链控制器可以生成智能合约描述,该智能合约描述中可以携带付款信息,报酬信息以及智能合约执行节点信息。其中,付款信息为用户获得所访问的目标数据需
要支付的费用。报酬信息包括:缓存节点提供缓存服务所应该获得的报酬,内容提供服务器
提供目标内容应该获得的报酬,以及智能合约执行节点执行智能合约应该获得的报酬。或
者,付款信息为内容提供服务器需要支付的费用,相应地,报酬信息包括:缓存节点提供缓
存服务所应该获得的报酬,以及智能合约执行节点执行智能合约应该获得的报酬。
[0068] 智能合约执行节点信息为智能合约执行节点的标识。此外,智能合约描述中还可以包括:目标数据标识,内容提供服务器的标识,以及第二用户终端的标识。
[0069] 缓存与区块链控制器在生成智能合约描述之后,可以将智能合约描述发送至智能合约执行节点进行存储,智能合约执行节点启动智能合约,即,使智能合约对应的程序开始
执行,并向缓存与区块链控制器返回一个智能合约描述地址,该智能合约描述地址为智能
合约描述的链接地址,例如,智能合约描述地址可以为URL(Uniform Resource Locator,统
一资源定位符)。缓存与区块链控制器将智能合约描述第一发送至内容提供服务器。
[0070] 内容提供服务器,还用于将智能合约地址发送至第二用户终端。
[0071] 内容提供服务器在接收到智能合约地址之后,可以将智能合约地址发送至第二用户终端。
[0072] 第二用户终端,还用于基于区块链或智能合约描述,获得目标缓存节点的标识,并将智能合约地址发送至目标缓存节点。
[0073] 第二用户终端在接收到智能合约地址之后,可以通过访问智能合约地址,获得智能合约描述,并从智能合约描述中获得目标缓存节点的标识。第二用户终端,也可以从区块
链中的数据内容与缓存节点的对应关系,获得目标缓存节点的标识,并将智能合约地址发
送至目标缓存节点。此处需要说明的是,如果有多个目标缓存节点时,优先选择由位于本地
网络中的目标缓存节点提供服务,即,第二用户终端将智能合约地址发送至位于本地网络
中的目标缓存节点中,也即,发送给位于本地基站中的移动边缘缓存节点,或者与第二用户
终端通过 D2D通信连接的第一用户终端。
[0074] 目标缓存节点,用于基于智能合约地址获得智能合约描述,并向第二用户终端发送目标数据。
[0075] 目标缓存节点在接收到智能合约地址之后,可以通过访问智能合约地址获得智能合约描述,并向第二用户终端发送目标数据。当目标数据的数据量较大时,可以分多次发送
目标数据。
[0076] 第二用户终端,进一步接收目标数据,并向目标缓存节点发送内容传输收据。
[0077] 第二用户终端在接收到目标数据之后,则向目标缓存节点发送内容传输收据,该内容传输收据中携带有所接收目标数据的标识,还可以携带发送内容传输收据的目标缓存
节点的标识。当目标缓存节点接收到内容传输收据,表明第二用户终端已成功接收目标数
据。当所接收到的内容传输收据的数量,与发送目标数据的次数相同时,或者接收到的内容
传输收据为目标缓存节点最后一次发送的目标数据对应的内容传输收据,则表明第二用户
终端已全部接收目标数据。
[0078] 目标缓存节点,进一步根据智能合约描述中的智能合约执行节点信息,将内容传输收据,发送至智能合约执行节点。
[0079] 目标缓存节点,可以通过访问智能合约地址获得智能合约描述,并根据智能合约描述中的智能合约执行节点信息,将内容传输收据发送至智能合约执行节点。
[0080] 智能合约执行节点,用于从第二用户终端获得支付费用,按照智能合约描述,分别向目标缓存节点、内容提供服务器以及智能合约执行节点支付相应报酬,以执行智能合约;
或者,用于从内容提供服务器获得支付费用,按照智能合约描述,分别向目标缓存节点以及
智能合约执行节点支付相应报酬,以执行智能合约。
[0081] 智能合约执行节点在接收到内容传输收据之后,可以将预先从第二用户终端获得的支付费用,按照智能合约描述,分别向目标缓存节点、内容提供服务器以及智能合约执行
节点支付相应报酬,以执行智能合约。
[0082] 或者,智能合约执行节点在接收到内容传输收据之后,可以将预先从内容提供服务器获得的支付费用,按照智能合约描述,分别向目标缓存节点以及智能合约执行节点支
付相应报酬,以执行智能合约。
[0083] 本发明实施例提供的基于区块链和智能合约的数据访问系统,通过缓存与区块链控制器部署智能合约,确定至少一个目标缓存节点,从目标缓存节点中,确定至少一个智能
合约执行节点;生成智能合约描述,并将所述智能合约描述发送至所述智能合约执行节点
进行存储,获得智能合约地址,并将所述智能合约地址发送至所述内容提供服务器;目标缓
存提供者向第二用户终端发送目标数据,并接收用户终端发送的内容传输收据,在智能合
约执行节点接收到内容传输收据后,向目标缓存提供者、内容提供服务器以及智能合约执
行节点支付相应报酬。在本发明实施例中,每一次用户访问数据的过程中,均由缓存与区块
链控制器统一管理与调度。
[0084] 作为本发明实施例一种可选的实施方式,缓存与区块链控制器,基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定至少一个目标缓存节点,从目标缓存节
点中,确定至少一个智能合约执行节点,包括:
[0085] 获取各个目标缓存节点存储在区块链中的历史行为数据;根据各个目标缓存节点的历史行为数据,确定各个目标缓存节点的可信度;可信度用于表征该缓存节点作为智能
合约执行节点时,按照智能合约描述执行的概率。
[0086] 可以从区块链中获取各个目标缓存节点中的历史行为数据,该历史行为数据可以包括:目标缓存节点在每次第二用户终端访问数据的过程中,该目标缓存节点作为智能合
约执行节点时的交易真实性确认信息,以及内容分发记录和转账记录。其中交易真实性确
认信息为是否同意按照智能合约执行智能合约。
[0087] 缓存与区块链控制器根据历史访问数据,确定每一次交易中,内容分发记录中是否分发内容,与交易真实性确认信息是否一致,并据此确定可信度。例如,针对某一次交易,
内容分发记录中存在目标缓存节点向第二用户终端发送目标数据,智能合约执行节点应该
执行智能合约向目标缓存节点发送报酬。此时,查看智能合约执行节点的交易真实性确认
信息,如果该智能合约执行节点是同意执行,那么该智能合约执行节点的可信度升高,反
之,则下降。可以根据每个智能合约执行节点参与的交易中,内容分发记录中是否分发内
容,与交易真实性确认信息相一致的次数,与总参与次数之间的比值,确定该智能合约执行
节点的可信度。
[0088] 根据各个目标缓存节点的可信度,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点,其中一个为主智能合约执行节点,其他为从智能合约执行节点。
[0089] 可以根据各个目标缓存节点的可信度,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点,例如,可以按照可信度的大小,从多个目标缓存节点中选择可信度
最大的多个缓存节点作为智能合约执行节点。智能合约执行节点的数量可以为预设数值,
因此,可以从各个目标节点中选择预设数值和缓存节点作为智能合约执行节点。
[0090] 可以按照各个智能合约执行节点可信度的大小,从多个智能合约执行几点中选择一个智能合约执行节点作为主智能合约执行节点,其他智能合约执行节点即为从智能合约
执行节点。
[0091] 主智能合约执行节点,具体用于:与各个从智能合约执行节点进行交互,获取各个从智能合约执行节点的交易真实性确认信息,并基于实用拜占庭容错协议,自身的交易真
实性确认信息,以及各个从智能合约执行节点发送的交易真实性确认信息,确定是否执行
智能合约;如果确定执行,则按照智能合约描述,分别向目标缓存节点、内容提供服务器以
及智能合约执行节点支付相应报酬。
[0092] 主智能合约执行节点,可以与第二用户终端、缓存节点以及内容提供服务器进行交互,并从第二用户终端获得支付费用,或者从内容提供服务者获得支付费用。主智能合约
执行节点从目标缓存节点获得内容传输收据,并将内容传输数据发送至多个从智能合约执
行节点,各个智能合约执行节点对根据内容传输收据确定交易真实性确认信息,该交易真
实性确认信息可以表征智能合约执行节点是否确认执行智能合约。
[0093] 各个从智能合约执行节点可以将各自的交易真实性确认信息发送至主智能合约执行节点,由主智能合约执行节点基于实用拜占庭容错协议,自身的交易真实性确认信息,
以及各个从智能合约执行节点发送的交易真实性确认信息,是否同意执行智能合约。具体
过程可以为:统计同意执行智能合约的智能合约执行节点的第一数量;利用预设的计算式
计算最少同意执行智能合约的执行节点的第二数量,其中N为智能合约执行节点的数
量;判断第一数量是否大于或等于第二数量;如果是,则主智能合约执行节点执行智能合
约。如果否,则主智能合约执行节点不执行智能合约。
[0094] 在本发明实施例中,根据各个目标缓存节点的历史行为数据,确定各个目标缓存节点的可信度,并根据可信度选择多个缓存节点作为智能合约执行节点。因此,所选择得到
的智能合约执行节点的可信度高,智能合约的执行准确性也高。此外,主智能合约执行节点
获取各个从智能合约执行节点的交易真实性确认信息,并基于实用拜占庭容错协议,自身
的交易真实性确认信息,以及各个从智能合约执行节点发送的交易真实性确认信息,确定
是否执行智能合约。因此,可以在一定程度上避免当其中一个智能合约执行节点因被黑客
攻击或者其他原因导致对是否同意执行智能合约做出错误决定,进而导致缓存节点在提供
缓存服务后无法得到相应报酬的情况。
[0095] 作为本发明实施例一种可选的实施方式,缓存与区块链控制器,根据各个目标缓存节点的可信度,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点,包括:
[0096] 根据预设表达式,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点,预设表达式为:
[0097]
[0098] 上式中,NP表示智能合约执行节点的预设数量,JΩi表示第i个智能合约执行节点的可信度。
[0099] 在从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点的过程中,可以将预设数量个目标缓存节点,以及该预设数量个目标缓存节点中各缓存节点的可信度,
代入预设表达式中,判断是否满足预设表达式,如果满足,则可以将该预设数量个目标缓存
节点作为智能合约执行节点。
[0100] 由于在本发明实施例中,在选择智能合约执行节点的过程中,充分考虑各个目标缓存节点的可信度,因此,使得所选择得到的智能合约执行节点的可信度较高。
[0101] 作为本发明实施例一种可选的实施方式,主智能合约执行节点,进一步在按照智能合约描述,分别向目标缓存节点、内容提供服务器以及智能合约执行节点支付相应报酬,
以执行智能合约之后,将内容分发记录,转账记录以及各个智能合约执行节点对该交易的
交易真实性确认信息,发送至区块链共识算法见证节点,该区块链共识算法见证节点为:从
多个缓存节点和内容提供服务器中定时选举出的。
[0102] 主智能合约执行节点可以将内容分发记录、转账记录以及各个智能合约执行节点对该交易的交易真实性确认信息发送至第二用户终端所属的本地基站的区块链共识算法
见证节点。其中内容分发记录中可以包含:在第二用户终端访问目标数据的过程中,提供目
标缓存节点的标识,该标识例如可以为ID (Identity document,身份证标识号)。转账记录
中可以包含:代币输入账户、代币输入数量以及输入代币的ID。其中代币可以表示费用,当
由第二用户终端支付费用时,则输入代币账户可以为该第二用户终端的支付账户。代币输
入数量表示支付的费用,输入代币的ID表示该条交易记录的标识。转账记录中还可以包括:
代币输出账户、代币输出数量以及输出代币的ID。当由内容提供服务器、缓存节点以及智能
合约执行节点接收报酬时,则输出代币账户可以为内容提供服务器、缓存节点以及智能合
约执行节点的收款账户。代币输出数量表示支付的费用,输出代币的ID表示该条交易记录
的标识。
[0103] 由于可以从多个缓存节点和内容提供服务器中选举出区块链共识算法见证节点,因此,可以按照预设的时间间隔,由缓存节点和内容提供服务器按照每个缓存节点和内容
提供服务器作为区块链共识算法见证节点时的历史行为,从多个缓存节点和内容提供服务
器中选举多个节点,作为区块链共识算法见证节点。具体选举过程可以为:缓存节点按照区
块链区块中所存储的内容分发记录,判断是否有为第二用户终端提供目标数据,但是区块
链中并未存储该次交易记录的情况,并以此对多个缓存节点和内容提供服务器进行选举。
内容服务提供者也可以采用判断是否存在第二用户访问数据内容,但是区块链中并未存储
该次交易的情况,并据此对多个缓存节点和内容提供服务器进行选举。
[0104] 需要说明的是,在主智能合约执行节点从第二用户终端获得支付费用时,便可知晓本次交易中代币输入账户。同样的,在主智能合约执行节点向目标缓存节点支付相应报
酬时,可以预先从区块链获取目标缓存节点对应的账户,并向该账户支付相应报酬。
[0105] 区块链共识算法见证节点,用于:
[0106] 将内容分发记录,转账记录,以及各个智能合约执行节点对该交易的交易真实性确认信息作为历史行为数据,写入区块链的新区块中。
[0107] 区块链共识算法见证节点可以将内容分发记录、转账记录,以及各个智能合约执行节点对该交易的交易真实性确认信息作为历史行为数据,写入新区块中。新区块的结构
可以如表1所示。其中新区块中包括:版本号、区块高度、时间戳、父块哈希值、交易数量、
Merkel根、内容服务列表以及内容代币交易记录区。其中内容服务列表中包括:第二用户终
端访问的目标数据标识,以及缓存该目标数据的缓存节点的标识。
[0108] 表1 新区块的结构
[0109]
[0110]
[0111]
[0112] 内容代币交易记录区包括:交易ID、内容分发区以及代币交易区。其中内容分发区包括:内容ID,以及提供该内容的缓存节点的ID;以及各个智能合约执行节点是否同意执行
智能合约。
[0113] 代币交易区包括:输入和输出;其中输入包括:代币输入账户、代币输入数量以及输入代币的ID;输出包括:代币输出账户、代币输出数量以及输出代币的ID。
[0114] 区块链共识算法见证节点,还可以用于:根据主智能合约执行节点发送的交易真实性确认信息,确定新区块中内容是否真实。
[0115] 可以根据各个智能合约执行节点发送的交易真实性确认信息,确定新区块中内容是否真实。具体过程可以为:统计同意执行智能合约的智能合约执行节点的第一数量;利用
预设的计算式 计算最少同意执行智能合约的执行节点的第二数量,其中N为智能合约
执行节点的数量;判断第一数量是否大于或等于第二数量;如果是,则区块链共识算法见证
节点确认新区块中的内容是真实的。如果否,则区块链共识算法见证节点确认新区块中的
内容是不真实的。
[0116] 区块链共识算法见证节点,还可以用于:如果新区块中的内容为真实的,则将新区块添加至区块链上。
[0117] 如果新区块中的内容为真实的,则将新区块添加至区块链上,例如可以添加至区块链中的主链上。在将该新区块添加至该主链上之后,还添加了 (N1为区块链共识算
法见证节点的数量)个区块之后,则新区块的内容将不可修改。
[0118] 作为本发明实施例一种可选的实施方式,每个移动基站对应多个缓存与区块链控制器。
[0119] 第二用户终端所属的本地基站的缓存与区块链控制器为:从第二用户终端所属的本地基站对应的多个缓存与区块链控制器定时选举出的。
[0120] 可以按照预设的时间间隔,由缓存节点和内容提供服务器对位于同一个移动基站中的各个缓存与区块链控制器进行选举,具体选举的过程为:第二用户终端可以根据历史
访问数据的过程中,各个缓存与区块链控制器是否及时响应访问请求,以及是否及时从缓
存节点中获得目标数据,并以此为依据从多个缓存与区块链控制器中选择一个控制器。移
动边缘缓存节点可以根据第二用户终端在历史访问数据的过程中,在向第二用户终端提供
了目标数据之后,是否收到了预期的报酬,并以此为依据从多个缓存与区块链控制器中选
择一个控制器。内容提供服务器可以根据在每一次用户历史访问数据的过程中,是否获得
预期的报酬,并以此为依据从多个缓存与区块链控制器中选择一个控制器。
[0121] 可以人为指定一个缓存节点,接收各个缓存节点和内容提供服务器发送的选择结果,并从多个缓存与区块链服务器中选择票数最多的一个缓存与控制器作为第二用户终端
所属的本地基站的缓存与区块链控制器。
[0122] 在本发明实施例中,通过对多个缓存与区块链控制器进行选举,确定第二用户终端所属的本地基站的缓存与区块链控制器。使得可以从多个缓存与区块链控制器中选择历
史处理能力较好的缓存与区块链控制器。
[0123] 作为本发明实施例一种可选的实施方式,缓存与区块链控制器,进一步用于:
[0124] 建立MDP(Markov Decision Process,马尔可夫决策过程),MDP中包括:预设的状态空间,奖励函数以及动作空间,状态空间中的状态所表征的信息中包含各个缓存节点的
分享意愿;奖励函数包含:各个缓存节点,与缓存节点向用户终端提供所缓存的内容数据时
所产生的流量之间的关系;动作空间中的动作表征各个缓存节点与该缓存节点所缓存内容
数据的对应关系;分享意愿为基于每次用户终端访问数据时缓存节点所获得的报酬与预期
报酬之间的关系确定的。
[0125] 状态空间中的状态所表征的信息中包含:各个缓存节点的分享意愿,在建立MDP的过程中,可以设置各个缓存节点的分享意愿初始值;各个第二用户终端在预设的一个时间
间隔内的请求频率;各个第二用户终端对不同内容数据的偏好程度,缓存与区块链控制器
可以获取各个第二用户终端的历史访问记录,并根据历史访问记录中的目标数据标识,以
及预设的各个不同类型目标数据对应的偏好程度,综合确定各个第二用户终端对各不同类
型的数据内容的偏好程度;各个第二用户终端历史访问数据内容的大小;每个内容数据对
应的分发报酬;从网络控制器中获取各个第二用户终端之间的链路信息,并根据链路信息
确定第二用户终端与其他第二用户终端之间的网络连通性,如果连通,网络连通性则为1,
如果不连通,网络连通性则为0;以及各个缓存节点的可用缓存空间,该可用缓存空间可以
从各个缓存节点中获取。
[0126] 缓存与区块链控制器,进一步用于定时获取各个缓存节点在历史访问数据的过程中,所获得的报酬,并基于报酬确定各个缓存节点的新的分享意愿,利用新的分享意愿更新
状态,获得更新后的状态。
[0127] 可以按照预设的时间间隔,获取各个缓存节点在历史访问数据的过程中,所获得的报酬。其中,可以获取从当前时刻至上一个获取所获得的报酬的时刻之间的时间段,所获
得的总报酬。接着可以基于上一个分享意愿,以及本次对应的报酬,确定新的分享意愿,上
一个分享意愿可以指,上一次获取各个缓存节点在历史访问数据的过程中所获得的报酬的
时刻所得到的分享意愿。
[0128] 报酬与分享意愿之间的关系为:将获取到的一个预设时间内各个缓存节点所获得的报酬,与该缓存节点的预期报酬进行比较,当报酬大于预设报酬时,分享意愿升高;当报
酬等于预设报酬时,分享意愿不变;当报酬小于预期报酬时,分享意愿降低。另外,还可以预
先设置获得的报酬之差与分享意愿增加值之间的对应关系,根据所获得的报酬与预期报酬
之差,查找该对应关系,即可得到分享意愿增加值,进而得到新的分享意愿。在得到新的分
享意愿之后,可以利用新的分享意愿更新状态,得到更新后的状态,即,更新后的状态中的
分享意愿为新的分享意愿。
[0129] 缓存与区块链控制器,进一步用于将更新后的状态输入预先训练好的DQN (Deep Q Networking,深度Q网络)中,获得新的动作,新的动作表征:各个缓存节点与该缓存节点
所缓存内容数据的新的对应关系;向缓存节点发送新的对应关系,以及更新区块链中所存
储的对应关系;DQN为预先基于样本状态空间、样本奖励函数以及样本动作空间训练得到
的。
[0130] 缓存与区块链控制器可以将更新后的状态,输入预先训练好的DQN中,获得新的动作,新的动作表征:各个缓存节点与该缓存节点所缓存内容数据的新的对应关系。在得到新
的对应关系之后,可以向缓存节点发送新的对应关系,以及更新区块链中所存储的对应关
系。
[0131] 在本发明实施例中,DQN为预先基于样本状态空间、样本动作空间以及样本奖励函数训练得到的。其中,样本奖励函数可以包含:各个所述缓存节点,与所述缓存节点向用户
终端提供所缓存的内容数据时所产生的流量之间的关系。
[0132] 需要说明的是,可以采用现有的DQN训练方法对本发明实施例提供的DQN 进行训练得到,本发明实施例对此不再赘述。由于在DQN训练的过程中,在每一次迭代过程中,可以
基于当前迭代过程中缓存节点为位于本地基站内的第二用户终端提供内容数据时所产生
的流量计算状态‑动作值,并用状态‑动作值计算策略DQN的新的网络参数。在这个过程中,
缓存节点的分享意愿影响到缓存节点提供缓存服务所产生的流量,而缓存节点的分享意愿
与缓存节点所获得的报酬相关;因此,训练完成的DQN可以根据缓存节点所获得的报酬确定
新的动作,即,可以基于各个缓存节点的分享意愿确定新的动作,并将内容数据优先分配给
分享意愿较低的缓存节点进行缓存。
[0133] 缓存节点还用于根据新的对应关系,对该缓存节点所缓存的数据内容进行更新。
[0134] 缓存节点在接收到新的对应关系之后,判断是否存在新的对应关系中不需要再缓存在本缓存节点的、但是已经缓存的数据内容,若是,则将该数据内容删除。判断是否存在
新的对应关系中需要缓存在本缓存节点的、但是目前并未缓存的数据内容,若是,则向内容
提供服务器发送获取数据内容的请求,由内容提供服务器将该数据内容发送至缓存节点进
行缓存。
[0135] 在本发明实施例中,可以根据历史访问数据的过程中,缓存节点的分享意愿,确定新的对应关系,并将内容数据优先分配给分享意愿较低的缓存节点,以均衡各缓存节点所
获得的报酬。此外,缓存与区块链控制器还可以根据第二用户终端对不同内容数据的偏好
程度,在确定对应关系的过程中,将第二用户终端比较偏好的内容数据优先缓存至与该第
二用户终端通过D2D链路互相通信连接的第一用户终端,或者第二用户终端所属的本地基
站的移动便于缓存节点中,以提高第二用户终端对目标数据的访问速度。
[0136] 如图4所示,一种基于区块链和智能合约的数据访问方法,应用于上述任一项的基于区块链和智能合约的数据访问系统,系统包括:多个缓存节点和内容提供服务器,以及设
置在移动基站的多个缓存与区块链控制器;其中,缓存节点包括:至少一个设置在移动基站
的移动边缘缓存节点和至少一个缓存有内容数据的第一用户终端。
[0137] 本发明实施例提供的区块链和智能合约的数据访问方法包括:
[0138] S401,内容提供服务器,接收第二用户终端发送的包含目标数据标识的数据访问请求;基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定否有缓存节点缓
存有目标数据。
[0139] S402,若有,内容提供服务器则向第二用户终端所属的本地基站的缓存与区块链控制器发送智能合约部署请求。
[0140] S403,缓存与区块链控制器,接收智能合约部署请求,基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定至少一个目标缓存节点,从目标缓存节点中,确定至
少一个智能合约执行节点;并生成智能合约描述。
[0141] S404,缓存与区块链控制器,将智能合约描述发送至智能合约执行节点进行存储。
[0142] S405,缓存与区块链控制器,获得智能合约地址。
[0143] S406,缓存与区块链控制器,将智能合约地址发送至内容提供服务器。智能合约描述中携带有付款信息,报酬信息,以及智能合约执行节点信息;智能合约地址为智能合约描
述的链接地址。
[0144] S407,内容提供服务器,将智能合约地址发送至第二用户终端。
[0145] S408,第二用户终端,基于区块链或智能合约描述,获得目标缓存节点的标识。
[0146] S409,第二用户终端,将智能合约地址发送至目标缓存节点。
[0147] S410,目标缓存节点,基于智能合约地址获得智能合约描述。
[0148] S411,目标缓存节点,向第二用户终端发送目标数据。
[0149] S412,第二用户终端,接收目标数据。
[0150] S413,第二用户终端,向目标缓存节点发送内容传输收据。
[0151] S414,目标缓存节点,根据智能合约描述中的智能合约执行节点信息,将内容传输收据,发送至智能合约执行节点。
[0152] S415,智能合约执行节点,从第二用户终端获得支付费用。
[0153] S416,智能合约执行节点,按照智能合约描述,分别向目标缓存节点、内容提供服务器以及智能合约执行节点支付相应报酬,以执行智能合约。
[0154] 或者,智能合约执行节点,从内容提供服务器获得支付费用,按照智能合约描述,分别向目标缓存节点以及智能合约执行节点支付相应报酬,以执行智能合约。
[0155] 本发明实施例提供的基于区块链和智能合约的数据访问方法,通过缓存与区块链控制器部署智能合约,确定至少一个目标缓存节点,从目标缓存节点中,确定至少一个智能
合约执行节点;生成智能合约描述,并将所述智能合约描述发送至所述智能合约执行节点
进行存储,获得智能合约地址,并将所述智能合约地址发送至所述内容提供服务器;目标缓
存提供者向第二用户终端发送目标数据,并接收用户终端发送的内容传输收据,在智能合
约执行节点接收到内容传输收据后,向目标缓存提供者、内容提供服务器以及智能合约执
行节点支付相应报酬。在本发明实施例中,每一次用户访问数据的过程中,均由缓存与区块
链控制器统一管理与调度。
[0156] 作为本发明一种可选地实施方式,基于预先存储在区块链中的数据内容与缓存节点的对应关系,确定至少一个目标缓存节点,从目标缓存节点中,确定至少一个智能合约执
行节点的步骤,包括:
[0157] 获取各个目标缓存节点存储在区块链中的历史行为数据;根据各个目标缓存节点的历史行为数据,确定各个目标缓存节点的可信度;可信度用于表征该缓存节点作为智能
合约执行节点时,按照智能合约描述执行的概率。
[0158] 根据各个目标缓存节点的可信度,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点,其中一个为主智能合约执行节点,其他为从智能合约执行节点。
[0159] 分别向目标缓存节点、内容提供服务器以及智能合约执行节点支付相应报酬,以执行智能合约的步骤,包括:
[0160] 主智能合约执行节点与各个从智能合约执行节点进行交互,获取各个从智能合约执行节点的交易真实性确认信息,并基于实用拜占庭容错协议,自身的交易真实性确认信
息,以及各个从智能合约执行节点发送的交易真实性确认信息,确定是否执行智能合约;如
果确定执行,则按照智能合约描述,分别向目标缓存节点、内容提供服务器以及智能合约执
行节点支付相应报酬。
[0161] 作为本发明一种可选地实施方式,缓存与区块链控制器,根据各个目标缓存节点的可信度,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点的步骤,包括:
[0162] 缓存与区块链控制器,根据预设表达式,从各个目标缓存节点中选择多个缓存节点作为智能合约执行节点,预设表达式为:
[0163]
[0164] 上式中,NP表示智能合约执行节点的预设数量,JΩi表示第i个智能合约执行节点的可信度。
[0165] 作为本发明一种可选地实施方式,在按照智能合约描述,分别向目标缓存节点、内容提供服务器以及智能合约执行节点支付相应报酬,以执行智能合约的步骤之后,如图4所
示,本发明实施例提供的基于区块链和智能合约的数据访问方法还可以包括:
[0166] S417,主智能合约执行节点将内容分发记录,转账记录以及各个智能合约执行节点对该交易的交易真实性确认信息,发送至区块链共识算法见证节点,区块链共识算法见
证节点为:从多个缓存节点和内容提供服务器中定时选举出的。
[0167] S418,区块链共识算法见证节点将内容分发记录以及转账记录作为历史行为数据写入区块链的新区块中。
[0168] S419,区块链共识算法见证节点根据主智能合约执行节点发送的交易真实性确认信息,确定新区块中内容是否真实。
[0169] S420,如果新区块中的内容为真实的,则区块链共识算法见证节点将新区块添加至区块链上。
[0170] 作为本发明一种可选地实施方式,每个移动基站对应多个缓存与区块链控制器。
[0171] 第二用户终端所属的本地基站的缓存与区块链控制器为:从第二用户终端所属的本地基站对应的多个缓存与区块链控制器定时选举出的。
[0172] 作为本发明一种可选地实施方式,如图5所示,本发明实施例提供的基于区块链和智能合约的数据访问方法还可以包括:
[0173] S501,缓存与区块链控制器建立MDP,MDP中包括:预设的状态空间,奖励函数以及动作空间,状态空间中的状态所表征的信息中包含各个缓存节点的分享意愿;奖励函数包
含:各个缓存节点,与缓存节点向用户终端提供所缓存的内容数据时所产生的流量之间的
关系;动作空间中的动作表征各个缓存节点与该缓存节点所缓存内容数据的对应关系;分
享意愿为基于每次用户终端访问数据时缓存节点所获得的报酬与预期报酬之间的关系确
定的。
[0174] S502,缓存与区块链控制器定时获取各个缓存节点在历史访问数据的过程中,所获得的报酬,并基于报酬确定各个缓存节点的新的分享意愿。
[0175] S503,缓存与区块链控制器利用新的分享意愿更新状态,获得更新后的状态。
[0176] S504,缓存与区块链控制器将更新后的状态输入预先训练好的DQN中,获得新的动作,新的动作表征:各个缓存节点与该缓存节点所缓存内容数据的新的对应关系。DQN为预
先基于样本状态空间、样本奖励函数以及样本动作空间训练得到的。
[0177] S505,缓存与区块链控制器向缓存节点发送新的对应关系。
[0178] S506,缓存与区块链控制器更新区块链中所存储的对应关系。
[0179] S507,缓存节点根据新的对应关系,对该缓存节点所缓存的数据内容进行更新。
[0180] 本发明实施例还提供了一种移动基站,应用于如上述任一项的基于区块链和智能合约的数据访问系统,移动基站包括:多个缓存与区块链控制器,以及移动边缘缓存节点,
第二用户终端所属的本地基站的缓存与区块链控制器为:从第二用户终端所属的本地基站
对应的多个缓存与区块链控制器定时选举出的。
[0181] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序
产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或
部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计
算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质
中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机
指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字
用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或
数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者
是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以
是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘
Solid State Disk(SSD))等。
[0182] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存
在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在
包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0183] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实
施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例
的部分说明即可。
[0184] 以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。