十年期 Fiber - 观 Nervos 一角

「Fiber 是未来十年的计划。」

我坐在椅子上,盯着天花板。屋里,只有从电脑屏幕溢出来的白色光晕,随着网络那端的人说话不断闪动。

「我们是小组织,需要全力去做成一件事情。」

参会者们将列表的滚动条挤成了一小块。划着斜杠的麦克风在名字旁排成一列,注视着那唯一的声音。在我看不穿的圆形面具背后,其他人在思考这些重量级的信息吗?在埋头用纸笔来整理思绪吗?还是听着耳机里的声音在做其它事情?

回到二零二二年的四月,那时我刚筹够手术的开销。从现在往回看,那显然是过去人生最重要的转折点。但当时的我面前矗立一个巨大的现实问题:

我要怎么将订金支付给位于境外的医院?

正值肺疫肆虐,社会秩序虽然没有崩塌,但建满了无形的墙。在住处附近的几家银行吃足闭门羹后,我被告知以国家命名的那家银行也许可以处理我的请求。

门口的保安举起测温枪,对准我的额头扣动了扳机。

「滴。」

屏幕上亮起代表安全的绿色,他挥挥手,合格品得以通过。尖锐的蜂鸣声很快刺进耳朵,催促我坐到玻璃窗前。

「要办理什么业务?」

柜员的眼睛盯着屏幕,机械地索问我的身份,索问我的意图,索要收款方的证明。无论尝试过多少次,在我向别人解释自己的人生决定时,喉咙偶尔还是会将吐出来的词夹住。

敲击键盘的声音、翻动纸张的声音和请示上级的声音,然后是柜员的最终裁决飘过指节厚的防弹玻璃:

「抱歉,我们处理不了。」

自打那时,我认知里的法定货币沦为了随时可能失效的兑换券,再也承担不起「资产」二字的重量。直到两年之后,我才找到了这个世界为法币准备的替代品。

那是一次展会后的聚餐,餐吧里播放着我喜欢的爵士乐。我要了杯啤酒,挤在一张双人桌旁。椅子很高,四条腿中间都有横着的杆子,让我支撑碰不到地面的脚。

「Nervos 是什么东西?」展会上的人们总是会这么问,就像上一个人一样。我遵循肌肉记忆,说出的句子不过是对传单的摘要。反正他们的眼光也只会停留在传单上,尝试用对股票的理解来解释加密货币是什么。

好在,此刻坐在我对面的不再是那些漠不关心的脸,而是钱包团队的负责人。大概是出于健康考虑,他和生态里大多数人一样,都对酒精敬而远之。不过,缺乏酒精也不妨碍他是个健谈的人,以至于他偶尔还会在社交媒体上健谈过了头,引起社区一片争议。

他清楚外界对他的评价,自嘲了一番,引得我们一阵哄笑。不过,从他分享的内容听来,投资人对他的评价似乎并没有受到影响。

「他们试过就知道了,」他的语气像是在科普自然现象:「我们为什么想做支付网络。」他转向我:「你也应该试试。」

暖黄色的灯光照在他的脸上。他盯着我,用嘴唇和眉毛催促我拿起手机。经历完被摧残的一天,我自然没理由拒绝他热情的请求。只是我很好奇,在不断重复同一句话后,他怎么还能露出如此丰富的表情。我点开刚下载好的钱包,将手机拿在手中,收款二维码朝上,平行于桌面递到他面前。

下一步该做什么?在我反应过来之前,收款成功的绿色对勾,已经显示在了我的屏幕上。

「原来加密货币也能有这样的体验」冲刷着我的大脑。那一刻,暖黄色的灯光、爵士乐的旋律、就连对面的那张脸都变得模糊起来。视野里只剩下这个绿色符号,仿佛在嘲笑着曾经那个在银行碰壁的我。这种惊艳,恐怕只有人类第一次看见纸币变成电子信号的瞬间,才能够相提并论。

当我回过神来,他对我的反应很满意,脸上的笑容更明显了。

Fiber,构建在 CKB 上的支付网络,没过多久就进入了测试阶段。「为了降低对开发者的门槛,Fiber 需要 SDK」,在每周的同步会议上,我和同事们分享了这个决定。

「好啊,这太有必要了。这样开发者才能用上 Fiber 做出东西来。」没有滚动条,麦克风图标却在轮流闪烁。

