发明内容
针对现有技术存在的问题,本发明提供了一种基于区块链分布式文件交易系统的文件存储处理方法。
本发明是这样实现的,一种基于区块链分布式文件交易系统的文件存储处理方法,所述基于区块链分布式文件交易系统的文件存储处理方法包括以下步骤:
步骤一,用户选定待存储的文件后,用本地客户端给文件打上水印;
步骤二,用户把打好水印的文件分割成若干个块,按顺序标识;
步骤三,用户向分布式文件交易系统发送存储请求,存储请求包括:文件大小,存储时长,存储份数;
步骤四,分布式文件交易系统根据存储请求来挑选出存储节点和存储价格,发送给用户;
步骤五,用户从中选定存储节点,把文件按块发送给各个存储节点,保证每个存储节点都接收到所有的文件块;
步骤六,各个存储节点一边接收一边在各个块上,利用分布式文件交易系统统一的水印算法打上自己的标识,形成每个块的块标识。
进一步,所述基于区块链的分布式文件交易系统的的文件存储处理方法还包括文件传播方法:
第一步,购买者在搜索系统中搜索所需文件的关键字,搜索相关文件,确定欲购文件;
第二步,购买者发送文件获取请求给存储节点;所有的存储节点都会收到文件获取请求;
第三步,购买者先把coin从账户转到区块链上,该coin会先被锁定。区块链节点达成购买者有能力付款这个共识后,链上节点会发送文件确认获取请求给存储节点;
第四步,存储节点收到确认获取请求后,所有的在线节点才会和购买者进行连接,由于带宽和传输速率等原因,速率高的节点可能会发送更多的文件块,每个节点会检测所需要的文件块,不重复发送;
第五步,购买者接收到所有的文件块后,由每个文件块的块标识组成的独一无二的文件防盗码形成;
第六步,将文件防盗码连同分布式文件交易信息等一同记录到区块链上。
进一步,文件被分成m块,被n个节点(A,B,C,D…γ)完整存储;A节点拥有文件:{a1,a2,a3…am},B节点拥有文件:{b1,b2,b3…bm},C节点拥有文件:{c1,c2,c3..cm},
在文件传输过程中,形成文件防盗码{a1,b2,c3,a4,d5,d6,c7,γ8,a9,a10…γm},文件防盗码有n
m种可能性;如果把文件分成10块,被10个节点完整存储,文件防盗码就有10
10种组合,认为文件防盗码有唯一性,唯一的对应一个文件购买者。
进一步,文件防盗码在发生文件被盗用事件后,根据文件防盗码追查到文件泄露源头-文件购买者。
进一步,在结算交易报酬时,一部分coin是付给文件所有者,另一部分是付给参与传输的各存储节点通过智能合约结算锁定在区块链上的预付coin;智能合约读取文件防盗码可知各个存储节点传输的文件块数,通过每个节点的传输量按比例分配coin;文件所有者收X%的coin,剩下(100-X)%的coin分给存储节点;m为文件总块数,第L个节点发送的n块。第L个节点能拿到的coin按公式分配为
其中区块链上记录信息:文件所有者信息、购买者信息、文件信息、存储节点信息、文件防盗码、购买者总共支付的coin和coin的分配信息。
本发明的另一目的在于提供一种实施所述基于区块链分布式文件交易系统的文件存储处理方法的基于区块链的分布式文件交易系统的的文件存储处理系统,所述基于区块链分布式文件交易系统的文件存储处理系统包括:
水印打印模块,用于实现用户把待存储文件打上水印;
文件表示模块,用于把文件分成若干个块,按顺序标识;
存储请求发送模块,用于实现用户向系统发送存储请求;
第一存储节点发送模块,用于实现系统挑选合适的存储节点发送给客户;
第二存储节点发送模块,用实现用户再从选定存储节点发送文件;
块标识形成模块,用于实现各个存储节点在各个块上打上自己的标识,形成块标识。
本发明的另一目的在于提供一种实现所述基于区块链分布式文件交易系统的文件存储处理方法的信息数据处理终端。
本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述基于区块链分布式文件交易系统的文件存储处理方法。
本发明的另一目的在于提供一种所述基于区块链分布式文件交易系统的文件存储处理方法在分布式存储中的应用。
本发明的另一目的在于提供一种所述基于区块链分布式文件交易系统的文件存储处理方法在区块链应用中的应用。
综上所述,本发明的优点及积极效果为:本发明基于区块链的分布式文件交易系统来解决上诉无法对文件购买者进行追溯的问题;通过制定完善的存储文件,文件付费,文件获取等规则,构成一个可溯源的基于区块链的分布式文件交易系统。其中提供了一种文件防盗码,通过查询存储在区块链上的防盗码等关键信息即可达到文件传播源头追溯的效果。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种基于区块链的分布式文件交易系统的文件盗版追责的处理方法,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的基于区块链分布式文件交易系统的文件存储处理方法包括以下步骤:
S101:用户把待存储文件打上水印;
S102:把文件分成若干个块,按顺序标识;
S103:用户向系统发送存储请求;
S104:系统挑选合适的存储节点发送给客户;
S105:用户再从选定存储节点发送文件;
S106:各个存储节点在各个块上打上自己的标识,形成块标识。
如图2所示,本发明实施例提供的基于区块链的分布式文件交易系统的文件传播处理方法包括以下步骤:
购买者搜索相关文件;
购买者确定欲购买文件;购买者转账到区块链,区块链锁定coin;确定coin的数据是否能够付款,不能则发送拒绝获取请求给各存储节点,各存储节点拒绝和购买者进行连接;能够付款则发送确认获取请求给各存储节点;
购买者发送获取请求给各存储节点;各存储节点收到区块链发送的确认获取请求后和购买者进行连接,各个存储节点分别按块传输文件;
文件传输完成生成文件防盗码,在区块链上记录文件防盗码等交易信息。
下面结合附图对本发明的技术方案作进一步的描述。
本发明实施例的用户Alice付费打算存储1份文件Flie123,由于是区块链下的分布式文件交易系统,存储节点是独立节点,存在短期离线或者长期离线等用户需要取文件的时候无法和存储节点构成连接的等问题。除了用安全存储的共识来激励存储节点外,用户最好选择多个存储节点重复存储,所以打算存10份在10个节点上,计划存10年。
如图3所示,本发明提出的基于区块链的分布式文件系统的文件防盗码生成,如下:
步骤一:对于存储文件Flie123,用户在存入前给文件打上水印,其中包含自己的信息和时间,保证该水印可以证明文件的所有权。
如今的水印技术已经发展到文件的分割不影响水印的存在。所以存入分布式存储节点的时候,把文件分成若干块传送也不影响文件的水印。这样第一步就保证了文件的所有权不会被篡改,可验证。
步骤二:存储用户Alice在把文件发给各个存储节点之前,先把文件分块并且排序,把文件分成10分,f1,f2,f3...f10。
步骤三:用户Alice向存储系统发送存储请求,存储请求包括:文件大小,存储时长,存储份数;
步骤四:存储系统根据存储请求来挑选出15存储节点A,B,C...O,发送它们的信息和价格给用户Alice。
步骤五:用户Alice从中选定存储节点A,B,C...J,把文件按块发送给各个存储节点,保证每个存储节点都接收到所有的文件块;
步骤六:10个存储节点A,B,C...J按块接收文件,保证每个存储节点都接收到所有的文件块存储到本地。各个存储节点一边接收一边在各个块上打上自己的标识,形成每个块的块标识,如[存储节点ID][文件名][用户水印][块序号]。如存储节点A,其块标识为[ID:A][Flie123][Alice][1-10];下面简写为{af1,af2,af3...af10};存储节点B,其块标识为[ID:B][Flie123][Alice][1-10];
下面简写为{bf1,bf2,bf3...bf10};
步骤七:购买者Bob在搜索系统中搜索所需文件的关键字,搜索相关文件,确定欲购文件;
步骤八:当购买者Bob在搜索数据库中搜索到所需文件Flie123时,对10个存储节点发起“文件获取请求“;
步骤九:购买者Bob先把coin从账户转到区块链上,该coin会先被锁定。区块链节点达成购买者有能力付款这个共识后,链上节点会发送“文件确认获取请求”给存储节点;
步骤十:存储节点收到“文件确认获取请求”后,所有的在线节点才会和购买者进行连接,由于带宽和传输速率等原因,速率高的节点可能会发送更多的文件块,每个节点会检测所需要的文件块,不重复发送;
步骤十一:购买者接收到所有的文件块后,由每个文件块的块标识组成的独一无二的文件防盗码形成,如af1bf2bf3cf4ef5ef6gf7gf8af9jf10。由该文件防盗码可以看出存储节点D,F,H,I没有参与传输,存储节点A传输了f1,f9;存储节点B传输了f2,f3,存储节点C传输了f4,存储节点E传输了f5,f6,存储节点G传输了f7,f8,存储节点J传输了f10。
步骤十二:将文件防盗码连同文件交易信息等一同记录到区块链上。
根据本发明文件防盗码的作用给存储用户和存储节点支付费用,如下:
购买者总支付10coin,40%的coin付给文件所有者,即文件所有者获得4个coin;60%的分给参与传输的存储节点,即存储节点总共获得6个coin。假设,m为文件总块数,第L个节点发送的n块。第L个节点能拿到的coin按公式分配为:
存储节点A获得:
个coin;存储节点B获得:/>
个coin;存储节点C获得:/>
个coin;存储节点E获得:/>
个coin;存储节点G获得:/>
个coin;存储节点J获得:/>
个coin。
作为交易信息的一部分存入区块链中,在文件追溯的时候可以根据路由码来查找文件的购买者。链上记录信息:存储用户信息,购买者信息,文件信息,存储节点信息,路由码,购买者总共支付的coin,coin的分配信息。
当文件所有者Alice想查找文件都买给了谁,可以在区块链上查自己的用户ID和文件名,这样就能查到文件的所有购买者。
当Alice看到一份文件,想确认是不是自己的文件,并且这个文件的持有者是否付费获得了文件时。首先验证文件的水印来确定文件的所有权,再通过文件的文件防盗码,在区块链上通过查询其文件名,存储用户ID和文件防盗码,找到购买者的信息。
文件防盗码的唯一性。假设,文件被分成10块,被10个节点(A,B,C,D…J)完整存储。如A节点拥有文件:{af1,af2,af3…af10},B节点拥有文件:
{bf1,bf2,bf3…bf10},C节点拥有文件:{cf1,cf2,cf3..cf10},
在文件传输过程中,会形成文件防盗码如:{af1bf2bf3cf4ef5ef6gf7gf8af9jf10},文件防盗码有1010种可能性。可以认为文件防盗码有唯一性,可以唯一的对应一个文件购买者。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。