带你玩转区块链--IPFS/FileCoin/以太坊与ipfs结合-第二章-第四节【ipfs篇】

本文详细介绍了IPFS(星际文件系统),包括其定义、特点、定位以及与HTTP的区别。阐述了IPFS的安装配置过程,涵盖启动服务、文件管理等多个命令。此外,文章还探讨了IPFS与以太坊的结合,强调了这种结合的意义,以及如何在前端实现IPFS文件上传。
摘要由CSDN通过智能技术生成

一、什么是IPFS

1. 定义

星际文件系统IPFS(InterPlanetary File System)是一个面向全球的、点对点的分布式版本文件系统,目标是为了补充(甚至是取代)目前统治互联网的超文本传输协议(HTTP),将所有具有相同文件系统的计算设备连接在一起。使数据访问的速度更快、更安全、更健壮、更持久。由Juan Benet在2014年5月份发起

一句话概括:IPFS是一种点对点的超媒体文件存储、索引、交换协议。

2. 特点

  • 内容可寻址(区别于位置寻址): ==通过文件的哈希值进行索引==
  • 版本管理功能==(永远告别404,只要上传过,就一定会存在==):
  • 点对点超媒体(P2P)

3. 定位

下一代互联网技术,替代http

4. http存在的问题

  • 内容无法永久保存 404
  • 浪费资源
  • 效率低
  • 不安全

二、安装配置IPFS

1.点击https://dist.ipfs.io/#go-ipfs,访问下载对应版本。执行./install.sh

2.解压go-ipfs_v0.4.14_windows-amd64.zip到你的目录中,会生成一个go-ipfs的文件夹,

3此时可以通过执行ipfs version检查是否初始化成功

4.执行完 ipfs init,生成本机ID

5. 若需修改存储原则:

1.修改存储空间为10G,打开文件后,修改StorageMax字段:

vi .ipfs/config

2.修改存储位置

//修改.ipfs中的config文件
ipfs config edit

//修改Ipfs默认村粗位置,windows需要配置到环境变量中的用户变量中
export IPFS_PATH=/path/to/ipfsrepo


三、ipfs命令

1.启动服务

当前节点已经创建成功,但是尚未和ipfs系统联系起来,我们需要运行ipfs服务,将本地节点链接至ipfs网络。

ipfs daemon

若只想使用ipfs网络,不想和网络交互,则使用:

ipfs daemon --offline

在启动服务后,可以输入http://127.0.0.1:5001/webui查看本节点信息

2 添加文件数据(add)

add命令表示向ipfs网络添加数据,这里的数据包括文件或者文件夹,通过-r选项来控制

执行添加动作:

[duke ~/ethStudy/ipfsTest]$ ipfs add helloItcast.txt 
added QmPcaCGWxVkqwX2UxkS8i8RjXMhsfCYdrPb54vAArzd7Wd helloItcast.txt
[duke ~/ethStudy/ipfsTest]$

此时,该文件会被添加到本地ipfs节点中,且会返回一个唯一标识这个文件内容的哈希值。

注意,ipfs只根据文件内容进行识别存储,如果文件名字不同,但是内容相同,那么ipfs不会重复添加,且会返回上一个文件的

我们会发现,返回的哈希值和源文件是同一个。

3. 查看文件内容(cat)

ipfs提供cat参数来进行文件的读取,操作如下:

ipfs cat QmPcaCGWxVkqwX2UxkS8i8RjXMhsfCYdrPb54vAArzd7Wd

4. 添加文件夹(add -r)

ipfs相同文件内容上传的时候如果发现已经存在了,就不会重复上传

相同的文件会在不同的节点有多个备份,放在缓存中

该命令与添加文件相同, 只不过需要额外指定一个参数-r,即递归(recursive),操作如下:

[duke ~/ethStudy/ipfsTest]$ ipfs add -r testFolder/
added QmXuTGSdFrTHWbpNzjGTkPsAU6nzUMq6jH28mxNFA1Ymdx testFolder/animals.txt
added QmcyYJGUmYYWxK2DWPbGRcxL875ZRmCHyHcSkcyhNT7Jzd testFolder/cars.txt
added QmURkBHop38X7BxL1NTo57H96gvEBmjZ2DqfJRz8AjKtht testFolder
[duke ~/ethStudy/ipfsTest]$

可以看到,文件夹和里面的文件都生成了各自的哈希值,对于文件的查看,与上面的相同,

5. 查看文件夹内容(ls)

我们直接查看一下文件夹,指定该文件夹哈希值,效果如下:

[duke ~/ethStudy/ipfsTest]$ ipfs cat QmURkBHop38X7BxL1NTo57H96gvEBmjZ2DqfJRz8AjKtht
Error: this dag node is a directory

我们会发现有错误出现,这是因为对于文件夹不能使用cat命令,而应该使用ls命令,这个ls参数可以使得ipfs上的数据像unix的文件系统一样展示,重新测试一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值