实验 1 远程登录服务器
两台服务器选择了腾讯云服务器的台Ubuntu-20.04-LTS-x64系统,默认具备SSH服务。
本实验中使用vscode进行远程操作,打开两个终端分别登录两台远程服务器
![image-20221027192005244](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027192005244.png)
![image-20221027192059321](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027192059321.png)
可以看到远程登录成功
实验 2 依赖环境安装
-
编辑器使用系统自带的
nano
编辑器 -
go语言安装
执行命令
wget -4 -c https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz
解压到
/usr/local
,加入环境变量export PATH=$PATH:/usr/local/go/bin
使其生效
source ~/.profile
验证
![image-20221027192937752](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027192937752.png)
-
apt 安装git
![image-20221027193017823](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027193017823.png)
实验 3 安装 IPFS
下载压缩包go-ipfs_v0.4.17_linux-amd64.tar.gz
,通过以下命令上传到服务器
scp /E:/go-ipfs_v0.4.17_linux-amd64.tar.gz ubuntu@serverIP:/home/ubuntu/ |
传输后解压并将文件复制到/usr/bin
目录下
sudo tar -zxvf go-ipfs_v0.4.17_linux-amd64.tar.gz -C ~/IPFS/ |
在两个服务器中都执行该过程
实验 4 IPFS 初始化
在两台服务器中执行初始化命令:
ipfs init |
初始化成功
Ubuntu1
![image-20221027195952977](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027195952977.png)
Ubuntu2
![image-20221027200139134](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027200139134.png)
实验 5 私有网络的共享密钥生成
在Ubuntu1中下载工具
go get -u github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen |
进入下载目录
cd ~/go/src/github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen |
执行如下命令,生成可执行文件 ipfs-swarm-key-gen:
go build |
生成key
./ipfs-swarm-key-gen > ~/.ipfs/swarm.key |
将上述生成的密钥 key 复制到 Ubuntu2 相同的目录下:
scp ~/.ipfs/swarm.key ubuntu2@ubuntu2 IP:~/.ipfs/ |
在Ubuntu2中查看
![image-20221027200749007](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027200749007.png)
实验 6 移除默认的 Bootstrap 节点
在两台服务器上都进行操作: ipfs bootstrap rm –all
移除默认节点
实验 7 启动节点服务
在ubuntu@VM-0-9中查看节点ID并启动节点服务
![image-20221027202058662](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027202058662.png)
在ubuntu@VM-0-4中添加节点ubuntu@VM-0-9并启动节点服务
![image-20221027202149402](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027202149402.png)
这里使用的连接ip为腾讯云内网ip,固定不变,方便管理
实验 8 测试数据抓包
(1) 通过 IPFS 命令与网络交互,完成以下任务。
① 查看引导节点列表,并查看已连接的其他 IPFS 节点。
在ubuntu@VM-0-4中用ipfs bootstrap list
命令查看引导节点
![image-20221027202846482](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027202846482.png)
使用 ipfs swarm peers
查看连接的节点
![image-20221027203013314](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027203013314.png)
![image-20221027203031756](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027203031756.png)
② 在本地节点添加目录,并查看本地存储的所有文件。
查阅命令在本地对文件操作如下
![image-20221027203612069](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027203612069.png)
![image-20221027203624144](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027203624144.png)
查看文件内容
![image-20221027203721633](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027203721633.png)
③ 在本地节点中==下载==和删除文件。
建立文件添加到IPFS网络
![image-20221027204209792](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027204209792.png)
另一台服务器中,利用文件的 Hash 值,读取 ipfs.txt。
![image-20221027204250702](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027204250702.png)
本地下载文件
![image-20221103144627406](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221103144627406.png)
查看已下载的文件
![image-20221103144911074](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221103144911074.png)
删除文件
![image-20221027203915859](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027203915859.png)
(2)抓取测试的数据包。
用Wireshark一直报错,不知道为什么,没有解决…
用Ubuntu自带的端口监听软件TCPDump抓包:
在ubuntu@VM-0-4执行完ipfs add
后抓取到数据包
![image-20221027204801578](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027204801578.png)
在ubuntu@VM-0-9执行完ipfs cat hashvalue
后抓取到数据包
![image-20221027204951023](选做三:认识存储网络:手动搭建 IPFS 环境以及简单应用的开发/image-20221027204951023.png)