目录

  • 1. IPFS简介
  • 2. IPFS本地环境安装
    • 2.1 下载ipfs压缩包
    • 2.2 安装
  • 3. 项目配置
    • 3.1 创建ipfs节点
    • 3.2 修改节点默认存储空间
    • 3.3 查看节点id
    • 3.4 启动节点服务器
    • 3.5 跨域资源共享CORS配置
    • 3.6 验证
  • 4. 下篇预告

1. IPFS简介

IPFS(InterPlanetary File System)是一个点对点的分布式超媒体分发协议,它整合了过去几年最好的分布式系统思路,为所有人提供全球统一的可寻址空间,包括Git、自证明文件系统SFSBitTorrentDHT,同时也被认为是最有可能取代HTTP的新一代互联网协议。

IPFS用基于内容的寻址替代传统的基于域名的寻址,用户不需要关心服务器的位置,不用考虑文件存储的名字和路径。我们将一个文件放到IPFS节点中,将会得到基于其内容计算出的唯一加密哈希值。哈希值直接反映文件的内容,哪怕只修改1比特,哈希值也会完全不同。当IPFS被请求一个文件哈希时,它会使用一个分布式哈希表找到文件所在的节点,取回文件并验证文件数据。

IPFS是通用目的的基础架构,基本没有存储上的限制。大文件会被切分成小的分块,下载的时候可以从多个服务器同时获取。IPFS的网络是不固定的、细粒度的、分布式的网络,可以很好的适应内容分发网络的要求。这样的设计可以很好的共享各类数据,包括图像、视频流、分布式数据库、整个操作系统、模块链、8英寸软盘的备份,还有静态网站。

IPFS提供了一个友好的WEB访问接口,用户可通过http://ipfs.io/hash 获取IPFS网络中的内容,也许在不久的将来,IPFS协议将会彻底替代传统的HTTP协议。

2. IPFS本地环境安装

2.1 下载ipfs压缩包

2.2 安装

liyuechun:Downloads yuechunli$ pwd
/Users/liyuechun/Downloads
liyuechun:Downloads yuechunli$ ls
go-ipfs_v0.4.10_darwin-amd64.tar.gz
liyuechun:Downloads yuechunli$ tar xvfz go-ipfs_v0.4.10_darwin-amd64.tar.gz
x go-ipfs/build-log
x go-ipfs/install.sh
x go-ipfs/ipfs
x go-ipfs/LICENSE
x go-ipfs/README.md
liyuechun:Downloads yuechunli$ ls
go-ipfs                 go-ipfs_v0.4.10_darwin-amd64.tar.gz
liyuechun:Downloads yuechunli$ cd go-ipfs
liyuechun:go-ipfs yuechunli$ ls
LICENSE     README.md   build-log   install.sh  ipfs
liyuechun:go-ipfs yuechunli$ mv ipfs /usr/local/bin/ipfs

tar xvfz go-ipfs_v0.4.10_darwin-amd64.tar.gz文件解压。

mv ipfs /usr/local/bin/ipfs,将已解压的文件夹中的ipfs文件移动到/usr/local/bin/文件夹中。

3. 项目配置

3.1 创建ipfs节点

为了运行项目,我们需要通过ipfs init在本地计算机建立一个IPFS节点。

localhost:.ipfs yuechunli$ cd ~/.ipfs
-bash: cd: /Users/liyuechun/.ipfs: No such file or directory
localhost:.ipfs yuechunli$ ipfs init
initializing IPFS node at /Users/liyuechun/.ipfs
generating 2048-bit RSA keypair...done
peer identity: QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP
to get started, enter:ipfs cat /ipfs/QmVLDAhCY3X9P2uRudKAryuQFPM5zqA3Yij1dY8FpGbL7T/readmelocalhost:.ipfs yuechunli$ cd ~/.ipfs
localhost:.ipfs yuechunli$ ls
blocks      datastore   version
config      keystore
localhost:.ipfs yuechunli$ open ./
localhost:.ipfs yuechunli$

