好好的世界人权日,活活被搞成了世界神拳日。
在微信转了骆传道的一篇文章,并表示转发不代表同意;接着转发自己的文章,当然没得二话,转发表示完全同意。
于是,有一位从未谋面的朋友突然联系我,要求聊一下这个问题。我说微信不聊天,他建议用signal。我说好的,他过了一会儿说signal升级了,上不去了。所以我叫他给我邮箱,下载了一份android的最新apk发给他。这样过了几个小时,终于可以聊天了。
早上一边和这位从未谋面的朋友聊着最近大热的政教关系问题,一边随手上传周日的讲道。过了一阵,平常使用的podcast网站无法上传,几次失败之后,我也就放弃了。
决定还是老老实实的去中心化吧,Podcast也可以不用的。于是转而在自己的云服务器上建了一个ipfs节点。
所谓ipfs,全称叫做“inter planetary file system”,是一种完全去中心化的分布式文件系统。文件在不同的节点上分布存储,以内容为索引,理论上可以永不消失,也永不受任何中心化的控制。
我从前用过一段时间dsound.audio,就是采用steemit做区块链数据库,ipfs作为文件存储系统的音频应用。当时试用了一下,效果不是太好,因为没有太明白ipfs的作用,上传了文件,过了一阵子就无法访问了,不知道是什么缘故。
查询了一下文档,发现ipfs固然是一个去中心化的分布式文件系统,但是实际的文件,那些数字bits还是需要一个地方保存。而在ipfs系统中,除非有人主动在节点上pin一个文件,否则系统在24小时以后就会清理缓存,将上传的文件清理掉。这就是为什么上传dsound.audio的文件很快消失不见的缘故。
既然如此,我现在又有多余的空间,所以我就运行了一个永久性的ipfs节点,上传了上周的音频文件,试试看能不能很好的工作。
ipfs安装
我采用的ipfs_update方式安装。先下载ipfs-update,然后系统权限运行安装:
sudo ipfs-update
接着,增加一个系统服务:
vim /etc/systemd/system/pfs.service
文件内容如下:
[Unit]
Description=IPFS Daemon
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
ExecStart=/usr/local/bin/ipfs daemon --enable-namesys-pubsub
User=eddy
[Install]
WantedBy=multi-user.target
增加文件
接下来,增加我最近的讲道音频文件:
ipfs add /var/ipfs/sermons/Romans_9.6-18.m4a
为了永久保存这个文件,我需要在自己的节点上标定(pin)刚才的命令生成的hash tag:
ipfs pin add QmUBoiAvfpjQV5k1ccyRKeFRWkmo2fsim5cgcwdfy17mt7
事就这样成了。只要我的服务器不跨,这个文件就会永远存在于互联网之中。接下来,用著名的cloudflare内容分发系统测试其可用性:
接下来,上传同一个文件到dsound.audio。由于音频文件已经在ipfs上,而且同一个文件的hash tag不会改变,所以这只不过是让dsound.audio再次缓存而已。
上传之后,检查steemd.com上的交易记账数据:
Sermon on Romans 9:6-18 in Chinese
► Listen on DSound
► Listen from source (IPFS)
可以很清楚地看到,在dsound.audio上的缓存,其hashtag是完全一样的。
于是,就可以测试了:
音频文件:罗马书9:6-18
请到活石教会网站访问我最近的讲道音频,包括上面这一篇。
我准备将以前的音频全部上传到ipfs上,如果你有ipfs节点,请Pin一下我的目录(需要占据你本地节点的空间),可以帮助提高分发文件的效率。
此处插入硬广:共享ipfs节点,24小时在线,将你想要永久保存的文件上传到去中心化的文件系统中,$1/1G・一个月。
Sermon on Romans 9:6-18 in Chinese
► Listen on DSound
► Listen from source (IPFS)
“`