前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IPFS 本地节点搭建(命令行)

IPFS 本地节点搭建(命令行)

作者头像
pseudoyu
发布2023-04-11 20:43:47
6480
发布2023-04-11 20:43:47
举报
文章被收录于专栏:Pseudoyu

前言

上一篇《IPFS 分布式文件存储原理》对于 IPFS 系统的设计理念、功能、工作原理及 IPNS 做了详细的介绍,那么,如何在本地搭建一个 IPFS 节点呢?

本文在macOS 11.2.3系统上搭建了一个 IPFS 节点(命令行版本),并对文件上传、下载、网络同步、pinGCIPNS等进行了实际操作,以加深对 IPFS 工作原理的理解。

代码实践

安装

代码语言:javascript
复制
wget https://dist.ipfs.io/go-ipfs/v0.8.0/go-ipfs_v0.8.0_darwin-amd64.tar.gz
tar -xvzf go-ipfs_v0.8.0_darwin-amd64.tar.gz
cd go-ipfs
./install.sh
ipfs --version

启动

代码语言:javascript
复制
# 启动节点
ipfs init

# 上传文件
ipfs add ipfs_init_readme.png

# 上传文件并且只输出哈希值
ipfs add -q ipfs_init_readme.png

# 上传目录
ipfs add -r [Dir]

# 查看文件
ipfs cat /ipfs/QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/readme
ipfs cat /ipfs/QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/quick-start

# 查看自己上传的文件
ipfs cat QmaP3QS6ZfBoEaUJZ3ZfRKoBm3GGuhQSnUWtkVCNc8ZLTj

# 查看图片并输出到文件
ipfs cat QmfViXYw7GA296brLwid255ivDp1kmTiXJw1kmZVsg7DFH > ipfsTest.png

# 下载文件
ipfs get QmfViXYw7GA296brLwid255ivDp1kmTiXJw1kmZVsg7DFH -o ipfsTest.png

# 压缩并下载文件
ipfs get QmfViXYw7GA296brLwid255ivDp1kmTiXJw1kmZVsg7DFH -Cao ipfsTest.png
ipfs_init_readme
ipfs_init_readme

开启/加入服务

代码语言:javascript
复制
# 查看当前节点信息
ipfs id

# 查看IPFS配置信息
ipfs config show

# 开启节点服务器
ipfs daemon

API 服务,默认在 5001 端口,可以通过 http://localhost:5001/webui 进行访问

ipfs_webui
ipfs_webui

网关服务,默认在 8080 端口,在浏览器里访问文件需要借助于 IPFS 提供的网关服务,由浏览器先访问到网关,网关去获取 IPFS 网络杀过了的文件。通过 http://localhost:8080/ipfs/[File Hash] 来访问上传到 IPFS 的文件

文件操作

代码语言:javascript
复制
# 列出文件
ipfs files ls

# 创建目录
ipfs files mkdir

# 删除文件
ipfs files rm

# 拷贝文件
ipfs files cp [File Hash] /[Dest Dir]

# 移动文件
ipfs files mv [File Hash] /[Dest Dir]

# 状态
ipfs files stat

# 读取
ipfs files read

使用 IPNS 来解决文件更新问题

代码语言:javascript
复制
# 使用IPNS发布内容以自动更新
ipfs name publish [File Hash]

# 查询节点id指向的Hash
ipfs name resolve

# 有多个站点需要更新,可以新产生一个秘钥对,使用新的key发布
ipfs key gen --type=rsa --size=2048 mykey
ipfs name publish --key=mykey  [File Hash]

Pinning

当我们向 IPFS 网络请求文件时,IPFS 会把内容先同步的本地提供服务,使用 Cache 机制处理文件以防止存储空间不断增长,如果文件一段时间未被使用则会被“回收”,Pining 的作用就是确保文件在本地不被“回收”。

代码语言:javascript
复制
# pin一个文件
ipfs pin add [File Hash]

# 查询某一个Hash是否被pin
ipfs pin ls [File Hash]

# 删除pin的状态
ipfs pin rm -r [File Hash]

# GC操作
ipfs repo gc

总结

本文主要在本地部署了 IPFS 文件系统并对基本操作进行了尝试,基于macOS 11.2.3go-ipfs_v0.8.0_darwin-amd64版本,不同系统操作可能会因版本或依赖问题不一样,如有错漏,欢迎交流指正。

参考资料

  1. IPFS 官网
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 代码实践
    • 安装
      • 启动
        • 开启/加入服务
          • 文件操作
            • 使用 IPNS 来解决文件更新问题
              • Pinning
              • 总结
              • 参考资料
              相关产品与服务
              文件存储
              文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档