基于IPFS生物数据的存储传输

2019-07-25 01:42张昌文满毅何进谷杰铭邢潇
网络空间安全 2019年3期

张昌文 满毅 何进 谷杰铭 邢潇

摘   要:随着生物数据的价值被不断地挖掘出来,对其进行有效存储和高效地传输变得尤为重要。论文通过结合星际文件系统(Interplanetary File System,IPFS),提出了基于IPFS的生物数据存储传输系统,用来提高生物数据的存储传输效率;在生物数据传输方面,引入了数据交换机制和秒传机制来提高生物数据传输速度;在生物数据存储方面,通过采用一种高效的数据存储结构和引入版本控制机制来提高生物数据存储效率。与此同时,通过对生物数据的存储传输进行了深入调研,并进行对比实验验证系统的效果,实验结果表明,相比于HTTP、FTP的存储传输效率,论文提出的系统具有较高的存储效率与传输速度。

关键词:IPFS;数据交换机制;版本控制机制;秒传机制

中图分类号:TP309.2          文献标识码:A

Abstract: The value of biological data (biodata) is constantly being explored, so it is especially important to store it efficiently. This paper proposes a biological data storage and transmission system based on IPFS by combining IPFS (Interplanetary File System), used to improve the efficiency of biological data storage transmission. In the aspect of biological data transmission, a data exchange mechanism and second transfer mechanism is introduced to improve the speed of biological data transmission. In the aspect of biological data storage, improving the biological data storage efficiency by adopting an efficient data storage structure and introducing a version control mechanism. In this paper, in-depth research on the storage and transmission of biological data, and a comparative experiment was carried out to verify the effect of the system. Experimental results show that compared with the storage and transmission efficiency of HTTP and FTP, the proposed system has higher storage efficiency and transmission speed.

Key words: IPFS; data exchange mechanism; version control mechanism; second transfer mechanism

1 引言

隨着生物行业的快速发展,生物数据呈现出了数据量巨大、数据来源广泛、数据种类繁多、具有高价值等特点,不同的研究机构开始对生物数据进行研究分析,而研究的前提就是对生物数据进行存储与传输。在生物数据存储方面,生物数据存储是进行研究的基础,因此必须要有一种高效的数据存储方式来应对生物数据所呈现出来的特点。目前,常用的数据存储方式主要有关系型数据库存储[1]和非关系型数据库存储[2]等。在生物数据的传输方面,数据传输是不同研究机构之间分享研究结果的必然方法,目前常用的数据传输方式有FTP[3](文件传输协议)、HTTP[4](超文本传输协议)、P2P[5](点对点技术)等技术。

在数据存储方面,Federico Tavella[6]等人提出了一种依赖于分子通信的新存储解决方案,特别是用细菌纳米网络来解决DNA分子的存储问题。S. M. Hossein Tabatabaei Yazdi1[7]等人对归档和随机访问DNA存储通道引入和分析了一套新的约束编码方案。Edvard Pedersen[8]等人提出了用于生物元数据库管理的GeStore方法,它提供特定元数据库版本的高效存储和运行时生成,以及生物数据分析工具的高效增量更新。

在数据传输方面,Kunwar Pal[9]等人提出基于数据块优先级选择方案和带宽感知对等体选择机制的组合,其改善了对等体之间的延迟,从而提高数据的传输速度;Ping Lai[10]等人提出了一种新的高级数据传输服务(ADTS),此文利用ADTS设计一个高性能的FTP库(FTP-ADTS),用于高性能数据传输;Ding Zhang[11]等人提出了一种利用Node.JS平台构建超文本传输协议(HTTP)Web服务器与传输控制协议或用户数据报协议(TCP / UDP)套接字程序相结合的解决方案,提高PC程序和嵌入式系统通信的效率。

IPFS(Interplanetary File System,星际文件系统)[12]是一个分布式的Web,点到点超媒体协议,被誉为将取代传统的互联网HTTP协议成为新一代的文件传输协议。它融合了P2P、DHT、BitTorrent、GIT、SFS等技术,而在IPFS系统中起架构作用的是P2P技术,P2P技术采用的是分布式计算方式,具有可靠性、高容错性、可扩展性、灵活性、计算速度快等特点。除此之外,IPFS系统融合了Merkle Tree[13]和DAG[14]提出的强大的Merkle DAG对象模型,并通过此对象模型构建了版本文件系统,用于不同版本文件的分发。