3.2 修改节点默认存储空间

执行完ipfs init命令后,会在根目录生成一个.ipfs的文件夹存储节点数据。.ipfs节点默认存储空间为10个G

如果你自己想修改节点默认存储空间,可打开终端执行下面的命令。

localhost:.ipfs yuechunli$ export EDITOR=/usr/bin/vim
localhost:.ipfs yuechunli$ ipfs config edit

执行完ipfs config edit命令后会打开一个文件,在这个文件中找到下图中春哥「微信:liyc1215」绘制红线的位置,将10GB修改成你自己想要的存储空间。修改完毕,保存退出。(PS:输入i可以开始编辑,编译完毕后按esc键,再输入:,再次输入wq保存并且退出)。

3.3 查看节点id

localhost:.ipfs yuechunli$ ipfs id
{"ID": "QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP","PublicKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqJlLivZerwIYTI5K8pEzbRnmNti3rObvpa17AixKpgTPnWAvPmZr1SLBzYUjpy3coymLHkNldcEZixnWTIihKIF1pVhxJG2MzFg8vHnG7uF8vxyYE4wOZ6V4rTauYbGau1Tj/TSjzI9oKOoezitTn6ggD3p2Y6Y1/FWGRfAvG7UUBFXSMtwVkwM/F0aaP2k8vHgsZDeYLY8UCpq67dC+AgbVNieLrX/tht6D7iTYS5Ch5dMIpwxMdRLkrNx8k9CVFgvnILhdTJL4QfdNA4L5FnWJy3axhj6bRdVkBpcdgn2WAHxYW6FwkB/eFSKxwNCKsO2/C52mUNNMouN2XlObTAgMBAAE=","Addresses": null,"AgentVersion": "go-ipfs/0.4.10/","ProtocolVersion": "ipfs/0.1.0"
}
localhost:.ipfs yuechunli$

QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP为你的节点ID每个节点都会有一个唯一的ID

3.4 启动节点服务器

localhost:.ipfs yuechunli$ ipfs daemon
Initializing daemon...
Adjusting current ulimit to 2048...
Successfully raised file descriptor limit to 2048.
Swarm listening on /ip4/111.196.241.208/tcp/7723
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/192.168.0.107/tcp/4001
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

3.5 跨域资源共享CORS配置

为了后续的开发方便,我们还需要对跨域资源共享( CORS )进行配置,ctrl- c退出ipfs,然后按照下面的步骤进行跨域配置。

  • 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 '["*"]'

3.6 验证

  • 启动服务器
$ ipfs daemon
  • 新建终端执行下面的命令
ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
localhost:~ yuechunli$ ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/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
localhost:~ yuechunli$
  • 浏览器输入下面的网址

打开http://localhost:5001/webui会看到一个漂亮的UI界面。

4. 下篇预告

本篇文章为IPFS + Blockchain第一篇文章。

下一篇内容:

  • 如何在IPFS新增一个文件
  • 新增一个目录
  • 如何在IPSF部署博客
  • 如何访问博客
  • 如何申请IPNS
  • 如何将IPNS对博客hash进行解析
  • 如何新增给博客新增文章
http://liyuechun.org/2017/11/20/ipfs-blockchain/

【IPFS + 区块链 系列】 入门篇 - IPFS环境配置相关推荐

  1. 【IPFS + 区块链 系列】 入门篇 - IPFS + Ethereum (下篇)-ipfs + Ethereum 大图片存储

    目录 1. 系列文章 2. 项目描述及效果展示 3. 阅读本文需要掌握的知识 4. 源码 5. 运行程序 6. 技术交流 1. 系列文章 [IPFS + 区块链 系列] 入门篇 - IPFS环境配置 ...

  2. IPFS + 区块链 系列】 入门篇 - IPFS + Ethereum (中篇)-js-ipfs-api - 图片上传到IPFS以及下载

    目录 1. 项目效果图 2. 创建React项目 3. 完成UI逻辑 4. 安装ipfs-api 5. App.js导入IPFS 6. 实现上传图片到IPFS的Promise函数 7. 上传图片到IP ...

  3. IPFS + 区块链 系列】 入门篇 - IPFS + Ethereum (上篇)-js-ipfs-api

    目录 1. 内容简介 2. IPFS-HTTP效果图 3. 实现步骤 3.1 安装create-react-app 3.2 React项目创建 3.3 运行React项目 3.4 浏览项目 3.5 安 ...

  4. ipfs搭建mysql_【IPFS + 区块链 系列】 入门篇 - IPFS环境配置

    孔壹学院:国内区块链职业教育引领品牌. 作者:黎跃春,孔壹学院创始人,区块链.高可用架构师 微信:liyc1215 区块链博客:http://liyuechun.org 目录 1. IPFS简介 IP ...

  5. 【IPFS + 区块链 系列】 入门篇 - IPFS+IPNS+个人博客搭建

    目录 1. 如何在IPFS新增一个文件 1.1 新建file.txt文件 1.2 查看ipfs相关命令 1.3 将file.txt添加到ipfs节点 2. 通过ipfs创建目录存储文件 3. 如何在I ...

  6. 区块链投资入门篇—骨灰版

    区块链技术未来会大规模地普及,比特币是区块链技术的一种具体应用.能抓住这样的机会是每个人一生中难得的机遇,如同90年代初期的证券市场. 目前很多人普遍的问题是不懂,也懒得看,懒得研究.当你看到这篇教程 ...

  7. rabbitmq java实例_RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)

    转载http://blog.csdn.net/u013142781 一.消息队列使用场景或者其好处 消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式 ...

  8. RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)

    转载http://blog.csdn.net/u013142781 一.消息队列使用场景或者其好处 消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式 ...

  9. 【区块链开发入门】(四) Truffle详解篇2

    由于本篇篇幅较长,因此转为两篇文章.Truffle详解篇篇1请见:link 目录导航页 [区块链开发入门](一) 以太坊的搭建与运行 [区块链开发入门](二) 以太坊的编程接口 [区块链开发入门](三 ...

最新文章

  1. java struts2 安全漏洞 devMode 简介
  2. php动态写入vue,Vue自定义动态组件使用详解
  3. 一条代码解决各种IE浏览器兼容性问题
  4. intellij2018修改代码背景颜色
  5. Vuex 模块化与项目实例 (2.0)
  6. jquery validate表单校验
  7. js组件slotmachine_Vue.js 系列教程 2:组件,Props,Slots
  8. webuploader上传多张照片的基本功能
  9. dpkg检查某个应用是否已安装
  10. go-cqhttp + noneBot群聊机器人 配置开发
  11. Android系统中设置TextView的字符间距
  12. VNC源码研究(二十四)vnc-4.0-winsrc版本之winvnc工程分析
  13. 服务器修复oxc0000098,Win10系统无法开机0xc0000098错误怎么办_win10无法开机提示0xc0000098错误代码如何修复...
  14. 当远程工作成为未来的工作方式......
  15. 图解---电脑连接wifi,显示无法连接到这个网络
  16. 基于JSP的电影院售票系统
  17. STM32F103系列的单片机定时器
  18. html5 app 打包,手机h5网站如何快速打包做成APP?
  19. ubuntu破解密码方法
  20. 面对新时代挑战,2019维谛技术峰会全面呈献硬核策略

热门文章

  1. 修改openwrt 编译 image的大小
  2. 需要掌握的八个CSS布局技巧
  3. 深度学习笔记:windows+tensorflow 指定GPU占用内存(解决gpu爆炸问题)
  4. Python学习笔记:入门(1)
  5. 5、VTK在图像处理中的应用
  6. Linux下动态链接库调用
  7. oracle 一行转多行,oracle 一行变多行
  8. [云炬创业学笔记]第一章创业是什么测试11
  9. 【14】全歌王歌后合集
  10. 亡羊补课2019-12-19