第二天清晨林宿到实验室的时候,走廊尽头的打印机正在吐一张超时的任务队列单。他经过时扫了一眼——打印任务从昨晚十一点开始堆积,三十七份文件全部显示"发送失败,目标服务器不可达"。他把那张队列单从纸槽里抽出来折进口袋,推开了实验室的门。
室内的温度比他离开时稍微高了一些,暖气管道在夜间已经完成了重启。他走过工位之间的时候,看见沈卓桌上的电脑还亮着,屏幕的待机画面是一张普通的卫星云图。他走过去按了一下键盘,桌面弹出来一个系统提示框:"无法连接到外部数据库。请检查网络设置。"他关掉了提示,没有做其他操作。
过了大约十分钟,楚寒推门进来,手里端着一个马克杯,看见林宿已经坐在了桌前,愣了一下:"你几点来的?""刚到。"林宿没有抬头,正在把雪域的原始数据从本地备份的文件夹里重新整理出来。他昨天上传到公共服务器的那些文件,今天早上的访问日志显示最后一次成功同步的时间是凌晨两点十七分,之后所有请求都返回了"服务器不可达"的状态。他把这条信息记在便签纸上,贴在了显示器边框的右下角。
九点半,沈卓到了。他进门的时候手里拿着一张打印出来的通知单,眉头微不可察地皱了一下。"西城检测中心那边正式发了邮件,"他把打印纸放在林宿桌上,"说合作暂停,没有恢复时间。"林宿看了一眼那封邮件。措辞客气而模糊:"基于双方业务布局的阶段性调整,经慎重评估后决定暂停本年度合作。"没有解释、没有替代方案、没有联系人。他把邮件转存了一份,和昨天那些异常通知放在同一个文件夹里。
十点,楚寒在整理耗材柜的时候发现了一个问题。他站在柜子前面,弯腰把第二层的试剂盒翻出来看了一眼,又看了一眼贴在柜门内侧的库存清单,然后回头对林宿说:"你看这个。"林宿走过去。楚寒指着清单上被红笔划掉的一行——"抗凝剂Ⅲ型,规格:50mL支,剩余:24支。"红笔划掉的地方又被人用铅笔补了一个数字:"0"。"昨天下午采购系统显示还够用三个月,"楚寒说,"今早我再查已经归零了。系统更新记录是被管理员手动修改的。他们退了订单。"林宿没有说话。他走到自己的电脑前,打开采购系统的后台记录,输入那批试剂的采购编号。系统提示:"该订单已被供应商取消。原因:库存不足。"他截了图,然后切换到另一个窗口,打开了公开科研数据平台的登录页面。页面加载了比平时久很多,然后跳出一个蓝色的通知框:"您所在的机构暂未获得本季度的数据访问权限。详情请联系平台管理员。"
他盯着那行蓝字看了几秒。昨天是连接中断,今天是权限被拒。两件看似独立的事,出现在同一个时间窗口里。他伸手拿起桌上的马克杯,想喝一口水,发现杯子是空的——他没有倒。他握着空杯子在窗边站了片刻。窗外的冬日光线是一种均匀的灰色,把街道、树冠、停着的车辆都罩在同一层薄光里。街对面的便利店门口站着一个人,穿着深色外套,低头看手机,没有进去。林宿的视线在那个人身上停了一瞬,那个人站了大约两分钟,手机屏幕一直亮着同一个页面,没有滑动。然后那个人转身走了。林宿把水杯放下,回到桌前。
沈卓已经坐在了自己的座位上,正对着电脑键盘敲着什么。林宿走过去,放了一张便签纸在沈卓手边,上面写了两行字:"西城检测中心暂停。采购订单取消。数据平台权限冻结。时间窗口:24小时内。"沈卓低头读了一遍那两行字,抬起眼看林宿。林宿没有说更多,走回了自己的工位。
他把所有可用的内部资源拉了一张清单。试剂库存:目前手里还有雪域期间带回来的样本和配套试剂,够做两轮深度检测。设备状态:全部正常。本地数据:完整,没有上传到公共服务器的那部分。他需要的外来资源集中在三个方向上:第一,某些特定的检测耗材——雪域采样管后续分析需要用到的专用试剂,国内只有三家供应商有稳定货源,其中一家是西城检测中心的合作方,现在通路断了。第二,全球疠气图谱库的访问权限——那里面存着过去五年所有公开来源的高精度波形数据,是他的参考系,现在访问权限被封了。第三,跨机构协作所需的实时数据交换通道——没了这个,他就没法用最新的外部验证来校准自己的实验结果。
他从抽屉里拿出一张空白的A4纸,在正中央画了一个方框,写着"当前可用资源"。然后在它的四周拉出三条线,每条线的末端各写了一个词:"耗材"、"数据"、"协作"。在"耗材"那条线旁边,他写了两个备选供应商的名称——一家在华东,一家在华南,以前没有合作过,但从公开资质上看可以承接。在"数据"那条线的旁边,他标了一行小字:"历史数据库备份——完整。可离线分析。"在"协作"那条线旁边,他画了一个问号。然后他把那张纸推到桌角,打开了一个新的文档,开始拟一封联系邮件。
第一封邮件发给华东那家供应商。措辞简洁专业,附上了实验需求清单和资质证明,请求对方提供正式的评估样本。他写完检查了一遍用词,点了发送。第二封邮件发给华南那家——同样内容,稍改了抬头。发送之后他关闭了邮箱窗口,开始重新梳理雪域采样的检测流程,把对外部数据的依赖节点圈了出来,在旁边标注了替代方案的可行性百分比。
楚寒从工位上探过头来,看了他一眼:"要不要我们去找行政那边问一下——那些权限被停的事到底是不是系统故障?"林宿:"行政发了通知说升级维护。"楚寒:"那你信吗?"林宿没有回答。但他把显示器上那个"权限被拒"的通知框拖到了屏幕的边缘,没有关掉。他把它放在那里,像一个需要持续观察的指标。
午休过后,沈卓从外勤办公室带回来一个消息。他站在林宿工位旁边,压低了声音:"我让人查了西城检测中心那个合作暂停的审批路径——他们发的邮件不是技术部门写的,是法务部那边的一个邮箱地址。"林宿的手指在键盘上停了一拍。法务部发合作暂停邮件,意味着这不是业务层面的调整,是更高层级的指令。"没查到具体审批人,"沈卓说,"法务部的邮件不走公开流程。但你猜怎么着——西城检测中心和穹顶医疗旗下的一个子公司,同属一个投资方。"林宿抬起头看了他三秒。沈卓没有多解释。信息已经给到了。
林宿靠回椅背,把那三点连成了一条线:穹顶医疗的法务部指令,通过第三方投资方施压,让西城检测中心终止合作。耗材被截断、数据库被锁、合作被终止——三件事出自同一个源头,用的不是公开制裁的方式,而是资本层面、商业层面的链条式围堵。他没有生气。他坐在桌前安静了两分钟,把信息在脑子里重新排了一遍序,然后拉过键盘,继续写下午的那封替代方案评估信。
三点多的时候,实验室的门被敲了一下。一个年轻的研究员探进半个身子,手里拿着一个牛皮纸信封,朝楚寒的方向晃了晃:"楚老师,楼下有人送了这个来,说是给你的。"楚寒走过去接过来,打开信封看了一眼——里面是一叠打印纸,抬头是一家他没联系过的试剂公司的产品目录。"谁送的?"楚寒问。研究员摇头:"没留名字,前台说是一个穿深灰色衣服的人放下的。"楚寒把产品目录翻了两页,上面的试剂规格和他上午那批被取消的订单几乎完全匹配。他抬头看了一眼林宿。林宿也看着他。楚寒低声说:"这家公司我没接触过。"林宿说:"我知道。"他没有多解释。楚寒把那叠目录放在桌上,没有翻完。他看了林宿一眼,又看了一眼门口的方向,像是想说什么但咽回去了。
林宿知道那叠目录是谁放的。深灰色衣服。不留名字。东西到位就走。他没有走过去翻那本目录。但他知道那本目录里列的那些试剂规格和楚寒被取消的订单高度重合。信息是从哪里来的不重要。重要的是这份目录的出现本身构成了一个答案,无声的确认。
傍晚六点半,天色已经全黑了。实验室里的人陆续走了,只剩林宿和楚寒还在。楚寒收拾好背包站起来,走到门口又停下来,回头看了一眼林宿:"你走不走?"林宿:"再等一会儿。"楚寒站了一秒:"那本目录——""先留着。有用的时候再看。"楚寒没再说什么。他拉开门走出去的时候,补了一句:"你那杯水凉了。"林宿低头看了一眼桌上那个水杯,果然已经凉透了。他端起来喝了一口,凉的,但无所谓。他把它放下了。
实验室里安静下来,只剩电脑主机的低频噪音和通风口的气流声。林宿在灯光下重新摊开白天那张画了三条线的A4纸。耗材那条线上,现在多了一个备选路径——那本目录。他还没用上它,但他的笔尖在那条线的旁边画了一颗星。然后他翻开笔记本,在昨天写的那行"待交叉溯源"下面添了几行:"第二日。确认西城检测中心合作暂停经由法务部路径;采购订单取消由供应商端执行;数据平台权限冻结时间与以上两事件同步。三件事源头上均可追溯至同一方向。当前应对:内部资源梳理完成;备选供应商联系已发出;实验方案已绕过对外部数据的依赖。剩余缺口:两条备选链路尚未获得正式回应。48小时内可得出首轮评估结果。"
他合上笔记本的时候,看了一眼窗外的街道。路灯亮着,车流稀疏,对面便利店的暖光玻璃门透出一小片橘黄色的光斑,落在门口的台阶上。夜色把这个城市的一切罩住了,像一层均匀的、无声的覆盖物。他站在窗前看了一会儿。外面的一切看起来和任何一个普通的冬夜一样。但他知道这个城市里有人在用看不见的方式给他设置路障。一条又一条,把他通往数据、耗材、协作的通路逐一切断。他们希望他停下来。没有新数据,实验就会停滞。实验停滞,项目就会延期。项目延期,雪域的成果就会错过最佳验证窗口期。
他站在窗前没有动,但他在心里把实验方案重新拆解了一遍。某些步骤的顺序可以调整。某些依赖外部数据的环节可以用本地备份做初步推演。某些需要新试剂才能做的检测,可以先用雪域带回来的原始样本做一次不加试剂的对照空白,把本底信号先跑出来。他不需要等所有条件都齐备才开工。只要他手里的东西还够撑一次推演,他就不会停。
他回到桌前关了电脑,把笔记本和那张A4纸收进包里。走出实验室锁好门,走廊的声控灯随着他的脚步声依次亮起。电梯里只有他一个人,金属壁反光里映着他的轮廓。他低头看了一眼手机,没有新消息。在电梯门合拢前的最后一瞬,他的视线扫过走廊尽头的窗户——外面路灯的光线里,有一道很淡的人影从街对面便利店门口的位置经过。步子不快不慢,穿着深色衣服,没有停留。他没有看清那张脸,但他记住了那个步速的频率,和他下午在窗边看到的那个、站在便利店门口看了两分钟手机然后转身走开的过路人,在同一个节奏上。电梯门合拢了,把走廊和那道影子一起关在了外面。他靠着电梯壁,没有回头再去看。