首页 > 其他分享 >认识存储网络:手动搭建 IPFS 环境以及简单应用的开发

认识存储网络:手动搭建 IPFS 环境以及简单应用的开发

时间:2024-01-20 23:00:13浏览次数:27  
标签:IPFS ubuntu1 手动 ipfs 服务器 节点 ipfstest 搭建

认识存储网络:手动搭建 IPFS 环境以及简单应用的开发

一、实验背景

IPFS是一个点对点的分布式文件系统,将所有的计算设备与相同的文件系统连接起来。在某些方面,IPFS类似于Web,但IPFS可以被视为一个单一的比特流群,在Git存储库中交换对象。换句话说,IPFS提供了一个具有内容寻址的超链接的高吞吐量的内容寻址块存储模型,形成了一个通用的Merkle DAG,在此基础上人们可以构建版本化的文件系统、区块链,甚至是永久的Web。IPFS结合了分布式散列表、激励块交换和自我认证的名称空间。IPFS没有单点故障,节点之间不需要相互信任。

二、 实验目标

(1)学会远程操作的基本工具使用。

(2)学习搭建 IPFS 分布式私有网络,体会 P2P 网络架构。

(3)学习使用 IPFS 常用命令进行相关操作。

三、实验流程与记录

实验1 远程登录服务器

打开虚拟机,启动两台Ubuntu系统,安装网络工具包后查看远程服务器的IP地址:

image

image

可以看到ubuntu1的IP地址为192.168.110.130,ubuntu2的IP地址为192.168.110.131。

安装SSH服务后,检查得知安装成功:

image

然后在Windows系统下,打开安装好的PuTTY工具,分别登录两台远程服务器:

image

image

根据显示的信息可以得知远程登录成功。

实验 2 依赖环境安装

安装Go语言和Git后,检查Go语言和Git的版本:

image

实验 3 安装 IPFS

在两台服务器上分别安装IPFS:

image

image

实验4 IPFS初始化

在两台服务器中执行初始化命令,可以查询到两台服务器的身份标识:

image

image

实验 5 私有网络的共享密钥生成

在ubuntu1上利用go-ipfs-swarm-key-gen 工具生成共享密钥key,并将生成的密钥key复制到ubuntu2相同的目录下:

image

实验 6 移除默认的 Bootstrap 节点

在两台服务器上移除默认的Bootstrap节点:

image

image

实验 7 启动节点服务

在ubuntu1上启动节点服务:

image

查看节点ID:

image

在ubuntu2中添加节点ubuntu1:

image

ubuntu2启动节点服务:

image

两台服务器的节点服务均启动成功。

实验 8 测试数据抓包

(1)通过 IPFS 命令与网络交互,完成以下任务。

① 查看引导节点列表,并查看已连接的其他 IPFS 节点。

首先在两台服务器上分别使用命令$ipfs bootstrap list查看节点引导列表。

在ubuntu1上查看引导节点列表,可以看到节点列表为空:

image

然后在ubuntu2上查看引导节点列表,可以看到显示了在ubuntu1上部署的IPFS节点:

image

再在两台服务器上分别使用$ipfs swarm peers命令查看已连接的其他IPFS节点:

image

image

根据IP地址和节点ID信息可知两台服务器之间已经正确建立了P2P连接。

② 在本地节点添加目录,并查看本地存储的所有文件。

在ubuntu1上新建ipfstest文件夹,并在其中添加hello.txt和world.txt文件,然后将ipfstest文件夹挂载至IPFS网络中:

image

在ubuntu1上查询节点中ipfstest文件目录中的内容:

image

在ubuntu2上查询节点中ipfstest文件目录中的内容:

image

可以看到目录内容显示正确,ipfstest文件目录已经成功挂载到了IPFS网络中。

在两台服务器上分别使用命令$ipfs pin ls查看本地固定存储的IPFS对象。$ipfs pin ls 命令用于列出当前节点上所有已固定的 IPFS 对象。 固定是指将对象保留在本地节点上,以便在需要时可以快速访问。 固定的对象不会被垃圾回收器删除,因此它们可以在本地节点上保留很长时间。可以看到在ubuntu1上本地固定存储的IPFS对象中出现了上述节点的ID。

image

image

③ 在本地节点中下载和删除文件。

在ubuntu2上使用$ipfs get命令从上述IPFS节点中下载ipfstest目录至本地:

image

然后在本地打开下载的文件目录,查看其中的文件内容,发现文件内容与上传时相同:

image

接下来在ubuntu1上使用命令$ipfs pin rm命令删除IPFS网络上挂载的ipfstest文件目录:

image

再使用命令$ipfs pin ls进行查看,可以看到刚才显示的文件Hash值已消失。

image

然后在两服务器上分别执行$ipfs repo gc命令进行垃圾回收:

