树莓派搭建私有IPFS存储

1,975 阅读2分钟

首先要有一个树莓派、一个3.5寸硬盘、一个硬盘转接口。

然后上电开机

因为之前的树莓派已经配置了wifi,因此它开机就连在局域网里了。现在要扫描网段,找到树莓派。

ssh上去,查看磁盘。

sudo fdisk -l

sudo cfdisk /dev/sda

再看一下

然后快速格式化硬盘

mkfs.ext3 -T largefile /dev/sda1

在用户目录创建一个文件夹,并挂载硬盘。

cd ~/
mkdir hd
sudo mount /dev/sda1 hd

这样做是没有权限访问hd的。

怎么办?

先umount ~/hd 然后

sudo mount -o uid=pi,gid=pi /dev/sda1 ~/hd

现在硬盘就挂载好了。

如果挂载不好,依然使用:

sudo mount /dev/sda1 ~/hd

但是要对该挂载点设置777权限

sudo chmod 777 ~/hd

接下来启动ipfs。

下载ARM的ipfs节点端:github.com/ipfs/go-ipf…

解压缩,更名为ipfs-arm(为了区别PC端的ipfs,不改名也没问题)。

我们要建立私有ipfs。首先生成key。

go get -u github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen
ipfs-swarm-key-gen > ~/hd/swarm.key

因为swarm.key并非默认目录。因此先输入一个设置环境变量

export IPFS_PATH=~/hd

然后,初始化ipfs:

./ipfs-arm init

启动ipfs

./ipfs-arm daemon

可以看到,私有IPFS已经启动了。

现在设置跨域

另起一个终端

export IPFS_PATH=~/hd
./ipfs-arm config --json API.HTTPHeaders.Access-Control-Allow-Origin "[\"*\"]"
./ipfs-arm config --json API.HTTPHeaders.Access-Control-Allow-Credentials "[\"true\"]"
./ipfs-arm config --json API.HTTPHeaders.Access-Control-Allow-Methods "[\"PUT\", \"POST\", \"GET\"]"

为了让外网可以访问,需要设置配置文件

nano ~/hd/config

如果启动后,还不能外网访问。那么可以下载UI。

git clone https://github.com/cr4fun/ipfs-webui.git
cd ipfs-webui
npm install
npm start

然后访问 localhost:3000

配置api为树莓派的ip地址。

/ip4/192.168.137.209/tcp/5001

之后,就可以添加文件了

但目前为止,只有1个节点。可以找另一个树莓派,再设置一次。

我使用PC电脑启动一个节点。然后获得该节点的信息

ipfs id

把框选处的内容填入下面

这样,就实现了2个节点的IPFS私有存储网络。

还可以进一步删掉没用的东西

./ipfs-arm bootstrap rn --all
./ipfs-arm bootstrap add /ip4/127.0.0.1/tcp/4001/ipfs/QmSYbwKJg6CZvRmAPrQhcNAyK29g7kayA25LBcJdwdisxd
added /ip4/127.0.0.1/tcp/4001/ipfs/QmSYbwKJg6CZvRmAPrQhcNAyK29g7kayA25LBcJdwdisxd