IPFS_Tips

注意

IPFS是永久网络,放上去就会被别的节点缓存,不能撤销,所以内容不能随便放哦

IPFS 是什么

IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。

内容可寻址:通过文件内容生成唯一哈希值来标识文件,而不是通过文件保存位置来标识。相同内容的文件在系统中只会存在一份,节约存储空间

版本化:可追溯文件修改历史

点对点超媒体:P2P 保存各种各样类型的数据

可以把 IPFS 想象成所有文件数据是在同一个 BitTorrent 群并且通过同一个 Git 仓库存取。总之,它集一些成功系统(分布式哈希表、BitTorrent、Git、自认证文件系统)的优势于一身,是一套很厉害的文件存取系统。

IPFS 使用场景

IPFS 的发明者 Juan Benet(juan@benet.ai)在 IPFS 技术白皮书中假设了一些使用场景:
在 /ipfs 和 /ipns 下挂载全球文件系统挂载的个人同步文件夹,拥有版本功能文件加密,数据共享系统

可用于所有软件的带版本的包管理器(已经实现了:https://github.com/whyrusleeping/gx)

可以作为虚机的根文件系统

可以作为数据库:应用可以直接操作 Merkle DAG,拥有 IPFS 提供的版本化、缓存以及分布式特性

可以做(加密)通讯平台

各种类型的 CDN

永久的 Web,不存在不能访问的链接

安装

1、安装Go环境
2、下载对应安装包
tar xvfz go-ipfs_v0.4.10_darwin-amd64.tar.gz 
cd go-ipfs
./install.sh
​
#在本地计算机建立一个IPFS节点
ipfs init
​
------------------------------------------------------------------------
initializing IPFS node at /Users/vampire/.ipfs
generating 2048-bit RSA keypair...done
peer identity: QmNRmN1JKdMkKpomcanJThJF4zL6ch5BejPFzP1RRFawYg
to get started, enter:
​
    ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
​
http://localhost:5001/ipfs/QmQLXHs7K98JNQdWrBB2cQLJahPhmupbDjRuH1b9ibmwVa/#/home
-------------------------------------------------------------------------
​
#启动节点服务器
ipfs daemon
ipfs daemon &#修改节点默认存储空间
export EDITOR=/usr/bin/vim
ipfs config edit
​
#查看节点id
ipfs id#跨域资源共享CORS配置
ctrl- c退出ipfs
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'#验证
#启动服务器
ipfs daemon
#新建终端执行下面的命令
ipfs cat /ipfs/QmNRmN1JKdMkKpomcanJThJF4zL6ch5BejPFzP1RRFawYg/readme
​
​
#查看ipfs相关命令
ipfs help#添加文件到ipfs节点
ipfs add test.java 
    added QmTz6eJrK3zEHPDtLCSfKYrVqDHXs5KYHuNbRxW7yWr7W2 test.java
ipfs cat QmTz6eJrK3zEHPDtLCSfKYrVqDHXs5KYHuNbRxW7yWr7W2
​
​
#同步到全网络(IPFS网络)
新建终端执行 ipfs daemon
https://ipfs.io/ipfs/QmTz6eJrK3zEHPDtLCSfKYrVqDHXs5KYHuNbRxW7yWr7W2
​
​
#通过ipfs创建目录存储文件
#cp不会改变文件hash,mv会改变hash寻址
ipfs files mkdir /hahaha
ipfs files cp /ipfs/QmbrevseVQKf1vsYMsxCscRf6D7S2dftYpHwxkYf94pc7T /hahaha/file.txt
ipfs files ls /
ipfs files ls /hahaha/
ipfs files read /hahaha/file.txt
​
​
#IPFS新增一个目录
#使用ipfs add -r可以上传一整个目录
ipfs add -r ipfs-tutorial/
    
#通过路径访问contactme.txt文件数据
#如果我们上传的是目录,那么可以通过下面几种方式访问到contactme.txt文件的数据。
ipfs cat QmYx4BnhnLXeMWF5mKu16fJgUBiVP7ECXh7qcsUZnXiRxc
ipfs cat /ipfs/QmYx4BnhnLXeMWF5mKu16fJgUBiVP7ECXh7qcsUZnXiRxc
ipfs cat /ipfs/QmSsjQDVw1fvmG5RsZMgp2GjihiXn2zDv64mfHZN3AREek/contactme.txt
​
​
​
#通过Hash查看数据IPFS网络数据
访问目录:
https://ipfs.io/ipfs/QmSsjQDVw1fvmG5RsZMgp2GjihiXn2zDv64mfHZN3AREek
通过目录访问文件:https://ipfs.io/ipfs/QmSsjQDVw1fvmG5RsZMgp2GjihiXn2zDv64mfHZN3AREek/contactme.txt
通过文件hash直接访问:
https://ipfs.io/ipfs/QmYx4BnhnLXeMWF5mKu16fJgUBiVP7ECXh7qcsUZnXiRxc
​
​
#创建简易的网页发布到IPFS
#创建site文件夹,创建index.html和style.css文件,添加到ipfs
ipfs add -r site/
#先通过ipfs daemon同步网络,然后可以通过https://ipfs.io/ipfs/<你的项目根目录hash>,
即 https://ipfs.io/ipfs/QmdVEGkT5u7LtzzatTrn8JGNEF3fpuMPVs2rPCfvqRykRp访问项目
#访问网站 https://ipfs.io/ipfs/QmdVEGkT5u7LtzzatTrn8JGNEF3fpuMPVs2rPCfvqRykRp
​```



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值