基于区块链的对等系统文件溯源方法与流程

文档序号:17992506发布日期:2019-06-22 00:55阅读:605来源:国知局
基于区块链的对等系统文件溯源方法与流程

本发明涉及信息安全和通信技术领域,具体涉及一种基于区块链的对等(peertopeer,p2p)系统文件溯源方法。



背景技术:

随着用户对文件下载速率和流媒体质量要求的不断提升,p2p几乎已经成为大型通信系统中不可缺少的技术,深入网民的生活。在p2p世界中,用户可以方便地免费拥有原先必须花钱才能获得的各种资源和服务,随之而来的问题是版权纠纷问题,盗版泛滥,盗版问题举证困难,维权成本过高。此外,用户还会下载到虚假的p2p文件,导致电脑中病毒,导致用户财产损失。因此需要一种有效的技术来保障版权保护和避免用户下载到虚假p2p文件的问题。



技术实现要素:

本发明所要解决的是在p2p文件资源难以溯源而所导致的盗版泛滥过和虚假p2p种子所导致的电脑中病毒的问题,提供一种基于区块链的对等系统文件溯源方法。

为解决上述问题,本发明是通过以下技术方案实现的:

基于区块链的对等系统文件溯源方法,包括步骤如下:

步骤1、上传用户通过浏览器上传p2p文件到一台种子服务器,种子服务器自动做种,生成此p2p文件种子;

步骤2、种子服务器将自身的ip地址、生成种子的时间、种子对应的p2p文件的名称和上传资源的用户名通过jms消息中间件自动发送给该种子服务器所对应的区块链组织的区块链客户端;

步骤3、该区块链组织的区块链客户端将接收到的这些信息当做p2p文件下载信息的交易,并向该区块链组织的背书节点提交交易;

步骤4、该区块链组织的背书节点对交易的合法性进行校验;若校验通过,则模拟该交易的执行结果,并将模拟执行结果反馈给该区块链组织的区块链客户端,否则,丢弃该交易;

步骤5、该区块链组织的区块链客户端接收到模拟执行结果后,向所属超级账本区块链系统的排序服务节点提交该区块链客户端的签名和模拟执行结果的交易;

步骤6、排序服务节点转发这笔交易给kafka;

步骤7、排序服务节点订阅kafka所发布的包含区块链客户端签名的交易,并对交易进行排序生成区块后,广播区块给所属超级账本区块链系统的各个区块链组织的主节点;

步骤8、每个区块链组织的主节点分别校验区块里面的交易的合法性;若校验通过,则主节点将该区块同步到同一个区块链组织的背书节点和记账节点中,否则,丢弃该交易;

步骤9、背书节点和记账节点在与主节点进行区块同步过程中,背书节点和记账节点同时对交易的合法性进行校验;若背书节点和记账节点均校验通过,则将该交易保存到该记账节点、背书节点和主节点对应的区块链组织中,否则,丢弃该交易;

步骤10、下载用户使用浏览器从种子服务器下载所需下载的p2p文件的种子,并该种子导入到相应的下载节点,下载节点开始下载,直到下载任务完成;

步骤11、下载节点将自身的ip地址、下载完成时间、下载的p2p文件名和下载用户信息经由jms消息中间件自动发送给该下载节点所对应区块链组织里面的区块链客户端;

步骤12、溯源用户把p2p文件名输入任意一个区块链组织的区块链客户端;

步骤13、区块链客户端与其对应的区块链组织中安装有智能合约的节点进行通信;

步骤14、安装有智能合约的节点调用智能合约,并向该安装有智能合约的节点所属的区块链组织发起查询请求;如果查询成功,则并将历史信息返回给安装有智能合约的节点,否则,将空值返回给安装有智能合约的节点,中止查询;

步骤15、安装有智能合约的节点将所查询到的p2p文件的历史信息返回给区块链组织的区块链客户端供溯源用户查看。

上述方案中,安装有智能合约的节点为区块链组织的主节点、背书节点或记账节点。