image

image

此时再在ubuntu2上执行$ipfs get命令下载此前上传到IPFS节点中的ipfstest文件,发现无响应,说明此前步骤删除ipfstest目录成功:

image

(2)在主机上是用 Wireshark 抓取以下测试的数据包。

首先在Ubuntu1中建立一个文件ipfs.txt,并添加到IPFS网络中:

image

上传过程的抓包结果如下:

image

可以看到,192.168.110.1和192.168.110.130之间使用SSH协议传输加密数据包。

然后在ubuntu2中,利用文件的Hash值,读取ipfs.txt文件:

image

读取过程的抓包结果如下:

image

可以看到,192.168.110.1和192.168.110.131之间使用SSH协议传输加密后的数据包。

至此,私有网络搭建完成。

标签:IPFS,ubuntu1,手动,ipfs,服务器,节点,ipfstest,搭建
From: https://www.cnblogs.com/Silverplan/p/17977306

相关文章

  • MyBatis 系列:MyBatis 源码环境搭建
    目录一、环境准备二、下载MyBatis源码和MyBatis-Parent源码三、创建空项目、导入项目四、编译mybatis-parent五、编译mybatis六、测试总结一、环境准备jdk:17maven:3.9.5二、下载MyBatis源码和MyBatis-Parent源码Mybatis:https://github.com/mybatis/mybatis-3.gitMy......
  • 【Pyside2】环境搭建
    (Pyside开发环境搭建)安装Pyside2:<fontcolor=#999AAA>pipinstall--index-url=http://download.qt.io/snapshots/ci/pyside/5.11/latest/pyside2--trusted-hostdownload.qt.io<hrstyle="border:solid;width:100px;height:1px;"color=#000000size=......
  • 使用 Docker Compose V2 快速搭建日志分析平台 ELK (Elasticsearch、Logstash 和 Kiba
    前言ELK是指Elasticsearch、Logstash和Kibana这三个开源软件的组合。Elasticsearch是一个分布式的搜索和分析引擎,用于日志的存储,搜索,分析,查询。Logstash是一个数据收集、转换和传输工具,用于收集过滤和转换数据,然后将其发送到Elasticsearch或其他目标存储中。Kiba......
  • 传奇服务器搭建
    传奇服务器搭建传奇是一款非常经典的游戏,自从它推出以来就深受玩家们的喜爱。如果你也想要在自己的服务器上搭建一个传奇,那么本文将为你提供一些有用的信息。首先,我们需要知道什么是传奇服务器。简单来说,它就是一个能够让多个玩家同时在线进行游戏的平台。而搭建这样的服务器需要一......
  • SpringBoot+dynamic-datasource实现多数据源(msyql、sqlserver、postgresql)手动切换
    场景SpringBoot+MybatisPlus+dynamic-datasources实现连接Postgresql和mysql多数据源:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/135653227上面实现通过注解和配置文件的方式去进行多数据源操作。如果业务需求,比如查询第三方接口时提供的是sqlserver的视图连......
  • 个人小型渲染农场搭建需要准备什么?
    ​渲染农场是指具备一定计算机资源平台,这类平台通常拥有庞大渲染机器,并且需要足够的资金,还要有专业人员进行维护。个人小型渲染农场的搭建,第一要点就是需要资金,这样能购买足够的硬件、渲染软件、3d建模软件、配置网络等。一、渲染农场搭建分析在搭建小型渲染农场的时候,需要明......
  • 微软AD域控自助改密系统搭建
    自助改密系统研究同事有这么一个需求,希望能够通过一个系统自助改密、以及忘记密码后可以自助重置密码。PS:收了人两瓶可乐,在不把这个系统研究出来有点过分了1.域控配置1.1系统环境信息SSP为SelfServicePassword改密系统DC为windows2016域控主机名OS版本ip地址......
  • 双脉冲仿真测试(LTspice搭建)
     1.双脉冲测试原理    很多博主已经发布了大量有关双脉冲测试的意义、双脉冲测试原理等,顾在此不在赘诉,如有需要的小伙伴可以点这里。以下重点介绍在LTspice中双脉冲电路的搭建及可能遇到的问题。2.搭建双脉冲测试               ......
  • tensorflow-GPU环境搭建
    KnockHarder的主页最近在学习AI相关知识,需要使用gpu运行tensorflow代码,选择在腾讯云上搭建环境要点总结1版本号对齐安装tensorflow与GPU支持需要对齐以下软件的版本号(按依赖顺序排列):GPU驱动版本号CUDA版本号cudnn版本号tensorflow版本号由于tensorflow......
  • 手动监听nacos配置变更
    添加基于nacos配置中心的maven依赖<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.2.7.RELEASE</version></dependency>import......