在论文中,首次提出了基于IPFS的生物数据的存储传输系统。在生物数据传输方面,引入了数据交换机制和秒传机制来提高生物数据传输速度。在生物数据存储方面,通过采用一种高效的数据存储结构、引入版本控制机制来提高生物数据存储效率;然后通过与HTTP、FTP技术在生物数据存储传输效率方面进行实验对比分析,得出论文提出的系统具有较高的数据存储与传输效率。

基于 IPFS的生物存储传输系统的设计,主要包括系统框架、模块设计以及系统中的关键点。

2 系统设计

2.1 系统框架

论文中设计出的系统主要用于生物数据的存储与传输,因此将整个系统分为四层结构,如图1所示,由下到上分别是存储层、路由层、交换层、应用层。

存储层:主要目的是用来存储生物数据。将整个系统中的每一个节点分离出一部分硬盘空间提供给整个网络使用,并且采用了一种高效的数据存储结构来存储生物数据。

路由层:主要目的是帮节点在整个系统中查到自己所需资源。此系统采用DHT[15](分布式哈希表)的存储方式,用来存储和查询系统中的生物数据。

交换层:主要目的是用来提高生物数据的下载速度。系统在BitTorrent的基础上进行了改进,采用了一个特殊的数据交换机制。

应用层:根据论文中要解决的业务需求,对生物数据进行相关的操作,主要包括生物数据的上传、生物数据的下载、生物数据的查询。

2.2 模块设计

如图2所示,基于IPFS的生物数据的存储传输系统主要由存储模块、资源查找模块、数据交换模块、系统功能模块组成。

存储模块,即用于存储生物数据的模块,在此模块中采用的是生物数据分片存储的方式,并且对于系统网络中已经上传的数据还引入了秒传机制,达到极速秒传的效果。此外,又引入了版本控制,即控制数据上传过程中产生不同版本的问题,并根据需要进行不同版本的分发。

资源查找模块,即用于查找所需的生物数据并存储相关索引信息,其包括存储与定位两部分,当生物数据的大小小于1KB时会直接存储在DHT中,如果大于1KB的生物数据将只会存储其索引值,当进行资源查找时,会直接根据生物数据的索引值在DHT中查询定位所需生物数据。

数据交换模块,即整个系统中的每一个节点都有两个列表:已有的生物数据和所需的生物数据。对于需要查找资源的节点,通过资源查找模块来对所需的生物数据查询,当查询到之后,会与对应的节点建立连接,并进行数据的交换。在资源查找过程中,对于其它的节点,会查询自己有的生物数据,并对比查找节点的所需数据,确定自己是否有目标资源。

系统功能模块,主要功能有生物数据的上传、下载、查询。生物数据上传,即将生物数据上传到系统网络之中;生物数据的下载,即在系统网络中下载节点所需的生物数据;生物数据查询,即查询网络之中有哪些生物数据。

2.3 关键点

2.3.1 秒传机制

在此系统中引入了秒传机制,用来提高生物数据的上传速度。其原理是当某个节点上传的生物数据到系统网络中之后,通过哈希值校验可以确定此生物数据是否存在于网络之中,如果存在于网络之中,则该文件可以通过系统网络复制一份到上传者的本地存储中,从而达到极速秒传的效果。

2.3.2 数据交换机制

在数据交换模块中,系统网络中的每个节点都有两个列表:have_list(已有生物数据块)、want_list(想要生物数据块)。通过节点之间交换生物数据块来达到分发数据的效果,并且当节点在下载生物数据的同时,也会不断地上传已经下载的生物数据块到系统网络中。与此同时,此交换机制还存在一个仓库用来存储所有节点已有的生物数据块,因此只要当生物数据的哈希值与want_list中的哈希值一样时,则可以直接下载该生物数据块,而不仅局限于一个对应的节点。

2.3.3 数据存储结构