与现有技术相比,本发明具有如下特点:

1、可以让更多的参与方加入,一起维护一个账本,越多参与方加入,维护的数据越多,可以增加更多的信任背书,文件溯源更加可信。克服中心化系统的弊端,强有力的证书认证能避免人为纂改数据或数据意外丢失的问题,修改等操作必须通过所有组织的同意,大大提高了安全性。

2、打破信息的孤立,多方参与共同维护同一个账本,减少多个组织重复对账的成本问题,提高数据的实时共享性,数据的共享更加安全方便,快速达成信息的一致性,减少溯源过程中成本过高的问题,减少p2p文件数字版权维权的成本高的问题,降低多组织的存在而导致信息的漏上传的概率。减少用户下载到恶意虚假种子的概率,从而减少对计算机的危害。

附图说明

图1为基于区块链的p2p文件的溯源系统的示意图。

图2为本发明所述方法的p2p文件下载信息上链流程图。

图3为用户通过区块链对p2p文件下载的信息溯源的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,并参照附图,对本发明进一步详细说明。

图1为基于区块链的p2p文件的溯源系统的示意图,其主要包括以下组成部分:

(1)p2p系统:

用户:包括上传p2p文件的用户,下载p2p文件的用户(一个用户对应一个下载节点)和进行溯源操作的用户。

种子服务器:可以有一个或者多个,本实施例为1个种子服务器。用户上传p2p文件到种子服务器,该种子服务器是生成p2p文件种子和提供初始完整的p2p文件服务的提供方。种子服务器自动生成p2p文件种子。

jms即java消息服务应用程序接口:是一个java平台中关于面向消息中间件的api,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信,在文中称为jms消息中间件。

下载节点:运行在计算机中,能够连接种子服务器或者其他有p2p文件的下载节点进行文件下载,完成下载后自动通过jms消息中间件将p2p文件下载的相关信息(即下载节点的用户名,ip地址,p2p文件名,下载完成时间)上传到超级账本区块链系统。

(2)超级账本区块链系统:

排序服务节点:本实施例包括一个排序服务节点,其主要负责对交易进行打包。

kafka:本实施例包括1个kafka,中文名为卡夫卡,其是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。

区块链组织:本实施例包括4个区块链组织。每个区块链组织(如图2所示)包含:背书节点,主节点,记账节点和区块链客户端。

每个区块链组织包括背书节点、主节点、记账节点、智能合约和区块链客户端。区块链客户端是使用超级账本软件开发工具包编写,它能够对超级账本区块链进行相关操作。智能合约是区块链客户端和超级账本区块链的之间的桥梁,通过智能合约区块链客户端可以向超级账本区块链发起交易查询。

本发明默认所有用户和所有的区块链客户端都已经获取授权,能接入区块链和p2p系统,进行相应的操作。背书节点是一个应用程序,主要负责对交易进行校验。记账节点是一个应用程序,主要负责把区块加入区块链。主节点是一个应用程序,主要负责接收排序服务节点发送的区块。区块链系统接收下载节点通过jms消息中间件传输的p2p文件下载的相关信息。本发明中的交易指的是p2p文件下载的信息的交易,以下统称交易。本发明在下载过程中下载的是同一个p2p文件。

超级账本区块链系统对各下载节点发送过来的p2p文件下载的信息的交易进行记录和校验,校验通过即记录到区块链,校验不通过就丢弃。由于区块链不可篡改的特性。基于以上过程完成存储的信息的不可篡改,大大提高溯源的可信度。因此超级账本区块链系统是溯源的重要基础设施。

基于区块链的对等系统文件溯源方法,其具体包括如下步骤:

1、对等系统(peertopeer,p2p)文件下载信息上链过程,如图2所示。每个区块链组织里的节点选任意一个节点分别安装相同的智能合约,即第一区块链组织任选一个节点安装一个合约,第二区块链组织任选一个节点安装一个合约,第三区块链组织任选一个节点安装一个合约。其中任意一个节点指:主节点、背书节点、记账节点。本发明中的交易指的是p2p文件下载的信息的交易,以下统称交易。

