陈九被那只从镜里伸出来的手扣住时,第一反应不是挣,是抬眼去看镜面里那一层更深的东西。
那只手冰得像泡过尸水,指节却异常稳,稳得像已经在这个动作上等了很久。陈九腕骨一沉,整个人被往镜子里拽得一歪,脚下那层刚刚铺开的镜面参数也跟着一震,地砖上的白纹像被风刮过的冰面,骤然裂开几道细缝。
“别让它把你拽进去!”小马在后面吼,钢尺砸在穿衣镜边框上,发出一声闷响。
镜面没有碎。
碎的是边上那层光。
整面镜子像被谁从内部翻了一页,原先照出来的库房、长廊、门牌全都开始往后退,退到最深处时,陈九看见了一行新的灰字,从镜背那层黑暗里慢慢浮起来。
节点掉线中。
他心里猛地一沉。
这不是提示,是状态。
站里的系统,或者说比站里系统更高一层的东西,正在断开节点。陈九来不及细想,右手已经顺着那股力被拖到镜面边缘,指尖触到玻璃的一瞬,竟没有碰到实物,而是像按进了一层冷到发黏的水膜里。
镜里那人终于抬头。
兜帽阴影下露出来的不是脸,而是一张没有五官的白面,白得像未写入的单据正页。那白面上只浮着一行极细的字,字迹像系统默认字体,平平整整,没有半点情绪。
`版本:2.0`
陈九脑子里像被什么东西猛敲了一下。
版本。
这不是人,是版本壳。
“第二层版本……”他喉咙发紧,声音几乎是从牙缝里挤出来的。
白面人没有答,只把扣在他手腕上的力道又加重了一分。与此同时,站内所有灯管齐齐闪了一下,白得发青的应急灯猛地一颤,灯丝里像有灰在往外喷。小马还想再砸第二下,冷柜门却先一步弹开,里面一排排贴着封条的阴件同时发出细碎的响声,像无数张嘴在里面咬纸。
陈九余光扫过去,心口一下绷死。
不是阴件自己动了,是它们在响应镜面。
每一件包裹的封口上都浮出了一道同样的灰字,像被统一接管。
`当前节点已掉线`
`请切换第二层参数`
“参数单!”小马吼着冲过来,“你那张参数单在哪?”
陈九被拽得肩膀发麻,只能用左手去摸外套内袋。纸张边缘早已被汗浸软,他几乎是硬生生把那张第26章留下来的参数单扯了出来。刚一展开,纸面上原本清晰的字段就像遇到镜面水汽一样开始扩散,边角无声翻卷。
镜里那张白面第一次有了变化。
一条很浅的黑线,从它额心向下裂开,像有人在上面打开了一道程序入口。随即,白面上的版本号从`2.0`跳成了`2.1`,再跳成`2.0.1`,速度快得像在反向回补补丁。
陈九瞬间明白过来。
节点先掉线,不是事故,是遮掩。
真正被藏起来的,不是节点本身,而是节点掉线时同步切走的那一层参数。
“它在改版本。”陈九低声说。
小马也看见了,脸色一下变得很难看:“第二层版本不是你现在这张纸上的东西?”
“不是。”陈九死盯着镜面,“这张纸写的是镜面分辨率,写的是反射对象,写的是门牌外层。它要的不是参数,是参数背后的版本定义。”
话音刚落,镜面深处忽然传来一声极轻的脆响,像是有某个封口被拆开了。
下一秒,陈九手里的参数单背面缓缓透出第二层字。
那层字不是印上去的,是从纸纤维底下渗出来的,细、薄、灰,像从一层更旧的底稿里浮起来。小马倒吸一口冷气,连声音都压低了。
“还有一层?”
陈九没有说话。
背面浮出来的字段,和正面完全不同。
`VERSION_BASE=1.0`
`PATCH_SOURCE=门牌外层`
`FALLBACK=节点掉线`
`OVERLAY=第二层参数`
最后一行下面还压着半截没完全显出来的字,像被什么东西死死按住,只露出开头几个笔画。
`SELF...`
陈九眼皮猛跳,脑中忽然闪过第26章末尾那句“授权失败,转入镜面劫持模式”。他原先以为对方只是抢镜面权限,现在才看明白,镜面劫持只是表面动作,真正的目的,是借节点掉线把第二层版本悄悄铺进现行参数里。
也就是说,眼前这张参数单不是配置单。
是覆盖层。
是把旧版本盖住后,还能继续往下长的底层协议。
“你看那边。”小马的声音发紧,指向分拣台。
陈九顺着看过去,只见分拣台上那台老旧终端已经黑了屏,可黑屏上却慢慢浮出一串白字,像从停掉的进程里自己长出来。
`节点A:掉线`
`节点B:在线`
`节点C:掉线`
`节点D:在线`
一明一暗,像一条正在被人为折叠的链路。
可问题是,陈九记得快递站原本只有三个节点。A是分拣,B是出库,C是门牌。现在多出来的D,不在原始架构里。
那是第二层版本补进去的节点。
“它不是在替换一个节点。”陈九盯着屏幕,声音慢得发冷,“它是在给整条链路补一个看不见的第四节点。”
小马一时没听懂,皱眉看他。
陈九却已经想到了更深的地方。
门牌是入口,参数是接口,镜面是取景器。那节点呢?
节点是路径上的钉子,是让入口、接口、镜面都能互相认账的锚。现在节点掉线,说明原先那根钉子被拔了。可在钉子拔走的位置上,第二层版本开始补位,补进去的不是修复,而是新的规则。
“它在偷换定义权。”陈九咬着牙,“把我们以为的修复,换成它自己的版本。”
白面人终于动了。
它没有继续拽陈九,而是把扣在他腕上的那只手慢慢松开,像故意留出一秒让他看清楚。随后,那只手指向镜面深处的版本号。
`2.0`再次闪了一下,后面多出一截未完成的尾巴。
`2.0.2`
陈九瞳孔一缩。
这不是简单的版本递增,这是叠层。
每一次节点掉线,都在给第二层版本腾位置。
“看门口!”小马忽然尖声喊了一句。
陈九猛地扭头。
站门口那面玻璃门上,原本映着的应急灯和夜色已经不见了,取而代之的是一张密密麻麻的版本树。树干从门牌底下长出来,枝杈则一路伸进门内,节点一样一节一节往上分叉。每一根枝上都挂着一个灰白小框,小框里写的不是名字,而是编号。
最下层那一格,赫然写着:
`第二层参数包`
而参数包下面还压着一个更小的标注。
`仅在节点掉线时可见`
陈九的呼吸一下沉住了。
原来如此。
节点掉线不是坏事,是显影条件。只有节点先掉线,藏在版本背后的第二层参数才会露出来。可这也意味着,对方早就把掉线本身写进了版本里。它不是临时出手,是早就准备好等这一刻。
镜里那张白面忽然朝他微微一偏,像在等他接招。接着,终端屏幕上的文字缓慢滚动起来,跳出一行新的提示。
`是否加载第二层参数包?`
`是 / 否`
小马刚要开口,陈九已经抬手按住了他。
“别碰。”
“你想清楚,”小马低声道,“不加载,节点就回不来;加载了,谁知道它会把什么写进来。”
陈九没立刻答。他盯着那行提示,目光一寸一寸往下压,压到最底下时,终于看见了提示框角落里那行极细的附注。
`加载后,版本责任转移。`
他几乎是立刻明白了。
这不是补丁,这是甩锅。
第二层参数包一旦加载,后果不再属于站里,不再属于系统,而会被转嫁到加载者身上。对方要的不是修复,是把失控的定义权塞进他手里,再让他替它背下整个版本的责任。
陈九慢慢抬起头,镜里那张白面正静静看着他。
“你们已经开始怕了。”他说。
白面没有表情,只是镜面深处那串版本号又跳了一下。
`2.0.2 -> 2.1.0`
陈九忽然笑了一下,很短,冷得像刀背擦过铁皮。
“节点掉线是你们的路。”他说,“可第二层参数包,不一定只能由你们来加载。”
话音未落,他猛地把手里的参数单翻了个面,狠狠按在分拣台那台黑屏终端上。
纸面接触屏幕的一刹那,整间快递站像被一只无形的手攥住了呼吸。
灯灭了半秒,又猛地亮起。
黑屏终端上先是跳出一串乱码,紧跟着,原本悬在门口的版本树像被人扯断了根,枝杈一根根往回缩。镜里那张白面第一次出现了明显的裂痕,裂痕里不是脸,而是一层更深的界面。
那界面上,缓缓浮出四个字。
第二层版本。
陈九盯着它,眼神一点点沉下去。
他知道,自己刚刚不是关闭了提示。
而是把它叫醒了。
白面人抬手,像要重新扣住他的手腕。可就在那一瞬,站里的节点链路忽然发出一声极其轻微的断裂声,像一根看不见的线终于崩到了尽头。
终端弹出新页。
`节点A掉线`
`节点B掉线`
`节点C掉线`
`节点D接管`
陈九的心猛地往下一坠。
第四节点,真的来了。
本书首发来自四月天小说网,第一时间看正版内容!
