关闭

【IPFS】IPFS部署分布式项目到开发机的基础实践

标签: 分布式分布式文件系统IPFS区块链技术
3066人阅读 评论(2) 收藏 举报
分类:

什么是IPFS

IPFS 是一个点对点的分布式文件系统,它希望将所有的计算设备都连接到同一个文件系统中。

IPFS能做到去中心化的分布式部署

IPFS旨在替代HTTP和为我们所有人建立更好的网络。

安装

以下地址进行下载
https://dist.ipfs.io/go-ipfs/v0.4.10/go-ipfs_v0.4.10_darwin-amd64.tar.gz

wget https://dist.ipfs.io/go-ipfs/v0.4.10/go-ipfs_v0.4.10_darwin-amd64.tar.gz
tar xvfz go-ipfs_v0.4.10_darwin-amd64.tar.gz
mv go-ipfs/ipfs /usr/local/bin/ipfs

GO环境
https://storage.googleapis.com/golang/go1.8.3.darwin-amd64.pkg

go version
go version go1.8.3 darwin/amd64

实践

初始化


ipfs init

initializing IPFS node at /Users/xiaoyu/.ipfs
generating 2048-bit RSA keypair...done
peer identity: QmSTt7gDRf5RhWDQRAp516d9hDf5ZTeyi5mcjqnL61n9ok
to get started, enter:
ipfs cat /ipfs/QmVLDAhCY3X9P2uRudKAryuQFPM5zqA3Yij1dY8FpGbL7T/readme

ipfs cat /ipfs/QmVLDAhCY3X9P2uRudKAryuQFPM5zqA3Yij1dY8FpGbL7T/readme

Hello and Welcome to IPFS!

██╗██████╗ ███████╗███████╗
██║██╔══██╗██╔════╝██╔════╝
██║██████╔╝█████╗  ███████╗
██║██╔═══╝ ██╔══╝  ╚════██║
██║██║     ██║     ███████║
╚═╝╚═╝     ╚═╝     ╚══════╝

If you're seeing this, you have successfully installed
IPFS and are now interfacing with the ipfs merkledag!

 -------------------------------------------------------
| Warning:                                              |
|   This is alpha software. Use at your own discretion! |
|   Much is missing or lacking polish. There are bugs.  |
|   Not yet secure. Read the security notes for more.   |
 -------------------------------------------------------

Check out some of the other files in this directory:

  ./about
  ./help
  ./quick-start     <-- usage examples
  ./readme          <-- this file
  ./security-notes

也就是这个文档,我们可以访问下面的文件进行访问

  • ./about
  • ./help
  • ./quick-start
  • ./readme
  • ./security-notes

quick-start

ipfs cat /ipfs/QmVLDAhCY3X9P2uRudKAryuQFPM5zqA3Yij1dY8FpGbL7T/quick-start 
# 0.1 - Quick Start //快速开始

This is a set of short examples with minimal explanation. It is meant as
a "quick start". Soon, we'll write a longer tour :-)


Add a file to ipfs://添加文件

  echo "hello world" >hello
  ipfs add hello


View it: //查看文件

  ipfs cat <the-hash-you-got-here>


Try a directory: //添加文件夹

  mkdir foo
  mkdir foo/bar
  echo "baz" > foo/baz
  echo "baz" > foo/bar/baz
  ipfs add -r foo


View things: //列出查看文件和文件夹

  ipfs ls <the-hash-here>
  ipfs ls <the-hash-here>/bar
  ipfs cat <the-hash-here>/baz
  ipfs cat <the-hash-here>/bar/baz
  ipfs cat <the-hash-here>/bar
  ipfs ls <the-hash-here>/baz


References: //重定向

  ipfs refs <the-hash-here>
  ipfs refs -r <the-hash-here>
  ipfs refs --help


Get://对比文件

  ipfs get <the-hash-here> -o foo2
  diff foo foo2


Objects://列出对象

  ipfs object get <the-hash-here>
  ipfs object get <the-hash-here>/foo2
  ipfs object --help


Pin + GC:

  ipfs pin add <the-hash-here>
  ipfs repo gc
  ipfs ls <the-hash-here>
  ipfs pin rm <the-hash-here>
  ipfs repo gc


Daemon:

  ipfs daemon  (in another terminal)
  ipfs id


Network:

  (must be online)
  ipfs swarm peers
  ipfs id
  ipfs cat <hash-of-remote-object>


Mount:

  (warning: fuse is finicky!)
  ipfs mount
  cd /ipfs/<the-hash-here>
  ls


Tool: //工具

  ipfs version
  ipfs update
  ipfs commands
  ipfs config --help
  open http://localhost:5001/webui


Browse:

  webui:

    http://localhost:5001/webui

  video:

    http://localhost:8080/ipfs/QmVc6zuAneKJzicnJpfrqCH9gSy6bz54JhcypfJYhGUFQu/play#/ipfs/QmTKZgRNwDNZwHtJSjCp6r5FYefzpULfy37JvMt9DwvXse

  images:

    http://localhost:8080/ipfs/QmZpc3HvfjEXvLWGQPWbHk3AjD5j8NEN4gmFN8Jmrd5g83/cs

  markdown renderer app:

    http://localhost:8080/ipfs/QmX7M9CiYXjVeFnkfVGf3y5ixTZ2ACeSGyL1vBJY1HvQPp/mdown

