午夜零点,YC工作室的空气已不再是空气,是凝固的、掺杂了汗液、速溶咖啡焦苦和某种濒临极限的金属锈蚀气味的实体。中央空调的嘶鸣声有气无力,像垂死者的喉音。二十几张年轻的面孔被数十块屏幕的冷蓝光从下方照亮,颧骨突出,眼窝深陷,呈现出一种类似矿难幸存者的惨白与麻木。
键盘的敲击声不再连贯,时而爆发出几声发泄般的、沉重的闷响,随即又陷入更令人窒息的停顿。压抑的喘息、牙齿无意识摩擦的细响、椅子腿划过地面的刺耳摩擦……每一种声音都在放大这间密闭工作室里濒临崩溃的张力。
梁亿辰站在主程陈锐的工位斜后方,背脊挺得笔直,像一柄强行钉入地面的标枪。他穿着黑色衬衫,袖口挽到小臂,露出的手腕筋骨分明。脸上没有太多表情,只有额角皮肤下微微暴起的青色血管,和抿成一道冰冷、毫无弧度的直线的薄唇,泄露了平静海面下足以吞噬一切的暗流。他的目光落在陈锐屏幕上那行不断刷新的、猩红刺眼的错误日志上,眼神沉得如同暴风雨前最深的海沟,所有的审视、冷感和戾气都被压缩成一种近乎非人的专注。
「致命错误:数据库连接池泄露,内存溢出。主服务集群(3/5)不可用,备用节点接管延迟超阈值……」
距离《破晓》4.0上线,还有一百六十八小时。而他们耗尽心血搭建的核心系统,在最后一次、也是理论上压力峰值最高的全链路压测中,于模拟流量冲击开始的第十七分三十二秒,发出了不堪重负的呻吟,随即在监控大屏上化作一片刺目的血红与警报。
空气死寂了三秒。这三秒里,绝望如同有形的黑色藤蔓,缠绕上每个人的脚踝。
“查。”梁亿辰的声音响了起来。那是一种介于少年与青年之间的、微哑的低音炮,声调平稳,没有拔高,却像一块浸透了冰水的金属,砸在粘稠的死寂里,每个字都带着不容置疑、近乎粗暴的重量。“三小时。根因,还有至少三个能落地的解决方案。我要看到代码,不是猜测。”
命令下达的瞬间,陈锐放在键盘上的手指几不可察地颤抖了一下,喉咙里发出“嗬”的一声轻响,像是被无形的手扼住了呼吸。
他身边,负责底层数据库的张轩,脸色已从苍白转向一种死寂的灰败,眼神空洞地盯着那行仿佛在狞笑的错误日志,仿佛灵魂已经被那串猩红的字符抽离。
美术组长李文博猛地将脸埋进掌心,用力搓揉着布满血丝的眼睛,指缝间泄出困兽般的呜咽。原画负责人王皓死死咬着下唇,直到尝到一丝腥甜的铁锈味,才猛地松开。
就在这崩溃边缘的集体窒息中,梁亿辰却几不可察地侧过了身,左手随意地插入了裤袋。指尖触碰到的,并非布料,而是另一部线条冷硬、屏幕厚重的特制私人手机。它静默地震动了一下,短暂、急促,如同心脏的一次异常搏动。
他的表情没有任何变化,甚至连睫毛都未颤动。但插在裤袋里的左手拇指,已经以一种肌肉记忆般的精准速度,在完全盲操的情况下,解锁屏幕,点开了那个没有名称、仅以一个极简黄色三角形为图标的加密应用。
应用界面一片漆黑,只有一行光标在左上角无声闪烁,像黑暗中窥伺的眼睛。
梁亿辰的拇指在虚拟键盘上敲击,没有实体反馈,但他的每一次按压都稳定而确信。他输入的不是文字,而是一长串由特定算法生成的动态指令码,最后附上了从公共监控屏上瞥见的、错误日志的关键特征哈希值。
发送。
整个过程不超过五秒。当他将左手从裤袋中抽出,重新抱在胸前时,神色依旧冷峻如冰封的湖面,目光重新锁死在陈锐那停滞滚动的日志上,仿佛刚才那细微的动作从未发生。
“日志,从压测开始前五分钟,全量导出。”他对陈锐说道,声音依旧平稳,仿佛只是在继续下达一个再普通不过的指令,“张轩,调出过去二十四小时内所有数据库慢查询和连接状态快照,尤其是崩溃前十分钟的波动。我要看原始数据,不是汇总图。”
团队在他的指令下,如同生锈的齿轮,开始艰难地、嘎吱作响地重新转动。恐惧暂时被必须完成任务的机械本能压倒。键盘声重新零星响起,但沉重而晦涩。
梁亿辰转身,走向自己的独立办公室,步伐稳定,没有一丝匆忙。“有进展,随时报。”他丢下这句话,关上了门。
办公室内没有开主灯。他走到巨大的落地窗前,窗外是沉睡的城市和虚假平静的夜空。他没有坐下,只是站着,左手重新握住了裤袋里的那部私人手机。
屏幕是暗的。
他在等待。不是等待陈锐他们可能在数小时后(甚至可能根本无法)得出的结论,而是在等待另一个维度传来的、更直接、更赤裸、也通常更接近真相的答案。
这部手机,以及手机另一端那个被他用小黄这个代号称呼的人,是他棋盘上一枚从未示人的暗子。没人知道小黄的真实身份、年龄、甚至所在地。
他们之间的交集始于一年前的偶然相遇,之后小黄帮忙调查过骆景言的情况,再之后,梁亿辰开始暗中培养小黄,提供资金、器材、资源、方向一些游走在灰色地带的“挑战”,而小黄,则回报以在常规技术手段看来几乎如同魔法的信息获取与路径洞察力。报酬不定期,通常是比特币,或者一些极其罕见的硬件或软件漏洞情报。他们从那次偶然的见面之后再也不谈现实,不问身份,只交换“问题”和“答案”。
小黄是他技术利刃上,淬炼得最隐秘、也最危险的一道毒芒。非到万不得已,绝不轻用。而此刻,服务器在上市前最关键压力测试下的崩溃,无论原因如何,都已触及“万不得已”的红线——他必须知道,这究竟是不可控的技术幽灵,还是阴影中射来的毒箭。
时间一分一秒过去。窗外的城市灯光冷漠地闪烁。
私人手机屏幕,在他掌心里,悄无声息地亮了。
没有声音,没有震动。只是屏幕从纯粹的黑暗,变为一种极暗的、偏向墨绿的底色,上面浮现出几行同样颜色深沉、字体古怪的英文信息以及解答。
信息在屏幕上停留了十秒,然后如同被擦除的粉笔字,自上而下,寸寸消失,恢复成一片纯净的黑暗。
梁亿辰握着手机,站在窗前,一动不动。
墨绿的字句仿佛还灼烧在他的视网膜上。“Bug是内部的。触发是外部的。”“红石”小组。星辉互娱。
果然。
不是意外。是狙击。一场精心策划的、技术精准的、恶毒无比的狙击。对方没有选择风险更高的直接入侵,而是利用了他们在疯狂扩张和赶工中,不可避免地引入或遗留的代码缺陷,然后,在最要命的时刻,用一次外部模拟的、但特征极其精准的“压力测试”,引爆了它。
这可高级,也阴险得多。它制造的是“自然崩溃”的假象,足以从内部摧毁团队的信心,也能在业界散播“YC技术不过硬”的谣言。如果他们没有在最终压测中暴露,这个炸弹就会埋在上线后的真实海量用户流量中,届时引发的将是灾难性的雪崩。
小黄不仅找到了根因,还锁定了攻击手法,甚至关联到了可能的幕后黑手。效率远超陈锐他们此刻如同无头苍蝇般的排查。
梁亿辰的嘴角,极其细微地向下压紧了一毫米,眼神深处掠过一丝冰冷的、近乎残酷的寒意。那寒意并非针对这阴险的攻击,而是针对自身——竟让如此致命的隐患潜伏至今。也针对星辉——他们越界了。
他松开握着私人手机的手,任由其滑回裤袋深处。然后,他转身,拉开办公室的门,重新走入外面那片依然被低气压笼罩的办公区。
陈锐正满头大汗地对比着两段日志,张轩在疯狂地敲打命令行,试图重现崩溃场景。进度缓慢,如同在泥沼中跋涉。
梁亿辰走到白板前,拿起一支黑色记号笔。笔尖划过光滑板面,发出尖锐的声响,吸引了所有人的目光。
他没有看任何人,背对着团队,在白板上已有的混乱架构图一角,清晰、有力地写下了几个关键词,写完,他转过身,将笔帽扣上,发出“咔哒”一声轻响。目光扫过满脸惊愕、尚未完全理解白板上信息分量的陈锐和张轩,声音依旧是那副微哑的低音炮,平稳,却带着一种洞悉一切后的、令人心悸的冷静:
“根因在数据库驱动的遗留代码块,不可重入锁在超高并发下链式死锁。攻击者模拟了‘红石’风格的负载序列,引爆了它。”
他顿了顿,给这几句话足够的时间,像冰锥一样凿进每个人的意识。
“我们还有,”他抬腕看了眼手表,表盘冷光一闪,“一百六十七小时,二十一分钟。”
“现在,选一条路,走通它。”