IPFS搭建私有网络

2023-11-02

(87条消息) IPFS -- 节点搭建_躺在家里不干活的博客-CSDN博客_ipfs节点搭建

一、安装go-ipfs

1、下载

下载地址https://gitee.com/wang_ya_nan/go-ipfs/releases

wget https://gitee.com/wang_ya_nan/go-ipfs/releases/download/v0.7.0/go-ipfs_v0.7.0_linux-amd64.t
ar.gz

下载成功

 2、安装

## 解压
tar -xvzf go-ipfs_v0.7.0_linux-amd64.tar.gz

## 执行安装
sudo ./go-ipfs/install.sh

## 查看版本
ipfs --version

安装成功

 3、初始化仓库

ipfs init

初始化成功!

 4、启动一个守护进程

## 启动一个守护进程
$ ipfs daemon

启动成功!

 5、通过互联网访问

经过上一步,我们已经可以在本地机器上通过API的方式上传文件了,但是如果要通过互联网访问,还需要配置API的监听端口
 

配置API监听端口
## 0.0.0.0表示允许任何的IP访问
ipfs config --json Addresses.API '"/ip4/0.0.0.0/tcp/5001"'

## 配置网关的监听地址
ipfs config --json Addresses.Gateway '"/ip4/0.0.0.0/tcp/8080"'

##按需解决跨域问题
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
## 除了这种方式,也可以通过配置CROS的方式来解决跨域问题
  • 检查端口是否允许访问
    ⚠️⚠️ 如果使用的是云服务器,一般都会有安全组,要在安全组中打开相应的端口⚠️⚠️
  • 重新启动
    
    ## 启动一个守护进程
    $ ipfs daemon
    
    

二、搭建IPFS私有网络

(87条消息) 搭建IPFS私有网络_躺在家里不干活的博客-CSDN博客_ipfs搭建


IPFS私有网络
星际文件系统(InterPlanetary File System,缩写IPFS)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。它是一个开放源代码项目,自2014年开始由Protocol Labs在开源社区的帮助下发展。其最初由Juan Benet设计。

为什么需要私有网络
IPFS是一个开放的网络,而每个人都会有一些私有的的内容需要存储或者进一步将这些内容在自己设备上或小范围内进行共享,又或是想用做家庭的数据存储中心,针对这些场景,搭建一个私有网络用于数据存储和数据传输都是非常有用的。
 


1、生成私有服务使用的密钥


IPFS私有服务其实就是指的一群IPFS节点使用的是同一个key。

修改环境变量IPFS_PATH,安装IPFS的时候,IPFS_PATH默认的路径是~/.ipfs/,IPFS服务各种配置,数据都会存储到这个路径下。我们需要把IPFS_PATH改成我们自己私有网络的路径。比如export IPFS_PATH='~/.private_ipfs'

2、生产IPFS私有网络使用的key——swarm.key

## 下载并安装ipfs-swarm-key-gen
# sparrow @ sparrow-power in ~ [15:24:41] 
$ go get github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen
## 或者使用go get获取ipfs-swarm-key-gen没反应
## 此时修改一下环境变量启动GOPROXY,再用go get -v即可,-v参数能够显示go get执行的进度

# Enable the go modules feature
export GO111MODULE=on
# Set the GOPROXY environment variable
export GOPROXY=https://goproxy.io


##注意!!!这里要到ipfs-swarm-key-gen 目录执行
## 我的路径是 ~/go/pkg/mod/github.com/!kubuxu/go-ipfs-swarm-key-gen@v0.0.0-20170218193930-0ee739ec6d32/ipfs-swarm-key-gen

## 生产swarm.key到.private_ipfs/
# sparrow @ sparrow-power in ~ [15:24:41] 
$ ipfs-swarm-key-gen > ~/.private_ipfs/swarm.key


###################################################################################
## 上面不成功是因为下载的文件没有编译
## 所以直接用下面的方法,注意下载路径

# 下载密钥工具
git clone https://github.com/Kubuxu/go-ipfs-swarm-key-gen.git

# 编译go-ipfs-swarm-key-gen,当前目录会成一个ipfs-swarm-key-gen的可执行二进制文件
go build -o ipfs-swarm-key-gen go-ipfs-swarm-key-gen/ipfs-swarm-key-gen/main.go

