安装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服务处于启动状态
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)