尝试运行

ipfs daemon

Initializing daemon...
Adjusting current ulimit to 2048...
Successfully raised file descriptor limit to 2048.
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/192.168.0.106/tcp/4001
Swarm listening on /ip4/192.168.1.5/tcp/50092
Swarm listening on /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
Daemon is ready

注意此时终端的命令没有结束,也就是说目前的启动是不能关闭终端的

此时访问之前的图片网址http://localhost:8080/ipfs/QmZpc3HvfjEXvLWGQPWbHk3AjD5j8NEN4gmFN8Jmrd5g83/cs,展示效果如下,文件访问成功。

这里写图片描述

同理,访问视频文件和markdown文件也能正常访问。

在demo中给的webui实际上是一个管理后台,可以查看这个项目被放到了全球多少个节点上。

出现的报错

  • ERROR core/serve: ipfs resolve -r /ipfs/QmPhnvn747LqwPYMJmQVorMaGbMSgA7mRRoyyZYz3DoZRQ/locale/webui-zh.json: no link named "webui-zh.json" under Qmc6bAsXTFFdvV3RoLuf6jjV3jzsRLntfsivWQZ75s8QaL gateway_handler.go:584
  • ERROR flatfs: too many open files, retrying in 100ms flatfs.go:180
  • ERROR mdns: mdns lookup error: failed to bind to any unicast udp port mdns.go:135

总结

  • 了解了IPFS的安装
  • 本机成功启动了demo
  • 遇到了一些小问题

参考资料

0
0
查看评论

基于js-ipfs-api实现ipfs的文件上传与下载

配置本地的ipfs节点ipfs官网:https://ipfs.io/ 下载地址:https://dist.ipfs.io/#go-ipfs# 初始化ipfs节点 ipfs init # 运行ipfs节点 ipfs daemon更多配置可参考: https://ipfs.io/docs/getti...
  • koastal
  • koastal
  • 2017-12-11 13:52
  • 520

IPFS 入门笔记

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

ipfs/ipns/搭建安装测试

打开终端,切换到桌面,新建一个文件夹1121,切换到1121中,通过vi新建一个文件file.txt,文件里面输入春哥微信号liyc1215保存并且退出。 localhost:Desktop admin$ pwd /Users/liyuechun/Desktop localhost:D...
  • welling_22
  • welling_22
  • 2017-12-04 20:57
  • 335

加密上传ipfs

在基于js-ipfs-api实现ipfs的文件上传与下载中已经实现了内容和文件上传ipfs,然后下载到本地。ipfs具有分布式存储和不可篡改性等优点,但隐私性较差,一旦上传到ipfs之后,用户就可以从任一ipfs节点的网关获取数据
  • koastal
  • koastal
  • 2017-12-13 12:25
  • 461

一个简易的区块链demo

别人写的python版本python版本源码地址:https://github.com/dvf/blockchain#installation环境准备我使用的是ubuntu 16.04,其它linux版本也可以。需要安装python3.6+(步骤省略)安装pipenv$ pip install pi...
  • pony_maggie
  • pony_maggie
  • 2017-10-30 13:37
  • 2838

星际文件存储IPFS是如何颠覆云存储的?

一句话概括: IPFS(The InterPlanetary File System)星际文件存储系统是一种点到点的分布式文件系统,它连接的计算设备都拥有相同的文件管理模式。从某种意义上来说这个概念跟Web的最初理念很类似,但是实际上IPFS更像是互相转发Git目标的单个Bittorrent用户群...
  • owndiandian
  • owndiandian
  • 2017-01-11 09:20
  • 8834

新编原创-Hcash(hsr)矿工指南,含出矿算法分析、各种显卡算力分析和收益计算模型

Hcash超级现金于2017-9-13日正式开始切换到POW/POS挖矿模式,本文旨在修正和完善前篇【深度分析-从源代码看Hcash(超级现金)的矿业指南和矿工规划,含挖矿收益预估】中的分析,针对HSR矿工进行详尽的指导和收益模型分析。
  • u012808302
  • u012808302
  • 2017-10-09 10:55
  • 7695

为什么说 IPFS 将会替代 HTTP

今年年初,Internet Archive开始倡导分布式网络。现在关于它的声音已经变得越来越清晰而又响亮。而IPFS就是在这种环境下出现的一个典型的开源代表。IPFS是点对点协议InterPlanetary File System的简称,它是一个面向全球的、点对点的分布式版本文件系统,试图将所有...
  • Listen2You
  • Listen2You
  • 2017-11-24 21:14
  • 366

ipfs + 以太坊实例解析

ipfs truffle 以太坊
  • czZ__czZ
  • czZ__czZ
  • 2018-01-11 17:23
  • 325

IPFS + Ethereum -js-ipfs-api

3. 实现步骤 3.1 安装create-react-app 参考文档:https://reactjs.org/tutorial/tutorial.html localhost:1123 admin$ npm install -g create-react-app 3.2 R...
  • welling_22
  • welling_22
  • 2017-12-07 19:44
  • 232
    个人资料
    • 访问:640806次
    • 积分:9031
    • 等级:
    • 排名:第2476名
    • 原创:297篇
    • 转载:13篇
    • 译文:4篇
    • 评论:81条
    博客专栏
    微信订阅号
    欢迎加入QQ群
    玩家老黄历(微信小程序)
    谢谢支持~
    最新评论