Dat 网络尝鲜

无意之间在 tg 群组推荐中发现了 Dat,于是打算尝试一下这个 node.js 实现的分布式网络服务。
因为之前部署过 ZeroNet 玩,但是因为不太喜欢它总是下载些有的没得,占用带宽和硬盘 I/O。
所以尝试一下这个,看看是不是有不一样的体验。

准备

安装

Dat 的安装十分简单,可以直接用 npm 包管理器进行安装。

1
$ sudo npm install -g dat

如果是想尝试桌面使用的话请下载对应的客户端,在 Linux 上下载 *.AppImage 包,添加可执行权限然后执行就好。

1
2
$ chmod +x dat-desktop-*.AppImage
$ ./dat-desktop-*.AppImage

如果打算在 Dat 上浏览静态博客的话你还需要一个能访问 Dat 网络的浏览器 Beaker Browser,Linux 用户同样是下载 *.AppImage 客户端。

运行和使用

命令行

1
2
$ cd ${Share_Dir}
$ dat share

${Share_Dir} 指的是你想要共享到 Dat 网络的文件夹。然后你会得到一串类似于 Url 一样的 Dat 链接:dat://<dat node info>
在其他节点要同步这个文件很方便,一行命令即可搞定,Dat 网络会自动通过公网节点将文件克隆到你的节点,

1
2
$ cd ${Clone_Dir}
$ dat clone dat://<dat node info>

经测试如果公网节点稳定的话,文件的发现速度和传输速度还是挺快的。

如果想要在 DAT 网络上部署你的静态博客可以使用 --http=$PORT_80 指定服务和端口。

1
2
# cd ${Static_Website_Dir}
$ dat share --http=$PORT_80

另外还有一些其他的命令,比如$ dat sync等就不在此一一列举了。

图形客户端

图形客户端的使用就更为简易了,右上角 DownloadShare Folder 的控件一目了然,可以完成节点内容同步和分享本地节点内容的操作。
Peers 可以显示现有公网节点的发现状态,如果 Peers 为0的话,那么你所在的 Dat 网络将很有可能失去同步,所以一般还是有台自建的公网节点比较稳定。

使用 Beaker Browser 来浏览 Dat 上的静态网站,只需要在地址栏粘贴 Dat 链接就好。

小结

在朋友的提醒下想起之前有个类似的基于 go-ipfs 做的分布式图床 妹子搜
但是他们都有一个共同的点使得我无法将其用于现有项目:资源冗余度太高。
因为其文件内容是全同步的,不可筛选,于是并没有在每个节点上起到节省磁盘空间的作用,所以暂时不在网站上采用。
但是作为一个部署简易的分布式服务来说平时个人使用还是可以的。