基于区块链的流量统计系统、方法及装置
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的流量统计系统、方法及装置。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种基于区块链的流量统计系统、方法及装置。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种基于区块链的流量统计系统,包括:
凭证发行方,所述凭证发行方用于向区块链网络提交针对业务提供方的第一转账交易,所述第一转账交易中包含第一交易额;
所述业务提供方,所述业务提供方用于根据业务请求方所请求的业务数据,向区块链网络提交针对所述业务请求方的第二转账交易,所述第二转账交易的第二交易额对应于所述业务数据的数据量;
内容分发网络,所述内容分发网络中各个节点用于在被选取为目标分发节点的情况下,向所述业务请求方传输所述业务数据;
所述业务请求方,所述业务请求方用于根据所述目标分发节点针对所述业务数据的实际传输量,向区块链网络提交针对所述目标分发节点的第三转账交易,所述第三转账交易的第三交易额对应于所述实际传输量;
区块链网络,所述区块链网络中的区块链节点用于将与所述第一交易额对等的流量凭证的所有权从所述凭证发行方转移至所述业务提供方,将与所述第二交易额对等的流量凭证的所有权从所述业务提供方转移至所述业务请求方,将与所述第三交易额对等的流量凭证的所有权从所述业务请求方转移至所述目标分发节点。
根据本说明书一个或多个实施例的第二方面,提出了一种基于区块链的流量统计方法,包括:
凭证发行方创建针对业务提供方的第一转账交易,所述第一转账交易中包含第一交易额;
所述凭证发行方向区块链网络提交所述第一转账交易,所述第一转账交易用于指示所述区块链网络中的区块链节点将与所述第一交易额对等的流量凭证的所有权从所述凭证发行方转移至业务提供方;所述业务提供方持有的流量凭证中与第二转账交易包含的第二交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第二转账交易的情况下转移至业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务请求方所请求的业务数据的数据量;
所述业务请求方持有的流量凭证中与第三转账交易包含的第三交易额对等的流量凭证的所有权被所述区块链节点在接收到所述第三转账交易的情况下转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量。
根据本说明书一个或多个实施例的第三方面,提出了一种基于区块链的流量统计方法,包括:
业务提供方创建针对业务请求方的第二转账交易,所述第二转账交易的第二交易额对应于所述业务请求方所请求的业务数据的数据量;凭证发行方持有的流量凭证中与第一转账交易中包含的第一交易额对等的流量凭证的所有权,被区块链网络中的区块链节点在接收到所述第一转账交易的情况下转移至所述业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交;
所述业务提供方向区块链网络提交所述第二转账交易,所述第二转账交易用于指示所述区块链网络中的区块链节点将与所述第二交易额对等的流量凭证的所有权从所述业务提供方转移至所述业务请求方;所述业务请求方持有的流量凭证中与第三转账交易包含的第三交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第三转账交易的情况下转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量。
根据本说明书一个或多个实施例的第四方面,提出了一种基于区块链的流量统计方法,包括:
内容分发网络中的目标分发节点向业务请求方传输所述业务请求方向业务提供方请求的业务数据;
所述业务请求方持有的流量凭证中与第三转账交易包含的第三交易额对等的流量凭证的所有权,被区块链网络中的区块链节点在接收到所述第三转账交易的情况下转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量;
所述业务提供方持有的流量凭证中与第二转账交易包含的第二交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第二转账交易的情况下转移至所述业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务请求方所请求的业务数据的数据量;
凭证发行方持有的流量凭证中与第一转账交易中包含的第一交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第一转账交易的情况下转移至所述业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交。
根据本说明书一个或多个实施例的第五方面,提出了一种基于区块链的流量统计方法,包括:
业务请求方创建针对目标分发节点的第三转账交易,所述第三转账交易包含的第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务请求方所请求的业务数据的实际传输量;
所述业务请求方向区块链网络提交所述第三转账交易,所述第三转账交易用于指示所述区块链网络中的区块链节点将与所述第三交易额对等的流量凭证的所有权从所述业务请求方转移至所述目标分发节点;
业务提供方持有的流量凭证中与第二转账交易包含的第二交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第二转账交易的情况下转移至所述业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务数据的数据量;
凭证发行方持有的流量凭证中与第一转账交易中包含的第一交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第一转账交易的情况下转移至所述业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交。
根据本说明书一个或多个实施例的第六方面,提出了一种基于区块链的流量统计方法,包括:
区块链网络中的区块链节点将与第一转账交易中包含的第一交易额对等的流量凭证的所有权从凭证发行方转移至业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交;
所述区块链节点将与第二转账交易中包含的第二交易额对等的流量凭证的所有权从所述业务提供方转移至业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务请求方所请求的业务数据的数据量;
将与第三转账交易中包含的第三交易额对等的流量凭证的所有权从所述业务请求方转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量。
根据本说明书一个或多个实施例的第七方面,提出了一种基于区块链的流量统计装置,包括:
创建单元,使凭证发行方创建针对业务提供方的第一转账交易,所述第一转账交易中包含第一交易额;
提交单元,使所述凭证发行方向区块链网络提交所述第一转账交易,所述第一转账交易用于指示所述区块链网络中的区块链节点将与所述第一交易额对等的流量凭证的所有权从所述凭证发行方转移至业务提供方;所述业务提供方持有的流量凭证中与第二转账交易包含的第二交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第二转账交易的情况下转移至业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务请求方所请求的业务数据的数据量;
所述业务请求方持有的流量凭证中与第三转账交易包含的第三交易额对等的流量凭证的所有权被所述区块链节点在接收到所述第三转账交易的情况下转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量。
根据本说明书一个或多个实施例的第八方面,提出了一种基于区块链的流量统计装置,包括:
创建单元,使业务提供方创建针对业务请求方的第二转账交易,所述第二转账交易的第二交易额对应于所述业务请求方所请求的业务数据的数据量;凭证发行方持有的流量凭证中与第一转账交易中包含的第一交易额对等的流量凭证的所有权,被区块链网络中的区块链节点在接收到所述第一转账交易的情况下转移至所述业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交;
提交单元,使所述业务提供方向区块链网络提交所述第二转账交易,所述第二转账交易用于指示所述区块链网络中的区块链节点将与所述第二交易额对等的流量凭证的所有权从所述业务提供方转移至所述业务请求方;所述业务请求方持有的流量凭证中与第三转账交易包含的第三交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第三转账交易的情况下转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量。
根据本说明书一个或多个实施例的第九方面,提出了一种基于区块链的流量统计装置,包括:
传输单元,使内容分发网络中的目标分发节点向业务请求方传输所述业务请求方向业务提供方请求的业务数据;
所述业务请求方持有的流量凭证中与第三转账交易包含的第三交易额对等的流量凭证的所有权,被区块链网络中的区块链节点在接收到所述第三转账交易的情况下转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量;
所述业务提供方持有的流量凭证中与第二转账交易包含的第二交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第二转账交易的情况下转移至所述业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务请求方所请求的业务数据的数据量;
凭证发行方持有的流量凭证中与第一转账交易中包含的第一交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第一转账交易的情况下转移至所述业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交。
根据本说明书一个或多个实施例的第十方面,提出了一种基于区块链的流量统计装置,包括:
创建单元,使业务请求方创建针对目标分发节点的第三转账交易,所述第三转账交易包含的第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务请求方所请求的业务数据的实际传输量;
提交单元,使所述业务请求方向区块链网络提交所述第三转账交易,所述第三转账交易用于指示所述区块链网络中的区块链节点将与所述第三交易额对等的流量凭证的所有权从所述业务请求方转移至所述目标分发节点;
业务提供方持有的流量凭证中与第二转账交易包含的第二交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第二转账交易的情况下转移至所述业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务数据的数据量;
凭证发行方持有的流量凭证中与第一转账交易中包含的第一交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第一转账交易的情况下转移至所述业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交。
根据本说明书一个或多个实施例的第十一方面,提出了一种基于区块链的流量统计装置,包括:
第一转移单元,使区块链网络中的区块链节点将与第一转账交易中包含的第一交易额对等的流量凭证的所有权从凭证发行方转移至业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交;
第二转移单元,使所述区块链节点将与第二转账交易中包含的第二交易额对等的流量凭证的所有权从所述业务提供方转移至业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务请求方所请求的业务数据的数据量;
第三转移单元,使将与第三转账交易中包含的第三交易额对等的流量凭证的所有权从所述业务请求方转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量。
根据本说明书一个或多个实施例的第十二方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第二方面、第三方面、第四方面、第五方面和第六方面中任一所述的方法。
根据本说明书一个或多个实施例的第十三方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第二方面、第三方面、第四方面、第五方面和第六方面中任一所述方法的步骤。
附图说明
图1是一示例性实施例提供的一种基于区块链的流量统计系统的架构示意图。
图2是一示例性实施例提供的一种基于区块链的流量统计方法的流程图。
图3是一示例性实施例提供的一种基于区块链的流量统计方法的交互图。
图4是一示例性实施例提供的一种基于区块链的流量统计示意图。
图5-8是一示例性实施例提供的另一种基于区块链的流量统计方法的流程图。
图9是一示例性实施例提供的一种设备的结构示意图。
图10是一示例性实施例提供的一种基于区块链的流量统计装置的框图。
图11-14是一示例性实施例提供的另一种基于区块链的流量统计装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
不论是公有链、私有链还是联盟链,都可能提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑,这是以太坊区别于比特币区块链技术的最大挑战。以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,虚拟机直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”)。部署在区块链上的智能合约可以是字节码的形式。
需要说明的是,接入区块链的用户在区块链上发起的请求的类型,具体可以是指传统的区块链中所采用的交易(transaction)。当然,接入区块链的用户在区块链上发起的请求的类型,具体也可以是交易以外的,其它形式的具有标准的数据结构的指令、消息等,本说明书一个或多个实施例并不进行特别限定。在以下的各实施例中,将以接入区块链的用户在区块链上发起的请求为交易为例进行说明。
请参见图1,图1是一示例性实施例提供的一种基于区块链的流量统计系统的架构示意图。如图1所示,本说明书中的流量统计系统包括凭证发行方10、业务提供方20、内容分发网络30、业务请求方40和区块链网络50。
其中,凭证发行方10可发行流量凭证(Token),该流量凭证用于统计在进行数据传输时产生的流量。比如,1Token=1M流量;当然,1 Token对等的流量可以根据实际情况灵活调整,比如还可以设定为1Token=10M流量,本说明书并不对此进行限制。
业务提供方20向外提供业务服务,响应于用户(即业务请求方)的请求,向用户提供用户所需的业务数据。以业务提供方为视频平台为例,视频平台可以向注册用户提供观看视频的服务。用户可向视频平台发送获取视频数据的请求,从而获取相应的视频数据进行观看。
为了实现传输业务数据时的流量统计,业务提供方20可预先从凭证发行方10处获取一定数量的流量凭证作为后续在提供业务数据时统计流量的衡量单位。
内容分发网络30(Content Delivery Network,CDN)与业务提供方20对接,可用于存储业务提供方的业务数据,以及向业务请求方传输向业务提供方20请求的业务数据。在传输业务数据时,可结合MEC(Mobile Edge Computing,移动边缘计算)技术,选取靠近业务请求方的分发节点(此时作为边缘节点)作为目标分发节点,从而指示目标分发节点向业务提供方传输业务数据。比如选取节点30n。通过选取边缘节点来向业务提供方传输业务数据,可以缓解网络压力,提高传输效率。当然,选取目标分发节点的方式可参考相关技术,本说明书并不对此进行限制。例如,实时地根据网络流量和各节点的连接、负载状况以及到业务请求方的距离和响应时间等综合因素,将用户获取业务数据的请求导向离业务请求方最近的分发节点上。
在选取出目标分发节点后,由目标分发节点向业务请求方40传输业务数据,而在传输数据的过程中需统计目标分发节点实际传输的数据量。尤其是在使用分发网络收费的情况下,比如按照分发节点的流量进行收费,那么需要统计分发节点实际传输的数据量,从而据此进行计费结算。
业务请求方40与业务提供方20合作,作为业务提供方20的用户向业务提供方20请求获取业务数据。同样以视频平台为例,业务请求方40可注册成为视频平台的用户或会员,进而通过视频平台获取视频数据。
区块链网络50中的各个区块链节点(比如节点501、节点502等等)可响应于凭证发行方10、业务提供方20和业务请求方40提交的针对流量凭证的转账交易,对各方流量凭证的所有权进行转移,从而实现对目标分发节点真实的数据传输流量进行统计。
下面分别从凭证发行方10、业务提供方20、内容分发网络30、业务请求方40和区块链网络50侧,对本说明书基于区块链的流量统计方案进行说明。
请参见图2,图2是一示例性实施例提供的一种基于区块链的流量统计方法的流程图。如图2所示,该方法应用于凭证发行方,可以包括以下步骤:
步骤202,凭证发行方创建针对业务提供方的第一转账交易,所述第一转账交易中包含第一交易额。
在本实施例中,在需要对目标分发节点针对业务数据的实际传输量进行流量统计的场景下,凭证发行方可预先向业务提供方转账一定数量的流量凭证,用于在后续传输业务数据的过程中在各方进行转移以实现流量统计。例如,凭证发行方可以是对MEC节点进行统一管理的MEC管理系统。那么,区块链网络中的区块链节点可响应于第一转账交易,将与第一交易额对等的流量凭证的所有权从凭证发行方转移至业务提供方。比如,将凭证发行方账户中存放的与第一交易额对等的流量凭证从凭证发行方账户转移至业务提供方账户中。
以以太坊的区块链模型为例,各方在区块链网络中注册有相应的区块链账户,区块链账户可用于存放凭证发行方发行的流量凭证。具体而言,各方在需要向其他方进行针对流量凭证的转账时,可向区块链网络提交相应的转账交易,从而指示区块链节点根据转账交易中包含的交易额转移相应区块链账户中的流量凭证。
在以太坊中,区块链账户可以包括外部账户和合约账户等。外部账户通常为用户(个人或机构)所有,而合约账户则对应于部署在区块链中的智能合约。各类账户的结构都类似,例如可以包含Nonce字段、Balance字段、Code字段和Storage字段等。每个账户的Nonce字段的取值从0开始,且Nonce字段的取值随相应账户所发起的交易而依次递增,使得该账户发起的每一交易所含Nonce取值均不相同,从而可避免重放攻击。Balance字段用于存放账户余额。Code字段用于存放智能合约的代码,因而外部账户的Code字段通常为空。Storage字段用于存放账户在状态树中对应节点处的取值。
基于上述账户模型,可对Balance字段的结构进行改进,在Balance字段中存放流量凭证。或者,将Balance字段进一步划分为存放账户余额和流量凭证。或者,额外添加其他字段用于存放流量凭证。当然,还可采用其他任意增加或改进字段的方式来存放流量凭证,本说明书并不对此进行限制。
当然,还可采用其他区块链模型,比如采用UTXO(Unspent Transaction Output,未花费的交易输出)模型。UTXO模型的典型应用场景为比特币区块链,该模型下的链上资产以交易输出的形式存在,当一笔交易存在未花费的交易输出时,该未花费的交易输出归私钥持有者所有。
步骤204,所述凭证发行方向区块链网络提交所述第一转账交易,所述第一转账交易用于指示所述区块链网络中的区块链节点将与所述第一交易额对等的流量凭证的所有权从所述凭证发行方转移至业务提供方;所述业务提供方持有的流量凭证中与第二转账交易包含的第二交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第二转账交易的情况下转移至业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务请求方所请求的业务数据的数据量。
其中,所述业务请求方持有的流量凭证中与第三转账交易包含的第三交易额对等的流量凭证的所有权被所述区块链节点在接收到所述第三转账交易的情况下转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量。
在本实施例中,基于凭证发行方向业务提供方预转账有流量凭证,业务提供方在接收到业务请求方发送的针对业务数据的获取请求时,可先确定该业务数据的数据量,进而确定与该数据量对等的流量凭证的数量作为第二交易额(即第二交易额对应于业务数据的数据量),向区块链网络提交包含第二交易额的第二转账交易。那么区块链节点可响应于该第二转账交易,将业务提供方持有的流量凭证中与第二交易额对等的流量凭证转入至业务请求方,也即这些流量凭证改为由业务请求方持有。例如,业务数据为100M,1Token=1M流量,那么第二交易额为100,经上述转账操作后,业务请求方将持有100个来自于业务提供方的Token。换言之,通过上述转账操作,业务请求方将持有与所请求的业务数据的数据量对等的流量凭证,也即业务请求方后续获取到的业务数据的数据量应当与业务提供方转入的流量凭证对等,可理解为此时业务请求方持有的流量凭证对等的数据量,为预计后续能够接收到的数据量。因此,业务请求方持有的流量凭证可用于与后续接收到业务数据的数据量进行对比,从而衡量针对业务数据的实际传输量是否属实。
进一步的,业务提供方或者MEC管理系统从分发网络中选取出目标分发节点,进而向业务请求方传输业务数据。而业务请求方在接收目标分发节点传输的业务数据时,可确定目标分发节点针对业务数据的实际传输量,比如将从目标分发节点处实际接收到的数据的数据量作为该实际传输量。然后,确定定与该实际传输量对等的流量凭证的数量作为第三交易额(即第三交易额对应于实际传输量),向区块链网络提交包含第三交易额的第三转账交易。那么区块链节点可响应于该第三转账交易,将业务请求方持有的流量凭证中与第三交易额对等的流量凭证转入至目标分发节点,也即这些流量凭证改为由业务请求方持有。承接于上述举例,业务请求方从目标分发节点处实际接收到的数据的数据量为95M,那么第三交易额为95,经上述转账操作后,目标分发节点将持有95个来自于业务请求方的Token。
由上述实施例可见,通过将与业务数据的数据量对等的流量凭证转移至业务请求方,使得业务请求方可根据来自于目标分发节点的业务数据的实际传输量,将持有的流量凭证中与实际传输量对等的流量凭证转移至目标分发节点。那么,目标分发节点在传输完业务数据后,所持有的流量凭证与实际传输量对等,因此可根据目标分发节点持有的流量凭证来对目标分发节点传输业务数据的流量进行统计。相比于直接由目标分发节点自身来统计流量,通过上述根据业务请求方接收到的实际传输量转移流量凭证的过程,可防止目标分发节点伪造实际传输量。同时,转移至业务请求方的流量凭证与业务数据的实际大小对等,可以防止业务请求方向目标分发节点转移超过业务数据实际大小的流量凭证(业务请求方没有足够的流量凭证),即防止业务请求方协助目标分发节点伪造实际传输量。
在本实施例中,在边缘节点计费的场景下,比如按照分发节点的流量进行收费,那么可由MEC管理系统作为凭证发行方,发行流量凭证以统计分发节点实际传输的数据量,从而据此进行计费结算。而为了提高计费的准确性和安全性,可引入对流量凭证签名的方式。
作为一示例性实施例,各方在区块链网络上注册,从而获得区块链网络为自身创建的链上身份以及非对称密钥对。那么,上述对流量凭证签名的方式可以为:从凭证发行方转出的流量凭证被采用凭证发行方的私钥签名;从业务提供方转出的流量凭证被采用业务提供方的私钥签名;从业务请求方转出的流量凭证被采用业务请求方的私钥签名;转入目标分发节点的流量凭证被采用目标分发节点的私钥签名。比如,对于各方所持有的所有流量凭证,均采用相应的私钥进行签名,以用于在对流量凭证进行转账的过程中证明流量凭证的来源。
基于上述对流量凭证签名的机制,在对目标分发节点所传输的流量进行结算时,可通过目标分发节点持有的流量凭证来衡量。因此,需对目标分发节点持有的流量凭证进行验签,保证目标分发节点持有的流量凭证是按照上述步骤202-204所示实施例中转移的过程得到。而结合上述流量凭证的转移过程和上述对流量凭证签名的机制可得,最终转移至目标分发节点的流量凭证依次被采用凭证发行方、业务提供方、业务请求方和目标分发节点的私钥签名。因此,在不出现伪造流量凭证的情况下,目标分发节点持有的所有流量凭证均可分别被凭证发行方、业务提供方、业务请求方和目标分发节点的公钥验签通过。换言之,被采用凭证发行方、业务提供方、业务请求方和目标分发节点的私钥签名的流量凭证可用于衡量目标分发节点的实际传输量,进而可对其进行费用结算。
在本实施例中,在目标分发节点向业务请求方传输业务数据的过程中,可在目标分发节点传输完全部的业务数据后,再由业务请求方根据接收到的业务数据的数据量发起第三转账交易。或者,目标分发节点将业务数据划分为若干业务子数据,并向业务请求方传输各个业务子数据。相应的,业务请求方在每次接收到业务子数据的情况下,向区块链网络提交第三转账交易,第三转账交易的第三交易额对应于接收到的业务子数据的数据量。例如,将100M的业务数据划分为10个10M的业务子数据分别进行传输。那么,业务请求方每接收到一个10M的业务子数据后,都必须发起一笔交易额为10的第三转账交易,从而向目标分发节点转账10个Token。
进一步的,业务请求方可能出现发起的转账交易的交易额代表的数据量小于目标分发节点实际传输量的情况,导致目标分发节点最终持有的所有流量凭证对应的数据量少于实际传输量。为了防止业务请求方出现上述作恶的情况,在上述划分出业务子数据进行传输的场景下,目标分发节点在每次传输完业务子数据后,确定相对于上一次传输完业务子数据后新增持有的流量凭证对应的新增数据量和本次所传输的业务子数据的传输数据量,并在新增数据量小于传输数据量的情况下,停止向业务请求方传输剩余的业务子数据,从而及时止损,避免业务请求方继续作恶。承接于上述举例,假定目标分发节点在向业务请求方传输完10M的业务子数据后,业务请求方向区块链发起的转账交易的交易额为9,那么,在执行完该转账交易后,目标分发节点新增的流量凭证为9个Token,而实际应当新增的流量凭证为10个Token。因此,当目标分发节点确定出自身持有的流量凭证的新增数量未达到10个时,停止向业务请求传输剩余未传输的业务子数据。
而针对划分业务数据的方式,目标分发节点可按照预设维度将业务数据划分为若干业务子数据。其中,预设维度包括以下任一:业务子数据的平均数据量、业务子数据的总数量、数据类型。举例而言,业务数据的数据量为200M,按照业务子数据的平均数据量为20M,将业务数据平均划分为10个20M的业务子数据。或者,按照业务子数据的总数量为5个,将业务数据平均划分为5个40M的业务子数据。或者,假定业务数据为图片,业务数据中包含bmp、jpg、png、tif、gif等多种格式的图片,则按照图片格式将业务数据进行划分。或者,假定业务数据中包含视频、图片、音频、文档等多种文件类型的数据,则按照文件类型将业务数据进行划分。当然,划分的依据可根据实际需求灵活设定,本说明书并不对此进行限制。
在本实施例中,业务提供方还可根据业务请求方发送的身份信息,对业务请求方针对业务数据的获取权限进行权限验证,并将权限验证通过作为向区块链网络提交第二转账交易的前提条件。
为了便于理解,下面结合图3-4对本说明书的基于区块链的流量统计方案进行详细说明。
请参见图3,图3是一示例性实施例提供的一种基于区块链的流量统计方法的交互图。如图3所示,该交互过程可以包括以下步骤:
步骤302,凭证发行方向区块链节点提交第一转账交易。
在本实施例中,各方可在区块链网络上进行注册,以由区块链网络为其生成链上身份以与所持有的流量凭证进行绑定,以及生成非对称密钥对以供后续采用其中的私钥对流量凭证进行签名以及采用公钥对签名验签。例如,在采用账户模型的情况下,链上身份为账户地址;在采用UTXO模型的情况下,链上身份为钱包地址。而对于用于生成公钥和私钥的非对称加密算法,例如可以是RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。
在本实施例中,凭证发行方可以是对MEC节点进行统一管理的MEC管理系统,用于发行Token用于衡量流量。凭证发行方可预先向业务提供方转账一定数量的Token,用于在后续传输业务数据的过程中在各方进行转移以实现流量统计和计费结算。例如,业务提供方通过链下通道向凭证发行方购买了一定数量的Token以用于后续转账给业务提供方。那么,凭证发行方创建第一转账交易,第一转账交易包含的第一交易额(用于表明需要转移的Token的数量)为业务提供方向凭证发行方购买的Token的数量,并向区块链节点提交第一转账交易。
其中,各方所持有的流量凭证被采用相应持有方的私钥签名。比如,区块链节点可统一在将Token转入某一账户中后,采用该账户的私钥对转入的Token签名。或者,区块链节点可统一在将Token转出某一账户之前,采用该账户的私钥对待转出的Token签名。总而言之,保证各方曾经持有过的Token均被采用持有方的私钥进行签名即可,从而可通过验签来证明Token的来源。以凭证发行方为例,如图5所示,图中的凭证发行方10、业务提供方20、业务请求方40和目标分发节点30分别代表各方的账户,而P代表的是转出的Token(下文称为Token P)。
区块链节点可采用对凭证发行方10的私钥对凭证发行方10持有的全部Token进行签名,或者在将凭证发行方10持有的Token转出至业务提供方20的账户之前,采用凭证发行方10的私钥对待转出的Token进行签名。经上述签名的操作,可保证转入至业务提供方20的账户的Token P均被采用凭证发行方10的私钥签名。
步骤304,区块链节点向业务提供方转账。
在本实施例中,区块链网络中的区块链节点可响应于第一转账交易,将凭证发行方账户中与第一交易额相匹配数量的Token转入至业务提供方的账户中。如图5所示,由上述签名的机制可知,从凭证发行方10的账户转出的Token P均被采用凭证发行方10的私钥进行签名。进一步的,区块链节点可采用业务提供方的私钥对转入业务提供方账户的Token进行签名。
步骤306,业务请求方向业务提供方发送针对业务数据的获取请求。
步骤308,业务提供方对业务请求方鉴权。
以视频场景为例,用户向视频平台发送针对某一视频的获取请求,该获取请求中包含该用户的账号信息。那么,视频可根据该账号信息对该用户进行鉴权,比如鉴权的内容可以包括该用户是否办理有会员服务,该用户是否被封号等。当然,业务提供方还可进一步确定业务请求方是否在区块链上注册有链上身份,并在未注册的情况下返回相应的提示消息以提示该用户。
步骤310,业务提供方向区块链节点提交第二转账交易。
举例而言,业务数据为100M,1Token=1M流量,那么第二交易额为100,经上述转账操作后,业务请求方将持有100个来自于业务提供方的Token。
步骤312,区块链节点向业务请求方转账。
在本实施例中,针对业务请求方的鉴权通过后,可确定业务请求方请求的业务数据的数据量,进而确定与该数据量对等的流量凭证的数量作为第二交易额,向区块链网络提交包含第二交易额的第二转账交易。区块链节点在接收到第二转账交易后,将业务提供方账户中与第二交易额相匹配数量的Token转入至业务请求方账户中。如图5所示,由上述签名的机制可知,从业务提供方20的账户转出的Token P均被采用业务提供方20的私钥进行签名。进一步的,区块链节点可采用业务请求方40的私钥对转入业务请求方账户的Token进行签名。
步骤314,业务提供方向目标分发节点发送传输指令。
在本实施例中,业务提供方从分发网络中选取出目标分发节点,进而向目标分发节点发送传输指令,以指示目标分发节点向业务请求方传输业务数据。
步骤316,目标分发节点向业务请求方传输业务数据。
在本实施例中,目标分发节点可将业务数据划分为若干业务子数据,并向业务请求方传输各个业务子数据。在该情况下,要求业务请求方在每接收到一个业务子数据后,都必须根据接收到的业务数据的数据量发起第三转账交易。例如,将100M的业务数据划分为10个10M的业务子数据分别进行传输。那么,业务请求方每接收到一个10M的业务子数据后,都必须发起一笔交易额为10的第三转账交易,从而向目标分发节点转账10个Token。
进一步的,业务请求方可能出现作恶的情况。承接于上述举例,目标分发节点在向业务请求方传输完10M的业务子数据后,可向区块链节点提交针对自身所持有的Token的查询交易,从而获取自身所持有的Token的情况。假定业务请求方向区块链发起的转账交易的交易额为9,那么,在执行完该转账交易后,目标分发节点新增的流量凭证为9个Token,而实际应当新增的流量凭证为10个Token。因此,当目标分发节点确定出自身持有的流量凭证的新增数量未达到10个时,停止向业务请求传输剩余未传输的业务子数据,从而及时止损,避免业务请求方继续作恶。
步骤318,业务请求方向区块链节点提交第三转账交易。
步骤320,区块链节点向目标分发节点转账。
如图5所示,由上述签名的机制可知,从业务请求方40的账户转出的Token P均被采用业务请求方40的私钥进行签名。进一步的,区块链节点在向目标分发节点完成转账之后,可采用目标分发节点30的私钥对转入目标分发节点30的账户的Token进行签名。那么,经上述转移Token 的过程后,最终目标分发节点30持有的所有Token 均被依次采用凭证发行方、业务提供方、业务请求方和目标分发节点的私钥签名。
进一步的,在对目标分发节点所传输的流量进行结算时,可通过目标分发节点持有的流量凭证来衡量。因此,需对目标分发节点持有的流量凭证进行验签。以凭证发行方发起结算为例,凭证发行方可制定针对流量凭证的费用转换标准。比如,10Token=0.01元。当然,本说明书并不对费用转换标准的具体内容进行限制。凭证发行方可向区块链网络提交针对目标分发节点所持有的流量凭证的结算交易,那么区块链网络中的区块链节点可响应于该结算交易,分别采用凭证发行方、业务提供方、业务请求方和目标分发节点的公钥对目标分发节点持有的流量凭证进行验签,并在验签均通过的情况下按照针对凭证发行方发行的流量凭证的费用转换标准,对目标分发节点持有的流量凭证进行费用结算。当然,用于执行上述验签和结算操作的逻辑,可以写入链代码中以由区块链节点通过执行链代码直接执行验签和结算操作;还可写入智能合约中,并将该智能合约部署在区块链上。那么,上述结算交易则用于调用该智能合约,由区块链节点通过执行智能合约中的代码来完成验签和结算操作。
对应于上述凭证发行方侧的实施例,本说明书还提出了业务提供方侧、业务请求方侧、目标分发节点侧和区块链节点侧的实施例,在凭证发行方侧实施例中所涉及的描述同样可以适用于上述其他侧的实施例,下文中不再对此进行赘述。
请参见图5,图5是一示例性实施例提供的另一种基于区块链的流量统计方法的流程图。如图5所示,该方法应用于业务提供方,可以包括以下步骤:
步骤502,业务提供方创建针对业务请求方的第二转账交易,所述第二转账交易的第二交易额对应于所述业务请求方所请求的业务数据的数据量;凭证发行方持有的流量凭证中与第一转账交易中包含的第一交易额对等的流量凭证的所有权,被区块链网络中的区块链节点在接收到所述第一转账交易的情况下转移至所述业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交。
步骤504,所述业务提供方向区块链网络提交所述第二转账交易,所述第二转账交易用于指示所述区块链网络中的区块链节点将与所述第二交易额对等的流量凭证的所有权从所述业务提供方转移至所述业务请求方;所述业务请求方持有的流量凭证中与第三转账交易包含的第三交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第三转账交易的情况下转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量。
如前所述,从所述凭证发行方转出的流量凭证被采用所述凭证发行方的私钥签名;从所述业务提供方转出的流量凭证被采用所述业务提供方的私钥签名;从所述业务请求方转出的流量凭证被采用所述业务请求方的私钥签名;转入所述目标分发节点的流量凭证被采用所述目标分发节点的私钥签名;
所述目标分发节点持有的流量凭证由所述区块链节点分别采用所述凭证发行方、所述业务提供方、所述业务请求方和所述目标分发节点的公钥进行验签,并在验签均通过的情况下按照针对所述凭证发行方发行的流量凭证的费用转换标准进行费用结算。
如前所述,所述业务数据被所述目标分发节点划分为若干业务子数据传输至所述业务请求方,所述第三转账交易由所述业务请求方在每次接收到业务子数据的情况下向区块链网络提交,所述第三转账交易的第三交易额对应于所述业务请求方接收到的业务子数据的数据量。
如前所述,所述目标分发节点在每次传输完业务子数据后,在新增数据量小于传输数据量的情况下停止向所述业务请求方传输剩余的业务子数据,所述新增数据量为所述目标分发节点相对于上一次传输完业务子数据后新增持有的流量凭证对应的数据量,所述传输数据量为所述目标分发节点本次所传输的业务子数据的数据量。
如前所述,所述业务数据被所述目标分发节点按照预设维度划分为若干业务子数据,所述预设维度包括以下任一:业务子数据的平均数据量、业务子数据的总数量、数据类型。
如前所述,所述业务提供方根据所述业务请求方发送的身份信息,对所述业务请求方针对所述业务数据的获取权限进行权限验证,并将权限验证通过作为向所述区块链网络提交所述第二转账交易的前提条件。
请参见图6,图6是一示例性实施例提供的另一种基于区块链的流量统计方法的流程图。如图6所示,该方法应用于目标分发节点,可以包括以下步骤:
步骤602,内容分发网络中的目标分发节点向业务请求方传输所述业务请求方向业务提供方请求的业务数据。
所述业务请求方持有的流量凭证中与第三转账交易包含的第三交易额对等的流量凭证的所有权,被区块链网络中的区块链节点在接收到所述第三转账交易的情况下转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量;
所述业务提供方持有的流量凭证中与第二转账交易包含的第二交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第二转账交易的情况下转移至所述业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务请求方所请求的业务数据的数据量;
凭证发行方持有的流量凭证中与第一转账交易中包含的第一交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第一转账交易的情况下转移至所述业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交。
如前所述,从所述凭证发行方转出的流量凭证被采用所述凭证发行方的私钥签名;从所述业务提供方转出的流量凭证被采用所述业务提供方的私钥签名;从所述业务请求方转出的流量凭证被采用所述业务请求方的私钥签名;转入所述目标分发节点的流量凭证被采用所述目标分发节点的私钥签名;
所述目标分发节点持有的流量凭证由所述区块链节点分别采用所述凭证发行方、所述业务提供方、所述业务请求方和所述目标分发节点的公钥进行验签,并在验签均通过的情况下按照针对所述凭证发行方发行的流量凭证的费用转换标准进行费用结算。
如前所述,所述目标分发节点向业务请求方传输所述业务请求方向业务提供方请求的业务数据,包括:
所述目标分发节点将所述业务数据划分为若干业务子数据,并向所述业务请求方传输各个业务子数据;所述第三转账交易由所述业务请求方在每次接收到业务子数据的情况下向区块链网络提交,所述第三转账交易的第三交易额对应于所述业务请求方接收到的业务子数据的数据量。
如前所述,还包括:
所述目标分发节点在每次传输完业务子数据后,确定相对于上一次传输完业务子数据后新增持有的流量凭证对应的新增数据量和本次所传输的业务子数据的传输数据量;
所述目标分发节点在所述新增数据量小于所述传输数据量的情况下,停止向所述业务请求方传输剩余的业务子数据。
如前所述,所述目标分发节点将所述业务数据划分为若干业务子数据,包括:
所述目标分发节点按照预设维度将所述业务数据划分为若干业务子数据,所述预设维度包括以下任一:业务子数据的平均数据量、业务子数据的总数量、数据类型。
如前所述,所述业务提供方向所述区块链网络提交所述第二转账交易的前提条件包括:所述业务提供方根据所述业务请求方发送的身份信息,对所述业务请求方针对所述业务数据的获取权限进行权限验证,且权限验证通过。
请参见图7,图7是一示例性实施例提供的另一种基于区块链的流量统计方法的流程图。如图7所示,该方法应用于业务请求方,可以包括以下步骤:
步骤702,业务请求方创建针对目标分发节点的第三转账交易,所述第三转账交易包含的第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务请求方所请求的业务数据的实际传输量;
步骤704,所述业务请求方向区块链网络提交所述第三转账交易,所述第三转账交易用于指示所述区块链网络中的区块链节点将与所述第三交易额对等的流量凭证的所有权从所述业务请求方转移至所述目标分发节点;
业务提供方持有的流量凭证中与第二转账交易包含的第二交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第二转账交易的情况下转移至所述业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务数据的数据量;
凭证发行方持有的流量凭证中与第一转账交易中包含的第一交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第一转账交易的情况下转移至所述业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交。
如前所述,从所述凭证发行方转出的流量凭证被采用所述凭证发行方的私钥签名;从所述业务提供方转出的流量凭证被采用所述业务提供方的私钥签名;从所述业务请求方转出的流量凭证被采用所述业务请求方的私钥签名;转入所述目标分发节点的流量凭证被采用所述目标分发节点的私钥签名;
所述目标分发节点持有的流量凭证由所述区块链节点分别采用所述凭证发行方、所述业务提供方、所述业务请求方和所述目标分发节点的公钥进行验签,并在验签均通过的情况下按照针对所述凭证发行方发行的流量凭证的费用转换标准进行费用结算。
如前所述,所述业务数据被所述目标分发节点划分为若干业务子数据传输至所述业务请求方;所述业务请求方向区块链网络提交所述第三转账交易,包括:
所述业务请求方在每次接收到业务子数据的情况下,向区块链网络提交所述第三转账交易,所述第三转账交易的第三交易额对应于接收到的业务子数据的数据量。
如前所述,所述目标分发节点在每次传输完业务子数据后,在新增数据量小于传输数据量的情况下停止向所述业务请求方传输剩余的业务子数据,所述新增数据量为所述目标分发节点相对于上一次传输完业务子数据后新增持有的流量凭证对应的数据量,所述传输数据量为所述目标分发节点本次所传输的业务子数据的数据量。
如前所述,所述业务数据被所述目标分发节点按照预设维度划分为若干业务子数据,所述预设维度包括以下任一:业务子数据的平均数据量、业务子数据的总数量、数据类型。
如前所述,所述业务提供方向所述区块链网络提交所述第二转账交易的前提条件包括:所述业务提供方根据所述业务请求方发送的身份信息,对所述业务请求方针对所述业务数据的获取权限进行权限验证,且权限验证通过。
请参见图8,图8是一示例性实施例提供的另一种基于区块链的流量统计方法的流程图。如图8所示,该方法应用于区块链节点,可以包括以下步骤:
步骤802,区块链网络中的区块链节点将与第一转账交易中包含的第一交易额对等的流量凭证的所有权从凭证发行方转移至业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交;
步骤804,所述区块链节点将与第二转账交易中包含的第二交易额对等的流量凭证的所有权从所述业务提供方转移至业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务请求方所请求的业务数据的数据量;
步骤806,将与第三转账交易中包含的第三交易额对等的流量凭证的所有权从所述业务请求方转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量。
如前所述,从所述凭证发行方转出的流量凭证被采用所述凭证发行方的私钥签名;从所述业务提供方转出的流量凭证被采用所述业务提供方的私钥签名;从所述业务请求方转出的流量凭证被采用所述业务请求方的私钥签名;转入所述目标分发节点的流量凭证被采用所述目标分发节点的私钥签名;所述方法还包括:
所述区块链节点分别采用所述凭证发行方、所述业务提供方、所述业务请求方和所述目标分发节点的公钥对所述目标分发节点持有的流量凭证进行验签,并在验签均通过的情况下按照针对所述凭证发行方发行的流量凭证的费用转换标准,对所述目标分发节点持有的流量凭证进行费用结算。
如前所述,所述业务数据被所述目标分发节点划分为若干业务子数据传输至所述业务请求方,所述第三转账交易由所述业务请求方在每次接收到业务子数据的情况下向区块链网络提交,所述第三转账交易的第三交易额对应于所述业务请求方接收到的业务子数据的数据量。
如前所述,所述目标分发节点在每次传输完业务子数据后,在新增数据量小于传输数据量的情况下停止向所述业务请求方传输剩余的业务子数据,所述新增数据量为所述目标分发节点相对于上一次传输完业务子数据后新增持有的流量凭证对应的数据量,所述传输数据量为所述目标分发节点本次所传输的业务子数据的数据量。
如前所述,所述业务数据被所述目标分发节点按照预设维度划分为若干业务子数据,所述预设维度包括以下任一:业务子数据的平均数据量、业务子数据的总数量、数据类型。
如前所述,所述业务提供方向所述区块链网络提交所述第二转账交易的前提条件包括:所述业务提供方根据所述业务请求方发送的身份信息,对所述业务请求方针对所述业务数据的获取权限进行权限验证,且权限验证通过。
与上述方法实施例相对应,本说明书还提供了一种基于区块链的流量统计装置的实施例。
本说明书的基于区块链的流量统计装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。
从硬件层面而言,请参考图9,图9是一示例性实施例提供的一种设备的示意结构图。如图9所示,在硬件层面,该设备包括处理器902、内部总线904、网络接口906、内存909以及非易失性存储器910,当然还可能包括其他业务所需要的硬件。处理器902从非易失性存储器910中读取对应的计算机程序到内存909中然后运行,在逻辑层面上形成基于区块链的流量统计装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图10,在一软件实施方式中,基于区块链的流量统计装置可以包括:
创建单元1002,使凭证发行方创建针对业务提供方的第一转账交易,所述第一转账交易中包含第一交易额;
提交单元1004,使所述凭证发行方向区块链网络提交所述第一转账交易,所述第一转账交易用于指示所述区块链网络中的区块链节点将与所述第一交易额对等的流量凭证的所有权从所述凭证发行方转移至业务提供方;所述业务提供方持有的流量凭证中与第二转账交易包含的第二交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第二转账交易的情况下转移至业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务请求方所请求的业务数据的数据量;
所述业务请求方持有的流量凭证中与第三转账交易包含的第三交易额对等的流量凭证的所有权被所述区块链节点在接收到所述第三转账交易的情况下转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量。
可选的,从所述凭证发行方转出的流量凭证被采用所述凭证发行方的私钥签名;从所述业务提供方转出的流量凭证被采用所述业务提供方的私钥签名;从所述业务请求方转出的流量凭证被采用所述业务请求方的私钥签名;转入所述目标分发节点的流量凭证被采用所述目标分发节点的私钥签名;
所述目标分发节点持有的流量凭证由所述区块链节点分别采用所述凭证发行方、所述业务提供方、所述业务请求方和所述目标分发节点的公钥进行验签,并在验签均通过的情况下按照针对所述凭证发行方发行的流量凭证的费用转换标准进行费用结算。
可选的,所述业务数据被所述目标分发节点划分为若干业务子数据传输至所述业务请求方,所述第三转账交易由所述业务请求方在每次接收到业务子数据的情况下向区块链网络提交,所述第三转账交易的第三交易额对应于所述业务请求方接收到的业务子数据的数据量。
可选的,所述目标分发节点在每次传输完业务子数据后,在新增数据量小于传输数据量的情况下停止向所述业务请求方传输剩余的业务子数据,所述新增数据量为所述目标分发节点相对于上一次传输完业务子数据后新增持有的流量凭证对应的数据量,所述传输数据量为所述目标分发节点本次所传输的业务子数据的数据量。
可选的,所述业务数据被所述目标分发节点按照预设维度划分为若干业务子数据,所述预设维度包括以下任一:业务子数据的平均数据量、业务子数据的总数量、数据类型。
可选的,所述业务提供方向所述区块链网络提交所述第二转账交易的前提条件包括:所述业务提供方根据所述业务请求方发送的身份信息,对所述业务请求方针对所述业务数据的获取权限进行权限验证,且权限验证通过。
请参考图11,在另一软件实施方式中,基于区块链的流量统计装置可以包括:
创建单元1102,使业务提供方创建针对业务请求方的第二转账交易,所述第二转账交易的第二交易额对应于所述业务请求方所请求的业务数据的数据量;凭证发行方持有的流量凭证中与第一转账交易中包含的第一交易额对等的流量凭证的所有权,被区块链网络中的区块链节点在接收到所述第一转账交易的情况下转移至所述业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交;
提交单元1103,使所述业务提供方向区块链网络提交所述第二转账交易,所述第二转账交易用于指示所述区块链网络中的区块链节点将与所述第二交易额对等的流量凭证的所有权从所述业务提供方转移至所述业务请求方;所述业务请求方持有的流量凭证中与第三转账交易包含的第三交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第三转账交易的情况下转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量。
可选的,从所述凭证发行方转出的流量凭证被采用所述凭证发行方的私钥签名;从所述业务提供方转出的流量凭证被采用所述业务提供方的私钥签名;从所述业务请求方转出的流量凭证被采用所述业务请求方的私钥签名;转入所述目标分发节点的流量凭证被采用所述目标分发节点的私钥签名;
所述目标分发节点持有的流量凭证由所述区块链节点分别采用所述凭证发行方、所述业务提供方、所述业务请求方和所述目标分发节点的公钥进行验签,并在验签均通过的情况下按照针对所述凭证发行方发行的流量凭证的费用转换标准进行费用结算。
可选的,所述业务数据被所述目标分发节点划分为若干业务子数据传输至所述业务请求方,所述第三转账交易由所述业务请求方在每次接收到业务子数据的情况下向区块链网络提交,所述第三转账交易的第三交易额对应于所述业务请求方接收到的业务子数据的数据量。
可选的,所述目标分发节点在每次传输完业务子数据后,在新增数据量小于传输数据量的情况下停止向所述业务请求方传输剩余的业务子数据,所述新增数据量为所述目标分发节点相对于上一次传输完业务子数据后新增持有的流量凭证对应的数据量,所述传输数据量为所述目标分发节点本次所传输的业务子数据的数据量。
可选的,所述业务数据被所述目标分发节点按照预设维度划分为若干业务子数据,所述预设维度包括以下任一:业务子数据的平均数据量、业务子数据的总数量、数据类型。
可选的,还包括:
鉴权单元1106,使所述业务提供方根据所述业务请求方发送的身份信息,对所述业务请求方针对所述业务数据的获取权限进行权限验证,并将权限验证通过作为向所述区块链网络提交所述第二转账交易的前提条件。
请参考图12,在另一软件实施方式中,基于区块链的流量统计装置可以包括:
传输单元1202,使内容分发网络中的目标分发节点向业务请求方传输所述业务请求方向业务提供方请求的业务数据;
所述业务请求方持有的流量凭证中与第三转账交易包含的第三交易额对等的流量凭证的所有权,被区块链网络中的区块链节点在接收到所述第三转账交易的情况下转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量;
所述业务提供方持有的流量凭证中与第二转账交易包含的第二交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第二转账交易的情况下转移至所述业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务请求方所请求的业务数据的数据量;
凭证发行方持有的流量凭证中与第一转账交易中包含的第一交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第一转账交易的情况下转移至所述业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交。
可选的,从所述凭证发行方转出的流量凭证被采用所述凭证发行方的私钥签名;从所述业务提供方转出的流量凭证被采用所述业务提供方的私钥签名;从所述业务请求方转出的流量凭证被采用所述业务请求方的私钥签名;转入所述目标分发节点的流量凭证被采用所述目标分发节点的私钥签名;
所述目标分发节点持有的流量凭证由所述区块链节点分别采用所述凭证发行方、所述业务提供方、所述业务请求方和所述目标分发节点的公钥进行验签,并在验签均通过的情况下按照针对所述凭证发行方发行的流量凭证的费用转换标准进行费用结算。
可选的,所述传输单元1202具体用于:
所述目标分发节点将所述业务数据划分为若干业务子数据,并向所述业务请求方传输各个业务子数据;所述第三转账交易由所述业务请求方在每次接收到业务子数据的情况下向区块链网络提交,所述第三转账交易的第三交易额对应于所述业务请求方接收到的业务子数据的数据量。
可选的,所述传输单元1202进一步用于:
所述目标分发节点在每次传输完业务子数据后,确定相对于上一次传输完业务子数据后新增持有的流量凭证对应的新增数据量和本次所传输的业务子数据的传输数据量;
所述目标分发节点在所述新增数据量小于所述传输数据量的情况下,停止向所述业务请求方传输剩余的业务子数据。
可选的,所述传输单元1202进一步用于:
所述目标分发节点按照预设维度将所述业务数据划分为若干业务子数据,所述预设维度包括以下任一:业务子数据的平均数据量、业务子数据的总数量、数据类型。
可选的,所述业务提供方向所述区块链网络提交所述第二转账交易的前提条件包括:所述业务提供方根据所述业务请求方发送的身份信息,对所述业务请求方针对所述业务数据的获取权限进行权限验证,且权限验证通过。
请参考图13,在另一软件实施方式中,基于区块链的流量统计装置可以包括:
创建单元1302,使业务请求方创建针对目标分发节点的第三转账交易,所述第三转账交易包含的第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务请求方所请求的业务数据的实际传输量;
提交单元1304,使所述业务请求方向区块链网络提交所述第三转账交易,所述第三转账交易用于指示所述区块链网络中的区块链节点将与所述第三交易额对等的流量凭证的所有权从所述业务请求方转移至所述目标分发节点;
业务提供方持有的流量凭证中与第二转账交易包含的第二交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第二转账交易的情况下转移至所述业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务数据的数据量;
凭证发行方持有的流量凭证中与第一转账交易中包含的第一交易额对等的流量凭证的所有权,被所述区块链节点在接收到所述第一转账交易的情况下转移至所述业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交。
可选的,从所述凭证发行方转出的流量凭证被采用所述凭证发行方的私钥签名;从所述业务提供方转出的流量凭证被采用所述业务提供方的私钥签名;从所述业务请求方转出的流量凭证被采用所述业务请求方的私钥签名;转入所述目标分发节点的流量凭证被采用所述目标分发节点的私钥签名;
所述目标分发节点持有的流量凭证由所述区块链节点分别采用所述凭证发行方、所述业务提供方、所述业务请求方和所述目标分发节点的公钥进行验签,并在验签均通过的情况下按照针对所述凭证发行方发行的流量凭证的费用转换标准进行费用结算。
可选的,所述业务数据被所述目标分发节点划分为若干业务子数据传输至所述业务请求方;所述提交单元1304具体用于:
所述业务请求方在每次接收到业务子数据的情况下,向区块链网络提交所述第三转账交易,所述第三转账交易的第三交易额对应于接收到的业务子数据的数据量。
可选的,所述目标分发节点在每次传输完业务子数据后,在新增数据量小于传输数据量的情况下停止向所述业务请求方传输剩余的业务子数据,所述新增数据量为所述目标分发节点相对于上一次传输完业务子数据后新增持有的流量凭证对应的数据量,所述传输数据量为所述目标分发节点本次所传输的业务子数据的数据量。
可选的,所述业务数据被所述目标分发节点按照预设维度划分为若干业务子数据,所述预设维度包括以下任一:业务子数据的平均数据量、业务子数据的总数量、数据类型。
可选的,所述业务提供方向所述区块链网络提交所述第二转账交易的前提条件包括:所述业务提供方根据所述业务请求方发送的身份信息,对所述业务请求方针对所述业务数据的获取权限进行权限验证,且权限验证通过。
请参考图14,在另一软件实施方式中,基于区块链的流量统计装置可以包括:
第一转移单元1402,使区块链网络中的区块链节点将与第一转账交易中包含的第一交易额对等的流量凭证的所有权从凭证发行方转移至业务提供方,所述第一转账交易由所述凭证发行方向区块链网络提交;
第二转移单元1404,使所述区块链节点将与第二转账交易中包含的第二交易额对等的流量凭证的所有权从所述业务提供方转移至业务请求方,所述第二转账交易由所述业务提供方向区块链网络提交,所述第二交易额对应于所述业务请求方所请求的业务数据的数据量;
第三转移单元1406,使将与第三转账交易中包含的第三交易额对等的流量凭证的所有权从所述业务请求方转移至目标分发节点,所述第三转账交易由所述业务请求方向区块链网络提交,所述第三交易额对应于所述目标分发节点向所述业务请求方传输所述业务数据的实际传输量。
可选的,从所述凭证发行方转出的流量凭证被采用所述凭证发行方的私钥签名;从所述业务提供方转出的流量凭证被采用所述业务提供方的私钥签名;从所述业务请求方转出的流量凭证被采用所述业务请求方的私钥签名;转入所述目标分发节点的流量凭证被采用所述目标分发节点的私钥签名;所述装置还包括:
验签单元1408,使所述区块链节点分别采用所述凭证发行方、所述业务提供方、所述业务请求方和所述目标分发节点的公钥对所述目标分发节点持有的流量凭证进行验签,并在验签均通过的情况下按照针对所述凭证发行方发行的流量凭证的费用转换标准,对所述目标分发节点持有的流量凭证进行费用结算。
可选的,所述业务数据被所述目标分发节点划分为若干业务子数据传输至所述业务请求方,所述第三转账交易由所述业务请求方在每次接收到业务子数据的情况下向区块链网络提交,所述第三转账交易的第三交易额对应于所述业务请求方接收到的业务子数据的数据量。
可选的,所述目标分发节点在每次传输完业务子数据后,在新增数据量小于传输数据量的情况下停止向所述业务请求方传输剩余的业务子数据,所述新增数据量为所述目标分发节点相对于上一次传输完业务子数据后新增持有的流量凭证对应的数据量,所述传输数据量为所述目标分发节点本次所传输的业务子数据的数据量。
可选的,所述业务数据被所述目标分发节点按照预设维度划分为若干业务子数据,所述预设维度包括以下任一:业务子数据的平均数据量、业务子数据的总数量、数据类型。
可选的,所述业务提供方向所述区块链网络提交所述第二转账交易的前提条件包括:所述业务提供方根据所述业务请求方发送的身份信息,对所述业务请求方针对所述业务数据的获取权限进行权限验证,且权限验证通过。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算机包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。