在Linux上不会部署私有IPFS?(保姆级教程!!!)教你一步一步部署。

这篇具有很好参考价值的文章主要介绍了在Linux上不会部署私有IPFS?(保姆级教程!!!)教你一步一步部署。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、环境准备

系统要求

至少需要2G内存,2 核 CPU。

实验环境

共计两个节点,192.168.159.102、192.168.159.103,系统采用centos7

环境准备后,按照如下步骤部署ipfs,每个节点都要单独部署ipfs。

配置 golang 环境

下载go

$ cd /home
$ wget https://golang.google.cn/dl/go1.17.1.linux-amd64.tar.gz
$ tar -zxvf go1.17.1.linux-amd64.tar.gz -C /usr/local

配置 golang 环境变量

$ vim /etc/profile
文件末尾追加
# golang env
export GOROOT=/usr/local/go
export GOPATH=/data/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
 
$ source /etc/profile

# 创建工作目录:
$ mkdir -p /data/gopath && cd /data/gopath
$ mkdir -p src pkg bin

二、IPFS部署

所有节点上都需要部署ipfs:

1、安装

# 下载
$ cd /home
$ wget https://download.fastgit.org/ipfs/go-ipfs/releases/download/v0.9.1/go-ipfs_v0.9.1_linux-amd64.tar.gz
# 解压缩
$ tar xvfz go-ipfs_v0.9.1_linux-amd64.tar.gz
# 安装
$ cd go-ipfs/
$ ./install.sh 

2、指定IPFS的存储位置

$ export IPFS_PATH="/root/.ipfs/" 

3、初始化:

$ ipfs init 

该操作执行后,默认会在/root/目录下生成一个隐藏目录.ipfs,作为ipfs的local存储。可用ls -a 查看

如果输出以下代码则表示初始化成功了:

generating ED25519 keypair...done
peer identity: 12D3KooWPVtCiwDTbf8L8B5pV5PWpW1C4yfzAZaqZpjz3pyzMEig
initializing IPFS node at /opt/ipfs
to get started, enter:

        ipfs cat /ipfs/QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/readme

三、生成共享key

1、生成Key

选择任意一个节点执行以下操作:

1)下载key生成工具

$ git clone https://hub.fastgit.org/Kubuxu/go-ipfs-swarm-key-gen.git

2)编译go-ipfs-swarm-key-gen

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

3)此时在当前目录下会成一个ipfs-swarm-key-gen的可执行二进制文件。我们使用该文件来生成一个swarm.key文件

$ ./ipfs-swarm-key-gen > swarm.key

2、将生成的swarm.key文件传输到所有需要加入私有网络的节点的 ~/.ipfs/文件夹内。

102上:

$  cp swarm.key  ~/.ipfs/

103上:

$  scp root@192.168.159.102:~/.ipfs/swarm.key ~/.ipfs

四、添加网络节点

所有节点上都移除默认的IPFS节点:

$ ipfs bootstrap rm all

查看节点ID:

$ ipfs id 

系统会输出以下内容,记住ID部分:

# 102
{
        "ID": "12D3KooWP4avEe4hX3XVsbaWMHHuTZcXP5A5kCUf91BhRd9yy1Zb",
        "PublicKey": "CAESIMTMekjuLE276A/3lr++zJqDGzkOYDqJulm6+VyEqVGi",
        "Addresses": null,
        "AgentVersion": "go-ipfs/0.9.1/",
        "ProtocolVersion": "ipfs/0.1.0",
        "Protocols": null
}
# 103
{
        "ID": "12D3KooWDQL6EigoCsx6EjM4mSpz7Vqq9RHCZzPoshVFS8bdxrXh",
        "PublicKey": "CAESIDVGdYIAdJfI6eZ6mAbrJo8RNn4baXsR4Wb1GZsc6Ocw",
        "Addresses": null,
        "AgentVersion": "go-ipfs/0.9.1/",
        "ProtocolVersion": "ipfs/0.1.0",
        "Protocols": null
}

在102服务器上添加103:

$ ipfs bootstrap add /ip4/192.168.159.103/tcp/4001/ipfs/12D3KooWDQL6EigoCsx6EjM4mSpz7Vqq9RHCZzPoshVFS8bdxrXh

在103服务器上添加102:

