目录
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。
领取专属 10元无门槛券
私享最新 技术干货