Imfile背后的技术原理剖析
近期出现了FIL,XCH,BZZ这些存储系统出来,好多人都不了解就拼命的冲进去,一起狂欢,最后落得一地鸡毛,其实分布式存储要落地到民众使用太难,本次我们讲解下最接地气的比特流(Bittorrent)技术应用平台imfile。
我们知道BT下载,全称就是Bittorrent,它是一种内容分发协议,根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个.torrent文件,即种子文件,也简称为“种子”,.torrent文件本质上是文本文件,包含Tracker信息和文件信息两部分,Tracker服务器相当于广播站,用来相互之间沟通谁哪里有这个文件或者正在下载这个文件,个人也可以提供一个Tracker服务器,其中的文件信息是根据对目标文件的计算生成的,把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方,并把每个块的索引信息和Hash验证码写入种子文件(.torrent)中,所以,种子文件(.torrent)就是被下载文件的“索引”。
那么什么是Tracker服务器,它是指运行于服务器上的一个程序,这个程序能够追踪到底有多少人同时在下载同一个文件,客户端连上tracker服务器,就会获得一个下载人员的名单,根据这个,BT会自动连上别人的机器进行下载,它是提供bt的服务器,把文件用bt发布出来的人需要知道该使用哪个服务器来为要发布的文件提供tracker,由于不指定服务器,BitTorrent采用BT文件来确定下载源,所以谁提供了种子文件,谁就能做Tracker服务器,我们想象下在人群密度很高得地方,例如在地铁,体育馆,舞台做直播,自己一个手机就可以分发几千几万人同时观看的视频,而且不需要中心服务器,这是一件多么伟大的技术,只是没有得到有效的推广而已,如果是广域网,我们只需要搜索下Tracker服务器,即可分享文件,网络上已经有成千上百个Tracker服务器,都是无偿奉献的。
我想目前市场上没有一个存储系统能够这么亲民,我们可以想象10G的文件在imfile演化后,只有10K不到的数据,成为存储的大型后花园,而且还无网络的限制,未来发展前景可观。