目录

  • 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 验证

1. IPFS简介

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

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

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

协议实现
Go、JavaScript、Python
客户端库:Go、Java、JavaScript、Python、Scala、Haskell、Swift、CommonLisp、Rust、Ruby、Swift、PHP、C#

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..10_darwin-amd64.tar.gz
liyuechun:Downloads yuechunli$ tar xvfz go-ipfs_v0..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..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 -bit RSA keypair...done
peer identity: QmdKXkeEWcuRw9oqBwopKUa8CgK1iBktPGYaMoJ4UNt1MP
to get started, enter: ipfs cat /ipfs/QmVLDAhCY3X9P2uRudKAryuQFPM5zqA3Yij1dY8FpGbL7T/readme localhost:.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 ...
Successfully raised file descriptor limit to .
Swarm listening on /ip4/111.196.241.208/tcp/
Swarm listening on /ip4/127.0.0.1/tcp/
Swarm listening on /ip4/192.168.0.107/tcp/
Swarm listening on /ip6/::/tcp/
API server listening on /ip4/127.0.0.1/tcp/
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/
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界面。

转载自 https://www.jianshu.com/p/dd5727130504

IPFS的配置安装的更多相关文章

  1. Winserver2012下mysql 5.7解压版(zip)配置安装

    一.安装 下载mysqlzip版本mysql不需要运行可执行文件,解压即可,下载zip版本mysqlmsi版本mysql双击文件即可安装,相对简单,本文不介绍此版本安装 配置环境变量打开环境变量配置页 ...

  2. 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署

    少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...

  3. 配置安装CocoPods后进行 项目基本配置

    配置安装CocoPods后进行 项目基本配置总结 1)终端在文件根目录下输入 $ touch Podfile 创建一个空白的Podfile文件 2)然后在使用编辑器打开Podfile文件进行需要配置的 ...

  4. 【转】Ubuntu 14.04配置安装java环境和android开发环境(包括真机调试环境)

    原文网址:http://my.oschina.net/HalZf/blog/347351 总要记录下过程,不然老是会忘记掉-真老了.-_-! 一.配置安装ubuntu 64位java环境: 1.下载l ...

  5. 基于XMPP实现的Openfire的配置安装+Android客户端的实现

    最近在整理一些这方面的资料,闲话少说,咱还是直奔主题吧 :) 一.基于xmpp实现的openfire的配置安装 1. 下载最新的openfire安装文件 官方下载站点: http://www.igni ...

  6. 基于XMPP实现的Openfire的配置安装+Android客户端的实现[转]

    最近在整理一些这方面的资料,闲话少说,咱还是直奔主题吧 :) http://blog.csdn.net/sk719887916/article/details/40541163 https://git ...

  7. windows2008 配置安装FTP服务器

    windows2008 配置安装FTP服务器 今天在服务器上开了IIS7,但是要求把一个附件文件夹拷贝到根目录下面,这个附件文件夹有2G多大小,直接用远程桌面映射,一直都拷贝不成功,而且本地缓存越来越 ...

  8. oozie配置安装与原理

     概述 当前开源的hadoop任务工作流管理主要有oozie和Azkaban,本文先介绍oozie的配置安装与基本运行原理. 配置安装 (参考https://segmentfault.com/a/11 ...

  9. eclipse下配置安装ssm图文教程(web版)

    eclipse下配置安装ssm图文教程(web版) 一.安装所需jar包 1.1  mybatis安装包 可以进入GitHub的https://github.com/mybatis/mybatis-3 ...

随机推荐

  1. SQLserver如何创建一个表

    例如: create table news(news_id int primary key identity(1,1),news_title varchar(50) not null,news_aut ...

  2. Ajax请求中的async:false/true的作用【转载】

    [Ajax请求中的async:false/true的作用] 作者:https://www.cnblogs.com/mmzuo-798/p/7098979.html 前言: 昨天在做倒计时修改的时候,发 ...

  3. Matlab远程调试 转

        Matlab的调试总体分为,直接调试和间接调试.1.直接调试:(1)去掉句末的分号:(2)单独调试一个函数:将第一行的函数声明注释掉,并定义输入量,以脚本方式执行 M 文件:(3)适当地方添加 ...

  4. linux用户管理 查看用户信息

    LINUX系统中用户登录查看命令 W命令 [root@ssgao1987 ~]# w 04:57:01 up 11:50,  2 users,  load average: 0.00, 0.00, 0 ...

  5. 0-MAVEN SETTING

    localRepository : 表示本地库的保存位置,也就是maven主要的jar包保存位置,默认在${user.dir}/.m2/repository,如果需要另外设置,就换成其他的路径 Ser ...

  6. Android 音视频深入 六 使用FFmpeg播放视频(附源码下载)

    本篇项目地址,求starhttps://github.com/979451341/Audio-and-video-learning-materials/tree/master/FFmpeg%E6%92 ...

  7. oracle中的对象创建及删除语句【原创】

    oracle对象 1.表 a)创建表1 create table students( id number(10), stuno number(10) , sex varchar2(2), age in ...

  8. flask项目结构(三)使用蓝图

    简介: Flask中的蓝图旨在针对这些情况: 把一个应用分解成一系列的蓝图.对于大型的应用是理想化的:一个项目能实例化一个应用, 初始化一些扩展,以及注册一系列的蓝图. 以一个 URL 前缀和/或子域 ...

  9. vue-router-6-命名视图

    //展示多个视图<router-view class="view one"></router-view> <router-view class=&qu ...

  10. (C/C++学习笔记) 二. 数据类型

    二. 数据类型 ● 数据类型和sizeof关键字(也是一个操作符) ※ 在现代半导体存储器中, 例如在随机存取存储器或闪存中, 位(bit)的两个值可以由存储电容器的两个层级的电荷表示(In mode ...