$ ipfs bootstrap add /ip4/192.168.159.102/tcp/4001/ipfs/12D3KooWP4avEe4hX3XVsbaWMHHuTZcXP5A5kCUf91BhRd9yy1Zb

五、启动IPFS

所有的节点都添加完毕后使用命令启动IPFS,显示如下输出说明启动成功,配置文件没有问题。

$ nohup ipfs daemon > ipfs.log 2>&1 &
......
API server listening on /ip4/127.0.0.1/tcp/5001
WebUI: http://127.0.0.1:5001/webui
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready

IPFS Daemon启动过程包含8个步骤:

  1. 检查是否已经初始化
  2. 打开初始化根目录 /.ipfs
  3. 读取配置
  4. 根据配置生成一个新节点
  5. 连接到IPFS网络
  6. 开启IPFS API服务
  7. 开启Gateway网关服务
  8. 输出IPFS Daemon ready

网络启动后,可以测试网络的连通性,使用如下命令查看IPFS连接了多少节点:

$ ipfs stats bitswap
 bitswap status
        provides buffer: 0 / 256
        blocks received: 0
        blocks sent: 0
        data received: 0
        data sent: 0
        dup blocks received: 0
        dup data received: 0
        wantlist [0 keys]
        partners [1]

其中partners就是连接到的节点数量,因为我们现在只有两个节点,所以partners1

六、测试文本传输

在102新建一个文本文件:

$ echo "hello world" >> test.txt

将其添加到ipfs网络:

$ ipfs add test.txt 

输出以下字符就说明文件已经上传上去了:

added QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o test.txt
 12 B / 12 B [==================================================================================================================] 100.00%

查看文件:

$ ipfs cat QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o

在子节点重复上面的操作,输出都是hello world说明私有网络已经联通。

七、WEB

web访问 http://192.168.159.101:5001/webui

1、 配置ipfs的CORS策略
要从网页中访问ipfs节点,需要解决跨域安全问题,因此我们需要配置ipfs节点使其允许跨域请求:

$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]' 
$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods "[\"PUT\", \"GET\", \"POST\"]"
$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials "[\"true\"]"

2、 配置ipfs的API监听地址
由于ipfs节点默认在本机(127.0.0.1)的5001端口监听API请求、8080端口监听http请求,因此如果浏览器和ipfs节点不在同一台机器上,需要让ipfs节点监听公开地址:

$ ipfs config --json Addresses.API '"/ip4/0.0.0.0/tcp/5001"' 
$ ipfs config --json Addresses.Gateway '"/ip4/0.0.0.0/tcp/8080"'

3、配置完后重启 ipfs daemon

4、安装运行webui

1)安装npm

$ wget https://nodejs.org/dist/v12.18.1/node-v12.18.1-linux-x64.tar.xz
$ tar -xvf node-v12.18.1-linux-x64.tar.xz
$ ln -s /home/node-v12.18.1-linux-x64/bin/node /usr/bin/node
$ ln -s /home/node-v12.18.1-linux-x64/bin/npm /usr/bin/npm
$ node -v
$ npm -v
# 安装nap 
npm config set registry https://registry.npm.taobao.org
npm install webpack -g

2)部署webui

$ git clone https://hub.fastgit.org/ipfs/webui
$ cd webui
$ npm install
    # Runs server on port 3000.
  1. 配置ipfs的CORS策略
./cors-config.sh

重启ipfs daemon文章来源地址https://www.toymoban.com/news/detail-801221.html

  1. 启动前端
$ npm start

