尽管网络上,已经有不少文章讨论IPFS,不过真正讲明白IPFS想做什么的很少,文本尝试站在未来Web3.0的高度来看看IPFS究竟用来解决什么问题。
DApp 的缺陷
对区块链有所了解的同学,知道区块链维护的是一个中立的(去中心)、共同信任、难以篡改的数据库、智能合约创造的是一个完全透明(不被干扰)的运行规则,因此可以解决信任问题。
一切看起来很美好,我们可以开发去中心化应用DApp 解决信任问题,由此也确实产生了很多的博彩类DApp游戏。
细心的同学,也许会发现一个问题,虽然DApp的后台逻辑(智能合约)是在无中心的节点上运行的透明的规则,但是我们看到内容却来自于一台无信任的中心化服务器。
这是由当前互联网规则-超文本媒体传输协议(HTTP)决定的,简单来讲,在这个协议下,当我们在浏览器输入一个网址时,总是会先找到这个网址(域名)对应的服务器IP地址,然后请求服务器,并把服务器的响应显示在浏览器。
这种方式下文件能否访问,完全取决于服务器,服务器也许会关闭、内容获取被篡改或删除,对用户都无法保证。我自己看到好内容把网页收藏的习惯,经常会出现过一段时间再去访问的时候,页面已经不存在了。
IPFS想要做什么
IPFS - InterPlanetary File System 星际文件系统,多数人谈到IPFS都只讲到它的去中心化存储,其实IPFS想要做的远不只存储,其目标是取代HTTP,成为Web3.0时代的基础协议。我们从其官网对IPFS的定义就可以看到其雄心。
尽管Web3.0目前没有明确定义,从2014年以太坊联合创始人Gavin Wood提出分布式网络的Web3.0概念开始,业界普遍认为Web3.0 特征应该是 分布式、可信任。
在官网的有这样两个描述:
IPFS is the Distributed Web A peer-to-peer hypermedia protocol to make the web faster, safer, and more open.
IPFS aims to replace HTTP and build a better web for all of us.
翻译过来就是:
1. IPFS是分布式Web,是点对点的超媒体协议,以构建更快、更安全、更开放的网络。
2. IPFS旨在取代HTTP,为我们构建一个更好的web。
当然,要完全取代HTTP还有一段路要走,最大的坎是怎样让主流的浏览器支持IPFS协议,现在是通过HTTP网关的方式访问IPFS网上面存在的文件。 未来IPFS能取代Http的话?就是通过网络浏览器里直接输入 ipfs://文件hash访问内容,目前这种方式访问IPFS 必须依靠浏览器插件ipfs 伴侣, 并且这个插件的使用不广泛。
注意,这里提到的浏览器,只是沿用这个名词,Web3.0的浏览器也许不叫浏览器, 它更可能是数字钱包和浏览器的组合体,现在浏览器上发起交易也同样需要依靠钱包插件进行签名。所以这样一个形态的产品也是大家的机会,这是一个全新的超大入口级产品。
即未来期望的访问方式是这样的: ipfs://Qme2qNy61yLj9hzDm4VN6HDEkCmksycgSEM33k4eHCgaVu
而现在通过网关访问是这样的: http://127.0.0.1:8080/ipfs/Qme2qNy61yLj9hzDm4VN6HDEkCmksycgSEM33k4eHCgaVu https://ipfs.io/ipfs/Qme2qNy61yLj9hzDm4VN6HDEkCmksycgSEM33k4eHCgaVu
IPFS是怎么做的
IPFS是一种内容可寻址、版本化、点对点超媒体的分布式存储、传输协议。
我们知道在现在的网络服务里,内容是基于位置(IP)寻址的,就是在查找内容的时候,需要先找到内容所在的服务器(根据IP),然后再在服务器上找对应的内容。 而在IPFS的网络里,是根据内容寻址,每一个上传到IPFS上面去的文件、文件夹,都是以Qm为开头字母的哈希值,无需知道文件存储在哪里,通过哈希值就能够找到这个文件,这种方式叫内容寻址。
工作原理
在IPFS系统中,内容会分块存放(如果内容很小就会直接存在DHT中),并分散存储在IPFS网络中的节点上(不过目前的IPFS实现,一个节点会完整保存内容的所有区块)。系统会给内容的每一个块计算哈希值,然后把所有块的哈希值拼凑起来,再计算一次哈希值,从而得到最终的哈希值。同时每个节点会维护一张DHT(分布式哈希表),包含数据块与目标节点的映射关系。
在IPFS中是通过哈希去请求文件的,它就会使用这个分布式哈希表找到文件所在的节点,取回文件根据哈希重新组合文件(同样也会验证文件)。
IPFS的特点
根据前面的原理,我们可以推倒出IPFS的几个特点:
当我们知道一个文件的哈希值之后,可以确保文件不被修改, 即可以确保访问的文件是没有被篡改的。因为根据哈希的特点,哪怕源文件有一丁点的更改,对应的哈希值也会完全不同。
(理论上) 如果IPFS得以普及,节点数达到一定规模,内容将永久保存,就算部分节点离线,也不会影响文件的读取,不像现在的收藏会失效。
由于IPFS是一个统一的网络,只要文件在网络中被存储过,除了必要的冗余备份,文件不会被重复存储,对比现有互联网,信息孤岛,各中心间不共享数据,数据不的不重复存储,IPFS一定意义上节约了空间,使得整个网络带宽消耗更低,网络更加高效。
相对于中心化存储的容易遭受DDOS攻击,IPFS采用分布式存储网络,文件被存储在不同的网络节点,天然避免了DDOS攻击,同时一个文件可以同时从多个节点同时下载,通信的效率也会更高。
IPNS
在IPFS中,一个文件的哈希值完全取决于其内容,修改它的内容,其相应的Hash值也会发生改变。这样有一个优点是保证文件的不可篡改,提高数据的安全性。 但同时我们在开发应用(如网站)时,经常需要更新内容发布新版本,如果每次都让用户每次在浏览器中输入不同的IPFS地址来访问更新后内容的网页,这个体验肯定是无法接受的。
IPFS提供了一个解决方案IPNS(Inter-Planetary Naming System),他提供了一个被私钥限定的IPNS哈希ID(通常是PeerID),其用来指向具体IPFS文件哈希,当有新的内容更新时,就可以更新IPNS哈希ID的指向。
为了方便大家理解,做一个类比,和DNS类似, DNS记录了域名指向的IP地址, 如果服务器更改,我们可以更改DNS域名指向,保证域名指向最新的服务器。 IPNS则是用一个哈希ID指向一个真实内容文件的Hash,文件更新这更改哈希ID的指向,当然更新指向需要有哈希ID对应的私钥。
通过IPNS访问文件的方式如下:
利用插件访问:ipns://QmYM36s4ut2TiufVvVUABSVWmx8VvmDU7xKUiVeswBuTva 利用网关访问: http://127.0.0.1:8080/ipns/QmYM36s4ut2TiufVvVUABSVWmx8VvmDU7xKUiVeswBuTva
IPNS同样兼容DNS,使用DNS TXT记录域名对应的IPNS哈希ID,就可以域名来替换IPNS哈希ID来进行访问。从而实现更容易读写和记忆。
例如使用以下方式简化访问: ipns://ipfs.io https://ipfs.io/ipns/ipfs.io/
IPFS/IPNS 如果使用,将在后面的文章进一步介绍。
小结
IPFS是一项非常激动人心的技术,尽管它仍在发展的早期(区块链也是),还有很多问题需要我们一起解决,如NAT穿透问题,浏览器支持问题,内容存储激励问题,存储数据安全与隐私保护问题。 但是通过 IPFS + 区块链将真正创建Web3.0时代的应用,这是一个完全可信的、自运转(不停机)的应用,目前在很多领域都已经广泛的应用了:
1.Orbit
Orbit是在IPFS基础上的一个完全分布式、点对点、实时的聊天应用。可以把它当做去中心化的Slack or IRC!
Orbit通过IPFS和CRDTs来存储和处理实时通讯:它可以在没有任何中心点的情况下工作,完全点对点。但是我们如何去鉴别用户并且保持他们的身份?用以太坊!Orbit通过以太坊和uPort来注册身份,跟踪用户明以及身份信息,鉴别用户以及更多。这是一个IPFS分布式应用与以太坊处理系统强有力结合的展示。
·
2.Neocities
Neocities是一个拥有204,800个网站的社交网络,提供免费的静态网站托管和工具,允许用户创建自己的网站。
Neocities具有浏览器内HTML编辑器,命令行工具,自定义域支持,快速网站性能,轻松文件上传,RSS源,文件夹支持等等。
Neocities在全球11个数据中心运营缓存CDN,以快速为网站提供服务。Neocities还在所有站点上强制实施100%强大的SSL,并且完全支持HTTP / 2在Neocities上的网站都会快速加载。
Neocities是零广告的、开源的、易于操作的且具有超快的性能。
·
3.Spotify
是一个由瑞典公司开发的音乐流媒体服务应用,使用Spotify,您可以轻松地在手机,计算机,平板电脑等设备上随时找到合适的音乐。
Spotify上有数百万首曲目。因此,用户可以有很多的选择,您还可以浏览朋友,艺术家和名人的音乐收藏,或创建一个广播电台。
Spotify是一项免费增值服务; 基本功能是免费的广告或限制,而其他功能,如改进的流媒体质量和音乐下载,可通过付费订阅提供。
Spotify使用了建立在星际间文件系统(IPFS)之上的分散式开放式媒体库,允许内容创建者对其进行陈述。以加密方式签名,在比特币区块链中加盖时间戳并存储在IPFS中的创意作品。
·
4.Opus
Opus是世界上第一个完全分散的音乐共享平台,旨在解决在协议和基础架构层面上音乐共享的40亿美元的行业问题。(来自COO mateusz mach的引用:“我对音乐界现在如何对付音乐家感到失望,这就是为什么我决定投资Opus基金会”)
Opus通过切断所有的中间人,为这个行业注入了新的活力。在Opus,音乐家可以以任何他们觉得适合的价格列出他们的歌曲,并且OPUS让音乐家们为自己保留了近100%的利润,这是音乐界真正的革命性举措。
Opus使用IPFS作为音乐的存储层,并将Ethereum用作逻辑/传输层。Opus公司表示,这样一个系统能够实现快速的可扩展性,并显着降低传输成本。Opus团队主要由开发人员和科技人士组成,已经建立了这样一个系统的基础。现在公开测试版,你可以在他们的网站上尝试(https://opus.audio/)
·
5.Partyshare
Partyshare是构建于点对点超媒体协议IPFS之上的开源文件共享应用程序。
PartyShare是一款适用于Mac和Linux(Windows也可以)的免费应用程序,它使用IPFS协议。 它允许用户使用IPFS共享文件。
用户只需将所需文件拖到PartyShare文件夹中,然后为用户对其进行哈希处理/分配地址即可。 之后其他人就可以使用用户给他们的地址来请求文件。
·
6.Arbore
Arbore是一个免费的开源文件共享应用程序,用户可以私下无限制地将图片、文档、文件发送给您的联系人。Arbore在文件共享中没有数量或大小的限制;没有广告和用户跟踪,保证私人通讯的私密性;分布式理念,文件直接从发件人转移到收件人。
现Arbore的加密阶段尚未未完成,不建议使用敏感文件,同时文件传输要求发件人和收件人同时在线,但Arbore也正在进行改善。
·
7.Alexandria
Alexandria是由Blocktech开发的去中心化内容发布平台,你可以把它想象成没有服务器,广告或审查的Spotify或youtube。
亚历山大古代图书馆是集中化问题的完美而悲惨的例子。今天的信息架构同样容易受到攻击,因为它依赖于集中式集线器来存储和分发信息。而Alexandria使用分布式技术消除了中心故障点。
Alexandria集成了IPFS、比特币、Florincoin三项技术,目标是通过消除中心化和在全球范围内激励用户的数字内容发布和分发。
Alexandria允许任何应用程序利用一种协议,该协议既可以通过各种应用程序货币化和分发媒体。这意味着内容创作者可以用无数种不同的方法销售相同的内容,粉丝不会受限于某个特定的浏览器。
并且Alexandria是开源的,它的目标是创建一个统一的开源标准,允许内容创建者确定其内容如何在互联网上产生收入,并允许其在受众喜欢的任何前端内容浏览器中使用。
8、AKASHA是去中心化社交媒体网络,由Ethereum世界计算机提供动力
9、openbazaar
一个基于数字货币为支付媒介的,免费的在线市场。没有平台费用。没有限制。获得CRYPTOCURRENCY自由买卖
10、Ujo
平台使用区块链技术创建了一个透明的、分散的权利和权利所有者数据库,使用智能合同和加密货币实现权利金支付的自动化
11、Magic Leap One独特的设计和技术让自然光波与柔和的层叠合成光场结合在一起。真实世界和虚拟光线都会发出神经信号,从视网膜传到大脑的视觉部分,创造出难以置信的可信体验
ipfs的未来,小编非常看好!!
合肥星际俱乐部是一家专注IPFS矿机研发、生产、销售、托管为一体的高科技企业。我们的矿机托管服务不单只是提供带宽电力,而是一整套服务,包括场地、租金、国家级专线带宽、安全顾问、运维人员、24小时不间断运营等所有因素。公司技术研发团队全力以赴研究Filecoin的运行机制,优化矿场配置,让广大致力于Filecoin挖矿事业的同路人得到优厚的回报。