ipfs(InterPlanetary File System,星际文件系统),本文介绍节点软件ipfs环境搭建和使用方法,学习ipfs-api在nodejs代码中访问ipfs网络。node
到官网下载windows版的ipfs节点软件:32位,64位 若是你不能访问官网,可使用百度云盘镜像:32位,64位git
下载后解压到指定目录,例如d:\go-ipfs,开一个控制台窗口,测试:windows
D:\go-ipfs > ipfs version Ipfs version 0.4.14
能够将该目录加入环境变量PATH, 或者将d:\go-ipfs\ipfs.exe拷贝到windows系统目录,以便在任何目录中能够启动ipfs.exe。api
和git相似,ipfs节点也须要先初始化一个本地仓库。执行init子命令来初始化本地仓库:网络
D:\go-ipfs> ipfs init Initializing IPFS node at C:\Users\hubwiz\.ipfs generating 2048-bit RSA keypair...done peer identity: QmQaTgU1TLNHPBEvLGgWK1G9FgVByyUZNVhDs789uWPtku to get started, enter: ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
默认状况下,ipfs将在当前用户主目录(例如:对于hubwiz用户,其主目录就是C:\Users\hubwiz)下创建.ipfs子目录,做为本地仓库的根目录。ide
若是你的C盘空间不够大,或者你就是但愿使用其余目录做为本地仓库根目录,能够设置IPFS_PATH环境变量,使其指向目标路径,例如D:\my_ipfs_root 学习
若是你指望从新初始化节点,会提醒你不能这么作,不然会改写你的密钥:区块链
D:\go-ipfs> ipfs init Initializing IPFS node at C:\Users\hubwiz\.ipfs Error: ipfs configuration file already exists! Reinitializing would overwrite your keys.
这挡不住咱们。若是你必须从新初始化的话,先删除原来的仓库根目录便可:测试
D:\go-ipfs> del C:\users\hubwiz\.ipfs
使用add子命令将指定的文件添加到本地仓库,例如将当前目录的README.md文件添加到本地仓库:编码
D:\go-ipfs> ipfs add README.md 465 B / ? [-------------------------------------------------------=--] added QmXBpD37vBm5537pqHwyJRGSaX7hMrkHyp866wqEVU2BE8 README.md
ipfs会根据文件的内容生成一个哈希值,例如:
QmXBpD37vBm5537pqHwyJRGSaX7hMrkHyp866wqEVU2BE8
你须要记录下这个编码,由于须要使用它来访问本地仓库(或ipfs网络)中的文件。 注意:ipfs并不会无节制地将你本地仓库中的文件分布到其余ipfs节点中,若是没有其余的ipfs节点搜索你的文件(的哈希值),那么你本地仓库中的文件将始终只存在于本地。
Ipfs网络中只能经过内容的哈希值来访问文件,例如对于上面的README.md文件,咱们使用cat子命令经过其哈希值来查看其内容:
D:\go-ipfs> ipfs cat QmXBpD37vBm5537pqHwyJRGSaX7hMrkHyp866wqEVU2BE8
控制台将输出内容:
\# ipfs commandline tool This is the [ipfs](http://ipfs.io) commandline tool. It contains a full ipfs node. ......
执行daemon子命令将节点接入ipfs网络:
D:\go-ipfs> ipfs daemon Initializing daemon... ...... Daemon is ready
只有当启动监听后,节点才可以接受ipfs网络中的内容检索请求,参与内容的交换与分布。
能够按Ctrl+C退出监听状态。
?
推荐两个以太坊相关的实战教程:
1.区块链初学者 :以太坊 DApp 实战开发入门
2.区块链开发进阶:去中心化以太坊 DApp 电商平台实战开发
更多的内容能够访问博客: