IPFS – 节点搭建
IPFS
是一个内容分发网络,整个网络由成千上万上完个节点组成,只要一台设备上运行IPFS
服务,那么就可以说这台设备就是一个节点。
与传统Web网络的区别
- 去中心化:
IPFS
的去中心化体现在,对同一个资源(文件,视频等)的访问,并不是去某一个固定节点访问,而是整个网络中会有很多节点都会建立这个资源的副本(访问量越多的资源,副本就会越多),只要网络中有一个副本存在,资源就能够访问到。 - 节点发现:和传统的网络服务不同,节点之间能够自动发现(类似于皮吐皮)
搭建一个节点(以Linux为例)
- 安装go-ipfs
- 下载地址
- 安装
## 解压
tar -xvzf go-ipfs_v0.7.0_linux-amd64.tar.gz
## 执行安卓
sudo ./go-ipfs/install.sh
## 查看版本
ipfs --version
- 初始化仓库
$ ipfs init
initializing IPFS node at /Users/sparrow/.ipfs
generating 2048-bit RSA keypair...done
peer identity: QmZaQ792nv3MhuuboygNPqTttBNsMGJMARvLnLMK1vMpF3
to get started, enter:
ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
## 启动一个守护进程
$ ipfs daemon
Initializing daemon...
go-ipfs version: 0.7.0
Repo version: 7
System version: amd64/darwin
Golang version: go1.12.7
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm announcing /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
WebUI: http://127.0.0.1:5001/webui
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready
- 通过互联网访问
经过上一步,我们已经可以在本地机器上通过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的方式来解决跨域问题
- 检查端口是否允许访问
⚠️⚠️ 如果使用的是云服务器,一般都会有安全组,要在安全组中打开相应的端口⚠️⚠️ - 重新启动
Initializing daemon...
go-ipfs version: 0.4.22-
Repo version: 7
System version: amd64/darwin
Golang version: go1.12.7
Swarm listening on /ip4/100.100.2.198/tcp/4001
Swarm announcing /ip6/::1/tcp/4001
API server listening on /ip4/0.0.0.0/tcp/5001
WebUI: http://0.0.0.0:5001/webui
Gateway (readonly) server listening on /ip4/0.0.0.0/tcp/8080
Daemon is ready
如何从浏览器上传/访问文件
https://blog.csdn.net/weixin_29491885/article/details/109390496