(1)上传p2p文件的用户通过浏览器上传p2p文件到一台种子服务器,种子服务器自动做种,生成此p2p文件种子;

(2)种子服务器将自身的ip地址、生成种子的时间、种子对应的p2p文件的名称和上传资源的用户名通过jms消息中间件自动发送给其对应第一区块链组织中的区块链客户端;

(3)区块链客户端将接收到的这些信息当做p2p文件下载信息的交易,下文统称交易;区块链客户端向其对应组织里的背书节点提交交易;

(4)背书节点对上述区块链客户端提交的交易的合法性进行校验,校验成功之后,模拟该交易的执行结果,并将模拟执行结果反馈给区块链客户端,否则,丢弃校验失败的交易;

(5)区块链客户端接收到模拟执行结果后,区块链客户端提交此区块链客户端的签名和模拟执行结果的交易给排序服务节点;

(6)排序服务节点转发这笔交易给kafka;

(7)排序服务节点订阅kafka发布的包含区块链客户端签名的交易,对交易进行排序生成区块,并广播区块给各个区块链组织的对应的主节点;

(8)各个区块链组织的对应的主节点校验区块里面的交易,若校验通过,则主节点将该区块同步到同一个区块链组织的背书节点和记账节点中,否则,丢弃校验失败交易;

(9)背书节点和记账节点在与主节点进行区块同步过程中,各个区块链组织的记账节点和背书节点校验交易,校验通过保存区块到该记账节点、背书节点以及主节点所对应的区块链组织中,否则丢弃该交易;此时,对等系统(peertopeer,p2p)文件下载的信息实现信息上链;

(10)下载用户使用浏览器从种子服务器下载所需下载的p2p文件的种子,并该种子导入到下载节点,下载节点开始下载,直到下载任务完成;

(11)下载节点将自身的ip地址、下载完成时间、下载的p2p文件名和用户信息经由jms消息中间件自动发送给其对应区块链组织里面的区块链客户端。然后执行执行步骤(3)到步骤(19)。

p2p文件的下载过程已经被写入区块链中,该下载过程已经是不可篡改的记录到区块链中,大大提高了信息储存的安全性,溯源的可信度。

2、用户通过区块链进行对等系统(peertopeer,p2p)文件下载的信息溯源过程,如图3所示。溯源信息指的是:(1)p2p文件被生成种子时的生成时间,所用的服务器的ip地址,此p2p文件的种子创建者,即上传p2p文件的用户,p2p文件名。p2p文件从种子服务器被生成种子后,此p2p文件被下载节点1从种子服务器下载。(2)各个下载相同p2p文件的下载节点的用户名,该p2p文件下载完成的时间,此p2p文件的名字,各个下载相同p2p文件的下载节点的ip地址。

(1)溯源用户把p2p文件名输入到各个区块链组织中的任意一个区块链客户端。

(2)上述区块链客户端与其对应的区块链组织中安装有智能合约的区块链节点进行通信,即区块链客户端发送p2p文件的种子文件名等信息来向该安装有智能合约的区块链节点进行溯源查询的请求;

(3)该区块链节点调用智能合约,智能合约接收到p2p文件的种子文件名等信息,智能合约向其所在的区块链节点的区块链组织发起查询请求,区块链组织对p2p文件的历史信息进行查询;如果查询不到该p2p文件的历史信息,则返回空值,就中止查询;

(4)智能合约返回上述执行结果给上述区块链节点,区块链节点将p2p文件的种子文件溯源结果返回给区块链客户端供用户查看。用户进行溯源操作后,获取p2p文件的溯源信息。用户清晰的知道,该p2p文件的种子由哪个用户创建的、创建的时间,创建该种子的所用的服务器地址,该p2p文件被各下载节点的用户下载完成的时间,用户清晰的知道此p2p文件下载的一系列过程。

需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1