Linux安装IPFS

  • 一、需要golang环境
    • 下载安装
    • 创建工作目录
    • 配置环境变量 /etc/profile
  • 二、IPFS安装部署
    • 安装
    • 初始化
    • 修改各个节点的配置文件
    • 启动节点
    • 测试

一、需要golang环境

下载安装

$ cd /opt
$ wget https://golang.google.cn/dl/go1.17.1.linux-amd64.tar.gz
$ tar -xf go1.17.1.linux-amd64.tar.gz

创建工作目录

$ mkdir -p /data/gopath && cd /data/gopath
$ mkdir -p src pkg bin

配置环境变量 /etc/profile

export GOROOT=/opt/go
export GOPATH=/data/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

二、IPFS安装部署

安装

官网https://docs.ipfs.io/install/recent-releases/,慢的话去https://github.com/ipfs/go-ipfs/releases下载

# 下载(慢的话参考上面的github地址下载)
$ cd /opt
$ wget https://download.fastgit.org/ipfs/go-ipfs/releases/download/v0.9.1/go-ipfs_v0.9.1_linux-amd64.tar.gz
# 解压
$ tar -xf go-ipfs_v0.9.1_linux-amd64.tar.gz
# 安装
$ cd go-ipfs/
$ ./install.sh

输出一下代表成功

[root@iZbp16mqbjhbx5mcbgggllZ go-ipfs]# ./install.sh
Moved ./ipfs to /usr/local/bin
[root@iZbp16mqbjhbx5mcbgggllZ go-ipfs]# ipfs version
ipfs version 0.9.1

初始化

创建节点目录(单机多节点)

mkdir /data/ipfs_nodes/ipfs_1
mkdir /data/ipfs_nodes/ipfs_2
mkdir /data/ipfs_nodes/ipfs_3
mkdir /data/ipfs_nodes/key        #集群私钥目录,用来存放集群的私钥

初始化

IPFS_PATH=/data/ipfs_nodes/ipfs_1 ipfs init
IPFS_PATH=/data/ipfs_nodes/ipfs_2 ipfs init
IPFS_PATH=/data/ipfs_nodes/ipfs_3 ipfs init

输出以下代表成功

generating ED25519 keypair...done
peer identity: 12D3KooW9uugER1oBn33JVVFdQFEg8UJ5c9tizTYb4SWGxBgUfDt
initializing IPFS node at /root/.ipfs/
to get started, enter:ipfs cat /ipfs/QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/readme

该目录下:

  • blocks:文件块内容
  • conifg:配置文件
  • datastore_spec:存储本地数据
  • keystore:存储公私钥对
  • version:版本信息

删除引导程序节点的默认条目。因为是部署私有网络,所以需要移除原有的引导程序节点,如果不删除,启动后就会同步IPFS主网的数据。

IPFS_PATH=/data/ipfs_nodes/ipfs_1/ ipfs bootstrap rm --all
IPFS_PATH=/data/ipfs_nodes/ipfs_2/ ipfs bootstrap rm --all
IPFS_PATH=/data/ipfs_nodes/ipfs_3/ ipfs bootstrap rm --all

下载密钥生成工具

cd /data/ipfs_nodes
git clone https://github.com/Kubuxu/go-ipfs-swarm-key-gen.git

创建密钥

go build -o ipfs-swarm-key-gen go-ipfs-swarm-key-gen/ipfs-swarm-key-gen/main.go
./ipfs-swarm-key-gen > swarm.key

复制密钥到各个节点

cp /data/ipfs_nodes/swarm.key /data/ipfs_nodes/ipfs_1
cp /data/ipfs_nodes/swarm.key /data/ipfs_nodes/ipfs_2
cp /data/ipfs_nodes/swarm.key /data/ipfs_nodes/ipfs_3

修改各个节点的配置文件