此系统在存储生物数据时,除了对生物数据进行等大小的分片存储之外,还采用了特殊的数据存储结构。此结构采用树状结构,主要由节点与链接组成,节点存储有数据以及下级链接的关系,而链接存储了数据的Hash值。链接的数据结构主要由三部分组成:Name(下级数据名称)、Size(下级数据大小)、Cid(下级数据索引)。在这样数据结构下,父节点的哈希值是由子节点的哈希值所决定的,父节点中包含有子节点的信息,因此当生物数据块被修改之后,只需要对被修改的生物数据块进行复制,再进行修改即可,而不是对整个生物数据进行复制,因此会大大减少存储空间的消耗。

2.3.4 版本控制机制

版本控制系统,即当生物数据存在部分更改时会产生不同版本的生物数据,因此可以根据版本号来获取需要的整个生物数据。从2.3.3小节提出的生物數据的存储结构可得,当生物数据部分发生改变时,只需要对其发生改变的生物数据块进行修改,这样就产生了新版本的生物数据。由于当生物数据块被改动之后,其对应的哈希值也随之改变,因此将所有生物数据块的哈希值链接到一起作为其版本号,并将其存储到对应的节点上。这样就可以通过给定的生物数据的版本号,查询到对应的节点,再根据此版本号中的哈希值找到对应的生物数据的分片,再将分片组合起来,即形成了完整的生物数据。

3 系统运行过程与可行性分析

3.1 系统运行过程

基于IPFS的生物数据存储传输系统的最主要的运行过程是生物数据的上传、下载、存储。

首先,生物数据的上传。当生物数据大小大于1KB时,会采用等大小分片的方式对生物数据进行分片,即将生物数据的每一个片分成256KB,然后计算每片生物数据块的哈希值,并将所有块的哈希值(Block Hash)组成一个数组,再一次计算其哈希值,这样就得到了生物数据最终的哈希值Hash(Biodata),然后将Hash(Biodata)和Block Hash数组组成一个对象并将其作为索引结构,最终将所有生物数据块与索引结构上传到网络中,完成生物数据的上传,并返回生物数据的Hash(Biodata),如果生物数据大小小于1KB时,则直接把生物数据与哈希值(索引)上传到网络中。此外,如果当某个用户上传的生物数据已经存在于系统网络之中,那么将使用秒传机制,来达到极速秒传的效果。

其次,生物数据的存储。为了提高存储的效率,系统会选择最快的路径来存储生物数据。系统中的每个节点都会提供一部分硬盘空间(默认为10GB,可以配置)给整个网络使用。那么在通常情况下,这部分硬盘空间总是最快的,因为不需要跨网。当存储完毕后,网络上任意节点都可以访问这个生物数据。当有很多节点对这个生物数据感兴趣,那么网络中的拷贝数会越来越多,所以在生物数据下载时就可以与多个节点相连接来传输生物数据块。除此之外,系统还引入了版本控制机制,来实现随着时间变化的不同生物数据版本的控制,并且可以有效分发不同的生物数据版本。

最后,生物数据的下载。系统网络中对生物数据的资源查找采用的是DHT(Distributed Hash Tables)技术,网络中所有节点都维护着键值对的映射,每个节点只负责网络中一部分的数据存储与路由信息,并且DHT的查询效率为log2(n),所以当某个节点根据生物数据的键即Hash值进行资源查找时,通过DHT可以迅速定位到资源所在地,然后调用数据交换机制来完成发起资源请求的节点下载所需生物数据。此外,当网络中有多个节点都存在资源时,发起资源查询的节点可以从多处目标节点上获取生物数据的片段,从而达到加速下载的目的。

3.2 系统可行性分析

生物数据具有很高的价值,此价值不仅体现在生物行业,而且可以用于其它行业,比如医学、农业和健康等领域。而IPFS被誉为将取代传统的互联网HTTP协议成为新一代的文件传输协议,IPFS具有可扩展性、传输速度快的特点,并且可以让互联网有更快的速度,更加安全,更加开放,其为生物数据的存储传输提供了技术支持。此外,IPFS的开发可以使用多种编程语言,比如Go、JavaScript等,因此从技术方面来说具有较强的可行性。

此系统作为一个分布式的系统,网络中的所有节点既是服务器也是客户机,不存在有中心服务器,因此当网络中的某个节点失效或者离开网络时,都不会对整个网络产生影响,因此从系统稳定的角度来说具有较强的可行性。

4 实验与分析

