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

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

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

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

安装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
安装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 
生成共享的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
添加网络节点(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
启动IPFS服务,测试网络连通性,查看IPFS连接了节点数。
#正常运行,关闭窗口停止
$ ipfs daemon

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

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

三、本地节点安装IPFS 下载安装包:微新搜索公从号"IT学习小镇"回复"ipfs"获取安装包安装初始化:
#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
测试查看:检查远程节点和本地节点是否启动了ipfs服务(是否执行ipfs daemon),本地执行ipfs stats bitswap。如partners为2,则整体 *** 作成功。 四、测试 本地节点上传文件,远程获取该文件
#1、本地执行ipfs add a.txt
#2、复制上传成功的hash值
#3、在远程执行ipfs cat hash值查看文件

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

五、总结

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/942743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-18
下一篇 2022-05-18

发表评论

登录后才能评论

评论列表(0条)

保存