当先锋百科网

首页 1 2 3 4 5 6 7

简介

1991年,最早版本的HTTP(超文本传输协议)协议发布, 正式当时这个不怎么起眼的网络协议吹响了互联网行业的号角,随后而来的二十多年,HTTP彻底成为了互联网领域网络协议的绝对霸主。 但是,正如圈内人所言,没有绝对安全的系统一样,也不存在绝对完美的协议。随着时代的发展,HTTP协议爆发出来各种问题,顶尖的工程师们对其缺点越来越不满,抱怨也日益增多。突出体现与以下几个方面

HTTP低效并且昂贵

HTTP请求是从单一的计算机上下载文件,其产生的带宽费用要比基于P2P的分布式网络高出60%, ipfs通过P2P网络协议,除了能够节省带宽,而且能对数据进行备份保存。

人类的历史数据不能被永久保存,会被删除

基于HTTP协议的web服务器,其平均的生命周期只有100天。我们之前访问的站点,一旦服务关闭,我们的数据将永久消失,试想一下,随着QQ宠物的关闭下线,我们再也找不回曾经那些美好的记忆了。

中心化的web服务让权利掌握在少数人手中

网络已经称为了人类历史上最重要的发明之一,并且深深的影响着我们的生活。但是,不管我们是在淘宝开店还是在微信发表文章,我们都并不自由,核心的权利永远掌握在巨头的手中。

网络应用太依赖骨干网

传统的应用保证高可用都是高度依赖骨干网络,IPFS支持创建具有多种弹性的网络,无论是否具有Internet骨干网络,都可以实现持久的高可用。

创新的火种永远不会被扑灭,正是基于以上的种种的抱怨与矛盾,IPFS诞生了。在2014年的5月,一位来自墨西哥的小伙子Juan Benet发明了IPFS。正如绝大多数天才一样,他也有着亮眼的履历与背景,毕业于举世闻名的斯坦福大学,在2015年参与了大名鼎鼎的Ycombinator计划,并成功创办了Protocol Lab实验室。

尽管如此,但以上种种都不是IPFS被世人所熟知的原因,尽管IPFS一开始的设计就号称是革命性的技术。 但在其诞生的前几年,并没有引起世人的关注。 相信对区块链有所关注的人们都知道,2017年在区块链领域是非同寻常的一年,比特币价格一度暴涨至2万美金,各种ICO项目层出不穷。 正是这一年,基于IPFS的区块链项目FileCoin诞生了。FileCoin在2017年8月创纪录地募集到了2.5亿美金,而这仅仅是在Token sale出售了10%的代币的情况下,这也意味着FoinCoin还未上线,市值就达到了惊人的25亿美金,虽然这一记录很快就被后来的EOS所超越,但其所取得的成绩也是有目共睹。可以说FoinCoin的成功极大地促进了IPFS技术的发展,越来越多的开发者加入进来贡献代码,其影响力正在以指数般的速度增长。

理论介绍

IPFS是什么?

打开ipfs的官网网站印入眼帘的几个大字,IPFS is the Distributed Web, 是的,在创始人严重其目的就是来挑战HTTP的霸主地位,定义下一代的web服务标准。但,随着社区的不断进化与创新,IPFS能干的事情已经隐隐超出了HTTP协议的范畴,除了传输其在存储领域也正闪耀了耀眼的光芒。当然,谁也无法把我历史的进程,IPFS最终能否像HTTP一样大方异彩还值得我们观察。但我相信IPFS,也正在践行着作为一个信仰者的使命。

前面提到IPFS的由来,其为了解决HTTP的痛点而来,所以IPFS有以下优点
- 高效而且廉价
- 记录永久保存
- 去中心化,机会均等
- 不依赖与主干网络,网络弹性

IPFS安装

Go 安装

go get github.com/ipfs/go-ipfs

源码安装

  • 安装
cd go-ipfs
./install.sh

测试安装

在终端有如下输出

Ipfs 初始化

ipfs init

Quick Start

既然知道了IPFS是革命性的技术,那么作为入门,我们首先来看看,如何使用ipfs,以及我们能用ipfs做什么?

添加文件到ipfs

  echo "hello world" >hello
  ipfs add hello

浏览文件

添加一个文件夹

  mkdir foo
  mkdir foo/bar
  echo "baz" > foo/baz
  echo "baz" > foo/bar/baz
  ipfs add -r foo

浏览

  ipfs ls <the-hash-here>
  ipfs ls <the-hash-here>/bar
  ipfs cat <the-hash-here>/baz
  ipfs cat <the-hash-here>/bar/baz
  ipfs cat <the-hash-here>/bar
  ipfs ls <the-hash-here>/baz

查看链接信息

  ipfs refs <the-hash-here>
  ipfs refs -r <the-hash-here>
  ipfs refs --help

获取文件

  ipfs get <the-hash-here> -o foo2
  diff foo foo2

IPFS对象

  ipfs object get <the-hash-here>
  ipfs object get <the-hash-here>/foo2
  ipfs object --help

Pin + GC

  ipfs pin add <the-hash-here>
  ipfs repo gc
  ipfs ls <the-hash-here>
  ipfs pin rm <the-hash-here>
  ipfs repo gc

启动服务

  ipfs daemon  (in another terminal)
  ipfs id

网络

  (must be online)
  ipfs swarm peers
  ipfs id
  ipfs cat <hash-of-remote-object>

文件挂载

  (warning: fuse is finicky!)
  ipfs mount
  cd /ipfs/<the-hash-here>
  ls

工具

  ipfs version
  ipfs update
  ipfs commands
  ipfs config --help
  open http://localhost:/webui

浏览器

webui

video

images

markdown renderer app

总结

在本节内容里面,我们介绍了IPFS以及IPFS的安装使用,在quick-start里面的命令建议大家全部敲一遍,熟悉下IPFS,当然,仅仅如此相信大家都不会满意,所以在下一节会用IPFS写一个个人博客系统。真正的体会以下IPFS的魅力,等大家对IPFS感兴趣之后,我们在深入,讲讲IPFS的原理以及源码。

我的专栏

专栏

参考