基于IPFS的生物数据存储传输系统在生物数据的传输方面,生物数据的传输速度要比FTP、HTTP的速度更快,效率更高。在生物数据的存储方面,使用该系统进行生物数据存储具有存储简单方便、存储效率高等优势。

本次实验采用的实验平台分别是Windows(Intel? Core?i5-4200U CPU @ 1.60GHz 2.30GHz ;Memory:6.0 GB)、Ubuntu14.04(Intel? Core?2 Duo CPU E8400 @ 3.00GHz × 2;Memory:2.0 GB)、Ubuntu16.04(Intel? Core? i7-4790 CPU @ 3.60GHz × 8;Memory:15.6GB );实验网络采用的是4G网络。

在实验中采用的是FileZilla[16]来实现FTP的文件传输。当生物数据大小为1GB时,先在Windows上安装好FileZilla Server,后在Ubuntu16.04和Ubuntu14.04系统中安装FileZilla客户端,然后在Ubuntu14.04系统中上传本次实验的1GB的生物数据到FTP的服务器,实验结果表明,上传速度为3.4MB/s;上传成功之后在Ubuntu16.04系统中下载此生物数据,实验结果表明,下载速度为1.3MB/s。1GB生物数据其所占空间为1GB;当生物数据大小为5GB时,实验结果表明,上传速度为3.1MB/s,下载速度为1.2MB/s,5GB生物数据其所占空间为5GB。

在实验中采用的是HFS来实现HTTP的文件传输。当生物数据大小为1GB时,在Windows系统上搭建好HFS的服务器,由于其服务器是直接通过选择硬盘中的文件,即整个Windows系统的硬盘空间都已经在其服务器之中,故不存在上传速度的说法。然后,Ubuntu14.04系统中通过给定的HTTP链接在浏览器中打开进行下载文件,实验结果表明,其下载速度为3.4MB/s,并且1GB的生物数据占了Windows硬盘空间1GB的存储。 当生物数据大小为5GB时,实验结果表明,下载速度为3.2MB/s,并且1GB的生物数据占了Windows硬盘空间5GB的存储。

本次实验使用基于IPFS对生物数据进行传输与存储的系统,首先在Windows、Ubuntu14.04、Ubuntu16.04系统中安装好基于IPFS的系统,并让所有实验平台都处在一個局域网中,然后在Windows系统上的节点上传1GB的生物数据,在Ubuntu16.04系统的节点上传5GB的生物数据,并且测试其上传数据以及所占硬盘空间。随后,系统中非上传的某两个节点对1GB、5GB的生物数据分别进行下载,测试其下载速度。最后,此时网络中1GB、5GB的生物数据分别都已经存在于两个系统节点之中,再让不包含1GB或者5GB生物数据的节点进行下载,测试其在多节点加速下的下载速度。此外,当生物数据上传到系统网络中之后,会对文件进行分块并哈希存储在本地硬盘之中。

本次实验通过对1GB/5GB生物数据的10%部分进行完全改变,并采用各种传输方式对其进行上传并存储。实验结果表明,当生物数据量为1GB时,改变其中100MB数据,由于原来硬盘中已经存储有1GB数据,再次上传之后,在FTP传输方式中占用2GB硬盘空间;在HTTP传输方式中也占用2GB硬盘空间。在基于IPFS的系统中,占用1.1GB内存空间;同样当生物数据量为5GB时,改变其中500MB数据,由于原来硬盘中已经存储有5GB数据,再次上传之后,在FTP传输方式中占用10GB硬盘空间;在HTTP传输方式中也占用10GB硬盘空间;在基于IPFS的系统中,占用5.5GB内存空间。

综上所述,当生物数据量为1GB时,实验结果如表1所示。当生物数据量为5GB时,实验结果如表2所示。

從实验结果可得,无论是在大数据量还是小数据量的情况下,论文提出的系统在生物数据的传输方面都表现出了远高于FTP、HTTP的传输效率。与此同时,由于引入了秒传机制和多节点加速机制,进一步提高了生物数据的传输效率。在生物数据的存储方面,当生物数据部分发生改变需要再次上传时,FTP、HTTP会对整个生物数据再次存储,而论文提出的系统只会对修改部分进行再次存储,因此明显地提高了生物数据的存储效率。

5 结束语