# 生成密钥
./ipfs-swarm-key-gen > ~/.ipfs/swarm.key

# 分发密钥
scp ~/.ipfs/swarm.key root@*.*.*.*:~/.ipfs/
复制代码

3、执行ipfs init,再次初始化节点

我已经初始化完成

4、 修改config文件,让节点可以相应其它节点的请求 

更多修改请参考

# 这句是查看路由配置的,需要使用vim打开config文件将dth修改为dthserver,详细的在上面链接可以看什么意思
$ cat ~/.private_ipfs/config | grep dht


修改后执行结果

 5、删除初始节点,增加私有网络中的节点

我们做的是私有网络,这些初始节点是实验室在维护,是公共网络的IPFS节点,所以直接删除就行了。另一方面我们要将我们的私有网络的其它节点添加到bootstrap列表中,这样是为了节点之间的发现,强烈建议能用一个固定的公网IP做一个为私有网络的一个节点,保证整个网络的稳定性,可用性。

关于IP地址:IP地址是指互联网协议地址,是IPAddress的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。可以简单的理解为,一个能够上网的设备,就有一个IP地址。这个IP地址一般都是流动的,即:同一个IP地址,某一时段是A用户使用,其他时段是B用户使用。固定IP地址的意思是:某用户固定不变的IP地址

## 这里删除启动时会连接的默认节点
# sparrow @ sparrow-power in ~/tmp/share [17:39:28] C:130
$ ipfs bootstrap rm --all

# xxxx.xxxx.xxxx.xxxx填IP
$ ipfs bootstrap add /ip4/192.168.1.87/tcp/4001/p2p/12D3KooWSPP48SCHdrhC34cmjJL5p6Kp1Ay8yv8CNd6gN4x5gm8k

执行结果:

added /ip4/xxxx.xxxx.xxxx.xxxx/tcp/4001/p2p/12D3KooWSPP48SCHdrhC34cmjJL5p6Kp1Ay8yv8CNd6gN4x5gm8k

删除默认节点 

 将我们的私有网络的其它节点添加到bootstrap列表中

6、启动节点,检查节点的连接情况

## 启动节点
ipfs daemon

启动时可能报错,关闭Ubuntu或者多试几次。

##
ipfs swarm peers
/ip4/192.168.1.87/tcp/4001/p2p/12D3KooWSPP48SCHdrhC34cmjJL5p6Kp1Ay8yv8CNd6gN4x5gm8k

 

至此,IPFS私有网络的搭建介绍完毕

当前博客内容的IPFS地址,可使用任意节点访问

官方节点:https://ipfs.io/ipfs/QmVmBtJvhJ3dh7j6LpKxFZoJo4bCh4M3Vn2MennEZz6cnC

 参考:

