IPFS安装及项目实例

目录

1. IPFS简介

2. IPFS本地安装

o2.1 下载ipfs压缩包

o2.2安装

3.IPFS配置

o3.1 创建ipfs节点

o3.2 修改节点默认存储空间

o3.3 查看节点id

o3.4 启动节点服务器

o 3.5 验证

4.项目实践

o4.1 控制台上传图片文件

o4.2 简单网页项目

5.IPNS使用

o5.1 发布到IPNS

o5.2 验证

wode

IPFS简介

1

IPFS是一个点对点的分布式超媒体分发协议,它整合了过去几年最好的分布式系统思路,为所有人提供全球统一的可寻址空间,包括Git、自证SFS、BitTorrent和DHT,同时也被认为是最有可能取代HTTP的新一代互联网协议。

IPFS用基于内容的寻址替代传统的基于域名的寻址,用户不需要关心服务器的位置,不用考虑文件存储的名字和路径。我们将一个文件放到IPFS节点中,将会得到基于其内容计算出的唯一加密哈希值。哈希值直接反映文件的内容,哪怕只修改比特,哈希值也会完全不同。当IPFS被请求一个文件哈希时,它会使用一个分布式哈希表找到文件所在的节点,取回文件并验证文件数据。

IPFS是通用目的的基础架构,基本没有存储上的限制。大文件会被切分成小的分块,下载的时候可以从多个服务器同时获取。IPFS的网络是不固定的、细粒度的、分布式的网络,可以很好的适应内容分发网络的要求。这样的设计可以很好的共享各类数据,包括图像、视频流、分布式数据库、整个操作系统、模块链、8英寸软盘的备份,还有静态网站。

协议实现

Go、JavaScript、Python

客户端库:Go、Java、JavaScript、Python、Scala、Haskell、Swift、CommonLisp、Rust、Ruby、Swift、PHP、C#

IPFS本地安装

2

2.1 下载ipfs压缩包(https://ipfs.io 大陆需要翻墙)

2.2 安装

下载 go-ipfs 解压(下面的示例我是在 Windows 上做的,解压到Users下的Administator下),

IPFS配置

3

3.1 创建ipfs节点

打开cmd窗口执行,以下命令,得到节点ID

3.2 修改节点默认存储空间

执行完ipfs init命令后,会在根目录生成一个.ipfs的文件夹存储节点数据。.ipfs节点默认存储空间为10个G。

如果你自己想修改节点默认存储空间,可以修改.ipfs目录下config文件,找到StorageMax进行修改。

3.3 查看节点id

输入ipfs id可查看

3.4 启动节点服务器

输入ipfs daemon可启动

3.5 验证

执行命令 ipfs daemon 启动节点服务器,新建终端执行下面的命令

浏览器访问 http://localhost:5001/webui 进入管理界面,查看系统状态、管理文件以及配置系统

项目实践

4

4.1 控制台上传图片文件

浏览器中打开http://127.0.0.1:5001进入控制台,点击左侧栏Files-->upload上传一张图片

本地访问直接http://localhost:8080/ipfs/QmZVYwVrLVfFiNmeYGTWWyMKGCajzMq2R9LXaVjBuNH24s(QmZVYwVrLVfFiNmeYGTWWyMKGCajzMq2R9LXaVjBuNH24s为IPFS图片的哈希值)

外网访问示意图:http://ipfs.io/ipfs/QmZVYwVrLVfFiNmeYGTWWyMKGCajzMq2R9LXaVjBuNH24s,因为国内网络问题,暂时必须翻墙下载和访问IPFS官网。

4.2 简单网页项目

先在C:\Users\Administrator\go-ipfs新建一个web文件夹,然后在web文件夹中建立index.html和style.css文件。

index.html内容如下

Hello IPFS!

Hello IPFS!

style.css内容如下

h1 { color: blue; }

最后添加到ipfs,我们就得到了index.html的哈希值QmZ9KW5PYYmxGznsBgomafDumqWtuu6tahknNVMo3BmXjH

本地访问:http://localhost:8080/ipfs/QmZ9KW5PYYmxGznsBgomafDumqWtuu6tahknNVMo3BmXjH

通过ipfs.io访问:https://ipfs.io/ipfs/QmZ9KW5PYYmxGznsBgomafDumqWtuu6tahknNVMo3BmXjH(大陆翻墙)

Hello IPFS!

Hello IPFS!

IPNS使用

5

5.1 发布IPNS

当我们修改网站内容重新添加到ipfs时,hash会发生变化,当我们网站更新时,我们可以将网站发布到IPNS,在IPNS中,允许我们节点的域名空间中引用一个IPFS hash,也就是说我们可以通过节点ID对项目根目录的进行绑定,以后我们访问网站时直接通过节点·ID访问即可,当我们更新博客时,重新发布到IPNS

ipfs name publish QmZ9KW5PYYmxGznsBgomafDumqWtuu6tahknNVMo3BmXjH

当我们执行ipfs name publish命令时,会返回我们的节点ID,你可以通过ipfs id进行查看验证是否是你的节点ID。

5.2 验证

ipfs name resolve QmZ81VSdoMBpd67fVgUG44iuMLXCy8hCAmQ7WcepQeiQgA

当然我们现在就可以通过IPNS进行访问了。https://ipfs.io/ipns/QmZ81VSdoMBpd67fVgUG44iuMLXCy8hCAmQ7WcepQeiQgA

注意上面是ipns而不是ipfs,如果你网站数据修改,需要重新发布到IPNS。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180507G1LHCY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券