对于工作数载的程序员来说,包装 SDK 通常是件乏味的工作。照着文档将定义逐个包上代码的外壳,哪怕视线不离开播放视频的窗口,也能拼凑出一个得以交差的空壳。

过去五年,在 CKB 的荒原上,那些薄到透光的廉价布袋,不知道托付了多少开发者的真心和热情,然后刺啦,重重摔到地上,沾满污泥。直到我们从头开始,一针一线为 CKB 缝制了新的 SDK。

我盯着那些十六进制的字符,感到眩晕,眼前的屏幕被雾气笼罩。仔细计算长度,预留足额的 CKB 来容纳数据;逐个检查现有的面额,直到凑够输入;将找零塞回输出里,还得记得为新增的数据计算手续费。

「A 对 B 转账 100 CKB」,如此简单的事情,我却要像斤斤计较的会计,在底层代码里一步步凑出交易来。

错误码从来不会告诉我为什么。它只是冷漠地从 -12 变成 -11,嘲讽的嘴脸却没有缓和。我睁着充满血丝的双眼,阅读仓库里多年前的历史代码,试图弄明白为什么它当年能工作。

我们能够避免 Fiber 重蹈 CKB 的覆辙吗?

Fiber 不是坚韧的纱线,更像是缠在一起的蚕丝。大部分时候,丝线交错缠结在一起,我们常搞不懂一个活头和另外哪个相对应。我们需要屏住呼吸凑到跟前,观察数据的走向。一条条整理出来之后,我们才能将纤维纺成纱,织成布。

那是漫长的三个月。

我们像裂掉的镜子,把各种事情揉进同个平面:和庞然大物的会议,待办清单上需要补全的基础设施;被带进现实的点子,活动现场好奇的人们;还有冰冷的数据图表,分析人们留在社区的原因。

还有 194。

编号 194,这是 Fiber SDK 代码的合并请求。

每做一次修复问题的尝试,测试用例就会被运行一次,直到报错彻底消失。为了让开发者理解通道的概念,简单的网页上不仅排布着参数和组件,也排布着我们对交互流程的理解。

离彻底完成开发还有很远,但我们有一个不错的开始。代码合并的时刻在向我们招手,本来应该是这样。

「Fiber SDK 的开发工作不归我们管,接下来会由另外的团队接手。」结论不长,却出奇地有力,将牵连的丝线扯断。

我没问为什么。聊天软件的编辑框里,光标闪动,凝视着我们这群成天自我感动的搞技术的家伙。

也是,其实我也没那么喜欢写代码。

我只是习惯了把一件开始的事情做完。程序员们总把编辑器调成深色模式,让屏幕显得不那么刺眼。但那也阻止不了射入眼球的光,蒙蔽了窗外的白天黑夜。

我站起身,久坐的腰越来越容易酸痛。

Fiber 的进展不会因为我们的缺席而停滞。在每周的跨团队会议上,我还能听到钱包团队询问遇到的问题。

「Fiber 节点现在能在浏览器里运行吗?」钱包运行在网页上,他们当然会这么问。

「还不行。」听起来 Fiber 团队的人手没有想象中的那么充裕。

不过,这并没有成为阻碍。几周以后,服务器替用户托管节点的方案成功地在测试网上运行了起来。

再后来,那个钱包团队解散了。官方口吻的公告简短又冷漠,如预期般引爆了社区,但曾经那个健谈的他,却再也没有回复。那台曾在高脚椅上、双人桌边的手机,直到现在,也没能亮起属于 Fiber 的绿色勾号。

Fiber 的进展也不会因为他们的缺席而停滞。好消息是,Fiber 节点终于可以在浏览器里运行了。

「那我们今天就到这里咯。」

语音断开,我例行将会议记录发到了群组,为这出不再有观众的独角戏拉上幕布。

因为长时间无人操作电脑,屏幕自动变暗,直到熄灭。光源枯萎,房间的天花板陷入彻底的黑暗。

山道狭窄,只能容下我和同事一前一后地走。飘落的叶子被我们踩碎,咔嚓作响。聊聊日常生活,聊聊未来打算,最后还是聊到了生态里的大小事上。

「Fiber 不是一个十年的计划么?」我说:「怎么才坚持了一年就没什么动静了。」

他的声音和往常没什么两样,沉稳中带点狡黠的俏皮。他没怎么思考:

「正因为这样,它才是个需要十年的计划呀。」

十年之后,那个绿色的勾号,真的会亮起来吗?