生物数据的存储与传输在生物数据的研究中起着非常重要的作用,因此为了提高生物数据的存储效率和加快生物数据的传输速度,论文首次提出了基于IPFS生物数据的存储传输系统。

首先,在生物数据传输方面,上传时采用了分片哈希上传机制和秒传机制,资源查找时采用了DHT技术,下载时采用数据交换机制,以此来提高了生物数据的传输速度。

其次,在生物数据存储方面,通过一种高效的数据存储结构对生物数据进行存储,并通过版本控制系统对不同版本的生物数据进行分发,从而提高了生物数据的存储效率。从实验结果中可得,在生物数据传输速度方面,论文提出的系统具有远快于FTP、HTTP的传输速度,并且在秒传机制的作用下,当系统网络中存在所要上传的生物数据时,其可以达到极速秒传的效果,并且在多节点加速机制的作用下,会进一步提高生物数据传输的速度。在生物数据的存储方面,当生物数据部分发生改变需要再次上传时,FTP、HTTP会对整个生物数据再次存储,而论文提出的系统只会对修改部分进行再次存储,因此明显地提高了生物数据的存储效率。

基金项目:

国家重点研发计划“生物信息安全及高效传输”项目(项目编号:2017YFC1201204)。

参考文献

[1] Tomasic I, Petrovi? N, Fotouhi H, et al. Data Flow and Collection for Remote Patients Monitoring: From Wireless Sensors through a Relational Database to a Web interface in Real Time [J]. 2017.

[2] Ginde G, Saha S, Mathur A, et al. Use of NoSQL database and visualization techniques to analyze massive scholarly article data from journals[J]. 2018.

[3] Gien M. A File Transfer Protocol (FTP) [J]. Computer Networks, 1978, 2(4):312-319.

[4] Reschke J F. This document defines the "Basic" Hypertext Transfer Protocol (HTTP) Authentication Scheme, which transmits credentials as userid/password pairs, obfuscated by the use of Base64 encoding [J]. 2015.

[5] Elrakabawy S M, Lindemann C. Peer-to-peer file transfer in wireless mesh networks[C]. Conference on Wireless on Demand Network Systems & Services. 2012.

[6] Tavella F, Giaretta A, Dooley-Cullinane T M, et al. DNA Molecular Storage System: Transferring Digitally Encoded Information through Bacterial Nanonetworks [J]. 2018.

[7] Yazdi S M H T, Han M K, Garcia-Ruiz E, et al. DNA-Based Storage: Trends and Methods [J]. IEEE Transactions on Molecular, Biological and Multi-Scale Communications, 2015, 1(3):230-248.

[8] Pedersen E, Bongo L A. Large-scale Biological Meta-Database Management [J]. Future Generation Computer Systems, 2016.

[9] Pal K, Govil M C, Ahmed M. Priority-based scheduling scheme for live video streaming in peer-to-peer network [J]. Multimedia Tools & Applications, 2018(2):1-31.

[10] Lai P , Subramoni H , Narravula S , et al. Designing Efficient FTP Mechanisms for High Performance Data-Transfer over InfiniBand.[C]. International Conference on Parallel Processing. IEEE Computer Society, 2009.

[11] Zhang D, Lin S, Fu Y, et al. The communication system between web application host computers and embedded systems based on Node.JS[C]. International Congress on Image & Signal Processing. IEEE, 2018.

[12] Benet J. IPFS - Content Addressed, Versioned, P2P File System [J]. Eprint Arxiv, 2014.

[13] Jian X, Wei L, Yu Z, et al. Dynamic Fully Homomorphic encryption-based Merkle Tree for lightweight streaming authenticated data structures [J]. Journal of Network & Computer Applications, 2018, 107.

[14] Radhakrishnan A, Solus L, Uhler C. Counting Markov equivalence classes for DAG models on trees [J]. Discrete Applied Mathematics, 2018:S0166218X18301069.

[15] Hassanzadeh-Nazarabadi Y, Küp?ü A, ?znur ?zkasap. Decentralized and locality aware replication method for DHT-based P2P storage systems [J]. Future Generation Computer Systems, 2018, 84:32-46.

[16] Woodraska D, Sanford M, Xu D. Security mutation testing of the FileZilla FTP server[C]. Acm Symposium on Applied Computing. 2011.