IPFS 私网搭建
1 安装go环境
1.1 下载go安装包
打开 链接 选择并下载合适的安装包
1.2 解压安装包
将go安装包解压至 /usr/local/
目录下
tar -zxvf go1.18.2.linux-amd64.tar.gz -C /usr/local/
1.3 添加环境变量
1 在控制台键进入vim /etc/profile
2 在最后一行添加
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
3 键入 source/etc/profile
4 键入 go -version查看go的版本,控制台正常输出go版本号,则说明go安装成功
2 安装IPFS客户端
2.1 下载客户端
打开 官网链接 选择并下载合适的客户端版本
ipfs官网和客户端下载需要科学上网才可下载,可使用 百度网盘下载 ,提取码
xr7s
,目前百度网盘提供的是0.12.2版本
2.2 安装ipfs
1 解压ipfs安装包,解压到当前目录即可
2 解压后,会在当前目录生成一个 go-ipfs
的文件夹
3 cd进入 go-ipfs
文件夹
4 执行 install.sh
文件
tar -zxvf go-ipfs_v0.12.2_linux-amd64.tar.gz
cd go-ipfs
./install.sh
5 执行 ipfs help
检查ipfs安装是否成功,控制台输出ipfs相关命令,则说明ipfs安装成功
3 搭建私网
3.1 节点初始化
3.1.1 节点初始化
每个节点都要执行
键入 ipfs init
,控制台会输出节点的相关信息
信息主要包含节点的id和节点的初始化目录
用root账户登录的话,会在root目录下生成一个
.ipfs
文件夹,如果使用其他账户登录,则会在/home/
目录下生成.ipfs
文件夹
如果忘记节点id,可以通过 ipfs id
查看
3.1.2 跨域问题
每个节点都要执行
节点初始化完成后,非本地访问会产生跨域问题,分别键入以下命令解决跨域
本次搭建只是为了测试,”*” 表示允许所有域名访问,实际生产环境应该指定域名或关闭跨域
1 Linux
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT","GET","POST","OPTIONS"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers '["Authorization"]'
ipfs config --json API.HTTPHeaders.Access-Control-Expose-Headers '["Location"]'
2 Windows
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin "[\"*\"]"
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods "[\"PUT\",\"GET\",\"POST\",\"OPTIONS\"]"
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials "[\"true\"]"
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers "[\"Authorization\"]"
ipfs config --json API.HTTPHeaders.Access-Control-Expose-Headers "[\"Location\"]"
3.1.3创建共享密钥
任意一个节点执行
克隆密钥生成工具
git clone https://github.com/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
编译时如果控制台输出
go.mod file not found in current directory or any parent directory
的错误的话,只需要暂时将GO111MODULE
暂时关闭即可,键入
go env -w GO111MODULE=off
生成密钥
./ipfs-swarm-key-gen > swarm.key
密钥生成后,将密钥复制到 .ipfs
文件夹中
cp swarm.key /root/.ipfs
若忘记
.ipfs
的路径,可通过find / -name ".ipfs"
找到
3.1.4 分发密钥
将生成的密钥分发到各个节点
要确保密钥分发到每一个节点上
scp swarm.key user@ip:.ipfs_path
eg. scp swarm.key root@172.24.7.101:/root/.ipfs/
如果要发送到windows节点,windows需要打开ssh服务,
windows开启ssh服务步骤:
a. 设置–>更新和安全–>开发者选项–>开启‘开发人员模式’
b. 设置–>应用–>应用和功能–> 可选功能–>安装‘OpenSSH客户端’
c. 重启电脑
d. 管理员启动控制台–> 键入ssh
e. 管理员启动控制台–> net start sshd
3.1.5 删除默认节点
每个节点执行
删除公网节点
ipfs bootstrap rm all
3.1.6 添加节点
各个节点分别添加其他节点
ipfs bootstrap add /ip4/ip地址/tcp/4001/ipfs/另一个节点id
eg
ipfs bootstrap add /ip4/172.24.7.101/tcp/4001/ipfs/12D3KooWK1ivQRSyL3aSS6TLx4YkvB3diiiVckerUAs6MK5aA9q9
3.1.7 启动节点
每个节点执行
键入 ipfs daemon
节点即可启动
windows节点启动 ipfs daemon 可能会报 Only one usage of each socket address (protocol/network address/port) is normally permitted. 这个错误;可以通过修改注册表解决:
在注册表中找到下图的目录,然后添加红色框的四个参数和对应的值,重启电脑
3.1.8 文件上传与读取
新增一个test.txt的文件,文件内容是‘this is a test file’
在一个节点上上传一个文件
新增成功后,会返回该文件的cid
在另一个节点上键入 ipfs cat QmShXqLJmGrTgkq3BFZgvBiz1HnWtH2fGMMn8ierCvQyLL
就可以看到文件内容文章来源:https://www.toymoban.com/news/detail-824907.html
文章来源地址https://www.toymoban.com/news/detail-824907.html
到了这里,关于IPFS_私网搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!