栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

部署私有IPFS网络,将本地电脑也作为一个IPFS节点,实现文件互通。(win安装IPFS,linux安装IPFS)

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

部署私有IPFS网络,将本地电脑也作为一个IPFS节点,实现文件互通。(win安装IPFS,linux安装IPFS)

一、前提准备
  1. 虚拟机ipfs1:192.168.22.136
  2. 虚拟机ipfs2:192.168.22.137
  3. 本机:192.68.40.145
二、远程节点安装IPFS(Linux安装IPFS)

跟着以下命令一步一步执行,注意不要复制$符号

  1. 安装go环境及其配置环境变量
#下载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


#配置go环境变量
$ 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
  1. 安装ipfs、初始化
# 下载
$ 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 

#指定IPFS存储位置
$ export IPFS_PATH="/root/.ipfs/" 

#初始化,默认会在/root/目录下生成一个隐藏目录`.ipfs`,
#作为ipfs的local存储。可用`ls -a` 查看
$ ipfs init 
  1. 生成共享的key(该key是实现节点间互通的一个凭证),并加到节点的 ~/.ipfs/文件夹内。
#下载key生成工具
$ git clone https://hub.fastgit.org/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

#生成swarm.key
$ ./ipfs-swarm-key-gen > swarm.key

#给136节点增加该key,同时,137节点、本地节点也需要增加。
$  cp swarm.key  ~/.ipfs/

#给137节点也加上
$  scp root@192.168.22.137:~/.ipfs/swarm.key ~/.ipfs
  1. 添加网络节点(ipfs1节点需要添加ipfs2跟本地节点)
#移除所有默认节点
$ ipfs bootstrap rm all

#查看节点id,
$ ipfs id 



#在136上添加137
$ ipfs bootstrap add /ip4/192.168.22.137/4001/ipfs/上一步查询到的137节点ID

#比如137节点的ID是qazxswedc,那执行ipfs bootstrap add /ip4/192.168.22.137/tcp/4001/ipfs/qazxswedc

#在137上添加136
$ ipfs bootstrap add /ip4/192.168.22.136/4001/ipfs/上一步查询到的136节点ID
  1. 启动IPFS服务,测试网络连通性,查看IPFS连接了节点数。
#正常运行,关闭窗口停止
$ ipfs daemon

#后台运行,关闭不停止
$ nohup ipfs daemon

#查看节点数
$ ipfs stats bitswap
#`partners`就是连接到的节点数量,因为我们现在只有两个节点,所以`partners`是`1`。

三、本地节点安装IPFS
  1. 下载安装包:微新搜索公从号"IT学习小镇"回复"ipfs"获取安装包
  2. 安装初始化:
#1、在解压文件下,进入cmd命令行
#2、初始化,会告知.ipfs仓库位置。
ipfs init

#3、从远程节点下拉取swarm.key复制到本地.ipfs仓库中。
#4、添加各自网络节点
#5、添加config配置
$ 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"]"
#6、启动服务
ipfs daemon
  1. 测试查看:检查远程节点和本地节点是否启动了ipfs服务(是否执行ipfs daemon),本地执行ipfs stats bitswap。如partners为2,则整体操作成功。
四、测试
  1. 本地节点上传文件,远程获取该文件
#1、本地执行ipfs add a.txt
#2、复制上传成功的hash值
#3、在远程执行ipfs cat hash值查看文件

  1. 远程节点上传文件,本地获取该文件
#1、远程创建文件并执行ipfs add 1.txt
#2、复制hash值
#3、本地cat查看

五、总结

要想做到节点间连通,前提条件。
(1)仓库拥有同一个swarm.key
(2)添加各自的网络节点
(3)IPFS服务处于启动状态

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/990371.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号