到了这里,关于在Linux上不会部署私有IPFS?(保姆级教程!!!)教你一步一步部署。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 初识Linux:保姆级教学,让你一秒记住Linux中的常用指令!

    1991年10月5日,赫尔辛基大学的一名研究生Linus Benedict Torvalds在一个Usenet新闻组(comp.os.minix)中宣布他编制出了一种类似UNIX的小操作系统,叫Linux。新的操作系统是受到另一个UNIX的小操作系统——Minix的启发,该系统是由一名叫Andrew S Tanenbaum的教师开发的。读者也许猜想所发布的

    2024年02月05日
    浏览(45)
  • IPFS系列03-搭建 IPFS 私有网络

    本文讲述如何使用 IPFS 搭建自己的私有存储网络,如果你对 IPFS 还了解的话,建议你先看看下面两篇文章 IPFS系列01-IPFS 前世今生 IPFS系列02-IPFS 与 web3.0 有两种安装方式,一种是 clone 源码 编译安装(前提是你已经安装了 Go 语言的运行环境): 项目源码依赖较多,编译需要一

    2024年02月02日
    浏览(41)
  • 【区块链 | IPFS】IPFS cluster私有网络集群搭建

    对于联盟链的业务中搭建一个私有网络的 IPFS 集群还是很有必要的,私有网络集群允许 IPFS 节点只连接到拥有共享密钥的其他对等节点,网络中的节点不响应来自网络外节点的通信。 IPFS-Cluster 是一个独立的应用程序和一个 CLI 客户端,它跨一组 IPFS 守护进程分配、复制和跟踪

    2024年02月08日
    浏览(31)
  • IPFS搭建私有网络

    (87条消息) IPFS -- 节点搭建_躺在家里不干活的博客-CSDN博客_ipfs节点搭建 下载地址 https://gitee.com/wang_ya_nan/go-ipfs/releases 下载成功 安装成功 初始化成功! 启动成功! 经过上一步,我们已经可以在本地机器上通过API的方式上传文件了,但是如果要通过互联网访问,还需要配置

    2024年01月19日
    浏览(28)
  • Linux云端部署stable diffusion保姆级教程——基于腾讯云,ubuntu系统

    #本教程也参考了其他教程,这个是整合版,带#的是注释,不带#的就是命令,需要一行一行复制,然后按回车执行 #最好选择境外Linux,网络环境好,境内需要魔法,下面开始—— #从控制台登录,最好是OrcaTerm登录,复制比较方便 #第一步下载miniconda安装包 #第二步安装 #第三

    2024年02月13日
    浏览(40)
  • Stable Diffusion XL webui Linux服务器部署(保姆级教程)

    本人把部署过程遇到的坑,会尽可能详细地写在这篇文章中,以供参考。希望能对大家有所帮助! 4张RTX 4090,NVIDIA驱动版本为525.60.13,CUDA版本为12.0。 我部署的SDXL版本为SDXL-refiner-1.0,虽然SDXL官方github提供了UI界面的脚本,但是用起来不如 AUTOMATIC1111开发的好用,所以还是推

    2024年02月04日
    浏览(43)
  • 【运维】Linux安装Nginx并部署前端项目的两种方式【内 外网-保姆级教程】_linux部署前端项(1)

    1准备nginx安装包并解压 2执行以下命令,安装nginx依赖包 3编译安装nginx 4验证安装 第二种方式 1下载所需要的安装包 2安装步骤 2.1将下载的完整文件夹通过压缩包的形式,上传到你的路径下解压. 2.2 进入到gcc文件夹下,执行命令: 2.3进入到gcc-c++文件夹下,执行命令: 2.4检查

    2024年04月14日
    浏览(61)
  • Java——Linux使用Docker部署若依前后端分离版【保姆级教程】

    目录 一、项目规划与前置工作 1.1、docker所需镜像 1.2、使用工具  1.3、防火墙与安全组的配置  1.4、域名解析、备案、SSL证书的准备(可选) 二、Docker和镜像安装 2.1、Docker安装 2.1.1、检查环境 2.1.2、搭建gcc环境(gcc是编程语言译器) 2.1.3、安装需要的软件包 2.1.4、装镜像仓

    2024年02月02日
    浏览(68)
  • 【运维】Linux安装Nginx并部署前端项目的两种方式【内/外网-保姆级教程】

    目录 第一种方式 1准备nginx安装包并解压 2执行以下命令,安装nginx依赖包 3编译安装nginx 4验证安装 第二种方式 1下载所需要的安装包 2安装步骤 2.1将下载的完整文件夹通过压缩包的形式,上传到你的路径下解压. 2.2 进入到gcc文件夹下,执行命令: 2.3进入到gcc-c++文件夹下,执

    2024年02月04日
    浏览(50)
  • Linux服务器部署若依(ruoyi-vue),从购买服务器到部署完成保姆级教程

    Huawei Cloud EulerOS 还是 centos7,纠结了一段时间,了解到EulerOS是对centos8的延续版本,相当于官方不对centos8继续维护了, 最后还是选 CentOS 7.9 64bit,网上可查找的工具更多且官方还在持续维护。 这里简单购买了一个月先试用一下 点击远程登录 第一步先重置密码 一定在适当的地

    2024年04月14日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包