(87条消息) 搭建IPFS私有网络_躺在家里不干活的博客-CSDN博客_ipfs搭建https://blog.csdn.net/weixin_29491885/article/details/113760869

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IPFS搭建私有网络 的相关文章

  • Gavin Wood Web3峰会最新演讲:波卡不是智能合约平台,而是平台的平台(全文)...

    在波卡上 每个平台都在用高性能 高效率和最优的方式做着自己擅长的事 而不必让它们的用户用底层平台的货币进行支付 从而将可定制性和灵活性提高了一个台阶 本文谨代表作者个人观点 不代表火星财经立场 该内容旨在传递更多市场信息 不构成任何投资建议
  • 以太坊系列之十五: 以太坊数据库

    以太坊数据库中都存了什么 以太坊使用的数据库是一个NOSQL数据库 是谷歌提供的开源数据leveldb 这里尝试通过分析以太坊数据库存储了什么来分析以太坊可能为我们提供哪些关于区块链的API 存储内容 NOSQL是一个key value数据
  • 浅析『链上数据分析』 : 区块链 + 数据分析

    什么是链上数据分析 01 区块链 02 链上数据 03 为什么要分析链上数据 04 数据分析思维 05 数据分析技能 06 数据分析工具 07 业务逻辑理解 什么是链上数据分析 链上数据分析 顾名思义 就是对区块链上的数据进行分析 其实就是
  • 课程笔记3

    一 以太坊 比特币被称为区块链1 0 以太坊被称为区块链2 0 以太坊的符号是ETH 以太币的符号是Ether 单位是Wei 比特币的符号是BTC 单位是Satoshi 以太坊做出的改进 在以太坊中出块时间减少到十几秒 比特币的mining
  • 区块链学习笔记(六)——区块链的分类

    文章目录 一 强调 二 公有链 联盟链 私有链 1 公有链 2 联盟链 3 私有链 总结 一 强调 先做一下重复强调 区块链技术是集分布式存储 点对点传输 共识机制 加密算法 数据区块等概念于一体的新兴技术集合 二 公有链 联盟链 私有链
  • 初识区块链

    这篇博客主要从社会和经济层面来直白的向大家讲述区块链是什么 比特币是什么 分享的内容仅限于自己的理解 里面会存在本人的观点 但是希望读者能有自己的独立看法 审慎的阅读本文 甚至能考虑到我的认知不足导致的偏差 不为任何投资电子货币者提供意见
  • 区块链数字存证平台有哪些功能模块

    区块链数字存证平台通常包括以下功能模块 数字存证 将数字文件的哈希值存储到区块链上 确保文件的完整性和不可篡改性 时间戳 记录数字文件的创建时间和存证时间 确保存证的时效性和证据的可信度 鉴定证书 提供数字文件的鉴定证书 证明文件的真实性和
  • 区块链+物联网 BOT

    不可否认 我们的一只脚已经迈入万物智联时代 但另一只脚迈入还存在一定的阻碍 区块链技术的出现将会促进这一进程的发展 智能音响 主人你好 我是小Q 现在是早上08点29分 上班时间要到咯 智能门锁 主人你摔疼我了 你总是这样匆忙 下次赶紧麻溜
  • 就现在!为元宇宙和Web3对互联网的改造做准备!

    欢迎来到Hubbleverse 关注我们 关注宇宙新鲜事 预计阅读时长 8分钟 本文仅代表作者个人观点 不代表平台意见 不构成投资建议 如今 互联网是各种不同的网站 应用程序和平台的集合 由于彼此分离 它们缺乏互操作性和数据可移植性 因此
  • 圆石说│彭一鸣:运用区块链技术赋能实体旅游产业;微软开放6万项专利包括一个开源区块链项目……

    智联招聘 区块链岗位需求主要集中在一线和新一线城市 智联招聘报告显示 从目前区块链职位的城市分布来看 该领域的岗位需求主要集中在一线和新一线城市中 其中 北京 上海和深圳位于第一梯队 职位占比分别达到24 20 和10 杭州 广州和成都紧随
  • 自己动手部署以太坊联盟链

    一个区块链学习项目 GitHub https github com xianfeng92 Love Ethereum 假设已经在Ubunbu 14 04 LTS上安装好了以太坊客户端Geth 使用Geth部署以太坊联盟链 以太坊Geth客户
  • 【区块链与密码学】第2-3讲:区块链基础技术大剖析之哈希函数

    本课堂内容全部选编自PlatON首席密码学家 武汉大学国家网络安全学院教授 博士生导师何德彪教授的 区块链与密码学 授课讲义 教材及互联网 版权归属其原作者所有 如有侵权请立即与我们联系 我们将及时处理 2 4 1 哈希函数 区块链作为一个
  • 新加坡社区领袖卓顺发的荣誉与大爱精神

    2023年11月24日 善济医社义务执行主席卓顺发太平绅士JP BBM L PVPA受邀出席内政部主办的答谢活动2023 主宾为内政部长兼律政部长尚穆根先生 Mr K Shanmugam 2018年起 卓顺发受委为太平绅士后 应内政部邀请
  • 工业互联网会是制造业数字化发展的未来吗?

    新工业革命正逐步形成 你认为工业互联网会是制造业数字化发展的未来吗 从这几年的工业互联网发展政策措施 就能看到答案 早在近三年前 工业互联网创新发展行动计划 2021 2023年 就提出了五方面 11项重点行动和10大重点工程 着力解决工业
  • Solidity之旅(十)OOP-抽象合约

    抽象合约 abstractcontract 前文在讲合约继承的基类构造函数的参数时 有提到抽象合约 也就是说 如果派生合约未能给其继承的基合约指定构造函数参数时 那么 该派生合约必须声明为抽象合约 abstractcontract 我们知道
  • 股指期权开通要什么条件?

    股指期权是一种金融衍生工具 它赋予持有者在未来某一特定日期按照约定的价格买入或卖出标的资产的权利 对于投资者来说 开通股指期权账户需要满足一定的条件 那么股指期权开通要什么条件 本文来自 财顺期权 开通股指期权账户需要的条件是 申请前20个
  • 一文了解Substrate

    Substrate是用于构建特定类型区块链的工具箱 它本身并不是一个区块链 而是开发者用来创建独特而强大的区块链的一套工具 Substrate允许开发者可以自己创建所需所想功能的区块链 无需受限于现有的设计 Substrate使用FRAME
  • NFTScan | 01.01~01.07 NFT 市场热点汇总

    欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总 周期 2024 01 01 2024 01 07 NFT Hot News 01 空投 Mint Blockchain 将于 2024 年 1 月 10 号
  • 英国金融时报关注TRX登陆Mercado Bitcoin交易所:波场TRON强化南美洲布局,国际化进程持续加速

    近日 波场TRON网络原生代币TRX正式上线巴西最大的合规加密交易所Mercado Bitcoin 英国金融时报 Decrypt Blockworks等财经及加密行业权威媒体对该话题进行了报道 表示此次合作是波场TRON全球业务增长的有力证
  • 你的服务器还安全吗?用户数据是否面临泄露风险?

    一系列严重的网络安全事件引起了广泛关注 多家知名公司的服务器遭到黑客挟持 用户的个人数据和敏感信息面临泄露的风险 这些事件揭示了网络安全的脆弱性和黑客攻击的威胁性 提醒着企业和个人加强对网络安全的重视 一 入侵案例 1 1 蔚来数据泄露 1

