Linux安装IPFS
创始人
2024-03-27 20:49:11
0

Linux安装IPFS

  • 一、需要golang环境
    • 下载安装
    • 创建工作目录
    • 配置环境变量 /etc/profile
  • 二、IPFS安装部署
    • 安装
    • 初始化
    • 修改各个节点的配置文件
    • 启动节点
    • 测试

一、需要golang环境

下载安装

$ cd /opt
$ wget https://golang.google.cn/dl/go1.17.1.linux-amd64.tar.gz
$ tar -xf go1.17.1.linux-amd64.tar.gz

创建工作目录

$ mkdir -p /data/gopath && cd /data/gopath
$ mkdir -p src pkg bin

配置环境变量 /etc/profile

export GOROOT=/opt/go
export GOPATH=/data/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

二、IPFS安装部署

安装

官网https://docs.ipfs.io/install/recent-releases/,慢的话去https://github.com/ipfs/go-ipfs/releases下载

# 下载(慢的话参考上面的github地址下载)
$ cd /opt
$ wget https://download.fastgit.org/ipfs/go-ipfs/releases/download/v0.9.1/go-ipfs_v0.9.1_linux-amd64.tar.gz
# 解压
$ tar -xf go-ipfs_v0.9.1_linux-amd64.tar.gz
# 安装
$ cd go-ipfs/
$ ./install.sh 

输出一下代表成功

[root@iZbp16mqbjhbx5mcbgggllZ go-ipfs]# ./install.sh 
Moved ./ipfs to /usr/local/bin
[root@iZbp16mqbjhbx5mcbgggllZ go-ipfs]# ipfs version
ipfs version 0.9.1

初始化

创建节点目录(单机多节点)

mkdir /data/ipfs_nodes/ipfs_1
mkdir /data/ipfs_nodes/ipfs_2
mkdir /data/ipfs_nodes/ipfs_3
mkdir /data/ipfs_nodes/key        #集群私钥目录,用来存放集群的私钥

初始化

IPFS_PATH=/data/ipfs_nodes/ipfs_1 ipfs init
IPFS_PATH=/data/ipfs_nodes/ipfs_2 ipfs init
IPFS_PATH=/data/ipfs_nodes/ipfs_3 ipfs init

输出以下代表成功

generating ED25519 keypair...done
peer identity: 12D3KooW9uugER1oBn33JVVFdQFEg8UJ5c9tizTYb4SWGxBgUfDt
initializing IPFS node at /root/.ipfs/
to get started, enter:ipfs cat /ipfs/QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc/readme

该目录下:

  • blocks:文件块内容
  • conifg:配置文件
  • datastore_spec:存储本地数据
  • keystore:存储公私钥对
  • version:版本信息

删除引导程序节点的默认条目。因为是部署私有网络,所以需要移除原有的引导程序节点,如果不删除,启动后就会同步IPFS主网的数据。

IPFS_PATH=/data/ipfs_nodes/ipfs_1/ ipfs bootstrap rm --all
IPFS_PATH=/data/ipfs_nodes/ipfs_2/ ipfs bootstrap rm --all
IPFS_PATH=/data/ipfs_nodes/ipfs_3/ ipfs bootstrap rm --all

下载密钥生成工具

cd /data/ipfs_nodes
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
./ipfs-swarm-key-gen > swarm.key

复制密钥到各个节点

cp /data/ipfs_nodes/swarm.key /data/ipfs_nodes/ipfs_1
cp /data/ipfs_nodes/swarm.key /data/ipfs_nodes/ipfs_2
cp /data/ipfs_nodes/swarm.key /data/ipfs_nodes/ipfs_3

修改各个节点的配置文件