cd /data/ipfs_nodes/ipfs_1
vim config
 "API": {"HTTPHeaders": {"Access-Control-Allow-Methods": [ # 配置跨域设置,供前端调用"PUT","GET","POST"],"Access-Control-Allow-Origin": ["*"]}}
"Addresses": {"API": "/ip4/0.0.0.0/tcp/15001",    # 这里的ip和端口,0.0.0.0对外开放,不能配本机公网ip,会报错"Announce": [],"Gateway": "/ip4/127.0.0.1/tcp/18081", # 这里的ip和端口"NoAnnounce": [],"Swarm": ["/ip4/0.0.0.0/tcp/14001", # 这里的ip和端口"/ip6/::/tcp/14001", # 这里的ip和端口"/ip4/0.0.0.0/udp/14001/quic", # 这里的ip和端口"/ip6/::/udp/14001/quic" # 这里的ip和端口]}

启动节点

启动第一个节点

export LIBP2P_FORCE_PENT=1|IPFS_PATH=/data/ipfs_nodes/ipfs_1/ ipfs daemon &# export LIBP2P_FORCE_PNET=1表示您将节点强制为私有
# & 是表示后台运行

查看第一个节点的peer id

IPFS_PATH=/data/ipfs_nodes/ipfs_1/ ipfs id

第一个节点之后的节点,启动前都要添加引导程序节点,与第一个节点的id建立起联系

IPFS_PATH=/data/ipfs_nodes/ipfs_2 ipfs bootstrap add /ip4/127.0.0.1/tcp/14001/ipfs/12D3KooWKUVFMHN7k7H98byTG3bpwTx646JkjeiMmPMipyDjs532
IPFS_PATH=/data/ipfs_nodes/ipfs_3 ipfs bootstrap add /ip4/127.0.0.1/tcp/14001/ipfs/12D3KooWKUVFMHN7k7H98byTG3bpwTx646JkjeiMmPMipyDjs532export LIBP2P_FORCE_PENT=1|IPFS_PATH=/data/ipfs_nodes/ipfs_2/ ipfs daemon &
export LIBP2P_FORCE_PENT=1|IPFS_PATH=/data/ipfs_nodes/ipfs_3/ ipfs daemon &

查看启动情况

ps -ef | grep ipfs
root     20530 20102  0 12:01 pts/0    00:00:19 ipfs daemon
root     20710 20102  0 14:52 pts/0    00:00:00 ipfs daemon
root     20720 20102  0 14:52 pts/0    00:00:00 ipfs daemon
root     20743 20102  0 14:55 pts/0    00:00:00 grep --color=auto ipfs

测试

通过节点一上传一个txt文件

[root@iZbp16mqbjhbx5mcbgggllZ data]# export LIBP2P_FORCE_PENT=1|IPFS_PATH=/data/ipfs_nodes/ipfs_1/ ipfs add t.txt
added Qmd5nCsoTpdxCFncQ3L1VSDdt4pgaJoCKPWF8zGjMUWegE t.txt7 B / 7 B [=================================================================================================================================================================================================================] 100.00%

通过节点二获取文件

[root@iZbp16mqbjhbx5mcbgggllZ data]# export LIBP2P_FORCE_PENT=1|IPFS_PATH=/data/ipfs_nodes/ipfs_1/ ipfs cat Qmd5nCsoTpdxCFncQ3L1VSDdt4pgaJoCKPWF8zGjMUWegE
您好

ipfs命令手册参考http://cw.hubwiz.com/card/c/ipfs/1/1/1/
ipfs原理参考https://www.pseudoyu.com/zh/2021/03/25/blockchain_ipfs_structure/

Linux安装IPFS相关推荐

  1. linux 安装ipfs —— IPFS环境配置

    1. IPFS简介 IPFS(InterPlanetary File System)是一个点对点的分布式超媒体分发协议,它整合了过去几年最好的分布式系统思路,为所有人提供全球统一的可寻址空间,包括Gi ...

  2. Linux部署IPFS(分布式存储系统)私有网络

    Linux部署IPFS(分布式存储系统)私有网络 简介: 星际文件系统是一个旨在创建持久且分布式存储和共享文件的网络传输协议.它是一种内容可寻址的对等超媒体分发协议.在IPFS网络中的节点将构成一个分 ...

  3. IPFS入门操作教程(一):下载并安装IPFS

    IPFS入门操作教程(一):下载并安装IPFS 文章目录 学习目标 一.IPFS是什么? 二.下载安装IPFS 1.下载IPFS可执行文件压缩包 2.解压IPFS压缩包 第三步:设置ipfs可执行文件 ...

  4. 实用的Linux 安装 zip unzip

    Linux 安装 zip unzip 1.apt-get 安装 apt-get install zip 2.yum 安装 yum install -y unzip zip 命令实例 1.把/home目 ...

  5. nginx linux 安装

    nginx linux 安装 进入http://nginx.org/en/download.html 下载 n  gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gc ...

  6. Linux安装Nodejs

    Linux安装Nodejs 阿里云镜像: https://npm.taobao.org/mirrors/node/ 选择所需版本,进行下载. 我这边下载的是:https://npm.taobao.or ...

  7. linux命令安装组件,Linux安装各种组件

    [TOC] Linux安装各种组件 ============================= ## 安装JDK 官网下载最新JDK ``` http://www.oracle.com/technet ...

  8. arch linux安装_如何从头开始安装Arch Linux

    arch linux安装 by Andrea Giammarchi 由Andrea Giammarchi In this article, you'll learn how to install Ar ...

  9. linux安装eclipse运行web,Linux安装Tomcat,运行Eclipse,web项目

    到官网下载:https://tomcat.apache.org/download-80.cgi  在这里是8.5.39版本 下载tar,gz 提取解压后,我这里是放到opt目录下 cd  切换目录 / ...

最新文章

  1. sql 根据多个ID删除表中多行数据
  2. springboot整合视图层Thymeleaf、freemarker
  3. aws lambda使用_使用AWS Lambda的CloudWatch事件通知
  4. 工作311:uni-携带当前参数跳转页面传值
  5. [Web 前端] 解决因inline-block元素导致的空白间距和元素下沉
  6. JQuery Datatables 获取实例及如何进行全局设置
  7. CSS three column layout
  8. Winform模态窗体关闭时赋值给打开自身的窗体(C# 事件委托版)
  9. 一篇带你完全掌握线程的博客
  10. Qt总结:QMessageBox(原生态弹出框及究极超nice封装自定义弹出框)
  11. ともだちいじょう、こいびとみまん
  12. 人件第二版(中文版)pdf
  13. 计算机的次要功能,FRM考试时所用计算器的操作指南
  14. 当公路的规则与秩序,被昇腾AI时刻守护
  15. myeclipse中光标突然变粗的解决方法
  16. CTF-AWD入门手册
  17. Android网络数据JSON解析使用总结
  18. SAP PO IDOC开发上(SAP PO 开发十一)
  19. nodejs中使用jwt
  20. BZOJ2152 聪聪可可 点分治题解

热门文章

  1. 使用微软官方工具制作U盘系统重装盘
  2. A2021-A2022年度总结项目内容(三)
  3. CentOS7.4安装NVIDIA显卡驱动 GT730
  4. python通达信接口_python通达信接口-通达信 量化交易。
  5. 目标检测 图像分割 MASK-RCNN
  6. 学习笔记-会话技术CookieSession
  7. 计算机网络技术班级16字口号,校运会班级口号16字押韵有气势
  8. 【Vue】时间戳转换为年月日 格式为 yyyy-MM-dd hh:mm js转换时间戳 时间戳转换为年月日 Fri Apr 01 2022 00:00:00 GMT+0800 (中国标准时间)转换
  9. 我的职业梦计算机软件,我的职业梦作文500字
  10. 在电脑上怎么做判断题打√或x_苹果Mac电脑知识竞赛考试题