随机推荐

  • 寻找环形链表的入口点

    如果链表中有某个节点 可以通过连续跟踪 next 指针再次到达 则链表中存在环 为了表示给定链表中的环 我们使用整数来表示链表尾连接到链表中的位置 索引从 0 开始 先定义一个节点 struct ListNode int val struc
  • 通讯协议与即时通讯

    转自 https www jianshu com p ca4aeabf55f6 推送服务一般有三种实现方式 1 轮询方式 客户端不断的查询服务器 检索新内容 这种方式的缺点十分明显 如果轮询频率过快 会大量消耗网络带宽和电池 2 长连接方式
  • FPGA学习---3.IP核使用,Counter IP核

    三 LPM counter IP核使用 小结 counter IP核 cin进位输入 clock时钟信号 cout进位输出 q当前计数值 FPGA设计方式 调用IP核 路径放到prj的ip文件夹下 名字叫counter就行 几位的计数器 计
  • Ubuntu 中vi下方向键变成ABCD, backspace无法删除字符的解决办法

    转载自 https blog csdn net sunzz pku article details 40581881 在linux中安装完VIM后 发现在insert模式下 按下四个方向键在屏幕中会输出ABCD这样的字符 并且Backspa
  • Java学习笔记 --- IDEA

    一 IDEA介绍 1 IDEA全称IntelliJ IDEA 2 在业界被公认为最好的Java开发工具 3 IDEA是JetBrains公司的产品 总部位于捷克的首都布拉格 4 除了支持Java开发 还支持HTML CSS PHP MySQ
  • Sonar 配置代码扫描规则 与 质量配置,设置各个语言默认的扫描规则

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 配置代码扫描规则 质量配置 设置各个语言默认的扫描规则 代码规则设置 如果认为有些扫描规则太严格了 可以把它 挂起 以后再构建的代码扫描项目时就不会再使用本规则 例如挂起J
  • electron-14版后remote废除

    文章目录 前言 安装与配置 前言 Electron最近的版本变迁比较频繁 在升级到14 0 0版本后 废除了很多旧有的API 而其中最主要的就是remote模块从旧有的模块里抽出 变成了一个需要新安装的模块 electronic remot
  • Android升级到7.0使得webview加载页面为空白页

    前段时间 公司一哥们把他的手机拿给我看 问到公司的软件加载进去是空白页 等了好久也是空白 我也为是网络出现了问题 排查没问题啊 看看是不是缓存问题 又是清缓存 又是卸载重装 结果还是空白页面 想了一下是不是系统问题 问他有没有更新过系统 结
  • Android:RecyclerView 的使用,有这一篇就够了

    谨以文章记录学习历程 如有错误还请指明 RecyclerView 简介 首先 可以理解 RecyclerView 是 ListView 的升级版 更加灵活 同时由于封装了 ListView 的部分实现 导致其使用更简单 结构更清晰 从名字
  • 金融数据时间序列分析——模型准确率过高怎么办

    多少年后 小f想起了自己还是刚刚出道的小萌新时候犯的一个错误 当时模型的准确率贼高 高的离谱 就像下面这种情况 precision recall f1 score support 1 1 1 1 1934 0 1 1 1 535 1 1 1
  • LoadStdProfileSettings -- 加载MRU

    如何为自己的应用程序加入最近文件列表功能呢 最简单的方法就是在你新建工程的时候选择包含最近文件列表功能 也就是在 MFC AppWizard 的第 4 步的时候使 How many files would you like on your
  • 06.RabbitMQ重试机制

    RabbitMQ重试机制 补偿机制 在消费中如果发生异常了 RabbitMQ会使用补偿机制 重试 如果消息没消费成功 会一直重复发送 直到消费成功为止 我们以之前的P2P例子为例 Component RabbitListener queue
  • antd中Form.Item无法获取到对应的表单值解决

    antd中Form Item无法获取到对应的表单值解决 前言 问题代码示例 解决 前言 本文章讲的解决方案只是其中一种 无法获得对应表单的原因有很多 只能在今后的道路上慢慢采坑然后避免 问题代码示例 import React Compone
  • Retrofit中的注解原理项目实战

    今天我们来聊聊这个最近很火的网络请求库retrofit 在此基础上会延伸出一些列的知识点 现在关于retrofit的文章很多 我之所以写这篇文章的原因在于 8月份负责假设新客户端底层的过程中首次尝试使用该库 并取得非常不错的效果 不到20天
  • 计算机视觉最新技术:YOLOv8等前沿算法推荐!

    计算机视觉最新技术 YOLOv8等前沿算法推荐 计算机视觉是人工智能领域中的一个重要方向 它涉及到图像 视频等多媒体形式的信息处理 而随着人工智能技术的不断发展 计算机视觉领域也不断涌现出新的算法和模型 其中 YOLOv8等一系列算法被认为
  • 初识springcloud(微服务)

    1 微服务的定义 microservice 1 多个微服务开发的依然是一个完整的应用 2 微服务都会独立运行在一个独立的进程里面 3 微服务之间通常会采用轻量级的通信机制来进行通信 比如http https socket netty dub
  • python 视频流分析,通过ffmpeg管道将视频输出流到Python脚本中进行分析。如何导入python?...

    我正在与其他库一起编写一个脚本 它需要RGB24格式的帧或图像 为了提高兼容性 我决定允许外部管道将帧流式传输到这个程序中 每次在代码中使用更改设备或源代码可能会变得乏味 使用解析器简单地指定源代码会导致语法错误 示例 ffmpeg f d
  • python如何更新包

    python如何更新包 更多python视频教程请到菜鸟教程https www piaodoo com Python安装新包 pip是很好用的安装工具 pip list 可以查询所有已安装的包和版本 怎么知道本地安装包的版本是否有可以更新的
  • Python模拟智能开关设备MQTT接入阿里云物联网平台 - PyCharm paho.mqtt

    概要 Python 使用 paho mqtt 库 利用阿里云物联网平台的设备证书 productKey deviceName deviceSecret 自动合成 userName passWord 以MQTT通信协议接入阿里云物联网平台 并
  • IPFS搭建私有网络

    87条消息 IPFS 节点搭建 躺在家里不干活的博客 CSDN博客 ipfs节点搭建 一 安装go ipfs 1 下载 下载地址https gitee com wang ya nan go ipfs releases wget https