Linux环境下在ipfs上部署维基百科镜像

环境依赖,需要你有git、node、yarn,因为有几百个小文件需要操作,推荐使用 固态硬盘

在window环境下会有问题,好像是文件名路径的原因。

1.先安装ipfs

最新版下载链接:https://dist.ipfs.tech/#kubo

wget https://dist.ipfs.tech/kubo/v0.29.0/kubo_v0.29.0_linux-amd64.tar.gz
tar zxvf kubo_v0.29.0_linux-amd64.tar.gz
cd kubo
./install.sh

2.初始化和配置ipfs 因为整个维基百科数据库比较大,我们需要使用 ipfs 的一个 filestore 特性,filestore 特性需要 ipfs 目录和添加的文件挂载在一个设备下面。

先修改环境变量/etc/profile ,加入 export IPFS_PATH=/data2/ipfssource /etc/profile

screen -S ipfs
ipfs init
ipfs config --json Experimental.FilestoreEnabled true
ipfs config --json Experimental.StrategicProviding true
ipfs daemon

注意这里用了一个 screen 运行ipfs,避免网络掉线。

3.拉取数据和生成页面并添加到ipfs

git  clone https://github.com/chenjia404/distributed-wikipedia-mirror
cd distributed-wikipedia-mirror
screen -S wikipedia-mirror 
yarn
ulimit -n 65536
./mirrorzim.sh -l=zh -w=wikipedia 

如果你需要英文版本,可以把 zh 替换成 en。注意这里用了一个 screen 运行生成程序,避免网络掉线。

最后一个通宵后输出结果为:bafybeickblcnzzxp65pcmn3k7wpzt7zkzhl53behblnmrl3ybkjfq6dt5i

现在我们就可以使用各种 ipfs 网关打开这个 ipfs 版本的维基百科了,但是因为才上传,可能速度会比较慢,用的人多了速度就会更快

我绑定了这个 cid 到 zh-wikipedia.ipfsscan.io 这个域名上。

可以使用我维护的一个网关打开 https://gateway.ipfsscan.io/ipfs/bafybeickblcnzzxp65pcmn3k7wpzt7zkzhl53behblnmrl3ybkjfq6dt5i

ipfs的词条 https://gateway.ipfsscan.io/ipfs/bafybeickblcnzzxp65pcmn3k7wpzt7zkzhl53behblnmrl3ybkjfq6dt5i/wiki/星际文件系统

同时也可以通过其它网关进行访问:

https://bafybeickblcnzzxp65pcmn3k7wpzt7zkzhl53behblnmrl3ybkjfq6dt5i.eth.sucks/wiki/

https://bafybeickblcnzzxp65pcmn3k7wpzt7zkzhl53behblnmrl3ybkjfq6dt5i.ipfs2.eth.limo/wiki/

https://bafybeickblcnzzxp65pcmn3k7wpzt7zkzhl53behblnmrl3ybkjfq6dt5i.ipfs.dweb.link/wiki/

https://ipfs.io/ipfs/bafybeickblcnzzxp65pcmn3k7wpzt7zkzhl53behblnmrl3ybkjfq6dt5i/wiki/

也可以在 public-gateway-checker 里面寻找其它网关。

也可以自己使用一个域名绑定这个 cid 免费通过 cloudflare 的 web3网关免费托管网站

你也可以复制一个惰性版本到你本地 ipfs 节点 ipfs files cp /ipfs/bafybeickblcnzzxp65pcmn3k7wpzt7zkzhl53behblnmrl3ybkjfq6dt5i /zh-wikipedia-2024-04 。

如果你磁盘大于 130gb,你也可以复制完整版本的到你 ipfs 节点 ipfs refs -r /ipfs/bafybeickblcnzzxp65pcmn3k7wpzt7zkzhl53behblnmrl3ybkjfq6dt5i 。

本镜像维护周期,我一个月左右跟踪一次 kiwix 的最新的维基百科镜像,发现更新就打包,老版本的镜像维护2个版本。

其它语言的镜像,看情况有没有需求,如果有我就买一个大容量的ssd,你们也可以自己按照这个方法发布。

0%