Ipfs基础入门
Ipfs介绍
Ipfs(Inter-Planetary File System!),中文译为星际网络文件系统,是基于默克尔有向无环图(merkle dag)的全球性p2p文件系统。
是一个面向全球的,点对点的分布式文件系统 。用基于内容的地址替代基于域名的地址(HTTP)。能提供比传统HTTP更稳定,更安全的服务。
Ipfs安装
系统:windows 10
Go:1.11.1
ipfs的安装有几种方式:
- 已经预编译好的包(推荐)
- 通过ipfs-update
- 源码安装
我这里用的是第1种,点这里下载: 这里选择自已相应平台的包就行了
Ipfs官方使用的是golang和javascript.也就是我们所说的go-ipfs和js-ipfs。我们选择go-ipfs就行
安装包下载完后,解压后,将ipfs.exe所在的路径,加到PATH里面就行了
进入cmd终端,输入ipfs version显示如下输出,表示安装成功。
d:\mywork\ipfs>ipfs version
ipfs version 0.4.18
基本使用
我们来一个最基本的使用,将一个文件加到ipfs后,然后下载它。
初始化
ipfs在首次使用时,需要先初始化。用来存储配置和它内部用到的一些数据。
ipfs init
initializing ipfs node at C:\Users\Administrator\.ipfs
generating 2048-bit RSA keypair...done
peer identity: Qmcpo2iLBikrdf1d6QU6vXuNb6P7hwrbNPW9kLAH8eG67z
to get started, enter:
ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
会生成一个peer(结点),其它结点会通过这个结点找到你
如果忘记了,可以通过如下命令显示和获取到。
ipfs id
d:\mywork\ipfs>ipfs id
{
"ID": "QmPUeLNAyiLY81LhQjd5otbeEoqDyQjwyRLiMQnX3yjJYr",
"PublicKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrvb81+XUqHOgh4fxqPfseyryOYMRaNY7xfQpolKR4dgx0rfF4dp+NBHrg8tZ0BDIagsY5CxPYzYhtRjBaimB+Nxp76u7BLyNOGE+/EIjC/qa0oxFRq2XFQwuf7ELnuxjaMpTz0U1diDXUXGlS24PrgBdqMMsFWSau+BCP7YL3efvLXZmCwJsxzUexAtlqvUsFH6bimOh97kSizAEXqQwPMKD7gqTmVRepWz8Zi4pDnmaHn9NgegA1ca25By7fatyLtzcbRdNlupJoIGsvO1xyju1rQnHWwACamlHbLuE2pgt/z4LUOBUz2XLqrU7Tk3+USfSsuK8EF9kcbsODc4mNAgMBAAE=",
"Addresses": null,
"AgentVersion": "go-ipfs/0.4.18/",
"ProtocolVersion": "ipfs/0.1.0"
}
Going Online(上线)
不管是使用Ipfs的cli或http。我们需要在本地将Ipfs网络上线。可同步结点数据到Ipfs网络
新开一个终端,执行如下命令
C:\Users\Administrator>ipfs daemon
Initializing daemon...
go-ipfs version: 0.4.18-
Repo version: 7
System version: amd64/windows
Golang version: go1.11.1
Swarm listening on /ip4/10.8.200.77/tcp/4001
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
Swarm listening on /p2p-circuit
Swarm announcing /ip4/10.8.200.77/tcp/4001
Swarm announcing /ip4/127.0.0.1/tcp/4001
Swarm announcing /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
另外,Ipfs还提供了一个web界面的控制台,可以查看集群结点的状态。
http://localhost:5001/webui
add文件,这里传的文件,不会马上到ipfs网络,除非有人访问过。
d:\mywork\ipfs>ipfs add hello.txt
10 B / 10 B [=====================================================================================================================================================================================================================] 100.00%added QmYXxGFEnYfwheuSS6ppLSHgFpLg7i2g499dz358XtMNbe hello.txt
added QmYXxGFEnYfwheuSS6ppLSHgFpLg7i2g499dz358XtMNbe hello.txt
10 B / 10 B [=====================================================================================================================================================================================================================] 100.00%
上面的文件add后并没有到Ipfs网络,可以通过本地访问 http://localhost:8080/ipfs/QmYXxGFEnYfwheuSS6ppLSHgFpLg7i2g499dz358XtMNbe
通过 "ipfs daemon“ 这个能自动同步结点数据,成功后就能通过外网访问 https://ipfs.io/ipfs/QmYXxGFEnYfwheuSS6ppLSHgFpLg7i2g499dz358XtMNbe
下载到本地
d:\mywork\ipfs>ipfs get QmYXxGFEnYfwheuSS6ppLSHgFpLg7i2g499dz358XtMNbe
Saving file(s) to QmYXxGFEnYfwheuSS6ppLSHgFpLg7i2g499dz358XtMNbe
18 B / 18 B [==============================================================================================================================================================
官网:https://docs.ipfs.io
汇智网:http://cw.hu bwiz.com/card/c/ipfs/1/1/1/