cd /data/ipfs_nodes/ipfs_1
vim config
 "API": {"HTTPHeaders": {"Access-Control-Allow-Methods": [	# 配置跨域设置,供前端调用"PUT","GET","POST"],"Access-Control-Allow-Origin": ["*"]}}
"Addresses": {"API": "/ip4/0.0.0.0/tcp/15001",	# 这里的ip和端口,0.0.0.0对外开放,不能配本机公网ip,会报错"Announce": [],"Gateway": "/ip4/127.0.0.1/tcp/18081", # 这里的ip和端口"NoAnnounce": [],"Swarm": ["/ip4/0.0.0.0/tcp/14001", # 这里的ip和端口"/ip6/::/tcp/14001", # 这里的ip和端口"/ip4/0.0.0.0/udp/14001/quic", # 这里的ip和端口"/ip6/::/udp/14001/quic" # 这里的ip和端口]}

启动节点

启动第一个节点

export LIBP2P_FORCE_PENT=1|IPFS_PATH=/data/ipfs_nodes/ipfs_1/ ipfs daemon &# export LIBP2P_FORCE_PNET=1表示您将节点强制为私有
# & 是表示后台运行

查看第一个节点的peer id

IPFS_PATH=/data/ipfs_nodes/ipfs_1/ ipfs id

第一个节点之后的节点,启动前都要添加引导程序节点,与第一个节点的id建立起联系

IPFS_PATH=/data/ipfs_nodes/ipfs_2 ipfs bootstrap add /ip4/127.0.0.1/tcp/14001/ipfs/12D3KooWKUVFMHN7k7H98byTG3bpwTx646JkjeiMmPMipyDjs532
IPFS_PATH=/data/ipfs_nodes/ipfs_3 ipfs bootstrap add /ip4/127.0.0.1/tcp/14001/ipfs/12D3KooWKUVFMHN7k7H98byTG3bpwTx646JkjeiMmPMipyDjs532export LIBP2P_FORCE_PENT=1|IPFS_PATH=/data/ipfs_nodes/ipfs_2/ ipfs daemon &
export LIBP2P_FORCE_PENT=1|IPFS_PATH=/data/ipfs_nodes/ipfs_3/ ipfs daemon &

查看启动情况

ps -ef | grep ipfs
root     20530 20102  0 12:01 pts/0    00:00:19 ipfs daemon
root     20710 20102  0 14:52 pts/0    00:00:00 ipfs daemon
root     20720 20102  0 14:52 pts/0    00:00:00 ipfs daemon
root     20743 20102  0 14:55 pts/0    00:00:00 grep --color=auto ipfs

测试

通过节点一上传一个txt文件

[root@iZbp16mqbjhbx5mcbgggllZ data]# export LIBP2P_FORCE_PENT=1|IPFS_PATH=/data/ipfs_nodes/ipfs_1/ ipfs add t.txt
added Qmd5nCsoTpdxCFncQ3L1VSDdt4pgaJoCKPWF8zGjMUWegE t.txt7 B / 7 B [=================================================================================================================================================================================================================] 100.00%

通过节点二获取文件

[root@iZbp16mqbjhbx5mcbgggllZ data]# export LIBP2P_FORCE_PENT=1|IPFS_PATH=/data/ipfs_nodes/ipfs_1/ ipfs cat Qmd5nCsoTpdxCFncQ3L1VSDdt4pgaJoCKPWF8zGjMUWegE
您好

ipfs命令手册参考http://cw.hubwiz.com/card/c/ipfs/1/1/1/
ipfs原理参考https://www.pseudoyu.com/zh/2021/03/25/blockchain_ipfs_structure/

相关内容

热门资讯

受关税政策影响,沃尔玛将上调部... 美国零售巨头沃尔玛公司高管15日表示,受美国关税政策影响,该公司将于本月晚些时候开始上调部分商品在美...
国话新创话剧《燕食记》将寻味岭... 来源:中国新闻网 中新网北京5月16日电 (记者 应妮)炉灶之间,煎炒烹炸,翻炒的是食材,也是岁月。...
招商证劵国际:上调吉利汽车目标... .ct_hqimg {margin: 10px 0;} .hqimg_wrapper {text-a...
捷星航空决定退出美国市场 转自:中国民航网中国民航网 通讯员王英斌 报道:据外媒报道,澳洲航空旗下的低成本航空公司捷星航空近日...
俄乌将开启和平谈判,美国为会谈... 俄罗斯、乌克兰代表定于16日在土耳其伊斯坦布尔举行和平谈判。土耳其外交部发言人15日说,俄乌双方届时...
长城证券-锦浪科技-30076... (转自:研报虎)  事件:2025年4月29日,公司发布2024年年报与2025年一季报。2024年...
泰国橡胶管理局推进胶农扶持措施...   泰国橡胶管理局(RAOT)正加速推进胶农扶持措施的实施,以应对橡胶价格波动,旨在推动橡胶价格回稳...
杭州江城骨科医院靠谱吗?资质齐...   在众多求医问药的患者心中,选择一家既正规又专业的医疗机构至关重要。杭州市的江城骨科医院医疗资质、...
注意防范!华北部分地区将有冰雹... 来源:新华社 中央气象台16日发布强对流天气蓝色预警,预计16日8时至17日8时,内蒙古中部、山西北...
中办国办发布关于持续推进城市更... 格隆汇5月16日|中办国办5月15日印发《关于持续推进城市更新行动的意见》(以下简称《意见》),其中...
威海广泰(002111.SZ)... 格隆汇5月16日丨威海广泰(002111.SZ)在互动平台表示,公司一款无人驾驶智能化消防机器人,正...
“让阿根廷再次伟大” ,米莱大... 中青报·中青网记者 王梓当地时间5月15日,阿根廷总统米莱签署了一项行政令,旨在限制移民进入这个南美...
华宝新能跌1.00%,成交额6... 5月16日,华宝新能跌1.00%,成交额6642.93万元,换手率2.66%,总市值89.86亿元。...
高新波任西安电子科技大学校长 5月16日,教育部党组在西安电子科技大学宣布了有关任免决定,高新波同志任西安电子科技大学校长、党委副...
中方是否计划解除或调整稀土出口... 转自:澎湃新闻5月16日,外交部发言人林剑主持例行记者会。路透社记者提问,美国贸易代表格里尔本周告诉...
润贝航科涨1.70%,成交额3... 5月16日,润贝航科涨1.70%,成交额3.86亿元,换手率29.95%,总市值39.54亿元。异动...
智通星耀夏季联合策略会:国华(... 在科技浪潮奔涌向前的时代,人工智能与机器人技术正以前所未有的速度重塑世界,产业投资版图也随之焕新。为...
又一家“A+H”医药巨头或诞生... 5月15日,创新药龙头企业恒瑞医药(600276.SH)发布公告称,公司按照有关规定在香港联交所网站...
英德两国将联合研发射程2000... 转自:北京日报客户端据路透社报道,英国政府当地时间15日表示,在英国和德国正加强防务合作之际,两国将...
王府井前门簋街隆福寺崇文门五大... 转自:北京时间 #北京东城发放近1000万元汽车消费券#【#王府井前门簋街隆福寺崇文门五大商圈...