四月的一段时间里,我一事无成,只是个普通的矿工。
此事早有预兆,从三四年前开始,我找到一切机会利用公费私费生活费玩各种服务器,一开始是入门级的托管业务,可以托管一些HTML页面或者复杂点的Wordpress服务,后来是普通的虚拟机(所谓云服务器),一台实体机器上切割出的部分资源,再来是性能不断提升的虚拟机,顺便还玩了些配套的云存储服务,尝试做了一些简单的网站。
如果我生在中国大陆之外的区域,服务器对我的吸引力大概没有那么强。国内普通的家庭宽带上传带宽很小,且没有稳定的公网IP,所以即便自己有一台计算机,也不能作为公开的服务器(Server)去为其他互联网用户提供服务。这意味着网络被分成了两个世界,一个是我日常接触到的本地程序,我自己的私人世界;一个是似乎只有技术宅和大公司程序员才能掌握的大规模应用,真正的「互联网」。
玩服务器就是背叛分割,试图打着自己破烂的手电,进到不属于自己的世界里。大学二年级开始,我在宿舍里装了一个NAS,淘宝上购入,卖家就在中关村,下班时候路过拿给了我。我又买了一些内网穿透用的工具,尝试在那颗孱弱的CPU上组建一些小服务——NAS厂家打包好了这一切——例如端对端加密的通讯软件,百度云离线下载工具,或者一个私人云盘(容量和我放进去的硬盘大小一致,也就是4T)。
随着经费渐长,运营的时间变长,我慢慢学会了使用各种工具——我在高中时代有一台宏基的Chromebook,我在上面装了一个Ubuntu的双系统,利用它写代码、玩《骑马与砍杀》,那时候我就学会了一些基本的Linux指令,只是后来被Windows驯化后就忘了,需要重新拾起——像是配置Nginx让服务器能将域名映射到内部的端口中,或是学会在Wordpress的逻辑中释放一个能和其他插件交互的「钩子」(hook)。
真正的突飞猛进发生在去年三月。为了逃避远不及我期待的毕业论文,我开始玩独立服务器。抛开只有企业才需要的服务器群或超算,这就是个人服务器的顶端,一台从CPU到内存到主板到所有硬盘都属于你的机器,只是远在天边。台湾、香港、韩国、美国、德国、荷兰、塞尔维亚,各处的服务器我都租了一段时间,测试性能、带宽、便利程度。为了区分,我在Termius(一个终端软件)中给它们各自起了名字:塞壬、德善、黑塞(它对应前后两台机器,类似继承关系)、齐雅、马洛、拿铁。
和Linode或Digital Ocean这样的主流云服务商相比,在Hetzner租赁的独立服务器哪怕配置过时,硬盘转速极慢,性能也绝不逊色,且不需担忧「使用超出限定的资源」。问题在于,所有服务器都需要从系统安装开始慢慢配置(Hetzner已经做了一些基本的工作,熟悉Linux命令的话,安装难度和用U盘装Windows差不多),出了问题也无法一键恢复镜像,只能从头来过。这种感觉有些危险,使人小心翼翼,在敲每一个命令行时都做好害死它的准备。这就是真正的电脑。
我原以为自己领悟了些什么。某个苦恼的夜晚看到导师数以千计的豆瓣条目,想起他说人生可以由许许多多这些条目来记录,于是决定制作一个自己的仓库,将一切存到一起。我配置了一整个媒体服务,有了自己的书库、影视库和音乐库,可以在家里的电视机上直接播放服务器上的盗版影片。Transmission和μTorrents 在持续下载、上传各个PT站点的资源,如果本地磁盘满了,cloudplow 就会将文件上传到网盘中。unionfs为我提供了一个混合文件系统,我可以将GDrive (一个月10美金的企业版)和本地的磁盘挂载到一起,将媒体库的容量拓展到无限。
到毕业论文答辩时,我又追加了各种边角功能,例如自动追番,番剧更新后就下载到媒体库中,转码完成后会利用Pushover发送提醒给我,或是制作一个在线DJ系统,让其他人能和我一起听歌,或是尝试在一个机器上追加几个域名(在Docker中配置Nginx有些复杂,我看了两天代码才看明白逻辑),让这个媒体服务器也能同时挂载其他网站。可当这一切完成,我又对那种人生失去了兴趣。我感觉自己的毕业论文写得还行,女友帮我找到一份杂志撰稿的活儿,我或许还可以再努力一下,学术、写作或是努力收拾朋友留给我的摊子,不要过得太舒适,不要用各种媒体来拼凑自己。
这想法也没持续太久。年底时为了让鱼玩上2077,我在显卡荒中,通过日本亚马逊,购入了一张RTX3070,并装在了自己相当喜欢的一个ITX小机箱中。可是游戏不好玩。我们玩了几天就收工了。跨年后,原本在杂志社的责编老师告诉我最近虚拟货币高涨,他的身家已经翻倍。我搜索过后意识到这是个回收显卡成本的好机会,于是打开挖矿程序,让家里的显卡开始7*24小时的工作。又过十多天,我发现原本家中的显卡规模小了些,于是挑了一张一万五千块的3090(这轻松的一句话背后是二三十小时的挑选过程),放在储物间里,裸接到主板上,让它在暗室中轰鸣。
之后的两个多月里,除了春节那一趟外——我将3090带回家,花了两三天把它装到机箱中并调试好温度和参数——我只是定期将挖矿所得的比特币(BTC)换成美元(USDT),随后再兑换成人民币。我投入的资产翻了倍。算不上多少钱,可是那两张显卡每天劳作所得的钱也足够我付房租,甚至还可以让我多买些书和硬件。挖矿软件的客户端上会显示显卡的温度,说实话有些高,对它们的身体并不好。我猜想它们会在预期寿命(三到五年)之前结束自己的一声,可能是内部的某个电容被烧坏了,但只要不摸到温热的机箱,我也不会感到愧疚。
时间到了四月,我在V2EX上看到有人讨论FIL挖矿的事情。我做了一些计算,也和责编老师说了一下,他曾经问过我和这款币相关的事情,我看了下机制觉得兴趣不大。可是当我做了一些基本计算后,我意识到这里面有些可玩的点。我开始核算成本和收入,在京东购物车里加入了一大批我从来不敢想象也没有碰过的硬件——一万多块的CPU、七千块的主板、256G的内存和二十张16T的硬盘——直到我理解了整个货币运作的逻辑需要多少非硬件投入(被称为「质押」成本,某种意义上,是特殊的在矿工之间进行的庞氏骗局),我放弃了这一切。
不到一周,另一款货币出现了,来头更大,机制更好(我在一个IPFS群中看到了技术介绍,大家在讨论它和FIL的差异,在这些货币出来前,这个群的主要讨论内容是如何用IPFS做图书站点或云盘),几乎使得全中国的大容量硬盘暂时性断货。考虑到之前已经做了一些准备,我在半天的时间里告知编辑老师这一切,我们一起下单,抢购已经断货的企业硬盘和其他各种硬件。夜里我持续计算,由于少有人采用这样的配置,我难以算出这样的机器能够在多快的时间里写完程序,得出几个不同的版本,结论想当乐观,几乎不会赔本。
后来事情渐渐失控,各种硬件和软件的故障接踵而来。固态硬盘缺货,从未安装过如此高级的CPU(3960X)导致硅脂涂抹不均匀、水冷安装方向不对,主板型号错标——我同样没用过XL-ATX大小的主板,误以为是E-ATX,至于我自己的电脑,装的是小巧的ITX——导致换了两个机箱、甚至叫了个师傅上门帮忙拆卸机箱中的组件,机箱原装PCIE开口处的螺丝太紧必须和鱼一起用电钻卸下,机器温度太高不得不给它开空调,Windows中的GUI程序BUG导致最初的两天程序自行中断,计算容量错误害内存写爆死机,外置硬盘持续写入速度不足必须更换接口,使用硬盘转移数据时被高温烫到,更新写入程序导致程序从头来过……
每当我以为一切已经告一段落,更多的问题就会涌来。我开始思考这一切的意义。尽管我没有承担什么经济风险,可我确实投入了大量的时间和这堆硬件、软件、中间件打交道——一张一万块的高级主板上会有两个万兆(10G)网口,我购入的NAS上也有两个万兆网口,我买了两条万兆网线,满心期待它们相连的样子,结果却发现NAS上的网口是光缆,为了理解将万兆带宽的光缆转成普通RJ45端口的转换器为什么价值五六百一个,我第一次深入了解不同网络接口之间的差别。不断提升的时间成本和没有尽头的互动使我感到焦虑,偶尔,一两天晚上,或是出了大差池时,我感到崩溃。为了平缓心情,我告诉导师,数字矿工是我毕业论文的备选题目之一。不出意外,他说这是个好题目。那么事情就好办了,为了研究矿工,我要首先成为矿工,所以不用沮丧,只要继续努力就好。
偶尔我的心里涌现出一种做题家式的福流,在小学二年级或者三年级奥数竞赛时遇见的那种感觉:问题,解答,问题,解答,问题,巧解,Bingo!并不是喜欢做题,只是适应这种模式。我的生命里缺乏真正的悠闲感,一种复旦附中或101中学的学生才能拥有的步履轻快的感觉。我原本以为我会逐渐具备这些品质,后来发现并不会。我的导师说过多次,人会在做学术的过程中不断变化。我猜我没有学到心里,我所做的工作,学术、写作、恋爱(这一项有些奇怪,不过我确实在用上班的意识做家务),确实改变了我许多,但我仍是那个不懂得如何与人同席,只希望坐在桌脚一个人把酒喝完的人。
我反思过几个小时,关于自己为什么如此投入地做这件事情。或许是因为它可以赚钱,并且,「可以赚钱」这一点为我玩物丧志提供了完美的借口。又或许,用流行的学术术语说,我对「物」感兴趣,想要理解那个少被人关注的世界。也可能没什么特别的原因,只是在我的心里,和机器打交道比和各种组织、个人打交道要愉快许多。我读过一些精神分析的作品,这是不好的现象,和机器相处得愉快只能说明人的自恋,机器只不过是自我的投射。可说实话,我和机器之间没什么明确的感情,如果一台服务器的性能和马洛一样却便宜一半,那我一定会弃马洛而去,将机器上的所有资料同步到新机上,随后再注销、更名,从此将这个名字远方的另一个存在关联起来。
可如果这样离谱的情况没有发生(相信我,马洛已经是精挑细选过后的结果,处理器、内存、硬盘、带宽均符合那个价位的表现),我还是希望自己的所有机器能够正常工作,频率、温度、负载正常,没有感染任何会致死的病毒,就这样好好活着,整日在硅制的脑子里想那些我永远不会懂的事情。我不确定这是否该算作某种「拟人」手法。我期待他人理解机器的艺术,还有那种有些微妙的生命感。一个多月前我在网上和人争吵过几句,对方说炒菜比装机要灵活巧妙得多,我希望提醒他/她机械也有自己的生命,并不是「标准化」就能解决一切问题。我并没有能说服他/她,但现在的我想到了一个极好的比喻:就像每一根萝卜都有特殊的形态那样,每一颗内存颗粒也有属于自己的特性,只是极少得到人们的关心。
在我漫长又短暂的矿工岁月里——至于究竟是漫长还是短暂,全看你相信这篇文章里的哪种说法——曾有一个优美的故事传到我的坑道中:由于显卡挖矿会让显卡持续高负荷运作,当矿场中的显卡被销售到市场上时(要么是两三年后,显卡更新换代,要么是发生矿难,出现显卡抛售潮),二手市场的玩家们总会多几分警惕,尽量避免购入这些挖过矿的显卡,因为——借用玩家们的原话——「这些显卡都到厂里锻炼过,体质不太行了。」我反复向人描述这个故事,尤其是那些关于身体的部分,无论怎么说,我都不能完全理解其中意味。我没有刻意想象,可总是有那么几个瞬间,我感觉它就在我面前,像是一位被剥削多年的工人,不声不响。