《太空争霸之我来自未来》 第1章 火焰尽头 倒计时归零后七十一秒,马飞听见了一个不该出现的声音。 不是警报,也不是舱体被气流摩擦时绵长的低啸,而是一阵从箭体深处传来的、极细的金属颤音。 它只持续了半秒。 主屏上,二级发动机氧泵出口压力跳低了百分之三点四,随即被控制系统拉回正常区间。绿色曲线重新贴住标称值,像什么都没有发生。地面指挥中心没有发出询问,自动诊断也只给出一条黄色提示。 马飞却把手从扶手上移到了应急面板。 六十一年的生命里,他有四十年在和火箭打交道。数据会被滤波,传感器会撒谎,结构传来的声音不会。 “星舟一号,确认氧泵压力波动。”耳机里终于传来测控大厅的声音,“幅值在容限内,姿态正常。” “我听到高频振动。”马飞说,“调出泵后轴承温度原始量,不要滤波值。” 两秒后,屏幕右侧展开一组灰色数字。 七十三点一。 七十四点六。 七十七点九。 温升并不陡,却快得不合常理。 “准备中止入轨。”马飞说。 耳机里沉默了一瞬。星舟一号已经接近二级关机点,中止意味着这次耗费十一年、承载着整个团队希望的首飞将以失败告终。更麻烦的是,它的返回窗口只有九十秒。现在改变任务,飞船必须在未经完整验证的姿态下再入。 “总师,压力恢复了。”副指挥的声音发紧,“制导给出的剩余裕量足够。” 马飞看着那条过分平滑的绿色曲线。 三十年前,他也相信过“在容限内”。 “执行中止。”他说,“这是命令。” 他的手指按下红色保护盖。 就在同一刻,舱体猛地向左一沉。 氧泵压力从百分之九十七跌到百分之六十一,发动机推力曲线像被刀砍断。姿态控制喷口连续点火,飞船试图抵消偏转,二级箭体却在失去轴向约束后开始摆振。 红灯铺满屏幕。 “推力衰减!” “俯仰角速度超限!” “二级关机,准备分离!” 马飞看见分离指令发了出去,爆炸螺栓状态却迟迟没有变绿。 零点一秒。 零点四秒。 零点七秒。 前一世——或者说,此刻仍是他唯一的一生——最致命的错误终于露出了全貌:涡轮泵的失稳不是孤立故障。推力下降让箭体进入异常姿态,老化的分离判据又在错误的角速度门限下拒绝执行。两个各自被标注为“可接受”的风险,在七十多秒后咬合成了一把剪刀。 “手动分离无响应!”地面有人喊。 马飞没有再尝试第二次。 他把最后几秒用来盯住原始遥测。泵后轴承温度八十九点二,纵向振动频率一百七十六赫兹,右侧隔热层温度比模型高出一百九十四摄氏度。数字清清楚楚地留在视网膜上。 三点七秒后,箭体折断。 火焰从舷窗外压过来,白得没有颜色。 马飞最后想到的不是疼,也不是遗憾。 他只来得及问自己:如果把所有被分开的风险放回同一张图上,结局会不会不同? —— 他在一阵电铃声里睁开眼。 天花板很低,墙角有一小块受潮后鼓起的石灰皮。头顶不是飞船的照明带,而是一根发黑的日光灯管。窗外有人骑车经过,车铃隔着玻璃响了两声。 马飞没有立刻坐起来。 他的第一反应是事故后的镇静剂造成了幻觉。第二反应是确认呼吸——平稳,胸腔没有灼伤;再确认四肢——有知觉,右手能动;最后听声音——走廊里有人用搪瓷杯接水,广播正在播报早间新闻。 “……邮电部将继续推进国家公用数据通信网建设……” 播音腔平直而遥远。 床边放着一只上海牌手表。七点十二分。 压在手表下面的《北京日报》印着日期:1995年9月17日。 马飞盯了很久,才把视线移向自己的手。 手背上的烧伤疤不见了,虎口那层常年握工具留下的硬茧薄了许多。无名指上没有婚戒——他在四十三岁那年离婚,此后一直戴着戒指留下的浅痕,此刻也不存在。 他起身走到镜子前。 镜中人三十岁,短发凌乱,眉骨右侧有一道少年时留下的细疤。那张脸他并不陌生,只是已经三十一年没见过了。 桌上的工作证给出了最后一个证据。 马飞,北京航天研究所第三研究室,工程师。 门外传来钥匙碰撞声。隔壁宿舍的老董端着铝饭盒经过,隔门喊了一句:“小马,食堂今天有豆腐脑,再不去只剩汤。” 声音年轻得让马飞鼻腔一酸。 老董在二〇一三年病逝。葬礼那天北京下着雨,马飞因为发动机试车没能赶回去,只托人送了花圈。如今他还在门外抱怨食堂,布鞋拖过水磨石地面,走得很慢。 马飞想开门,又把手收了回来。他还不知道该用什么表情面对一个已经死过的人。 胃却先替他作了决定。昨晚那具三十岁的身体大概只吃过一碗面,此刻饿得发疼。桌角放着半只冷馒头,外皮已经干硬。他咬了一口,真实的麦香和酸味一起压住喉咙里翻上来的灼热感。 他扶着桌沿,胃里一阵收紧。 1995年。距离spacex成立还有七年,距离那次让他死去的事故还有三十一年。更早的研究、更慢的计算机、更有限的材料条件,以及一个尚未被任何人画出的故障链,全都在门外等着他。 如果这真是第二次生命,他当然知道未来会出现什么。 可知道一枚火箭将在三十一年后爆炸,不等于知道怎样让它今天就不爆炸。 马飞拉开抽屉,找到一本空白实验记录本。抽屉里还有粮票、两节用过的电池和一封母亲催他国庆回家的信。他把信移到一边,没有写公司名,也没有列历史大事。 他只写下四组数字: 七十一秒。 一百七十六赫兹。 零点七秒。 一百九十四摄氏度。 笔尖停在页脚。他本想写“根因”,又把那两个字涂掉,只留下日期和四组数字。 食堂第二遍开饭铃从窗外传来。马飞合上记录本,洗了把脸,把那封家信揣进外套口袋。 走廊里,老董正为豆腐脑没有香菜和大师傅争论。看见马飞出来,他把自己饭盒里剩的一只烧饼塞过来:“又熬夜了?脸跟纸一样白。” 马飞接住烧饼,手心被余温烫了一下。 “国庆我回趟家。”他说。 老董莫名其妙:“回就回,跟我报什么批?” 马飞低头咬了一口,没有解释。窗外自行车铃一阵接一阵,研究所的星期天照常开始了。 第2章 三点七秒 马飞花了一个上午确认记忆的边界。 他记得2026年星舟一号的总体方案,记得每次关键评审里谁支持、谁反对,也记得许多后来被证明正确的工程路线。但当他试图把氧泵后轴承的完整设计画下来时,笔尖很快停住了。 轴径记得,材料牌号记得,润滑方式记得。 滚子修形的精确曲线却只剩一个模糊轮廓。热处理温度能想起区间,保温时长和炉冷曲线却互相混杂。至于三十一年后那套联合故障诊断软件,他记得数学思想,却不可能凭记忆重写数百万行代码。 人的记忆不是硬盘。 更何况,即使图纸一张不差地摆在面前,1995年的机床、材料纯度和传感器也造不出2026年的成品。 这个结论没有让他沮丧,反而让他安静下来。 未来知识不是仓库,是地图。地图能告诉他悬崖在哪里,却不能替他修桥。 午休前,马飞回到第三研究室。 实验楼仍是记忆中的样子。楼道墙裙刷着暗绿色油漆,门口挂着“严禁烟火”的木牌。资料室里立着一排灰色铁柜,每个抽屉都贴着手写标签。没有联网数据库,历次试验数据保存在纸质曲线、磁带和少量软盘里。 值班的何师傅从报纸后抬头。 “小马,星期天也来?” “先来占张桌子。”马飞把从食堂带回的铝饭盒放到暖气片旁,“晚一点再吃。” 何师傅闻见盒里炖白菜的味道,皱眉:“九月就拿暖气热饭,你当它开着?” 马飞这才想起供暖还要等一个多月。何师傅从柜下摸出自己的热水盆,让他把饭盒坐进热水里,嘴上仍念叨年轻人干活不记季节。 “下周评审,我想再看一下涡轮泵转子试验。” 何师傅把登记簿推过来:“哪一年的?” 马飞顿了一下。 在2026年的事故复盘里,最早的异常可以追溯到某型发动机1994年的一次耐久试验。那个结论来自后来数字化的旧档案。此刻,它们还散落在不同科室,没有人把轴承温升、振动峰和分离时序放在一起。 “先看九三、九四年的。”他说,“包括判废件记录。” 何师傅从眼镜上方看了他一眼:“评审不看判废件。” “所以我想看。” 二十分钟后,六只牛皮纸档案袋摆在桌上。 马飞没有找到命中注定的那张曲线。 他找到的是一堆不完整的证据:某次长程试验在八十七秒后出现一百六十九赫兹的窄带振动;另一台泵的后轴承温度突然上升,试验员把原因归为热电偶松动;一份判废报告提到保持架表面有轻微擦伤,却没有继续做金相分析。 这些现象和星舟一号的一百七十六赫兹并不相同。型号不同、载荷不同、测点也不同。任何一个严谨的工程师都不会仅凭相似数字宣布找到未来事故的根因。 马飞却看见了一条可以开始验证的路。 他取出记录本,只抄原始数据,不写结论。 炖白菜在热水里泡得温吞。马飞吃了两口,又翻到一份被退回的试验交接单。单上写着热电偶松动,却没有更换前后的对照记录;振动异常出现在同一时间段,两个部门的报告却使用了不同起点。 他在纸上画了三条时间轴,把各自的零秒对齐。原本相隔十几秒的温升和振动峰,落到了同一个两秒窗口里。 何师傅端着茶经过,停下脚:“你把人家的表画错了?” “没错。三块表的零点不一样。” 何师傅看不懂全部曲线,却看懂了三条竖线重合。他放下杯子,把已经锁回柜里的判废件目录又拿了出来:“九四年还有一盒照片,登记单没写。你要不要看?” 照片里,一只轴承保持架的擦痕恰好位于温升测点附近。它仍不能证明未来事故,却让马飞手里的假设第一次多了一件不是来自记忆的实物证据。 下午三点,资料室的门被推开。张建国抱着一卷图纸站在门口。 张建国四十七岁,鬓角已经有了白发。他是第三研究室的副主任,也是马飞进所后一直带他的老师。三十一年后的病房里,老人曾握着他的手,问他是不是把一辈子都过成了一次没有结束的试验。 此刻,张建国身体硬朗,声音也有力。 “我在办公室找你半天。”他扫了一眼桌面,“怎么翻起判废档案了?” “想查转子系统在长程工况下有没有共同的异常频段。” “哪个任务要求的?” “没有任务。” 张建国放下图纸,没有立刻批评。他抽出马飞抄下的曲线编号,看了两页。 “一百六十九赫兹和一百七十六赫兹,”他说,“你把不同型号的数据放在一起,是想证明什么?” “现在什么也证明不了。”马飞回答,“我只怀疑我们对低幅高频振动的处置太分散。结构组看结构,泵组看温度,控制组看姿态。各自都在容限里,组合起来未必还在。” 他把三条对齐后的时间轴推过去,没有先提未来那一百七十六赫兹。 “这台泵的报告说温度异常发生在振动以后十二秒,控制组因此没把两件事关联。按各自原始时标换算,它们相差不到两秒。保持架照片也在,但没人把照片编号抄进热电偶处置单。” 张建国翻到原始记录,自己算了一遍。第一次结果差半秒,他重新核对采样起点,第二次与马飞一致。 张建国的眼神变了。 这个说法在三十一年后叫跨系统耦合风险,在1995年的工程体系里不是不存在,只是很少有人能获得足够完整的数据。部门边界比技术边界更难穿透。 “你从哪儿想到的?” 马飞早已为这个问题准备了一个不完美的答案。 “昨晚做了个梦,梦见一台发动机在正常数据里坏了。” 张建国盯着他。 片刻后,他拿起图纸卷,在马飞头上轻轻敲了一下。 “梦不能写进报告。”他说,“明天九二一专题会,你要是敢拿梦当依据,我让你回去抄一个月试验规程。” 他说完走向门口,又停住。 “不过,把九四年七月那台泵的原始磁带借出来。周二有台时,可以重放一次。” 门关上后,马飞低头看着记录本。 张建国没有相信他的结论。 但他给了一次试验机会。 马飞把已经冷透的白菜吃完,去值班室洗饭盒。何师傅见他回来,朝桌上努了努嘴。 那里多了一张磁带机预约单,张建国已经签过字。时间是星期二晚十一点到凌晨两点,后面还用红笔加了四个字:原始量全留。 傍晚,马飞把六只档案袋逐一归位。那张保持架照片被重新登记,夹进对应档案袋。何师傅锁柜时抱怨他们给星期一值班添了活,手上却把新标签压得格外平。 马飞将预约单折好放进记录本,骑车离开实验楼。车筐里空饭盒一路轻响,晚风从袖口灌进去。经过研究所门口的小卖部时,他停下来买了两节新电池和一包最便宜的磁带标签。 星期二晚十一点,他会再听一次三十一年前被当成噪声的东西。 第3章 九二一会议 星期一早上八点,第三研究室会议室坐满了人。 墙上挂着载人飞船总体布局图,图纸边缘用图钉压住,仍被电风扇吹得轻轻起伏。长桌中央摆着十几只搪瓷杯,烟雾悬在日光灯下,把每个人的脸都隔出一层灰。 会议讨论的是九二一工程某分系统的可靠性分配。 马飞坐在末端,面前摊着会议记录本。他曾无数次回忆这个房间。前一世的自己在1995年只关心能否在会上多说一句,后来当上总师,又厌烦年轻人只会重复上级意见。 现在,他更清楚一句话可能付出的代价。 他来得太早,食堂装在茶缸里的豆浆还烫着,表面结了一层薄皮。主任进门前看见他桌边的烧饼屑,顺手递来一张旧报纸,让他垫在本子下面,免得油点落到会议记录上。旁边的赵工把烟别在耳朵后面,低声问他是不是又让张副主任抓了夜班。 “还没抓,今晚以后就不一定了。”马飞说。 赵工没听出这句话里的认真,笑着把半块橡皮推给他。 总体室提出把某项泵系统故障率按既有型号外推。数字并不荒唐,计算方法也符合当时规程。问题在于,长程工况与多次启动会把原本相互独立的风险耦合起来。那是十几年后才被一连串事故逼出来的教训。 张建国坐在对面,没有看马飞。 发言轮到第三研究室时,主任先汇报了既定意见。眼看议题要进入下一项,马飞举起手。 “我有一个数据口径问题。” 几道视线落过来。 主任皱了皱眉:“说。” 马飞站起身,没有提未来的可回收发动机,也没有说系统一定会失败。 “当前故障率取自单次启动、额定时长试验。九二一任务的工作谱不同。我建议把轴承温升、窄带振动和控制响应做一次联合回放,至少确认它们能否继续按独立事件处理。” 总体室的周研究员翻了一下材料。 “联合回放用哪套系统?” 问题直接击中要害。 1995年没有后来那种统一遥测数据湖。结构数据在磁带上,控制量在另一套采集设备里,采样频率甚至不同。想把它们对齐,需要人工校时、转换格式,再用工作站重新处理。 “现有系统做不了完整回放。”马飞说,“可以先选一台异常泵,把三个时间窗口人工对齐。” “需要多少人?” “两个人,一周。” “台时呢?” “四小时。” 周研究员把笔搁下:“为了一个没有故障结论的异常,动四小时台时?” 会议室里有人轻轻笑了一声。 马飞没有争辩。他知道,如果自己在这里引用未来事故,只会像一个用末日预言抢夺资源的人。 他从记录本后抽出昨晚做的准备表。上面没有结论,只有磁带卷号、三套设备的采样频率、各自的校时标记和需要转换的数据段。原本计划回放全部四十分钟,他把窗口压缩到异常前后各九十秒,先拿人工对齐验证方法。 “四小时是完整方案。”他说,“先做窄窗口,两小时能出一版。失败就停,不占下一班组的时间。” 周研究员接过表,看了看卷号:“控制量的时标一秒一记,怎么压到二十毫秒?” “主记录慢,但磁带上保留了设备启停的脉冲沿。三套记录都有试验台总电源切换造成的同一个缺口,可以拿它做第一次对齐,再用转速过门限的时间做校验。” 赵工把耳后的烟拿下来,没点,凑过去看了一眼:“总电源那一下算故障干扰,清洗数据时通常删了。” “删掉以后是干扰,删掉以前是时钟。” 会议室里的那声轻笑停了。周研究员用铅笔在准备表上圈住两个卷号,没有表态,只把纸放到自己手边。 “不是为了证明它有故障,”他说,“是为了验证我们的独立性假设有没有证据。” 主任打断他:“小马,风险意识是好事,但工程不能靠无限扩大疑点。先把现有任务做完。” 议题被翻了过去。 马飞坐下,在记录本上写了四个字:建议未采纳。 他又在后面补了一行:窄窗口方案留档。 他并不愤怒。资源有限时,组织必须拒绝大多数未经证实的担忧。真正的问题不是谁短视,而是谁能把担忧变成足以改变优先级的证据。 散会后,张建国让他留下。 烟雾散去,墙上的图纸终于不再模糊。 “你刚才说两个人一周。”张建国问,“第二个人是谁?” “您。” 张建国气笑了:“你倒会安排。” “校时误差如果超过二十毫秒,结论没意义。所里能凭经验识别旧磁带时标漂移的人不多。” “拍马屁也不给你台时。” “我知道。” 张建国收起会议材料,神情慢慢严肃。 “马飞,你最近像被什么东西追着。看判废记录,提跨系统回放,连话都比以前快。家里出事了?” “没有。” “那你急什么?” 窗外,一架飞机从高空飞过,只留下几乎听不见的嗡鸣。 马飞当然可以说,还有七年。七年后,一家叫spacex的公司会成立;三十一年后,他会死在一条今天就已经出现的故障链上。 但七年只是他的时间,不是张建国的证据。 “我怕我们习惯了把每个局部都做到合格,”他说,“最后却造出一个不合格的整体。” 张建国看了他很久。 “这句话像工程师说的,不像做梦的人说的。” 他从文件夹里抽出一张手写台时安排,推到马飞面前。 “周二晚上十一点到凌晨一点,只有两个小时。再多没有。磁带格式你自己转,我负责校时。” 马飞接过安排表。 “如果什么也没发现呢?”张建国问。 “就把没有发现也写进报告。” “如果发现了?” “先复测,再谈结论。” 张建国点头:“记住你今天这句话。无论你脑子里有什么天才想法,都要先服从证据。” 他把手伸进文件夹,又摸出马飞刚才那张准备表。右上角多了一行周研究员的铅笔字:总电源脉冲可试,原始卷不得覆盖。 “老周把表还给我时,说你要是肯先做两小时,他让出今晚的半小时预读。”张建国说,“别高兴。他只是舍不得一套可能有用的校时办法被你做坏。” “半小时够我检查磁带头。” “还没干就说够,毛病一点没改。”张建国瞪他,“晚上十点来。自带夜宵,我不分你。” 走出会议室时已经快十一点。走廊窗户晒得发白,几个参加完会的同事端着饭盒往食堂去。赵工从后面追上来,把那半块橡皮塞进他上衣口袋。 “总电源那一下,真能对上?” “先看原始带。” “要是能对上,控制组那份报告得重算。” 马飞点头:“所以得让他们自己来算。” 赵工看了他两秒,转身去追前面的人,边走边说晚上给他留一只茶叶蛋。 马飞没有去食堂。他先绕到磁带库,把周研究员圈出的两卷带子办了预借,又在小卖部买了一个灯泡。宿舍那盏日光灯最近总闪,他今晚回去还得抄格式转换表。 借阅单、台时安排和那张沾了烧饼油的准备表叠在一起,不厚。马飞用自行车后座的弹簧夹压住它们,骑过院子时特意避开了一处积水。 晚上十点以前,他还有十一小时。 第4章 图书馆的检索框 研究所资料室没有马飞需要的两篇论文。 一篇谈转子碰摩的非线性特征,另一篇讨论多源遥测的时间对齐。索引卡片上能查到题名,期刊却缺了那两期。何师傅给他开了一张馆际借阅单,告诉他最快也要两周。 马飞等不起两周。 星期二下午,他骑车去了北京航空航天大学图书馆。 九月的风已经有了凉意。车棚里挤满自行车,教学楼前挂着迎新横幅。马飞出示研究所证件,在期刊阅览室翻了三个小时,只找到其中一篇的摘要。 中午带来的烧饼早凉透了。他坐在图书馆台阶边吃,纸袋被油浸出半透明的圆斑。两个新生抬着被褥从他面前跑过,麻绳松了,一只搪瓷盆滚出去很远。马飞替他们捡回来,才发现自己手里还攥着那张写满卷号的磁带借阅单。 晚上十一点要回放磁带,公交末班车赶不上,他只能骑回所里。来回二十多公里,裤脚已经蹭了一圈链条油。三十岁的腿经得住,胃却提醒他这一世也不能拿咖啡和止痛片当饭。 真正的线索来自楼下电子检索室。 那里有六台计算机,显示器厚得像小电视。墙上贴着收费标准:国际联机检索按分钟计费,打印另算。一个穿浅灰衬衫的女生坐在最里面,屏幕上是一串英文检索结果。 马飞原本没有注意她。 直到她把同一个中文题名拆成三种拼音,又分别输入英文关键词,结果仍是一片空白。 “不是没有论文,”她对管理员说,“是系统不知道我找的是同一件事。” 管理员已经习惯学生抱怨:“数据库就这么收的。你换主题词。” “主题词表里没有‘中文信息处理’。” “那就查‘计算语言学’。” “可我要找的是检索,不是语言学。” 管理员耸耸肩,去处理另一台机器的打印故障。 女生盯着屏幕,抿紧嘴唇。她没有继续抱怨,而是拿出笔记本,把刚才的每组关键词和返回数量逐项记下。 她的笔记写得很密,页边还记着每分钟的费用。为了省钱,她先在纸上把括号和逻辑符号排好,确认无误才敲回车。即便这样,前面几次空结果已经吃掉二十多块钱。 马飞在她旁边的空位坐下。 “把‘chinese text’换成‘ideographic information retrieval’试试。”他说。 女生转过头。 她二十二三岁,头发用黑色皮筋束在脑后,眼神里没有被搭话的不自在,只有判断这个建议是否有用的审视。 “你查过?” “没有。九十年代初的论文不一定用后来统一的术语。” 她输入关键词。 屏幕刷新得很慢。十几秒后,返回了七条结果。 女生快速扫过题名,在第三条停住。 “就是这篇。”她说。 她没有道谢,先把检索式完整抄下,才转向马飞:“你做信息检索?” 管理员听见动静,从另一台机器后探头:“找着了?” 苏雨桐把题名和摘要号报过去。管理员查了馆藏联合目录,发现资料不在北航,却能从中科院的一套会议论文缩微胶片里调阅。他在借阅单上盖章时,顺手把苏雨桐刚才那个英文主题词抄到了柜台旁的便笺上。 “以后有人查这个,也可以先试试。”他说。 苏雨桐这才把铅笔放下,肩膀略微松了一点。二十多块钱没有白花,后面的人还可能少走一次弯路。 “做发动机。” “发动机的人为什么知道这个词?” “因为发动机的人也会找不到论文。” 她笑了一下,很短。 “苏雨桐,计算机系研一。” “马飞,航天研究所。” 苏雨桐指了指他手边的借阅单:“多源遥测时间对齐?” “不同设备采样的数据,要还原到同一条时间轴上。” “听起来和我做的事差不多。” “哪里差不多?” “你的设备用不同的时钟描述同一次试验;中文资料用不同编码、拼音和主题词描述同一个概念。人知道它们是一回事,机器不知道。” 马飞看向她的屏幕。 七条结果中有两条重复,一条题名乱码,一条只有摘要没有馆藏位置。未来的搜索引擎会把这种混乱藏在一个简洁的输入框后面,用户几乎忘记信息曾经如此难找。 1995年,这个输入框还不存在。 或者说,存在无数个彼此隔绝、只接受专业口令的输入框。 “如果不靠固定主题词呢?”他问。 苏雨桐把铅笔转了一圈。 “全文建索引。先把资料里的词和位置抽出来,查询时直接匹配。” “中文没有天然空格。” “所以要决定什么算一个词。” “词典之外的新词怎么办?” “统计相邻字出现的频率。” “机器内存不够。” “分批做。” “磁盘慢。” “那就少读几次。” 两人的对话越来越快。旁边一名学生不满地看过来,苏雨桐才压低声音。 “你真是做发动机的?” “目前是。” “目前?” 马飞没有回答。 管理员送来检索账单。苏雨桐看见金额,眉头立刻皱起。刚才那次国际联机检索花掉了她两天饭钱。 她从帆布书包里掏出零钱,一张张数。数到最后还差八角,便把原本夹在笔记本里的晚饭票也抽出来。管理员看了眼墙上的钟,说打印机刚才卡纸的两分钟不算,从账单上划掉一笔。她重新数过,刚好够。 马飞没有替她付钱。他们才认识十几分钟,那样做只会把一个技术问题变成人情。他把自己尚未使用的检索时间退掉,换成两张摘要打印纸,其中一张递给苏雨桐。 “算我买你刚才那句‘机器不知道’。” 苏雨桐接过去,看了看他:“发动机的人都这么算账?” “做试验时,谁提出关键问题,谁就该在记录里留名字。” 这次她认真看了他一眼。 马飞拿出自己的借阅单,在背面画了一个方框。 “假如有个系统,资料提前收集在本地。你输入自然语言,它先找相关文档,再按重要程度排序。查询不走国际线路,只付一次联网采集的钱。” 苏雨桐看着那个方框。 “谁来收集?” “程序。” “谁允许程序拿走资料?” 马飞的笔停了一下。 未来的人太习惯爬虫,以至于常把“能够获取”误当成“可以获取”。1995年的网络规则尚未成形,但不代表没有边界。 “公开站点,控制频率,标明来源,接受拒绝。”他说。 苏雨桐的目光这才从方框移到他脸上。 “你想做这个?” “我想知道它值不值得做。” “那你问错了。”她合上笔记本,“技术上值不值得,做一个最小版本就知道。真正的问题是,你愿不愿意为了验证它,花掉你现在最缺的东西。” “什么?” “时间。” 电子检索室的挂钟指向五点四十。马飞晚上十一点还要回研究所做磁带回放。 他确实最缺时间。 苏雨桐收好打印纸,在借阅单背面写下一串数字。 “这是计算机房的分机。周五晚上我值班,可以借你四十分钟机时。你要是只有方框,就别来;有能跑的东西再说。” 她把纸推回去,起身离开。 她走出门几步,又折回来,把账单压在方框旁边。 “周五带上这个。”她说,“别只给我讲将来能做什么。先让我输一个词,看它能不能回来东西。” “可以。” “还有,四十分钟机时是实验室的,不是我的。你迟到一分钟,我就关机。” 马飞在借阅单上写下周五晚七点,又把两篇论文的缩微胶片调阅号抄在下面。起身时,他发现裤兜里还剩半块中午的烧饼,已经被压扁。他走到楼下,用一毛钱买了杯温水,就着水把它吃完。 六点二十分,他推车出校门。车灯的发电摩擦轮有些打滑,骑快了才亮,慢下来便只剩一点昏黄。那串分机号码放在上衣内袋里,跟磁带库的预借单贴在一起。 马飞沿学院路往南骑,经过小卖部时买了一袋方便面和两根火腿肠。张建国说过不分夜宵,他决定也不分对方火腿肠,除非今晚的三条时间轴真能对上。 离十一点还有四个多小时。风从领口灌进来,他把车蹬得更快了一些。 第5章 被退回的报告 周二夜里十一点零六分,旧磁带机开始转动。 机器占了半张桌子,运转时有一种沉闷的摩擦声。张建国坐在操作台前校验时标,马飞守着旁边的工作站,把不同采样频率的数据转换成统一格式。 地下机房比外面低了七八度,墙根返着潮气。马飞把在北航门口买的方便面掰成两半,一半泡在搪瓷缸里,另一半连同火腿肠压在记录纸下面。张建国进门时闻见调料包的味道,说这种东西吃多了脑子也会变成蜡。 “您不是不分我夜宵吗?”马飞问。 “我不分你,你可以分我。” 马飞把火腿肠掰了一半。张建国接得很自然,像白天那句话从来没说过。 两小时台时,真正能用的只有九十七分钟。 第一卷磁带在十二分钟处出现坏块。第二卷的控制量比试验总时钟慢了四十毫秒。等他们把三套数据勉强对齐,已经过了午夜。 周研究员圈出的总电源脉冲确实还在原始带上。三条记录里,它都表现为一个不到十分之一秒的凹口。马飞把清洗程序关闭,那道原本会被当作干扰删掉的缺口重新露出来。 张建国拿透明直尺贴在屏幕上,报数。马飞一次次修改偏移量。第六次重放时,三个凹口终于压进同一条竖线,误差十一毫秒。 张建国把直尺放下:“你在会上说二十毫秒。” “现在比我说的好。” “别得意。这只能证明你的尺子能用。” 话是这么说,他还是在台时记录上补了一句:窄窗口校时方法有效。签名落得很重,纸下的复写联都透出了笔画。 “先看你说的异常窗口。”张建国揉了揉眼睛。 屏幕上,轴承温度缓慢抬升。结构测点的一百六十九赫兹分量在同一时间增强,泵出口压力却仍在正常波动范围内。三条曲线没有出现戏剧性的交叉,只在试验结束前二十多秒表现出若有若无的相关。 马飞把时间窗向前移,又向后移。 相关性随校时误差变化很大。误差二十毫秒时,峰值接近;误差四十毫秒时,关系几乎消失。 “证据不够。”他说。 张建国看了他一眼:“失望?” “比什么都没有好。至少知道下一次采样要统一时钟。” “这就对了。工程上最值钱的,不一定是漂亮结论。有时候是知道现有数据回答不了什么。” 凌晨一点,机器准时断电。两人把转换后的数据写进三张软盘,贴上编号,封进资料袋。 马飞用了两天写报告。 他把标题从《涡轮泵异常振动与热失稳耦合分析》改成《长程试验多源数据联合回放可行性初步评估》,删除了所有超出证据的判断,只保留三条建议:统一采样时钟,保留未滤波原始量,对长程试验建立跨专业异常记录。 报告送到质量处,下午便被退了回来。 退回意见只有两行: “样本单一,不足以支持流程调整。建议结合现型号研制任务另行论证。” 马飞拿着文件站在走廊里,纸边被手指捏出一道弯折。 负责收文的刘姐隔着窗口提醒他:“别捏坏了,还要入档。”她把退回章盖偏了些,重新拿红笔描清日期,又压低声音说,附件里的校时表质量处复印留了一份。 “报告退了,表留下了?” “有人觉得以后别的型号能用。能用归能用,改全所流程是另一回事。” 马飞把纸边抚平。退回仍是退回,但那两个夜班小时并没有全部沉进柜子。 他知道这份报告没有错,也知道退回意见同样没有错。一次旧数据回放不足以改变整个研究所的采集规程。可未来事故不会因为证据暂时不够就停止逼近。 那种熟悉的急迫感再次涌上来。 三十一年看似漫长,拆到每一种材料、每一套软件和每一轮试验上,几乎没有哪一年可以浪费。 “想拍桌子?” 张建国从楼梯口走来。 马飞把文件递给他:“他们没看附件。” “看了也会退。” “为什么?” “你要求三个专业为了一个旧型号的模糊相关性改变记录方法。增加设备、增加工时、增加归档量。收益是什么?” “避免遗漏组合风险。” “哪一种组合风险?发生概率多少?造成什么后果?” 马飞答不上来。 他知道2026年的后果,却不能把它作为1995年的论据。更重要的是,星舟一号的发动机和眼前这个旧型号之间隔着三十年迭代。把未来事故强行压到今天的设计上,也不严谨。 张建国把报告还给他。 “你看见的是方向,质量处要的是决策依据。中间差的东西,叫工程。” 马飞沉默片刻:“再做两台样本呢?” “哪来的台时?” “借周末检修前的空档。” “谁给你转磁带?” “我学。” “谁校时?” “先用同步脉冲记录反推,误差控制在十毫秒内。” 张建国的嘴角动了一下:“还差什么?” “一个愿意在质量处替我承担签字责任的人。” “别看我。我还没答应。” 他说没答应,却带马飞去了地下试验间。 那里堆着一套淘汰的采集机柜。张建国从抽屉里找出维修手册,拍掉封面的灰。 “自己学。下周检修,如果你能把同步脉冲读出来,我替你申请两台旧磁带。读不出来,报告归档,别再用直觉占公共资源。” 马飞翻开维修手册。书页上沾过机油,采集板接口图旁有前任使用者写的铅笔数字。机柜少了一根专用显示线,仓库领不到新件,他便蹲在废料筐边找了半小时,从一台报废示波器上拆下一只兼容插头。 张建国没有帮忙,只在他接线前把总电源闸刀拉下来:“先验线,后上电。你死过一次似的急,也不能拿手去验二百二十伏。” 马飞的动作停了半拍,随后把万用表接上。 线路第一次通电,屏幕全是乱点。第二次,他换了接地位置。第三次,测试带上的同步脉冲终于从噪声里立起来,峰顶不稳,却足够计数。 张建国看了一眼手表:“四十八分钟。” “能申请磁带了?” “明早先把接线图补齐。别人看不懂,你就当没读出来。” 他说完往楼梯走,走到拐角才把两张空白的旧磁带申请单放在台阶上。申请人一栏尚未填,担保人处已经签了名。 马飞接过手册。 “张工,您为什么帮我?” “我不是帮你。”张建国说,“我是怕你哪天真碰到一个危险,因为第一次报告被退,就学会只在背后骂流程。” 地下室没有窗,只有机柜上的绿灯一明一暗。马飞捡起那两张申请单,先照维修手册把接线编号逐根抄到记录纸上。写到最后一根线时,手指沾的黑油在纸角留下一个指印。 回宿舍已经快两点。赵海给他在暖水瓶里留了半壶水,桌上还扣着一只冷馒头。马飞洗完手,把馒头掰开夹上剩下的半根火腿肠,坐在闪烁的日光灯下补接线图。 墙那边有人打鼾,走廊尽头的水龙头没有拧紧,隔几秒滴一声。 搜索程序的软盘就在抽屉里。他没有取出来。接线图画完时,天边已经泛白,那张被退回的报告压在桌角,旁边多了两张有张建国签名的申请单。 第6章 七年窗口 九月二十四日,星期日。 马飞在宿舍墙上贴了七张白纸。 胶水是从资料室借来的,刷得太薄,最右边那张总往下卷。赵海去洗床单了,搪瓷盆占着过道,窗台上晾着两双洗得发白的袜子。收音机里正在转播足球,隔壁每进一个球就有人拍桌子,震得墙皮往下落灰。 马飞先把床单的一角掀起来罩住枕头,免得晚上睡在灰里,才继续写。 每张纸代表一年,从1995到2002。纸上没有写后来那些着名公司的名字,只写他必须提前获得的能力。 1995:验证搜索需求,完成可运行原型。 1996:离开研究所,建立公司,活下来。 1997:形成稳定索引与数据获取能力。 1998:公开发布,取得第一批真实用户。 1999:建立可持续收入,开始储备控制与仿真人才。 2000:启动支付与算力基础设施。 2001:完成商业航天团队和试验资源准备。 2002:发动机关键技术预研进入实物阶段。 他在最后一张纸下写了“spacex”,又很快划掉。墨迹下面露出的,是材料周期、试验次数、审批流程和每个月都要发出去的工资。盯着一家尚未成立的美国公司,只会把他带进别人的路;这些按日历消耗的东西,才会在每一天拦住他。 桌上摆着三本账。 第一本是钱。他全部存款四千七百六十元,月工资三百二十八元。若现在辞职、租房、买电脑,这些钱撑不过半年。 第二本是时间。研究所本职工作每周至少五十小时,磁带回放还会占用晚上。搜索原型只能从睡眠里挤。 第三本是信用。他没有商业经历,没有投资人,也不能向任何人解释自己为什么确信互联网会改变世界。 本子旁还放着母亲寄来的汇款单,五十元。附言只有一句:天凉添衣,国庆能回就回。 前一天他才把回家的日期写进值班调换表,这五十元无论如何不能填进创业账。马飞把汇款单夹进家信里,准备明天去邮局原路寄回,再从工资里添二十元给父母买药。上一世的他总觉得等项目结束就有时间,项目却从来没有真正结束过。 这三本账没有哪一本支持“立刻创业”。 马飞把辞职时间写在1996年第一季度,而不是明天。 离开以前,他还得完成三件事:交付手上的喷注器改型,做出能够证明需求的搜索原型,找到至少一条可以换来现金的技术服务。做不到这些,辞职只会把急迫换成饥饿。 门被敲响。 同宿舍的赵海拎着饭盒回来,看见满墙白纸,笑道:“你这是准备考研究生,还是算命?” “做年度计划。” “七年?” “怕明年忘了今年为什么忙。” 赵海把饭盒放下,扫到“建立公司”四个字。 “你要下海?” 1995年,“下海”已经不是新鲜词,但从航天研究所离开仍像主动放弃一张能保一辈子的船票。 马飞没有否认:“还没决定。” “真出去卖电脑?” “不卖电脑,做软件。” 赵海的表情更担忧了:“软件怎么卖?一张软盘复制一下,谁还给你钱?” 这个问题比很多未来商业课都更接近本质。 马飞说:“不只卖一张盘。提供别人自己做不了的服务。” “比如?” “替企业整理数据,替网站找到用户,替用户找到信息。” 赵海听懂了前两句的一半,第三句完全没懂。他摇摇头,去水房洗饭盒。 走到门口,他又折回来:“你真要出去,床和桌子怎么办?” “床还给所里,桌子你留着。” “谁稀罕你这张腿都不齐的桌子。”赵海踢了踢桌脚,晃得三本账一起抖,“至少先攒够半年饭钱。外头一碗面都比食堂贵。” 他说完塞给马飞一只刚煮好的鸡蛋,说是同乡从家里带来的,放久了要坏。马飞剥开蛋壳,把“一天最低生活费”从两块五改成三块二。赵海说得对,计划里不能只给机器留电费,不给人留饭钱。 马飞重新看向墙。 未来的搜索广告、云计算和支付网络,在1995年都只是遥远的答案。今天的客户不会为未来买单。他必须从当下可以理解的需求开始:数据库整理、局域网检索、公开资料索引。 下午,他去了中关村。 沿街柜台里摆着主板、内存条和一摞摞软件光盘。商家报出的配置五花八门,486正在降价,pentium仍贵得惊人。马飞没有立刻买。他逐家记录二手机器的价格、保修和硬盘状况,又询问调制解调器和电话线路。 一家柜台的老板听说他要做全文检索,给他看了套图书管理软件。 “你说的功能这里都有,题名、作者、分类号,输入就能查。” “如果不知道题名呢?” “那怎么查?” “只记得正文里一句话。” 老板把软件盒收了回去:“那是人脑的事。” 马飞在价格表旁边写下这句话。 老板见他真写,又把盒子拿回来:“你要是能做到,先卖给旧书店。书名抄错一个字,伙计能翻半天库房。” “旧书店有电脑吗?” “大的有,小的连账本都舍不得换。” 这不算订单,却是第一个不来自马飞记忆的使用场景。他请老板在价格表背面写了两家装过电脑的旧书店地址。老板收了他两毛复印费,又嘱咐真做出来别忘了回来演示。 傍晚,他在邮电局营业厅拿到一份数据通信业务说明。拨号速率、初装费、按时计费,每一项都比记忆里的互联网昂贵。一次不受控制的网页采集,就可能吃掉他半个月工资。 昂贵的价目表替他砍掉了一批华而不实的想法。联网时间必须省,抓取要能断点续传,重复内容不能付两次电话费,本地索引还得塞进几兆内存。那些为亿级网页设计的未来架构,此刻搬来一个就会多压一笔账单。 回到宿舍时,七张纸在晚风里轻轻晃动。 马飞把“搜索引擎”下面原先写的“复制成熟算法”涂掉,改成: 为1995年的稀缺条件重新设计。 他又在第一张纸底部补上一条红线: 任何计划不得以透支别人的人生为默认资源。 那是写给苏雨桐的,也是写给张建国的。 他拥有三十一年的记忆,却没有权利要求身边的人为他的秘密承担代价。 写完以后,马飞把墙上的计划从头看了一遍,又把2001年那张纸上“完成商业航天团队”里的“完成”改成“开始组建”。七个人、七十个人和七百个人,都不能像设备一样填进采购单。 赵海回来时,床单还在滴水。他把搪瓷盆往床下一塞,抬头看见那七张纸终于贴牢了。 “国庆那几天也写工作?” “不写。”马飞把1995年的纸翻过来,在背面记下火车班次,“先回家。” 晚饭是食堂打回来的土豆烧茄子,油已经凝在饭盒边。两个人就着收音机把菜吃完。赵海借走他的红笔,在1996那张纸最下面添了一行:欠我一个鸡蛋。 马飞没有擦,拿铅笔在后面写:发工资还两个。 第7章 一台二手486 中关村的摊主把机箱搬上柜台时,先用袖子擦了擦顶盖的灰。 机器从一家外贸公司淘汰下来,486dx2,主频六十六兆赫兹,八兆内存,四百二十兆硬盘。机箱右侧有一道凹痕,软驱读盘时像咳嗽,显示器边角微微偏色。旁边那台擦得发亮的奔腾机要贵上两千七,马飞连第二眼都没看。 老板开价四千六。 马飞拆开机箱,检查电容和硬盘接口,又让机器连续跑了四十分钟内存测试。 老板起初很有耐心,二十分钟后开始催,说机器出门以后概不退换。马飞没有关测试程序,又从包里拿出一张自带的启动软盘,运行磁盘扫描。 屏幕上很快跳出坏簇。前半段只有三个,越往后越密,最后一共四十二个。老板探头看见数字,伸手就想按复位键,被马飞挡住。 “标签上写的是完好硬盘。” “二手机哪有一点坏道没有?给你便宜一百。” “索引文件写到坏区,便宜一百也会把几天的数据一起丢掉。换柜台下面那块同容量的。” 老板的脸沉下来:“你怎么知道下面有?” “刚才拿螺丝刀时看见的。封条日期比这块晚半年。” 旁边等装机的两名学生也围了过来。老板没再争,把备用硬盘装上。马飞当着他的面重新跑了一遍扫描,又让他在收据背面写明七天内非人为故障可换。 “四千二,带十四点四k调制解调器。” “那东西单卖六百。” “硬盘有坏道,电源风扇也该换了。” 老板瞪着他:“你到底做火箭还是修电脑?” “穷的时候都得会。” 最后成交四千三百元,送两张空白软盘和一根电话延长线。 调制解调器原本不在赠品里。老板把收据递过来时,马飞指了指开着的机箱:“电源风扇轴承响,您不换也行,把那只积压的十四点四k给我。” “你连积压都看得出来?” “包装上去年的灰比今年厚。” 老板盯了他半天,骂了一句做火箭的买电脑最麻烦,还是把调制解调器塞进纸箱。临走又追出来,问全文检索做成以后能不能帮他把库存单也查快一点。 马飞在收据背面记下柜台电话。这是他付出四千三百元以后,拿到的第一个潜在客户号码。 搬机器回宿舍那天,赵海帮他抬上三楼。两个人把沉重的显示器放到桌上时,马飞的存款只剩四百多元。 旧书桌承不住显示器,左前腿发出一声轻响。赵海骂着扶住桌面,马飞找来两块废木板垫在下面,又用铁丝把横撑重新扎紧。忙完以后,两个人的手上全是灰,晚饭时间也过了,只能去门口小摊分一碗加了双份面条的汤面。 赵海把碗里的荷包蛋夹给他:“四千多都花了,别明天饿死在机器前面,所里还得给你报工伤。” 马飞把蛋又夹回一半:“你抬显示器,也算项目成本。” “你真疯了。”赵海喘着气说,“这东西顶你一年工资。” “所以不能让它闲着。” 电话线从走廊值班室临时接进来,每晚十点后才能使用。马飞向管理员交了押金,答应详细登记通话时长。第一次拨号时,调制解调器发出尖锐而奇怪的握手声,像两台机器隔着黑暗试探彼此。 连接成功: bps。 屏幕上的字符一行行出现。 他没有扑向未来记忆里那些熟悉的算法论文。第一晚只做三件事:测量线路实际吞吐,记录断线频率,下载一份公开目录页。 四十七分钟里断了三次。 值班室门外还有两个人等着给家里打电话。每次线路断开,管理员都敲门提醒他计费表还在走。马飞把第三次断线的时间记完,主动挂断,让排在后面的女工先打。她抱着刚睡着的孩子,只说了三分钟,问老人吃药没有,便把听筒还回来。 “你接吧,孩子一会儿醒。”她说。 马飞重新拨号时,把下载器的第一条需求改成:断线后不得从头计费。 一个不到三十kb的文件因为每次从头传输,最终耗费了二十多分钟。若照这种方式抓取网页,系统还没建立索引,他就会先被电话费拖垮。 马飞关掉连接,开始写下载器。 他选用c语言,看中的是现有编译器稳定,也能直接管住每一块内存。程序先读取远端文件长度,再把内容分成小段;断线后只请求缺失部分。服务器若不支持分段,就把已经验证的块保留在本地,重新连接时至少避免重复处理。 第一版在凌晨两点编译通过。 第二版解决校验错误。 第三版仍会在电话线路出现短暂噪声时把半截标签当成正文。 马飞没有继续。他必须在七点前睡两个小时,白天还要做喷注器改型计算。 接下来三天,他每天只推进一个最小环节。 文本清洗。 词项记录。 文档编号。 最简单的查询合并。 未来的他知道倒排索引、链接分析、分布式存储会怎样改变搜索,但这台机器不允许宏大。八兆内存扣除系统和编译器,真正留给程序的不到五兆。任何“先全部读进来”的设计都会立刻崩溃。 他把索引切成许多小段,逐段写盘,再在查询时读取必要部分。速度不快,却能运行。 星期四深夜,系统收录了三百一十二份本地资料:研究所允许公开的技术目录、几份高校bbs文章、手工录入的期刊摘要,以及从公开站点下载的少量页面。 马飞输入第一个测试词:“转子振动”。 屏幕停顿三秒,返回九条结果。 第一条是正确的论文摘要。 第二条只有“转子”。 第三条把“振动试验”拆成了两个毫无关系的片段。 第七条是一篇讨论电风扇维修的文章。 马飞看着结果,忍不住笑了。 这些错误一个比一个具体:切分、词距、语料范围,每一项都能单独拿出来改。 他终于有东西可以带去见苏雨桐。 第七条那篇电风扇维修文恰好是赵海抄回来的。赵海被他从上铺叫下来,看完结果,拍着桌子说机器至少知道电风扇也会振动,比他想的强。 “那第一条呢?”马飞问。 赵海看了半天论文摘要:“一个字也看不懂。” “所以结果对不对,不能只问做程序的人。” 周五傍晚,他把程序、索引和测试语料分别复制到三张软盘。第二张盘在校验时出现错误,他重新格式化,仍不放心,又做了一份纸质文件清单。 出门前,赵海从上铺探出头。 “约会?” “程序测试。” “跟谁?” “一个比程序难糊弄的人。” 计算机房在教学楼四层。马飞提前十分钟到,苏雨桐却已经站在门口。她接过软盘,没有问他用了什么算法,也没有夸他真的做出了东西。 她只问:“有测试日志吗?” 马飞把纸质清单递过去。 苏雨桐翻到最后一页:“只测了你自己知道能搜到的词?” “目前是。” “那不叫测试。”她推开机房门,“那叫表演。” 马飞跟着她走进去。 管理员按下墙边的计时器,红色数字从四十开始往下跳。 苏雨桐没有碰他列好的九个测试词。她从书包里取出两页折过的纸,摊在键盘旁,最上面一句是:火箭抖得厉害。 马飞把三张软盘按顺序排好,拉开椅子坐下。 第8章 第一次失败查询 苏雨桐没有先运行马飞准备好的九个样例。 她从书包里拿出两页纸,上面写着四十七组查询词。 “这些从哪儿来的?”马飞问。 “图书馆借阅台。我问了十二个人,想找某类资料时会怎么说。” 十二个人里有本科生、实验室助教,也有一位替儿子找无线电维修资料的食堂师傅。苏雨桐没有告诉他们应该怎么问,只把原话记下来。有人把“字库”说成“电脑里的汉字表”,有人把“热失稳”说成“机器越转越烫,最后卡住”。 “他们知道你在测试程序吗?” “跑完以后才说。先说,他们会故意用像论文的词。” 马飞点了一下头。仅这一条,已经比他准备的九个漂亮样例值钱。 纸上没有标准主题词。 “火箭抖得厉害。” “机器转太快会不会坏。” “中文电脑怎么认词。” “美国那个可重复用的航天飞机为什么贵。” 还有人只记得一句残缺的话,连作者和年份都不知道。 马飞把纸放在键盘旁:“开始吧。” 第一组查询用了两点八秒,九条结果里只有两条相关。 第二组返回空白。 第三组把“重复使用”拆成“重复”和“使用”,结果被大量无关文档淹没。 第七组出现乱码。 第九组却意外把那篇转子碰摩摘要排到了第一。查询者只写了“机器转快了蹭到外壳”,程序碰巧在一段摘要里同时找到了“转速”“接触”和“壳体”。马飞刚想记一个对勾,苏雨桐让他点开全文。 页面里的“接触”说的是电气接触,“壳体”属于另一个段落。答案看似正确,只是三次错误碰在了一起。 “结果蒙对,也算失败。”她说。 马飞把对勾划掉,改成问号,又在旁边注明:词距过远。 到第十五组时,程序因为临时文件超过预设大小直接退出。 机房里很安静,只剩硬盘反复寻道的声音。 马飞重新启动程序,没有为任何一次失败解释。苏雨桐在表格里记录查询时间、结果数量和首条相关位置。她的字迹很快,却始终清楚。 四十七组全部跑完,已经过去三十五分钟。 首条结果正确的只有十一组。 完全找不到相关文档的有十九组。 苏雨桐把最后一个数字圈起来:“你现在的系统,只能找到你已经知道该怎么描述的东西。” “语料太少。” “语料扩大十倍,错误也会扩大十倍。” “可以加词典。” “新词永远比词典快。” “用字粒度索引。” “相关性会更差,磁盘读取也会上升。” 两个人像在会议上互相审查方案,没有谁因为语气直接而退让。 管理员来收过一次费用,苏雨桐把每次程序崩溃后的重启时间单列出来。马飞提出由他承担全部机时,她没有客气,只把收据编号写进测试表。谁付了多少钱,也是一种不该靠记忆维持的记录。 剩下五分钟,苏雨桐调出索引文件。马飞采用定长记录,便于直接定位,却为大量短词浪费了空间。她算了算平均长度。 “如果词项表改成前缀压缩,能省接近三分之一。省下的内存可以保留常用词的文档列表。” “解码会增加查询时间。” “顺序读取时不会太多。真正慢的是你每查一个词都重新开文件。” 她在纸上画出缓存区域。 马飞看着那几条线,想起未来成熟系统里的词典压缩和热点缓存。原理不陌生,但具体怎样适应这台486,是苏雨桐从当前数据里推出来的,不是他从未来搬来的。 “还剩两分钟。”管理员提醒。 马飞没有改代码,只把她的方案完整抄下。 “你为什么不争?”苏雨桐问。 “争什么?” “这是你的程序。” “程序不是领土。能证明你对,就按你的来。” 苏雨桐合上测试表:“那也可能证明我错。” “更好。我们少走一条错路。” 苏雨桐没有因为这两句话就松口。她让马飞当场在方案图旁写下提出者和日期,又要求保留原版索引,以便下次做同语料对照。 马飞照做,在“前缀压缩”和“热点缓存”后写上苏雨桐三个字。字落下以后,她才把那张图递回去。 机时结束,屏幕被管理员锁定。 两人抱着软盘和记录纸走到楼下。夜里刚下过雨,路灯映在积水里。苏雨桐在台阶上停住。 “你准备把它做成什么?” “先做成能用的中文资料检索。” “以后呢?” “公开网页搜索。” “谁付钱?” “现在不知道。” “你打算什么时候辞职?” 马飞看向她。 苏雨桐说:“你每天的修改时间都在凌晨,文件时间戳很明显。一个全职做发动机的人,不可能一直这样。” “明年。” “你有钱撑到明年吗?” “没有。所以还要接能收费的数据库工作。” “你有团队吗?” “没有。” “那你现在不是在创业。”她说,“你是在一个人验证自己有没有资格创业。” 这句话很准确。 马飞点头:“所以我想请你继续测试。” “测试可以。加入不行。” “为什么?” “因为你现在只有方向,没有边界。你想做搜索,想做公司,眼睛里还像藏着更大的东西。可我不知道我的研究会不会哪天被你一句‘时间不够’拿去垫路。” 马飞一时没有说话。 他墙上的七年计划,确实把每个人都简化成了所需能力。算法人才、控制人才、材料人才——像设备清单。 “你需要什么边界?”他问。 “先别问我。”苏雨桐把测试表递给他,“把这四十七组失败保存下来。下一版不能只给我看成功了多少,还要告诉我为什么失败、改动影响了什么。” “下一次什么时候?” “你把日志做出来再说。” 她走出几步,又回头。 “还有,别把我的缓存方案直接写成你的。记录上注明是谁提出的。” “当然。” “不是当然。”苏雨桐说,“很多合作就是从一句‘都是为了项目’开始把边界弄丢的。” 夜风把她额前的碎发吹起。她转身走向宿舍区。 马飞留在台阶上,低头看那张失败表。 四十七次查询,三十六次没有给出好答案。纸上满是叉、问号和苏雨桐写下的短句,其中有一栏专门记录“看起来对,实际错”的结果。 回研究所的末班车已经没有了。马飞把测试表塞进衬衫里面防潮,推着自行车走到校门口,花六毛钱买了两个包子。摊主找不开一块钱,他便多拿一个,用旧报纸包好放进车筐,准备带给还在值班的管理员。 宿舍熄灯后,他把486的显示器亮度调到最低。苏雨桐画的缓存区域被贴在机箱侧面,原来的索引文件复制成只读备份,文件名后加了日期。 他先改失败日志,没有急着改排序。每一次空结果、乱码和程序退出都得到一个编号;那个蒙对的第九组被单独标成误命中。凌晨一点十七分,屏幕上多出一行注释:前缀压缩方案,苏雨桐提出,待对照验证。 窗外有人骑夜班车回来,车铃响了一声。马飞保存文件,拿起已经凉掉的第三个包子,继续处理第一个乱码样本。 第9章 喷注器与软盘 十月的第一场冷雨落下来时,喷注器试验出现了异常。 马飞骑到试验楼,裤腿已经湿到膝盖。门房老许把一块旧抹布扔给他,让他先擦干鞋底,免得把控制室的胶皮地面踩成泥路。暖气还没来,大家穿着蓝布工作服缩在仪器前,热水壶冒出的白汽带着一点铁锈味。 上午九点,第三研究室按计划进行改型件冷流试验。马飞负责的方案调整了喷孔角度和径向位置,目标是在不更换现有加工设备的前提下改善推进剂混合均匀性。 试验开始十二秒后,三号压力测点突然升高。 “停机!” 马飞几乎与张建国同时喊出声。 阀门关闭,管路里的介质逐渐泄压。透明观察段没有破裂,但法兰边缘渗出一圈水迹。 试验员拆下喷注器时,发现三号喷孔内有一小片卷起的金属毛刺。加工检验记录显示孔径合格,表面粗糙度也在范围内。那片毛刺藏在斜孔交界处,常规通针没有碰到。 “重新加工,最快明天下午。”工艺员说。 张建国摇头:“不只重做这一个。剩余件全部做内窥检查。” 工艺员脸色不好看:“通针和粗糙度都合格,全拆会把进度压掉一周。” 马飞把自己签过字的设计图铺在台面上,指出两组斜孔交界的位置:“检查工艺按旧喷孔画的,交界区是这次改型新出来的盲区。图是我改的,补检单我签。” 张建国看他一眼,在负责人一栏又签上自己的名字:“设计、复核各担一半。先查,不争谁的脸面。” 当天查到第三只时,内窥镜屏幕上又出现一道卷边。工艺员盯着那块亮斑看了很久,转身把尚未加工的两件也叫停,不再提那一周进度。 内窥设备全所只有一套,正在别的车间使用。协调、排队、补检,意味着本周的整组试验都要后移。 马飞看了一眼手表。 晚上七点,他原本约苏雨桐做第二轮测试。新版本加入前缀压缩、热点词缓存和失败日志,四十七组查询的首条正确率从十一组提高到二十六组。更重要的是,他想请她一起确定下一阶段语料标准。 “小马,你先去检验室盯设备。”张建国说,“加工图我和工艺组复核。” “好。” 马飞没有提晚上的约定。 下午五点,内窥设备仍没空出来。六点二十,设备送到。第一只喷注器检查用了四十分钟,又发现一处疑似翻边。 检验室窗外的雨一直没停。年轻试验员小郭去食堂打回三只饭盒,轮到马飞时只剩白菜汤和一块泡软的馒头。他站在内窥仪旁吃完,手里还捏着筷子,屏幕上便又转过一个孔位。 七点整,马飞站在检验室里,听见墙上的钟敲了一下。 他可以让年轻试验员代为记录。流程上说得过去,甚至没人会责怪他。但喷注器改型是他提出的,斜孔交界处的加工风险也是他在设计时漏掉的。 未来的时间压力,不是把今天的责任推给别人的理由。 他走到走廊电话旁,拨了计算机房分机。 响了很久,无人接听。 第二次接通时,是管理员的声音。 “苏雨桐?她六点五十走了,留了个信封。” 他先去值班室查了电话登记。七点零三分那次通话只记了“找苏同学”,没有留言内容。管理员并非故意漏掉,对方手边同时有三台机器报修,根本不知道他会不会再打来。马飞在自己的合作规则草稿上加了一条:留言必须包含是否取消、下一次联系时间和回电号码。 马飞第二天中午才拿到信封。 里面没有责问,只有一张测试表和一张机时收据。苏雨桐显然拿旧版本独自做完了一部分对照。表格最后写着: 缓存有效,但第三十一次查询后命中率异常升高,怀疑测试顺序污染结果。下次必须随机化查询顺序。 另一行字更短: 失约需要通知。项目可以失败,合作不能靠猜。 马飞把机时收据夹进实验记录本。 晚上,他在图书馆门口等到苏雨桐下课。 “昨天是我的错。”他说,“喷注器试验出了加工问题,我留在检验室,没能及时联系上你。” 苏雨桐抱着两本书:“为什么不提前留话?” “我以为一小时能处理完。” “这不是解释,是你错误估计时间。” “对。” 她停下来,似乎没料到他承认得如此干脆。 马飞把一份复印件递给她。那是喷注器异常记录,涉及保密的型号和参数都已删掉,只保留处置时间线。 “不是让你原谅我。”他说,“只是证明我没有把你的时间忘掉。以后如果延误超过十五分钟,我会让值班室留言;如果任务涉及保密,只说无法到场,不用你猜原因。” 苏雨桐没有接那份记录。 “我不需要看你单位的东西。规则写下来就行。” 她从笔记本撕下一页,列出三条: 约定时间前无法到场,必须通过可用渠道留言。 每次测试由执行者记录机时和费用。 失败数据不得因版本更新而删除。 马飞在下面补了两条: 技术提议标注提出者。 修改影响必须用对照测试说明。 两个人站在图书馆台阶边,把一页合作规则写完。 一阵风把复写纸吹得掀起来,马飞用手压住。苏雨桐的手指冻得发红,仍坚持把“迟到十五分钟留言”改成“确认无法准时即留言”,因为没人能保证总在最后十五分钟以前看见意外。 “这条听你的。”马飞说。 “听刚才那通电话的。”苏雨桐说,“它已经替我证明了。” 苏雨桐问:“喷注器的问题解决了吗?” “检查了七只,三只有毛刺风险。设计要加去毛刺工序和内窥验收。” “会耽误多久?” “至少十天。” “你的搜索原型呢?” “也晚了两天。” “后悔留在检验室吗?” 马飞看着校园尽头的路灯。 “如果连自己画的图出了问题都不肯留下,我以后没有资格让别人坐进我造的火箭。” 苏雨桐第一次没有立刻追问。 她把那页规则折好,撕成两半,不是毁掉,而是沿中线把复写纸分给两个人。 “周六上午,重新测试。”她说,“查询顺序我来随机化。你不许提前看。” “可以。” “还有,测试机时这次你付。” “应该的。” 她转身离开。 马飞回到宿舍,把那半页纸压在七年计划下面。墙上的年份没动,喷注器试验却向后推了十天,搜索原型也晚了两天。 赵海已经睡了,给他留的饭盒扣在脸盆上。马飞掀开一看,是半份炒土豆,底下压着一张字条:凉了自己热,别拿486烤。 他端着饭盒去水房,碰见值夜班的老许。老许听说他们查出三只有卷边,点点头:“早停十二秒,少拆一套玻璃段。你们这回喊得快。” 马飞回屋后在合作规则底下补上值班室电话号码,又把苏雨桐那半份誊抄一遍,免得复写字迹日后褪色。纸压回墙上时,赵海翻了个身,迷迷糊糊地问他土豆咸不咸。 “咸。” “那就少吃点,明早还得上班。” 马飞把剩下的一半饭盒盖好,关了灯。 第10章 把未来拆成零件 第二轮测试持续了两个星期。 他们没有固定地点。计算机房有空就在机器前跑,没空便抱着记录表去食堂、图书馆台阶或教学楼没人上课的教室。十一月的风从窗缝里钻进来,苏雨桐写字时戴着露指毛线手套,马飞则把热水装进罐头瓶,拿它压住总想卷起的打印纸。 苏雨桐把四十七组查询重新编号,每次用抽签决定顺序。马飞不得提前看测试词,只能拿到查询编号、响应时间和人工相关性评分。 第一次随机测试,首条正确二十三组。 第二次,二十五组。 第三次回落到二十二组。 苏雨桐把三次抽签纸都留着,要求管理员随便挑一组复核。管理员抽到第二次,重跑后只对二十四组,比原记录少一组。两人查到最后,发现第十七条的人工判断不一致:一篇文章提到了目标概念,却没有回答查询者的问题。 马飞把它从“相关”改成“部分相关”。苏雨桐又找来最初提出查询的学生,让他自己看结果。对方只读两行便摇头,说这不是他要找的东西。 二十五变成二十四,统计表却更可信了。苏雨桐把三套评分标准整理成一页,贴在机房墙上,后来借机器的两个研究生也照着给自己的程序打分。 表面上,新版本比演示时的二十六组更差。原因却很清楚:固定顺序让热点缓存提前装入了后续查询需要的词项,制造了虚假的提升。 “所以我那版缓存不能算成功。”苏雨桐说。 他们坐在食堂角落,桌上铺着测试表。午饭时间已经过去,清洁工在远处拖地。 “方案有效,评估方法错了。”马飞说。 “评估错了就不能说方案有效。” “那就写成待验证。” 苏雨桐在记录上划掉“性能提升百分之三十一”,改为“固定查询集下平均磁盘访问次数下降;随机集效果未确认”。 她对数字的谨慎让马飞想起最好的试验工程师。不是不允许成功,而是不允许结论比证据多走一步。 清洁工的拖把已经碰到桌脚,示意他们该让地方。两人把纸收起来,端着冷掉的饭盒挪到门外长凳上。马飞的白菜里没有几片肉,苏雨桐从自己饭盒里夹了一块豆腐给他,算作上次那张打印纸的回礼。 “你准备一直这样业余做?”她问。 “到明年离职。” “离职以后呢?” “注册公司,先接数据库和局域网检索项目养活团队。公开网页搜索至少还要两年。” “两年?” “1998年做第一版正式产品。” 苏雨桐抬起头:“你连明年房租都没有,为什么把1998年说得像已经算过?” 马飞当然算过。不是一次,而是在另一段人生里看过整个行业怎样兴起、泡沫怎样破裂、后来者怎样被收购或消失。 他不能说这些。 “因为网络基础设施需要时间,中文站点数量也需要时间。”他回答,“太早推出,只会把演示当产品。” “这次像工程判断。” “上次不像?” “上次像预言。” 马飞笑了笑。 窗外有学生抱着书跑过。苏雨桐把测试表收成一摞,没有像往常那样立刻离开。 “我可以继续做。”她说,“但不是你口中的‘帮忙’。” “你开条件。” “第一,我的学业优先。每周最多十二小时,考试月减半。” “同意。” “第二,中文切分、查询评估和编码识别算我的研究方向。我有权决定是否拿其中非保密部分写论文,署名按实际贡献。” “同意。涉及公司代码的部分另做边界清单。” “第三,我可以否决没有对照实验的技术上线。” “技术上线可以。公司经营决策不能一票否决。” “我也没要经营权。” “那就写清楚:对检索质量基线有否决权,争议时必须补实验。” 苏雨桐看了他一眼:“你谈条件很熟练。” “见过太多没写清楚的合作。” “你才三十岁。” “航天项目里,接口少写一个单位都能吵半年。” 她接受了这个解释,继续说:“第四,费用不能让我垫。机时、打印、软盘都记账。你没钱可以延期支付,但必须承认是公司的成本。” 马飞点头。 他没有立刻许诺工资。现在说一个付不起的数字,只是把诚意伪装成债务。 “在公司有收入前,按实际费用报销,再加每小时两元的研究补贴,延期记账。”他说,“公司注册后,给你技术合作者的分期股权。比例现在不定,等我们把职责和投入算清楚。” 苏雨桐皱眉:“不定比例等于没有。” “随口给一个比例也等于没有。股权对应长期责任,不是奖励。” “那设期限。你正式离职前给出方案,我有权拒绝。” “可以。” 马飞在纸边写下1996年3月31日。苏雨桐又在后面加了一句:方案至少提前十五天交付,不能到期当天逼迫决定。 “你连拒绝都要留准备时间?”马飞问。 “只给一分钟考虑的选择,不叫选择。” 马飞把“三月三十一日”划掉,改成“三月十五日前”。 她把条件逐条写进合作记录,最后空出一行。 “还有什么?”马飞问。 “你真正想做的不是搜索,对不对?” 食堂的日光灯发出轻微电流声。 马飞没有否认:“搜索是第一台发动机。” “给什么提供推力?” 他看向窗外的天空。 冬云很低,看不见星星。远处只有教学楼屋顶的天线。 “有一天,我会成立一家航天公司。” 苏雨桐的笔停住。 “民营航天?” “是。” “现在连私人接入互联网都很麻烦,你要造火箭?” “不是现在。先让公司有能力活过一次又一次失败。” “为什么这么急?” 这个问题再次来到面前。 马飞沉默几秒。 “因为我见过一种结果。”他说,“很多人把每个局部都做对,最后仍失去整枚火箭。我不想再等到事故发生才知道组织缺了什么。” 这不是全部真相,却不是谎话。 苏雨桐没有追问他“见过”是什么意思。 窗外传来卖烤红薯的吆喝声。两人都停了片刻。马飞说完火箭,肚子却很不合时宜地响了一声。 苏雨桐低头看了看他空掉的饭盒:“民营航天先欠了一顿晚饭。” “记公司成本。” “公司还没注册。” “那记发起人个人债务。” 他们下楼买了一只最大的烤红薯,从中间掰开。卖红薯的老人称重时多算了两分钱,苏雨桐核过秤,把钱要回来。马飞看着她把两枚一分硬币塞进费用信封,没再笑。 她在最后一行写道: 长期目标不构成要求任何成员牺牲当前选择的理由。 “这条你同意吗?”她问。 马飞看完,郑重签下名字。 “同意。” 苏雨桐也签了名。 那张纸没有公章,也没有确定股权。苏雨桐借来复写板,一笔一画重新誊了两份,日期写成1995年11月3日。她把其中一份装进书包内层,另一份交给马飞。 “弄丢了不补签。”她说。 马飞折到一半又展开,改用文件夹夹好。他们在食堂门口分开,苏雨桐赶晚上七点的课,马飞去邮局寄还母亲那张汇款单。 走出几十米,他摸到口袋里的两枚一分硬币,又折回去投进费用信封。信封正面原本只写着“机时”,苏雨桐添了三个字:及晚饭。 第11章 辞职信 1996年1月8日,马飞把辞职信放在张建国桌上。 窗外刚下过雪。暖气片烫手,办公室里仍有一股散不掉的冷气。张建国读完第一页,又读第二页,最后把两张纸推回原处。 马飞来之前在门口站了五分钟。辞职信装在牛皮纸袋里,纸袋外面还留着母亲包饺子时沾上的一点面粉。元旦回家,他在饭桌上说了打算,父亲沉默着抽完一支烟,只问养老保险能不能续;母亲把给他装的冻饺子从二十个加到四十个,嘴上却说一个大男人总不能靠家里送饭。 那袋饺子还放在宿舍窗外冻着。张建国若把信撕了,他也不会改变决定,只是仍希望老师能把每一页看完。 “重写。” “哪里不合适?” “理由写的是个人职业规划。什么规划?” “创办软件公司。” “为什么?” “国内互联网会快速发展,中文信息检索有机会。” “机会有多大?” “现在没法精确估计。” “既然没法估计,你凭什么放下已经做了八年的发动机?” 张建国语气不高,却比争吵更有压力。 马飞三十岁,大学毕业后进所八年。喷注器、涡轮泵、控制阀,他从画第一张零件图开始学。研究所培养一个能独立承担设计的工程师不容易,他现在离开,意味着项目要重新分配,也意味着张建国过去多年的心力无法按原路线收回。 “我没有放下发动机。”马飞说,“只是换一种方式准备。” “做搜索软件怎么准备发动机?” “资金、软件、组织能力。将来民营公司也可以做航天。” 张建国盯着他,像第一次认识这个学生。 “你知不知道一台发动机要多少专业、多少台次、多少审批?你以为卖几年软件,就能去市场上买一枚火箭?” “不能。所以要更早开始。” “早到把眼前项目扔给别人?” “喷注器改型已经完成补检,新方案下周做热试。联合回放报告补了三组样本,质量处同意纳入下一版采集规范讨论。我的交接清单也在附件里。” 张建国翻到附件。清单不只列文件名,还写了每项工作的接手人、未闭合问题和最迟处理时间。赵工的名字出现七次,小郭三次,每个人后面都有本人签字。连地下试验间那根临时显示线也重新画了接线图,线头上套了编号管。 “你什么时候找他们谈的?” “上个月。先问愿不愿意接,再报主任调配。” “有人不愿意吗?” “有。燃烧稳定性分析原本想给小郭,他说经验不够,我改成赵工主责、小郭跟做。” 张建国合上清单,没有夸他,只把辞职信从桌边往里挪了几厘米。 “这些只是你手上的工作,不是你欠这个行业的全部。” 房间安静下来。 马飞看见张建国桌角压着那份被退回又重写的报告。页边有许多批注,显然老师比他想象中投入得更多。 “张工,”他说,“如果我留下,十年后也许能主持一个型号。二十年后,也许能推进一项新技术。但我想建立的不只是一个型号,我想让软件、算力、资金和航天工程从一开始就在同一套组织里。” “听起来很大。” “所以可能失败。” “你还知道会失败?” “知道。” 张建国站起来,走到窗边。院里的积雪被自行车轧出一道道灰线,有人抱着图纸匆匆穿过。 “你最近半年变了很多。”他说,“有时候我觉得你像突然多活了几十年,知道哪条路一定要走。可工程师最危险的,就是觉得自己已经见过答案。” 马飞的后背一紧。 张建国转过身,没有继续追究那句“多活了几十年”。 “你要辞职,我拦不住。但在我签字前,完成最后一件事。” “您说。” “喷注器热试如果失败,由你做完整分析。不是交接清单,不是把数据留给别人,是你亲自把问题关掉。” “如果成功呢?” “成功也要写清楚为什么成功。月底前交最终报告。” “好。” 张建国把辞职信锁进抽屉:“不是批准。只是暂存。” 消息还是传了出去。 同事的反应比马飞预想中更复杂。有人说他有胆量,有人说他被中关村的发财故事迷了眼,也有人私下问能不能带他们一起走。 马飞一概没有招人。他把每个来问的人都劝回去,让他们至少先看过产品、账本和合同再决定。一个刚结婚的助理工程师最失望,觉得他嘴上说创业,真有机会却不肯分。 “我现在连办公室都没有,带你走就是拿你的工资和婚房去替我试错。”马飞说,“等我能连续发六个月工资,你再来问。” 这话不热血,对方却把已经写了一半的停薪留职申请收了回去。马飞只在交接清单里给他多留了一次联合回放的机会。 赵海最生气。 “你买电脑我以为你是兼职赚点钱。真辞了,宿舍也得退,医疗、分房、户口怎么办?” “一项项办。” “你根本没想过以后生病怎么办。” 马飞没有告诉他,前一世自己在最好的医院里也没能解决孤独和时间。他只是说:“想过,所以害怕。” “害怕还走?” “害怕说明代价是真的,不说明路是错的。” 赵海当天没再和他说话。晚上十点,马飞回宿舍,窗外那袋冻饺子已经被拿进来,煮破了七八个。赵海背对着他坐在床边,把一碗饺子推过来。 “你妈包得皮薄,煮的时候得看着。” “谢谢。” “别谢。我只是不想让粮食跟你一起犯傻。” 两个人闷头吃完。赵海把户口、医疗和退宿要去的窗口写在一张烟盒纸上,字很丑,顺序却排得清楚。 那天晚上,他把七张年度计划从墙上取下,装进纸筒。宿舍墙面留下七块颜色略浅的长方形。 电脑里,搜索原型的失败日志已经积累到一百二十七组。苏雨桐在每条后面标注了错误类型:切分、编码、同义表达、语料缺失、排序偏差。 马飞给她发了一封很短的校内邮件: 辞职信已交,尚未批准。公司计划从纸面进入执行。 半小时后,苏雨桐回复: 先完成你答应的交接。不要把“开始创业”当成降低旧责任标准的理由。 马飞看着那行字,忽然笑了。 一周后,喷注器热试排期确定:1月22日。 排期单贴到公告栏时,质量处也发来通知:总电源脉冲校时法将在两个新试验项目里试用。通知没有写马飞的名字,附件引用了他那份被退回的报告编号。 赵工站在公告栏前,用胳膊碰了碰他:“第一回让你白熬夜了?” “还没。先看新项目能不能对准。” “都要走了还这么扫兴。” 马飞把1月22日抄进值班本,回宿舍从窗外取出一袋冻饺子。热试当天早上六点到岗,他得提前一晚把早餐煮好。 第12章 最后一份试验报告 喷注器在第三十八秒出现了燃烧振荡。 控制室的玻璃随低频噪声轻轻发颤。马飞戴着耳机,仍能感觉到桌面传来的细震。早上煮的饺子只吃了六个,剩下的装在饭盒里,此刻搁在暖气片上,油和醋的味道混进设备散热的焦味。 振幅没有超过安全门限,频率却稳定停在六百二十赫兹附近。试验继续到计划关机,燃烧效率达到百分之九十五点七,比旧方案高了两个百分点,却低于计算值。 控制室里没人庆祝。 对一台发动机来说,“效率提高”和“出现稳定振荡”可以同时成立。前者是成果,后者可能是事故的种子。 张建国摘下耳机:“谁先说?” 工艺员怀疑某只喷孔仍有偏差,试验员认为压力传感器安装刚度不足。马飞没有立刻下结论。 “先保留原始数据,拆检前拍照。把六百二十赫兹与供给系统固有频率、燃烧室纵向模态分别比对。” 接下来的十天,他几乎住在试验楼。 赵海每天替他带一顿饭,有时是食堂馒头,有时是一保温桶面条。第三天夜里,面条已经坨成一团,马飞用热水冲开,边吃边看频谱。张建国半夜巡视,看见他把醋瓶放在图纸旁,直接连人带饭赶进休息室,理由是报告上可以有油点,原始图上不行。 拆检没有发现毛刺,喷孔尺寸也合格。传感器复校正常。振荡频率与供给管路的一阶模态接近,却又差了十几赫兹。 若只为赶在离职前交差,他完全可以把结果写成“性能提升,局部振荡待后续研究”。这种报告不会被退回,项目也能继续。 马飞没有这么做。 他重新翻查冷流数据,发现径向位置调整后,三组喷流的相位差变小。新的混合方式提高了效率,也让压力扰动更容易同步叠加。供给管路不是唯一原因,它只是放大了燃烧室内已经形成的相干波动。 为了验证,他设计了一次低成本补充试验:不更换喷注器,只在供给管路增加不同容积的缓冲腔,观察振荡频率和幅值是否随之改变。 补充试验的加工费没有单独预算。马飞和工艺员从旧管路里找出两只合格缓冲腔,重新做接口检验。先前因补检耽误进度的工艺员这次主动把内窥仪排在午休,说上回那三道卷边已经替他们省下一只观察段,半天台时算得过来。 两种容积,六个工况。 结果显示频率略有漂移,振幅却没有按管路模型显着下降。 “说明根在喷注组织。”张建国看着曲线,“你原来的角度不能直接定型。” “是。效率收益要退一步。” “你辞职前把自己半年的方案否了,不心疼?” “心疼也不能让它上天。” 最终修改并不复杂。喷注角度回退两度,径向位置保留一半调整量,牺牲约零点六个百分点的理论效率,换取扰动相位分散。第二次热试中,六百二十赫兹峰值下降了百分之六十八,燃烧效率稳定在百分之九十五点二。 不完美,但可解释、可重复。 曲线稳定下来的那一刻,控制室里没人鼓掌。赵工先报压力,工艺员报温度,张建国确认关机程序全部执行完毕,才摘下耳机问:“谁带了烟?” 所有人都看着墙上的严禁烟火牌笑起来。赵海隔着玻璃举起马飞的饭盒,里面那几个饺子已经热了又凉、凉了又热。张建国在试验记录上签完字,夹了一只放进嘴里,含糊地说皮确实薄。 2月16日,马飞完成最后一份试验报告。 报告正文四十七页,附件一百三十二页。他把失败方案放在最前面,写明它为何在计算阶段看起来合理、又为何在试验中暴露问题。收尾部分删掉了“成果总结”,只给后续设计人员留下三条边界条件。 打印机连续卡了两次纸。马飞和资料员刘姐把一百多页附件铺在长桌上,按页码重新捡齐。刘姐见他把失败曲线放在最前面,问会不会影响以后评职称。马飞说辞职手续都在走了,她愣了愣,还是多复印一份封面,让他自己留着编号。 张建国从上午看到下午。 “你可以把第一次热试写轻一点。”他说,“不影响最终结论。” “以后有人再次把角度调回去,会以为我们只是没试过。” “写这么清楚,你的设计失误也永远留在档案里。” “那最好。” 张建国合上报告,拿出抽屉里的辞职信。 他在审批栏签字,日期写的是1996年2月16日。 “人事处还要走流程。三月底前办完。” 马飞接过文件,没有想象中的轻松。 “张工,我——” “别说感谢。”张建国打断他,“我仍然认为你离开得太早,也不相信私人公司几年内能碰火箭。” “我知道。” “但你最后这份报告像个工程师。” 张建国从书柜底层取出一本厚笔记。封皮磨得发白,里面是他多年记录的设计心得,大多不涉型号机密,而是关于试验方法、失效判断和项目教训。 “借给你,不是送。”他说,“哪天你真做航天,拿数据来换。拿梦想不行。” 马飞双手接过笔记。 “好。” 3月29日,他办完离所手续。 工作证上交,宿舍钥匙归还,个人书籍装进两个纸箱。那台二手486被捆在自行车后架上,显示器则由赵海抱着,陪他一路走到研究所大门。 张建国没有来送。 赵工来得晚,追到门口时把半块橡皮抛进纸箱。那是九月会议上借给马飞的,已经用得只剩指甲盖大。 “东西还了,省得你以后说所里欠你。” “那两只茶叶蛋呢?” “等你真发工资再还。” 门卫催着别堵通道,赵工摆摆手回去了。赵海抱着显示器,手臂酸得直换姿势,骂马飞当初买机器时怎么没挑台轻的。 门卫核对放行单时,马飞回头看了一眼实验楼。三层靠东的办公室还亮着灯,有人抱着图纸从走廊经过。试验楼门口,那段差点被毛刺损坏的透明观察段已经蒙上帆布,只露出一只贴着编号的木箱角。 门卫把放行单还给他。 “都齐了,走吧。” 马飞推着车跨出大门。 春风从公路尽头吹来,卷起一阵尘土。绑电脑的麻绳松了一道,马飞赶紧扶住车架。赵海把显示器放到路边,腾出手重新打结,又把自己的旧毛巾垫在机箱棱角下面。 “先去哪儿?”赵海问。 “租的房子。” “有床吗?” “房东说有一张。” “被子呢?” 马飞沉默了两秒。被子还在宿舍床上,属于研究所,他刚刚连同钥匙一起交还。 赵海叹了口气,把显示器重新抱起来:“先去百货店。你那四百块里再扣一床被子。” 两人推着旧电脑往公交站走。工作证已经留在门卫室,张建国的笔记塞在纸箱最里面,外面压着两袋没来得及吃完的冻饺子。 第13章 半地下室公司 房东推开门时,头顶的水管正好轰隆一响。 窗户开在距地面一尺高的位置,从里面只能看见行人的鞋和自行车轮。春天返潮,墙皮泛着水印,角落撒了一圈白灰。房东用鞋尖蹭了蹭,说过几天就干,马飞蹲下摸了一把,指腹全是凉水。 房间十二平方米,月租二百六十元,押一付三。 马飞没有八百多元。 他把价格谈成押一付一,条件是自己修门锁、换灯管,并一次性替房东整理楼上五金店的库存账。那家店有三年手写流水,老板想把货号录进电脑,却被软件公司报价吓退。 马飞用四天做出一套简单的库存程序,拿到六百元劳务费和一张二手写字桌。 五金店老板原本只让他照抄三年流水。马飞录到第二天,发现同一种轴承用了四个货号,其中一个还和螺母重号。他没有凭感觉合并,而是把对应进货单和实物逐个摆在柜台上,请老板确认。 清完以后,账面上凭空多出的七十六只“轴承”消失了,真正压在仓库角落的二十三箱密封圈也被找出来。老板当天卖掉其中五箱,第二天便把原先答应验收后支付的六百元全数拍在桌上。 “软件还没做完,先给钱?”马飞问。 “那五箱东西再放一年就硬了。”老板说,“你先让我知道自己有什么,这钱就值。” 这成了星辰科技的第一笔收入。 严格来说,“星辰科技”还不是一家有限公司。 1996年的注册资本门槛远不是他口袋里几张纸币能解决的。马飞先在中关村一家民营科技企业服务机构登记了“星辰信息技术开发中心”,经营范围包括数据库整理、软件开发和信息检索服务。招牌上只写四个字:星辰科技。 他没有借钱做虚假的验资,也没有找挂靠单位替自己承担名义责任。 公司可以晚一点长大,第一份文件不能从谎言开始。 办登记跑了三趟。第一次缺房屋用途证明,第二次经营范围里“网络信息服务”被退回,工作人员让他先写自己现在真能做的业务。第三次,窗口后的大姐看见他把数据库、软件开发和信息检索逐项改清楚,才盖下受理章。 马飞拿着那张薄纸走出来,在路边买了一个烧饼。公章还没刻,客户也没有增加,至少以后开收据时不必借五金店的抬头。 3月31日,他把二手486搬进半地下室。 房东说过的床是一张掉漆的折叠床,展开以后会挡住半扇门。白天它立在墙后,晚上再挪出来。新买的棉被花了七十八元,有股仓库里的樟脑味。赵海帮他把被套上,临走前把一包母亲寄来的冻饺子塞进楼上五金店的冰柜,叮嘱老板别当成货卖了。 桌子靠墙,显示器旁放张建国借给他的笔记。另一侧摆着一只空纸箱,里面装三十七张软盘、七本技术手册和那份签了两个人名字的合作规则。 电话线是最贵的东西。 初装、押金和第一个月预存费用加起来超过一千元。马飞没有支付能力,只能暂借楼上五金店的线路,约定夜里十点后使用,按通话清单结算。作为交换,他继续维护库存程序三个月。 房门上方有一根裸露水管。楼上用水时,管壁便传来轰隆声。 苏雨桐第一次来看,站在门口没有进去。 “这就是公司?” “目前是。” “第二张桌子呢?” “还没有。” “测试资料放哪里?” “纸箱。” “软盘备份呢?” “左边三套。” “如果水管漏了?” 马飞抬头看向那根管。 当天晚上,他把最重要的软盘和纸质记录装进防水铁盒,又在书架顶层做了离地备份。苏雨桐没有嘲笑这间办公室,但也没有因为它简陋就降低标准。 铁盒是从旧货摊买的饼干箱,盖子合不严。苏雨桐往里面垫了一层塑料布,又让马飞拿一张废软盘泡进脸盆,确认标签墨水会不会散。马飞原本觉得多余,第二天水管接头便滴下三滴黄水,正落在纸箱原先摆放的位置。 他把那三滴水在任务表上圈了出来,没有争辩。 “还有一件事。”她说,“你辞职前答应给股权方案。” 马飞拿出准备好的两页纸。 第一阶段是三个月项目合作。每周不超过十二小时,按实际机时和材料报销,每月另记一百五十元补贴;公司现金不足时可以延期,但每月出具欠付确认。 第二阶段在她决定正式加入、公司完成有限公司改制后生效。拟授予百分之七技术权益,四年逐步成熟,满一年取得四分之一,此后按月计算。若任何一方提前终止,未成熟部分取消,已经形成的署名和研究成果权利不受影响。 苏雨桐看完,没有被“百分之七”打动。 “为什么是七?” “按未来两年预计投入、核心技术责任和公司初始风险估算。不是最终答案,你可以给反方案。” “你保留多少?” “改制前全部。改制后预留至少百分之十五给后续核心成员和员工。” “投资人呢?” “从我的部分和公司增资里稀释,不能默认只稀释你的。” “如果你放弃搜索去做航天?” “需要董事和核心技术成员同意新的预算,不能直接抽走搜索业务现金。” 苏雨桐在最后一条旁边画了线。 “这条单独写。搜索不是航天的提款机,至少不是你一个人决定的提款机。” “同意。” 她把方案收进书包:“我带回去看,不代表接受。” “当然。” “你现在还有多少钱?” 马飞打开账本。 现金三百八十二元。应收五金店尾款一百元。电话费尚未发生,四月房租已经交付。若没有新合同,二十多天后公司连纸张和机时都付不起。 苏雨桐看得很慢。 “你应该先找客户。” “明天去。” “搜索怎么办?” “晚上。” “你一天有几个晚上?” “一个。” “那就别把每件事都写成最高优先级。” 她从墙上取下马飞手写的任务表,把“抓取系统、中文切分、客户拜访、注册手续、数据清洗”重新排序。客户回款排第一,数据备份排第二,抓取系统排第三,其余顺延。 马飞没有反对。 苏雨桐在“抓取系统”旁边写下自己的名字:“这个我周三做接口定义,不替你写全部代码。” 她走后,半地下室只剩电脑风扇的声音。 马飞坐在唯一的椅子上,把任务表重新抄到硬纸板上。楼上五金店关门前,老板从小窗递下来一碗剩米饭和半盘炒白菜,顺便提醒他今晚十点以后才能占电话。 九点五十八分,马飞收起饭盒,把折叠床竖到墙边。门口那块刚刷好的小招牌有一个角没钉牢,每次有人经过都会轻轻碰墙。 他没有去扶,先按苏雨桐排的顺序核对了防水备份,再拿起电话线。十点整,楼上喊了一声:“可以拨了。” 第14章 第一条数据 4月6日夜里十点二十三分,星辰科技的抓取程序取得第一条联网数据。 拨号成功前,它已经忙音六次。楼上五金店老板每隔十分钟便踩一下地板,提醒马飞电话费正从押金里扣。半地下室的折叠床没地方展开,马飞只好坐在装手册的纸箱上,膝盖顶着桌沿。 页面来自一所高校的公开服务器,正文只有两百多字,介绍实验室研究方向。程序把标题、地址、更新时间和文本内容写入本地文件,耗时四十七秒。 马飞在日志第一行手写: 文档000001,来源公开,抓取成功。 接下来两个小时,程序又下载了六十三个页面。 第六十四个页面让它陷入循环。 站点日历给每一天生成一个新地址,程序不断沿“下一天”前进。即使页面内容几乎相同,地址也永远不会重复。电话计费表上的分钟数不停增加。 马飞发现时,已经浪费了二十七分钟。 他立刻断线。 电话清单上多出四元六角。那是他一天多的饭钱。楼上老板拿算盘算完,问日历上的字到底值不值这个价。 “不值。”马飞把钱从生活费信封里拿出来,“所以今晚不能再让它碰同一个坑。” 老板收了三元,剩下一元六角记在下个月库存维护里。他嘴上说不是赊账,只是怕马飞饿倒以后没人修程序。 未来成熟爬虫会有内容指纹、路径规则和站点级抓取预算。此刻,他只写了最基本的地址去重。知道缺什么不难,难的是在一台旧486上用尽可能少的内存补上。 他先为正文计算简短指纹,再规定每个站点单次最多抓取五十页。若连续五页的文本相似度过高,自动暂停该路径。所有暂停必须写入日志,下一次由人工判断是否恢复。 第二天,苏雨桐看完代码,指出另一个问题。 她来时带了两个食堂馒头,进门先摸水管,再看防水铁盒。确认备份没湿,她才把一个馒头放到马飞桌上。马飞正准备说昨天新增六十三页,她已经在日志里看见那二十七分钟循环。 “你只考虑自己会不会浪费电话费,没考虑对方服务器。” “每次请求间隔十秒。” “多个路径并行时不是十秒。对同一站点,你有三次请求只隔了两秒。” 早期网络带宽稀缺,一台不受控制的抓取程序足以让小型服务器明显变慢。规则尚未形成,不意味着伤害不会发生。 两人给程序加上站点级队列:同一服务器至少间隔二十秒,夜间访问也限制总量。请求标识中写明“xingchencrawler/0.1”,附上联系邮箱和退出方式。 为验证限制真的生效,苏雨桐把三条不同路径同时放进队列,拿秒表守了二十分钟。程序有一次在第十九秒提前发出请求,她让马飞整段重写,不能靠多加一秒掩盖计时误差。凌晨十二点四十七分,连续三十次间隔都超过二十秒,她才在测试单上签字。 “有人会给一个爬虫写信?”马飞问。 “有人不想被抓时,总要找得到你。” 三天后,真的有人写来。 邮件来自某高校网络中心,只有一句话: 请停止访问 `/student/` 目录,其中含临时个人主页。 马飞立即把该路径加入禁止列表,删除已经取得的十一页内容,并回复说明处理结果。 第二封邮件在次日到达。 对方问:你们做的是什么? 马飞没有把“全国中文网页搜索”写得像已经存在。他如实说明,这是一项小规模公开信息检索实验,目前不对外提供服务,不保存限制目录内容,愿意接受站点管理员的抓取时间与范围要求。 网络中心回复: 实验室和公开论文目录可以保留。凌晨一点到五点访问。 这封简短的许可,成了星辰科技第一份数据边界记录。 对方还附了一份公开目录清单,列出十二个允许访问的路径。按清单抓取以后,程序不再浪费时间猜测哪些页面能进,五小时里有效页面比例反而提高了一倍。马飞把节省下来的电话费算给苏雨桐看,她只在旁边写了一句:尊重退出也能省钱,但别把省钱当成尊重的理由。 到4月底,本地语料增长到六百二十四页。数量很小,问题却成倍增加。 同一篇文章在三个地址重复。 网页更新时间不可靠。 服务器返回的中文编码与声明不一致。 有些页面只有一张图片,程序什么也读不到。 更棘手的是链接重要性。一个页面被许多站点引用,通常更值得排在前面;但在当时的中文网络里,友情链接、镜像目录和人工导航页大量存在,简单计算链接数量会把目录当成最重要的内容。 马飞写出一版迭代评分,又在第二天删掉。 不是算法错,而是样本太少。六百多个页面上的漂亮曲线没有统计意义。 删除前,他把代码复制进“暂停方案”目录,写明停用原因。未来记忆让那套思路看上去极有诱惑,苏雨桐却随手抽了二十个页面,让他盲排。所谓重要性得分最高的五页里,有三页是友情链接目录,一页是镜像站说明。 马飞把测试结果钉在墙上。楼上老板下来借订书机,看完前三行,问他是不是花了两晚证明校园黄页最有学问。 “差不多。”马飞说。 老板笑得整根水管都像在震。 “先别给自己制造高级问题。”苏雨桐说,“用户连中文词都搜不稳,链接排序排得再聪明也没用。” 她把任务拆成三项:编码识别、重复检测、基础相关性。 马飞看着被划掉的链接评分模块,承认她是对的。 他拥有未来最知名算法的方向,却必须忍住提前使用它的冲动。一个系统的成熟,不在于塞进多少未来概念,而在于当下最痛的问题是否被解决。 5月2日凌晨,抓取程序完成第一次无人值守运行。 五小时里连接中断四次,自动恢复三次;一处站点因连续错误被暂停;新增有效页面八十七个,重复页面二十三个,总电话费用控制在预算内。 天快亮时,马飞输入“液体火箭燃烧振荡”。 系统返回六条结果。 第一条正是某高校实验室公开的论文目录,标明了作者和馆藏信息。正文不在网上,但一个读者至少知道该去哪里找。 马飞把查询结果打印出来,贴在日志旁边。 打印纸还热着,字迹却有一行发浅。色带快用完了,马飞拿出来拧紧,勉强又印了一份。他把较清楚的那张寄给最初允许访问的网络中心,背面写明查询来自哪些公开目录;发浅的那张留在墙上。 早上五点零七分,五金店老板下来开门,发现马飞趴在折叠床边睡着了,手边压着电话费清单。老板没有叫醒他,只把墙角那只接漏水的脸盆往管子下挪了挪。 电脑屏幕上还停着六条结果,第一条后面是论文馆藏号。 第15章 只够二十七天 5月7日,马飞在账本上画出一条红线。 那天早饭是一根油条,掰成两顿吃。半地下室开始有蚊子,马飞半夜拍在账本边,留下一个灰黑印。他用橡皮擦了半天没擦掉,索性在旁边写上日期,提醒自己夏天还要买纱窗。 现金二百一十四元。 应付房租二百六十元,电话费一百零八元,苏雨桐累计补贴三百元,软盘和打印费用六十四元。五金店的维护期结束,不再有固定收入。 若只支付房租和电话,公司还能存在二十七天。 若把欠苏雨桐的钱也算上,今天就已经资不抵债。 “延期不是不用付。”苏雨桐在欠付确认上签完字,“但我不会因为你欠钱就让错误结论上线。” “应该如此。” “我拿到了一等奖学金。”她说,“八百元。我可以买一条内存,机器借给项目用,所有权归我。” 旧486的八兆内存确实已经成为瓶颈。增加八兆,可以显着减少索引构建时的磁盘交换。 马飞却摇头:“现在缺的不是一条内存,是持续现金流。用你的奖学金买设备,只会把公司活不下去的问题推迟几周。” “设备归我,不是投资。” “你承担了设备闲置风险。公司如果下月关门,你拿着一条内存没有用。” “那你准备怎么办?” “卖现在能交付的东西。” 接下来的四天,他跑了十七家公司。有人听到“信息检索”就让前台送客,有人要求先免费做完再谈,也有人只想买盗版财务软件。马飞每天骑车带着便携机,电池撑不到完整演示,只能提前问清办公室有没有插座。 第十三家老板对五金库存程序有兴趣,却要求他把竞争对手的客户名单一并录进系统。马飞收起机器离开,连对方答应的五十元演示费也没拿。回到半地下室时外面下起大雨,他的名片湿掉一半,只剩最后六张还能用。 机会来自一张夹在报纸里的小广告。 一家医疗器械经销公司要把全国代理商资料从十几本活页夹录入数据库,并建立按地区、产品和回款状态查询的系统。工期三周,预算三千元。 马飞带着演示程序上门。 对方经理姓梁,四十多岁,第一句话便问:“你公司几个人?” “目前一个全职,一个项目合作者。” “以前做过医疗吗?” “没有。” “做过销售管理吗?” “没有。” 梁经理合上名片:“那你凭什么接?” 马飞没有讲搜索引擎愿景。他打开笔记本电脑——准确说,是借来的便携机——演示五金店库存系统,又拿出一页数据清洗报告。 “你们活页夹里,同一家代理商有三种简称,电话号码有七种格式,产品编码去年改过一次。单纯录入会把这些错误原样放进电脑。我的报价包括统一规则、冲突清单和可回查的修改记录。” 梁经理重新翻开材料。 他叫来财务和一个跑了十年业务的老销售,当面抽出三本活页夹,让马飞找同一家河北代理商的欠款。老销售凭记忆翻了七分钟,找到两笔;马飞按自己事先做的小样查询,三十秒找到三笔,其中一笔被登记在代理商旧名下。 梁经理没有立刻表态,先让财务核原始汇款单。十分钟后,第三笔确认无误,金额四千八百元。 “这个小样你什么时候录的?” “等您的四十分钟里录了十二页。” 老销售把那三张记录排在一起,终于把合着的材料重新打开。 “三周做完?” “第一周确定规则和录入界面,第二周完成清洗,第三周验收。先付百分之三十。” “别家只要两千二。” “如果只要录入,选别家。你们真正要的是知道哪个代理商欠款、同一产品在哪些地区卖得好。数据不统一,查询越快,错得越快。” 谈判持续两个小时。 梁经理想把预付款压到三百,马飞把项目所需的两百张录入表、交通和备份盘费用逐项列出。现金不足并不需要撒谎,三百元连可靠备份都买不起;若客户只肯付三百,他宁可缩小第一期范围。 财务看完明细,主动说六百符合公司采购预付比例。梁经理这才在合同上改了数字。 最终合同金额两千六百元,预付六百元,验收后结清。若延期,每天扣款百分之一。 六百元进账当天,马飞先支付房租和电话,再把欠付补贴的一百五十元交给苏雨桐。 “为什么只付一半?”她问。 “保留交付期间的最低现金。另一半写明6月15日前支付。” “你倒是很会欠得清楚。” “欠得不清楚,合作就会变成人情。” 接下来的三周,搜索项目几乎停摆。 苏雨桐每周三仍来一次,不写新功能,只检查抓取程序有没有越界、备份能不能恢复。她在任务表上把搜索状态写成“维护”,不许马飞用“暂停”掩盖仍在发生的电话费和数据风险。午饭由客户食堂提供,马飞每天把省下的两块钱记进交通栏,苏雨桐发现后又让他改回生活费——不吃午饭省下来的钱,不能算公司收入。 马飞白天在客户办公室定义字段,晚上录入和清洗数据。原始资料比预想中更乱:同一张汇款单上的日期有三种写法,代理商改名后旧欠款没有合并,有两百多条记录缺少地区。 客户希望他“按经验补上”。 马飞拒绝,把所有无法确认的记录标成待核实。 “空着不好看。”梁经理说。 “填错更好看,但会让你按错误欠款去催款。” 验收前两天,系统突然出现中文字段乱码。原因是客户新换的一台机器使用了不同的代码页,导入时把部分字节转换错了。若重录,工期必然超时。 马飞通宵写了恢复程序,根据原始备份和字段校验表逆向还原。第二天上午,九成七的记录自动恢复,剩余三十六条人工核对。 梁经理在验收单上签字时问:“你这套清洗方法,能不能给别家公司用?” “能,但规则要重新定义。” “我有个做汽车配件的朋友,也是一屋子表格。” 一张新的名片被推过来。 这比尾款更重要。 财务在验收表上另加了一条:三十六条人工核对记录全部附原件,系统不得自行补全。原先坚持“空着不好看”的梁经理也签了字。那位老销售把三本活页夹抱回柜子时说,以后谁再改代理商名字,先来他这里领一张变更单。 6月12日,两千元结清。马飞付清苏雨桐的补贴,预留三个月房租,又买了一台用于备份的二手硬盘。 他没有买内存。 苏雨桐问为什么。 “现金流刚能呼吸,不能因为缓过一口气就把氧气用完。” 她点点头,把自己的奖学金存进银行。 当天晚上,马飞难得在十点以前关掉电脑。他从街口买了两碗炸酱面,请苏雨桐和楼上五金店老板一起吃。老板端着碗问这算庆功还是还饭钱,苏雨桐翻开账本,说最多算项目餐,每人不得超过一块五。 马飞把发票夹好,又在那条红线后重新计算日期。房租、电话和欠付都算进去,现金能撑到九月十一日,合九十一天。 蚊子又落在数字旁边。他这次没拍,先拿旧纱布把半地下室的小窗钉了起来。 第16章 苏雨桐的条件 三个月合作期结束时,苏雨桐带来了一份她自己写的协议。 不是对马飞方案的小修小补,而是整整六页反提案。 六页纸装在透明文件袋里,每一页都标了版本号。她还带来法律系同学借给她的合同范本,边角夹着几张公共汽车票。半地下室新钉的纱窗挡住了蚊子,也挡住一半风,两个人才谈了十分钟,后背就开始出汗。 马飞去楼上借来一台电风扇。五金店老板不肯白借,要求在协议最后加一条:谈成以后库存程序再免费维护半个月。苏雨桐让他把这项交换也写进费用表,老板愣了一下,自己找笔签了名。 第一条就改了身份。 “技术合作者”改为“检索研究负责人”。 “你现在只有一个全职人员。”马飞说,“负责人这个称谓负责谁?” “负责一条技术路线,不是负责下属。中文切分、编码识别、查询评估由我建立方法和验收标准。你可以参与,不能把它们默认并入‘马飞的搜索算法’。” “同意。” 第二条是时间。每周十二小时保持不变,论文和考试优先。任何连续通宵必须由她本人决定,公司不得把紧急交付当作常态。 第三条是成果。公开论文保留学术署名;公司代码归公司使用;她在加入前已经形成的笔记、数据集和方法论仍归个人所有,授权项目使用而非永久转让。 第四条是退出。若公司拖欠补贴超过三个月、擅自改变数据边界或要求隐瞒测试结果,她可以立即停止合作,并保留已经成熟的权益。 第五条才是股权。 苏雨桐接受百分之七的目标比例,但提出双触发条件:星辰完成有限公司改制后签署正式股权文件;在此之前,以合同权益记账。四年成熟、满一年取得四分之一可以保留,但如果公司在她满一年之前被整体出售,因控制权变化导致她无法继续,首年部分按实际服务月数折算,不得全部归零。 “你找谁看的?”马飞问。 “法律系同学,还有我舅舅。他办过乡镇企业改制。” “他们怎么评价?” “我舅舅说你给一个学生百分之七,要么看中了我,要么脑子坏了。” “你怎么回答?” “我说还没排除第二种。” 马飞笑出声。 “别笑。”苏雨桐把第五页推过去,“你给的是未来权益,风险却从今天开始。要是改制拖五年,我不能拿五张欠条当股东。” “加最迟改制期限。到1997年12月31日仍未完成,你可以选择继续记账,或按双方认可的估值转换成现金债权。” “估值谈不拢呢?” “找独立会计评估,费用公司出。” 苏雨桐用红笔写进去,又在旁边留出马飞确认的空格。她准备得足,马飞也没有用创始人身份压她。谈到这里,协议从六页变成了七页。 半地下室里终于多了一张桌子,是梁经理淘汰下来的旧办公桌,用第二个数据库项目抵了部分费用。两人隔桌坐着,窗外不断有鞋影经过。 “协议还缺一项。”马飞说。 “什么?” “如果你建立的质量标准拖慢产品,而公司现金不足以继续等,怎么决定?” “先公开代价。你不能只说‘来不及’,要给出上线收益、错误范围和修复成本。” “然后?” “涉及检索质量,我可以要求标注为测试版、限制用户范围,或者撤掉不可靠功能。是否继续经营由你决定,但不能把未经验证的结果包装成已经可靠。” “可以。” “航天预算呢?” 马飞取出自己修改后的章程草案。 其中单列一条:搜索业务在未达到十二个月正向现金流前,不为航天硬件研发提供资金。任何跨业务投入必须有独立预算、里程碑和风险披露。 苏雨桐读完,在页边写下:“软件和控制仿真研究如何界定?” “如果同时服务搜索基础设施,由项目承担;只服务火箭,单列。” “别到时候把火箭控制写成‘分布式系统研究’。” “你可以审计。” “我要财务知情权。” “每月看账,保密。” 两人从下午谈到天黑,最终留下十三条修改。 中途停电二十分钟,两个人借着小窗透进来的光继续核条款。楼上的鞋影一双双经过,水管响了两次。马飞原先准备的两页方案被压在最下面,几乎每一条都改过,却没有一条让他觉得公司因此少了什么。 协议签署日期是1996年6月29日。 苏雨桐在最后一页签下名字,身份写的是“检索研究负责人(兼职)”。 马飞代表星辰信息技术开发中心签字,并盖上那枚刚刻不久的公章。 印泥有些干,第一次盖得不完整。他没有在原印上补盖,而是在旁边重新盖了一次,把失败的那枚保留下来。 “为什么不换一页?”苏雨桐问。 “它没有影响有效性。” “看着不好看。” “公司以后会有很多不好看的记录。留着提醒我们,完整比漂亮重要。” 苏雨桐看了那枚浅印几秒,在协议复印件的备注栏写明“首次盖印不完整,未作废,旁侧印章有效”,免得以后有人误以为是两份不同文件。 “既然要留,就把为什么留也写清楚。”她说。 苏雨桐收起属于自己的协议。 “那现在做什么?” 马飞把最新索引统计推过去。 一千四百二十七份文档,九种编码声明,实际可归并为四类。百分之十二的中文页面存在声明与内容不符,切分词典在专业名词上错误率尤其高。 “先解决乱码。”他说。 “不。”苏雨桐指向统计表最下面,“先建立一个不被我们随意修改的测试集。否则每次解决乱码,可能同时把别的查询弄坏。” 她从书包里拿出一张新软盘,贴纸上写着: xq-001,基准查询集,只读。 “一百组查询,来源、期望结果和评分规则都在里面。任何人改测试集,必须记录原因。” 马飞接过软盘。 “包括你?” “尤其包括我。” 马飞把软盘的写保护拨片推开,先复制一份校验,再重新锁上。两份校验值一致,苏雨桐在基准集登记表上签字。她随机抽了第六十三组查询,现有系统把一篇编码错乱的电话黄页排在第一,两个人同时皱了眉。 “看来入职第一天没有好消息。”马飞说。 “有。”苏雨桐指着错误结果,“它在签完协议以后才来,算公司的,不用我个人背。” 楼上五金店老板正好端下来两碗凉面,听见这句,只关心协议里的免费维护还算不算数。苏雨桐把他签过字的费用表递回去:“算数,十五天,一天也不多。” 第二张桌子的台灯亮到夜里十一点。xq-001锁在铁盒里,旁边放着那份盖了深浅两枚红章的协议。 第17章 乱码之夜 7月的第一个星期,星辰搜索的有效文档突然少了四分之一。 发现问题时正是下午两点。半地下室被太阳晒过的人行道捂得发闷,风扇转到最大档,只把打印纸吹得到处跑。楼上五金店老板下来问库存程序怎么少了三个货名,随手在搜索框里输入“密封圈”,屏幕却吐出一串方块。 “你这公司连自己楼上的货都不认识了?” 马飞没有解释,先关掉当天的索引更新。新数据继续写进去,只会让能查的内容更少。 文档仍在硬盘里,索引也没有损坏。可用户输入中文后,大量页面再也匹配不到。日志显示它们的词项变成了一串看似随机的汉字和符号。 马飞先怀疑新加入的前缀压缩。 苏雨桐却把两份原始页面并排打印出来:“不是压缩。它们都声明gb2312,其中一份实际是大五码,另一份中间夹了英文软件转出来的扩展字符。” “按声明解码当然会错。” “不能只信声明。” 当时的中文网络没有统一整洁的编码环境。简体、繁体、不同平台扩展字符甚至错误转换后的文本混在一起。浏览器尚且经常需要用户手动选择编码,抓取程序更无法指望每个站点都写对说明。 苏雨桐提出用字节分布判断编码:统计高位字节组合落入各字符集合法区间的比例,再结合常见中文词给出置信度。置信度不足时不强行转换,而是标记为待判。 第一版规则在普通文章上有效,遇到代码和英文资料便频繁误判。 两人把一百多张误判页面铺在地上,按来源和字节特征分堆。折叠床无法展开,晚饭只能蹲在门口吃。苏雨桐的凉面被风吹进一粒墙灰,她挑出来,继续给一份港台课程表画圈;马飞喝掉半缸温水,衬衫后背仍然湿透。 马飞建议加入页面语言比例。 第二版改善了英文页面,却把含大量公式的中文论文目录判成未知。 两人一直改到凌晨,基准集得分从七十二升到八十六,又因一次“优化”跌回七十九。 “恢复上一版。”马飞说。 苏雨桐没有动:“上一版在繁体页面上错得更多。总分高,是因为测试集里简体页面多。” 她把一百组基准查询按来源拆开。高校、研究机构、个人主页、港台站点分别评分后,问题暴露出来:系统所谓的整体进步,是牺牲小类样本换来的。 “不能只看一个平均数。”她说,“否则数据少的人永远被平均掉。” 两人重新规定验收标准:总分提升之外,任何来源类别不得下降超过既定阈值;未知编码可以暂不入索引,但必须保留原文和失败原因。 新标准落下以后,那版看似八十六分的规则当场降到六十八。马飞把墙上原先写好的“恢复完成”四个字擦掉,改成“简体可用,繁体未过线”。第二天陈维明来催产品资料库,他看见那行字,没有追问为何分数变低,只说客户交付的页面也有两种编码,愿意提供一百份脱敏样本。 样本没有白拿。星辰出具测试用途和删除日期,陈维明的技术员签字确认。新数据补上了基准集最薄的一块,也让那位技术员第一次看见自家页面在不同机器上为什么会变成乱码。 凌晨三点,楼上的水管轰然响起。 半地下室闷热,电风扇吹出来的风也是热的。苏雨桐趴在桌边打了十分钟盹,醒来后发现马飞仍在逐条核对误判。 “你可以明天再做。” “早上要给客户改数据库。” “那就后天。” “抓取队列每天都在增加。” 苏雨桐伸手关掉显示器。 “我们协议里写了,连续通宵不能成为常态。” “今天是异常。” “上周你也说异常。” 黑掉的屏幕映出两个人疲惫的脸。 马飞想反驳时间窗口,却忽然发现自己正在把“只有七年”变成一张可以无限透支身体的支票。前一世的团队里,也有人用同样的理由工作到住院。他当时认为那是使命感。 “你说得对。”他保存日志,“睡四小时。” 折叠椅只有两把,拼起来仍不够一个人躺平。马飞把折叠床让给苏雨桐,自己去楼上五金店柜台后面的躺椅。老板被开门声吵醒,丢给他一把蒲扇,问公司现在欠了多少觉。 “账上没记。” “那就是假账。”老板翻身继续睡。 第二天早上,马飞真在费用表旁添了一栏“连续工作时长”。它不折算成钱,只在超过十六小时时强制停止新增任务。 他们把折叠椅拼在一起,谁也睡不舒服。天亮后,马飞去买了豆浆和烧饼,回来时苏雨桐已经把夜间方案重新整理成三层流程: 先读页面声明。 再做字节合法性检查。 最后用小型常用词表验证;低置信度内容隔离,不污染主索引。 这套方法没有解决所有乱码,却让每一次失败有了去处。 一周后,有效文档恢复到原来的百分之九十三。繁体页面的可检索率首次超过六成,未知编码页面从“莫名消失”变成一份清晰的待处理清单。 苏雨桐把方法写成论文初稿,题目是《混合中文网络文本的轻量编码判别》。 作者第一位写她自己,第二位写马飞。 马飞看完,把第二作者划掉。 “核心方法是你的。我只参与了测试和工程实现,放致谢或项目说明。” “你不怕以后投资人觉得公司技术不是你的?” “技术本来就不该全是我的。” 苏雨桐没有立刻接受。她拿贡献记录逐项对照:字节合法区间由她整理,常用词验证由她提出;工程实现是马飞,分层评分则共同确定。最后她保留单独署名,在致谢里明确写出马飞的实现工作和星辰提供的样本环境。 “以后别替别人谦让署名。”她说,“这次是记录支持,不是你一句话支持。” “同意。” 苏雨桐重新打印首页,只保留自己的名字,并在末尾注明星辰科技提供实验环境。 那天晚上,她把xq-001基准集封存为第二版。 马飞也在公司技术账上新增一项资产: 混合编码判别方法,负责人苏雨桐。 他写完把笔递给她,让她在负责人后面确认。苏雨桐签完,又补了授权范围:星辰搜索与客户检索项目永久使用,论文公开不受公司融资影响。 当晚,两人把恢复出的繁体页面重新抽查一遍。楼上五金店老板下楼关总闸前,照例搜了一次“密封圈”。这回屏幕返回十二条,第一条就是他的库存说明,货号、数量和货架位置都对。 “总算认识我了。”他说。 苏雨桐把这一条也记进测试表。半地下室的风扇吹着论文首页,第一行作者只有她一个人的名字。 第18章 门外的投资人 陈维明来到半地下室时,先在门外站了半分钟。 他三十五岁,做通信设备代理起家,西装袖口沾着一点墙灰。介绍他来的是医疗器械公司的梁经理。 楼道新换的灯泡还没装,房东搭着木梯挡在门口。陈维明只能侧身从梯子和水管中间挤过去,皮鞋踩到白灰,脸色却没变。他手里没有公文包,只拎着一只通信设备的纸箱。 “梁总那套系统我看过。”他说,“先别讲计划,帮我找一样东西。” 纸箱里是三份不同厂家的交换机说明书和十几张售后传真。同一种故障码在中文手册里译成“中继失步”,在培训资料里写成“链路不同步”,销售人员每次都要打电话问工程师。 马飞把已经录入样例库的两份资料调出来,输入故障码,两个说法出现在同一页。第三份说明书尚未录入,他如实说找不到,没有拿相似结果冒充。 陈维明这才在那张新添的办公桌旁坐下。 “梁总说你能把一屋子乱账变成能查的数据。”陈维明看了看低矮窗户,“没说你在这里做全国网页搜索。” “现在还不是全国。”马飞说,“一千九百多个有效页面,封闭测试。” 陈维明输入“数字程控交换机”,系统两秒后返回结果。第一条是公开技术目录,第二条是某高校课程介绍,第三条不太相关。 他又输入自己的公司名。 没有结果。 “连我公司都搜不到,怎么赚钱?” “你们没有公开网页。” “那我付钱,能不能排第一?” “可以购买标明身份的展示位置,不能把广告伪装成自然结果。” 陈维明笑了:“还没赚一分钱,规矩先不少。” 他又换了个问法:“如果我买下公司,规则能不能改?” “能,按合同和治理程序改。不能今天付钱,明天把广告字样擦掉。” “那我买控制权。” 他在办公室转了一圈,提出八万元购买百分之五十一权益,条件是马飞全职做搜索、两年内不碰航天,苏雨桐的编码方法一并转入公司。 八万元足以换电脑、接独立电话、雇两名程序员,还能让团队一年不为房租发愁。 窗外有人停下自行车,鞋跟正对着半地下室的小窗。楼上五金店老板把午饭从门缝递进来,两只铝饭盒,一盒米饭,一盒青椒土豆丝。他看见桌上的八万元意向书,眼睛停了两秒,什么也没问便退了出去。 马飞的现金账只够三个月,独立电话仍是一条没钱支付的申请。合同上的八万不是抽象数字,它可以立刻让屋里多两张工资单,也可以让他失去决定技术长期方向的最后权利。 马飞却把合同推了回去。 “技术可以授权公司使用,不能替苏雨桐转让。控制权也不卖。” “你公司连有限公司都不是。” “所以更不能在结构没理清时卖掉。” “没有钱,你的理想只能装在这间地下室里。” “有些钱会把门打开,有些钱会把路改掉。” 陈维明用手指点了点桌面:“你拒绝得这么快,回头发不出工资,别说我没给过价。” “所以我不拒绝和你做事,只拒绝这份结构。” 陈维明没有生气。他收起合同,问:“那你需要什么?” “一份真实业务。” 陈维明的公司每月收到大量产品询价,销售人员靠传真和电话回答。马飞提出为其建立可检索的产品资料库,并把公开技术问答整理成网页。项目报价两万元,分三阶段付款;陈维明可在系统达到五千页、完成三所高校封闭测试后,优先参与有限公司改制融资,但估值另议。 “我从老板变成客户了?” “客户能先看到我们是否会交付。” 陈维明考虑片刻:“首款四千,原型验收再付六千,正式交付一万。融资优先谈判期三十天。” “可以。数据所有权归你们,通用检索组件归星辰。” “我出钱做出来的东西,你还要留着?” “你买的是业务系统,不是买断我们以后继续工作的能力。” 陈维明从纸箱里抽出那摞售后传真:“那我再加一个验收条件。同一故障的不同说法能合并,销售只输入报码也能找到处置步骤。做不到,原型款不付。” “可以。你们负责提供术语确认人,每周半天。没有业务人员签字的同义词,只做候选,不自动合并。” “怕担责任?” “怕你的人按错步骤把客户机器停掉。” 陈维明看了他一眼,把技术配合条款写进合同。先前那份五十一权益意向书仍放在一旁,纸角已经被饭盒蒸汽熏得微卷。 谈判到傍晚才结束。 陈维明签字前说:“你不像第一次创业。” 马飞回答:“我见过一次把所有筹码压在单一项目上的失败。” 这仍然是真话。 首款到账后,星辰科技添了一条八兆内存和一台二手486作测试机,却没有搬办公室。马飞把剩余资金按三个月运营预算锁进账本,不得提前动用。 装内存那天,五金店老板专门下来围观。他看着启动检测从8192跳到,以为电脑速度会立刻翻倍。第一次索引构建结束,时间只缩短四成,他很失望;苏雨桐却把连续三次数据贴上墙,确认磁盘交换下降到原来的三分之一。 陈维明来验原型时带了自己的销售。那名销售输入一个从未给过他们的口头叫法,系统先返回两条候选,再提示需要确认对应报码。销售在纸箱里翻出传真核过,当场把其中一条标成正确。 首阶段验收通过,六千元按合同打进账户。陈维明没有再提八万元,也没有借验收逼他们提前承诺融资。 苏雨桐看完合同,重点不是金额。 “为什么把三所高校测试写进融资条件?” “让潜在投资建立在真实用户上,不建立在我的预言上。” “如果测试失败?” “他就有理由不投,我们也有数据改产品。” 她点头,在投资接触记录中写下: 陈维明,潜在投资人;当前身份为客户,不拥有技术决策权。 几天后,楼道里挂起一盏新灯。陈维明离开时让房东换的,说客户进门总不能摸黑。 房东装灯时,把电费记在陈维明项目的招待杂费里。苏雨桐看到账本,要求改成房屋改善,由房东承担。三方来回说了十分钟,最后房东从下月租金里扣掉灯泡钱。 晚上九点,陈维明离开。门外的灯亮着,那份五十一权益意向书被他带走,签过字的客户合同则锁进铁盒。马飞端起早已凉透的青椒土豆丝,坐回电脑前核对第二阶段的术语表。 第19章 一百次查询 封闭测试开始于1996年10月。 参与者二十一人,来自三所高校:研究生、图书管理员、实验室助教和两名网络中心管理员。每人提交五个真实问题,不要求使用标准关键词。 第一天,马飞骑车送出三只牛皮纸袋。里面是测试说明、回邮信封和编号表,唯独没有推荐关键词。苏雨桐坚持不去现场指导,免得测试者看他们脸色调整问法。 有位老图书管理员不会用鼠标,让值班学生替她输入,自己只负责判断结果。她的五个问题写在旧目录卡背面,字很工整,其中一个只记得“八十年代,有个外国人写卫星姿态,小蓝皮书”。系统对这种描述几乎无能为力。 一百零五次查询中,系统崩溃四次。 第一次崩溃发生在北航机房,测试者以为自己按错了键,连着重试三遍,制造了三份相同故障。马飞赶到时没先重启,而是让管理员把机器留在原样,给那名学生换一台继续。学生等了二十分钟,仍把剩余四个问题做完,临走在表上写:崩了以后最好告诉我该不该再按。 星辰随后增加错误页:显示故障编号、是否需要重试和反馈地址。这个页面不提高任何相关率,却在后两次故障里阻止了重复请求继续挤压服务器。 首条结果被多数测试者判定相关的有五十八次。 完全没有可用结果的有二十七次。 最糟糕的一次查询是“哪里能找到微小卫星姿态控制的国外资料”。系统把“微小”切成两个单字,又把“姿态”与个人主页里的“生活姿态”匹配,第一页几乎全是无关内容。 另一类问题来自重复页面。同一份论文目录被多个站点镜像后,占据前十条中的七条。用户以为结果很多,实际上只有一份信息。 陈维明看完数据:“六成能用,已经可以宣传。” 苏雨桐摇头:“测试者知道这是实验,会主动换词。普通用户第一次找不到就走了。” 马飞没有站在任何一边。 他把梁经理那套客户系统的验收表放在旁边。企业客户能为明确字段付钱,陌生用户却不会因为公司缺现金就降低要求。陈维明愿意先用“六成”吸引关注,并不算恶意;问题是宣传出去以后,剩下四成的失败也会被当成承诺的一部分。 “可以对外说正在测试,也可以公布原始统计。”马飞说,“不能只截五十八。” 陈维明问:“七十一以后呢?” “一样报完整。” 他把一百零五次查询按失败原因贴满墙:语料缺失、切分错误、编码错误、重复聚集、排序偏差、系统故障。 最大的类别不是算法,而是语料缺失。 1996年的中文网页本来就少。搜索系统不可能返回网络上不存在的内容。 “要区分‘系统没找到’和‘网络上没有’。”他说。 团队新增“来源覆盖”记录:对重要公开目录建立已知清单,定期检查是否抓取;对缺失内容不伪造结果,而是提供可能的图书馆、数据库或站点入口。 重复问题则用内容指纹聚类。同一正文只展示一个主结果,其余镜像折叠为来源列表。 切分错误由苏雨桐主导。她没有无限扩大词典,而是允许查询端保留多种切分候选,再用文档命中情况选择。这样会增加计算量,却比一次错误切分后全盘丢失更稳健。 新版本完成后,他们没有删除旧结果。 同一百零五次查询重新执行。 系统崩溃降为一次,首条相关提高到七十一,完全无可用结果降至十八。响应时间却从平均一点九秒升到三点一秒。 重跑那天,三所学校的原始表全部封在信封里,由网络中心管理员随机拆序。苏雨桐没有参与评分,只处理事先写明的争议项。结果出来后,那个寻找“小蓝皮书”的问题仍然失败;微小卫星姿态控制的国外资料却从第一页无关,升到了首条可用目录。 提出它的实验室助教在反馈栏写了一句:这回能用。没有夸算法,也没问是谁改的。马飞把那四个字剪下复印件,贴在重复聚类模块旁边。 “不能只报准确率。”苏雨桐在报告上补入延迟变化。 马飞又增加了一项:最慢查询十一点四秒。 陈维明看着那张并不漂亮的成绩单:“你们发布产品,都这么主动写缺点?” “不写,缺点也在。”马飞说。 测试结束前,一名图书管理员提出了最关键的意见。 “结果为什么排成这样,我看不懂。” 系统内部有词频、标题命中和链接权重,但用户只看到一列地址。马飞原本认为排序解释会让界面变复杂。测试者却需要判断结果值不值得点开。 他们为每条结果加入来源、更新时间和包含查询词的正文片段。若页面来自镜像,明确显示主来源;若编码置信度低,给出警告。 最后一轮测试不再追求一个总分。 星辰建立了第一套质量基线: 崩溃率低于百分之一。 一百组固定查询中,首条相关不少于七十组。 任何来源类别不得因整体优化显着退步。 平均响应低于四秒,最慢查询必须有单独记录。 失败结果保留,不以修改测试集的方式提高成绩。 墙上的一百零五张纸最终装进两个档案盒。 盒盖标着:xq-002,1996年秋季封闭测试。 封盒时已过夜里十二点。苏雨桐逐页数到一百零五,发现少了第八十二张。两个人翻遍桌下,最后在折叠床褥子底下找到,纸角被压出一道折痕。马飞想重印,苏雨桐说原始评分表就该留着折痕,只在清单里注明保存状态。 陈维明送来的两瓶汽水已经跑光了气。三个人拿搪瓷杯分着喝,顺便定下下一轮校园开放的故障值班表。那位老图书管理员的“小蓝皮书”仍列在十八项无结果里,旁边写着待查的馆藏入口。 马飞合上第二只档案盒,用棉线绕了两圈。盒子不厚,正好塞进铁柜最下层。 第20章 星辰第一次亮起 1996年12月18日,星辰搜索向三所高校开放小范围测试。 没有发布会,也没有广告。 马飞和苏雨桐凌晨五点就到了机房。借来的pentium主机装在一只没有商标的灰机箱里,前一晚由陈维明公司的面包车送来。司机怕路上颠坏,拿两床旧军被把它夹在中间,到学校时机箱里还是松了一颗螺丝。 马飞重新紧固、开机、跑完磁盘检查。苏雨桐则把故障联系电话写在黑板上,又去食堂买了六个包子。两人谁都吃不下,包子装在纸袋里,慢慢被暖气烘干。 网络中心在内部导航页加了一个入口,标题写得克制: “中文公开资料实验检索——星辰0.3版。” 开放范围限制在校园网,服务器是一台借来的pentium机器,每天凌晨同步索引。系统收录有效页面四千八百七十二份,与“全国搜索”相去甚远。 上午九点,访问日志里出现第一个陌生地址。 用户输入:“低温推进剂管路振动 外国论文。” 系统返回八条结果。第一条是高校公开目录,第三条来自海外研究机构的摘要镜像。用户点击第三条,七分钟后又回来搜索作者姓名。 马飞盯着日志,没有动。 苏雨桐把一只冷包子塞给他:“别回车,别替用户改词。” 马飞这才发现自己的手已经悬在键盘上。他收回来,看着对方自己点击第三条,又过了七分钟搜索作者。整个过程没有他们帮忙,连结果页的拼写错误都原样暴露着。 这不是团队预设的测试词,也不是认识的人帮忙演示。屏幕另一端有一个他们不知道姓名的人,正在用星辰寻找真正需要的资料。 十点十六分,系统收到第一封反馈邮件: “通过作者名找到了馆藏索引。摘要年份似乎标错,应为1992,不是1982。” 苏雨桐立即核对来源。错误来自原站点,星辰只是照录。 “要不要改?”她问。 “不能静默改别人的内容。显示来源错误提示,并给站点管理员发信。” 他们把用户反馈编号为xf-0001。 网络中心管理员回信给原站点以后,还把用户也抄送进去,说明星辰只能标注纠错,不能修改源页面。半小时后,原站点确认年份录错并更新目录。下一轮抓取到新页面时,系统保留旧版本记录,在结果旁显示“来源已更正”。 发反馈的用户又写了一句:这样我知道是谁改的。 下午访问量上升,新的问题也接连出现。 有人搜索课程讲义,结果很好;有人搜索一家没有网页的企业,空白;有人连续提交极长问题,把查询进程拖慢;还有人故意输入脏话,测试系统会返回什么。 四点二十七分,服务器第一次失去响应。 原因不是流量巨大,只有三十七个并发请求。真正的问题是一个超长查询生成了过多切分候选,占满临时内存。 马飞想直接重启。 苏雨桐拦住他:“先保留现场。” 他们复制日志和内存状态,再重启服务,随后限制查询长度,并为候选数量设置上限。中断持续十一分钟。 恢复后,最先回来的正是触发超长查询的地址。对方把问题缩短成四个词,这次正常返回。马飞在故障单上记下:用户自行重试成功。苏雨桐又补了一行:页面应提示长度上限,不能要求用户猜。 五点前,长度提示上线。有人故意粘进一整段课程讲义,系统没有再崩,只让他删短。机房管理员站在后面看完,拍拍马飞肩膀:“这回机器比上午有礼貌。” 测试页上,马飞公开写下故障时间和原因,没有用“系统维护”遮掩。 晚上八点,访问量逐渐下降。 当天共有二百一十三次查询,独立用户估计六十八人,收到反馈十九条。首条相关率无法立即计算,因为陌生用户没有义务替他们评分。 团队第一次面对不受控制的真实使用。 数字不再只属于实验室。 陈维明带来两瓶汽水,放在桌上:“现在可以算产品了?” 汽水在路上冻得发凉,瓶盖一开便冒出一层白沫。陈维明找不到杯子,三个人只好轮流对着瓶口上方倒进嘴里,谁也没碰瓶沿。苏雨桐嫌这样更容易洒,最后从值班室借来三只搪瓷杯。 “算测试服务。”苏雨桐说。 “什么时候正式发布?” 马飞在白板上写下:1998。 陈维明皱眉:“还要一年多?” “需要扩大公开数据覆盖,建立稳定服务器,解决收入和合规。现在提前宣传,只会让用户把一次宕机记成全部印象。” “市场不会等你。” “所以我们不是慢慢磨到完美。”马飞说,“1997年按季度扩大测试,每次扩大都必须让系统承担一种新的真实压力。1998年发布能持续使用的版本。” 苏雨桐在日期下面补了三个条件: 一万次真实查询基线。 稳定的数据退出和纠错渠道。 连续三个月付得起服务器与人员成本。 马飞又加上第四条: 核心技术不依赖不可获得的未来设备。 夜里十一点,校园网入口关闭。服务器完成最后一次索引备份。 那名寻找低温推进剂论文的用户又发来邮件,说已经通过馆际借阅提交申请,并谢谢他们提供作者线索。 马飞把邮件打印出来,贴在文档000001旁边。 一年前,苏雨桐为了找一篇论文花掉两天饭钱;眼前这个陌生用户只拿到作者线索,仍要等馆际借阅。差距没有消失,只缩短了其中一段路。苏雨桐在反馈记录里写下“馆藏入口有效”,把是否最终借到论文留作待回访。 半地下室的窗外开始下雪。行人的鞋影逐渐消失,街面安静下来。第二张桌上的台灯仍亮着,服务器风扇发出持续的低鸣。 马飞打开张建国借给他的笔记,在空白页写下: 1996年12月18日,星辰搜索第一次由陌生用户验证。 下一行,他写: 1998年,正式发布。 更下面的年份仍然遥远: 2002年,星辰航天。 他没有把那几个字圈起来,也没有写“必须成功”。 他只是合上笔记,和苏雨桐一起检查完最后一份备份。 服务器备份校验到夜里十一点四十。校园网入口已经关闭,最后一班公交也走了。网络中心管理员给他们找来两张折叠床,床脚一长一短,和半地下室那张差不多。 苏雨桐把xq-002档案盒垫在桌脚下面,马飞立刻又抽出来,换成一本废电话簿。两人争了两句,谁也没忍住笑。 窗外的雪越下越密。马飞关掉机房大灯,只留服务器旁一盏台灯。那封用户邮件贴在文档000001旁边,纸边被暖气吹得轻轻发颤。 六个包子还剩两个,已经硬得硌牙。他们用值班室的热水泡软,一人一个吃完,才各自躺下。 第21章 三封问题邮件 星辰搜索开放测试后的第二天,马飞六点半回到半地下室。 前一夜借宿机房,他只在折叠床上睡了三个小时。骑车回来时,车筐里放着服务器备份带、两根冷油条和一只从值班室借来的搪瓷杯。门外那盏灯还亮着,楼上五金店老板隔着卷帘门喊他关灯省电。 拨号收信完成,屏幕里多了三封邮件。标题都很短,没有一封写“祝贺”。 第一封来自北方工业大学图书馆。发信人说,搜索“复合材料疲劳”时,结果页上有两条记录点不开。 第二封来自一名研究生。他输入论文题名里的连续七个字,系统却只返回拆散后的单词,真正那篇论文排在第十九位。 第三封最短。 “你们把我的名字变成了乱码。” 马飞把三封邮件打印出来,依次摆在桌上。 苏雨桐进门时,手里还提着两个刚从食堂买来的铝饭盒。她扫了一眼,问:“先回哪一封?” “都不回。” 她抬起头。 “在复现之前不回结论。”马飞说,“先告诉他们已经收到,给编号和下一次回复时间。” 油条已经硬得咬不动。苏雨桐把它掰进豆浆里泡着,自己坐到第二张桌前回复收件确认。她给每封邮件写了不同的复现期限:死链接当天,题名排序三天,乱码姓名二十四小时。马飞原本想统一承诺当天,她把“今天”逐个删掉。 “排序要跑回归,别拿别人的午饭时间替你显得痛快。” 马飞看了眼墙上的连续工作时长表,没有再改回去。 他用直尺在一张白纸上画了六列。 编号、报告人、原始输入、运行环境、复现步骤、处理状态。 第一封被标成xc-0001。 六列表刚贴好,楼上老板便探头问“xc”是什么意思。马飞说是星辰问题编号,老板指着自己库存程序里尚未解决的打印偏移,要求也编一个。 “那是客户项目,不在搜索队列。” “问题还分贵贱?” 马飞只好另开一本客户维护簿。老板满意了,顺手帮他们把木板刨掉毛刺,免得钉纸时扎手。 马飞拨号连接北方工业大学的镜像目录。两条死链接并不是索引错误,而是对方在测试开放前移动了文件。星辰保存的来源地址已经失效,页面摘要却仍留在结果里。 “删除?”负责数据整理的兼职学生问。 “先标失效。”苏雨桐说,“删除会让我们忘记它为什么消失。” 她把原地址、最后一次成功抓取时间和当前响应写进记录。 下午,结果页加上灰色的“来源暂时无法访问”,并保留最后抓取日期。图书馆员按邮件里的地址重试,回信说这样至少知道不是自己的电脑坏了。xc-0001随即从“待设计”改为“已缓解,等待来源恢复”,没有被草率关单。 第二个问题更麻烦。 研究生输入的是《层合复合材料疲劳损伤累积模型》。系统把“损伤累积”切成“损伤”和“累积”,又把题名权重与正文词频混在一起。那篇正确论文虽然全部命中,却被一篇重复出现“复合材料”的综述压到后面。 苏雨桐没有直接改权重。 她先拿出早期封闭测试留下的一百次查询表,把这条新查询加到末尾。 “一条投诉不能证明普遍问题。”她说,“但它可以成为一个不能再丢的样本。” 两人用旧版本重跑,保存结果;再单独提高题名连续命中的权重,重跑一次。 正确论文升到第四位。 再提高,升到第一位,但另有七条查询的结果变差。 其中一条正是前一天陌生用户找到的低温推进剂论文。题名权重继续上调后,一份只有相似标题的课程表反而压过了论文目录。马飞把两张结果并排放着,手从上线开关上移开。 马飞盯着两组表格:“不能为了回一封信,偷偷换掉所有人的答案。” “所以要把变化范围写清楚。” 他们暂时没有上线新权重,只在回复里说明问题已经复现,进入评估。 第三封邮件来自一位姓“覃”的学生。 在一批big5转码资料中,“覃”被替换成了问号。系统建立索引时又把问号丢弃,最后只剩下名字的后两个字。 苏雨桐找出原始字节,确认不是切分规则,而是字符映射表缺项。 “这个可以修。”她说。 “修映射表,也要保留原始内容。” “当然。” 下午四点,xc-0003完成复现、修复、回归测试和回复。xc-0001被标成“来源失效,待设计展示规则”。xc-0002仍是“评估中”。 覃同学十五分钟后回信,正文只有五个字:“这次名字对了。”附件是一张结果页截图,姓名三个字完整显示。苏雨桐把截图打印出来,和出错的那张叠在一起订到工单后面。 兼职学生看着那两张纸说:“改映射表只用了半小时,写记录倒用了一个小时。” “下次再遇到这个字,就省的不止半小时。”苏雨桐说。 三封邮件只解决了一封。 马飞却在墙上钉了一块新木板,把那张六列表贴上去。 木板顶端写着: 问题不是打扰,是产品的一部分。 苏雨桐在下面补了一句: 但报告人的声音,不等于全部用户的声音。 当晚,第四封邮件到了。 发信人没有描述问题,只留下一串查询词和一句话: “你们愿不愿意看看,我为什么总找不到同一篇文章?” 马飞给它编了号。 xc-0004。 夜里十一点,五金店老板下来关门,顺手把客户维护簿也放到木板下。马飞泡开中午剩下的米饭,坐在电脑前复现那串查询词。苏雨桐已经回学校,临走前在xc-0002旁贴了一张黄色纸条:禁止为单一邮件直接上线。 第四封邮件的查询一共二十三个字,第一次运行仍然找不到那篇文章。马飞保存结果,把预计回复时间写到第二天晚上八点,才点击发送确认。 第22章 不能抓的页面 xc-0017不是用户发来的。 它来自一位愤怒的站点管理员。 上午九点,楼上五金店的传真机刚换完纸,机器便连续响了三声。老板以为是进货单,看到“造成拨号网关拥塞”几个字,直接拿着传真冲下楼。马飞正在给三个客户演示资料库,他只说了句抱歉,关掉投影,把抓取电话线先拔下来。 客户问演示怎么办。 “本地功能继续,联网部分延期。今天占用的时间不计费。” 陈维明公司的技术员也在其中。他没有离开,反而把自己带来的插线板借给周成保存日志。 传真纸从机器里吐出来时,字迹有些发虚,语气却非常清楚: “你方程序于凌晨一点至三点反复访问本校材料数据库,造成拨号网关拥塞。请立即停止。” 马飞看完,把正在运行的抓取任务全部暂停。 半地下室里那台新添的测试机刚完成一轮队列扩展。为了增加高校公开资料覆盖,程序把三所学校的镜像目录拆成数百个地址,再按失败次数自动重试。 旧调度器有单站点间隔。 新队列也有。 问题出在断线恢复。 每次拨号重连,程序会从磁盘载入未完成队列,却没有恢复各站点的上次访问时间。对它而言,所有地址都像第一次出现。某个站点响应缓慢,任务失败后又被放回队尾;重连一次,限频时钟便清零一次。 “一晚上四百一十三次。”苏雨桐把日志推到马飞面前。 正常预算是五十次。那四百一十三次里,最长间隔只有十二秒,最短不到一秒。周成把自己测试过的断点文件拿出来,页面内容确实没有重复下载;站点访问时钟却只存在内存里,一断线就归零。 兼职程序员周成脸色发白:“我测过断点续传。” “你测的是文件。”马飞说,“没测对别人机器的影响。” “那套数据库本来就是公开的。” “公开不等于可以把门挤坏。” 周成低头不说话。他是兼职程序员,按完成的功能拿补贴,这次队列扩展原本能让有效页面数在月底前多两成。覆盖数字写在他的阶段目标里。 “这次不扣你的补贴。”马飞把目标表撕下来,“指标是我定的,只写了增加覆盖,没写重连后仍遵守频率。故障分析你主笔,修复要过苏雨桐的破坏性测试。” 周成抬头:“如果两天修不好?” “抓取继续停。客户库先用现有资料交付。” 马飞先回传真。 他没有解释星辰的技术困难,只承认访问来自他们的程序,说明任务已经暂停,并留下电话和完整日志时间段,请对方确认网关恢复情况。 二十分钟后,电话打了过来。 管理员姓高,说数据库没有损坏,但夜间线路本就只有两条,星辰的重试占满了其中一条。 “我们公开资料,是给人查的,不是给机器搬家的。”高老师说。 电话背景里有人不断问网关能不能用。高老师每回答一句,语气就更硬一点。马飞拿笔记下对方两条拨号线、夜间值班和受影响时段,没有插话辩解自己的并发量其实只有一个。 马飞停了一下:“您愿意规定机器怎么访问吗?” “什么意思?” “比如每天最多多少次,什么时段,哪些目录不能抓。我们把规则写进程序。” 电话那头沉默片刻。 “先把你们是谁写清楚。别再装成普通浏览器。” 这句话击中了另一个问题。 为了兼容几个老站点,周成让抓取程序使用了常见浏览器标识。这样成功率更高,却让管理员无法从日志中判断访问者是谁。 马飞在木板上新增了xc-0017,又单独开了一张整改表。 第一项:程序使用明确名称,附联系邮箱。 第二项:限频状态写入磁盘,断线重启后不得清零。 第三项:每个站点设置每日访问预算。 第四项:站点提出退出后,二十四小时内停止并从后续队列排除。 第五项:保留来源和最后抓取时间,不用复制内容冒充星辰自有资料。 周成看着表:“这样会少很多页面。” “对。” “覆盖率会很难看。” “那就让它难看。” 苏雨桐又把月度覆盖目标改成两行:新增有效页面数,以及因限频、退出和预算主动放弃的页面数。两行必须一起报,不能只把前一行贴在墙上。 午饭没人有胃口。楼上老板还是送下来一锅西红柿鸡蛋面,锅底有些糊。周成端着碗蹲在测试机旁,忽然问:“如果管理员永远不让抓呢?” “就不抓。”马飞说。 “那竞争对手抓了,结果比我们多。” “用户会看见他多,也会看见我们少。这个代价由公司承担,不由对方线路承担。” 苏雨桐把第五项下面又加了一行: 纠错不静默篡改。 如果站点内容后来改变,星辰可以更新索引,但必须知道旧记录从哪里来、何时失效。增长不能成为抹掉历史的理由。 他们用了两天重写调度器。 苏雨桐故意在测试过程中拔线十九次,又把系统时钟往前拨、往后拨,模拟重启和跨日。周成的第一版在日期回退时重新获得预算,被她当场打回。第二版把最后访问时间和预算流水同时写盘,任何时钟异常都先暂停,等待人工确认。 第三版测试结束时,四百一十三次访问被稳定压到四十八次。覆盖统计少了七百多个候选地址,问题木板上却没有再多出一封投诉。 第三天晚上,程序重新连接材料数据库。新的访问标识出现在对方日志里,每次请求间隔三十秒,失败两次后自动暂停,等待下一日预算。 覆盖速度降到原来的四分之一。 电话费没有下降,因为连接时间更长。 这是一笔真实成本。 高老师收到测试日志后,只回了一句: “这样可以继续。” 他随后发来一张目录边界表:论文摘要、实验室介绍可访问,学生临时页和内部检索结果禁止;每天凌晨一点到三点最多六十次。表格末尾还有网络中心值班电话。 周成把它逐项录入站点配置,第一次运行前主动打电话请对方看日志。三十分钟后,高老师在电话里报出抓取程序的名称和联系邮箱,两个都能读出来。 马飞把传真和整改表装订在一起。 传真原件已经被热敏纸的温度烤得微卷,字迹以后还会变淡。苏雨桐让他复印一份,原件密封保存,退出目录则单独抄进只读配置。 当天夜里一点,抓取程序按新预算启动。半地下室很安静,屏幕每隔三十秒才滚动一行。周成守到第二十次请求,确认断线重拨后计数从二十一继续,没有回到零。 他在值班表上签字,关掉那条被禁止的学生目录,起身去洗已经凝了油的面碗。 第23章 一万次查询 1997年3月的第一个星期一,苏雨桐抱来一只装满软盘的铁盒。 三所高校的小范围测试已经运行四个月,累计查询越过一万次。早先那一百零五张评分表还能逐页装订,如今仅打印查询文本就要几百张纸,更别说其中夹着拨号来源、点击时间和可能指向具体学生的内容。 她没有把铁盒交给兼职学生,先在马飞面前封掉原始日志的复制口。 苏雨桐提出把它们做成第一份真实基线。 “先去掉能识别人的东西。”她说。 日志里原本保存了拨号来源、访问时间、完整查询和点击记录。它们对复现问题有用,也可能暴露某个学生在查什么。 马飞同意只保留按日打乱后的查询文本、结果位置和是否打开来源页。原始拨号标识在生成统计后删除,问题工单需要回访的样本则单独征得报告人同意。 删除前,周成要求保留一份“以防以后有用”。苏雨桐让他具体写出用途和保存期限。他写了三行,又全部划掉——除了模糊的“也许”,没有一项是当前项目需要。 三个人守着数据转换完成。马飞核对记录数,苏雨桐抽查打乱结果,周成亲手执行删除。屏幕提示释放了十一兆空间,他盯着那个数字说:“原来不要的数据也会越攒越重。” “硬盘满了会响,人被看透不会响。”苏雨桐把删除日志打印签字。 周成不理解:“我们自己保存,谁会看?” “以后人多了,就不只我们看。”苏雨桐说,“规则要在数据不值钱的时候定。” 一万零四百三十七次查询被分成七类。 分类不是程序自动做的。前三百条由马飞和苏雨桐分别标,分歧最多的是“机构或人名”与“概念解释”。有人只输入“钱学森”,可能找人物,也可能找某篇文章作者。两人争到晚上,最后加上“无法判断”,不再强迫每条数据符合漂亮分类。 半地下室的墙不够贴,五金店老板借来两块货架背板。查询分布图挂上去以后,进门的人都得侧着走。老板看见“错别字与拼音”占了一栏,试着输入自己公司被写错的名字,系统竟然真找到了库存介绍。他第二天便把两个经常写错的货号整理给周成,要求客户系统也加上别名。 明确题名。 作者加主题。 只记得一句话。 概念解释。 机构或人名。 错别字与拼音。 无法判断。 结果很快推翻了他们的直觉。 演示时最常用的专业主题词,只占不到两成。更多人输入残缺题名、作者姓氏、年份,或者一句记得并不准确的话。拼音查询很少,却不是零。最长的一条查询有四十六个字,像用户把整段问题都塞进了输入框。 马飞曾以为,搜索的核心是把网页按重要性排好。 真实日志却告诉他,第一步常常是猜出用户到底在找什么。 苏雨桐把“复合材料疲劳”与xc-0002放到同一组,建立连续词、题名字段和作者字段的对照测试。她没有为每种查询单独写规则,而是先规定评价方法。 每条查询由两个人独立判断前十条结果。 完全相关记两分。 部分相关记一分。 无关记零分。 意见不一致时,保留分歧,不取平均掩盖。 “这会很慢。”马飞说。 “所以先抽五百条。” “五百条代表不了一万次。” “比你我各挑五十条更接近。” 两人从日志中按类别抽样。兼职学生不能看原排序,只看查询与来源内容。第一轮结果出来时,星辰搜索前十条平均得分只有十一点七分。 五百条花了九个人十二天。每晚六点,评分者到半地下室领一叠盲表和两个馒头;九点以前必须交回,不能带到宿舍,以免来源页和查询文本散出去。马飞负责烧水,苏雨桐处理争议,周成把结果录进不联网的机器。 第六天,一个兼职学生连续给出全是两分的表。苏雨桐抽查发现他只看标题,没有打开来源。学生以为分高能帮公司早点发布,马飞没有骂他,只把那天四十份全部作废,补付其他人重评费用。墙上的进度退回两天。 月底结算时,那名学生主动把当晚补贴退回来。苏雨桐没有收,只让他在评分规范上重签一次,第二轮继续参与。他后来提交的分歧记录反而是九个人里最细的。 最差的是人名和残缺题名。 最好的是明确专业术语。 还有一个意外:重复页面比他们估计的多。同一篇论文摘要被不同镜像目录收录,前十条里有时会出现四份几乎相同的内容。 “用户不是得到四个答案。”苏雨桐说,“是同一个答案挡住了另外三个。” 他们用内容指纹把镜像折叠以后,平均得分只涨了零点二,页面却腾出近两个结果位。那名寻找微小卫星资料的助教再次测试,原本被四份镜像挤到第十一的外文目录第一次进了前十。他没有发长邮件,只在工单里写:“现在看得见了。” 去重从优化项升为发布前要求。 马飞把一万次查询的分布贴到问题木板旁边。xc编号仍记录每一个具体缺陷,基线则告诉他们应该先修哪一类。 有报告,不等于普遍。 没有报告,也不等于没有问题。 季度末,星辰搜索0.4版没有新增醒目的功能。 陈维明原本准备在客户通讯里写“万次查询验证”,看完十一点七分后,把这句话改成“高校测试继续”。他不满意,却仍按合同提供第二台测试机的夜间机时。马飞把这项支持记进资源账,没有用一次分数下滑抹掉客户此前的承诺。 它只是让明确题名的正确结果更靠前,把重复页面合并显示,并开始识别少量拼音姓名。 前十条平均得分从十一点七升到十三点一。 涨幅不大。 却能复测。 马飞在版本记录里写下: “从今天起,不再以最好的一次查询证明我们是谁。” 苏雨桐看完,把“证明我们是谁”改成“证明版本质量”,说软件没有“谁”,只有能复跑的记录。马飞接受修改,在旁边签了日期。 五百条盲评表装进四只档案盒。最后一只合盖时,外面已经天亮,五金店卷帘门哗啦一声拉起。老板把刚出锅的豆腐脑端下来,问十三点一到底算好还是坏。 “比十一点七好。”周成说。 “那就先吃饭。”老板把勺子一人一把分过去,“吃完再想剩下的六点九。” 第24章 机房雪崩 四月第二个星期三,北方工业大学图书馆把星辰搜索的测试地址印进了新生检索培训材料。 上午,高老师还打电话确认过容量。马飞看着此前最高二十三并发的曲线,答复三十人可以分批使用。双方说好两点开始,星辰这边由周成守服务器,马飞带着饭盒去银行交电话费,苏雨桐则到学校观察学生实际操作。 没人注意到培训材料上写的是“统一打开页面后听老师讲解”。一百多名学生几乎在同一分钟坐到了机器前。 北方工业大学图书馆把星辰搜索的测试地址印在了新生检索培训材料上。 下午两点十分,第一批学生走进机房。 两点十二分,并发查询达到十七。 两点十四分,达到四十一。 两点十五分,半地下室里的硬盘开始发出连续的寻道声。查询队列越积越长,内存被索引块和连接缓冲反复争抢。系统没有立即崩溃,它只是越来越慢。 楼上五金店老板第一个听见异常。他下来时,硬盘声已经密得像雨点,周成正把手贴在机箱侧面试温度。老板不懂队列,只问了一句:“要不要先把库存程序关了?” 库存程序没有占资源。马飞从银行赶回来,连外套都没脱,先让老板停止从这条线路接传真,避免现场再多一个变量。 三秒。 十二秒。 四十七秒。 然后所有连接一起超时。 周成先去重启机器。 马飞拦住他:“先留现场。” “用户都进不来。” “现在重启,只会得到一台不知道为什么死过的机器。” 周成看着电话旁不断增加的未接来电,手背都是汗:“学校那边一屋子人在等。” “给高老师回电,报真实恢复时间。你存队列,我存内存,三分钟后无论完成多少都重启。” 他们第一次给事故保存设了上限。两分四十秒后关键数据落盘,马飞亲手拔线。周成按重启键时,五金店老板在楼梯口掐着表,整层楼都听得见机器风扇重新升速。 他们把当前进程、队列长度、内存占用和最后一百条请求写进文件。等保存完成,马飞才拔掉网络线,重启服务。 两点二十六分,系统恢复。 两点二十八分,再次超时。 苏雨桐从学校打来电话。她在机房里看见的不是报错,而是一排学生不断敲回车。 她身后全是键盘声。授课老师站在讲台上反复让学生不要再按,后排的人却看不见前面的情况,只能以为自己的机器没收到。一个男生已经提交了十一次相同查询,还在对同桌说网络大概断了。 “页面没有告诉他们请求已经收到。”她说,“每个人都在制造第二次、第三次查询。” 星辰把沉默误当成了等待。 用户把沉默理解成没有发生。 第二次恢复前,马飞临时加了一张纯文字页面: “当前查询人数较多。您的请求已进入队列,请勿重复提交。” 同时把每个来源的未完成请求限制为一个。 系统仍慢,却没有第三次雪崩。 苏雨桐在学校把学生分成两组。等待的那组先听图书管理员讲馆藏目录,另一组继续查询,二十分钟后交换。最初满屋抱怨的人渐渐安静下来;页面上的队列提示开始显示“前面还有七个请求”,学生至少知道系统没有漏掉自己。 培训结束时,高老师把印错使用方式的材料收回一部分,没有把全部责任推给星辰。那名连续提交十一次的学生则留下查询词,问能否查出十一份请求究竟浪费了多少时间。 晚上,团队复盘。 半地下室没有足够椅子,四个人围着两只倒扣的纸箱坐。高老师通过免提电话参加,五金店老板也留下来,因为下午停传真影响了他的进货。他要求星辰把这段损失记清楚,哪怕最后只有两通电话。 周成坚持认为应该先买更快的机器。 苏雨桐把白天的日志分成三段。 前十七个并发时,cpu仍有余量,磁盘等待急剧上升。 四十一个并发时,相同索引块被不同进程重复读取。 超时后,重复提交把队列放大到原来的二点六倍。 “三种问题。”她说,“容量不够,缓存错误,界面没有反馈。只换机器,后两种会一起搬过去。” 马飞在白板上写下三个目标。 第一,热门索引块共享只读缓存。 第二,队列超过阈值时拒绝新请求,而不是无限积压。 第三,结果页必须显示排队、超时和失败,不让用户靠猜。 “拒绝请求?”周成皱眉,“那不是主动赶用户?” “比让他们等一分钟再失败诚实。” 高老师在电话里同意:“下次课程按两批,但你们也别把三十二写成三十人的保证。一个人会点不止一次。” 马飞把上午那句“三十人可以”记进故障原因。他给的是人数,系统真正承受的是同时未完成请求,两者之间没有固定等号。 接下来四天,星辰停止扩大测试范围。 周成改查询进程,苏雨桐重做热点词回放,马飞负责把失败状态写进页面。每次修改都用那天下午的请求顺序重放。 在原机器上,系统最终稳定支撑三十二个并发查询。 第三十三个会得到明确的繁忙提示。 这是一个不体面的上限。 但它是真的。 周成连续重放十次下午的请求顺序,三十二个全部返回,第三十三个收到繁忙提示。第十次结束时已经凌晨三点,他盯着屏幕等了整整五分钟,确认队列没有偷偷留下未完成请求,才在容量曲线上签字。 苏雨桐又从真实学生里找三个人盲测提示页。他们能说清楚请求被拒绝,而不是误以为页面坏了。那个提交十一次的学生算出自己放大了九次无效请求,在反馈表上写:“原来我也推了一把。” 马飞给三所高校发出故障说明,列出中断时间、原因、临时修复和仍未解决的容量问题。没有把责任推给学生重复点击,也没有把“访问量激增”写成值得庆祝的新闻。 图书馆回信说,下次培训会分两批进行。 半地下室的墙上则多了一张容量曲线。 曲线尽头,马飞画了一条红线。 三十二。 五金店老板在红线旁贴了两张未接传真清单,损失核为零元,但备注写着“曾影响正常使用”。高老师的回信钉在另一边,确认下一次培训分两批,并提前提供人数和课程流程。 天亮时,马飞把银行交费回执从外套口袋里掏出来,发现已经被汗浸软。他去街口买了四份豆浆,回来时周成趴在纸箱上睡着,手还压着第十次回放记录。 马飞没有叫他,只把那张写着“三十二”的曲线往墙上钉牢了一些。 第25章 第二台服务器 第二台服务器的报价是两万八千元。 严格说,它只是一台装在塔式机箱里的pentium机器,两块硬盘,三十二兆内存,带一张更稳定的网卡。卖家把它叫服务器,是因为这个词能让价格听起来合理。 星辰账上只有一万九千六百元。 报价单在半地下室墙上贴了三天。五金店老板每天路过都要看一眼,第三天终于忍不住问,一台没有显示器的铁箱为什么比他半仓库货还贵。周成把并发曲线解释到一半,老板只听懂“三十三个人就会把门堵住”。 “那就开第二扇门。” “第二扇门就是两万八。”周成说。 老板摇头上楼,半小时后拿下来一张旧设备市场的广告,上面有同配置二手机,价格少了近一万。广告边角还沾着他吃烧饼的油。 其中六千元要交三个月房租和电话费,四千元是兼职工资与项目支出,剩下的钱还要保证数据库客户的交付。 买机器,现金会断。 不买,三十二个并发的红线就压在测试入口上。 陈维明来验收通信产品资料库时,看见了报价单。 当天验收并不顺利。他随机抽了二十个型号,十九个能找到完整来源,最后一个厂商页面刚刚更换,缓存参数与现页不一致。星辰没有用“更新延迟”敷衍,把该条标成待复核,直到陈维明的产品经理传真确认旧参数仍对应在售批次,才签验收。 陈维明看着他们为一条记录多花了四十分钟,问:“你们账上真撑得住这么做?” 马飞把报价单翻过来:“所以才需要下一期,不是需要您提前施舍一笔验收款。” “我可以先付下一期。”他说。 下一期项目原本还没有签。 马飞问:“换什么条件?” “把搜索也放进我的产品库。客户查型号时,顺便搜全网资料。” “全网做不到。” “你们宣传不是搜索吗?” “我们现在稳定收录的是公开技术资料和几所高校页面。通信产品资料可以做,但范围、更新频率和错误责任要单独写。” 陈维明笑了一声:“你这个人,缺钱的时候反而更爱加限制。” “缺钱的时候最容易答应还不起的东西。” 双方把下一期项目拆成三次交付。 第一笔一万二千元预付款,用于整理两千种通信产品的公开参数和厂商资料。 第二笔在查询接口通过验收后支付。 第三笔与三个月更新服务绑定。 星辰不承诺“全网”,不保证厂商资料绝对正确,只保证来源可追溯、错误可提交、更新有记录。 陈维明签字前,又加了一条: 如果星辰在六月底前完成高校测试里程碑,他拥有三十天融资优先谈判权。 不是优先购买权。 不是自动入股。 只是同等条件下,星辰必须先和他谈三十天。 马飞把条款拿给苏雨桐看。 “技术条件呢?”她问。 “没有。” “观察源代码呢?” “没有。” “融资期间能不能要求停止和其他客户合作?” 马飞翻回合同。 这件事没有写。 陈维明想要的三十天,如果变成排他期,可能让星辰错过其他现金来源。最后条款被改成:融资事项优先谈判,正常经营、客户签约与技术路线不受限制。 苏雨桐请法律系同学把“优先谈判”逐字看了一遍。对方在页边写了三种可能歧义,最危险的是陈维明可借谈判拖住其他融资。马飞据此补上非排他和正常经营条款,陈维明虽不高兴,还是签了。 “你们连一万块都缺,防我倒像防二十万。” “真到二十万再防,就晚了。”苏雨桐说。 合同签下,第一笔预付款到账。 马飞没有立刻买报价最高的机器。 他带周成去旧设备市场,连续两天测试硬盘、内存和电源,最终以一万六千八百元买下一台相近配置的二手机,又花一千二更换其中一块硬盘。 卖家说机器从证券营业部淘汰,通宵运行没问题。马飞带去自制测试盘,让它连续写满硬盘又校验;第一天下午,电源风扇停转一次,机箱温度迅速升高。卖家想降五百了事,马飞不要折价,坚持换电源并重新跑满八小时。 第二天收摊时,校验全部通过。卖家在保修单上写下序列号,周成才和马飞一起把四十多斤的机箱抬上三轮车。回半地下室经过一段石子路,两个人一左一右扶着箱子,谁都不敢松手擦汗。 两台机器的分工被写得很清楚。 旧486继续抓取、清洗和构建索引。 新机器只提供查询服务。 索引通过磁带和硬盘定时复制,不允许在线构建任务与用户查询争抢同一块磁盘。 第一次切换时,复制用了三个半小时。 磁带走到两小时处卡住,所有人以为新机器第一夜就要白等。周成拆开磁带机,夹出一小段卷边;马飞没有重跑全部索引,按清单从最后一个完整分片继续。凌晨四点,查询机第一次独立启动,旧486同时构建下一批索引,硬盘声音互不牵扯。 第二次只用了两小时十七分。 并发测试从三十二提高到八十。 第八十一个请求仍会被拒绝。 周成问:“什么时候能不画红线?” 马飞把新的容量曲线贴在旧曲线旁边。 “永远不能。” 周成在八十一的位置画了一个叉,把繁忙提示截图钉在旁边。五金店老板下楼看测试,只关心三十三个人现在能不能一起进门。周成告诉他八十个也行,老板当场把那张旧设备广告收回去,留着以后找第三扇门。 新机器上架后,半地下室更热了。三个人把折叠床搬到走廊,坐在门槛上吃凉面。墙上的现金表还剩六十一天,旁边多了一张合同日历:融资优先谈判,六月三十日起三十天。 马飞用红笔把起止日期抄清,没有再往下面写判断。 第26章 三十天窗口 六月三十日,陈维明带着一名会计和一只黑色公文包来到半地下室。 北京刚下过一场闷雨,墙角白灰又返潮。陈维明的会计进门先收起裤脚,防止蹭到水印;苏雨桐把第二台风扇让给客人,自己坐在服务器出风口旁。五金店老板送来一壶凉茶,按马飞要求在接待费用表上写了三角钱。 高校测试里程碑已经完成。 八十并发查询稳定运行。 三所高校累计查询超过一万次。 有效公开页面一万七千余份。 通信产品资料库第一阶段按时交付。 合同里的三十天融资优先谈判权从当天生效。 陈维明没有绕弯子。 “二十万元,百分之三十五。” 半地下室安静了几秒。 对一家账上只剩一万多元、每个月都要算电话费的公司来说,二十万元足以让所有困难暂时退后。 可以买两台新机器。 可以租真正的办公室。 可以让兼职学生转为全职。 也可以让星辰在还没有正式发布前,就把超过三分之一的公司交出去。 马飞没有立刻拒绝:“还有条件?” 会计把二十万元分成两张表:设备、人工、房租和预备金。按现有开支,星辰能撑十八个月。周成若转全职,每月也能拿到一份不高但稳定的工资。数字越具体,诱惑越不像诱惑,更像一间终于不会漏水的办公室。 “通信和电子产品资料,三年内只跟我的公司合作。重大开支超过五万元,要双方同意。下一轮融资,我有优先跟投权。” 苏雨桐坐在桌子另一端,翻到技术附件。 “‘核心搜索技术应优先支持股东业务’,是什么意思?” 陈维明看向她:“资源有限,总要先服务给公司带来钱的人。” “那高校测试出现严重问题时,能不能暂停商业接口?” “商业合同优先。” “谁决定?” “董事会。” 星辰现在没有董事会。 陈维明从公文包里拿出拟定章程,董事三席,他提名一席,马飞一席,第三席“由主要股东协商”。表面各不占多数,第三席却没有产生办法。顾律师尚未介入,苏雨桐先在这一条旁画了红圈。 “协商不成时呢?” “再谈。”陈维明说。 “服务器故障不会等董事谈出第三个人。” 陈维明的方案却已经提前安排了一个。 马飞把文件合上:“二十万可以买时间,买不了搜索结果的排序权。” “我没说要排序权。” “‘优先支持’最后会落到服务器、更新频率和工程师时间上。技术资源被谁优先占用,就是另一种排序。” 陈维明并不生气。 “那你开条件。” 马飞没有报价。 他先交出一份风险表。 风险表最后还有马飞自己的工资:零。会计问这种状态如何持续,马飞说公司暂时承担食宿最低费用。苏雨桐纠正,半地下室房租同时用于办公和住宿,应分摊,不能把创始人生活成本藏进公司设备项。 会计拿过账本重新算了一遍,说这是他见过第一家主动把自己可报销金额往下改的公司。 星辰没有正式产品收入,数据库项目占用了近一半开发时间;高校测试用户随时可能停止使用;索引规模增长后,新机器仍可能不足;公司法律载体还是信息技术开发中心,不适合直接出让标准有限公司股权。 “你这是劝我别投?”陈维明问。 “让你知道你买的不是一张必涨的票。” 会计第一次抬起头。 他问了三个问题:客户应收款有多少,设备归谁所有,苏雨桐的技术权益是否写入合同。 第三个问题没有完整答案。 双方此前约定了7%的目标技术权益,却因为公司尚未改制,只写在合作协议里,不能像有限公司股权那样登记。 苏雨桐说:“这个问题不解决,我不支持融资。” 陈维明皱眉:“你反对拿钱?” “我反对先稀释一份还没被正式确认的权益。” 谈判没有在第一天结束。 晚上九点,陈维明和会计离开。马飞把剩下的凉茶倒进搪瓷杯,发现杯底已经有一层茶垢。周成来问今天是不是拿到二十万,苏雨桐把红圈章程递给他,让他先看“核心搜索技术优先支持股东业务”。 周成读完,没有再问什么时候换办公室,只问第二台服务器是否仍归公司。没人能立即回答,因为改制前资产清单还没做完整。 第二天,陈维明把比例降到百分之二十八,保留三年排他。 第三天,马飞提出只接受六万元借款,有限公司改制时可按约定上限转为不超过12%的股权,不设商业排他,不干预自然结果排序。 差距仍然很大。 七月第一个星期过去,星辰没有拿到钱。 半地下室每天仍照常拨号、更新和回客户邮件。陈维明没有借谈判压住通信资料库尾款,星辰也没有拖延他的更新服务。双方白天按旧合同合作,晚上再对新条款争执,关系因此更难也更真实。 第八天,五金店空调坏了,老板下来借风扇。屋里只剩服务器热风,四个人一边擦汗一边核排他条款。陈维明终于同意把“通信和电子资料三年独家”缩成既有客户资料保密,星辰可服务其他客户,但不得复制他的专有数据。 周成问马飞:“如果三十天谈崩了呢?” “继续做客户项目。” “机器呢?” “先不买。” “人呢?” “先不扩。” 每一个“先不”,都意味着增长速度下降。 马飞把这笔代价写进谈判记录。 未来记忆告诉他,互联网公司早期股份会值多少钱。 可那不是拒绝交易的充分理由。 真正的理由是:他们还没有证明自己能把什么权利交出去,又不让搜索变成出资人的私人入口。 三十天窗口还剩十九天。 现金也只够四十二天。 两个倒计时第一次并排出现在墙上。 苏雨桐把“融资十九天”写在左边,“现金四十二天”写在右边,下面另加一行:周成兼职合同三十六天。人的安排不能在两张资金表之间消失。 晚上收工时,马飞锁好公文包复印件,展开折叠床。水管滴了一滴,正落在左边倒计时的“九”上。他换掉接水盆,又用蓝笔把被水晕开的数字重新描清。 第27章 控制权的价格 谈判第十六天,陈维明把二十万元的方案撤了。 他没有来半地下室,只让司机送来新条款。文件装在此前那只通信设备纸箱里,封口处压着一张便条:股份谈不拢,谈还钱。 当天早上,星辰刚收到电话局催费通知。马飞把欠费单和六万元借款条款并排放在桌上,数字一大一小,小的那张却只能拖三天。 “你们不是嫌股份多吗?”他说,“那就不谈投资。六万元借款,年息百分之十二。到期还不上,我有权取得搜索系统的永久商业授权。” 马飞看完条款:“永久、不可撤销、可转授权?” “抵押总要有价值。” “这是用六万元买另一种控制权。” “那你拿什么保证还钱?” 这个问题合理。 周成在旁边装作看代码,键盘半天没响。他的兼职补贴下月到期,若借款谈崩,马飞只能请他重新按项目结算。六万元不是创始人之间的抽象权力,它也决定屋里有没有第三个人继续坐在那张窄桌前。 星辰没有房产,没有稳定利润,最有价值的就是代码、索引和仍在形成的数据规则。拒绝用它们作担保,不等于债权人应当无条件相信未来。 马飞请来一位熟悉公司法的律师。 律师姓顾,在一间堆满卷宗的小办公室里听完双方方案,先泼了一盆冷水。 顾律师的办公室在四楼,没有电梯。苏雨桐抱着七页合作协议爬到门口,文件袋的提手已经勒红了手指。顾律师先让他们去楼下复印,自己按页计时收费;马飞问能否把背景介绍压到十五分钟,省下的钱用来做资产清单。 “你们缺钱,却舍得请律师?”顾律师问。 “现在省一小时,改制时可能多吵一个月。”苏雨桐说。 顾律师把计时钟按下,第一次露出一点笑意。 “你们现在是开发中心,不是有限公司。所谓可转多少股,今天无法直接登记。可以写借款和将来增资意向,但公司改制、资产评估、其他权益人的确认,一个都不能省。” 苏雨桐问:“我的7%怎么办?” “先在合作协议里明确计算基准、成熟条件和改制义务。否则新投资人进来时,所有人都会说自己理解的不一样。” 顾律师在白纸上画了三层。 第一层,六万元股东借款,利息按银行同期合理水平,不以核心技术作永久授权担保。 第二层,星辰完成有限公司改制后,陈维明可以选择按约定估值增资,但比例上限12%。 第三层,陈维明拥有财务知情和下一轮同等条件优先认购权,没有自然排序、数据删除、技术路线和日常经营否决权。 陈维明看到第三层时笑了:“我出钱,连五万元开支都不能问?” “能问。”马飞说,“不能一个人否决。” “你把我当银行。” “银行也不会要求决定论文排第几。” 陈维明把笔在桌上转了两圈:“我可以不要技术路线否决,但财务摘要必须含关联交易。你们不能把利润转到另一个叫星辰航天的壳里,再告诉我搜索没钱还债。” 这条要求击中了马飞自己的长期目标。他没有回避,把关联交易、跨业务预算和资产转移单列披露。苏雨桐又要求任何航天项目都不得占用搜索用户原始查询。 陈维明逐条读完,第一次在技术边界旁主动签了同意。 谈判再次停住。 当天晚上,半地下室停电。 先是电风扇慢下来,随后两台机器一起黑屏。周成扑到新服务器前时已经来不及,正在写入的索引分片只剩半个文件。五金店老板举着蜡烛下来,说整条街跳闸,不是插线板问题。 机房温度很快降下来,屋里却更闷。三个人借烛光核备份清单,苏雨桐每报一个分片,马飞便在纸上打勾。最后缺的正是当天通信资料更新,需要重新整理一百二十七条。 两台机器同时熄灭,未写完的索引段损坏。备份恢复用了两个小时,最新一批通信产品数据不得不重新整理。 陈维明第二天来看进度,正好看见周成蹲在地上检查插线板。 “六万元里,至少先买稳压电源。”他说。 这一次,语气里没有讽刺。 他终于明白马飞为什么不愿把钱叫作转机。 陈维明没等合同签字,先让司机送来一台自家公司闲置的稳压电源,租借七天,写明所有权仍归他。马飞收下时让周成登记入库,没有把临时帮助当成首款到账。七天足够他们完成采购,也不会把好意变成说不清的抵押。 钱只能购买具体能力。 不能替公司回答所有问题。 第二十八天,双方签字。 签字地点仍在顾律师办公室。陈维明带了钢笔,马飞用的是赵工还给他的半块橡皮旁那支旧笔。苏雨桐逐页核骑缝章,发现一份附件把12%写成了“12股”,所有人又等秘书重打。 没人以“意思差不多”为由继续。新附件送来时已过午饭,顾律师分了四包方便面,律师费照常计时,陈维明骂了一句贵,还是等到每份数字一致才落笔。 六万元借款分两笔到账。 第一笔四万元立即支付。 第二笔在星辰提交公司改制材料后支付。 利息写清。 技术不作永久授权担保。 未来增资比例最高12%,估值和全部权益以改制时审计为准。 陈维明获得每月财务摘要和融资优先认购权,不进入技术评审,不拥有商业排他。 苏雨桐的7%目标技术权益被列入融资前既有义务,不能在改制时假装不存在。 没有人完全满意。 陈维明觉得控制太少。 马飞觉得债务太早。 苏雨桐认为自己的权益仍未正式落地。 顾律师却说:“能把不满意写清楚,通常比大家在饭桌上都满意安全。” 第一笔钱到账后,马飞只批准了三项支出。 稳压电源。 备份硬盘。 两个月必要人工费用。 没有装修,没有庆祝,也没有大规模招人。 墙上的现金倒计时从二十九天延长到九十六天。 周成拿到账期确认后没有欢呼,先去归还那台借来的稳压电源。新设备下午送到,序列号、保修期和付款凭证全录进资产表。五金店老板帮着抬进门,问六万元是不是至少能换一顿肉。 马飞买了四只肉包子,每人一只,发票记在加班餐。陈维明没在,老板想多拿一只,被苏雨桐用筷子敲了手。 墙上的两张倒计时重新抄过。融资窗口在第二十八天划止,现金从二十九改成九十六。红笔墨水没干,马飞把风扇转向另一边,免得数字吹花。 第28章 没有广告的校园 七月末,陈维明带来一份报纸广告报价。 最小的豆腐块版面也要三千八百元,差不多是半地下室一个季度房租。广告公司给出的文案是“国内领先中文搜索,知识尽在掌握”。周成读得很兴奋,苏雨桐则拿红笔圈住“领先”,问拿什么样本、和谁比较。 陈维明把报价单收回去:“那你们总得让人知道地址。” 1997年的大多数人还不知道搜索引擎是什么。对着路人说“更精准”,和宣传一台陌生仪器更准确差不多。 真正的问题是:谁会在什么时候需要它。 北方工业大学图书馆的高老师给出第一个答案。 新生检索培训。 教师查文献。 研究生写开题报告。 他同意星辰在图书馆放一百张使用说明,但提出两个条件。 第一,不得把学校名称写进商业宣传,除非另行许可。 第二,培训现场必须有人记录失败查询,不能只演示准备好的结果。 马飞答应。 使用说明第一版印了两百张,油墨味很重。马飞为了省钱选了单色薄纸,叠起来会透字。高老师拿到后说背面例子看不清,退回重印。印刷店只肯免费补一百张,剩下一百张损失由星辰承担。 周成觉得学校太挑,苏雨桐把卡片放在日光灯下,让他自己读第三行。前后字叠在一起,连测试地址都像多了一串字符。第二版加厚纸以后,每张贵了两分钱,至少不会让推广材料先制造一次失败查询。 苏雨桐把说明卡上的第一句话从“国内领先的中文搜索系统”改成: “当你不知道资料的准确题名时,可以试试。” 背面没有公司愿景,只有四个例子。 输入主题和年份。 输入作者姓氏与关键词。 输入记得的一句话。 找不到时,提交原始查询,不必替系统修改问题。 第一次培训来了二十七个人。 有人搜索“陶瓷基复合材料热冲击”。 有人搜索“鲁迅在日本学医时的同学”。 还有人输入宿舍停水通知里的整句话,想验证星辰是不是什么都能找。 最后一条当然找不到。 现场笑成一片。 负责演示的周成脸涨得通红,想换回准备好的查询。 他的手已经摸到写着“液体火箭燃烧振荡”的演示纸,马飞从后排轻轻按住,没有替他救场。周成只好当着二十七个人打开覆盖说明,展示系统目前没有学生处公告来源。 高老师却问那名学生:“你为什么认为它应该找到?” “不是说能搜公开页面吗?” “宿舍通知公开贴在楼下,不等于已经进入电脑。” 这个解释比任何宣传都更重要。 星辰能搜索的,只是被允许获取、已经处理并仍保有来源的信息。它不是世界本身。 培训结束后,二十七个人留下十九条失败查询。 那个搜索停水通知的学生最后一个交表。他在“是否愿意再用”一栏勾了愿意,理由是至少系统承认没有。周成看到后,把演示纸折起来塞回口袋,回半地下室便给空结果页增加已覆盖来源入口。 第二周同一学生再搜宿舍通知,仍然没有结果,却点进了学校主页目录。他发邮件建议以后接入校内公开公告。星辰没有立刻抓,只把建议转给高老师确认权限。 一周内,使用地址被抄到另外两个院系的bbs上。没有人知道是谁先贴的。日志里只看见晚间查询缓慢增加。 第二所学校提出测试申请时,马飞没有立即开放。 他先寄去数据访问说明、故障联系表和容量上限,请对方选择不与现有高峰重叠的测试时段。 第三所学校希望把自己的馆藏目录并入星辰。 苏雨桐要求先确认目录版权、更新责任和错误反馈渠道。 扩散因此很慢。 每新增一所学校,周成就多一张值班表。第六所学校第一次测试与已有晚高峰重叠,马飞要求改到周六上午,对方觉得星辰架子大,差点取消。高老师主动把四月故障说明传真过去,解释错峰不是营销配额,而是服务器八十并发的红线。 对方最终接受周六测试,还把原计划的六十人拆成两场。两场都没有宕机,返回延迟最高三点七秒。负责老师在回执上写:“限制提前说清楚,可以配合。” 到九月,参与测试的学校从三所增加到七所。 没有百万用户。 没有“席卷校园”。 每天独立查询的人数仍不到两千,其中许多人只来一次。 但重复使用者在增加。 有位历史系研究生连续六周每周使用,查询从宽泛主题逐渐变成作者、年份和版本差异。另有一名教师把失败记录整理成表,每月寄一次传真。 历史系研究生姓许。第七周没有出现,苏雨桐本想把他从重复用户样本中结项,第八周却收到一只牛皮纸信封。里面是他找到的十二条版本目录,以及一张手写说明:上周去外地查档案,没有网络。 他没有把成果归功星辰,只标出哪几条来源有帮助、哪几条年份错误。苏雨桐把错误拆成工单,马飞则征得同意后,把这份使用过程匿名加入培训材料。 星辰第一次看见,所谓用户增长不是一条向上的总数曲线。 是不同的人在不同任务里,决定要不要再回来。 陈维明看月报时问:“为什么不送点东西?查十次送电话卡,肯定涨得快。” “会涨查询次数。”马飞说。 “这不就是增长?” “不知道他们是不是为了找资料。” 陈维明让人算了电话卡方案,十元一张,最少两百张。马飞没有直接否决,只提出做一周对照:不送实物,一半入口增加更清楚的使用示例,另一半维持原页。结果前者的重复使用率略高,查询总数却没有暴涨。 “两千块省了。”陈维明说。 “也可能是学校用户不喜欢电话卡。”苏雨桐把结论改成仅适用于本次测试,不许推广到所有用户。 九月最后一个星期,许同学又寄来一份传真。纸上只有三个新查询和一句话:上次年份错误已更正,今天继续查版本。 马飞把传真钉在月报旁。楼道里的说明卡只剩七张,他没有立刻加印,先让周成统计下个月七所学校各自需要多少。 第29章 第一个竞争者 “中国最大的中文网页索引。” 这句话印在《计算机世界》一块不大的广告上。 报纸是五金店老板早上买的,翻到这一页时正垫着油条。周成看见广告,把报纸从饭盒底下抽出来,右上角已经洇出一圈油。他拿袖口擦了两下,十万两个字反而更亮。 产品叫“华夏寻文”。 广告声称收录十万网页,支持自然语言提问,查询结果在一秒内返回。 周成把报纸拍在桌上:“十万?我们才两万多。” “先试。”苏雨桐说。 他们用星辰的一万次查询基线抽出五十条,分别在两个系统上运行。 测试不能自动批量做。华夏寻文只开放网页入口,三个人轮流输入,记录时间、重复和死链接。为避免熟悉星辰的人偏心,苏雨桐请高老师找两名没参与开发的学生判断结果,系统名称用纸条遮住。 第一轮,学生把华夏寻文的界面分打得更高。星辰的来源日期和编码警告挤在一起,看起来像一张维修单。周成不服,自己坐到陌生机器前试了一遍,也花了十几秒才找到下一页按钮。 华夏寻文确实快。 首页也更漂亮。 它把新闻、软件下载和热门站点放在醒目位置,第一次使用的人很容易理解。 专业资料的表现却不稳定。 有些查询比星辰好,尤其是热门新闻和网站名称。 有些结果充满重复页面,来源日期缺失。 还有几条指向已经不存在的地址。 “发对比稿。”周成说,“把结果列出来,他们的十万有多少重复,一看就知道。” 马飞没有同意。 “五十条是我们抽的。” “从真实基线抽的。” “基线也是按我们的用户分布形成。它能指导我们,不能自动证明我们代表所有人。” 苏雨桐补充:“而且他们在热门网站上确实更好。” 五十条里,华夏寻文赢了十七条,星辰赢了二十一条,另有十二条无法明确区分。若只挑技术资料,星辰领先;换成新闻和网站名称,结果便反过来。周成准备的稿子只列了前一种。 他沉默了一会儿,把稿纸揉成团。苏雨桐捡起来展平,夹进测试记录:“别扔。以后看见它,才知道我们差点发过什么。” 这句话让桌边安静下来。 竞争者不是来证明星辰正确的道具。 如果华夏寻文更擅长普通用户第一次寻找网站,星辰就必须承认自己的测试范围偏向高校和技术资料。 马飞给对方写了一封邮件,说明星辰正在做中文检索测试,希望交换公开评价口径。 三天后收到回复。 对方创始人顾海峰没有提供测试集,只邀请马飞参加一个互联网产品交流会。 会场在宾馆二层,来了十几家公司。 入场费二十元,包一顿盒饭。马飞骑车到宾馆,把车锁在后门,西装是向陈维明借的,袖子长了一截。顾海峰穿件普通夹克,正在门口亲自搬宣传册,看见他胸牌上的星辰,先递过来一份产品说明。 “你们的来源日期做得不错。”顾海峰说,“页面看着太累。” “你们的热门站点找得快。”马飞回答,“重复多。” 两人都没等上台便先把缺点说完,旁边负责签到的人听得直笑。 顾海峰三十多岁,做过软件销售。他没有否认十万网页里存在重复。 “用户不关心你怎么数。”他说,“用户只关心有没有东西。” “重复结果会占掉其他答案的位置。” “那是排序问题,不是规模宣传问题。” “宣传规模时就是统计问题。” 两人没有吵起来。 他们只是使用了不同的成功定义。 顾海峰认为先占领认知,再逐步修正产品,是互联网公司的生存方式。 马飞认为如果最初的认知靠无法复核的数字建立,后面每一次修正都会被增长压力反过来绑住。 交流会结束前,主持人让两家公司各说一个公开指标。 顾海峰报出收录页面数。 轮到马飞时,他没有报两万七千。 “星辰目前在五百条人工判定样本中,前十结果平均相关得分十三点八。测试规则和抽样方法可以提供给参与高校复核。” 台下没有掌声。 坐在最后一排的图书馆员却举手要了一份评分方法。散会后,他追到楼梯口,问五百条样本能否加入文史查询。马飞把高老师的联系地址写给他,没有把这次询问包装成合作。 顾海峰也走过来,说愿意互换二十条公开查询,不交换用户日志。两人约好只用无法识别个人的题目,各自保留独立评分。竞争没有因此消失,至少下一次不必只在自家试卷上比成绩。 这个数字远不如十万响亮。 第二天的行业简讯只用了两行介绍星辰。 华夏寻文则占了半版。 周成很沮丧。 马飞把简讯贴到墙上:“这就是选择的成本。” “别人会以为我们小很多。” “我们本来就小很多。” 当天下午,华夏寻文寄来二十条查询。第七条“北京哪里能看当天证券行情”,星辰几乎没有可用结果;第十三条技术资料查询则由星辰领先。周成照约定把两边结果全部记下,没有再只截获胜页面。 五金店老板看不懂评分,指着报纸问十万到底是真是假。马飞说用不同口径会有不同数字,老板哼了一声,把那张油报纸从墙上揭下来,换成两家公司交换查询的传真。 “这个至少有人签字。”他说。 第30章 结果页上的广告位 第一位想在星辰搜索上买位置的客户,是卖调制解调器的。 对方姓罗,在中关村有三个柜台。 罗老板是从五金店的传真号码找来的。他进半地下室先嫌楼梯窄,又把一只崭新的调制解调器摆在桌上,说可以用设备抵一部分费用。周成认出那是当时卖得很快的型号,忍不住多看了两眼。 “先不收机器。”马飞说,“您买什么、我们卖什么,写开再谈。” “用户搜‘调制解调器’,我的产品排第一。”他说,“一个月三千。” 三千元接近星辰当时半个月的必要人工支出。 那周周成的兼职补贴、服务器托管预付款和两所学校的邮寄费用恰好加起来两千八。墙上的现金表没有给原则留出一栏,钱一到账就能把三项全部覆盖。 马飞问:“产品资料与查询相关吗?” “当然相关。我卖的就是这个。” “排第一的依据呢?” “我付钱。” 逻辑简单得几乎无法误解。 星辰已经有通信产品资料库,也有越来越多用户查询硬件型号。广告不是从未来突然出现的概念。报纸、广播、黄页都在卖注意力。 问题在于,搜索结果看起来像答案。 如果出价最高的人可以成为第一条,用户很难知道那究竟是系统判断,还是交易结果。 陈维明支持试。 “不赚钱,所有规则都是用别人的项目收入养着。”他说,“而且你们可以审核客户。” 苏雨桐问:“审核什么?” “假货、夸大宣传。” “谁有能力判断每个型号的全部宣传?” 陈维明摊手:“那就要求商家负责。” “商家负责,不代表星辰没有展示责任。” 争论持续了一个下午。 五金店老板听了半天,拿自己的柜台做比方:“我把给钱最多的螺丝摆门口,没什么不对。可要是客人问哪种螺丝适合水管,我总不能还指最贵的。” 陈维明说报纸广告也挨着新闻,读者自己分得清。苏雨桐找来当天报纸,让在场五个人分别指出广告边界。两块软文有三个人认错,争论便从“用户应当知道”改成“页面怎样让人知道”。 最终,马飞在纸上画出一个结果页。 最上方是一块浅灰区域,标题写“商业信息”。 下面才是自然检索结果。 商业信息最多两条,必须与查询主题相关,显示出资方名称,不参与自然排序,也不能购买竞争者名称或个人姓名。 罗老板看到设计后不满意。 “灰框太像广告。” “它就是广告。” “用户一看就不点。” “那说明他们不想点。” “我花钱买的就是让他们点。” “你买的是展示,不是误认。” 罗老板要求把“商业信息”改成“推荐产品”。马飞拒绝,因为推荐听起来像星辰测试过产品。双方最后同意显示商家名称、型号、价格区间和页面更新时间,所有性能说法必须能在提交资料里找到来源。 周成现场搜了罗老板的型号,发现宣传单写“支持全部线路”,说明书却只列了规定线路条件。罗老板骂厂商中文写得滑头,自己把文案改成“具体速率受线路质量影响”。 价格从三千降到一千二。 期限从一个月缩到两周。 关键词只限“调制解调器”“拨号上网设备”和三个具体型号,不允许覆盖“上网故障”“网速太慢”等问题词。 星辰保留投诉后暂停展示的权利,剩余费用按天退还。 第一条商业信息上线那天,点击率只有自然第一条的五分之一。 一千二百元到账后,马飞先付服务器预款,剩下的钱没有给周成涨补贴,而是按原账期结清。他把广告收入单独记在第一栏,旁边写清展示天数和可退款余额。罗老板若中途撤下,未履行部分不能当利润花掉。 罗老板第二天就打电话要求换颜色。 “至少把灰框去掉。” 马飞拒绝。 “那我不续。” “可以。” 电话挂断后,周成看着统计表:“一千二也要没了。” “本来就只有两周。” “如果广告都这样,挣不到钱。” “那就说明现在的用户不需要这种广告,或者商家提供的信息不够有用。” 苏雨桐把商业信息也加入质量记录。 广告是否与查询相关。 来源是否清楚。 用户是否投诉。 页面是否让人误以为它是自然结果。 两周结束,罗老板果然没有续费,却把设备说明中那句线路限制保留了下来。他说灰框不好看,带来的电话也少,不过来问的人至少都知道型号,不会先花半小时解释什么是调制解调器。 商业信息下线后,周成做了截图,连同自然结果一起封存。第二天他调整题名权重,结果页第一条恰好换成另一家调制解调器厂商。有人在反馈邮件里问是不是新客户付了钱。 马飞把排序变更记录和商业客户清单一并回复:没有。邮件发出以后,他又让周成把两类日志的访问权限分开。灰框已经消失,怀疑却不会随它一起消失。 第31章 错误答案的代价 罗老板的广告没有续。 第二位客户却接受了灰框。 一家电脑配件商购买“28.8k调制解调器”和“高速拨号设备”两个关键词,提交的页面写着: “兼容国内全部电话线路。” 周成审核时,把“全部”改成了“多数”。客户同意,商业信息上线。 审核那天三个人还专门拨号测试了一次。半地下室线路质量一般,设备最高只连到二十六点四k。客户解释线路条件不同,周成便把实测值和条件写进审核记录,没有把一次成功当成全国结论。 五天后,页面内容变了。 星辰的广告链接没有变,客户却在自己的服务器上恢复了原句,还增加了“无需检测线路,安装即可达到最高速率”。 星辰没有重新抓取广告页面。 因为商业信息被当作一条人工审核后的固定记录,不在普通更新队列里。 第一个投诉来自天津一所高校的实验员。 实验员姓冯,邮件后附了邮购收据和三次连接日志。他不是只说“网速慢”,而是记录了线路噪声、掉线时间和向商家交涉的日期。那台设备花了他六百八十元,接近一个月工资。 马飞第一次读完便去拨回信里的值班电话。冯实验员正在设备间,电话旁有人催他测试。他没有要求星辰立刻赔钱,只问灰框里的“商业信息”究竟审核到什么程度。 他通过星辰看到广告,邮购了一台设备。所在宿舍区线路噪声很高,调制解调器不仅无法达到标称速率,还频繁掉线。商家拒绝退货,理由是设备能够连接。 邮件最后一句是: “你们把它放在结果最上面,我以为你们核实过。” 这句话让周成翻出第一位罗老板的审核表。表里有商家身份、型号、初始页面,却没有一栏写“未检测产品性能”。他们内部知道边界,用户看不到。 周成说:“灰框写了商业信息。” 苏雨桐问:“写了,就等于他理解我们核实了什么吗?” 没人回答。 星辰核实过商家名称、型号和最初页面。 没有检测产品。 没有评估每种电话线路。 更没有监控客户页面后来是否改变。 可用户看到的是星辰结果页上的一条推荐。 马飞立即暂停该客户全部展示,并保存新旧页面、上线时间和点击记录。他给投诉人回信,承认星辰未发现广告内容变化,说明他们不能替产品性能背书,但愿意承担展示审核失效的责任。 “怎么承担?”苏雨桐问。 这是比道歉更难的问题。 星辰不是卖家,没有拿到货款。若直接赔偿全部损失,以后任何产品纠纷都可能转向平台。若只退广告费,钱回到商家,用户什么也得不到。 顾律师建议先促成退货,再讨论星辰责任。 律师函按页收费,顾律师却先让他们给商家一次书面整改机会。马飞把通知传真两遍,第二遍附上原审核快照和新页面差异,确保对方不能说不知道改了哪句话。传真回执两张都钉进工单。 马飞给配件商发出通知:恢复审核版本、接受用户退货并承担邮费,否则终止合作并在商业信息记录中标注撤下原因。 对方老板打电话来骂了十分钟。 电话开着免提,五金店老板在楼上都听见了。他下来想替星辰骂回去,被苏雨桐拦在门口。马飞只重复合同条款、恢复期限和退费算法,不跟着争产品到底好不好。 “我付钱给你,不是让你替顾客找我麻烦。” “你付的是按审核内容展示的钱。” “页面是我的,我想怎么改怎么改。” “那星辰也可以决定不再链接。” “你们这种公司早晚饿死。” 合作终止。 星辰退回剩余十一天广告费,又从已经获得的展示收入中拿出二百元,补贴用户邮寄和检测成本。配件商最终在顾律师发出正式函件后接受退货。 冯实验员把设备寄回去后,商家先扣了所谓拆封费。顾律师又引用合同里没有此项的事实,对方才补足。退款到账那天,冯发来一张银行回单,说二百元检测补贴只用了八十六,剩下的可以退。 马飞让他保留往返交通和电话成本,仍多出四十七元。双方最后约定把四十七元转成下一次高校测试的邮寄费,单独开具收据,不悄悄并回广告收入。 二百元不多。 对现金紧张的星辰却不是象征。 它等于承认:清楚标识商业信息,并不能免除所有责任。 团队复盘时,周成把责任归为“客户擅自修改页面”。 马飞在后面加了一条: “星辰未建立变更监控。” 如果只写前一条,下一次他们仍会把审核当成一次性动作。 新规则要求商业页面保留审核快照,每日检查内容摘要;发生变化自动暂停,重新审核后才能恢复。广告旁边增加一句: “商业信息由出资方提供,星辰核验来源与展示规则,不对全部产品性能作保证。” 苏雨桐看完说:“这句话不能比广告本身小到看不见。” 字体最终与正文相同。 商业信息恢复审核前,周成拿新页面给五金店老板、两名学生和陈维明分别看,问他们认为星辰核实了什么。四人的答案仍不一致。苏雨桐把说明改了三次,直到所有人都能说出“核了来源和展示记录,没有替每条线路测性能”。 夜里,马飞把终止合同、退款凭证和冯实验员的回单锁进铁柜。广告收入账上少了二百元,工单xc-0049旁多出三个日期:投诉、暂停、用户收到退款。 周成关机前又检查一次客户页面摘要。页面仍在,宣传语也仍是“全部线路”,只是星辰的结果页不再链接它。 第32章 把广告和结果分开 商业信息暂停了一周。 暂停后的第一天,现金表上少了三笔原本预计的续费。周成把灰框代码注释掉,结果页上方空出一块突兀的白色。五金店老板搜自己的店名,看见页面变短,问是不是公司又赔钱了。 “业务先停,账还在走。”马飞说。 陈维明不同意。 “发现漏洞就修,为什么把整个业务停掉?” “因为我们还说不清什么能卖。”马飞说。 “能卖的就是展示。” “展示会不会影响自然结果?” “你不是已经分开了吗?” 页面上分开,不代表公司内部真的分开。 苏雨桐让周成用铅笔画一次数据从进门到出页面的全部路径。画到第三层,他才发现商业客户提交的页面会绕过普通站点预算,直接进入优先更新清单。排序程序没收钱,抓取人员却已经在按合同催促调整。 周成整理日志时发现,商业客户的页面更新更快,因为有人主动提交资料;自然结果中的普通站点则要等抓取队列轮到。即使自然排序算法没有收钱,商业客户仍因更新频率获得间接优势。 更隐蔽的问题来自销售。 负责通信资料项目的兼职人员给一家厂商承诺:“购买商业信息后,星辰会提高品牌资料完整度。” 这句话没有写“提高自然排名”。 却已经把付费与索引资源联系在一起。 兼职人员姓刘,听说承诺违规后很委屈:“客户问买了有什么好处,我总不能说只有灰框。” 马飞把销售话术拿出来,没有一页清楚写明自然收录与付款无关。承诺是小刘说的,模糊却是公司留下的。星辰补发说明并允许客户无责取消,小刘不被罚款,但必须参加下一轮合同边界培训。 两家客户因此退款,其中一家仍选择把公开页面按普通候选提交。三周后,它与未付费站点一起被抓取,不早也不晚。小刘亲手把处理记录寄给客户,第一次不用“提高完整度”来解释价值。 苏雨桐要求建立一条硬边界: 自然索引团队不能根据付款决定抓取频率、去重规则和排序参数。 商业信息使用独立资料、独立审核和独立日志。 客户可以提交公开页面进入普通抓取候选,但是否收录、何时更新,与未付费站点使用同一规则。 陈维明问:“小公司就这么几个人,怎么独立?” “不是先分办公室。”苏雨桐说,“先分权限和记录。” 两台服务器正好提供了物理上的起点。旧486上的抓取任务只读取公开候选表,看不到客户名单;查询机上的商业展示从单独软盘载入,内容快照有合同编号。周成试着把付费标记传进自然排序,程序因字段不存在直接报错。 “这次报错是好事。”他说。 苏雨桐让他把报错保留进测试,防止以后有人悄悄加回字段。 她画出两条数据流。 自然结果从公开来源进入抓取队列,经过来源规则、清洗、索引和排序。 商业信息从客户提交进入合同审核、内容快照和展示系统。 两条线只在结果页汇合。 自然排序程序甚至不读取客户是否付费。 马飞进一步定了四条不可出售的东西。 自然结果名次不可购买。 竞争者名称与个人姓名不可购买。 问题、投诉和故障词不可用于诱导式展示。 删除负面资料不可购买;合法纠错走统一流程。 可以出售的只有明确标识的相关展示位置,并设数量上限。 顾律师看完,在“不可出售”前面加上“现阶段”三个字。 “为什么?”周成问。 “因为制度不能假装未来没有新情况。”顾律师说,“但任何修改必须留下版本、理由和批准人。” 于是规则有了生效日期。 版本页打印了二十份,陈维明、每名兼职人员和七所高校联系人各拿一份。高老师回传真问“个人姓名不可购买”是否包含企业负责人,团队又开一次会,把个人指名查询和公司品牌查询的边界补清。规则生效前已经修到第三版。 1997年10月3日。 每次变化都要公开记录。 商业信息恢复后,页面上方最多一条,右侧没有闪动图片,标题前固定标注“商业信息”。审核快照每日比对,内容变化自动下线。 收入因此比原先估计少一半。 几个客户嫌位置不够醒目,转去华夏寻文。 小刘把三张解约单放到马飞桌上,眼圈有些红。她的项目提成少了一半。马飞没有用“坚持原则”安慰她,而是把通信资料库的更新服务交给她跟进,按真实交付计提成;同时把商业收入减少写进月报,所有人都能看到规则花了多少钱。 顾海峰在交流会上说,互联网产品不能被旧式编辑思维束缚。 马飞没有公开回应。 他只让团队把两家公司同一关键词的页面打印出来,贴在墙上。 华夏寻文把三个付费结果混在最前面,只在页面底部说明合作推广。 星辰的灰框很显眼,甚至有些难看。 周成问:“如果用户更喜欢他们呢?” “那是用户的选择。” “如果客户也更喜欢他们呢?” “也是。” 周成把两张结果页贴得很近。第二天,有学生在反馈里说星辰的商业信息太显眼,像在提醒自己不要点;另一个学生则说这样省得猜。两种意见都进了记录,没有谁替“用户”说最后一句话。 月底结账,商业收入比预算少一半,小刘的更新项目补回其中三成。马飞把自然排序程序的字段清单打印签字,锁进铁柜;商业展示的软盘则放在另一只盒子里,由小刘和周成分别保管钥匙。 晚上关门时,灰框仍在页面最上方,标题前“商业信息”四个字和正文一样大。自然结果第一条是一篇未付费的高校网络接入说明。 第33章 搬进机房 半地下室不适合承诺在线服务。 九月的一场大雨把这个判断变成了水。 秋天一场大雨后,墙角返潮,最下面一箱打印纸吸了水。电压在晚上连续波动,稳压电源报警了七次。电话线虽然没有断,却发出细碎杂音。 五金店老板先发现纸箱发软,叫周成一起搬。两人抬到一半,箱底裂开,几百张旧测试表散在湿地上。苏雨桐赶来后按编号铺开晾,马飞用电风扇吹了整夜,仍有三十多张粘在一起。 没有数据丢失,纸面原件却留下水印。铁柜上层一直用来放合同,测试档案被挤在下面;所谓安全备份只防水管滴漏,没防整面墙返潮。 两台机器仍在运行。 这反而更危险。 只要它们没有彻底坏掉,人就容易把侥幸当成稳定。 马飞找到一家提供服务器托管的网络服务公司。机房有双路电源、空调、固定线路和夜间值班,最便宜的机柜位置每月一千八百元。 这个数字超过半地下室房租的五倍。 机房销售带他们看了一圈。空调吹得人发冷,地板下是成束线缆,值班桌上有两只泡面碗。周成最喜欢双路电源,五金店老板陪着来,只盯住灭火器有没有过期。 销售说在线率可以保证百分之九十九,马飞问剩下百分之一怎么计算、计划维护算不算。对方拿来正式合同,里面写的是“尽力保障”。一千八百元买到的是环境和线路,不是免除星辰自己的故障责任。 还不包括线路流量和现场维护。 周成建议只把查询服务器搬过去,抓取和索引仍留在办公室。 苏雨桐同意,但要求先做故障边界。 如果半地下室断电,线上查询应继续使用最后一版完整索引。 如果机房服务器故障,必须能在另一台机器上恢复。 如果两地复制中断,不能把半份索引标成新版本。 他们给每次索引生成一个编号。 周成第一次实现“可发布”标记时,只检查文件数量。苏雨桐从其中一个分片删去一百字,数量不变,测试照样通过。第二版增加摘要;马飞又故意换入旧分片,摘要正确但版本不一致。直到编号、数量、摘要和来源清单四项同时匹配,机房脚本才接受。 五金店老板看他们反复破坏自己的索引,问好机器为什么总要先弄坏。周成说不先在眼前弄坏,迟早会在看不见的地方坏。 构建完成后先校验文件数量和摘要,再写入“可发布”标记。机房只接受带标记的完整版本。复制失败时继续使用旧索引,不追求表面上的最新。 第一次搬迁安排在周六凌晨。 星辰提前一周向七所高校发出通知,说明服务将中断四小时。陈维明看见通知,问:“不能悄悄搬吗?四小时很难看。” “如果顺利,可能只停一小时。” “那为什么写四小时?” “因为最坏情况下要把机器搬回来。” 实际中断用了五小时十二分。 凌晨一点,机房里只剩空调和风扇声。兼容网卡买回来前,马飞和机房值班员轮流坐在门口台阶上吃包子。值班员把自己的辣酱分给他,说这一带三点以后连热水都不好找。 周成骑车往返中关村,裤脚卷到小腿,三点零七分抱着网卡进门。第一次驱动加载仍报错,他没有赌重启,换备用槽位重新测试。五点十二分,七所高校的健康检查全部返回绿色。 新机房的网卡与服务器驱动冲突,第一次启动后无法稳定传输。周成临时回中关村找兼容网卡,凌晨三点才装好。 服务恢复时,天已经亮了。 马飞没有修改原通知。 他追加了一份故障记录: 计划四小时。 实际五小时十二分。 原因是兼容性验证不足。 改进措施是为关键替换部件建立预检清单。 机房值班员看到他打印的表,问:“你们每次都写这么细?” “以前不是。” “大公司也未必写。” “所以他们出问题时也会忘。” 搬迁后的第一个月,星辰搜索在线率达到百分之九十八点七。 月报发出去后,高老师回信说图书馆恰好撞上两次中断,体感远没有九十八点七那么好。星辰把不可用时间按学校常用时段重新计算,白天在线率反而更低。之后的维护尽量放到夜间,仍保留全天数字,不用调时段把月报变漂亮。 那不是值得自豪的数字。 换算下来,仍有近十小时不可用。 其中一次是索引复制占满磁盘通道,一次是程序内存泄漏,还有两次是机房线路调整。 团队第一次轮流承担夜间联系。 值班人不能只写“重启恢复”,必须记录告警、判断、动作和结果。第二天由另一人复核,避免一个疲惫的人同时成为故障执行者和唯一解释者。 半地下室里空出一张桌子。 机器的噪声少了,房间反而显得更冷。 马飞把机房钥匙放进带编号的信封,登记借出时间。 第一周值夜班轮到苏雨桐,凌晨两点机房打来电话,说线路调整提前。她从学校宿舍跑到传达室接回电,要求对方按合同保留变更时间。第二天,她把这次十七分钟抄进故障表,没有因为不是星辰造成就删掉。 空出的桌子被擦干,湿过的测试表重新装盒,架到离地最高一层。墙上原先贴服务器的地方只剩四个螺丝孔,房间安静得能听见楼上拨算盘。 马飞把机房钥匙封进编号信封,今天借给谁、几点归还,第一行由他自己签。 第34章 苏雨桐的署名 苏雨桐的论文收到修改意见时,星辰刚搬进机房。 信封寄到学校,她下课后才送来半地下室。外面下着小雨,文件袋边缘湿了一圈。评审意见有四页,第一页没有“通过”或“不通过”,只在题目旁写着“需补足可复现说明”。 苏雨桐把信放在桌上,先去机房值班表签了交接。周成等她开口等了十分钟,终于忍不住问结果,她才说:“还没退,也没收。要补实验。” 论文题目是《混合编码中文资料的可追溯识别与切分方法》。 评审人问了三个问题。 样本从哪里来。 错误标注由谁完成。 算法是否受商业系统保密限制,能否复现。 每一个问题都碰到公司边界。 三百条公开样本需要重新抽取。原内部集合里混有站点管理员只授权星辰测试的目录,不能因为论文需要便改称公开。苏雨桐和两名兼职学生逐条查来源,连续三晚只确认了一百八十七条。 图书馆志愿者中有一位已经毕业,联系地址失效。她对二十六条错误标注有实质贡献,不能一句“联系不上”就抹掉。高老师辗转找到新单位,对方回信同意公开标注结果,并要求致谢用全名,不写模糊的“某馆工作人员”。 样本来自星辰抓取的公开资料和高校授权目录。 错误标注由苏雨桐、两名兼职学生和图书馆志愿者共同完成。 算法的一部分已经用于星辰搜索。 周成担心论文公开后,华夏寻文会照着实现。 陈维明更直接:“公司花钱积累的数据,为什么免费告诉别人?” 苏雨桐把最初合作协议放到桌上。 独立课题。 实验留档。 技术署名。 马飞曾经亲口答应,这些不是公司成功后再决定的奖励。 “我不公开用户日志,不公开客户资料,也不公开生产代码。”她说,“论文写方法、评价和可复现的脱敏样本。” “方法就是优势。”周成说。 “不被检验的方法,只是我们自己的说法。” 陈维明拿出竞争者广告,指出华夏寻文最近也在宣传混合编码。苏雨桐没有说公开一定带来好处,只承认对方可能学会。她把代价写在会议记录里:方法细节公开后,单靠编码判断维持优势的时间可能缩短。 “那为什么还要做?”陈维明问。 “因为我的学术工作从合作开始就不是公司的保密附属品。你们可以决定生产代码不公开,不能事后把方法全部改成商业秘密。” 会议陷入僵局。 马飞没有用创始人身份拍板。 他要求把能公开和不能公开的内容逐项列出。 可以公开:编码判断的特征类别、原始字节保留原则、切分评估方法、从公开资料重新抽取的三百条脱敏样本。 不能公开:用户原始查询、站点未公开授权资料、客户数据库、生产系统参数、完整代码。 需要征得贡献者同意:人工标注结果和共同设计的测试工具。 两名兼职学生都应在致谢中具名;若对方法有实质贡献,则应列为共同作者,而不是用“公司团队”抹掉个人。 周成参与过测试工具设计。 他原本反对公开,看到共同作者标准后沉默了很久。 “我只改了工具,没有提出方法。” “那就在致谢里写清楚工具贡献。”苏雨桐说。 “不挂作者?” “作者不是奖金。” 这句话同样适用于马飞。 他提供了公司资源,也参与过产品决策,但没有完成论文的核心研究和实验设计。 最终作者名单里没有他。 周成的名字出现在致谢第一行,两名兼职学生和图书馆志愿者各列实际工作。初稿把他们合写成“星辰团队”,苏雨桐逐个改开。排版因此多出半页,打印费也多了一张,她自己付,随后按协议报销。 马飞读校样时,在方法部分发现一段来自自己早期实现说明的表述。它不构成核心研究,却接近原句。苏雨桐重写并在项目说明里引用内部技术记录编号,避免资源提供者消失,也避免他凭一段文字挤进作者栏。 陈维明看见修改稿,觉得不可理解:“外面会以为技术不是你做的。” “本来就不是我一个人做的。” 马飞代表星辰签署了数据使用说明,确认论文所用样本的来源与公开范围。公司保留生产代码,允许论文方法在学术范围复现。 三周后,论文进入终审。 终审通知到达那天,苏雨桐正在机房处理索引复制失败。她只看了一眼便把信压进值班本,先确认旧索引仍在服务。回到半地下室已经九点,五金店老板才从抽屉里拿出一小包花生,说“终审”听着像能吃顿好的。 大家分着花生,没有提前庆祝录用。周成问论文若真发表,公开集能不能放在星辰页面供下载;苏雨桐说先征得所有贡献者确认,不能用一次同意自动覆盖新的发布方式。 苏雨桐没有因此减少公司工作。 相反,她把评审人追问的复现细节带回星辰,发现编码识别测试一直缺少一个固定的公开样本集。团队过去每次更新都从内部资料随机抽样,结果无法跨版本准确比较。 那三百条脱敏样本成为第一套公开回归集。 公开集第一次跑完,生产版本在三百条上的得分比内部报告低四点。原因是内部样本长期偏向星辰已覆盖的高校资料。周成脸色很差,苏雨桐却把两套结果一起写进补充实验。 两周后修复针对的不是那四点本身,而是繁体短标题和公式混排误判。重新测试提高两点一,剩下差距原样保留。评审人回信说,修订稿终于能让别人知道哪里做不到。 华夏寻文会不会学到方法,没人知道。星辰先在公开集上吃到四分落差,又实打实补回两点一。 苏雨桐把最终校样锁进自己的文件柜,不放在马飞抽屉里。马飞代表公司签的数据说明另存一份,作者栏依旧没有他的名字。 半地下室熄灯前,周成把三百条公开集复制到只读软盘,标签写上苏雨桐的论文编号。她检查完才收进书包,和那封进入终审的通知放在一起。 第35章 七个百分点 公司改制前,顾律师把所有人叫到一张长桌旁。 长桌借自五金店二楼的仓库,桌面被货箱压出几道凹痕。顾律师带来一只计算器和三支不同颜色的笔,要求每谈妥一项就由相关人当场复述,不能点头算数。 陈维明提前十分钟到,带了一盒糕点。苏雨桐把糕点放到窗边,先确认它算谁的招待费。陈维明说是自己买的,不报账,她才拆封。 桌上有五份文件。 资产清单。 债权债务表。 技术成果归属说明。 未来股权结构草案。 苏雨桐的权益协议。 最后一份最薄,也最难签。 薄薄七页,页边贴满便签。马飞最早提出7%时只算投入和技术责任,如今公司有债、有客户、有服务器,也有尚未发生的融资。每换一个计算基准,纸上的百分比不变,实际对应的权利都不同。 早期合作时,双方约定她以独立研究与核心技术贡献获得目标7%技术权益。那时星辰还没有标准有限公司股权,协议只说明改制后落实,没有写清全部细节。 现在细节必须变成数字。 7%按改制前还是融资后计算。 已经工作的一年是否计入成熟期。 如果苏雨桐回学校完成学业,是否算离开公司。 如果公司被收购,未成熟部分怎么办。 如果她反对某次技术决策,权益是否受影响。 陈维明首先提出,7%应在他未来转股后计算。 “否则我的12%会被继续稀释。” 苏雨桐问:“你的12%是上限,还是保证?” 陈维明翻到借款协议。 上面写得很清楚:有限公司改制时可以选择按约定估值增资,比例不超过12%,全部既有权益应在估值前披露。 她的7%正是既有权益。 马飞没有替她说服陈维明。 他若开口说“我愿意多让”,问题便会被写成创始人的赠予。苏雨桐拿出的不是人情,而是1996年签署、融资前已经披露的合同权益。顾律师也提醒,任何修改需要她本人同意,马飞的控股地位不能替她放弃。 他把计算表交给双方,让争议停留在明面上。 最终结构按完全摊薄口径计算。 计算器按到一半没电,五金店老板从柜台找来两节新电池,要求写借用单。陈维明嫌他麻烦,老板指着桌上的股权文件说:“你们几分钱都算,我两节电池为什么不算?” 屋里第一次笑出声。顾律师真把八毛钱写进杂费,谈判继续。 苏雨桐目标7%。 陈维明若转股,最高12%。 员工预留池暂设5%。 马飞持有剩余部分,但不以此否定已经写入协议的技术与治理边界。 成熟期设为四年,从1996年6月29日正式签约日起计算。 满一年成熟四分之一。 其余按月成熟。 苏雨桐因学业安排减少工时,只要继续履行约定研究职责,不视为离开。 如果她主动退出,已成熟部分保留,未成熟部分回到公司预留池。 如果公司无正当理由解除合作,或控制权变化后取消她的独立课题与署名保护,部分未成熟权益提前成熟。 “部分是多少?”顾律师问。 “全部。”苏雨桐说。 陈维明反对:“这等于收购时自动送股。” “如果新控制人可以买走公司,再把原承诺全部取消,四年成熟就只约束我,不约束公司。” 谈判持续到晚上。 午饭是六碗炸酱面,吃完桌上还留着蒜味。陈维明坚持提前成熟只限被解除合作,苏雨桐坚持也应覆盖职责被架空。双方用三个假设逐项演算:换负责人、取消实验留档、保留职务却不给数据。 第三种最难。名片上仍叫负责人,实际没有样本、预算和签字权,表面没有解约,研究却已无法进行。最终“实质削减”后面加上可核查的四类权利,不能只凭感受触发。 最后确定:控制权变化后十二个月内,若公司单方面实质削减其职责、署名、实验留档或财务知情权,未成熟部分全部提前成熟。 马飞还提出一项反向保护。 技术否决权只覆盖实验真实性、数据边界和署名,不等于苏雨桐可以独自决定全部商业资源。 她接受。 “我不要当另一个不受约束的创始人。” 马飞在这一条旁边签了首字母。苏雨桐的技术否决要求补实验、保留失败或停止越界数据使用,却不能单独决定租哪间办公室、给谁涨工资。边界既防公司吞掉她,也防她把专业判断扩成全部经营权。 文件签署前,顾律师逐条询问是否理解。 陈维明选择暂不转股,继续保留债权与未来选择。 苏雨桐签下名字。 马飞最后签。 顾律师没有马上收文件。他随机翻到三处,让三个人分别解释。陈维明能说出12%只是上限,苏雨桐能说出成熟期从去年的正式签约日计算,马飞则复述控制权变化触发条件。三份回答一致,骑缝章才盖下去。 签完后,苏雨桐把文件副本装进自己的包。 不是留在马飞抽屉里。 那份权益从此属于她自己保存的权利。 散会时已经十点半。苏雨桐把副本装进带锁文件袋,拒绝马飞替她放进公司铁柜。陈维明拿走自己的披露表,临走前从糕点盒里拿最后一块,被五金店老板提醒那盒是他个人买的,当然可以。 桌上只剩两节新电池的借用单。马飞付了八毛,老板开收据。七个百分点旁边没有掌声,只有顾律师逐页检查过的深红骑缝章。 第36章 星辰科技有限公司 1997年11月,星辰信息技术开发中心准备变成一家有限公司。 第一张改制清单贴上墙时,五金店老板数了数,一共四十三项。他原以为换营业执照只是重新刻章,看见“未完成客户义务”也要逐条移交,立刻把自己剩下的半个月库存维护圈出来,怕公司换名以后不认账。 “新公司继续做,旧合同出移交确认。”马飞说。 老板这才签收,又要求客服电话别跟着换。 名字只多了四个字。 需要解决的问题却比过去两年加起来都多。 哪一台电脑属于公司。 哪些代码是马飞在研究所任职期间写的。 客户预付款还有多少未完成义务。 陈维明的六万元借款如何处理。 苏雨桐已经成熟的技术权益按什么价值入账。 兼职学生编写的工具是否签过成果归属。 顾律师拒绝使用“大家都知道”作为证据。 周成最不适应。他写过的几个小工具没有单独合同,大家都看着他在半地下室敲出来,却说不清归个人、归项目还是归未来公司。顾律师让他一项项列:完成时间、使用设备、是否领取补贴、是否含学校课题。 其中一只日志分析工具同时用于他的课程作业。公司只取得现有版本的商业使用权,周成保留通用方法和学术展示,客户数据不得带走。马飞没有因为付过补贴便把全部权利圈进公司。 “工商材料不会问你们关系好不好。”他说,“以后关系不好时,法院更不会。” 最先出问题的是第一台486。 购买发票写的是马飞个人名字,钱也来自他的存款。它后来承担公司开发,却从未正式转让。 马飞可以把机器按原价计入出资。 顾律师摇头:“用了两年,有坏道,还按四千三?” 最终由第三方按现状评估。 一千六百元。 评估人员开机时,软驱仍像咳嗽。五金店老板在旁边替机器不值,列举它做过库存、抓取和第一批索引。评估人员说功劳不影响二手价,坏道和折旧才影响。 马飞按一千六百签字,没有拿“创业情怀”给资产抬价。机器进账后贴上公司编号xc-a001,原购买收据和评估表一起归档。 马飞看着数字,想起当初搬回宿舍时只剩四百多元。 那台机器在账面上贬值了。 在故事里却没有。 代码归属更复杂。 最早一批代码草稿写于研究所宿舍和业余时间,没有使用保密资料,但部分通用数据处理经验来自工作。顾律师要求马飞列出代码形成时间、设备和数据来源,并书面确认不含研究所涉密内容。 马飞花两个晚上翻软盘日期。部分文件复制过,时间戳已经变化,他便用测试日志、电话清单和苏雨桐的早期记录交叉确认,不把猜测写成确定日期。无法完全证明的三只工具暂不计入出资,只以非独占许可继续用。 张建国收到核实函后,亲自打来电话。 电话接通时,张建国正准备去试验场,背景里有人催车。他没有和马飞叙旧,只逐项问公司是否保存过原单位图纸、磁带或内部程序。马飞回答没有,张建国又要求把这一结论写进承诺,不能只留电话记录。 “你终于知道要把边界写在纸上了?” “晚了两年。” “不算最晚。” 研究所没有为难他,只要求星辰不得把喷注器项目文档、试验数据和内部程序纳入公司资产。马飞签下承诺。 张建国在回函末尾写了一句: “通用工程经验归个人成长,具体型号资料归原单位。” 这条边界不会解决所有未来争议。 至少让双方没有依靠沉默假装一致。 员工预留池的5%也引发争论。 周成问,自己过去一年做的工作算不算。 答案是算,但不能由马飞临时说一个比例。公司建立贡献记录、职责和成熟期方案,任何授予都要形成书面决议。 陈维明最终选择将一半借款转为股权,取得6%。 转股估值出来后,他的会计重新核了三遍。陈维明原可把更多债权转入,仍只选一半:“六个百分点够我看账,也够我疼。剩下三万你们按时还。” 顾律师把这句话改成正式条款:债权余额、利率、到期日不因股东身份消失。朋友式的“以后再说”没有进入文件。 另一半继续作为借款,保留利息和到期日。 他没有拿满12%。 “我还要看你们正式上线以后是不是只会做校园项目。”他说。 公司章程把几项边界写进去。 自然排序与商业展示规则的重大变化,需要技术负责人、数据规则负责人和经营负责人共同记录。 用户原始查询不得作为普通商业资产随意转让。 涉及苏雨桐独立课题、署名和实验留档的安排,不能用简单多数表决取消。 这些条款不可能永远不变。 但改变必须留下谁提出、为什么和谁承担后果。 十一月二十七日,营业执照拿到。 工商窗口叫到号码时,马飞正在隔壁复印遗漏的一页设备清单。苏雨桐先听见,跑过去请工作人员等两分钟。执照递出来时塑封还有热度,名称一字不错,住所仍是那间半地下室。 五金店老板坚持把执照挂在楼道新灯下面,说下面屋里太潮。顾律师不同意,法定文件应放在公司可控位置。最后他们买了一个带玻璃的木框,挂在半地下室最高、离水管最远的墙面。 正式名称: 北京星辰信息技术有限公司。 对外仍叫星辰科技。 团队没有举行酒会。 他们把原开发中心的合同、设备、债务和未完成项目逐项移交,在新账本第一页写下期初余额。 现金并没有因为换了执照而增加。 服务器也没有更快。 新账本第一页写完,现金数和前一天完全相同。周成盯着营业执照看了半天,问今天是不是可以早点下班。马飞批准六点关门,条件是旧开发中心最后一份备份先做校验。 晚上六点二十,校验才结束。五金店老板端来一锅白菜炖肉,记在自己账上,不让公司报销。陈维明拿着6%股东文件坐在折叠凳上,苏雨桐把自己的权益副本仍放在个人包里。 饭后,马飞给旧印章套上封条,和移交清单一起锁进铁柜。新公章第一次盖在第二天的机房值班授权上,印泥均匀,没有重盖。 第37章 一九九八倒计时 营业执照拿到后的第三天,马飞把一张倒计时贴在会议桌前。 所谓会议桌仍是五金店仓库借来的长桌,营业执照挂在头顶最干燥的位置。倒计时用的是印刷店裁下的挂历背面,数字一百二十三写得太大,占了半张纸。五金店老板路过看见,以为公司还有一百二十三天搬走,忙问房租合同是不是不续。 距离1998年3月31日,还有一百二十三天。 那是他在七年路线里给搜索产品正式发布留下的最后窗口。 苏雨桐看完问:“为什么是三月三十一?” “第一季度。” “为什么一定要第一季度?” 马飞没有说,因为他记得未来竞争加速的年份。 那仍然只是方向,不是可以跳过质量的理由。 “如果到那天不够好,就推迟。”他说。 “把这句也写上。” 倒计时下面多了一行: 日期服从发布条件。 苏雨桐让马飞签上名字,又要求周成、林岚各自确认。口头说会推迟很容易,真正到了三月,寄出去的通知、客户预算和所有人的加班都会反过来压这句话。 团队把正式发布拆成五张清单。 质量。 容量。 数据规则。 故障恢复。 现金与服务。 质量清单已有五百条人工样本和一万次真实查询分布,仍缺错别字、拼音姓名和长句查询的稳定指标。 容量清单显示八十并发可用,但机房月报里仍有内存泄漏。 数据规则已经覆盖限频、退出、来源和商业信息分离,却没有统一处理个人要求删除公开信息的流程。 现金可以支撑四个月,前提是两个数据库项目按时回款。 最空的一张是故障恢复。 林岚加入星辰不到两个月,原本负责客户资料导入。她被选中不是因为最懂服务器,恰恰因为她只看过值班手册。周成先想给她讲半小时,苏雨桐把他请到桌子另一侧,让他用棉线把嘴和茶杯“封”在一起——能喝水,不能提示。 五金店老板自告奋勇当监考,每次周成抬手便敲一下算盘。 他们有备份硬盘。 有磁带。 也曾经从索引损坏中恢复。 但所有恢复都由参与构建的人完成。没人证明过,一个只拿到记录和值班手册的人能否把系统恢复起来。 “这不算缺吧?”周成说,“机器坏了肯定叫我。” 马飞看着他:“如果你在火车上呢?” “我可以下车打电话。” “如果联系不上?” 周成笑了一下,见没人跟着笑,又停住。 系统把一个人当作隐形部件。 这和2026年事故里那些被专业边界掩盖的依赖没有本质区别。 团队决定做一次盲恢复。 由不负责索引构建的兼职工程师林岚执行。她只能使用备份、值班手册和封存信封里的必要口令。周成可以观察,不能提示。 演练开始二十七分钟后失败。 林岚选中半成品时,查询服务其实能启动,只是结果少了三分之一。若演练只检查“页面打开”,错误会被算作成功。她抽测三条固定查询才发现来源为空,立即关机,没有让坏版本继续跑。 “我选错了,但手册也没让我查这三条。”她说。 周成隔着棉线嗯了一声,被老板又敲一下算盘。 手册写着“载入最新完整索引”,却没有说明如何判断哪个版本完整。目录里同时存在构建时间更晚的半成品和发布时间更早的正式版本。 林岚选错了。 第二次,她找到“可发布”标记,却发现程序配置仍指向旧磁盘路径。 第三次,查询服务启动,中文编码表版本不一致,结果页出现乱码。 三个小时过去,系统仍未恢复。 午饭凉在桌上,谁都没动。周成最难受的不是失败,而是每个错误在他看来都“显而易见”:正式版本有绿标、配置文件要改路径、编码表放在另一个目录。林岚把这三个“显而易见”逐字写进缺项,不接受他只补一句“按惯例”。 周成脸色越来越难看。 “平时我十分钟就能起来。” “所以缺的不是你的能力。”苏雨桐说,“是公司能不能在没有你的时候使用它。” 倒计时从一百二十三天减到一百二十天。 发布清单上,故障恢复被标成红色。 马飞没有因为日期逼近而降低条件。 他反而新增了一条: 恢复演练必须由非原构建者完成两次。 第二天,林岚按新手册用四十六分钟恢复成功。周成想把这次算进“两次”,她不同意,因为手册是自己参与修改的,已经不算完全陌生。团队另找机房一名值班员,支付正常测试工时,让他在不见开发者的情况下再做。 倒计时减到一百一十七时,故障恢复仍是红色。五金店老板每天早上替他们撕一页挂历,红线没有因为数字变小而擦掉。 马飞把“日期服从发布条件”又复印一份,夹进准备寄给客户的发布计划里。午饭这才重新热过,林岚吃了两口便开始给目录里的绿标补文字说明。 第38章 公测前夜 1998年3月二十七日,星辰冻结了公开发布候选索引。 冻结按钮按下时是下午六点四十三分。林岚把机房门口的挂钟时间念出来,周成记录,苏雨桐核对索引编号。半地下室那边,五金店老板按约拔掉抓取电话线,免得有人手快又塞进一批新页面。 马飞在候选清单上签字,才发现晚饭还放在暖气旁。四盒炒饭已经凉透,大家仍一人分了一盒,没有开酒,也没提前说祝贺。 编号: xc-index-。 有效公开页面六万八千四百一十二份。 来源站点一千零九十七个。 五百条人工样本前十平均相关得分十四点九。 八十并发下,百分之九十五的查询在二点六秒内返回。 两次盲恢复演练都通过。 倒计时只剩四天。 发布通知已经装进四十多只信封,堆在林岚脚边。陈维明订的报纸预告也交了版面费。周成看着那摞信,笑说这次总算不会再改日期;苏雨桐让他把话写在废纸上,别写进正式记录。 晚上十一点,机房值班员打来电话。 查询服务器的一块硬盘开始出现读错误。 周成和马飞赶到机房时,错误数量已经从三个增加到十九个。系统仍能响应,大部分用户感觉不到异常。 硬盘每隔几十秒发出一次轻响,像小石子撞在铁盒里。值班员已经把错误代码逐条抄下,没有自行重启。马飞把手贴近硬盘架,温度正常,读错误却还在增加。 周成想先复制最新索引,苏雨桐通过电话提醒:每多读一次都可能让盘更快死。团队先切备机,再对主盘只做必要诊断。 “先切只读备机。”马飞说。 备机使用前一天的索引,页面少一千多份,却完整可校验。 切换后,七所高校联系人逐一收到状态通知:当前使用前一日索引,来源和查询功能完整。高老师回电话说图书馆还能查,晚一千页比突然消失好。 切换用了七分钟。 主机下线后,硬盘在复制诊断数据时彻底停止响应。 按照手册,他们应该从最新备份恢复候选索引。 磁带读取到百分之八十三,报校验错误。 第二份备份在半地下室。 林岚骑车回去取。 凌晨开始下雨。林岚没等出租车,套上雨衣骑回中关村。她到半地下室时,五金店老板还守着卷帘门,备份磁带装在防水铁盒里,却因为交接记录少了归还签字差点不能取出。 老板坚持让她电话确认。马飞在机房报出口令和磁带编号,林岚签下时间,才把铁盒绑到车后座。往返一个多小时,她裤腿全湿,磁带没有沾一滴水。 凌晨一点四十,第二份磁带开始恢复。 目录文件完整。 正文索引完整。 编码表完整。 来源映射缺少最后一卷。 没有来源映射,结果仍能显示摘要,却无法可靠指出页面来自哪里。系统可以上线,但违反星辰自己定下的来源规则。 周成看着表:“只丢了昨天下午那批映射。先用,之后补。” 苏雨桐摇头:“用户看到的是一条完整结果,不会知道它背后少了一块。” “四天后发布。” “所以呢?” “媒体通知已经寄了,七所学校也准备开放入口。” “所以我们要带着明知不完整的来源上线?” 机房里的空调持续轰鸣。 马飞想起2026年的控制室。 那时每个专业都握着一部分正常指标。飞船也可以继续飞,直到那些没有被共同看见的缺口在三点七秒里连成一条链。 现在缺的不是核心算法。 只是一卷来源映射。 没有火焰,没有生命危险。 却是同一种诱惑: 系统大部分仍然正常。 日期已经承诺。 问题看起来可以稍后补。 “推迟。”马飞说。 他说完先在故障单上签字,再拿起电话通知陈维明和顾律师。周成坐在地板上,手里还捏着那张四天倒计时,没有争辩,只问要不要把报纸预告撤下。 “撤。违约费用记在延期成本里。” “客户呢?” “逐家说真实原因,不承诺新日期。” 周成闭上眼睛。 “多久?” “先确认重建时间,再对外说。” 团队用原始抓取清单重建来源映射。过程比预想慢,因为部分站点已经移动,旧地址需要从日志恢复。 到三月三十一日上午,只完成百分之七十六。 剩余四分之一最麻烦,旧日志分别在三台机器和两卷磁带里。林岚逐项核来源,周成写恢复脚本,苏雨桐用随机结果检查摘要能否追回站点。马飞没有亲手替任何人跳过核验,只负责联络与费用。 中午,五金店老板端来面条,看见所有人都没动,直接拔掉非生产测试机的电源,逼他们去门口吃十分钟。没人因此多恢复一条映射,至少周成下午没再把两个站点编号看反。 星辰向外发出通知: 正式发布推迟。 原因是备份恢复中发现来源映射不完整。 新的日期暂不承诺。 陈维明在电话里沉默了半分钟。 “你知道别人会怎么写吗?” “知道。” “华夏寻文会说你们系统坏了。” “确实坏了。” “你可以说设备升级。” “那下次团队会记住,坏了也能换一个好听的名字。” 通知发出后,有两家原本准备购买商业信息的客户暂停签约。 报纸上的一小块预告也被撤下。 印刷方只能退一半版面费。两家商业客户暂停签约,其中一位在电话里说华夏寻文已经愿意马上上线。马飞没有要求对方等,只把星辰恢复后可重新验收写进回函。 当晚,顾海峰发来一封私人邮件,没有嘲讽,只问是否需要借一台磁带机。马飞谢绝设备,接受了他提供的两卷空白备份带,并按市场价记为应付款。竞争对手伸来的手也需要把边界写清楚。 四月一日,倒计时变成负数。 马飞没有撕掉。 他在“负一天”旁写下来源映射完成度:百分之八十一。周成把原定上线通知全部收进档案盒,外面标注“未执行”,免得以后有人只看见日期,误以为这一天已经发布。 凌晨一点,备机仍在正常服务七所高校。林岚把湿雨衣挂在水管旁,苏雨桐靠在折叠床上睡着,手里还压着一张来源抽查表。 马飞关掉会议桌上多余的灯,只留墙上那张负数倒计时亮着。 第39章 十万次查询 来源映射重建完成后,星辰没有立刻宣布新日期。 最后一条映射在四月六日凌晨恢复。周成按下保存时,林岚先核站点编号,苏雨桐再抽了五十条结果。五金店老板把原定三月三十一日吃的两瓶汽水从柜子里取出来,发现早已跑气,又原样放回去。 “恢复完不等于能上线。”苏雨桐说。 老板叹气:“我就知道这两瓶还得再放。” 苏雨桐提出,把恢复后的系统跑满十万次查询。 不是让十万人同时来。 而是用过去一年匿名保存的真实查询分布,加上错别字、长句、拼音、人名、热点词和重复提交,组成一套可以重复回放的压力集。 十万次分三轮。 回放数据装满七卷磁带。每卷由两个人核摘要,装进不同颜色的盒子,红色跑容量,蓝色跑质量,绿色跑故障。林岚担心顺序混淆,给盒盖各剪了不同形状的缺口,即使机房光线不好也能摸出来。 第一轮验证结果是否与冻结版本一致。 第二轮验证八十并发下的容量与拒绝策略。 第三轮在运行中故意切断一台机器,检查备机、日志和恢复手册。 周成负责容量。 苏雨桐负责质量抽检。 林岚负责恢复。 马飞只看汇总,不允许自己成为任何一步必需的人。 第一晚,他还是习惯性站到周成身后。林岚提醒汇总桌在门外,马飞才端着搪瓷杯出去。他在走廊坐了三个小时,除了签停测决定,不进机房指挥具体恢复。 值班员看他来回踱步,递来一份报纸,说总师在门外也不会让磁带转快一点。马飞坐下,看了半版便又从头看,什么也没读进去。 第一轮在第两万三千次时发现差异。 同一查询在两个版本上返回的前十条顺序不同。 原因不是算法。 恢复后有一批页面的抓取时间被写成重建时间,排序中的时效因子因此把旧内容当成新内容。 受影响最明显的是一份1995年的软件目录,恢复后忽然排到当年更新页面前面。普通校验只证明文件一字不少,用户看到的顺序却已经变了。苏雨桐把它列为“完整但不等价”,新增语义抽查,不再把恢复理解成能开机就算结束。 如果只检查文件摘要,所有数据都完整。 语义却变了。 团队停下测试,修改恢复程序,确保保留原抓取时间。 第二次从零开始。 十万次全部清零让周成最心疼。前三万次已跑了七个小时,不能从故障点接着算,因为恢复程序本身改变了结果。五金店老板问能不能把前面三万“打个折”留下,林岚把那卷磁带封进失败档案,标签写明仅用于复盘,不计正式次数。 第六万一千次,查询队列达到上限。系统正确拒绝新请求,却在繁忙页面里丢失了原查询文本。用户等待后必须重新输入。 这不影响服务器稳定。 却让失败成本全部落在用户身上。 周成给繁忙页面增加短期令牌,容量恢复后可以重新提交原查询,不保存身份信息,也不无限延长。 令牌第一版含完整查询文本,机房重启后会落进临时日志。苏雨桐要求改成短期随机编号,查询只在内存里保留,十五分钟自动失效。用户能少输一次,星辰却不能借便利无限保存内容。 三名高校测试者盲用后,一人误以为令牌是排队号码,等待二十分钟才发现失效。周成把提示改成明确的剩余时间,第二轮三人都能完成重试。 第三次从零开始。 第八万七千次,主查询进程被人工停止。 备机在九秒内接管。 林岚根据手册确认版本、编码表和来源映射,二十三分钟后恢复主机。周成全程没有开口。 十万次结束时,机房里没有欢呼。 最后一个请求返回时是早上六点十二分。打印机卡了一次纸,林岚关机重装,谁也不肯用手把半张统计硬拽出来。苏雨桐靠在墙边吃前一夜剩下的馒头,周成盯着拒绝数,眼睛红得像发炎。 打印机缓慢吐出统计。 失败请求三百二十一条,其中二百九十四条得到明确繁忙提示并可重试。 百分之九十五查询在二点八秒内返回。 五百条人工样本前十平均相关得分十四点八,比故障前低零点一。 差异来自新加入的公开页面,其中几组重复摘要尚未完全合并。 “过不过?”马飞问。 苏雨桐没有看总分。 她翻到按类别统计的页面。 人名查询下降零点四。 明确题名提高零点二。 长句基本不变。 “可以发布。”她说,“但人名下降要进已知问题,不能用平均分藏掉。” 周成原以为十四点八低于冻结前十四点九会被继续推迟。苏雨桐指出发布条件从来不是所有指标只能升,而是类别退步必须可解释、有记录且不越过底线。人名问题被列进首页已知事项,修复不能靠删掉那组样本。 马飞在批准栏签字,没有把零点一改成“四舍五入持平”。 周成把容量问题也列进去: 八十并发是稳定上限。 超过上限会明确拒绝。 不是无限承诺。 发布日期定在四月十六日。 比原计划晚十六天。 媒体预告不再写“中国最大”或“国内领先”。 只写: 星辰搜索正式开放。 收录范围、质量方法、商业信息规则和已知问题可查。 十万次查询没有证明系统不会失败。 林岚把三轮失败磁带与最终统计分开放,正式结果盒上有四个人签名。顾海峰借来的空白带已经写入第二份异地备份,应付款凭证也夹在里面。 马飞撕下一张新挂历纸,只写四月十六日和七个空格。五金店老板拿出那两瓶没气的汽水,建议这次别再留到最后。大家一人分了半杯,喝起来像甜水。 第一个空格在当天夜里被划掉。机房状态正常,人名查询仍挂在已知问题页上。 第40章 正式上线 1998年4月十六日上午八点,星辰搜索正式向公众开放。 七点二十分,半地下室已经坐不下人。周成和林岚在机房,高老师守学校入口,苏雨桐坐第二张桌前看质量抽样,陈维明带着会计站在门边。五金店老板把卷帘门只开一半,免得来取货的客人误闯进来。 马飞起得最早,却没吃早饭。母亲前一天寄来的茶叶蛋还在抽屉里,苏雨桐看见后一个个分掉,谁值班谁拿,不许放到晚上坏掉。 没有倒计时动画。 没有剪彩。 首页只有一个输入框、一行收录范围说明和四个 使用帮助。 数据规则。 已知问题。 问题反馈。 商业信息规则放在第五个链接里,位置并不隐蔽。 八点零七分,第一条外部查询进入。 “中文信息检索 词典切分” 系统返回十二条结果。 第一条是苏雨桐论文的公开摘要。 她看见时没有说话,只把查询编号记进日志。 周成从机房打来电话,问是不是有人故意安排。苏雨桐把原始来源和时间念给他,确认是陌生公网地址。论文排第一也不是因为作者身份,排序程序根本没有这个字段。她仍把这条放进当天抽查,防止大家因结果好看便跳过。 八点二十三分,并发达到二十一。 九点四十分,达到五十六。 十点十二分,华夏寻文首页出现一行消息: “欢迎新的中文搜索同行。” 没有攻击,也没有祝贺。 顾海峰随后发来一封短邮件,附件是他们去年交换查询中的两个失败结果,提醒星辰公开版本仍未解决。马飞让林岚分别建工单,回信感谢,没有把首页那句话剪下来做宣传。 中午前,星辰出现第一次公开故障。 重复地址以每分钟几十条的速度涌入。结果页上同一款软件连续占满八条,有用户误以为星辰收录了八个版本,下载后才发现内容完全相同。周成想直接封整个站点,林岚查到其中还包含正常文档,改为先暂停新增参数路径,保留已验证主地址。 一个热门软件下载站更新目录后,产生数百个仅参数不同的重复地址。抓取程序把它们视为新页面,结果页一度被相同内容占满。 团队暂停该站点更新,合并重复地址,并在已知问题页记录影响时段。 正式上线没有让问题消失。 十二点四十,重复结果恢复正常。已知问题页写明受影响查询和处理方式,软件下载站管理员也收到路径规则确认。对方回信同意合并参数地址,还提供了一个不变的目录入口。 故障修复后,页面反而少抓了几百个地址,用户能看见的有效内容没有减少。 下午,一名中学教师发来邮件。 他想找“钱学森早期工程控制论文”,只记得文章里出现过“工程控制论不是自动控制的另一种名字”这句话。星辰没有直接找到原文,却返回一份高校馆藏目录和两篇相关摘要。 教师沿着馆藏信息联系图书馆,找到了所需文献。 邮件最后写: “它没有给我答案,但告诉我下一步去哪里找。” 马飞把这封邮件打印出来,贴在xc问题木板旁边。 那位教师姓胡。高老师帮忙核过馆际借阅申请,确认不是一封无法验证的好评。胡老师同意公开邮件内容,但要求删去学校和姓名,免得同事以为他替企业站台。 林岚按要求做匿名副本,原邮件只留在工单里。木板上那句话旁边写着验证日期,没有画红圈,也没有贴“成功案例”。 两年前,图书管理软件的老板说,只记得正文一句话是人脑的事。 星辰现在仍不能解决所有这样的问题。 至少它已经能把一部分模糊记忆连接到可以继续查证的来源。 上线首日,共完成三千八百四十二次查询。 拒绝一百一十七次。 收到问题邮件四十三封。 商业信息收入为零。 两家原本观望的客户要求重新谈合同,但都没有当天签字。 这个成绩远不够写成传奇。 会计在旁边算了一遍机房、电话和值班餐,上线当天仍是净支出。陈维明没有提酒,先问两家客户何时重新验收。马飞给出一周观察期,不因第一天查询量就提前签。 晚上九点,团队在半地下室吃了几碗面。 陈维明带来一瓶酒,被苏雨桐放到柜子里。 “值班不能喝。” 周成笑着问:“那什么时候庆祝?” “连续三十天达到服务目标以后。”她说。 马飞同意。 五金店老板把酒柜钥匙拿走,声明连续三十天前谁也别找他。晚饭是他煮的面,鸡蛋比人数少一个。马飞主动没拿,结果母亲寄来的茶叶蛋还剩一只,被苏雨桐扔进他碗里。 他把七年路线图从文件夹里拿出来。 1998那一行写着: 公开发布,取得第一批真实用户。 他在旁边打了一个勾。 勾画得很小,旁边写上实际日期:比原计划晚十六天。苏雨桐看过以后补了一句“来源映射延期已归档”,免得这枚勾把那次故障遮住。 夜里十一点,机房发来状态报告。 服务正常。 磁盘正常。 查询队列正常。 问题工单仍有三十八条未处理。 马飞在路线图下一行写下: 1998—2000:先让搜索业务稳定产生现金与数据能力,再讨论支付与算力基础设施。 他没有写“立即启动”。 写完,他把路线图合起,不再给屋里的人念。机房值班表显示下一班是林岚,周成还有十一条重复页面工单,苏雨桐的人名查询抽样要在第二天早上继续。 夜里十一点半,五金店老板准备锁卷帘门。马飞把剩下三十八条工单按影响范围排好,第一条仍是当天中午的软件目录问题复查。 陈维明那瓶酒在柜子里没动。桌上只剩几只空面碗和一枚刚画下的小勾,窗外有人骑车经过,车铃隔着半地下室的玻璃响了两声。 第41章 服务器上的红灯 四月十七日凌晨一点十二分,查询服务器正面的硬盘灯由断断续续的绿,变成了一条几乎不熄的红线。 正式上线还不到十个小时。 半地下室已经关了灯,托管机房却亮得没有昼夜之分。马飞站在机柜前,隔着带孔的铁门看那盏红灯,耳边是风扇持续的尖鸣。值班记录本摊在折叠桌上,最后一行写着:零点五十八分,平均返回时间四点一秒,拒绝率百分之三点四。 一点零五分以后,记录空了。 不是系统恢复了,而是值班的兼职学生忙着接电话,再没有手抄数字的空隙。 “页面还能开。”机房管理员说,“就是慢一点。红灯不代表坏了。” 马飞没有回答。他在终端上输入一条查询,回车后,屏幕停在空白页。十五秒过去,浏览器下方仍显示正在连接。 第二次查询在十一秒后返回,十条结果只显示了标题,摘要全部缺失。第三次直接收到“服务器忙”。 机器没有关,用户却已经失去了服务。 苏雨桐在一点二十六分赶到。她从出租车下来时外套扣错了一颗,进门后没有解释,只把四十三封问题邮件的分类表放到折叠桌上。 出租车费十二元,超过她平时一周的公交钱。她把票据压在值班本下,注明上线故障交通,提醒马飞天亮后别忘了报销。机房里没有热水,只剩管理员半杯冷茶,她喝了一口便皱眉放下。 “又多了二十七封。”她说,“有人连续刷新,有人以为自己的拨号网络断了,还有三个人说,同一个词每次得到的结果数量不一样。” 马飞把终端让给她。监控程序每五分钟才记录一次总查询数,看不见单个请求在什么环节堵住。两人能确认的只有三件事:进程还在,硬盘队列很长,可用内存正在下降。 “先停抓取。”苏雨桐说。 抓取程序与索引构建虽然已经放在旧机器上,但新服务器仍要定时接收增量文件。零点四十分开始的一批增量索引,比平时大了近一倍。复制、校验和查询同时争抢磁盘,像三队人挤进一扇门。 值班学生拔掉连接旧机器的网线。 红灯没有暗下来。 “不是它一个。”马飞看着进程表,“热门查询的结果没有缓存。今天白天大家搜得太散,看不出来;晚上有个论坛贴了我们的网址,几百个人都在搜‘星辰搜索’和‘中关村公司名录’。同一批文档列表被反复从盘上读。” “那就把这两个词写进缓存。”兼职学生说。 “写进去,下一篇帖子换两个词,我们再半夜赶来写?”苏雨桐问。 学生不说话了。 马飞把墙上的发布指标抄到纸上。公开前,他们证明了八十并发下系统可以稳定返回,前提是查询分布来自十万次回放样本。真实上线以后,用户不是均匀到来,热点也不会提前递交申请。 他记得未来成熟搜索系统会怎样分层缓存、拆分索引、调度请求,也记得更昂贵的机器、更快的网络和多年积累的运维工具。但那些名词不能替眼前这台服务器多出一块内存,也不能让一个未经验证的改动自动安全。 “先降级。”他说。 “降什么?” “摘要、相似页面提示、结果数量精确统计。保留标题、来源地址和前十条结果。超过六秒还没完成的查询,不再一直排队,直接告诉用户系统繁忙。” 机房管理员皱眉:“刚上线就少功能,别人会说你们不行。” “现在他们等十五秒也看不到功能。” “可在线率报表会很难看。” 马飞转过头:“什么报表?” “机器开机时间。你们租机柜时不是说,要做连续在线服务吗?” 马飞看着那盏红灯,忽然明白一个危险的诱惑。只要不杀进程,不把页面彻底关掉,机器就可以在记录里保持“在线”。至于用户拿到的是空白、残缺结果还是错误提示,可以不进那张表。 这种数字最容易漂亮,也最容易把问题藏到事故发生以后。 “从今天起不用机器开没开做唯一指标。”他说,“记三项:用户请求有没有在六秒内得到完整结果,是否明确收到降级或拒绝,系统有没有返回无法解释的内容。空白页算失败,不算在线。” 苏雨桐已经拉开椅子坐下。她把三项指标写在故障本新的一页上,又加了第四项:同一查询在同一索引版本下是否一致。 “还要显示版本。”她说,“否则用户说两次结果不同,我们连他落在哪一版索引上都不知道。” 两人没有直接改主程序。他们先复制一份当前配置,在备用端口启动降级模式,用二十条常见查询、十条长题名和五条乱码样本重跑。标题和地址能够返回;不生成摘要后,单次磁盘读取明显减少。连续发出一百次相同热门查询,响应仍慢,但队列不再继续增长。 凌晨两点零九分,降级开关正式启用。 网页顶端出现一行灰字:当前访问量较大,系统已暂时关闭摘要与结果统计;自然排序规则不变。 这句话是苏雨桐写的。马飞原本只想写“系统维护中”,她把那五个字删掉了。 “我们没有维护。”她说,“我们是在容量不足时减少功能。原因不同,用户下一次判断要不要信我们,也会不同。” 两点十七分,平均返回时间下降到五点三秒。两点四十二分,降到三点八秒。硬盘灯仍频繁亮起,却终于出现了肉眼可见的间隔。 兼职学生松了口气:“那我把故障结束时间写两点四十二?” “不。”马飞说,“这只是止血。故障从什么时候结束,要等我们把摘要重新打开,还能维持指标以后再写。” 他让学生回去睡觉,自己和苏雨桐留下。两人从服务器日志、机房流量记录和邮件时间里,一分钟一分钟拼出零点四十分后的变化。日志缺失的地方一律标成“不知道”,不拿平均值填补。 兼职学生不肯先走,直到马飞在离岗时间上签字才收拾书包。他本想坐首班公交,管理员从抽屉里翻出一张夜班折叠床,让他先睡两个小时。苏雨桐把那张出租车票移到报销页,又给学生补了一份夜班餐,虽然机房里根本没有东西可吃。 清晨五点,窗外还没有完全亮,原因链终于写在白板上:论坛链接带来集中查询;热点词重复读盘;增量索引同时复制;请求没有超时退出;队列持续堆积;内存被等待请求占满;摘要生成进一步放大磁盘压力。 没有哪一项单独足以压垮服务器。它们在同一个小时碰到一起,才让红灯变成一条线。 马飞盯着那串箭头,想起另一条在火焰中闭合的链:氧泵、分离时序、热防护。前世事故后,太多人先寻找一个可以命名、可以更换、可以问责的坏零件。可真正杀死他的,从来不是一个零件。 苏雨桐察觉他握着笔不动,问:“想到什么?” “想到机器没坏,不代表系统没坏。” “这不是今晚刚学的吗?” “以前也学过。”马飞把笔放下,“代价更大。” 她没有追问,只把白板上的最后一个箭头改粗。 上午八点,陈维明打来电话。他昨晚把星辰搜索的网址发给了几个做通信设备的客户,其中一个正是论坛帖子的转发者。 “热闹是好事。”他说,“我看了,网站一直能打开。你们对外完全可以说上线首夜零停机。” 马飞看着故障本:“不能这么说。” “为什么?进程死了?” “没有。” “机房断网了?” “也没有。” “那就是零停机。” “一点零五到两点四十二,大量用户无法在合理时间得到完整结果。我们还关闭了摘要和统计。机器没有停,服务失败了。” 电话另一头沉默几秒。陈维明显然不喜欢这个答案,却没有像过去那样立刻争论控制权。他问:“写进给客户的材料,会不会太难看?” “可以不拿故障做宣传,但不能把它改名叫成功。” “那你准备怎么说?” “上线首夜出现容量故障,降级后恢复基本查询。原因正在复核,改进完成前不承诺峰值能力。” 陈维明叹了口气:“你这人做生意,有时候像给自己拆台。” “如果客户按假的容量买了服务,下一次才是真的拆台。” 通话结束后,苏雨桐把“零停机”三个字写在便签上,贴到红灯旁边,又在前面画了一道斜线。 上午十点,他们逐步打开摘要功能,每次只放行四分之一请求,并继续观察队列。十一点十三分,全部功能恢复。连续一小时内,百分之九十五的查询在四点二秒内返回,超时请求得到明确提示,同一索引版本的结果保持一致。 马飞这才在故障本上写下结束时间。 持续十小时三十三分,其中严重影响一小时三十七分。 处置不是“重启服务器”,而是五条具体措施:增量索引只在低峰传输;索引发布与查询磁盘分离排队;热门查询缓存必须根据日志自动淘汰;所有请求设置时间上限;降级状态向用户明示。 最后一条是:建立每小时用户失败率,不以进程存活代替服务可用。 午后,新的访问高峰到来。硬盘灯又亮得密集,却没有连成红线。 马飞在值班表上加了夜班,先把自己的名字填进第一格,又在故障本封面写下日期。苏雨桐把外套那颗扣错的纽扣重新系好,拿走报销联,准备回学校上下午的课。 五金店老板托人送来一只铝饭盒,里面是白菜和两只馒头。饭盒在路上漏了点汤,故障本右下角湿了一小块。马飞先把本子挪开,拿纸擦净桌面,再把“严重影响一小时三十七分”誊到封面。 下午两点,下一轮访问高峰过去。硬盘灯仍不停闪,间隔却能数得出来。马飞吃完冷馒头,把夜班联系电话抄在机房墙上,红灯旁那张划掉“零停机”的便签没有揭。 第42章 七天故障表 星辰搜索正式上线后的第八天,苏雨桐把七张纸铺满了会议桌。 每张纸代表一天。 纸的左侧按小时画格,右侧记录查询失败、主动拒绝、降级时段、索引版本和用户邮件。红笔表示用户没有得到可用结果,蓝笔表示系统明确告诉用户发生了什么,铅笔则表示原因尚未查清。 七张纸上,红色比任何人预想的都多。 会议桌不够长,最后一张纸有一半悬在外面。林岚用机房钥匙信封压住纸角,周成把早餐豆浆放在地上,生怕一抬手又给故障表添一片水印。连续值夜班的人都眼下发青,陈维明是屋里唯一系着领带的。 “服务器这周没有宕机。”负责托管联系的兼职学生先说。 苏雨桐指着第二天凌晨那条横跨九十七分钟的红线:“可用户失败了。” “那晚已经修过了。” “这是第三天上午,索引切换后有十二分钟返回旧摘要;第四天下午,长题名查询平均超过八秒;第五天夜里,抓取端传来一份校验不完整的增量文件,发布程序虽然拒绝了它,却把上一版索引锁了二十一分钟。第六天没有大故障,但有四十八次请求排队到超时。” 学生看着自己的值班记录:“加起来也没多久。” “所以才要算。” 苏雨桐在黑板上写下两个分数。第一个分母是七天的总分钟数,分子是查询程序仍在运行的分钟数,结果几乎接近百分之百。第二个分母是所有进入系统的有效请求,分子是六秒内返回完整结果的请求,只得到百分之九十二点七。 同一套服务,因为选择不同的分母,看起来可以完美,也可以明显不合格。 五金店老板从门外听见“分母”,探头问这周到底有没有坏。苏雨桐把两张图递给他。他看不懂百分比,只听懂一百个人进门,有七八个没拿到东西。 “那就是坏过。”他说,“你们写机器没停,跟我铺子开着门却不卖货有什么两样?” 陈维明看了他一眼,没有再拿接近百分之百的进程在线率说服众人。 陈维明坐在桌子另一端。他刚带来两份潜在客户名单,本想讨论报价,没料到先听了一堂失败统计课。 “客户不会问这么细。”他说,“他们只想知道你们是不是一直在线。” “那我们更要先知道他们问的‘在线’是什么意思。”苏雨桐说,“如果客户买的是广告资料展示,他关心页面能不能出现;如果图书馆把入口放进检索室,学生关心每次查询能不能返回;如果我们以后承诺服务时段,就必须能解释哪些失败算我们的责任。” 陈维明敲了敲客户名单:“指标越多,合同越难签。” “没有指标,争议只会更难解决。” 马飞一直没有插话。他把七天日志按时间重新排列,发现红线并非随机分布。每天上午九点到十点半、下午两点到四点、晚上九点以后最密集。这三个时段分别对应高校机房开放、单位资料室使用和个人拨号上网。 更值得注意的是,磁盘队列最长的时段并不总与查询最多重合。 “把抓取端的传输记录拿来。”他说。 自从第二台服务器到货,旧486负责抓取、清洗和索引构建,新服务器负责在线查询,这套分工一直没有改变。机器分开了,工作却仍通过一根网络和同一块查询磁盘重新相遇。增量索引每天完成时间不固定,什么时候构建完,什么时候就开始传。传完以后,发布脚本先校验,再把新旧索引目录改名切换。 第五天下午两点十七分,查询量只排全周第五,失败率却最高。那时正有一份增量索引校验。 “慢查询不是唯一原因。”马飞说,“我们把构建从查询机上搬走了,却没有把发布变成一项可安排的工作。它仍在任何时候闯进来。” 苏雨桐在第五张纸上补了一条铅笔线:“还有锁。切换目录时,新查询要等旧进程放开文件。” “能不能晚上三点统一发布?”学生问。 “可以先试,但不能把三点当成永远的低峰。”马飞说,“我们现在用户少,夜里也少。以后不一定。” 他们定下第一版发布窗口:每天凌晨三点,只允许一份通过完整校验的索引进入候选目录;先用备用端口跑固定查询,再切换指向;如果一分钟内错误率上升,立即退回上一版。发布前后十五分钟不得执行日志压缩和备份复制。 这套规则听上去不复杂,真正写进值班手册却用了三个小时。 “一分钟内退回,谁决定?” “值班人。” “值班人看哪个数字?” “六秒失败率和结果一致性。” “如果失败率升了,但只有一个用户呢?” “少于二十个样本时,跑固定测试集补足。” “退回失败怎么办?” “保留上一版只读副本,不在切换完成前删除。” 每一个理所当然的动词,后面都藏着一个需要被指定的人、条件和退路。 午后,马飞拿着七天故障表去机房核对。他没有只看星辰自己的日志,而是请管理员提供同一时段的出口流量和断线记录。管理员起初不愿意,说别家客户的数据不能给。马飞只要星辰端口的汇总,并答应把使用目的写进申请。 结果又多出一类失败:第四天晚上九点四十一分,机房出口抖动了三分钟。星辰服务器完整生成了结果,却没有全部送到用户端。自己的日志把这些请求记成成功,用户邮件却说页面只显示一半。 “这算谁的?”管理员问。 “故障原因可以属于线路,用户失败仍然属于我们的服务记录。” “那不公平。” “不是拿来罚你的。”马飞说,“是为了下次知道该从哪里查。” 他把线路异常记为外部依赖,并与程序错误分开。责任可以以后依据合同讨论,事实不能因为责任尚未确定就消失。 回到公司时,苏雨桐正在处理另一组数据。她随机抽取了两百次被标记为成功的查询,让志愿测试者只回答一个问题:你得到的结果能不能继续使用? 其中十一人选择不能。 有四次是标题乱码,三次是结果地址已经失效,两次是摘要与目标页面不符,一次返回空结果却没有给出任何说明,还有一次,用户输入中带有生僻字,系统静默删掉了那个字,返回了另一个名字的资料。 在服务器看来,这两百次全是成功:状态正常、页面生成、传输完成。 “我们还缺一层。”她说,“机器成功不等于答案可用。” 陈维明已经离开,会议桌上还放着他没带走的客户名单。马飞拿起最上面一张,背面是某家资料公司的宣传语:覆盖最广,响应最快,准确率最高。 三个“最”都没有说明怎么测。 “先别写准确率。”马飞说,“分成系统可用和结果可用。前者每天算,后者用固定人工样本每周抽查。” “固定样本会被我们优化熟。” “一半固定,一半从真实查询里匿名抽样。” “谁判断相关?” “至少两个人独立判断,有分歧再讨论。” 苏雨桐把这些条件写下,又补了一条:“判断样本不能交给卖商业信息的人挑。” 这条明显是为未来准备。星辰刚有可能挣钱,评估规则就必须先与挣钱的人保持距离。否则某一天,最容易改善的不是搜索结果,而是测试题。 第七天下午六点,他们得到了第一份完整故障表。 最后一个数字核完时,外面正下小雨。苏雨桐那把折叠伞又卡住一根骨,她在门口掰了半天,手指沾上铁锈。马飞本想让她先走,她却把伞靠墙,回来确认二十三次未知失败没有被分进“其他”后消失。 表上没有一个总分,而是四组数字:请求可用率、结果可用抽查率、明确降级比例、未知原因失败数。每一组都附原始记录位置和计算口径。 请求可用率百分之九十二点七。 两百份抽查中,结果可用率百分之九十四点五。 所有失败请求中,只有百分之六十一收到了明确的降级或拒绝说明。 仍有二十三次失败无法确认原因。 这些数字没有一个适合印在宣传单上。 马飞却把表复印了三份。一份贴在机房值班桌,一份贴在公司白板,一份锁进合同资料柜。 陈维明第二天来时,看见那张表,脸色果然不好看。 “你准备让客户也看?” “看口径和与合同有关的部分。”马飞说,“不是把内部日志全给他。” “百分之九十二点七,会把人吓走。” “那就先别卖我们做不到的服务。” 陈维明盯着他,过了一会儿,把名单里最急着买“关键词第一名”的客户划掉,留下了一家愿意按月购买资料展示和访问报告的公司。 “这家不要求你保证自然排名。”他说,“但要知道他的资料展示了多久,用户有没有点开,出故障怎么补。” 苏雨桐把新合同需求写到故障表旁边:“可以谈。展示时长用商业信息页面自己的记录,点击只能当原始信号,不能直接叫效果。” “你们两个真会让钱变难赚。”陈维明苦笑。 马飞把第八天的新纸钉上墙:“先让它变成能重复赚的钱。” 新的记录从零点开始。 凌晨三点,第一份按窗口发布的增量索引通过备用端口测试。切换用时十九秒,没有请求超过六秒,也没有出现新旧摘要混杂。 值班学生在蓝色一栏写下“正常”,想了想,又在后面补上证据编号。 凌晨三点二十,机房电话打回半地下室。林岚照着证据编号复核,新旧版本各抽二十条,没有摘要混杂。马飞在第八张纸的第一格画了一道短蓝线,旁边写十九秒。 桌上还留着陈维明那份客户名单,最上面一家被划掉,第二家旁边写着“按月资料展示与访问报告”。苏雨桐把坏伞撑开晾在门后,雨水沿伞尖滴进搪瓷盆。 天亮前,没有新的红线。值班学生把笔盖扣好,趴在桌边睡了十分钟;那道蓝线还没干透,证据编号清清楚楚留在后面。 第43章 第一张商业合同 五月的雨下得不大,却很会钻空子。 苏雨桐从公共汽车上下来时,右边鞋尖已经湿透。那把用了三年的折叠伞坏了一根骨,风一吹,伞面就翻成一朵黑色的喇叭花。她在路边费了半天劲才把它掰回来,手指沾了一层铁锈。 星辰公司的新办公室在一栋灰楼的三层。楼道窗户关不严,雨丝斜着打进来,把水泥地洇成深一块浅一块。她推门进去,先闻到方便面的调料味,接着才看见陈维明带来的客人。 客人姓高,四十岁上下,穿一件不合季节的深色西装,皮鞋擦得发亮。他身旁放着两个鼓鼓囊囊的帆布资料袋,袋口露出《电子元器件手册》的蓝色书脊。 “苏老师来了。”陈维明站起来招呼。 “别这么叫。”苏雨桐把坏伞靠在门边,“我还没留校。” 高经理也站起来,同她握手。他的手掌干燥而用力,视线却落在她鞋边慢慢扩大的水印上。苏雨桐不自在地把脚往椅子底下收了收。 马飞从小隔间出来,手里端着一只搪瓷缸。缸里不是茶,是刚泡开的面汤。他把缸子放到自己桌角,桌上便有一圈油亮的水汽。 “人齐了。”陈维明说,“高经理的华北技术资料服务部,愿意做星辰改制后的第一家正式商业客户。每月八千,先签半年。” 八千。 屋里安静了一瞬。 八千元可以付一个月机房和带宽,还能剩下一部分发兼职工资。对刚刚公开上线的星辰而言,这不是能写进报纸的大单,却可能是第一笔不靠借款维持的呼吸。 高经理从帆布袋里拿出一沓打印纸。纸上列着他能提供的资料:连接器、继电器、工业控制板、进口替代件,还有几百家供货商的电话和传真。 “我们不卖假东西。”他说,“这些名录是业务员一个厂一个厂跑出来的。你们搜索‘继电器’,把我们的资料放在前面,用户少走弯路,我们也多接电话。很公平。” 马飞翻到最后一页:“放在前面,指商业信息区,还是自然结果?” “用户哪管什么区?”高经理笑道,“第一页就那么大。最上面最好。” 陈维明把一份拟好的合同推过来。第三条写着:星辰为客户提供关键词优先展示服务。后面列了十二个词,却没有说明展示在哪里,更没有说明“优先”是否会改变自然排序。 窗外一辆公共汽车驶过积水,水声像一块布擦过玻璃。 苏雨桐没有坐。她拿起红笔,在“优先展示”下面画了一条线:“这四个字要改。” 高经理看她:“改成什么?” “在与查询相关时,于独立商业信息区域展示。明确标识‘商业资料’,不进入自然结果排序计算。” “那不还是广告?” “是。” “我付钱,当然要比没付钱的人靠前。” “在商业信息区里可以约定轮换和展示位置。”苏雨桐说,“自然结果不能买。” 高经理向后靠进椅子。他来之前大概听陈维明说过这个原则,只是没有想到,在每月八千元真正摆上桌以后,他们还会坚持。 “马总,”他越过苏雨桐看向马飞,“你们现在一天才几千次查询吧?我不是占你便宜。半年四万八,钱按月提前付。等你们有名气了,这个价我也不要求不变。” 马飞低头看合同。面汤的热气已经散了,缸沿浮着一点凝住的油。昨晚他在机房睡了三个小时,早晨回来时,传达室给了他一封母亲寄来的信。信里没问公司有多少用户,只问北京是不是又降温,让他别总拿方便面对付。 那封信还在抽屉里,旁边是本月尚未支付的带宽账单。 钱的重量并不抽象。 它是工资袋,是房租,是苏雨桐湿掉的鞋,是夜里坏一块硬盘后能不能马上买新的。 “自然排序不卖。”马飞说。 高经理的笑淡了:“那我为什么要第一个给你们钱?” “因为我们可以把你的资料整理成能被查找、能核验、能更新的商业信息。每条显示来源、更新时间和联系电话。用户点开后知道这是你提供的,不会误以为星辰替你担保。资料发生变化,我们保留版本;收到投诉,先暂停争议条目。” “你把限制说了一堆,没说能给我多少电话。” “现在不能保证电话数。” 陈维明在桌下踢了马飞一下。动作很轻,桌上的搪瓷缸却晃出一圈汤。 “可以写预计。”陈维明接过话,“按目前查询增长——” “预计也要有依据。”苏雨桐说,“我们只有十八天公开数据,用户分布还在变。点击可以给原始统计,电话成交不在系统里,我们不能冒充知道。” 高经理把打印纸一张张收回去,动作比拿出来时慢。他说自己在中关村跑了九年,听过太多“全国第一”“覆盖百万用户”。难得有人当着客户面承认不知道,可做买卖光诚实不够。 “我回去考虑。”他说。 谈判不到一个小时就散了。 陈维明送客下楼,回来时手里多了苏雨桐那把坏伞。他把伞往墙边一扔:“高经理说你们像两个学校里改论文的,句句要加限定。” “限定错了吗?”苏雨桐问。 “没错。可合同不是论文。” “所以不用准确?” “所以要先让人愿意签!”陈维明把湿外套搭在椅背上,“四万八摆在这里,你们一句保证都不给。客户付钱买什么,买一块写着商业资料的牌子?” 马飞把冷掉的面汤倒进水池。方便面泡得发白,黏在缸底。他用筷子刮了两下,没刮下来。 “他买的是整理、展示、更新和报告。”他说,“我们可以保证自己能控制的事。” “比如?” “收到资料后两个工作日完成格式检查;每条信息保留原始来源;约定关键词出现时,商业区按规则轮换;每周给展示次数、点击记录和异常流量说明;星辰故障导致展示不足,顺延服务时间。自然结果不作保证。” 陈维明没立刻反驳。他拿起红笔,在合同背面写了几行,又问:“资料错了算谁的?” “客户对事实负责,我们对展示与更改记录负责。明显违法或欺诈的信息拒绝上线。” “用户投诉呢?” “先留证,再暂停,双方在约定时间内答复。” “高经理最关心电话。” “可以在商业资料页放一个专用分机号,由他自己统计。我们不替他编成交。” 三个人重新坐下来。这一次没有客户,争论反而更慢。每一条承诺都要问:星辰是否真的能做,谁来记录,失败后怎样补偿。午饭时间过去,楼下卖盒饭的人推车走了。苏雨桐从书包里拿出早上没吃完的两个芝麻烧饼,一人掰了一块。 陈维明咬着干烧饼,说:“公司第一个正式合同,就靠这个庆祝?” “还没签。”苏雨桐提醒。 “你连庆祝都要等证据。” 她笑了一下,把最大的一块递给马飞。马飞没接,说自己吃过方便面。苏雨桐看了一眼水池里没有洗净的搪瓷缸,直接把烧饼放在他账本上。 傍晚雨停了,屋檐还在滴水。三人整理出一份新的合同草案,把“关键词优先展示”改成“相关商业资料服务”。附件一列交付内容,附件二列数据口径,附件三只有五条禁止项:不得购买自然排名,不得购买竞争者名称,不得要求删除负面资料,不得把未经核验的宣传写成事实,不得索取可识别个人的查询记录。 陈维明带着草案去找高经理。 马飞本以为至少要等几天。晚上九点,高经理却自己回来了。他没穿那件西装,换了一件灰夹克,裤脚沾了泥,手里拎着三盒还热的饺子。 “我老婆说,谈生意谈到人家下班都没饭吃,显得我不厚道。”他把饺子放下,“合同我看了。每月八千太高,六千五。先签三个月。” 陈维明正要还价,马飞问:“交付条款都接受?” “自然结果不卖,可以。”高经理说,“但商业区我同类里至少保证轮换公平,不能你以后收了别人的钱,就让我永远排最后。” “写进规则。”苏雨桐说,“同类客户按相关性、资料完整度和轮换展示,不按谁请吃饺子。” 高经理愣了一下,随即大笑。他指着她的坏伞:“饺子不能算,送把伞总行吧?” “也不算。” “那我省了。” 三个月,总额一万九千五百元,按月预付。金额比最初少了一半以上,却是星辰第一份能逐条验收、能开票、能追责的商业合同。 盖章时出了一个小麻烦。新公司的公章锁在抽屉里,钥匙在负责工商手续的兼职会计手上。晚上十点,谁也联系不上她。四个人只好把签字页夹好,约第二天早上再盖。 饺子已经凉了。没有醋,苏雨桐从茶水柜里找到半瓶酱油。高经理把资料袋当凳垫坐着,讲他年轻时骑自行车给工厂送产品目录,冬天手冻裂,翻一页纸都疼。陈维明说自己第一次卖交换机时,把型号末尾一个字母报错,坐了六小时火车去道歉。 马飞很少讲过去,只说研究所食堂星期三的茄子最好吃,因为大师傅那天心情好。苏雨桐问他怎么知道大师傅的心情,他说茄子少放半勺油就是证据。 众人笑起来。笑声穿过没装隔音的门,惊动了楼道里躲雨的猫。 第二天九点零七分,公章落在纸上。 红色印泥比想象中浅,会计又补压了一次。高经理拿走一份,星辰留下两份,一份放合同柜,一份交给财务。第一笔六千五百元不会当天到账,开票、递交、转账还要经过各自的流程。 陈维明仍把签约日期圈在日历上,说这是公司的第一张商业合同。 苏雨桐把“第一”两个字划掉,只留下“可验收”。 马飞没有阻止她。 下午,华北技术资料服务部的第一批数据送到。不是整齐的数据库,而是两只帆布袋里的纸、软盘和传真复印件。电话号码有新有旧,厂名有简称有全称,同一种连接器用了四套型号写法。 合同已经盖章,真正的工作才刚刚露出样子。 窗边,那把坏伞还在滴最后一滴水。 苏雨桐把它撑开晾在暖气片旁,找来一根细铁丝,把断掉的伞骨一圈圈绑好。她试着开合两次,伞面仍有些歪,却不再会被风一下吹翻。 马飞看着她修伞,忽然觉得这份合同也像那把旧伞。 它不漂亮,挡不了所有风雨,更不可能让星辰一夜富起来。 但下一场雨来时,他们至少不必完全淋着走。 第44章 不值钱的点击 合同生效后的第三天,高经理送来一面锦旗。 红绸,金穗,上面八个字:信息架桥,商机万里。 锦旗卷在报纸里,被一名业务员夹在自行车后座送到星辰。那天风大,报纸一路被吹开,等送到三楼,最外面一层已经沾满尘土。业务员把它挂到墙上,正好遮住半张故障表。 苏雨桐站在门口看了一会儿,搬来椅子,把锦旗往右挪了半米。 “这是客户心意。”陈维明说。 “故障也不能被心意挡住。” 锦旗最终挂在饮水机上方。每次有人接水,金色流苏就被热气吹得轻轻晃。 华北技术资料服务部的商业信息已经上线七十二小时。第一份报告显示,十二个关键词一共触发展示一千零六十三次,用户点击二百八十四次。高经理拿着报告来公司,进门时脚步比签合同那天轻快得多。 “二百八十四个客户。”他说,“三天。照这个数,一个月能有两三千。” 马飞把“客户”改成“点击”。 “不都一样吗?” “不一样。一个人可以点很多次,也可能点错。” “点错也是看见了。” 高经理把报告拍在桌上,纸角震得向上翘。他已经让财务按二百八十四次潜在客户计算回报,还给业务员开了早会,要求每个人把网址印到名片上。 陈维明在旁边打圆场:“数字刚出来,先看看明细。高经理,点击多总比没有强。” “当然强。”高经理说,“下一期我愿意改成按点击付。点一次五毛,只要真有这么多,比固定服务费合算。” 三天前,按点击收费还是星辰不敢承诺的事。现在二百八十四摆在纸上,它突然变成一笔看得见的钱:一百四十二元。若以后流量增长十倍、百倍,每一个轻轻的鼠标动作,都像能从屏幕里掉出硬币。 马飞却注意到明细里一个奇怪的时段。 第二天下午四点十二分到四点二十分,“继电器”商业资料被连续点击六十七次。来源地址相同,浏览器标识相同,每次间隔五到十秒,点开后停留时间极短。 “这是哪儿的地址?”他问。 苏雨桐已经把机房日志与合同资料里的联系地址对过:“高经理公司的拨号出口。” 高经理的脸色变了。他转头看送锦旗来的业务员。年轻人耳朵一下红起来,手指不停搓自行车钥匙。 “我就点了几下。”业务员说。 “六十七下?” “我让办公室的人都看看新页面。有人没打开,就多试了几次。” “谁让你们点的?”高经理问。 年轻人低下头。答案不说也很清楚。报告要好看,锦旗要送得及时,合同要证明签得值。没有人明确说去造假,可每个人都知道什么数字能让老板高兴。 苏雨桐把六十七次单独标成灰色:“不能算独立访问,也不能直接算无效。我们只知道来源集中,不知道每一次是谁点、为什么点。” 高经理脸上挂不住:“自家人看看网页,怎么就不值钱了?” “对检查上线有没有错误有价值。”她说,“对判断客户兴趣没有同样的价值。” “那你们告诉我,剩下二百一十七次值多少钱?” 没有人立刻回答。 鼠标点下去只需要一瞬。背后可能是一个真正寻找连接器的采购员,可能是误触,可能是同行查价格,也可能是机房里闲得无聊的学生。日志只能留下时间、请求和有限的网络信息,不能把动机一起装进硬盘。 马飞记得未来的广告系统会用更庞大的数据判断点击质量,也记得作弊与反作弊会像影子一样追逐多年。但在1998年,星辰既没有足够样本,也没有资格因为想收费就假装看透屏幕后的人。 “现在回答不了。”他说。 高经理冷笑:“你们报告上印了二百八十四,又说回答不了。那这张纸有什么用?” “它证明页面被请求了二百八十四次,也证明其中六十七次来自同一出口。再多的话,证据不够。” “做生意总要有个说法。” “可以有,但不能把猜测写成事实。” 那场谈话不欢而散。高经理走时把锦旗留在了墙上,业务员推着自行车跟在后面,连头都没抬。 下午,办公室出奇地安静。雨后的阳光照进来,桌上每一道划痕都很清楚。陈维明合上门,说马飞至少应该先把客户哄住,再私下调整报告。 “他付钱,不是来听我们说不知道的。” “他付钱买可复核的交付。”马飞说。 “可复核不等于什么都不判断。” “所以我们要判断方法,不是先给数字定价。” 陈维明烦躁地在屋里走了两圈,最后停在锦旗前:“我也不想卖假数。但你知道我为什么急吗?设备的第二笔款下周到期。高经理若续约,现金能接上;他不续,我们又得拆东墙。” 他说完,从公文包里拿出一张小学校费通知单。纸被折成四折,边缘磨得发白。 “我女儿九月上一年级。她妈让我少在外面喝酒,把钱留下来交赞助费。”他把通知单塞回去,“我不是每次都只想控制公司。我也想这东西早点挣到真钱。” 马飞第一次听他提女儿。陈维明过去总穿着合身西装、带着客户名单出现,像生活里只有谈判桌。那张薄薄的通知单让他的催促突然有了另一层重量。 “我知道。”马飞说。 “你不知道。你没孩子。”陈维明顿了顿,“不过算了。” 他走后,马飞在抽屉里找到母亲那封信。信纸上有家里饭桌留下的淡油印,最后一行说院里的石榴树开花了,今年也许能多结几个。马飞已经读了三遍,还没回。 他拿出信纸写了开头:妈,北京挺好,公司刚签了第一个客户。 写到这里,他不知道该怎么解释“挺好”。服务器夜里会亮红灯,账上每一笔钱都有去处,员工吃冷饺子,客户为了六十七次点击发火。但他也确实觉得,事情在向前走。 苏雨桐从学校回来时,看见他对着信纸发呆。 “给家里写信?” 马飞把纸遮了一下,又觉得这个动作可笑,便松开手:“嗯。” “你可以写,公司有一面锦旗。” “我妈会问锦旗能不能换钱。” “阿姨很实际。” “她会先问我吃饭没有。” 苏雨桐从书包里拿出一个铝饭盒。学校食堂的西红柿炒鸡蛋,已经被一路颠得汤汁四溢。她把一半拨进马飞的搪瓷缸,自己留下一半。 “那你现在可以诚实回答了。”她说。 两人坐在窗边吃饭,边吃边重新看二百八十四次点击。去掉内部集中访问后,他们发现还有十四次来自星辰办公室自己的测试,九次是同一用户在页面加载失败后重复点击,三十一次没有成功打开目标页,因为高经理提供的服务器在晚间断线。 “按点击收费,会把所有人推向同一个方向。”苏雨桐说,“客户想让点击多,我们想让计费多,甚至故障造成的重复点击也会变成收入。” “那先不按点击。” “固定服务费也要报告,不然只是换个方式含糊。” 他们拟出第一版点击说明:不把点击称为客户;合并短时间内同一来源的重复动作,但保留原始记录;标注公司内部和客户内部访问;目标页未成功打开的单独列出;不使用能直接识别个人身份的信息;报告同时给出口径变化。 更重要的一条是,星辰暂不采用按点击计费。合同仍按固定服务费执行,点击只作为改善资料和页面的参考信号。 第二天,两人去了高经理的公司。 那是一间临街门面,前屋摆产品目录,后屋架着两台传真机。空气里有复印纸的热味。昨天那名年轻业务员正蹲在地上给自行车补胎,手指黑得看不出指甲。 高经理没请他们进办公室,就在柜台边听完说明。他对“暂不按点击收费”很不满意,却在看到目标页断线三十一次时沉下了脸。 “我们自己的网页打不开?” “晚上七点到八点半最严重。” 年轻业务员小声说,那段时间办公室下班,拨号线路经常被人拔掉接传真机。他以为资料上传以后就一直在网上,不知道用户点进来还要访问这台机器。 高经理蹲下来问:“昨天六十七次,是不是我早会说点击越多越好,你就让大家点?” 业务员不敢看他:“我想让合同续上。” 高经理沉默了一会儿,没有当着众人骂。他让业务员先把轮胎补完,下午一起解决线路。然后他对马飞说,第二个月合同照旧,但报告要把打不开的次数也给他。 “好看不好看都给?”马飞问。 “都给。”高经理咬了咬牙,“锦旗已经送了,总不能因为数字难看再拿回来。” 离开时,那名业务员追出来,送给苏雨桐一只新的伞骨卡扣。他说修自行车的铺子也修伞,这个不用钱。 苏雨桐没有拒绝。她当街把卡扣装到旧伞上,开合一次,伞终于不歪了。 回程公共汽车很挤,马飞和她一路站着。车窗上贴着褪色的饮料广告,售票员从人缝里挤过来,胸前铁皮票夹叮当作响。 苏雨桐扶着吊环,忽然问:“如果以后一个点击真的值很多钱呢?” “那就会有更多人想办法让它看起来发生过。” “包括我们自己。” “所以今天的原始记录和口径不能丢。” 车在路口急刹,所有人一起向前晃。马飞下意识护住她手里的伞,自己的额头却撞在扶杆上。苏雨桐先是一惊,随即忍不住笑。 “一个点击多少钱不知道,”她说,“你这一下至少值一个包。” 额头很快鼓起一小块。回到公司,陈维明看见后问他们是不是和客户打架了。苏雨桐把新的报告模板放到他面前,说架没打,第二个月也续了,但按点击收费取消。 陈维明摸摸下巴:“那这包白挨了。” “不白挨。”马飞把内部测试的十四次点击也划掉,“至少知道,有些数字看起来像钱,其实连一次真正的选择都不是。” 墙上的锦旗仍然鲜红。 下面新贴了一张不起眼的白纸,写着点击报告的计算口径。 来公司的人大多先看锦旗,很少有人停下读那张白纸。 可马飞知道,未来真正决定星辰能走多远的,未必是墙上最显眼的那一块红色。 也可能是红色下面,那些承认什么还不知道、什么暂时不值钱的小字。 第45章 一百一十七次拒绝 六月第一场闷雷滚过北京时,星辰办公室停了电。 不是机房停电。三楼这栋旧楼的保险丝烧了,吊扇转得越来越慢,最后停在众人头顶。窗户全打开也没有风,打印机里刚吐出一半的纸卡在滚轴上,像一条没说完的话。 机房电话随即响起。 值班学生摸黑接起来,听了几句,捂住话筒:“有人说自己被我们封了,非要找负责人。” “问工单号。”马飞说。 “他说没有。页面只写访问过于频繁,请稍后再试。” 马飞接过电话。对面是个年轻男人,语速很快,背景里还夹着儿童哭声。他说自己在一家小型机械厂做资料员,厂里准备修一台进口数控机床,他用星辰查伺服驱动器型号。拨号上网按时计费,连接一次不容易,他习惯把十几个词提前写好,连上以后快速逐个搜索。昨晚查到第七个,页面突然拒绝,重新拨号仍然不行。 “你们是不是把我当坏人了?”他问。 “现在还不能确定是哪条规则触发。”马飞说,“把大概时间和查询词告诉我,我们查记录。你的姓名和工厂名称可以不留。” “不留你怎么回复?” “留一个你愿意提供的联系方式,单独放在工单里,不和查询记录混在一起。” 对方迟疑片刻,报了传呼号。 停电恢复前,雷雨先落下来。豆大的雨点砸在铁皮窗台上,办公室里终于凉了一点。大家把桌椅往里挪,还是有半面故障表被溅湿,红蓝铅笔线在纸上慢慢晕开。 苏雨桐用报纸吸水,发现“明确拒绝比例”那一栏正好糊掉了。 “像是提醒我们重算。”她说。 正式上线首日记录的三千八百四十二次查询里,有一百一十七次被系统拒绝。当时团队正忙着处理容量故障,只把拒绝当成保护服务器的必要动作。规则很简单:同一来源在短时间内请求过多,就延迟;继续请求,就拒绝半小时。 在压力测试里,这条规则有效阻止了测试程序失控。进入真实网络以后,“同一来源”却不一定代表同一个人。学校机房几十台电脑可能共用出口,一家单位也可能只有一个拨号账户。相反,一个人重新拨号,又可能得到新的地址。 那名机械厂资料员的记录很快找到。他在两分四十秒内发出七次不同查询,每次都完整等到了结果,只是间隔短。第七次以后触发了限流。没有恶意程序,没有重复刷新,也没有试图下载整站。 “他只是手快。”值班学生说。 苏雨桐看着窗外的雨:“也可能是电话费贵。” 她自己去学校机房查资料时,也会先在纸上列好关键词。按分钟计算的上网费让每一次停顿都有价格。程序把快速查询解释成可疑行为,实际上惩罚的可能只是一个想早点断线的人。 一百一十七次拒绝中,多少属于这种情况? 电恢复后,马飞没有立刻改限流参数。他们先把记录按行为拆开:相同查询连续重复、不同查询快速提交、翻页请求、抓取大量结果、失败后重试、多人共用出口。原先被挤在同一个数字里的动作,分成六摞打印纸。 最厚的是失败后重试。 “这一百一十七不能全算防住了滥用。”马飞说,“有一部分是我们先失败,再拒绝他们。” 陈维明靠在窗边扇合同副本,衬衫后背湿了一片:“可你也不能什么都放。前天有人一次拉走上千条结果,明显是来抄数据。” “所以分开。” “怎么分?每个用户先打电话自我介绍?” 苏雨桐把机械厂资料员的七个查询写在黑板上,旁边写另一组记录。另一组在一分钟内重复请求同一个词一百二十次,翻页顺序从一到五十,间隔精确得几乎没有抖动。 “人会受页面速度、阅读和输入影响。”她说,“程序更规律。但规律只能增加风险,不能证明身份。” 她建议设置多层处理:普通快速查询先延迟并提示;同一会话的失败重试不重复计入;规律性批量翻页降低速度;明显持续抓取才短时拒绝。学校和单位的共享出口不能一封了之,要结合会话和请求模式。 “会话怎么认?”学生问。 “给浏览器一个随机编号,不要姓名。定期失效,不跨用途使用。” “那我们就能知道他搜过什么。” “所以查询日志和联系方式必须分开。”苏雨桐说,“能不留的字段不留,需要调试的只保留一段时间。不是因为硬盘能装下,就可以永远保存。” 陈维明抬头:“查询词很值钱。客户想知道大家在找什么。” “分布统计可以做。”马飞说,“个人轨迹不能卖。” “你们又给未来收入砍一刀。” “先砍掉不该卖的。” 雷声渐远,屋里重新热起来。保险丝虽然换了,吊扇却只肯用最低的一档转,扇叶每转一圈便发出轻微的咔嗒声。众人讨论到晚饭时间,谁也不愿再吃方便面。马飞提议去楼下小馆,结果刚走到门口,又有电话进来。 这次是学校机房老师。二十多名学生同时上检索课,星辰把整个机房的出口限速了。老师没有发火,只问以后上课前是否需要提前报备。 “不需要。”马飞说,“公开搜索不能要求正常用户预约。” 挂掉电话,他把钱包递给值班学生,让他买四碗炸酱面带回来。学生问要不要加肉丁,马飞看了一眼钱包里的零钱,说都按普通的。 苏雨桐把钱包推回去:“今天我发了论文翻译费,我请。” “公司加班饭,公司出。” “那就记账。你别每次用自己钱包装公司的大方。” 她从抽屉里拿出一本薄账册,在“临时餐费”后写下日期和金额上限。陈维明看得直摇头,说四碗面也要立规矩。苏雨桐说,正因为是四碗面,才最容易没人记;等到四台服务器、四十个人,谁也说不清公司和创始人的钱从哪一刻混在一起。 面送回来时已经坨了。塑料袋底积着汤,四只一次性筷子只有三只能掰开。陈维明用两根圆珠笔夹着面吃,边吃边看新的拒绝页面文字。 原来的提示只有一句“访问过于频繁”。新的版本说明等待时间、可能原因和工单入口,还明确写着:本次限制不代表对用户身份或意图的判断。 “谁会读这么长?”陈维明问。 “被挡住的人。”机械厂资料员在回访电话里回答了同样的问题。 新的规则先在备用端口运行。马飞让人模拟机房二十台电脑共用出口,苏雨桐模拟快速输入不同查询,学生运行自动翻页脚本。正常用户的请求被适度排队但没有整段封禁,规律抓取则很快降到每分钟只能取少量页面。 测试结束后,他们给那名资料员发去传呼,请他再次拨号试用。 半小时后,对方回电。他顺利查完了十二个型号,其中两个没有结果。 “没结果没关系。”他说,“至少别在我电话费最贵的时候,说我是坏人。” 苏雨桐把这句话写进故障表旁的空白处。 随后是那所高校。机房老师组织同样的检索课,二十三台机器共用出口,只有两次请求因过快翻页被短暂延迟,没有整间机房一起被封。 真正的自动抓取也没有消失。新规则上线当晚,一个来源连续变换拨号地址抓取商业资料。它避开了单一地址限制,却在请求顺序和间隔上留下相似模式。团队没有追查个人身份,而是限制了批量翻页可取得的字段,并给商业资料页加上来源与使用说明。 “挡不死。”值班学生说。 “本来也没有一条规则能挡死。”马飞说,“我们只能提高成本,同时别把正常人先挡在外面。” 一周后,一百一十七次拒绝被重新分类。二十九次属于明显自动抓取,十六次无法确认,二十四次是共享出口连带影响,四十八次源于故障重试或正常快速查询。 这个结果比“成功拦截一百一十七次异常访问”难看得多。 陈维明却没有再要求改成宣传语言。他从女儿的作业本上撕下一张没写过的方格纸,抄走四个数字,说回家前要去见一位客户。 “我怎么解释?”他问。 “就说我们发现规则误伤,已经改了。”苏雨桐说。 “客户会问,怎么保证以后不误伤。” “不能保证为零。保证记录、复查和申诉。” 陈维明把纸折好:“限定真多。” 他说这句话时已经没有生气,倒像渐渐学会了一种星辰特有的方言。 晚上十点,办公室终于空下来。雨后的空气仍闷,街边传来西瓜摊贩的吆喝。马飞关掉电脑,发现苏雨桐还在修那半张被雨水洇花的故障表。 “重抄一张吧。”他说。 “颜色的位置还看得出来。” “纸都皱了。” “皱了也是原件。”她把纸铺在两本厚书之间,“等压平再贴回去。” 两人下楼买了半个西瓜。摊主用旧报纸包住切面,又额外送了一只小木勺。西瓜不算甜,靠近瓜皮的地方还有点生。他们坐在楼门口的台阶上,一人挖一边,谁都不想再上楼拿碗。 马飞说起机械厂资料员那句“别说我是坏人”。 “程序不会骂人。”他说,“可规则给出的待遇,会让人知道自己被当成什么。” 苏雨桐用木勺刮下一小块瓜瓤:“所以拒绝也得留一扇门。” “门后要有人。” “有人就要工资。” “先记在账上。” 她笑了:“你终于学会了。” 街灯下,来往自行车的铃声一阵一阵。谁也没有谈可回收火箭,也没有谈改变世界。两个人只把半个不太甜的西瓜吃干净,把瓜皮扔进垃圾桶,再回楼上确认夜间值班的人知道新申诉流程。 一百一十七次拒绝没有消失。它们被留在日志里,成为星辰第一批关于边界的证据。 系统需要有拒绝的能力,否则会被少数请求拖垮。 但拒绝不能成为一句没有来路的判决。 这是他们在那个闷热雨夜得到的另一条规则:保护服务,不等于把每个被挡住的人都写成敌人。 第46章 三十天不关机 第三十天的凌晨,马飞是在机房地板上醒来的。 他身下垫着两只拆开的纸箱,头枕一卷还没用完的网线。空调风从机柜底下钻出来,吹得左肩发麻。他睁眼时,先看见服务器指示灯在黑暗里有节奏地闪,随后才听见有人用钥匙轻轻敲铁门。 苏雨桐站在外面,另一只手提着保温桶。 “你不是答应只值前半夜?”她问。 马飞坐起来,脖子僵得转不动:“林师傅家里孩子发烧,我替到早上。” “哪位林师傅?” “机房夜班电工,不是我们的人。” “所以你连机房电工的班也替?” “他没让我替。我只是留下看切换。” 苏雨桐把门打开,将保温桶塞进他怀里。里面是小米粥和两个茶叶蛋,粥已经不烫,表面结了一层薄薄的米油。她本来要赶早班车去学校交材料,绕到机房只为确认第三十天最后一次发布。 “先吃。”她说,“你手在抖。” “冷的。” “七月的北京,你说冷?” 马飞低头剥蛋壳。第一块没剥好,连蛋白一起带下来。他确实累了。过去一个月,星辰把值班从“谁正好没回家”改成正式轮班,创始人却仍在所有空格里写自己的名字。别人不敢填的凌晨,他填;发布窗口,他填;周末,他也填。 表面上,这是最可靠的人守最危险的时段。实际上,公司仍把能否平安过夜绑在一个人的清醒上。 苏雨桐从包里取出值班表,摊在纸箱上。马飞的名字出现十七次,超过其他人总和。 “连续三十天服务,不是让你连续三十天不睡。”她说。 “过了今天再调。” “每次都过了今天再调。” 她的语气不重,马飞反而不知道怎样辩解。他喝了一口粥,米粒软得几乎没有形状。小时候母亲也会在他生病时煮这种粥,熬得太稠,就添一勺凉水,说这样好入口。 “谁煮的?”他问。 “宿舍楼下的早点摊。” “我还以为——” “以为什么?” “没什么。” 苏雨桐看了他一眼,把另一只茶叶蛋拿走:“那你少吃一个。” 凌晨三点整,候选索引开始校验。这是连续服务目标期内的最后一次计划发布。过去二十九天,他们经历过线路抖动、磁盘告警、恶意抓取和一次误删缓存目录,却没有再出现无法说明的长时间空白页。 第三十天偏偏不肯安静。 三点零七分,备用端口的固定测试集中,有两条查询返回的中文摘要缺了最后一个字。正文内容没有损坏,标题和地址也正常,但摘要边界在新版本里发生变化。 值班学生拿着电话请示:“要不要切?不影响找结果。” 马飞看表。按计划,三点十五分前不切,就要等到下一天。距离“连续三十天”完整闭合只差不到五个小时。如果放弃发布,旧索引继续服务不算中断;如果带着小问题切换,指标也未必马上变差。 真正让人犹豫的,是墙上那张倒计时。 三十天目标结束后,陈维明约了潜在客户来公司。宣传材料已经印好,写着“连续三十天稳定在线”。任何人都不愿在最后几小时承认候选版本不能发。 “不切。”苏雨桐说。 学生在电话里等马飞决定。 马飞盯着两条少字的摘要。问题很小,小到用户也许不会投诉。但星辰在发布流程里写的是:固定测试集全部通过。规则如果只在顺利时有效,就不叫规则。 “取消这次发布,旧版继续服务。”他说,“候选目录保留,白天查摘要边界。” 三点十二分,发布记录写上“未通过”。服务器没有重启,用户也没有感到变化。第三十天仍在继续,只是墙上的记录多了一笔不漂亮的失败。 苏雨桐赶去学校前,把值班表从纸箱上收起:“下午我回来开会。不是庆功,先改轮班。” “你论文材料交完了?” “今天交。” 马飞这才想起,她为了公司凌晨赶来之后,还要挤一个多小时公共汽车去学校。星辰的三十天也从她的生活里拿走了许多清晨与周末。 “我送你。”他说。 “你先回去洗澡。”她皱了皱鼻子,“机房味都腌进衣服了。” 早上七点,马飞离开机房。阳光已经晒热路面,早点摊前排着队。他在公共浴室洗完澡,回到自己租住的小房间,只来得及把湿毛巾搭到椅背,就倒在床上睡着。 十一点,电话把他吵醒。 母亲从老家打来,问上次寄去的咸菜收到了没有。马飞看向门边,包裹还原样放着,麻绳都没解。 “收到了。”他说。 “吃了?” “吃了。” “萝卜咸不咸?” 他答不出来。 电话那边沉默两秒。母亲没有拆穿,只说天热,开罐后要放凉处,别舍不得吃坏了。然后问公司忙不忙,身体怎么样。 马飞看着窗台上一排空方便面盒,忽然觉得“挺好”两个字说不出口。 “忙。”他说,“但能做下去。” “能做也得睡觉。” 这句话与苏雨桐早晨说的一样。马飞笑了一声,答应今晚不去机房。挂电话后,他拆开包裹。玻璃罐外裹着旧毛衣,旁边塞了两包晒干的石榴花。母亲在纸条上写,泡水喝,去火。 下午的会议没有蛋糕,也没有香槟。陈维明买了两串冰棍,走到公司时化了一半,白色糖水顺着塑料袋往下滴。每个人拿一根,剩下的放在搪瓷盆里,盆底很快积了一汪甜水。 墙上的大钟走到四点十六分,距离正式上线恰好三十天。 值班学生鼓掌,陈维明也拍了两下。马飞把最终统计贴出来:三十天内没有全站中断;发生三次局部降级,最长四十三分钟;计划维护两次,均提前公告;有效请求可用率逐周提高;仍有七次失败原因不能完全确认。 “这算不算连续三十天不关机?”兼职学生问。 “机器有过计划重启。”苏雨桐说,“但用户总有一套可用的旧索引服务。我们完成的是连续可用,不是永不关机。” 陈维明拿起已经印好的宣传页。那句“连续三十天稳定在线”太容易让人理解成零故障。新印一批要花钱,直接用又违背刚建立的口径。 他掏出钢笔,在“稳定在线”后逐张补了一颗小星号。 页脚写:含两次公告维护与三次局部降级,详细口径可索取。 五十多张宣传页,他写到第二十张时手腕就酸了。苏雨桐把剩下的一半拿过去,两人一个写前半,一个写后半。 “下次印之前先看数据。”陈维明说。 “这句话应该贴在你桌上。”苏雨桐回答。 冰棍吃完,庆祝也就结束了。真正的会议开始讨论轮班。 马飞提出自己继续负责所有发布窗口,被一致否决。值班学生说,如果流程只有马总敢操作,说明手册没写完;苏雨桐则把十七次夜班圈出来,要求任何人一周不得连续值两个通宵,创始人也包括在内。 “出了事谁负责?”马飞问。 “当班人按流程处置,重大变化两人确认。”苏雨桐说,“你负责让系统不依赖你。” 这句话刺得他不舒服。前世在火箭项目里,责任曾被层层分割,最终没有人看见完整事故链。他重生后本能地想把所有关键环节握在自己手里,以为这样就不会再漏掉那三点七秒。 可一个靠某个人永远清醒才安全的系统,本身就是另一种事故隐患。 马飞沉默许久,把发布权限表推到桌子中央:“两周内,至少三个人能独立完成回退。我不在场也要演练一次。” “这才是三十天之后该做的事。”苏雨桐说。 傍晚,他们去街口吃饭。小馆里没有空调,老板把电风扇架在冰柜上,吹得菜单啪啪作响。陈维明坚持点一道红烧肉,说合同回款快到了,不该再用凉面庆祝。 菜上来后,众人却先抢拍黄瓜。红烧肉肥得发亮,谁吃两块都慢下来。 苏雨桐从包里拿出学校的材料回执,放到桌上。她的论文手续终于办完,接下来可以选择留校参与课题,也可以把更多时间放到星辰。 “你怎么选?”马飞问。 “还没选。” “公司需要你。” “学校也有我自己的题。” 她说得平静,桌上的人却都听懂了。七个百分点的权益和核心负责人身份,没有让她自动放弃另一条路。 马飞夹了一块肉,放到自己碗里:“那就按你原来的条件,先把两边时间写清楚。不是今晚决定。” 苏雨桐看着他,眼神松了一点:“你今天学会两件事。” “哪两件?” “服务器可以关,人也可以下班。” “还有呢?” “不知道。第二件等你真做到再说。” 众人笑起来。饭后马飞按承诺没有去机房。他提着母亲寄来的咸菜回公司,把罐子放进阴凉的资料柜下层,又在上面贴了一张纸:私人食物,非公司资产。 第二天,所有人都拿这张纸取笑他。 第三十天已经过去,服务器仍在运行。但墙上的倒计时被取下来,换成一张没有终点的轮班表。 马飞终于明白,稳定不是咬牙撑过一个纪念日。 它是允许机器维护,允许人睡觉,允许一次候选发布在最后时刻被诚实地判定失败;也是在创始人不在机房时,系统仍能按同一套证据和规则继续运转。 这比“不关机”难得多。 也比一个漂亮的数字,更接近一家真正能活下去的公司。 第47章 现金流第一次转正 一九九九年的第一场雪落下来时,兼职会计把一把零钱倒在会议桌上。 硬币滚得到处都是。两枚一角碰在一起,转了几个圈,最后停在陈维明的合同本旁边。还有几张被揉皱的纸币,五元、两元、一元,边角沾着机房附近小饭馆的油渍。 “这是上个月备用金剩下的。”会计说,“三十七块六毛。” 她姓周,平时在一家国营商店做账,晚上来星辰两次。年末商店盘货,她已经连着一周睡不到五小时,今天把算盘带来时,外面的布套都忘了取。 马飞把硬币一枚枚拢进小铁盒。周会计则从帆布包里拿出四本账:银行存款、现金、应收款和陈维明那笔尚未全部偿还的债权。账页之间夹着发票、餐费单、机房收据,有一张出租车票被汗浸得只剩半个日期。 “先说坏消息。”她推了推眼镜,“十二月账上看着有利润,不等于有钱。两家客户的服务已经做完,款没到;服务器折旧你们以前没按月提;还有马总垫付的几笔夜班车费,一直没报。” 陈维明正在用手炉烘手,听到“没钱”两个字便坐直了:“我上午刚看过银行回单,怎么会没钱?” “我说的不是一分钱没有。”周会计耐着性子解释,“是别拿收入减眼前支出,就说公司赚了。欠的、该摊的、下月必付的,都算进去才知道。” 窗外雪越下越密。办公室暖气不热,众人穿着外套开会。苏雨桐把手藏在袖口里,只露出握笔的三根手指。她这学期在学校承担两次助教课,每周仍有两天必须回实验室;公司这边的检索评估和商业资料审核也没少。桌边放着她母亲寄来的毛线团,深绿色,准备周末织一副手套,起了三次针都没织出手腕那么长。 “把能动的钱算出来。”马飞说。 周会计在算盘上拨珠。清脆的声音一阵紧一阵慢,像屋檐滴下来的雪水。 搜索商业资料固定服务费、定制检索报告、两家高校镜像维护费,是十二月实际到账的三笔收入。减去机房、带宽、工资、兼职费、税费预留、设备折旧和债务利息,再扣除已经发生但尚未报销的费用,余下三千四百二十元。 “这才是你们这个月经营活动留下的钱。”周会计说,“第一次是正数。” 没人立刻说话。 三千四百二十元放在任何大公司都不值得开会。它买不起一台新服务器,也不够付全体成员一个月工资。可从半地下室里的二手486开始,星辰一直靠马飞的积蓄、陈维明的借款和客户预付款穿过每个月。如今,搜索服务第一次在支付当期成本后留下了钱。 值班学生小声问:“是不是该发奖金?” 陈维明笑了:“你这耳朵只听见‘正数’。” 学生脸红起来:“我就问问。” “该问。”马飞说,“但先把账说完。” 应收款仍有一万一千元,其中一笔逾期十六天。下月带宽费用会因为访问增长上调。服务器硬盘已经运行超过一年,备件只剩一块容量较小的旧盘。春节期间若要维持服务,值班补贴和出租车费用都要增加。 三千四百二十元不是可以随意分掉的利润,而是一层很薄的冰。 “我的建议,”周会计说,“先留足一个月刚性支出,逾期款没收回来前,不要新增长期承诺。” 马飞从抽屉里拿出那本七年路线图。纸边已经翻得发毛。按照原先设想,搜索在一九九八年发布,一九九九年广告盈利,二〇〇〇年开始支付预研与火箭技术储备。过去几年,几乎每个节点都比一行字复杂。如今收入终于越过支出,他第一个念头不是奖金,也不是换办公室,而是把一部分钱转进标着“先进工程”的格子。 前世火焰中的三点七秒从未真正离开。 “拿一千元做技术储备。”他说,“单独记账,只能买资料、计算和基础验证需要的东西。” 陈维明把手炉放下:“刚转正就抽钱?” “不是成立火箭公司,只是开始准备。” “搜索现在连一块新硬盘都舍不得买。” “所以只拿一千。” “一千也能付好几个月夜班车费。” 会议室里的暖气忽然响了一声,管道里像有人敲铁。苏雨桐没有帮任何一方。她把三千四百二十分成几个格子,问马飞:“如果一月经营现金流重新变负,这一千能不能动?” “不能补日常经营。” “那如果硬盘坏了?” “先用运营储备。” “运营储备不够呢?” 马飞停顿了一下:“先进工程储备暂停,钱转回救服务。” “那它就不是不能动。”陈维明抓住了矛盾。 “它有停止线,不是神龛。”苏雨桐说,“问题是条件要写清楚。” 最终,三千四百二十元被分成三部分:两千元留作运营缓冲,一千元进入先进工程预研储备,四百二十元作为春节值班补贴。若账面可用现金低于一个月刚性支出,预研采购自动暂停;若连续两个月经营现金流为负,未使用储备转回运营。 兼职学生得到的奖金,是春节每个夜班多十元。 他算了算,笑着说够买两斤猪肉。周会计纠正,节前肉价已经涨了,未必两斤。众人又笑,紧绷了一上午的肩膀终于松开。 会议结束后,马飞跟陈维明去催那笔逾期款。 客户办公室在城南,两人先坐公共汽车,再换一辆拥挤的小巴。雪水被乘客鞋底带进车厢,地板滑得站不稳。陈维明护着装合同的皮包,马飞抱着一摞服务报告。小巴暖风坏了,车窗内侧结着白雾,每到一站,售票员就用袖子擦出一块圆孔看路牌。 “你以前在研究所,也这样追过钱吗?”陈维明问。 “追过试验数据,没追过应收款。” “哪个难?” “数据不会说领导不在。” 陈维明笑了两声,随后教他见财务时别先谈梦想,也别说公司困难。要把合同、交付、验收和付款日期依次摆出来,让对方知道这笔钱不是人情。 客户财务果然说负责人出差,付款单还缺一个签字。陈维明没发火,只请她在服务报告上确认收件时间,又问负责人哪天回来、付款批次哪天截止。马飞第一次看见他把谈判里的急迫藏得如此严实。 从楼里出来时,天已经黑了。两人站在公交站吃烤红薯。红薯刚出炉,烫得拿不住,陈维明左右手来回倒。 “钱不是签合同那天挣到的。”他说,“到账才算。” “周会计说,到账也不全算。” “她是怕我们高兴。” “你是怕我们不敢花。” 陈维明把红薯掰开,白气冒出来:“都得有人怕。公司才能活。” 回程路上,客户负责人通过传呼回电,答应三天内补签。钱仍未到账,但至少有了日期。 晚上,苏雨桐在办公室等他们。她已经把先进工程储备的第一页账目画好,只有三栏:用途、证据、停止条件。 “你想先买什么?”她问。 马飞没有写发动机,也没有写火箭。他列出三样东西:公开事故报告复印与检索费用、材料疲劳与故障树分析资料、一个独立上锁的档案柜。 “档案柜?” “搜索客户资料和预研资料不能混放。以后人多了,更不能谁都看。” 苏雨桐点点头,在用途旁写下预算。档案柜买二手的,最多一百八十元;资料按实际复印报销;任何涉及原单位非公开信息的内容不得带入公司。 她写完,继续织那副深绿色手套。毛线在指间绕了几圈,又不小心漏了一针。 马飞看了一会儿:“你拆了三次,还织?” “程序错了也不能扔键盘。” “可以买一副。” “这是我妈买的线。” 她低头把漏针挑回来,台灯照在发梢上。工作之外的耐心与她调试分词程序时并没有不同,却有一种更安静的节奏。 马飞想起母亲寄来的石榴花。他起身冲了两杯,味道淡得近乎没有,只留一点草木的涩。苏雨桐喝了一口,说像热水里洗过一片树叶。 “去火。”马飞说。 “你应该多喝。” 春节前,那笔逾期款终于到账。银行柜台外排了长队,周会计拿着回单回来,在应收账上盖下红色的“已收”章。印章落下时,值班学生又想鼓掌,被她用算盘挡住。 “一月还没结。”她说,“别提前庆祝。” 公司没有换新家具,也没有搬去更气派的写字楼。马飞买回一只掉漆的铁皮档案柜,和陈维明从楼下一层层抬上三楼。柜子太宽,拐角处卡了两次,最后蹭掉墙上一块白灰。 苏雨桐用纸把划痕贴住,在上面写:先进工程预研资料,授权查阅。 柜子里起初只有三本复印资料和一本空白笔记。 那一千元储备也没有立刻花完。它安静地待在账上,与搜索运营的钱分开,既不是成功的奖杯,也不是可以逃避现实的秘密通道。 马飞在现金流表底部写下一句话:第一次为正,不代表以后永远为正。 周会计看过,在后面加了四个字:下月再算。 窗外的雪停了,屋顶留下薄薄一层白。马飞把账本合上,第一次觉得通往火箭试验场的路,并不从某张惊人的设计图开始。 它也许从一笔六千五百元的回款、一张夜班车票、四百二十元补贴和一只二手档案柜开始。 每一分钱都有来处,每一步都设有停止线。 只有这样,那团曾经吞没他的火,才不会在另一种狂热里提前重演。 第48章 招聘启事上的一道题 招聘启事贴出去的第二天,楼下卖早点的老杜揭下来一张,垫在了油条筐底。 “纸挺厚,不沾油。”他解释。 马飞蹲在摊边,把那张已经透出油斑的启事抽出来。最上面“招聘系统运维工程师”几个字还能看清,下面的联系电话被一根油条压住了。 老杜又从抽屉里找出半卷透明胶:“我再给你贴一张。你们那个什么运维,是修电脑的吗?我侄子会装系统。” “不只装系统。” “工资多少?” “一千二,夜班另算。” 老杜吹了声口哨:“那得会修多少台?” 马飞想了想:“最好让机器坏了以后,我们还能知道发生过什么。” 老杜听不懂,但对一千二很有兴趣,答应晚上问侄子。 星辰需要一个专职运维已经拖了两个月。过去,机器出问题就由马飞、兼职学生和机房管理员拼在一起处理。连续三十天可用服务完成后,值班制度看似成形,真正能独立发布索引、判断故障和执行回退的人仍只有两个半。 马飞是一个,苏雨桐算一个。那个“半”是兼职学生小郭——顺利时能做,出意外就会先给马飞打电话。 苏雨桐说,这不是轮班,是把马飞的传呼机分给了更多人。 招聘启事因此多了一道不像招聘的话: “服务器仍能启动,但部分查询结果消失。你到场后先做什么?” 头三天来了十七个人。 有人写“立即重装系统”,有人写“升级服务器”,还有人写“检查病毒”。老杜的侄子也来了,穿着新西装,带了一只装满盗版软件的光盘包。他说自己能在四十分钟内装好windows 98,问星辰为什么不用图形界面管理服务器。 马飞请他喝了一杯水,没让他上机。 第十八个人在一个刮风的下午出现。 他叫林海,二十九岁,瘦,肤色偏黑,穿一件袖口磨亮的蓝夹克。进门时,他先在门垫上蹭干净鞋底的泥,又回身确认门锁有没有弹回去。 “从哪看到招聘?”小郭问。 “机房门卫那儿。”林海说,“纸贴在暖气管旁边,电话最后一位被人用铅笔改过。我两个号码都打了,第二个才对。” 陈维明听得皱眉:“谁改的?” 马飞却记下了这件事。招聘启事发出去以后,没有人回收和核对,连联系方式被改过都不知道。 林海原来在一家印刷厂维护排版电脑和网络。厂里订单减少,夜班却越来越多。他不是大学计算机专业,早年在邮电学校学的是通信设备,后来靠说明书和替人修机器补课。他带来的简历只有一页,背面是女儿的蜡笔画,画着三个人站在一座歪房子前。 发现背面有画时,他赶紧把纸翻回来:“拿错了。家里只有这一张干净纸。” “女儿多大?”陈维明问。 “五岁半。” “你也有女儿?”陈维明立刻多了几分亲近,“上小学费钱。” “明年才上。”林海说,“现在费的是幼儿园。” 面试在会议桌边进行。窗缝漏风,桌上放着一只电热杯,水烧开后不会自动断电,必须有人记得拔插头。苏雨桐一边听,一边织那副深绿色手套。她已经织好左手,右手刚起到一半。 马飞把招聘题推给林海。 “服务器能启动,部分查询结果消失。你先做什么?” 林海没有马上答。他问:“结果是刚消失,还是到场才知道?索引还在写吗?有没有上一版?用户现在还能查到别的结果吗?” “都不知道。” “那先停止会继续改变现场的操作。别重装,别清理日志,别让新索引覆盖旧目录。确认还有没有一条可用服务路径;有就先保住,没有就告诉用户暂停。再复制当前目录和日志,记录我到场时的时间、进程、磁盘空间和谁动过什么。” “不先恢复?”小郭问。 “不知道丢的是文件、指向还是权限,乱恢复会把还能找回来的东西盖掉。” “如果老板站在旁边催呢?”苏雨桐问。 林海看了马飞一眼:“那就请老板把要求写在记录上。” 陈维明笑出了声。马飞也笑,但没有觉得被冒犯。 “为什么离开印刷厂?”他问。 林海这次停得更久。他说厂里去年有一批书的电子排版文件损坏,主任让他先重新做,不要追究原因。三个人加班两周恢复了大半,后来同样的问题又发生一次。他查出是夜班操作员为腾空间,直接删除临时目录,而备份脚本恰好也把空目录当成成功。 “我写了改法。”林海说,“主任说书印出来就行,别留那么多纸给自己找麻烦。我不是因为一句话走。是后来他们真把第一次记录扔了,第二次又怪那个操作员不小心。” “你觉得是谁的问题?” “操作员删目录有错。备份把空当成功也有错。让一个夜班人决定删什么、又没人复核,更有错。只开除他,第三次还会来。” 他说这些时,双手一直放在膝盖上,指关节有几处洗不掉的油墨。没有漂亮术语,只有一种做过脏活以后留下的谨慎。 面试结束,外面已经天黑。林海没有立刻答应入职。他问工资哪天发、夜班多久一次、试用期有没有工资、公司若倒闭欠薪怎么处理,还问搜索业务和马飞提到的先进工程预研有没有混用资金。 陈维明被问烦了:“你还没进来,就先问倒闭?” “家里靠两份工资。”林海说,“我爱人厂里也不稳。总得知道最坏怎么过。” 马飞把最近三个月实际发薪日期给他看,没有承诺公司不会倒闭,只说明账面运营缓冲、现有合同期限和一旦现金不足的通知规则。工资一千二百元,试用三个月全额发;每六个夜班有补贴;员工预留池中的长期权益要等职责和贡献记录明确后另签,口头不算。 “我回去和爱人商量。”林海说。 他走后,小郭有些不服:“他连大学都没读过,问题比我们还多。” “运维就是负责先把问题问出来。”苏雨桐把织错的一段拆开,“学历能证明学过什么,不能证明现场会先做什么。” 第二天没有电话。 第三天也没有。 马飞以为林海拒绝了。第四天早晨,他去机房时,看见林海蹲在门口修那张被人改过号码的招聘启事。他带了一小瓶涂改液,把错误数字盖掉,又用透明胶封住纸边。 “我爱人同意了。”他说,“但有两个条件。” “你说。” “夜班表至少提前一周排。女儿生病可以换班,但我负责找人交接。还有,所有要求我跳过备份或记录的临时命令,要能写下是谁决定。” “同意。” “你不问第二个会不会限制你的权力?” “就是为了限制。” 林海看了他几秒,伸出手:“那我星期一来。” 入职第一天没有欢迎仪式。周会计让他填表,发现公司连统一格式的员工登记表都没有,只好从国营商店带来一份复印件,把“政治面貌”和“户粮关系”后面几项划掉。 林海的工位是两张旧课桌拼成的,左边高半厘米。他从家里带来一块折叠纸板垫桌腿,又在显示器旁放了女儿那张蜡笔画。画上的房子依旧歪,太阳却占了半张纸。 苏雨桐把值班手册交给他。他没有从第一页看,而是先翻故障记录,问七次未知失败有没有原始日志。小郭说其中三次早被压缩覆盖了。林海没责怪谁,只在手册封面加了一张清单:日志保留期限、备份位置、轮换前检查人。 下午,他第一次跟马飞做索引回退演练。 马飞故意在候选目录里删掉一个校验文件。林海检查到缺失,没有继续发布。他复制目录、记时间、通知值班人,然后问:“这是演练破坏,还是实际误删?” “你觉得呢?” “不知道。所以两种都记,等你签字说明。” 马飞在记录上写明演练。那一刻,他第一次把发布失败的最终签字交给一个刚入职的人。 下班前,林海把机房备用钥匙装进信封,封口处签上自己名字,再交给周会计登记。陈维明看见,问他何必这么麻烦。 “钥匙小,丢了以后事情大。”林海说。 晚上七点,他准时收拾东西。小郭惊讶地问不留下熟悉系统吗。林海指了指提前排好的值班表:“我星期三夜班。今天答应女儿回去给她修铁皮青蛙。” 他走得干脆,蓝夹克很快消失在楼道口。 马飞望着那张空下来的课桌,心里一度生出不习惯。创业以来,留下得越晚仿佛越忠诚,随叫随到才像真正把公司放在心上。可苏雨桐说得对,公司若只能靠每个人不断透支生活来运转,所谓稳定只是把故障从服务器转移到了人身上。 当晚,马飞也在九点前离开。他去邮局给母亲寄回信,路过玩具摊时看见一只上发条的铁皮青蛙。摊主拧紧发条,青蛙在木板上跳了三下,第四下歪倒。 马飞没买。他忽然很想知道,林海女儿那只旧青蛙坏在哪里,又能不能被父亲修好。 第二天清晨,发布窗口顺利完成。日志、校验、切换和回退点一项不少。记录末尾不再是马飞的签名,而是两个端正的字:林海。 招聘启事上的那道题终于有了答案。 不是一句“先保住数据”,也不是某种聪明的故障技巧。 真正的答案是,星辰开始承认一套系统不能只记得创始人的手势和习惯。它要让另一个有家庭、有下班时间、会担心工资,也敢要求老板签字的人,拥有说“先别动”的权力。 第49章 一封来自航天口的信 信封是星期六送来的。 邮递员爬上三楼时气喘吁吁,棉帽边缘挂着一层融化的雪。他把一个牛皮纸大信封递给林海,问:“星辰科技是做卫星的吗?怎么天天有人寄技术资料?” 林海说不是,星辰做搜索。 邮递员看看门口那块不大的公司牌,又看看墙上“信息架桥,商机万里”的锦旗,显然更糊涂了。他让林海在挂号簿上签字,临走前问能不能用星辰查火车时刻。 “现在还不全。”林海说,“最好也看车站公告。” “你们这公司,说什么都留半句。”邮递员摇着头下楼。 信封正面只写了马飞收,寄件地址是他曾经工作的航天研究所。没有部门名称,字迹却一眼能认出,是张建国。 马飞那天不在公司。他答应母亲年前回家一趟,坐的是最早一班慢车。火车在路上停了十几个小时,他到家时天已黑,院门上还贴着去年褪色的春联。母亲见面第一句话不是问公司,而是说他瘦了;第二句是让他把羽绒服脱下来,别把车厢里的灰蹭到床上。 牛皮纸信封被锁进收件柜,直到星期一才由他亲手拆开。 里面有三份公开资料的复印件:一份国外运载器故障调查摘要,一份涡轮机械轴承疲劳论文,一份关于试验数据时间同步的会议材料。纸张来源不一,有的字迹发虚,有的页边留着图书馆复印机的黑线。 最上面压着两页信纸。 张建国没有寒暄太多。他先写明,所有材料都来自公开出版物或允许对外交流的会议文集,不含研究所内部型号数据。马飞离开研究所时答应过,不把原单位的非公开资料带进公司,这条边界依然有效。 后半封信才谈事故。 “你当年坚持做跨系统回放,我同意方向,不代表你当时已有结论。过去三年,我又看了几起公开事故。真正反复出现的,不是某个零件总坏,而是时间戳、状态定义和部门接口彼此不认。一个部门写‘正常’,常常只表示自己的表没有越线。你若还想碰航天,先把问题写全,不要先写答案。” 最后一行是: “别急着证明你比过去聪明。先证明你愿意重新受一次证据的约束。” 马飞把信读了两遍。 办公室里有人煮白菜。春节后留下的一棵大白菜放久了,外叶发蔫,周会计舍不得扔,切掉坏处后带来一只小电炉。水蒸气混着菜味飘进会议角落,把牛皮纸熏得微微发潮。 小郭端着饭盒走过来,看见资料封面上的发动机剖面图:“马总,我们真要做火箭了?” “没有。”马飞把信纸盖住,“只是读资料。” “可公司名字叫星辰。” “卖芝麻糖的也不一定种芝麻。”林海说。 众人笑了。只有马飞没笑。他知道一家公司从读资料到做预研、从预研到试验,再到真正把飞行器送上天空,中间隔着资金、资质、场地、材料和无数失败。名字可以在注册那天写下,能力却不会因为名字好听而提前到来。 苏雨桐下午从学校回来。她刚与导师谈完下一阶段安排,决定每周保留两天参与检索评估课题,其余时间在星辰。这个选择让双方都不完全满意:导师希望她留得更多,公司也需要完整负责人。但她坚持不把学术线并进公司的产品排期。 她脱下围巾,看见桌上的信:“张工?” “嗯。” “说你什么了?” “说我别自作聪明。” 苏雨桐把手伸到电炉边烤了烤:“很像他会写的话。” “你只见过他几次。” “够看出来。” 马飞把资料递给她。她没有先看结论,而是查看复印页码和来源。第二份论文缺了参考文献最后两页,第三份会议材料的图表标题模糊,无法判断单位。 “这两份不能直接拿来算。”她说。 “我知道。” “你刚才已经在空白纸上写公式了。” 马飞低头。自己的确在读到轴承疲劳数据时,本能地列了前世熟悉的载荷关系。那些数字与他记忆中事故链的某个片段相似,诱使他迅速连线。 未来记忆最危险的时刻,不是他完全不知道,而是他觉得自己认出了答案。 “先补来源。”他把公式纸翻过去。 苏雨桐从白菜锅里夹了两片叶子放进饭盒,又问:“要给张工回信吗?” “打电话快。” “他寄信,可能就是想让你慢一点答。” 马飞看着那两页手写字,最终拿出信纸。 第一封草稿写得像项目回复。他列资料接收、缺页、拟核验事项和预算边界。苏雨桐读完,说张建国不是档案室。第二封又太短,只写“收到,谢谢”。 “你平时给家里也这么写?”她问。 “我妈不看技术。” “张工也不只看技术。” 马飞第三次落笔。他先写公司搜索业务已经连续服务三十天,十二月经营现金流首次转正,因此才设置了一千元的独立预研储备;又写所有资料只用公开来源,缺页会自行去图书馆补,不向研究所索取内部数据。 最后,他承认自己仍然记得当年那份被退回的报告,也仍想证明跨系统回放不是多余工作。但这一次,他会先建立问题册,把已知、推测、缺证与禁止使用的材料分开。 信写完已经晚上九点。 林海按值班表去了机房,周会计带走账本,小郭赶末班车。办公室只剩马飞和苏雨桐。电炉里的白菜煮得太久,汤发苦。两人把剩下的捞出来,拌了一勺母亲寄来的咸菜,勉强算作晚饭。 “你为什么一直保留那次事故?”苏雨桐忽然问。 她说的是一九九五年的试验异常,不是马飞无法说出口的二〇二六年死亡。 “因为它没有真正结束。”马飞说。 “报告被退回就没结束?” “原因链没有闭合。我们知道喷注和燃烧效率改进了,也看到轴承微变形,却不知道温度、载荷、控制时序和测量误差怎样一起作用。每个人都有一段正确的话,放在一起却不能解释全部。” “那你想从哪儿开始?” 马飞指着张建国信里的那句话:“不从答案开始。” 第二天,他带着回信去邮局。窗口前排了十几个人,有人寄腊肉,有人寄书,有位老人拿着地址反复确认邮编。马飞买了一个最普通的信封和八角邮票,贴歪了,又揭下来重贴,结果把信封表面撕起一层毛。 营业员不耐烦地说,不影响寄。 他把信投入绿色邮筒,没有打电话催张建国收件。 随后几天,三份材料被逐条登记。缺失页码从高校图书馆补齐;模糊图表找到了原文,确认纵轴单位与马飞最初猜测不同;国外事故摘要里一项“阀门关闭延迟”并非根本原因,而是上游传感信号漂移后的处置结果。 如果按照记忆中的相似性直接套用,这三处都可能被写成错误证据。 苏雨桐为资料卡设计了四种标记:绿色代表来源完整的事实,黄色代表可检验推测,灰色代表背景参考,红色代表来源不合法或无法复核、禁止进入结论。 陈维明看着满柜彩色标签,问:“这东西什么时候能挣钱?” “短期不能。”马飞说。 “那一千元花完怎么办?” “停。等下一次现金条件满足。” “真停?” “真停。” 陈维明摸了摸那只掉漆档案柜,没有再问。他从商业客户那里带回一叠新合同线索,临走时顺手把电炉插头拔了。林海写的离岗检查表贴在门边,连他也开始照着做。 一周后,张建国的回信到了,只有半页。 他没有评价星辰,也没有夸马飞终于挣钱。只在“问题册”三个字下面画了一道线,写: “先列你最不愿承认可能错的三件事。” 马飞把纸夹进空白笔记第一页。 窗外冰雪正在融化,屋檐滴水落在铁皮窗台上,一声接一声。苏雨桐织好的右手手套放在暖气上烘,左手那只却不知被谁碰到了地上,沾了一角灰。她拍了半天没拍净,只好拿去水池重洗。 生活里的许多事都这样。完成不代表不会再脏,拥有一套规则也不代表从此没有错误。 马飞翻开那本尚未写字的问题册,第一次没有画发动机,也没有画回收轨迹。 他写下第一句: “我记得的事故链,可能并不完整。” 第二句是: “我认为最危险的环节,可能只是最后被看见的环节。” 第三句,他写了很久: “我重新开始航天预研的动机,可能会让我忽略停止的证据。” 三句话写完,纸页显得比任何设计图都沉。 张建国从航天口寄来的,不是一份能直接使用的答案。 而是一封要求他重新学会怀疑自己的信。 第50章 事故问题册 马飞又梦见了三点七秒。 没有完整的火箭,也没有新闻画面。梦里只有一条推力曲线,从正常值突然向下折,像有人用铅笔在纸上划开一道口子。随后是二级分离指令迟到的零点七秒,报警声、座椅束带勒进肩膀,以及舷窗外迅速膨胀的白光。 他醒来时,天还没亮。 租住的小屋里很冷,暖气已经停了,春天却没有真正到来。窗缝被夜风吹得呜呜响。床头闹钟指向四点十六分,与搜索正式上线的时刻恰好相同。 马飞在黑暗里坐了一会儿,摸到床边的笔,把梦里最清楚的三个数字写在废信封背面:百分之十二,零点七秒,三点七秒。 写完,他没有像过去那样立刻往下推断。 他把信封翻过来,在三个数字前各加了两个字:记忆。 不是证据。 早晨七点,他提着装有问题册的布包去公司。楼下老杜的油条刚下锅,油香混着煤烟飘满街口。马飞买了两根,走出几步又折回来,多买两根。他已经渐渐知道苏雨桐赶早班车来时多半没吃饭,却仍不确定她今天先去学校还是先到公司。 最后四根油条在纸袋里凉了一半。 苏雨桐九点才来,手里抱着一盆快枯死的文竹。学校办公室腾位置,没人要这盆,她把它搬上公共汽车,一路护到三楼。细碎叶片被挤掉不少,土也撒在书包上。 “公司缺绿的。”她说。 马飞指着窗台:“那里有石榴花。” “那是晒干的。” 她把文竹放到档案柜顶,拿茶缸浇了一点水。马飞递过油条,已经不脆。苏雨桐咬了一口,问:“今天正式开那本册子?” “嗯。” 先进工程档案柜里的空白笔记,封面原本只写“问题册”。马飞在前面加上两个字:事故问题册。 第一页是张建国要求他列出的三件不愿承认可能错误的事。第二页,他画了四栏:已知、推测、缺证、停止条件。 苏雨桐看了很久:“为什么是事故,不是发动机方案?” “因为方案会让人急着证明它能成。事故会逼人先问哪里会错。” “你要研究哪次事故?” 马飞早就准备过这个问题。他不能说二〇二六年,不能说自己死在一枚尚不存在的火箭里。他把一九九五年研究所的试验异常、张建国寄来的公开事故和多个系统共同失效的模式放在一起,称为“假设事故样本”。其中没有未来型号、未来材料或能被直接抄用的设计参数。 “先不对应某个具体型号。”他说,“建立一套问题:如果推力下降、分离迟到、热负荷超出预期同时出现,我们怎样证明先后关系?哪些传感器可能骗我们?哪些部门会各自报正常?什么情况下必须中止,而不是为了完成试验继续飞?” 苏雨桐听到“分离迟到”时抬起眼:“为什么是零点七秒?” 马飞心里一紧。 废信封从布包侧袋露出一角。她看到了上面的数字。 “只是一个用于推演的量。”他说。 “来自哪份资料?” “暂时没有来源。” “那就不能写进已知。” “我放在记忆栏。” “什么记忆?” 办公室里只听见林海拆机箱的声音。他正给备用硬盘贴编号,没有注意这边。马飞望着苏雨桐,胸口像压着一块冷铁。重生的秘密在许多时刻都显得遥远,只有当一个具体数字被追问来源,它才重新站到两人中间。 “我以前反复想过类似事故,做过很多脑内推演。”他说,“数字可能来自我忘记出处的材料,也可能只是后来记错了。” 这不是完整真话,却是他此刻能给出的边界。 苏雨桐没有追问他为何会把一个推演记得像亲历。她拿红笔在数字旁画框,写:来源不明,不进入计算,不作为设计输入,只用于提出可公开验证的问题。 “可以保留。”她说,“但每次看到它,都要看到这个框。” 马飞点头。 事故问题册的第一次讨论没有在会议室进行。会议桌被华北技术资料服务部送来的纸占满,他们只能搬两只小板凳坐在档案柜旁。文竹叶子垂下来,偶尔落一点土在纸上。 马飞把未来事故链拆成当时可以提出的四类问题。 第一类是测量:不同系统的时钟如何对齐,采样丢失怎样暴露,传感器漂移与真实变化如何区分。 第二类是边界:发动机团队说的“推力正常”、控制团队说的“姿态可控”、结构团队说的“载荷可承受”,分别在哪个时间窗口和置信范围内成立。 第三类是处置:一个异常发生后,自动程序和地面人员有多少时间识别;继续试验、降级运行或立即中止的条件由谁批准。 第四类是复核:一次成功是否掩盖了接近阈值的险情;一个部门的结论能否被另一个没有利益关系的人重放。 他没有写“用某种未来算法解决”。在一九九九年的条件下,第一步甚至不是建仿真平台,而是统一时间、字段和原始记录的定义。 “这跟搜索故障表很像。”林海不知什么时候站到了后面。 “哪里像?”马飞问。 “机器都开着,各自日志也说成功,用户还是拿不到结果。最后得把线路、索引、查询和页面拼到同一条时间线上。” 林海说完才意识到这是先进工程资料,准备退开。马飞却给他搬了一只椅子。 “继续。” “我不懂发动机。” “只说你知道的。” 林海想了想:“搜索那次最麻烦的不是日志少,是每台机器的时间差了几十秒。人凭感觉对记录,很容易把后发生的当成先发生。我们后来每天对时,还保留偏差。真做试验,应该先知道每个钟差多少。” 这句话被写进已知栏:跨系统复盘依赖可信时间基准。旁边注明证据来自搜索容量故障与公开事故材料,不假装等同于火箭试验。 一名运维工程师参与航天预研的第一项贡献,不是设计发动机,而是提醒所有仪器的钟不会天然一致。 下午,陈维明来审预算。他原以为会看到设备清单,结果一千元储备只支出二百五十八元:一百八十元买档案柜,七十八元用于复印和邮寄。马飞新申请的采购是一只机械秒表、两本试验测量教材和一批编号标签,总计不到一百元。 “你不是知道未来技术吗?”这句话只存在于马飞心里。陈维明真正说的是:“你当过工程师,怎么重新开始只买本子和标签?” “因为还没有资格买更贵的东西。” “一千元能研究出什么?” “研究出下一千元该不该花。” 陈维明拿着预算单翻来覆去,最后签字。他在备注里加了一条:预研不得占用搜索机房、客户数据和当班人员时间,借用须单独记录。 “防你半夜把查询服务器拿去算火箭。”他说。 “现在也算不了。” “以后能算也不许偷着算。” 周末,三个人做了第一次桌面推演。没有发动机,没有真实传感器。林海把三个闹钟故意调成不同时间,小郭扮演只看推力表的试验员,苏雨桐负责把散落在不同纸上的记录合并。马飞事先设置一个故障:温度读数缓慢漂移,控制指令晚三十秒送达,而值班表上的“系统正常”仍按原标准填写。 推演只进行二十分钟,复盘却用了两个小时。 他们发现,如果事后只收集各人的结论,根本无法判断温度上升与指令延迟的先后。若保留原始读数却不记录时钟偏差,同样会得出错误顺序。更严重的是,小郭看到温度接近阈值时不敢主动中止,因为纸上只写“异常上报”,没写谁有权停。 “现实里我会问马总。”他说。 “如果我不在呢?” “打传呼。” “如果等不起呢?” 小郭回答不出来。 马飞在停止条件栏写下第一条:达到预先规定的红线时,当班人员有权中止,不以负责人未到场为由继续。 这条规则让他想起前世事故前那零点七秒。假如某个人当时拥有更清楚的停止权,结果是否会不同?他不知道。事故已经发生,记忆不能反过来成为证据。 但未来每一次试验,都必须让“停止”成为一个可执行的动作,而不是报告里的漂亮词。 推演结束后,众人去楼下吃馄饨。林海急着回家,吃得很快,说女儿今天在幼儿园演小兔子,他答应去接。小郭问兔子演什么,林海也不知道,只知道要戴一对用白纸糊的耳朵。 苏雨桐慢慢喝汤,忽然说文竹可能救不活。办公室光照不够,暖气顶又太干。 “搬到窗边。”马飞说。 “窗边漏风。” “那白天窗边,晚上搬回来。” “谁负责?” 这句问话让桌上几个人一起笑。林海说也写进值班表吧,马飞说先进工程预研第一项长期任务,拯救文竹。 回到办公室,他们真在花盆旁贴了一张小纸:早上移窗边,晚上离窗一米,土干再浇,不积水。第一周由小郭负责。 事故问题册则被锁回铁柜。第一页后面已经多了十七个问题,没有一个答案。每个问题旁标着来源、需要的证据和停止条件。 马飞在封底写下预研成立日期:一九九九年三月二十一日。 这是搜索业务连续稳定、经营现金流首次转正以后,星辰第一次用独立预算正式触碰航天技术。没有发布会,没有火箭公司牌照,也没有一台能点火的设备。 只有一个掉漆的柜子、几本公开资料、三个不同步的闹钟,以及一条任何负责人都不能越过的红线。 他没有避免二〇二六年的那场事故。已经发生的死亡无法被改写。 但从这一页开始,他为所有尚未发生的试验留下了另一条因果链:先承认记忆可能错,再让系统彼此看见;先赋予人停止的权力,再谈怎样把火点起来。 那晚回到住处,马飞又看见废信封上的三个数字。 他没有把它们烧掉,也没有供奉成秘密答案。 他用红笔重新描了一遍外框,然后把信封夹进问题册的“来源不明”袋。 三点七秒仍然是他一个人的噩梦。 事故问题册要做的,是让未来的安全不再只依赖这个噩梦。 第51章 不是火箭公司 “星辰要造火箭”的消息,是从一幅蜡笔画开始的。 林海的女儿周末跟着父亲来公司。幼儿园临时消毒,孩子没人照看,林海本想换班,马飞说白天没有发布操作,让他带来就行。 小姑娘叫林小满,扎两根不一样高的辫子,进门以后先对墙上的锦旗鞠了一躬。没人知道她为什么这样做。她在父亲工位旁坐了半小时,画完三只猫、一座房子和一架长着翅膀的火箭,又嫌纸上地方不够,把火箭尾焰画到了背面。 下午,送水工来换水桶,看见那幅画被透明胶贴在墙上。旁边恰好是先进工程资料柜,柜门写着“事故问题册”。 到了星期一,楼下老杜问马飞:“听说你们不做电脑,要造卫星了?” 星期二,机房管理员也来电话:“以后火箭设备不能放机柜,消防不批。” 陈维明星期三赶到公司,手里攥着一张从客户那里拿来的传真。传真只有一行字:星辰科技即将转型商业航天,现有搜索业务是否继续? “谁传的?”马飞问。 “我要知道还来问你?”陈维明把传真拍在桌上,“第一个合同才续到半年,客户已经怕你拿他们的钱烧火箭。” 苏雨桐把林小满的画从墙上揭下来,翻到背面。小姑娘给火箭写了一个名字:小满一号。旁边还有歪歪扭扭的一句“爸爸修好它”。 “根在这儿。”她说。 “一幅画能传成商业航天?”林海脸都红了,“我今晚就撕。” “别撕。”马飞说,“画没有错。” “那传真怎么办?” “开股东和核心成员会议,把预研边界正式写清楚。对客户给同一份说明。” 会议定在星期六。周会计说既然公司已经改制,不能只在饭桌上口头说,要提前发议题、记录出席和表决。陈维明一边嫌程序慢,一边把自己的意见写了三页,标题是《反对在搜索盈利基础不稳时盲目进入高风险行业》。 星期六早晨,会议室暖气停了,春寒又返。众人只好把会议搬到楼下小饭馆。老板刚擦完桌子,空气里全是醋和消毒水味。他们包下最里面一桌,点一壶茉莉花茶和两盘花生米,约定中午前不开酒。 林小满也来了。她母亲周末加班,林海仍找不到人带孩子。小姑娘被安排在隔壁桌写算术,周会计给她一把算盘。她不会打,只把珠子全拨到一边,再一颗颗推回来。 会议开始后,陈维明先问三个问题。 “第一,星辰是不是已经决定造火箭?” “没有。”马飞说,“目前只做安全与故障方法预研。” “第二,要花多少钱?” “现有储备一千元,已支出三百五十六元。下一季度新增预算不超过上季度实际经营现金净流入的百分之十,且不能让运营缓冲低于一个月刚性支出。” “第三,这件事什么时候挣钱?” “不知道。短期不挣钱。” 陈维明端起茶杯,又放下:“这就是我反对的原因。搜索刚能喘气,你把钱投进一个不知道什么时候回来的洞。” 马飞没有讲二〇二六年的火焰,也没有讲在spacex之前完成关键突破。他只把一九九九年能公开说明的理由摆出来:星辰长期目标包含先进工程;航天研发周期极长,等搜索完全成熟再开始积累,时间会被一次性浪费;当前预研不做型号承诺,只建立事故分析、测量同步、故障重放和停止规则,投入上限明确。 “这不是火箭项目?”周会计问。 “不是整箭,也不是发动机型号。” “那叫什么?” “先进工程预研组。” 陈维明笑了一声:“换个名字,钱还是往里走。” “所以你可以看账。” “看见钱没了,能叫停吗?” “达到停止条件自动暂停,不由我一个人决定继续。” 苏雨桐把问题册摆到桌上。她没有替马飞证明航天梦想伟大,而是逐条读出限制:不得使用研究所非公开资料;不得占用客户数据与搜索生产设备;任何试验性采购都要写用途、证据目标和失败后的处置;不得以“未来价值”为理由拖欠工资、带宽或供应商款;不得对外宣称星辰具备尚未验证的能力。 “我再加一条。”她说,“预研结论不能由提出假设的人单独验收。” 马飞看向她。 “包括你。” “同意。” “如果我认为证据不足,可以要求标成未证,不因为你是控股创始人改成已完成。” “同意。” 陈维明盯着两人:“你们提前商量好了?” “没有。”苏雨桐说,“现在写。” 饭馆老板端来刚炸的花生米,听见“控股创始人”几个字,多看了他们一眼。桌边几个人穿得普通,一半人还自带搪瓷杯,怎么看都不像电视里开董事会的老板。 林小满忽然跑过来,把一道算术题递给父亲。七加九,她写成了十五。林海没有直接改,在桌上摆了七颗花生,又摆九颗,让她自己数。小姑娘数到第十三颗时偷吃了一颗,只好从头再来。 会议也像那道题。每个人都知道结果不能靠愿望凑出来,中间少掉的一颗花生迟早会让账对不上。 周会计提出,先进工程预研必须有独立科目、独立凭证和季度报告;采购物品即使由马飞个人使用,也归公司登记。林海提出,预研计算不能在搜索生产服务器“空闲时顺便跑”,因为所谓空闲没有经过容量承诺。小郭则问,普通员工能不能拒绝临时被叫去做预研。 “能。”马飞说,“岗位不自动转。参与要说明任务和时间,不能拿理想代替加班费。” 这句话说完,他自己也有些不自在。过去几年,他太习惯让“再坚持一晚”成为默认答案。可商业搜索和航天预研一旦同时存在,热情会变成最便宜也最危险的资源。 午饭时,老板端上炸酱面。林小满嫌黄瓜丝少,把父亲碗里的全夹走,又把自己不吃的黄豆塞回去。陈维明看着她,想起女儿小时候也挑食,语气慢慢没那么硬。 “我不是反对你一辈子碰航天。”他对马飞说,“我反对今天挣一块,明天按十块花。你要我投票,可以成立预研组,但必须再加两条:连续两个月经营现金流为负,自动冻结新采购;任何单笔超过五百元的支出,至少两名有财务知情权的人签字。” “五百是不是太低?”马飞问。 “你现在总预算才一千。” “以后会增长。” “以后再按规模改。” 最终表决没有人完全赢。先进工程预研组获准成立,期限六个月,季度复核。马飞负责提出工程问题,苏雨桐负责独立证据审查,周会计负责资金隔离,林海只提供经排期批准的系统与记录支持。陈维明保留财务异议,但不能干预具体技术结论。 对外说明更短:星辰搜索仍是公司唯一正式运营产品;公司设有小规模先进工程研究,不涉及现阶段商业服务承诺,不使用客户资金专户和个人查询数据。 “客户会信?”小郭问。 “把搜索继续做好,他们才信。”陈维明说。 会议散后,林海拿着女儿的画,想换到自己工位里面。林小满不肯,说火箭要挂高一点才能飞。马飞找来一只旧相框,把画装进去,挂在资料柜另一侧,与锦旗和故障表都隔开。 “可以留,”他说,“但下面加日期和作者。别让人当成公司公告。” 小姑娘很认真地在相框背后按了一个蓝色手印。 下午,陈维明和马飞逐一给客户回电话。有人松了口气,有人根本不在意,也有人追问星辰是不是掌握了军方技术。马飞统一回答:没有,公司不使用任何无权使用的资料,也没有火箭产品。 最早签约的高经理听完,只问商业资料页面周末是否照常服务。得知照常以后,他说:“那你们研究月亮也行,别把我的继电器弄丢。” 晚上,公司门牌仍然写着“北京星辰信息技术有限公司”。没有人加上“航天”两个字。 马飞把当天决议锁进档案柜,事故问题册放在旁边。两个文件隔着一层铁皮:一个写他为什么必须开始,另一个写公司凭什么让他停下。 回住处前,他给张建国打了一次电话。 “预研组成立了。”他说。 “几个人?” “没有专职航天人员。先做问题和方法。” “多少钱?” “一千元起步,按现金流设上限。” 张建国在电话那头咳了两声:“那确实不是火箭公司。” “暂时不是。” “记住这个‘暂时’不能拿来骗现在的人。” “记住了。” 挂断后,马飞走过夜市。有人卖塑料玩具火箭,按下按钮会发出刺耳的电子声,尾部闪红光。一个孩子拉着父亲要买,父亲嫌贵,最后买了一只竹蜻蜓。 竹蜻蜓在路灯下飞起两米,又落回孩子手里。 马飞看了一会儿,没有买那枚玩具火箭。 星辰离真正的火箭仍然很远。今天成立的只是一个允许怀疑、允许停止、也必须为每一笔钱负责的小组。 但正因为他们没有急着把公司称作火箭公司,那条通向火箭的路才第一次没有建立在谎言上。 第52章 三种账本 苏雨桐搬家的那天,星辰账上多出了一笔不属于星辰的钱。 她从学校宿舍搬到离公司两站路的一间合租房。全部行李只有两个纸箱、一床卷起来的被褥、一盆没完全救活的文竹和一辆借来的三轮车。 马飞原本说叫辆面包车,被她拒绝。面包车要四十元,三轮车只要给看门师傅买两包烟。结果出校门时赶上阵雨,纸箱底被打湿,装书的那只在路口裂开,词典、论文和一叠检索样本撒了一地。 两个人蹲在雨里捡书。马飞把外套脱下来铺在三轮车底,苏雨桐却先去抢那盆文竹。它在公司窗台养出几片新叶,好不容易活过来,不能再折一次。 “书湿了还能晒。”她抱着花盆说,“根烂了就真没了。” 他们到新住处时都淋透了。房东大姐给了两条旧毛巾,又烧一壶姜水。屋子不大,窗外正对别人家的厨房后墙,胜在能放下一张书桌,步行十分钟可到公共汽车站。 马飞帮她把书按高矮排进砖头和木板搭成的书架,才回公司。三楼门口,周会计已经等了一个多小时,手里捏着银行回单,脸色比雨云还沉。 “账户上来了两万四。”她说。 陈维明从里面探出头:“哪个客户?” “汇款用途写的是采购控制板,收款人却是我们公司。” 华北技术资料服务部上线一批工业控制板目录后,一家外地工厂通过商业资料页找到了供货商。采购员打不通供货商电话,便找到星辰,问能否先把货款汇给平台,再由星辰转过去。小郭回复说星辰只提供信息,不经手货款。 对方还是汇了。 “可能觉得网站是谁的,钱就该给谁。”小郭说。 “也可能怕直接给陌生供货商不安全。”陈维明看着回单,“我们若帮他转一次,服务费是不是可以——” “不能转。”周会计打断,“合同里没有代收,营业范围里也没有。更麻烦的是,这两万四进了公司账户,银行流水只看得见收款。你转给供货商,账上算什么?采购?借款?代付款?哪一种都不是真的。” 钱就在账户里,看上去像收入,却不能花。 马飞想起一九九九年的技术条件。电子商务刚刚被少数人谈起,银行转账仍要填单、盖章、排队。未来一个按下确认就能完成的付款动作,在眼前却穿过电话、传真、银行柜台、会计科目和互不认识的三家公司。 “先通知汇款方,原路退回。”他说。 “退款也不是按一下就回去。”周会计说,“得拿回单去银行说明,收对方账户资料,写退款原因。手续费谁承担,也要确认。” 陈维明仍不甘心:“对方愿意让我们代付,我们为什么一定说不?” “因为愿意不等于我们有权做。”苏雨桐换了件干衬衫赶来,头发还在滴水,“他今天汇两万四,明天有人汇二十四万。货没到,谁负责?供应商跑了,谁解释?公司账户冻结,搜索工资从哪发?” “所以才值得做成业务。” “做业务之前先弄清楚这是什么业务。” 雨敲着窗,众人围在会议桌旁。那张回单放在中间,像一只突然闯进屋里的湿鞋,谁都不能假装没看见。 周会计拿出三本空白账册。 第一本是公司财务账。每一笔钱属于谁、因什么合同发生、该进什么科目、税费如何处理,都要能与银行流水和凭证对应。 第二本是服务履约账。商业资料何时上线、展示了多少、客户是否验收、故障如何补偿。这里记录星辰答应了什么,不等同于钱已经到账。 第三本原本没有名字。周会计指着那两万四千元说:“如果以后真做你们说的付款服务,就得有一本账,记付款人想做什么、银行做到了哪一步、收款人是否确认、失败和退回是什么状态。这本不能拿财务收入账代替。” 马飞在封面写下:交易状态账。 “现在只能为这次误汇做记录。”他说,“不代表已经开办代收业务。” 于是,一笔钱被三种方式描述。 公司财务账:来源不明待退款项,不确认为收入。 服务履约账:星辰未接受代购或代付委托,没有交付义务。 交易状态账:汇款方已发出,星辰已收到,退款资料待确认,未转供应商。 三句话看似重复,回答的却是三个不同问题。钱在哪里,星辰答应过什么,用户现在以为什么正在发生。 “为什么不能只在财务账旁边写备注?”小郭问。 “因为以后操作的人不一定看得到全部财务凭证,财务也不该靠翻技术日志判断客户指令。”周会计说,“可以相互对照,不能混成一本谁都改的流水账。” 林海提出,每个状态变化都要有时间、操作人和依据,不能把“待确认”直接覆盖成“已退回”。苏雨桐又加了一条:任何一方的电话说明都只是指令证据,不能替代银行回执。 陈维明听着,忽然把三本账排成一条线:“你们知道这是什么吗?” “麻烦。”小郭说。 “是机会。”陈维明用手指从第一本划到第三本,“现在买卖双方最怕的就是不知道钱和货走到哪。谁能把状态说清楚,谁就能收服务费。” 马飞没有否认。支付业务的入口并不在一枚漂亮按钮上,而在这张让所有人头痛的错误回单里。用户真正缺的不是再多一个收款账户,而是一套能被信任的状态、边界和追索方法。 但这也意味着,系统一旦说错,损失不再只是一次搜索失败。 搜索返回错误结果,用户可能多走弯路;支付状态若错,钱会被重复转出、错误冻结或永远对不上。两者都依赖数据,责任却不是一个量级。 “先退这一笔。”马飞说,“退完以后再做需求研究。不在公司账户里留钱做试验。” 接下来的两天,他们为退款跑了三趟银行。 第一趟缺汇款方盖章确认;第二趟对方传真过来的账号有一位数字模糊;第三趟,银行柜员发现原汇款单位全称与传真抬头少了“有限”两个字,要求重新出具说明。 苏雨桐陪周会计去第二趟。银行大厅没有座位,她们站了两个小时。前面一位老人拿着存折反复询问利息,后面有人因为插队争吵。轮到星辰时已经接近下班,柜员一页页翻材料,说今天来不及处理。 走出银行,太阳突然从云后出来。两个人又饿又累,在路边买了两碗凉粉。苏雨桐从书包里拿出被雨泡皱的论文,边吃边摊开晾。 周会计问她为什么不留在学校。大学稳定,有食堂、有宿舍,做研究也不用天天追别人盖章。 “学校的问题也不少。”苏雨桐说,“只是账本不一样。” “后悔搬出来吗?” 她低头搅凉粉。合租房的床板太硬,夜里隔壁夫妻吵架,窗外厨房五点就开始剁菜。可她也第一次有一张完全属于自己的书桌,不必在熄灯后躲进机房写论文。 “还没住够三天,不下结论。”她说。 周会计笑起来:“你们公司的人,什么都要满一个观察期。” 第三天下午,两万四千元终于原路退回。手续费由汇款方承担,因为星辰此前已明确拒绝代付。对方采购员打电话致歉,又问星辰什么时候能真正提供安全付款服务。 马飞回答:“现在没有日期。” “你们做搜索都做出来了,转个钱这么难?” “正因为是钱,不能假装简单。” 对方叹气,说那只能自己再联系供货商。挂电话前,他留下一个问题:如果钱已经汇出,供货商说没收到,到底该信谁? 这句话被写进交易状态账的第一页。 退款完成的晚上,众人帮苏雨桐重新搬了一次书。第一次淋湿的纸箱彻底塌了,林海从机房找来装硬盘的结实箱子。陈维明开来一辆借的面包车,坚持证明四十元车费不是浪费。 合租房里只有一把椅子。大家轮流坐,剩下的人靠墙吃房东送来的葱花饼。文竹被安置在窗台,窗外虽是厨房后墙,午后仍能照进一小块光。 马飞把三本账的复印页带来,铺在她的新书桌上继续讨论。房东大姐经过门口,看见满纸数字,问他们是不是在炒股票。 “不是。”苏雨桐说,“在想怎么不把别人的钱算成自己的。” 房东大姐说:“那可比炒股票难。” 夜里十一点,众人才离开。马飞走到院门口,回头看见苏雨桐站在二楼窗边,正把三本账的页角用字典压平。那盆文竹在灯下投出细细的影子。 搜索业务给星辰带来了第一笔正现金流,也把陌生人的交易需求带到门口。支付不再只是路线图上“二〇〇〇年”后面的两个字。 它变成了两万四千元不该属于谁的现实问题。 三种账本也没有解决这个问题。它们只是把混在一起的东西分开,让所有人第一次看见:公司拥有的钱、公司答应的事和用户相信的状态,必须能够彼此核对,却永远不能偷换。 马飞在事故问题册旁另开一只文件夹,封面写“支付预研”。 里面第一份材料不是产品设计,而是一张已经完成退款的银行回单。 回单上盖着红章,纸面被来回折叠,留下三道深痕。 每一道折痕,都比“支付”这个词更接近真实。 第53章 到账要三天 高经理说钱已经付了。 周会计说没有。 两个人隔着电话各自拿着证据,声音一个比一个硬。 “汇款申请书在我手里,银行盖了受理章。”高经理说,“星期五下午办的,两万一千元,三个月服务费,一分不少。” “星辰账户截至今天上午没有入账。”周会计回答,“银行也查不到到账通知。” “盖章还能是假的?” “我没说假。我说没到账。” “那你们为什么发传真,说今晚暂停商业资料?” “合同写的是到期前续费到账。” “钱在银行路上,也怪我?” 那天是八月末,办公室热得像一只扣住的铁盒。电话放在会议桌中央,所有人都听得见对面的喘气声。电扇吹着一串发票,周会计用搪瓷杯压住纸角,另一只手不断擦额头的汗。 华北技术资料服务部的合同将在午夜到期。按照商业信息规则,未续费资料会从独立展示区暂停,但自然搜索中的公开页面不受影响。过去几个月,客户都提前付款,这是第一次出现“已经汇出”和“尚未收到”同时为真的情况。 陈维明把电话接过去:“老高,先别急。把银行回单传真来,我们查清楚。今晚服务不断。” 周会计立刻看他。 高经理在电话那头也听见了:“还是陈总明白做生意。” 通话结束,陈维明说:“三个月一直按时付,差这几天还能真停?” “可以给宽限,但不能把未到账改成已付款。”周会计说。 “客户已经拿出回单。” “那证明银行受理,不证明钱进了我们的账户。” “你就不能说一句在途?” “账上没有这个科目让我凭感觉填。” 马飞想起昨天翻过的交易状态账。误汇退款让他们分出了公司财务、服务履约和用户状态,却仍习惯用一个“付没付”回答所有问题。高经理的两万一千元把这条缝再次撕开。 “财务账继续记未到账。”他说,“服务账增加有凭证宽限,最长三个工作日。交易状态单独记银行已受理、星辰待入账。午夜不暂停,但页面后台要标到期宽限,三天后仍不到账自动转人工。” 陈维明点头:“这不就行了?” 周会计却问:“凭什么是三天,不是五天?” 屋里安静下来。 任何数字一旦写进规则,都要有来历。他们翻出过去半年所有客户汇款回单,统计银行受理到公司入账的时间。同行转账多在当天,跨行普遍一至两个工作日,最长一次用了三个工作日。遇周末和节假日,日历时间还会更长。 “按工作日。”苏雨桐说,“并且只是当前样本下的宽限,不叫银行保证。” 她刚从合租房赶来,袖口沾着煤灰。房东家的煤气灶坏了,早上她帮忙把蜂窝煤炉挪到院里,头发也带着烟味。她把三天样本抄到纸上时,忽然打了个喷嚏。 马飞把电扇转开一点:“感冒了?” “煤灰。” “晚上别再用那个炉子。” “不用就没热水。” “买个电热壶。” “插座线路带不动,房东不让。” 几句日常困难插进付款争论里,反而让马飞意识到“在途”不是一个抽象状态。钱在路上时,客户不知道服务会不会停,公司不知道工资能不能按期发,具体的人仍要烧水、坐车、交房租。 传真在十分钟后进来。老传真机先尖叫一阵,吐出的纸又薄又卷。回单上的收款账号正确,公司全称也正确,受理章日期是上周五下午四点四十七分。 问题出在时间。 汇款行周五五点结束当日交换,高经理的申请虽然被柜台受理,却进入下一个工作日批次。周一又遇系统对账延迟,星辰开户行只能确认“可能在交换途中”,不能给确切到账时间。 “可能”两个字让每个人都不舒服。 周会计最不愿意,因为财务凭证不能根据可能入账;陈维明最不愿意,因为客户关系不能根据可能暂停;林海也不愿意,因为他要写自动规则,程序无法执行一句“看情况”。 苏雨桐在黑板上画了五个格子:指令已提交、银行已受理、处理中、已到账、失败或退回。 “还缺未知。”马飞说。 “处理中不就是未知?”小郭问。 “处理中是银行确认还在处理。未知是我们没有新的可靠信息,不能替银行声明它正在做什么。” “这也要分?” “用户最怕的就是系统把不知道说成处理中,让他一直等。”苏雨桐说,“不知道就要告诉他下一次由谁、什么时候查。” 她在第六个格子写下“状态待核”,旁边注明:不得自动重复汇款,不得重复确认服务收入,人工追查有截止时间。 陈维明看着六个格子,觉得太复杂:“客户只想知道商业资料会不会停。” “所以页面给他一句明确结果:凭银行受理回单进入宽限,服务暂不暂停。”马飞说,“复杂的是我们内部,不能把复杂全推给客户。” 当天夜里,华北技术资料服务部的商业信息照常展示。系统没有把它标成已续费,而是生成一条宽限记录,关联传真回单编号和合同到期日。值班人不得手工改到账状态,只有周会计依据银行回执确认。 午夜零点,林海在机房看着自动任务执行。别的到期测试资料按规则暂停,高经理的资料保持在线。日志写明原因,不是“陈总同意”,而是“有效银行受理凭证,三个工作日宽限”。 他给公司打电话报平安时,马飞还没走。 “你今晚不是值班。”林海说。 “我等第一次状态切换。” “手册上写不需要你在场。” “我没操作。” “在场也会让小郭先看你脸色。” 马飞隔着玻璃看向另一边。小郭果然坐得笔直,每次键盘输入都回头看一眼。 他沉默几秒,拿起包:“那我走。” 回住处的末班车已经没了。马飞走了半个多小时,路边只有夜宵摊还亮着。他买一碗馄饨,坐在矮凳上吃到一半,忽然想起苏雨桐说家里没有热水。 第二天中午,他从旧货市场买来一只保温瓶。瓶身印着红色牡丹,木塞有一点漏气。他没直接送到合租房,而是带到公司,说楼下开水房每天早晚可以多打一壶,谁需要谁带走。 苏雨桐看见那只过分鲜艳的牡丹瓶,没有拆穿。她下班时提走了,第二天又在瓶把上系了一条写名字的布带,免得与房东家的混。 钱仍未到账。 第二个工作日上午,高经理来电话,语气从生气变成不安。他担心账号写错,想重新汇一笔,再让前一笔退回。 “不要重复汇。”马飞说,“现有指令没有失败证据。我们下午再向双方银行查询,结果传真给你。” “如果一直找不到呢?” “到宽限结束转人工争议,商业资料是否继续由合同条款处理,但不会让你盲目再付一次。” 高经理说自己做了十几年生意,最怕的不是钱慢,而是甲方说没收、银行说已办、每个人都让他再等等。他愿意为一套能说清状态的服务付钱,但前提是星辰自己先别把六种状态说乱。 第三个工作日上午十点二十三分,银行到账通知终于送来。 入账金额两万一千元,付款单位正确,银行记账日是当天。周会计在财务账上确认收入,在服务账上完成续期,又让林海把交易状态从“状态待核”变为“已到账”。三个动作分别由三份凭证支撑,没有任何一本账被倒填成星期五到账。 高经理收到传真后,第一句话是:“原来盖章不等于到了。” “只等于银行受理了你的申请。”周会计说。 “你这句话早说,我就少生三天气。” “以前我们也没分清。” 那天下午,星辰没有为两万一千元到账庆祝。大家只把六状态图贴到支付预研文件夹内页,并在最下面写:状态变化不由用户愿望、客户关系或公司现金压力决定。 苏雨桐下班时提着牡丹保温瓶。瓶里的开水轻轻晃,木塞发出细小的吱声。她站在门口问马飞:“你觉得以后真能让到账不用三天吗?” “速度会变快。” “状态就会变简单?” “不会。越快,错一次越来不及追回。” 她点点头,走进傍晚的人流。 马飞回到桌边,把三天里的电话、传真、银行查询和服务宽限按时间排好。六种状态依旧粗糙,不能连接银行系统,也不能自动核验身份。但它们至少阻止了两件事:星辰没有把在途款当成自己的收入,高经理也没有因为焦虑重复汇出两万一千元。 到账要三天。 这三天不是技术落后的空白,而是责任在多个机构之间移动的真实时间。 未来的支付系统若想缩短它,首先要做的不是把页面上的钟拨快,而是让每一步都留下谁可以相信、谁必须等待、谁要在什么时候给出答案的证据。 第54章 不能替客户保管钱 赵律师第一次来星辰时,带错了门牌号。 她按照周会计写的地址找到二楼,推门看见一屋子卖灯具的人。对方听说她找“星辰”,热心地指向窗外,说晚上抬头就能看见。她又在楼道绕了十分钟,才发现三楼那块公司牌被晾晒的床单挡住一半。 “你们连门都不好找,”她进门便说,“倒先想替别人管钱了。” 赵秋寒三十四岁,在一家不大的律师事务所做公司与合同业务。她穿灰色风衣,骑自行车来的,裤脚还夹着两枚银色车夹。公文包边缘磨破一块,用与包颜色完全不同的棕线缝过。 周会计同她是夜校同学。两人见面没有客套,先为咨询费争了五分钟。赵秋寒按小时收费,周会计坚持星辰只付得起半天。最后定成三小时,超过部分若继续,由下一次书面委托另算。 陈维明在旁边小声说:“律师说句话也计时。” 赵秋寒听见了,抬腕看表:“抱怨的这句不计。” 桌上摆着支付预研的三本账、两万四千元误汇退款回单,以及高经理那笔延迟三天到账的完整记录。马飞还写了一页构想:买方在星辰建立账户,将钱预先存入;确认收货后,星辰再转给卖方。这样既减少重复跑银行,也能缓解陌生交易的不信任。 这套构想在未来有无数成熟形态。可赵秋寒只看了一页,就用钢笔在“将钱存入星辰”下面画了两道线。 “先回答,”她说,“钱存进哪一个银行账户?” “公司开一个专用账户。”陈维明说。 “账户名是谁?” “星辰公司。” “银行看见的是谁的钱?” 陈维明停住。 “进你公司名下账户,法律和银行记录首先会把它看成由你控制的资金。”赵秋寒说,“你内部账上写‘客户余额’,不能自动改变外部权属。公司欠债、账户被冻结、经办人操作错误,客户凭什么优先取回?你们拿什么资质向不特定的人收钱、保管、再转付?” “我们不拿去用。” “不想用和不能用是两回事。控制权在你手里,风险就已经出现。” 窗外有人开始放鞭炮。中秋临近,楼下商店开业,红纸屑被风卷上三楼。林海关窗时,正好有一小片落进赵秋寒的茶杯。她用笔尖挑出来,继续问:“客户的钱放多久?有没有利息?退款谁批准?卖方不发货,你们判断谁对?内部有人伪造确认怎么办?” 每一个问题都不像产品按钮,却都可能在按钮被按下后落到某个具体人头上。 苏雨桐拿出六状态图:“我们的初步想法是,只记录付款指令和银行回执。资金仍由银行转。” 赵秋寒看得比构想页更久:“这条路相对清楚,但也不是画个箭头就能做。银行是否接受你们传递指令,以什么身份接受,客户怎样授权,错误指令由谁承担,都要谈。你们不能在没有合作协议时,让客户误以为星辰能命令银行。” “如果只做企业客户之间的封闭试验?”马飞问。 “先做不涉及真实资金的流程验证。真要小额试付,付款人与收款人直接在银行开户、直接授权银行转账。星辰可以在取得各方同意后记录订单号、指令号和回执状态,但不把钱先进自己账户,也不对银行之外的到账作虚假担保。” “那我们靠什么收费?”陈维明问。 “你们现在问的应该是先凭什么不出事。”赵秋寒合上笔帽,“等服务边界成立,再谈信息处理、对账或技术服务费。不要靠客户资金沉淀过日子。” 咨询进行到一半,苏雨桐去开水房续水。回来时,她带着房东送的四只月饼。纸包拆开,里面是最普通的五仁馅,表皮硬得掉渣。她把月饼切成八块,连赵秋寒也分到一块。 “咨询时间还在走。”陈维明提醒。 “吃东西不影响我听。”赵秋寒咬了一口,发现太干,端起茶杯喝水,“你们还有一个问题没说:搜索数据准备怎么用?” 马飞看向苏雨桐。 支付预研最自然的想法,是利用星辰已有查询与商业资料判断用户需求和风险。某个人搜过什么、点过什么,似乎能帮助判断交易是否异常。但团队在整顿点击统计时已经确立,原始查询不能作为普通商业资产随意出售,也不能因为技术上能关联,就偷偷变成付款审查依据。 “不用个人查询历史作支付身份或信用判断。”苏雨桐说,“两套数据默认分开。若未来确有明确用途,必须重新取得同意,并允许不参加。” “写进边界。”赵秋寒说,“还要说明拒绝授权不应导致他失去基础搜索服务。” 林海坐在门边做记录。他忽然问:“如果系统为了方便,把银行回执文件放在搜索服务器上,算不算混用?” “算。” “那支付试验要独立机器。” “现阶段买不起。”周会计说。 “买不起就先用离线账,不上生产机。”马飞说。 他在采购计划里划掉“支付账户服务器”,改成一台不联网的旧电脑用于模拟账务,预算来自支付预研而非先进工程或搜索生产。若连旧电脑都买不起,就先用纸和软盘,不把现实资金带进尚未隔离的系统。 三小时结束,赵秋寒准时停笔。她给出的不是许可证,也不是一句“可以做”,而是一份待办清单:核对公司经营范围;形成银行合作前不得代收代付的内部决议;起草封闭试验参与协议;明确资金不进入星辰账户;定义退款、争议和数据使用;所有对外材料不得使用“存款”“保本”“担保到账”等词。 “你的结论是什么?”陈维明问。 “以你们现在的条件,不能替客户保管第三方交易资金。” “以后呢?” “以后看资质、合作结构和当时规则。今天的咨询费不包括替未来保证。” 她收好公文包,准备去看住院的父亲。周会计把剩下两块月饼包给她,她起初不要,听说是房东送的才收下,说如果算公司礼品又要登记。 下楼时,赵秋寒看见门牌上的床单还没收,踮脚把布角往旁边挪了挪。 “做支付之前,”她回头说,“先让来找你的人知道你是谁。” 那句话既是玩笑,也被马飞记进了问题表。 第二天,星辰向所有商业客户发出一份说明:公司不接受第三方采购货款,不替交易双方保管资金。误汇将按核验流程退回,由此产生的时间和费用依合同与责任处理。正在进行的支付研究不等于现有付款服务。 高经理第一个打来电话,问是不是因为上次两万四的事。 “是,也不只是。”马飞说。 “真让你们代收,我其实也不放心。”高经理承认,“但买家问起来,我总想有人替我担保。” “担保不能只靠网页上多一个星辰标志。” “那你们研究半天,还是让银行拿着钱?” “对。” “你们只记账?” “记指令、状态、证据和争议,不碰不该碰的钱。” 高经理想了一会儿:“那也有用。至少别再让我拿着盖章回单跟周会计吵三天。” 公司随后开了一次内部清理。陈维明曾写在构想页上的“客户余额池”被划掉;所有商业合同新增禁止代收条款;小郭在回复模板里加上银行账户边界。林海检查共享目录,发现一次误汇回单的传真扫描件与普通客户资料放在同一文件夹,立即移到独立加密软盘,并登记访问人。 晚上,苏雨桐把剩下的半个月饼带回合租房。房东大姐正在院里修煤气灶,手上全是黑油。听说他们研究了一天,结论是不能拿别人钱,她笑得直不起腰。 “这还用律师教?” “不是不能拿,”苏雨桐说,“是不能把替别人办事的钱,当成自己的钱。” “那更该早懂。” 房东拧紧最后一个接头,抹肥皂水检查有没有气泡。火点起来时,蓝色火苗轻轻一跳。苏雨桐终于不用再去公司提那只牡丹保温瓶,却没有把它还回去。她把瓶放在书桌下,冬天总会用到。 另一边,马飞把支付预研文件夹与先进工程问题册分开放进两个柜格。一个面对金钱流动,一个面对火与机械,看似相隔很远,却共享同一条朴素边界:不能因为目标重要,就把不属于自己的资源先拿来用。 搜索用户的查询不是星辰可以随意出卖的东西。 客户的货款也不是星辰可以随意控制的东西。 星辰若真想成为连接交易的一层,首先必须接受自己不是银行、不是法院,也不是能够凭技术替所有人作主的裁判。 它能做的,是在获得明确授权的边界内,把指令说清,把状态留住,把错误暴露,并在自己无权决定时,诚实地把决定交还给有权的人。 这听上去不像一项宏大的创新。 却是支付预研第一次从“怎样让钱经过星辰”,转向“怎样让钱不必属于星辰,也能被可靠地看见”。 第55章 身份不是密码 那张错误付款指令,是用正确密码发出的。 星期一上午九点二十三分,支付模拟机在纸带打印机上吐出一行字:账户hm-003向供应商a支付八百元,授权通过。 机器没有联网,钱也没有真的转走。可负责测试的高经理看到打印纸,脸色仍一下沉了。 “我没下这条指令。”他说。 系统记录显示,登录名属于他,密码一次输入正确,终端也是华北技术资料服务部办公室里那台测试电脑。从当时约定的三个条件看,机器有充分理由相信操作者就是高经理。 “谁知道密码?”马飞问。 高经理没有马上回答。 办公室里几名业务员互相看。送过锦旗的年轻人小声说:“大家都知道。” “什么叫大家?” “高经理把密码写在电话本封底。他出差时,要我们替他查状态。” 高经理拍了一下桌子:“查状态,不是付款!” “系统里只有一个账号。”年轻人说,“查和付都是进去以后点。” 操作人很快找到了,是负责采购的老杜。他不是故意冒充老板,也不是想偷钱。供应商催得急,高经理在外面开会,老杜认为这笔八百元样品费早已口头同意,就拿共用密码发出了模拟指令。 “以前我拿你的章去盖采购单,不也是这样?”老杜说。 “章在财务柜里,要登记!” “密码就在电话本上。” 争执像一根火柴,把办公室几个月来依赖熟人和口头命令维持的习惯全照亮了。高经理觉得下属越权,老杜觉得自己只是替老板办事。星辰的系统则把两个人压成同一个登录名,连争议从哪里开始都无法解释。 马飞取消了当天剩余测试。 陈维明不赞成:“这是模拟,错了就改。三个客户都约好了,停一天又得重新排。” “正因为还没动真钱,才有资格停。” “密码共享是客户管理问题。” “系统把知道密码当成有全部权力,也是我们的问题。”苏雨桐说。 她把错误指令、口头采购同意和电话本密码分别写在三张纸上。第一张证明系统做了什么,第二张证明业务上可能有购买意图,第三张只证明某个人知道一串字符。三张纸不能互相替代。 “身份不是密码。”她在黑板顶端写,“身份回答是谁,授权回答他能做什么,意愿回答他这一次是否真的要做。” 高经理仍在气头上:“说得容易。难道每次付八百块,我都亲自跑回来?” “可以给老杜自己的身份和采购权限。” “他要是乱付呢?” “超过额度再由你确认。权限不该靠共用一个老板密码解决。” 老杜站在门边,脸色也不好看。他工作十几年,第一次被一台电脑明确告诉自己既不是高经理,也不能因为过去常替老板盖章,就自动拥有所有数字权限。 午休时,华北资料部食堂只有土豆炖白菜。众人端着铝饭盒坐在院里吃。高经理与老杜隔着两张桌,谁也不看谁。送锦旗的年轻人偷偷告诉小郭,老杜的妻子前几天住院,他急着把样品订下来,是想早点下班去送饭。 这个理由不能让越权变成正确,却让“恶意操作”四个字显得不合事实。 苏雨桐端着饭盒走到老杜旁边,问他若系统给了自己的账号、八百元以内采购权,并记录每笔用途,他愿不愿使用。 “愿意。”老杜说,“可高经理出差,超过八百怎么办?” “电话确认只是第一步,还要有能留证的方式。传真签字、预先批准的采购单,或者两个人共同确认。” “手续多了,货会慢。” “是。” 苏雨桐没有承诺既绝对安全又毫不麻烦。她只问,哪些采购真急,哪些可以提前列计划。老杜想了一会儿,说大多数不急,是大家总等供应商催到最后才办。 下午,星辰把模拟账户从“一个单位一个密码”改成“一个实际操作人一个身份”。高经理、采购、财务各自登记,权限分开。查询状态不等于可以付款;制单不等于可以授权;授权也不等于银行已经执行。 最麻烦的是身份怎么确认。 一九九九年没有随处可用的智能手机,也没有成熟的统一网络身份。电子邮件可能共用,电话可能由前台接,身份证复印件能证明某个名字存在,却不能证明此刻坐在电脑前的就是那个人。 林海提出给每个测试人发一张编码卡,首次登记时当面核对,密码加编码卡共同使用。卡丢失必须挂失,补发后旧卡失效。 “卡也能借。”小郭说。 “能。”林海回答,“钥匙也能借。区别是每个人有自己的钥匙,丢了知道作废哪一把,不用全公司共用一把。” 苏雨桐再加一层:付款金额、收款对象或常用方式发生显着变化时,不因登录成功就直接执行,要显示完整信息并再次确认。高额指令必须由不同角色复核。 “什么叫高额?”陈维明问。 “由参与单位根据实际业务设置,不由星辰统一拍脑袋。” “设置以后可以改?” “可以,但改权限本身也要复核并留记录。” 一层套一层,像给每扇门又加门。有人觉得麻烦,有人觉得仍不够。马飞在讨论中不断想起前世火箭系统的授权链:自动程序根据传感器判断,地面人员拥有干预权,指挥岗位又受程序和窗口限制。任何一个“谁可以做什么”含糊,都可能在零点七秒里变成无法追回的后果。 但他没有把支付做成火箭发射。八百元样品费需要与风险相称的保护,不能因联想到灾难就堆上十道审批,让系统无人愿用。 “最小权限,风险上升时增加确认。”他说,“普通查状态别弄得像进保险库。真正付款才逐级检查。” 晚上,苏雨桐回到合租房,发现自己的一封学校来信已经被拆开。房东大姐很尴尬,说信塞进门缝时与水费通知粘在一起,她没看名字就撕了。 信里只是检索课题会议安排,没有秘密。可信封上的收件人明明写着苏雨桐,拿到同一扇门里的信也不代表有权拆开。 房东不停道歉,提出以后所有信都放在窗台,不替任何人收。苏雨桐没有生气,只找来三个废纸盒,分别写上合租人的名字。公共地址不变,进入门后的边界却可以分开。 她把这件事记在第二天的评审会上。 “你拿房东做身份测试?”陈维明问。 “我拿自己被拆开的信说明,共用入口不等于共同授权。” 马飞注意到信封边缘被她用胶带重新粘好:“内容没事?” “没事。只是下周三回学校开会。” “几点结束?” “不知道。” 他本想说晚了去接,又觉得学校到住处是她每天自己走的路。最后只说:“牡丹保温瓶还漏吗?” “换了木塞,不漏了。” 一句笨拙的关心停在那里,没有变成替她安排生活。苏雨桐把粘好的信放进资料夹,继续审测试权限。 一周后,华北资料部重新进行模拟。老杜用自己的身份制单八百元,系统显示金额、供应商与用途。他在权限内提交,财务核对采购计划,高经理不必亲自登录。另一笔一千五百元超过额度,系统进入待复核,没有因为老杜再次输入正确密码就放行。 高经理在外地收到传真,签字确认后回传。星辰记录传真来源和人工核验,状态从待复核变为已授权。因为仍是模拟,最后一步只生成银行指令草稿,不实际划款。 “慢了半天。”老杜说。 “妻子那边耽误了吗?”苏雨桐问。 “今天她出院。”他脸上第一次有了笑,“我下班去接。” 高经理也没有追究第一次操作。他把电话本封底那串密码涂黑,撕下来当众烧掉。纸灰落进烟灰缸,仍能看见两个没烧净的数字。 林海提醒,仅仅烧纸不够,旧密码必须在系统里作废。高经理骂了一句“你们真不懂仪式感”,还是当场完成了更换。 错误付款指令被保留在模拟账里,没有删除。记录旁边写着:有效登录,身份混用,授权不成立,未执行真实资金。 它不是一次黑客攻击,也不是某个人道德败坏。 它只是证明,一个知道秘密的人、一个正在使用设备的人、一个被公司赋予职责的人和一个此刻真正同意付款的人,可能完全不是同一个人。 密码能挡住不知道它的人。 却不能替系统回答,门后站的是谁,他为何进来,又有没有权把这笔钱送出去。 支付预研因此多了一条最基础也最难的原则:先承认身份无法被一串字符完全证明,再为权限、意愿和追责分别留下证据。 第56章 第一次对账差一分 一九九九年十二月三十一日,星辰的模拟账少了一分钱。 周会计把算盘重新拨了一遍,仍然少一分。 她不信,又把一百组付款、失败和退款记录逐张翻出来,用铅笔在金额旁打钩。晚上八点,楼下商店已经开始放迎接新世纪的歌曲,办公室里只听见算盘珠子撞击木框的声音。 “电脑汇总是九百八十七元六角三分。”小郭说,“纸账是六角四分。” “银行模拟回执呢?” “六角四分。” “那电脑少一分。” “也可能你多算一分。” 周会计抬眼看他。小郭立刻把后半句咽回去,拿走一半凭证重算。 今天本来只是封闭试付前的最后一次模拟。他们用一百组虚拟交易覆盖正常付款、金额超限、身份复核、银行受理、失败退回和部分退款。所有钱都停留在纸面和不联网的旧电脑里,目的就是证明三本账可以相互对应。 测试结束后,众人约好去广场看零点倒计时。 林海从家里带来一只饭盒,里面是妻子包的白菜猪肉饺子。饺子挤在一起,皮有些破。他说十点煮,吃完正好出门。苏雨桐买了两袋花生和一串小彩灯,准备挂到窗边。陈维明甚至带来一瓶香槟样子的苹果汽酒,瓶塞上拴着金色塑料绳。 少掉的一分钱把所有计划停在八点。 “会不会是录入错了?”林海问。 “每张单两人录入,差异已经比过。”苏雨桐说。 “打印丢了一位?” “总数能重复生成。” “一分钱而已。”陈维明终于忍不住,“一百组里差一分,明年再查。今天所有人都有安排。” 周会计把算盘往桌中间一推:“账上没有‘一分而已’这个科目。” “我不是说不查。先把结果写成基本一致。” “差一分就不是一致。” “真实做生意还有合理损耗。” “损耗要有去处。” 两个人争起来时,锅里的第一批水正好烧开。林海忘了揭盖,热水扑出来浇灭电炉,屋里腾起一股白汽。众人忙着拔插头、擦桌子,包好的饺子只能继续在饭盒里粘着。 马飞站在打印纸前,没有参与争论。 前世大型工程中,最危险的数字常常不是明显错误,而是“只差一点”。百分之一的推力偏差、几十毫秒的时序漂移、一个被平均值掩盖的异常点,都会因为不值得停下而被带进下一阶段。等它与另一个小偏差相遇,代价就不再小。 支付系统同样如此。一分钱如果没有解释,它可能来自舍入,也可能来自重复扣款、遗漏退款或状态错位。金额小,只能说明这次损失小,不能证明机制安全。 “今晚查完。”他说,“倒计时赶不上就不赶。封闭试付推迟,直到三本账完全相等。” 陈维明看了一眼手表,最终没有再反对。他脱下大衣,卷起袖子:“怎么查?” 他们把一百组交易按十组一叠分开,分别计算付款本金、技术服务费、退款和失败回冲。九点十二分,差异缩小到第六叠;九点四十分,锁定三笔金额三元三角三分的测试交易。 按设计,星辰未来若收技术服务费,将在银行确认交易完成后单独出具服务账单,不从客户货款里暗扣。模拟程序为了测试计费,按百分之一点五计算。单笔三元三角三分乘费率,结果不足一分的部分必须按约定舍入。 问题在于,两处程序舍入方式不同。 交易明细对每笔分别保留到分,再相加;批次汇总先把三笔精确小数相加,最后统一保留到分。两种算法在大多数金额上相同,碰到这三笔时,相差恰好一分。 “那选一种就行。”小郭松了口气,“不是钱丢了。” “现在是模拟,所以没丢。”苏雨桐说,“真实执行时,如果客户明细按一种扣,财务汇总按另一种记,这一分会真的不知道属于谁。” “每笔舍入,还是批次舍入?”陈维明问。 周会计说,首先要按合同明确计费单位。对客户逐笔出账,就必须每笔计算并显示,不可以在后台用批次算法制造一个无法对应的差额。更重要的是,程序不应使用会产生隐含小数误差的通用数值表示来存钱。 马飞在白板上写:金额统一用“分”作为最小整数单位。任何比例计算必须写明舍入时点与方向,结果生成独立服务费凭证。货款本金、银行费用和星辰服务费不混在一个数字里。 “如果以后有比分更小的计算呢?”小郭问。 “中间计算可以有更高精度,但进入客户应付前必须按规则落到分,并把舍去部分的处理说清。” 林海则检查另一层:即使计算一致,一笔状态变化也不能只改余额。每次虚拟付款必须同时产生来源和去向,失败则用新的反向记录冲回,不删除原记录。 他在纸上画两个方框。付款人减少八百元,待银行执行增加八百元;银行确认后,待执行减少八百元,收款人应收增加八百元。每一步左右相等,任何一边缺记录,当天就不能结清。 “这叫双分录?”小郭问。 “会计一直这么干。”周会计说,“你们程序现在才肯学。” 十点半,林海重新点着电炉。第一锅饺子已经粘成一团,只能煎。没有平底锅,他在铝饭盒里抹油,把破饺子摊成一张饼。香味慢慢出来,大家围着桌子用筷子夹,谁都分不清自己吃的是皮还是馅。 苏雨桐把小彩灯挂起来。彩灯只有红绿两色,接触不良,每隔几分钟就全灭。马飞用胶布固定插头,它才勉强亮住。 十一点零五分,程序改完。 一百组交易重新运行。第一次在第七十三组停下,因为一笔失败回冲没有关联原指令号;第二次又发现部分退款的状态名称含糊,“已退款”没有区分银行受理和客户账户实际收到。 每修一处,都会露出另一处过去被总数相等掩盖的问题。 十一点四十二分,第三次运行完成。公司财务模拟账、服务履约账、交易状态账全部为九百八十七元六角四分。每一笔借方都能找到贷方,每一次失败都有新的记录指向原始指令,历史没有被覆盖。 周会计仍不肯宣布通过。她随机抽十笔,从纸质授权追到程序记录,再追到模拟银行回执。最后一笔核完时,楼外已经有人提前放烟花。 十一点五十六分。 “通过。”她说。 众人冲下楼,广场肯定赶不上了,只能爬到楼顶。通往屋顶的铁门生锈,林海踹了两脚才打开。寒风迎面扑来,小彩灯来不及拆,他们只带上那瓶苹果汽酒和几只搪瓷杯。 远处的城市灯光被薄雾揉成一片。没有统一倒数,几栋居民楼里传出电视主持人的声音,时间还差十几秒,鞭炮已经从四面八方响起来。 陈维明拔瓶塞,塞子没有飞,只发出一声闷响。他把汽酒倒进杯子,泡沫漫到手上。 “为了什么干杯?”小郭喊。 “为一分钱。”周会计说。 “为二〇〇〇年。”林海说。 苏雨桐望向马飞:“你呢?” 马飞听着零点的钟声。二〇〇〇年,本来是路线图上移动支付预研和火箭技术储备同时展开的一年。它终于到来,却没有未来记忆中的高速网络、智能终端和成熟市场…… “为能对上的每一步。”他说。 杯子碰在一起,搪瓷边缘发出不整齐的响声。苹果汽酒甜得发腻,喝不出香槟的味道。楼下有人认错烟花方向,整栋楼都在笑。 苏雨桐把手伸进口袋,拿出那封曾被房东误拆、后来用胶带粘好的信。她把信封背面空白处撕下一小条,写上“一分钱,查到十一点五十六”,递给周会计当书签。 周会计收下,说下次再差一分,不许拿过新年当借口拖到明年。 众人又笑。 零点过后,生活没有突然改变。公交已经停运,林海要骑车回家,马飞和小郭帮他把车从堆满杂物的楼道抬出来。苏雨桐提着牡丹保温瓶,里面装了剩下的热水。陈维明负责把空汽酒瓶带走,免得第二天被房东说公司在屋顶喝酒。 下楼前,马飞回头看了一眼城市。 新世纪的第一分钟,星辰没有完成一笔真实网络支付,也没有点燃一台火箭发动机。 但它决定了以后每一分钱都必须以整数落账,每一次移动都要同时留下来源与去向,每一个“已退款”都要说清究竟走到了哪里。 一分钱没有让他们发财,也没有让他们损失惨重。 它只是让星辰在真正碰到别人的钱以前,学会了不把无法解释的差额叫作合理误差。 第57章 黑名单里的人 王建军拎着一只保温饭桶来到星辰,问自己为什么成了骗子。 他四十来岁,穿旧军大衣,眉毛上还沾着雪。饭桶用蓝布套包着,一路被他攥得很紧。进门后,他没有坐,也不喝水,把一张模拟试付拒绝通知拍在桌上。 通知写得很克制:参与人未通过风险检查,本次指令暂停,请联系试验人员。 可华北技术资料服务部的业务员转达时,只说了一句:“你在黑名单里。” “我做了十七年采购,”王建军说,“欠过谁的钱?骗过谁的货?今天我爱人在医院等饭,我请两小时假来问。你们要是有证据,拿出来。” 陈维明正要解释这只是封闭试验,苏雨桐先请王建军坐下。对方仍站着,饭桶里的汤轻轻晃,发出水撞金属的声音。 “我们先查触发原因。”她说,“通知不应该让别人告诉你结论。二十分钟内给第一次答复。如果查不清,明确下一次时间。” 王建军看了一眼墙上的钟:“我十一点半得走。” 小郭从不联网的模拟机调出记录。王建军代表一家仪器厂参与一百笔小额试付前的账户验证。他的姓名与合作客户提供的一份争议人员表完全相同,规则因此自动暂停。 表上也只有姓名。 没有单位,没有证件号码,没有争议日期,甚至没有说明那位“王建军”究竟是欠款、退票还是仅被某个业务员投诉。 “谁给的表?”马飞问。 陈维明承认,是一位老客户听说星辰要做付款试验,主动提供的“业内信用资料”。共七十三个名字,客户保证都是有问题的人。 “你导进系统了?” “只是测试。做风控总得有坏样本。” “来源核过吗?” “都是熟人做生意多年积累的。” “熟人不是证据来源。”苏雨桐说。 陈维明的脸也沉下来:“我想帮项目少吃亏。你以为骗子会主动签字承认?” “所以更不能只凭名字。” 王建军听明白了。他与名单上的人可能只是同名,却已经被系统和转述一起变成“骗子”。他气得把通知揉成一团,问星辰是不是还把这个结论发给了别的公司。 “没有。”马飞说,“名单只在离线试验里,尚未用于真实交易,也没有对外发送。但参与客户的一名业务员用了错误说法,我们会更正。” “你说没发,我怎么知道?” 这个问题比同名本身更难。星辰要求别人相信自己的内部边界,却没有给被判断的人任何查看和纠正途径。 苏雨桐把模拟机屏幕转向王建军,让他看见触发项与访问记录。她没有展示名单上其他人的名字,只说明这一条仅含同名,无法确认属于他。随后,她在纸上写出处理:本次自动暂停撤销;同名记录不再作为拒绝依据;向华北资料部发更正;原错误不删除,标记为误判;王建军可以获得与本人有关的处理副本。 “谁保证以后不会再来?”王建军问。 “不能保证没有误报。”她说,“能保证不把自动命中直接当定罪,有人复核,有申诉入口,有期限,也能追到使用了哪条资料。” 王建军盯着她,怒气没有立刻消。他最终坐下,把饭桶放在脚边。大衣敞开后,露出里面洗得发白的工作服。 “我爱人做手术,厂里同意让我参加试付,是因为以后买材料不用总跑银行。”他说,“现在还没付钱,就先把我名字挂黑。你们这方便,是方便谁?” 屋里没有人能轻松回答。 所谓风控很容易从公司视角出发:少损失、少争议、少承担责任。每拒绝一个可疑人,统计上似乎多一分安全。可对被拒绝的人而言,他需要请假、坐车、解释自己的清白,甚至可能在单位留下不可信的印象。系统节省的成本,被悄悄转移到他身上。 “今天耽误的车费和工时,我们按试验约定补。”马飞说。 “我不是来要十块钱。” “我知道。更正也会做。但这是我们的误判成本,不该由你一个人付。” 王建军没有再拒绝。他看时间已近十一点,起身要走。苏雨桐从抽屉里拿出牡丹保温瓶,把公司早上烧的热水灌进他的饭桶外层保温槽。原来的水已经凉了。 “医院远吗?”她问。 “三站车,再走十分钟。” “现在走赶得上。” 王建军接过饭桶,动作慢了一点。临出门,他回头说:“名单上那个人如果真欠钱,也该把事情写清楚。不能只剩个名字。” 这句话被写到风险规则第一页。 下午,华北资料部那名业务员来道歉。他说“黑名单”三个字是图省事,没想到王建军会直接找上门。高经理在电话里训了他半小时,又要求星辰别因为一次误判就把所有风险规则撤掉。 “当然不撤。”苏雨桐说,“撤掉规则和迷信规则,都是逃避判断。” 七十三人名单被立即停用。陈维明起初很难接受。他为了得到这份资料,请了客户两顿饭,还答应以后提供行业查询趋势。如今纸上内容不能用,之前的交换也暴露了另一个问题:他差点拿星辰的数据规则做口头人情。 “我没给个人查询。”他说。 “但你承诺之前问过吗?”马飞问。 “只是行业趋势。” “可以做匿名汇总,也要先定义范围和最低样本,不能一句趋势就什么都给。” 陈维明坐在锦旗下面,许久没说话。他擅长在不完整信息里建立关系,这曾帮星辰拿到第一笔客户与资金。现在公司进入支付领域,同一种本领若没有边界,也可能把未经核验的名单、口头承诺和私下交换带进系统。 “两顿饭算我个人交学费。”他说,“不报销。” “饭不是核心。”苏雨桐说,“以后任何外部风险资料要登记来源、用途、可纠正方式和使用期限。没有这些,不进规则。” 星辰重新设计风险处理。 自动规则只能做三种动作:提示、增加验证、短时暂停。永久拒绝必须有可说明的事实与人工复核。通知不得只写“未通过风险检查”,至少要告诉参与人是哪类信息触发、他能提供什么材料、谁在何时答复。 对于无法披露他人隐私或调查细节的情况,也不能编造理由,只能明确可披露范围与复核路径。 苏雨桐又建立两张表。一张统计漏过的风险,一张统计被错误拦住的正常人。陈维明问为什么给“误伤”单独做指标,她说如果只统计损失,最容易得到零损失的办法就是拒绝所有人。 “那肯定安全。”小郭说。 “也肯定没有支付。” 当天晚上下起大雪。公交停得早,马飞和苏雨桐步行送更正通知到华北资料部。路面积雪被踩成黑泥,鞋很快湿透。高经理已经下班,值班的老杜替他们收件,又从煤炉上拿两只烤馒头让他们带走。 “王建军爱人手术怎么样?”苏雨桐问。 “顺利。”老杜说,“他下午回厂还被人问,是不是欠钱上了黑名单。气得差点跟业务员打起来。” 更正来得再快,也追不上流言。 马飞让老杜次日开早会时公开说明是星辰同名误判,与王建军信用无关;书面通知同时交给仪器厂。老杜答应了,说这事不能只让年轻业务员私下道歉。 回程没有公交,两人沿着结冰的人行道慢慢走。苏雨桐把一个烤馒头掰开,里面没有馅,只在表面抹了一点盐水。她把较热的一半递给马飞。 “我们今天解释清楚了吗?”他问。 “在系统里清楚了。” “人嘴里呢?” “慢得多。” 路灯把两人的影子拉得很长。自动规则只用了一瞬间就把一个人挡在门外,恢复他的名字却要电话、书面更正、当面说明和第二天的公开澄清。 这份不对称不会因为算法更聪明就自动消失。 一周后,王建军重新参加模拟。他用自己的身份提交一笔六百元付款,规则没有因同名拦截。另一项金额变化过大的测试则被暂停,并清楚显示需要补充采购单。 他完成后没有夸系统,只说:“这次知道为什么等。” 对星辰而言,这已经足够重要。 黑名单没有被改成白名单。那种简单的颜色划分被彻底取消。取而代之的是来源、事实、置信、期限、复核与申诉。 系统仍会拒绝人,也仍可能犯错。 但从王建军拎着饭桶走进办公室那天起,星辰不能再把一个命中的名字当成完整的人,更不能让任何自动判断在无人负责的情况下变成社会判决。 第58章 一百笔试付 第一笔真实试付款,是六元八角。 买的是一只继电器底座。 付款人老杜在指令单上签了两次名。第一次签在“制单人”,第二次差点又签到“复核人”,被周会计用尺子挡住。 “同一个人不能既提出又复核。”她说。 “六块八也要两个人?” “试验规则不按你嫌钱少就变化。” 高经理坐在旁边,戴着老花镜核对型号。他故意慢慢看了一遍金额、收款单位和用途,才在复核栏签字。随后,华北技术资料服务部自己的出纳拿着银行转账单去柜台办理。钱从华北资料部账户直接进入供应商账户,不经过星辰。 星辰得到的只有三样东西:双方同意的交易编号、付款指令副本、银行受理后盖章返回的状态。 银行离华北资料部有四站公交。等第一张回单送回来,已经过去两个小时。小郭把“指令已提交”改成“银行已受理”,又被林海叫住。 “谁允许你改?” “回单在这儿。” “旧状态不能改没。新增一条。” 小郭叹了口气,重新录入。六元八角在纸上只占三个数字,为它留下的时间、签字和状态却占了半页。 “照这个速度,一百笔得做到明年。”陈维明说。 “现在就是二〇〇〇年。”苏雨桐提醒。 “那得做到后年。” 封闭试付的三家参与单位,是华北技术资料服务部、一家长期购买检索报告的仪器厂,以及为星辰提供纸张和打印耗材的小供应商。三家都在同一家银行的不同网点开户,愿意配合小额、真实、可撤回的流程试验。最大单笔不超过二百元,不涉及陌生公众,不宣传,不吸收余额。 银行方面没有开放什么神奇接口。支行同意在现有柜台规则内,为每笔转账返回统一格式的受理编号;每日下班前,再给各自客户出具结果。星辰把客户自愿提供的回执与内部交易状态对应,任何系统显示都不能早于银行证据。 赵秋寒把参与协议改了七遍。第七版仍然只有十二页,却把“星辰担保付款”删成“星辰提供指令记录、状态核对与异常协助”。她特意在签字会上说,试验成功不代表取得金融业务许可,也不代表以后可以向公众照搬。 “这句话能不能小一点?”陈维明问。 “不能。” “标题都没它粗。” “那把标题也加粗。” 一百笔并不在一天完成。第一周只做十笔,每一笔由人拿着纸去银行。华北资料部的出纳跑得最勤,第三天就抱怨鞋底磨穿。马飞从试验预算里列公共交通实报,却不报新鞋。出纳说早知道就把鞋写进技术服务费,周会计回答鞋归个人,交通才归试验。 第七笔遇到第一次失败。仪器厂把收款账号末两位抄反,银行柜台核验后拒绝受理。系统没有把它写成“付款失败”就结束,而是记录拒绝原因、原指令作废和重新制单。第二张指令使用新编号,并明确关联第七笔,不覆盖原错误。 第十二笔出现重复。老杜以为同事没去银行,又开了一张相同金额的单。星辰根据付款方、收款方、金额和用途在短时间内高度相同发出提示,但没有自动断定重复。 “万一真买两个呢?”他问。 “所以让你确认。”苏雨桐说。 查明第一张已由出纳带走后,第二张取消。若没有提示,六元八角可能变成十三元六角。损失不大,却证明重复操作会把焦虑变成真实转账。 第二周,他们把同一单位的多笔指令装成批次,仍由授权人逐项确认,再一起送银行。银行回执则按受理编号逐笔返回。速度快了,新的问题也出现:一张纸上的墨水被雨水晕开,银行人员把“7”看成“1”;一笔付款在当天受理,却因收款户名少一个字进入待核;还有一笔银行已经退回,客户传真机卡纸,星辰只收到上半页。 每一种失败都带着当时生活的纹理。雨水、字迹、公交堵车、传真热敏纸和某个人赶着下班,都会进入看似冰冷的交易状态。 苏雨桐坚持保留这些细节。她不接受只写“外部错误”,因为外部两个字太容易把责任推走。系统至少要说清错误发生在制单、受理、转送还是回执接收,星辰能做什么,下一次由谁追查。 第三周,林海轮到夜班,白天本该在家睡觉。女儿的幼儿园却举办风筝比赛,他提前一个月答应参加。他找小郭换了半天状态录入,上午带林小满去公园,下午两点再到公司交接。 小姑娘的风筝是一条金鱼,刚飞起来就缠上树。林海爬不上去,只能与她坐在树下等风。风筝最终没落下来,他用剩下的竹条做了一只很小的三角风筝,傍晚带到办公室。 林小满不高兴,问爸爸为什么别人家的风筝能飞很高。 “线放得太急,方向没看好。”林海说。 “那再放一次。” “大风筝卡住了。” “修好它。” “有些东西修之前,得先承认够不着。” 马飞听见这句话,把它写在试付白板角落。支付系统也一样。他记得未来的即时支付和移动终端,知道钱会在几秒内跨过城市。可此刻星辰够不着银行核心系统,也没有权把客户账户握在自己手里。承认够不着,才会用柜台回单、批次编号和人工核对搭出一条诚实的路径。 第五十笔完成时,三家单位已经学会先把交易编号写在采购单上。第六十四笔,银行支行主动建议把回执字段顺序统一,减少传真重录。第七十九笔发生部分退款:供应商少发一件底座,退回三元四角。原付款不删除,退款以新指令反向关联,直到银行确认到账才显示完成。 王建军也参加了。他代表仪器厂提交第八十八笔,一百二十元的温度传感器样品费。风险规则因为金额高于他过去试验范围,要求补充采购单,没有再因为姓名命中含糊名单。 “这次等得明白。”他说。 第九十九笔在星期五下午完成。最后一笔属于打印耗材供应商,金额十八元五角,是一箱色带的运费。出纳在银行关门前七分钟赶到,柜员已经开始清点单据,仍按流程受理。 回单送回星辰时,办公室里只剩马飞、苏雨桐和周会计。其他人去街口买夜宵。三个人没有先看编号,而是一起核对付款账户、收款账户、金额、用途和受理章。 第100笔,状态:银行已受理。 “还没完成。”周会计说。 “等到账。”马飞点头。 晚上九点,收款方打电话确认账户增加十八元五角。口头确认被记录,但系统仍等银行正式结果。第二天上午,回执到达,最后一笔才进入已到账。 一百笔试付里,九十一笔一次完成,五笔因资料问题重新提交,两笔重复指令在执行前取消,一笔部分退款,一笔跨日确认。资金全部在参与人的银行账户之间移动,星辰账户没有出现一分钱客户货款。 周会计用算盘核完三种账,再用计算器复核。总付款、失败作废、退款和净到账逐项对应,没有一分钱未知差额。 陈维明带着两袋包子回来,听见结果后想开汽酒,被所有人拦住。上次新年那只空瓶差点被楼房管理员罚款,这次只喝热茶。 包子有一袋是肉的,一袋是白菜的,纸袋外没写。大家咬开才知道拿到什么。赵秋寒恰好来取协议副本,分到最后一只肉包子。她说这是咨询费之外的意外利益,价值太小,不单独登记。 “终于有你不登记的东西。”陈维明说。 “我说的是不单独登记,不是没有边界。” 笑声里,林海把那只小三角风筝挂到林小满的火箭画旁。风筝飞不高,线却整整齐齐绕在纸轴上。 马飞看着一百个交易编号,从tx-0001到tx-0100。它们不像未来的支付产品,没有即时到账,没有全国网络,没有一个足以吸引媒体的界面。 可每笔钱都知道自己从哪里来、要到哪里去;失败不会被擦除,退款不会假装从未付款,银行没有确认时,星辰不抢先宣布成功。 一百笔很少。 少到还不能证明系统能承受一千笔,更不能证明陌生人会信任它。 但它比路线图上的“二〇〇〇年推出支付”多了一百份真实证据,也多了一百次承担错误的机会。 支付终于不再只是马飞记忆里一个成熟产品的名字。 它在柜台队伍、磨破的鞋底、模糊的传真和一只被树困住的金鱼风筝下面,长出了第一条属于这个时代的根。 第59章 苏雨桐的第二条线 苏雨桐把公司介绍上的头衔撕了。 那张纸是陈维明准备带去行业交流会的,印着“星辰搜索首席算法专家、支付风控负责人”。排版很漂亮,她却沿着“支付风控负责人”六个字整齐撕下一条,放到马飞桌上。 “我什么时候成负责人了?”她问。 “支付试验的规则大半是你定的。”陈维明说。 “参与制定,不等于接受这个岗位。” “对外总要有个称呼。” “那就写检索研究与评估负责人。支付项目里,我负责异常检测研究和独立评估,不负责替业务批准或拒绝每笔交易。” 陈维明觉得区别太细:“客户听不懂。” “客户听不懂,才更不能把权力说大。” 一百笔试付完成后,星辰获得第一批真实但封闭的数据。九十一笔顺利、五笔资料错误、两笔疑似重复、一笔部分退款、一笔跨日确认,再加上模拟阶段的身份混用、同名误判和一分钱差异。样本很小,问题却足以构成一条新的研究线。 马飞希望她把规则尽快整理成可运行的风险模块,为下一批三百笔试验做准备。苏雨桐却先写了一份研究计划,标题是《小样本交易异常的可解释判定与误判评估》。计划里没有产品上线日期,第一阶段只有数据清理、标签来源、基线方法和盲测。 “三百笔名单已经有人等。”马飞说,“能不能先做出一个可用版本,再补研究?” “什么叫可用?” “能识别重复、金额异常、身份变化和状态冲突。” “规则能做到一部分。你说的研究若要判断人或交易异常,必须先知道标签怎么来的。七十三人名单已经证明,客户说‘有问题’不是可靠真值。” “我不是要你用那份名单。” “但你在用业务排期定义我的问题。” 这句话让屋里静下来。 苏雨桐与马飞合作以来,许多冲突都发生在具体规则上:是否改权重、是否提前上线、商业信息能否进自然结果。马飞已经习惯她提出反对,也习惯最后把反对变成产品的一部分。直到此刻他才意识到,她争取的不是在他的路线图里拥有否决权,而是拥有一条不由路线图完全定义的事业。 一九九六年,她加入星辰时写下学业优先、独立课题、技术署名和ai方向话语权。四年过去,搜索上线、权益入约、论文完成。若“ai方向”最后只是由马飞指定支付需求,再让她负责实现,那份承诺仍只兑现了一半。 “你想怎么安排?”他问。 “研究线与产品线分开。”苏雨桐把计划翻到第二页,“产品先用明确规则处理重复、权限和状态冲突,不把统计分数直接变成拒绝。研究线使用取得同意后的去标识样本,不连接个人搜索历史。两名评估人员的判断相互独立,分歧留下。方法、误报和漏报一起报告,不只报拦下多少风险。” “人员呢?” “我要一个全职数据整理名额,一个与学校合作的研究助理名额。公司资源贡献写清,但论文结论和作者资格按实际学术贡献,不由出资自动决定。” 陈维明倒吸一口气:“还没挣钱,先要两个人。” “可以分阶段。先一个兼职整理员,达到样本和评估里程碑再转全职。研究助理由学校渠道招,公司按协议提供公开课题经费。” “结果公司能不能用?” “在协议范围内能。不能删掉限制条件拿去宣传‘智能风控零损失’。” 马飞没有当场答应。他要求苏雨桐把预算、数据边界和与支付排期的接口写清,三天后再议。 这不是拒绝,却仍让她失望。 当天晚上,她母亲乘火车来北京。老人第一次看她的合租房,进门后先摸暖气,又打开窗户闻有没有煤气味。看到砖头垫起的书架和桌下牡丹花保温瓶,她问:“公司不是给你股份了吗?怎么还住这里?” “股份不能拿来交房租。”苏雨桐说。 “那马飞住哪?” “你问他做什么?” “随口问。” 母亲从旅行袋里拿出一床新棉被,花面是大朵粉牡丹,与保温瓶正好配成一套。苏雨桐嫌花太艳,母亲说北京冬天灰,屋里就该艳一点。 两个人挤在小桌旁吃从家里带来的酱菜和馒头。母亲问她学校有没有留岗机会,公司稳不稳,为什么一周要跑两个地方。苏雨桐讲搜索评估、支付试验和自己的研究计划,讲了十分钟,老人只听懂“她想做一件不是老板交代的事”。 “那就做。”母亲说,“但你别把两边都答应满,最后拿睡觉补。” 这句话比任何公司治理条款都直接。 第二天,苏雨桐带母亲去学校。校园里的杨树刚抽新叶,她们在食堂吃一角五分钱一份的素菜。曾经指导她检索论文的老师听完研究计划,同意提供匿名化评估方法和一名研究生助理,但要求数据不得离开约定设备,发表前接受伦理与来源审查。 “企业会催你给结论。”老师说,“学校也会催你发论文。两边都可能把不确定性当成拖延。你要守住的不是哪一边,而是方法。” 苏雨桐回公司时,马飞正在处理一台搜索节点的磁盘告警。他蹲在地上接线,袖口沾了灰。看见她,第一句问的不是研究计划,而是:“阿姨到了?住得惯吗?” “嫌我被子太薄,带了一床能占半间屋的牡丹。” “保温瓶也牡丹。” “你挑的。” 林海在机柜后笑了一声。马飞装作没听见,站起来递给她一份修改意见。 预算原则同意,第一阶段只招一名兼职数据整理员;学校研究助理按合作协议执行。公司拥有约定范围内的实现权,不自动占有学术作者资格。异常模型不得直接决定永久拒绝,必须经过规则解释和人工复核。搜索个人查询数据默认禁止进入研究集。 最后一条是:苏雨桐担任“检索与智能系统研究负责人”,支付产品负责人另行任命。 “为什么改想法?”她问。 “我回去看了一九九六年的合作条件。”马飞说,“ai方向话语权不是让你替我的需求找算法。” “还有呢?” “如果研究人和审批人是同一个,误判很难被独立指出。王建军已经来过一次。” 她翻到签字页,没有立刻签:“支付排期若与研究结论冲突呢?” “产品可以用已验证的明确规则继续试,不得冒用研究结论。你也不能只因为研究没完成,就阻止与研究无关、已有证据支持的流程改进。” “公平。” 两人把接口写进文件。苏雨桐在“负责人”后签名,没有撕掉这一次的头衔。 她的第一项工作不是设计一个复杂模型,而是重新给一百笔试付分类。重复指令是事实,金额变化是相对历史的信号,同名名单是低质量外部材料,申诉结果则是重要的反例。每一个标签后面都要注明谁判断、依据什么、是否可能变化。 简单频率规则先作为基线。她把样本分成训练和盲测两部分,防止团队看着答案调阈值。小郭觉得一百笔太少,复杂方法也显不出厉害。苏雨桐说,样本少不是夸大能力的理由,而是必须诚实报告不确定性的理由。 她在白板上画两条并行线。 一条写“支付产品”:身份、授权、账务、银行状态、申诉。 另一条写“智能系统研究”:异常信号、标签质量、误报漏报、可解释评估。 两条线在评估接口相交,却不合成一条。 “这就是你的第二条线?”马飞问。 “不是第二重要。”她说,“只是第二条不能被第一条吞掉的线。” 下班后,她母亲来公司接她。老人看见墙上的火箭画、风筝和锦旗,问哪一件是女儿做的。苏雨桐指向那块画着两条线的白板。 “这个。” 母亲看不懂内容,却认真点头,说字比小时候写得好看。 三人一起下楼。马飞原想请她们吃饭,被苏母拒绝,说棉被还没铺,晚上有许多事。走到路口,老人又回头把一包家里做的酱菜塞给马飞,让他别总吃方便面。 苏雨桐在旁边无奈地说:“他母亲也寄。” “那正好比较谁家做得好。” 马飞抱着酱菜,看母女两人上了公交。车窗后,苏雨桐仍在用手比划研究计划,母亲听得一脸认真。 星辰的支付系统从这一刻开始拥有了异常检测研究,却没有因此多出一个无所不知的智能裁判。 它多出的是一条独立的问题线,一个不由产品发布日期决定的评估过程,以及一个可以公开说“样本不足,不能下结论”的负责人。 而苏雨桐也不再只是马飞路线图上那个会替搜索和支付补齐算法的人。 她在星辰之内,画出了自己的方向。 第60章 零点清算 零点前十分钟,最后一只汤圆裂了。 黑芝麻馅从白皮里流出来,在铝锅里拖出一条灰黑色的尾巴。小郭拿漏勺去捞,反而把另外两只压破。周会计心疼地关小电炉,说你们写程序的人连煮汤圆都喜欢多操作一步。 那晚是正月十五。 林海没有来。他提前一周在值班表上写了“陪女儿看灯”,交接完整,电话只用于严重故障。陈维明在客户饭局,赵秋寒回家陪父亲。办公室里只有马飞、苏雨桐、周会计和小郭,守着支付试验的第一次零点清算。 一百笔试付之后,三家参与单位又运行了一个月。交易仍然小额、封闭,资金仍由银行直接划转。星辰把每日指令、受理、到账、失败和退款汇成批次,夜里与财务账、服务履约账和银行回执逐项核对。 过去二十九天,他们都在银行下班后完成日结。今天第一次把整个月未完状态带到零点,验证系统能否区分“今天发生”和“今天完成”。 桌上有四叠纸。 第一叠是付款指令,共三百二十七笔。第二叠是银行回执。第三叠是取消、失败与退款。第四叠只有一张,来自仪器厂的一笔四十五元退款,银行已在下午受理,收款方尚未确认到账。 程序把它标成“跨日处理中”。 周会计却发现,月度汇总里这四十五元已从原付款净额扣除,仿佛退款完成。 “不能结。”她说。 小郭指着交易状态:“银行已经受理,早晚会退。” “早晚不是现在。” “不扣的话,报表会显示客户多付四十五元。” “客户此刻确实还没拿回。” 距离零点只剩八分钟。 按宣传材料,星辰要在今夜完成“首月全部交易清算”。陈维明已经约了第二天上午与五家新客户见面。如果一笔退款拖到下一天,全部两个字就不能用。 马飞看向小郭:“汇总为什么提前扣?” “我把已受理退款算进预计净额,想着更接近最后结果。” “预计可以单列,不能改实际。” “现在改来不及重新跑全部。” “那就不在零点宣布全部完成。” 小郭的脸垮下来。他已经连续三晚准备这次清算,偏偏最后十分钟被自己一行看似体贴的代码绊住。 苏雨桐把一碗汤圆推到他面前:“先吃。四十五元不是世界末日。” “可客户明天来。” “让他们看到我们怎么处理跨日,比看一张假的全完成报表有用。” 窗外,附近公园的灯会放起烟花。玻璃被映得一阵红一阵绿,办公室电灯反而显得苍白。街上传来孩子尖叫和自行车铃声,所有人都在向热闹处走,只有他们围着一笔没有走完的退款。 零点到了。 系统按计划冻结当日批次,不再接受回填。三百二十六笔进入已完成或已结束状态,一笔四十五元退款结转次日。财务实际、银行已确认回执与交易账相等;预计净额被单独标明,不参与清算平衡。 屏幕上没有出现“全部成功”,只显示:本日已闭合,跨日一笔,状态可追踪。 周会计重新拨算盘。左右相等。 “这也算清算完成?”小郭问。 “算。”她说,“完成清算不等于所有事情都完成。是今天的账知道哪些结束,哪些带着证据留到明天。” 马飞给银行值班传真留下一份查询单,写明次日上午首次核查时间。系统自动生成给仪器厂的状态说明:退款已由银行受理,尚未确认到账,不建议重复申请;下一次更新在上午十点前。 该做的都做完后,四个人端着已经煮烂的汤圆上楼顶。 正月的风很冷,屋顶边缘结着薄冰。远处灯会扎出一条发光的龙,隔得太远,只能看见它缓慢起伏。小郭把最后一只完整汤圆夹给周会计,说是感谢她守住那四十五元。周会计咬开才发现里面没有馅,众人笑得差点把碗摔了。 苏雨桐的研究计划也在这一个月里开始运行。她没有用三百多笔数据训练一个“智能裁判”,只建立了基线:哪些规则准确抓到重复,哪些金额变化只是业务正常波动,哪些暂停最后被人工确认无风险。那笔跨日退款会被标成流程状态,不被误当作异常交易。 “样本够了吗?”马飞问。 “不够。” “什么时候够?” “看问题。判断重复指令可以先改进,判断人的信用远远不够。” “明天五家客户会问智能风控。” “你就告诉他们,我们现在有可解释规则和人工复核,没有能预测所有欺诈的智能风控。” “陈维明会嫌难卖。” “让他学会卖真话。” 楼下电话响起来。四个人以为是银行,跑下两层才接到。电话那头是林海,背景里全是锣鼓声。林小满看完灯,非要知道公司的“钱有没有对上”。 “对上了。”小郭说,“但有一笔明天继续。” 林小满在电话那头问:“那你们输了吗?” “没输。”周会计接过话,“是今天做完今天的,明天做明天的。” 小姑娘似懂非懂,说她的兔子灯摔坏一只轮子,爸爸答应回家修。林海确认没有严重故障,按约定没有赶回公司。 电话挂断后,马飞在值班表“未呼叫”一栏签字。星辰第一次零点清算,不仅没有依赖创始人一个人,也没有把所有能干的人从家里召回。一个系统能在林海陪女儿看灯时照常结账,正是他们建立轮班与权限的意义。 第二天上午九点二十一分,银行回执到达。四十五元退款已入收款方账户。小郭新增“已到账”状态,关联昨夜跨日记录。系统没有改动零点快照,月度最终报告则同时展示零点时状态和次日完成时间。 五家新客户十点到公司。 陈维明果然希望把报告第一页的“跨日一笔”移到附录。马飞没有同意。他向客户演示的不是一条全绿的结果,而是那笔退款怎样在零点结转、怎样防止重复申请、怎样在银行回执到来后闭合。 一家文具批发商的老板问:“你们不能让银行快点?” “现阶段不能替银行承诺。”马飞说,“能做的是不让这笔钱在等待时失去名字。” 另一家软件服务商问,星辰能否让员工直接在网上付款。马飞说,下一阶段可以在受控环境提交指令,但真实执行仍要经过参与银行认可的授权路径;公司不会因为网页能收密码,就把它叫移动支付全面上线。 五家里有三家愿意加入下一轮,两家决定观望。 陈维明散会后算了一遍,觉得六成不算坏。赵秋寒下午来审新协议,要求参与单位上限、金额上限和退出程序一项不减。周会计则提出,支付业务若开始收费,必须与搜索合同和先进工程预算继续分账。 马飞在路线图“二〇〇〇年支付预研”后画下一枚小小的勾。 他没有写“星辰支付正式上线”。一百笔试付和首月清算只证明,他们能在小范围内保存授权、追踪银行状态、处理失败与退款。它没有证明系统能承受公众流量,没有证明陌生交易风险可控,也没有证明监管会允许更大范围的服务。 同一页的“航天技术储备”后面,也有另一枚勾。先进工程组已建立事故问题册,完成跨系统时间桌面推演,并开始搜集可公开获取的材料与试验方法。仍没有发动机,更没有火箭。 两个勾都很小。 生活却已经因此改变。苏雨桐有了自己的研究线和合租房,林海能按值班表陪女儿看灯,周会计不用把不属于公司的钱硬塞进收入科目,陈维明开始学着向客户销售限制条件,马飞也第一次接受一笔未完退款可以带着清楚状态跨过零点。 晚上,苏雨桐把公司那只牡丹保温瓶带回办公室。合租房煤气灶已经修好,她不再需要每天提热水。 “放这儿公用。”她说。 马飞看着瓶身的大红牡丹:“你不是嫌它难看?” “难看也能保温。” 她把它放到饮水机旁,正好在锦旗下方。墙上红绸、故障表、火箭画、小风筝和牡丹瓶挤在一起,没有一样像精心设计的公司装饰,却把过去几年全留了下来。 零点清算完成后的第二天,星辰搜索照常响应查询,支付试验照常等待银行回执,先进工程问题册里仍有十几个问题没有答案。 没有哪一条线因为跨过二〇〇〇年就突然成熟。 但它们终于能在同一家公司里分账、分权、分时推进,又在需要的时候交换方法:搜索教会支付记录失败,支付教会航天尊重授权与状态,航天事故又提醒所有系统,不能把局部正常写成整体安全。 马飞站在那面杂乱的墙前,听见楼下早班公交驶过。 通向更大世界的入口,没有发出轰鸣。 它只在零点留下了一张左右相等、仍有一笔待办的清算表。 第61章 三百笔以后 三百笔以后,办公室里最先不够用的不是电脑,是夹子。 付款指令用黑夹,银行受理回执用蓝夹,退款和失败用红夹。封闭试付的前三个月,三只铁夹足够把当天纸张分开。五家新客户加入后的第一个星期一,上午十点,黑夹已经撑得合不上。 小郭去楼下文具店买,老板说大号夹子卖完了,只剩晾衣服的木夹。他抱回两包,周会计看了一眼,真把八十四张付款指令一张张夹在办公室晾文件的棉线上。 纸从窗边一直排到会议桌,风扇一开,像一群同时拍翅膀的白鸟。 “这也算系统?”陈维明进门时问。 “算。”周会计说,“而且比把状态塞进一个夹子可靠。” 她嘴上不让,眼睛却已经熬红。新客户的第一批指令格式不一,有的用大写金额,有的只写阿拉伯数字;两张把收款账号写在备注栏,还有一家在每笔用途后盖了三个章,传真过来全糊成黑块。 星辰原计划当天处理一百笔。到中午,只完成二十七笔初核。 银行下午四点半停止接收当日批次。照这个速度,至少一半要顺延。陈维明带来的客户代表坐在会议桌另一侧,不时抬腕看表。有人已经答应供应商今天付款,听见“资料不合格”便开始埋怨星辰规则太多。 “以前我们自己跑银行,填错了柜员会告诉。”一家文具批发商的财务说,“现在交给你们,反而要来回传真。” “你们仍然是向银行付款。”苏雨桐说,“星辰只协助生成和核对指令。” “那我付技术服务费买了什么?” 问题直接,也不无道理。 若星辰只是把银行已有的麻烦复制到网页和传真上,再收一笔钱,所谓支付产品没有价值。可若为了显得方便而替客户补账号、猜用途、跳过复核,错误又会在更快的流程里被放大。 马飞没有继续解释概念。他从棉线上取下十张被退回的指令,问客户代表:“平时最容易错在哪?” 几个人七嘴八舌。供应商全称太长,账号常从传真复印件上抄;采购员知道买什么,财务才知道从哪个账户付;老板临时同意后,签字人不在;还有人习惯把一周款项攒到星期一,一次全送。 问题不是客户不会填表,而是一张表试图在同一时刻收集采购、财务、授权和银行信息,每一栏掌握在不同人手里。 “先暂停新增批次。”马飞说,“今天已接收的按顺序处理,不承诺全部当日受理。下午和每家一起重画流程。” 陈维明立刻把他拉到楼道:“五家才进来一周,你就暂停?我谈了两个月。” “不暂停,今天会有人为了赶四点半替客户填。” “加人。临时找十个学生抄表。” “谁培训?谁复核?他们能看所有账号吗?” “总不能三百多笔做完,就永远只做三百多笔。” “所以要找瓶颈,不是拿更多手填过去。” 楼道里弥漫着隔壁灯具店焊锡的味道。陈维明靠着墙,手指在公文包搭扣上来回拨。他已经向客户保证星辰今年会扩大支付试验,如今第一批增长就被马飞按下暂停,像当年公测前夜主动推迟上线一样让人恼火。 “你每次踩刹车都很容易,”他说,“方向是我出去解释。” “我跟你一起解释。” “你解释完一句‘证据不足’,人就走了。我还得把他找回来。” 马飞没有反驳。这是陈维明真实承担的工作。谨慎不会自动转化成客户信任,也不能由销售独自为技术边界收拾后果。 两人回到屋里,向五家代表逐一说明:已收批次继续,资料错误由客户确认后更正;星辰承担自己未提前统一格式的责任,当月技术服务费按延迟比例减免;新批次暂停三天,共同设计字段与截止时间。 有两家代表当场发火。一家说月底就退出。另一家沉默很久,最后问三天后能不能真的变快。 “先给你们试新的制单模板。”马飞说,“达不到再决定。” 午饭没人出去吃。苏雨桐从合租房带来一锅前夜剩下的米饭,用电炉加水煮成稀饭。酱菜有两罐,一罐她母亲做的,一罐马飞母亲寄的,标签早掉了。陈维明尝一口,说左边的更脆,马飞与苏雨桐同时说那是自己家的。 周会计让他们别争,先把谁家罐子算清楚。小郭拿红蓝铅笔在瓶盖上各画一颗星,结果还是没人知道哪颗星代表谁。 众人围着棉线下的文件喝粥,生活的混乱与业务的混乱摆在同一间屋里。区别只在于,酱菜混了还能吃,付款信息混了不能靠味道猜。 下午,他们把制单拆成四步。 采购人先建立订单,只填供应商、用途和金额;财务从经过核验的收款人名册选择账号,不再每次手抄;授权人看完整信息后确认;星辰生成银行格式与唯一编号。任何人更改收款账号,都必须重新核验并让原授权失效。 批次还增加了截止时间。上午十一点前完成授权的,力争进入当日银行处理;以后提交的明确标成次日,不让客户在四点半前不断打电话催问一个已经来不及的承诺。 “这只是把纸换顺序。”客户代表说。 “先把责任顺序理清,才值得用程序加速。”苏雨桐回答。 林海则统计人工容量。周会计每小时最多核验二十笔,小郭在不被电话打断时能录三十笔,银行回执重录与异常追查又占去一半时间。即使机器可以瞬间生成一千张指令,团队每天能可靠闭合的仍不到一百五十笔。 “增长上限不是服务器并发。”他说,“是人能看完多少例外。” 这句话让马飞想起搜索上线初夜。那时机器仍在运行,用户服务已经失败。今天账务程序也没有宕机,纸张却堆到棉线上,电话把核验切得支离破碎。如果只看程序在线率,支付系统同样可以宣布一切正常。 三天里,他们只接旧客户的既定批次。五家新客户派财务人员来试模板。收款人名册由双方各自确认,星辰不拥有修改客户银行资料的单方权力。八十四张指令从棉线上取下,一半正常送银行,另一半在更正或顺延后处理。 那家说月底退出的公司,第三天又来了。财务人员带着一只自制印章盒,把单位章、财务章和经办人章分格放好,说新流程至少让她不用每天抱着三个散盒子跑。 “能不能再少签一次?”她问。 “对低金额常用收款人,可以按单位设批量授权规则。”马飞说,“但规则由你们自己正式批准,星辰不能替你们降低。” 她点点头,没有再提退出。 星期五,暂停解除。第一批新模板共一百零二笔,上午十一点前完成八十六笔授权,银行当日受理八十三笔,三笔因账户状态返回待核。其余十六笔自动列入次日,没有人再拿着电话问为什么四点半还没走。 速度没有翻十倍,却第一次变得可预期。 陈维明把减免金额写进客户账,脸仍有些痛。他问马飞,三天暂停值不值。 “少收了钱。”马飞说。 “我知道少收。问你值不值。” “值。” “那下次暂停前,先跟我一起准备说明。别只给结论。” “好。” 两人的矛盾没有因为一句话消失,但分工发生了一点变化。技术边界不再由陈维明独自向外翻译,客户压力也不再被马飞一句原则挡回去。 晚上,众人拆下那根晾文件的棉线。木夹子被周会计装进纸盒,没扔。 “留着做什么?”小郭问。 “下次再觉得电脑能处理一切,就把它们挂回来。” 苏雨桐拿走两个木夹,回家夹没晒干的论文。林海也拿一个,说女儿的手工作业缺夹子。剩下的留在支付文件柜里,与第一张六元八角回单放在一起。 下班时已经没有公交直达苏雨桐的住处。马飞陪她走过两站路,谁也没再谈流程。街边修鞋摊正收灯,卖冰棍的小车换成了烤玉米。她买一根,两人轮流掰着吃,玉米粒有一半没熟透。走到合租院门口,她把最后那个木夹别在布包开口,免得风把里面的论文吹走。白天用来拯救付款指令的东西,晚上只负责护住几页属于她自己的研究。 三百笔以后,星辰没有迎来指数增长的欢呼。 它先看见了打印纸、电话、银行窗口和人的注意力怎样成为新的容量边界。 一百笔成功证明流程可以开始。 三百笔之后的混乱则证明,任何不能解释例外、不能让人休息、只能靠更多手抄过去的成功,都还没有资格被复制。 第62章 银行窗口里的软盘 银行窗口第一次收下星辰的软盘时,柜员把它当成了储蓄卡。 三点五英寸的黑色塑料壳,正面贴着白标签,写着“xc-pay-0001”。柜员翻过来看看金属滑片,又递回玻璃下的小槽:“这个不能在这里办,要去楼上电脑科。” 周会计说:“就是电脑科让送窗口登记的。” 柜员又拿起内部电话。几个人隔着玻璃互相解释十分钟,最后从楼上下来一名姓何的技术员。他戴一副厚眼镜,白衬衫口袋里插着三支笔,接过软盘的第一句话是:“有没有病毒?” “在离线机上生成。”林海说。 “离线也会有病毒。用过别的盘吗?” “新盘,格式化后只写这个批次。” “谁能证明?” 林海把纸质介质记录递过去。软盘编号、购买批次、格式化时间、写入人、复核人和封存时间都有签字。何技术员仍没放松,把软盘装进透明袋,贴封条,再让周会计在交接簿上签一次。 “今天只是测试导入。”他说,“不执行资金。先看我们机器读不读得出。” 过去几周,人工重录成了支付扩容最慢也最易错的环节。客户在星辰生成指令,打印签字,银行人员再把账号和金额输入银行系统。同一串数字被人抄两次,效率低,责任也模糊。 合作支行提出,可以用软盘批量导入。星辰按银行规定的字段与长度生成文本文件,客户仍在纸面逐笔授权,银行核对批次总数和总额后导入现有系统。星辰不接入银行核心,也不直接发送执行命令,只减少一次手抄。 听起来只是在窗口多递一张盘,真正准备却用了一个月。 银行给的格式说明是传真件,第三页右下角缺了一块。收款户名到底允许二十四个汉字还是二十四个字节,双方理解不同。星辰第一次生成的文件,在第九条遇到长单位名,后面的金额全部错位。 何技术员把错误打印出来,纸有两米长。他用红笔从第九条一直画到末尾:“一行错,后面全错。不能靠最后总额碰运气。” 苏雨桐建议每条记录固定长度并带独立序号,文件开头写批次笔数与总额,结尾再写一次。导入前,银行程序先校验长度、笔数、整数分金额和批次编号;任何一项不符,整批拒绝,不进入执行队列。 小郭觉得整批拒绝太浪费:“九十九笔对,一笔错,为什么不先办九十九?” “因为纸质授权对应的是完整批次。”周会计说,“你拆开以后,总额和签字就变了。要么重新生成授权,要么提前把可拆规则写清,不能窗口临时挑。” 第一张正式测试盘因此只装十笔虚拟数据。 何技术员带他们上楼。银行电脑科比星辰办公室整齐得多,机器却同样怕灰。进门要套鞋套,软盘先在一台专门检查的电脑上扫描,再复制到导入机。何技术员把金属写保护滑片推开,确认银行只能读取,不能把文件改回去。 文件成功打开,笔数和总额正确。大家刚松一口气,导入程序却提示日期非法。 星辰写的是“2000-04-08”,银行系统只接受八位数字“”。格式说明缺掉的传真角落,正好有日期示例。 “今天不能继续。”何技术员说。 陈维明特意来见证,听到这句便急了:“改四个横线要多久?楼下找台电脑删掉再上来。” “这张盘已经登记封存。”林海说,“改了就不是交接簿里的那份。” “测试数据,怕什么?” “测试时养成窗口改盘,真钱时也会有人说只改四个横线。” 何技术员赞同。软盘原样退回,银行在记录上写“格式拒绝,未导入”。星辰回公司生成新批次,编号不能继续用0001,而是0002,并关联前一批失败原因。 第二天轮到小郭送盘。他怕挤公交把盘折坏,特意装进硬塑料饭盒。途中在一家小店吃面,饭盒放在邻座。到银行门口,他才发现手里只剩纸质授权,饭盒没拿。 小郭一路跑回去。小店已经换了一桌客人,老板说没看见。桌下、柜台和后厨找遍,饭盒都不在。 那张盘里仍是虚拟数据,却包含与正式格式相同的模拟账号。最要命的是,星辰无法证明软盘只是遗忘在店里,还是被人拿走并复制。 他回公司时脸色惨白,第一句话是愿意赔软盘和饭盒。 “先不是赔钱。”马飞说,“按介质丢失处置。” 批次0002立即作废,通知银行不得接收同号介质;相关测试账号更换;记录丢失时间、路线和盘内内容;饭店与公交失物处都留下联系方式。因为是真实数据上线前的演练,客户资金没有风险,但流程暴露出软盘离开公司以后只靠经办人记得拿住。 林海没有当众责骂小郭。他问:“为什么用饭盒?” “怕盘坏。” “为什么纸和盘分开拿?” “都塞饭盒怕纸折。” “为什么一个人送?” “省人。” 错误不是一句粗心能概括。软盘需要防压,纸要防折,公交拥挤,午饭要腾手,一个人携带两种载体,最终把保护盘的饭盒变成最容易遗忘的东西。 他们重做交接。软盘放进带编号的公文袋,与纸质批次摘要一起封装;经办人和复核人两人送达,高峰期不在途中办其他事;银行签收前,批次不得视为交付。盘内正式数据还要加密,解密口令不与盘同行,且即使文件泄露,也不能凭它直接在银行执行,纸质授权与客户印鉴仍是必要条件。 小郭闷了一整天。晚上,林海从家里带来一只女儿不用的小书包,蓝底黄鸭,拉链完好。 “先拿它练交接。”他说。 小郭看着幼儿园书包:“我背这个去银行?” “嫌丢人就更不会忘。” 众人笑了,小郭也终于笑。他真背着黄鸭书包完成了第三次测试。周会计同行,两人从公司出发前核封条,到银行窗口共同签交。何技术员依次扫描、解密、校验。 批次0003,十笔,日期格式正确,总额左右一致,逐条长度通过。 银行导入测试环境,用了不到一分钟。若人工重录,至少要二十分钟。 速度第一次真正提高,却没有减少责任记录。相反,介质编号、文件校验、纸质授权、交接签字、导入结果和失败回执比过去更多。机器替人抄数字,人则把注意力转到批次是否属于今天、是否完整、是否经授权。 一个月后,第一张含真实小额指令的软盘进入银行。两名经办人携带,盘和口令分开,银行核验纸质总额后导入。全部二十八笔受理,三笔因户名问题进入待核,没有一笔金额错位。 走出银行时已过午饭时间。周会计赶回夜校上课,小郭背着黄鸭书包去送客户回执。马飞和苏雨桐在银行台阶上分吃一袋糖炒栗子。栗子买得便宜,有几颗坏了,剥开才看见里面发黑。苏雨桐把坏栗子单独放进纸袋,不让马飞顺手扔到花坛里,说回公司正好用来说明“外壳完整不等于内容可信”。马飞说她连吃东西都在做评估,她反问他刚才不是也数了袋里一共有多少颗。 两人沿长街走回去,路过一家新开的手机店。玻璃柜里摆着体积更小的机型,价格仍抵得上普通人几个月工资。店员隔着门喊,可以收短信、存电话。马飞停下看了几秒,苏雨桐问他是不是已经想到把付款确认放进掌心。 “想到不等于能做。”他说。 “先把今天这张盘别丢。” 她提紧封装回执的公文袋。未来的入口就在街边玻璃柜里发亮,眼前的责任却仍是一叠不能淋雨、不能遗失的纸。 那只遗失的饭盒始终没找到。有人后来送回一张空软盘到公司前台,不是原编号,也无法确认关系。林海仍把事件留在安全记录里,没有因为正式批次成功而删除。 小郭用第一个月补贴买了一只银色金属盘盒,把黄鸭书包还给林小满。小姑娘嫌书包旧,问有没有礼物。小郭从报废软盘上拆下金属滑片,串成一枚小挂件。林海检查没有锐边,才让她拿走。 银行窗口里的软盘没有让星辰接管银行。 它只把一段重复抄写变成可校验的批次,也把一种新的脆弱带进流程:介质会坏、会丢、会被调换,文件会感染病毒,格式会因为一个横线整批失败。 技术缩短了窗口前的等待,却没有消灭等待背后的责任。 星辰要做的,是让每一次变快都同时留下足够证据,证明那张被机器迅速读完的盘,确实承载了客户真正授权的那一批钱。 第63章 谁来退款 王建军带来的温度传感器,装在一只装月饼的铁盒里。 铁盒盖上印着嫦娥奔月,边缘已经生锈。他把盒子放在桌上,掀开两层棉布,露出那只价值一百二十元的传感器。金属外壳有烧过的颜色,引线一根长一根短。 “用了四天,温度跳到三百度。”他说,“我们停机拆下来,再测就不通了。供应商说是接线烧坏,不退。” 这正是封闭试付第八十八笔购买的样品。银行确认付款,星辰状态显示已到账,交易流程在三周前已经闭合。 王建军指着状态单:“钱是通过你们系统付的,你们帮我退回来。” “钱已经在供应商账户。”周会计说,“星辰不能直接扣回。” “那你们这个支付有什么用?付出去很方便,出问题就说不管?” 他没有像上次被同名误判时那样发火,语气反而更疲惫。仪器厂为安装新传感器停了一条小试验线,维修组说选型没错,供应商坚持是使用不当。双方在电话里吵了三天,每个人都拿着自己的一段记录。 陈维明建议先让供应商退款,产品责任以后再谈:“一百二十元不多。参加试验的客户关系更值钱。” 赵秋寒正好在公司审软盘批次协议,听见这句便合上文件:“谁让他退?星辰有合同依据还是裁判权?” “协调。” “协调可以,命令不行。更不能未经授权从他下一笔应收里扣。” 王建军看着几个人:“所以没人负责?” “有人负责处理争议,不代表星辰负责判断传感器为什么坏。”马飞说,“先把付款、交货、安装和故障证据分开。” “我只想拿回钱。” “要拿回,供应商需要发出退款指令,或者双方按约定取得能执行的外部结论。我们可以记录、催办和确保退款状态走完,但不能因为你先来,就替另一方认错。” 这句话没有让王建军满意。他把铁盒盖上,说下午还要上班,只给星辰一天。若明天没有方案,仪器厂退出试验。 他走后,铁盒忘在桌上。 嫦娥的脸被一块油污遮住。林海拿湿布擦,越擦越花,只好停手。苏雨桐把铁盒装进透明袋,标上接收时间和物品状态,避免后面又为谁碰过它争论。 供应商下午到公司,是一对兄弟。哥哥负责销售,弟弟懂维修。弟弟看一眼烧痕便说电压过高,哥哥拿出产品说明,指出额定范围。仪器厂的安装记录却显示供电在范围内,且同批另外两只工作正常。 “那就是他们记录不准。”弟弟说。 “也可能这一只焊点有问题。”苏雨桐说。 “你们会检传感器?” “不会。所以这两种都只是推测。” 双方再次陷入熟悉的局面:每个人都觉得自己的局部记录足以证明整体。马飞若凭前世工程经验检查,也许能提出更多可能,却仍无权把经验变成有约束力的产品鉴定。 赵秋寒给出三条路。 第一,双方协商退款,不追究技术原因;第二,按原采购约定找共同认可的检测机构,以结果处理费用和退款;第三,无法协商则通过合同争议途径解决,星辰只保留支付证据。 供应商哥哥愿意退一半,换取仪器厂承认责任不明。王建军通过电话拒绝,说这会在厂里变成他选型失误。双方都不是只争一百二十元,而是在保护自己记录里不能轻易被写下的过错。 最后,他们选择检测。 检测费两百元,比传感器本身还贵。供应商与仪器厂各预付一半,约定若确认制造缺陷,由供应商承担全部并退款;若确认使用损坏,由仪器厂承担;若仍无法确定,各自分担,商品退款另议。检测费直接付给机构,不进星辰账户。 “为一百二十花两百,划算吗?”小郭问。 “单看这一只不划算。”马飞说,“但他们要的不只是一只东西,是以后还敢不敢交易。” 取样送检那天,马飞与王建军一起坐公交去城东。铁盒由双方封签,放在王建军膝上。车里挤,他一直用手护住,像护一份病历。 中途有老人上车,王建军起身让座,又怕铁盒被撞,只能一只手拉扶杆,一只手抱盒。马飞替他接过来。嫦娥奔月的图案露在外面,旁边一个孩子问里面是不是月饼。 “不是。”王建军说,“是一百二十块钱。” 孩子的母亲赶紧把他拉开,两个人都笑了一下。连续几日的火气终于有一道缝。 检测机构没有当天给答案。工程师先看外观,又做导通和显微检查。四天后报告送达:引线内部焊点存在不完整熔合,在热循环中开裂;外部烧色与停机后的测试操作有关,但不是初始失效原因。结论支持制造缺陷。 供应商弟弟仍不服,亲自去看显微照片。看到裂缝位置后,他沉默很久,说那批货由新工人焊接,抽检只做了常温导通,没有热循环。 哥哥当天签发一百二十元退款,并承担检测费。银行受理后,星辰没有把交易改成“从未发生”,而是新增退款指令、检测报告索引和双方处理结果。直到仪器厂账户确认收到,状态才闭合。 供应商问,商业资料页面会不会因此被删除。 陈维明原本想暂停全部展示。苏雨桐不同意:“支付争议处理与自然搜索分开。商业资料可以标注该批产品已启动召回或补检,内容由供应商负责并留版本;不能拿付款纠纷暗中改自然排名。” “那别人会看到缺陷。”供应商哥哥说。 “也会看到你检测、退款和改进。”马飞说,“不写,等下一个客户遇到才更难解释。” 兄弟二人商量后,同意在商业资料页增加批次说明,为同批次客户免费检查。弟弟回去重新设计抽检,加一轮简化热循环。 王建军拿到退款通知的那天下午,带来一袋刚出锅的糖炒栗子。他说妻子已经出院,仍要复查,但总算能自己走路。上次星辰补的误判工时费他没有动,用来买了这袋栗子。 “退款是谁负责?”他问。 “供应商对商品缺陷和退款决定负责,银行对转账执行负责,星辰对指令、状态、证据和时限负责。”马飞说。 “听着还是一堆人。” “本来就是一堆人。” “那至少别让我挨个猜。” 这句话成为退款流程的目标。星辰在页面上不再只给一个“申请中”,而是显示当前责任节点、下一次答复时间和可采取的行动。商品争议由双方协商或外部机构判断,星辰不假装拥有专业与法律裁判权;但它必须保证申请不消失、证据不被覆盖、同一笔退款不重复执行。 那天收工后,苏雨桐把空铁盒带回合租院,事先向王建军确认过可以留下。房东大姐正愁针线没有合适盒子,见了便说这不是还有用吗。她把旧线轴、纽扣和几枚弯掉的别针装进去,嫦娥脸上的油污仍擦不净,却不妨碍盒盖合严。 马飞顺手帮她把煤气灶松动的旋钮拧紧。房东隔着院子问,两个做电脑的人为什么总修这些小东西。苏雨桐说,不是什么都修得好,传感器就要送别人检。房东听完退款经过,摇头说为一百二十元跑那么多趟,换她早认倒霉。 “认倒霉也是一种成本。”马飞说。 “那你们能不能让人少跑几趟?” 这句来自院子里的问题,比会议上的职责划分更接近用户。第二天,苏雨桐在流程里加了证据一次提交与状态统一查询:同一份材料不让争议双方反复传真给星辰、银行和检测机构;能由机构直接确认的,就在取得授权后回传结果。责任仍然分开,路却不必让用户重复走。 晚上,大家围着铁盒吃栗子。那只传感器已经归还供应商,只剩空盒。林小满的火箭画恰好挂在上方,嫦娥与蜡笔火箭一上一下,隔着二十多年想象中的距离。 马飞把一颗坏栗子掰开,里面仍然发黑。他想起不久前在银行台阶上分吃的那袋栗子,也想起苏雨桐说的“外壳完整不等于内容可信”。商品如此,交易也如此。 支付完成的绿色状态,只能证明钱走到了收款账户。 它不能证明货一定完好、承诺一定兑现、人一定诚实。 星辰不能替所有争议给答案,却不能在钱到账后就转身离开。 谁来退款,最终不是一个人包办的问题,而是一条责任链能否让每个人在该出现的位置出现,并让用户不用拿着一只生锈的月饼盒,挨家挨户寻找那个愿意承认事情还没结束的人。 第64章 凌晨两点的回滚 凌晨两点零六分,林海把插头从插座里拔了出来。 不是服务器电源,而是那台准备更新账务程序的旧电脑与外部调制解调器之间的电话线。灰色水晶头脱离接口时发出轻微一响,屏幕右下角仍闪着“连接中”。 “先隔离。”他说。 小郭站在旁边,手里还拿着升级说明:“银行批次已经收完,不会再进新数据。” “你确定?” “窗口早关了。” “客户可以传真状态,值班人也可能录入。先断,别靠想当然。” 账务程序的新版本在零点上线。改动不大:支持银行软盘的统一状态码,自动把受理、待核、退回和到账对应到星辰的交易状态,减少人工录入。 前两个小时一切正常。零点清算时,左右账也相等。 两点,小郭按惯例抽查十笔,发现一笔被银行退回的指令在页面上显示“收款方已收到”。他以为看错编号,又查第二笔、第三笔。当天共有三十四笔使用新格式,其中六笔状态不对。 错误没有转走真钱。银行按自己的系统执行,星辰只显示状态。但对用户而言,“已收到”足以让付款人停止追问、让收款人开始发货,也可能让人错误地再次付款。 小郭第一反应是改映射表,把错的六笔重新计算。 林海拦住了他。 “先保留当前程序、数据库和输入文件。记发现时间。停止自动更新,页面进入状态维护。” “修一行代码更快。” “你还不知道错在哪一行。” 马飞被传呼叫到机房时,两点二十九分。他穿着毛衣外套,鞋带一只系着一只散着。出租车司机听说他半夜赶机房,一路问是不是网站被外国黑客攻击。马飞没心思解释,下车时把零钱全落在后座,车已经开远才发现。 机房里,林海把时间线写在白板上。零点零三分部署,零点十一分读取第一批新文件,一点五十八分小郭抽查发现。自动程序在此期间处理三十四笔,但只有六笔错误,说明不是整个版本完全失效。 “回滚。”马飞说。 小郭急了:“新版本产生的记录怎么办?直接恢复零点备份,会丢两个小时。” “所以不是把整台机器退回零点。”林海说,“代码和状态映射回上一版;零点后的原始输入与操作日志保留,按旧规则重放。页面在重放完成前只显示最后经确认状态,不显示猜测。” “要多久?” “先演练一次。” 新版本上线前,他们做过数据库备份,却只在测试机验证了升级,没有完整演练带着两小时新数据回滚。现在真正需要退时,每一步都得重新确认。 马飞一度想亲自敲命令。林海把键盘推回小郭面前:“今晚他是当班操作,我复核。你批准回滚,不要同时又做执行人。” “这是紧急情况。” “紧急更要知道谁做了什么。” 马飞把手收回来。他坐到机柜旁的折叠椅上,看着两人复制程序目录、校验备份、冻结自动任务。曾经他认为掌握全部关键操作才是负责,如今最难的克制反而是在出事时不抢走别人的岗位。 两点五十一分,测试机完成第一次重放。三十四笔原始记录按旧规则导入,所有银行新状态暂列“待人工映射”,没有出现虚假到账。确认结果后,生产机回滚。 三点十七分,页面恢复。六名受影响参与人收到明确通知:星辰状态显示发生错误,银行实际处理不受影响,请以银行回执为准;相关记录正在逐笔核对,在完成前不要重复付款或发货。 错误原因仍没找到。 小郭把新旧文件逐字比较,终于在银行格式说明的附录看到一项差异。状态码字母“r”,在星辰旧测试表里代表received,已收到;在银行正式文件里代表returned,已退回。测试环境使用的是星辰自拟代码,正式上线却没有把银行代码表版本写进程序包。 同一个字母,在两套系统里说着相反的话。 “为什么只有六笔错?”马飞问。 “其余都是a和p,含义碰巧一致。”小郭说。 碰巧一致比全部报错更危险。程序成功处理了大多数记录,让人更容易相信剩下的也正确。 四点,六笔状态全部依据银行回执更正。没有客户已按错误信息发货,也没有重复付款。林海没有把事故标成“无损失”,而是“未观察到资金与货物损失,存在错误决策窗口一小时零六分”。 六名参与人必须逐一回访。前三个已经睡下,第四个是印刷耗材商的夜班仓管。他说自己看到“已收到”后,已经把两箱色带搬到出货区,只差司机没有到。若错误早一个小时发生,货可能已经离开仓库。第五名用户的家中电话由母亲接听,老人听见“付款错误”吓得立刻叫醒全家,直到小郭反复说明银行资金没有异常才安静下来。第六名留的是单位总机,夜里无人接,只能等早班。 小郭每打完一个电话,就在通知单上写下对方实际采取的动作。错误状态不再只是一行数据库值,它险些变成两箱发出的货,也变成一个家庭半夜围着电话的惊慌。 早上八点,最后一名参与人回电。他没有损失,却问星辰以后凭什么让人相信页面。马飞回答,不能靠一句“已经修复”,要给出银行回执对照、错误时间窗、受影响范围和复核入口。对方沉默一会儿,说那就把报告寄来,下一批是否继续等看完再决定。 “写得太吓人。”小郭说。 “下次才能知道窗口有没有缩短。” 天快亮时,机房空调吹得人手指发僵。林海从包里取出一台小录音机,磁带上贴着“六一节目”。女儿幼儿园提前排练,他答应昨晚值班时听,直到现在才想起来。 磁带放出来,先是老师报幕,随后一群孩子唱跑调的《小燕子》。林小满的声音分不出来,林海却听得很认真。唱到一半,磁带被旧录音机绞了一下,声音忽然拖长。 他马上按停,打开盖子,用铅笔一点点把磁带卷回去。 “不接着放?”小郭问。 “再转会断。” “你怎么什么都先停?” “坏过几次就会了。” 马飞看着那盘磁带,想到回滚也是同一种承认:继续并不总比停止勇敢。系统正在出错时,最宝贵的能力不是立刻向前,而是保住还没断的部分,回到一个被证明过的位置。 早上六点,三个人去机房外的小摊吃豆浆。摊主刚开火,油条还没炸好,只能一人拿两只昨夜剩下的馒头。林海把馒头掰碎泡进豆浆,小郭学他,结果碗里全是碎屑。 “回去睡。”马飞说。 “事故复盘呢?”林海问。 “下午再开。” “下午是我休息。” 马飞看值班表。林海说得对。事故不能以复盘为名继续占用他下班后的时间。 “那明天上午。今天只交接必要事实。” 林海点头,把修好的磁带装回包里。他要赶第一班公交回家,在女儿起床前把录音机放到桌上,假装自己昨晚已经听完。 第二天复盘会上,星辰新增四条发布条件。外部状态码必须绑定来源机构和版本,不能只存一个字母;上线前使用银行提供的正式样本做黄金测试;备份不只验证能恢复,还要演练带新数据回滚;任何显示“已到账”的状态,必须能追到银行证据,而不是由内部代码自行推断。 小郭主动在事故记录上签名,没有被罚款或取消权限。他负责写了第一份回滚手册,把自己当晚想直接改映射表的冲动也记进去。 “这也写?”陈维明看报告时问。 “以后别人也会想这么做。”小郭说。 新版本一周后重新上线。这一次,r被明确写成“银行退回”,代码旁还有银行格式版本。团队在测试中故意放入相反含义的旧样本,程序整批拒绝,没有靠猜测转换。 凌晨两点的回滚没有成为对外宣传。没有客户愿意因为系统曾经把退回显示成到账而鼓掌。 可那一夜让星辰确认了一件比顺利升级更重要的事:当程序说错话时,团队能够停止、保留现场、退回旧路,再让每一笔新发生的事实重新走一遍,而不是用一行匆忙修改把错误和证据一起覆盖。 机器最终向前运行。 它向前的依据,不再只是某个人确信自己已经改对。 那盘差点被绞断的磁带,也在林海家的饭桌上完整放完。 第65章 第一个支付产品名 陈维明带来的第一个名字,叫“星辰钱包”。 他请广告店做了一块泡沫板。深蓝底,银白色星星,中间画着一只敞口钱包,几张纸币像火箭一样从里面飞出来。最下面一行大字:把钱放心交给星辰。 泡沫板一进门,赵秋寒就让他转过去靠墙。 “为什么?”陈维明问。 “公司刚通过决议不能替客户保管钱,你第一句就叫人把钱交给星辰。” “这是广告话,不是合同。” “用户不会先读十二页合同,再决定怎样理解广告。” “钱包只是比喻。” “比喻也在承诺。”苏雨桐说。 陈维明气得把泡沫板翻面。背面是广告店原来的婚庆样品,印着两只红色鸳鸯。放在会议室里更奇怪,所有人只好把板塞到铁柜后面,钱包露出半边,鸳鸯也露出半边。 封闭试付运行半年,客户总要有一个能叫出口的名字。“支付指令与交易状态封闭试验”太长,电话里说到一半,对方已经忘了前面。陈维明希望在下一次行业交流会上正式推出品牌,吸引更多企业加入邀请名单。 他准备了十六个名字。除了星辰钱包,还有星辰通、星辰结算宝、飞付、快付、安心付和“e星钱”。最后一个中英文混在一起,连他自己都解释不清e代表什么,只说显得国际。 林海投“快付”。小郭喜欢“飞付”,觉得与马飞名字也搭。周会计全部不同意,因为没有一个名字能说明钱仍由银行执行。 “产品名不是会计科目。”陈维明说。 “也不能拿快字骗速度。”周会计翻出高经理三天到账的记录,“跨行三天,叫快付?” “以后会快。” “今天发布的是以后?” 争论进行到午饭,名字一个没定。苏雨桐提议让实际参与人看,不先解释,问他们各自以为产品做什么。 下午,十二名客户代表来到公司。有人看见“钱包”,以为可以预存余额;有人看见“安心付”,以为星辰担保货物;“结算宝”被理解成能赚利息;“飞付”则让三个人认为付款会马上到账。 只有“星辰付”得到的理解比较朴素:与星辰有关的付款服务。仍有人问是不是钱付给星辰,却不至于仅凭名字形成太具体的错误承诺。 “这名字没特色。”陈维明说。 “少误解也是特色。”赵秋寒说。 客户中有一位姓傅的老出纳。她戴着袖套,随身带一只铁皮印章盒。听了一上午介绍后,她问:“你们为什么一定要把银行藏在小字里?我敢用,是因为钱还在银行,不是因为星星画得好看。” 这句话让会议方向变了。 陈维明总认为银行参与会削弱星辰品牌,像承认公司只是中间层。对客户而言,银行却是服务可信的关键边界。星辰的价值不是假装自己成为银行,而是把银行转账前后的身份、授权、状态、退款和证据连接起来。 他们最终选定“星辰付”。下方不写“把钱交给星辰”,改成“银行执行的小额付款指令与状态服务”。第一版只面向受邀企业、指定账户和额度内交易,产品编号0.1。 陈维明嫌副标题像说明书。广告店老板也说字太多,泡沫板排不下。他们一起去店里改版。 广告店开在菜市场旁,屋里全是油漆和即时贴气味。老板姓牛,左耳夹着一支铅笔。他听完要求,先画一颗五角星,再在里面写“付”。马飞说容易让人以为是银行标志;画两只手握住,又像担保;画一张支票,则只能代表一种方式。 牛老板烦了:“你们什么都不敢画,留白算了。” 苏雨桐看着桌上两张被复印得模糊的银行回单,提议用两条没有接触的钱路,中间由一串状态点连接。钱从付款银行到收款银行,星辰只让状态可见。 牛老板说这不像钱包,也不像赚钱,倒像公交线路图。 “公交不拥有乘客,”马飞说,“但告诉人走到哪。” 图标因此变成两条横线与中间四个小圆点。不好看,却没有画出一个星辰控制的钱袋。 改版等了两个小时。众人在市场里吃晚饭。牛老板推荐一家羊杂汤,陈维明闻不惯,只吃烧饼。苏雨桐嫌汤咸,兑了半碗开水。赵秋寒到点就走,她父亲第二天复查,要回家整理病历。 马飞买单时,店主找错五角。周会计不在,陈维明开玩笑说差五角不影响支付产品发布。苏雨桐把钱退回去重新算,店主一边道歉一边说做大生意的人还在意五角。 “正因为做付款,才得在意。”她说。 泡沫板晚上九点做好。星辰付三个字居中,状态点图标在左,副标题缩小一号但没有藏到底部。最下方还有三行限制:邀请制、低额度、资金不进入星辰账户、到账以银行回执为准。 “四条,你写了三行。”小郭数。 “第三行挤了两条。”陈维明说,“版面已经让步。” 产品名定下以后,更难的是协议里的动词。 陈维明写“星辰完成付款”,赵秋寒改成“星辰接收经授权的付款指令并向合作银行提交”;“实时到账”改成“状态更新速度依银行处理与通信条件”;“安全保障”改成具体措施;“智能识别欺诈”被删掉,换成“基于明确规则进行提示、加验与暂停,并提供人工复核”。 每改一处,广告的气势都少一点,责任却清楚一点。 苏雨桐还要求产品介绍中单列数据边界:星辰付记录不自动与个人搜索历史合并;拒绝参与支付研究不影响使用基础搜索;研究结论不能直接变成永久拒绝。 “客户看到这么多不能,会不会走?”陈维明问。 傅出纳第二天来试读。她戴上老花镜,从头到尾看了两遍,说:“我最怕你们只写能。写不能,我才知道出事找谁。” 第一场“发布”没有记者,也没有舞台。十二名原参与人坐在办公室,面前各一份0.1协议。泡沫板靠在墙边,位置在故障表和锦旗之间。 高经理第一个签。他指着邀请制三个字问,什么时候能对普通客户开放。马飞回答,至少要先完成专用账务系统、独立数据隔离、退款与申诉容量验证。 “给个日期。” “现在不给。” “你看,又来了。”高经理笑着对陈维明说。 这次陈维明没有替马飞补承诺。他说:“等证据够了通知你。现在你是第一批,不够有面子?” 众人笑起来。 签字结束,陈维明终于拿出一只蛋糕。蛋糕在公交上被挤歪,“星辰付”三个奶油字只剩“星辰寸”。牛老板临时用果酱补了一横,越补越丑。 苏雨桐切蛋糕时,把画着钱包的旧泡沫板从柜后拖出来。林小满看见背面的鸳鸯,非说是两只红鸭子。她问为什么钱从钱包里飞出去,林海说那是没通过法律审查的旧画。 孩子听不懂,只觉得纸币火箭好看。 马飞没有把旧板扔掉。他在正面贴上“未采用:暗示星辰持有客户资金”,存进产品档案。未来若有人重新提出钱包、余额池或担保到账,这块笨重的泡沫板会提醒他们,名字和图画也能偷偷改变一项业务的边界。 夜里,公司门口第一次挂出星辰付0.1的小牌。它比搜索招牌小得多,只在受邀客户来访时使用。 马飞回住处前给母亲打电话,说公司又有了一个产品。母亲问卖什么,他解释了半天指令、银行和状态,电话那头只问:“就是帮人看钱走到哪儿?” “差不多。” “那别把人家的钱弄丢。” “钱不在我们手里。” “不在手里也能把话说丢。你小时候替邻居传话,就把‘下午来’记成‘明天来’。” 马飞已经不记得那件事,母亲却说得有鼻子有眼。挂电话后,他把这段写在新牌背面:状态服务最怕把别人的话说错。第二天苏雨桐看见,问这是不是新的品牌口号。马飞说是内部提醒,她拿笔又补了一句:也不能把自己不知道的话说成已经知道。 两句话被泡沫板遮在墙后,客户看不见,却正对每天取钥匙的员工。一个产品名字负责让外面的人记住,背后的字则负责让里面的人别忘记。 第一个支付产品名没有让资金变快,也没有让风险消失。 它只是给过去半年的纸、软盘、电话和银行窗口一个共同称呼,同时把一句限制公开写在名字下面:星辰帮助人发出、看见和追索付款,却不因为掌握页面,就假装拥有别人的钱。 第66章 搜索和支付之间的墙 墙还没立起来,灰先落满了苏雨桐的头发。 木工在办公室最里面锯夹板,电锯声盖过电话。细黄木屑从门缝钻出来,落在键盘、账本和那盆文竹上。苏雨桐用旧报纸给花罩了一顶帽子,自己还是没躲过,抬头时像突然长了几根浅色头发。 “为什么非要今天施工?”她问。 林海指着天气预报:“明天有雨,木板运不上来。账务旧电脑也不能一直放会议桌底下。” 隔断只有两米多长,把原先堆杂物的角落围成一间小屋。没有窗,门上装锁,准备放支付资料、软盘和即将采购的专用账务服务器。它挡不住真正有心破坏的人,却能先让拿搜索资料的人不会顺手翻到付款回执。 立这面墙的原因,来自一份写着“增长机会”的提案。 一家家电客户想购买商业资料展示。陈维明在谈判中提到,星辰既有用户查询,也有受邀企业的支付状态,可以帮助客户发现“正在找冰箱而且已经有付款能力的人”。客户很感兴趣,愿意把季度合同提高一倍。 为了演示可行性,小郭把支付试验参与人的单位名单复制到搜索分析目录,准备统计这些单位过去一个月与家电有关的匿名查询。 他没有复制个人交易金额,也没有导出密码。名单只有单位名称和内部编号。在他看来,这只是两张公司内部表,且结果最终会汇总。 林海在夜间备份清单里发现了那份文件。 文件名叫“临时匹配_用完删除”。 这六个字比文件内容更让人不安。用完删除意味着没有正式用途登记,没有访问期限,也没有人准备在结果不好看时留下自己做过什么的证据。 苏雨桐看到后,当场停止匹配。她没有先问结果,而是问参与单位何时同意支付身份被用于搜索广告分析。 没人能拿出同意。 “单位名单不是个人隐私。”陈维明说,“而且只做行业汇总。” “支付试验协议写的是交易指令与状态服务。”赵秋寒说,“行业广告不在原用途里。单位数据也有商业敏感性,不能因为不是身份证就随便换用途。” “搜索查询已经匿名。” “匿名到什么程度?”苏雨桐问,“一家只有一名参与人的小单位,单位名单与查询时段一合并,汇总仍可能指向具体人。更何况原始查询默认不得进入支付身份或风险判断,反方向也一样。” 陈维明拿出客户报价。合同增加额足以支付专用账务服务器的一半。他不是为了炫耀技术,是真看见了现金需求:支付要独立设备,搜索要扩机房,先进工程还要下一阶段预算。公司手里明明有两类数据,完全不用又显得愚蠢。 “我没说把个人记录卖出去。”他说,“至少可以告诉客户,最近北京有多少人搜冰箱,参与支付的企业里有多少是零售相关。” “第一项可以按既定匿名统计规则做。”马飞说,“第二项需要参与企业另行同意,而且不能把拒绝同意变成支付服务劣势。” “等逐个同意,客户早走了。” “那这笔钱就不是我们现在有权赚的。” 陈维明把报价单折起来,重重塞进公文包:“你们每建一道墙,都是我出去说不。” “墙也保护你。”苏雨桐说,“哪天客户问数据从哪来,你不用靠记忆回答。” “我今天只看见它挡收入。” 争执没有结果。陈维明中午没留下吃饭,带着提案去向客户解释。小郭坐在自己的工位上,脸一直红。他问是否要处分。 马飞没有立刻决定。他们先保存文件摘要、复制时间和访问日志,再从分析目录移除并封存。由于匹配尚未运行,没有产生客户报告,也未对外发送。事故仍被记录为未经授权的数据用途准备,而不是“什么都没发生”。 “你为什么觉得可以复制?”苏雨桐问小郭。 “两边都是公司数据。陈总说要看市场机会,我只是先做个样子。” “有没有人教过你哪些不能放一起?” 小郭摇头。 问题不只在个人。星辰反复口头说搜索与支付分开,文件权限却没有真正区分。小郭同时负责搜索日志整理和支付录入,用同一台电脑、同一个账号、同一只软盘盒。只要有人说“临时看一下”,技术上几乎没有阻力。 “不罚款。”马飞说,“停止跨线权限。重新培训后才能申请。陈维明的提案也要进入事故记录,因为任务来源不是你一个人。” 小郭低着头:“我是不是以后只能做一边?” “可以轮岗,但不能同时拿两边全部明细。轮岗要交接、换权限。” 那天下午,他们开始把口头边界变成一面真正的墙。 支付资料搬进隔间,纸柜与软盘柜分别上锁。搜索日志仍在原区域,个人查询经过匿名抽样后才进入评估。账号分成搜索、支付、研究三类,默认互不访问。任何跨用途数据申请必须写目的、最小字段、样本阈值、期限和批准人,结果导出还要检查能否反推出小单位或个人。 苏雨桐的研究线获得一台单独的离线设备。训练样本由指定人员去标识后送入,产品团队只拿到批准的评估结果,不能翻她的盲测答案。她也不能因为研究负责人身份直接查看所有付款人资料。 “连你也不能?”小郭问。 “尤其不能默认我能。”她说,“规则若只限制别人,不叫边界。” 木工一直干到傍晚。隔断装好后,门有些歪,必须抬一下才能锁。林海让木工返工,木工说旧楼地面不平,门不可能完全正。两人争了半天,最后在合页下加垫片,让门至少能自然闭合,不靠人每次用肩膀顶。 “制度像门。”林海看着地上的刨花说,“设计得太费劲,人就会拿砖头卡着不关。” 于是跨用途申请不能只有十二页表格。苏雨桐把它缩成一张主表,复杂项目再附说明;常规匿名行业趋势建立预先批准的统计口径,达到最小样本才自动输出;涉及支付参与身份或新用途,则必须另行评审与同意。 墙既要拦住不该走的捷径,也要给合法工作留一扇能真正打开的门。 第二天,陈维明带回客户答复。家电公司不愿等支付参与企业另行授权,取消了加价部分,但仍签下普通商业资料合同,只使用达到匿名阈值的搜索趋势。 “少了一半钱。”他说。 “另一半本来就不属于已授权收入。”周会计说。 “你们能不能偶尔让我难过完整十分钟?” 大家没有笑。那确实是一笔可观的钱,公司需要它。马飞在现金计划里推迟账务服务器采购两个月,又削减自己的工资补发,不动员工工资和先进工程已批准的小额试验。 “别拿个人工资长期补公司。”苏雨桐说。 “只推迟一部分,有书面到期日。” “到期不到账,我找周会计催你自己。” “可以。” 施工后的木屑清了三遍仍有。晚上,苏雨桐回合租房,从头发里又梳出一小片。房东大姐问公司是不是装修发财了,她说只加了一面墙,反而少签半份合同。 “那墙挺贵。”房东说。 “是。” “值吗?” 苏雨桐想起那份“用完删除”的文件:“现在值不出钱。以后也许能少赔很多。” 星期一,支付隔间门口贴上三张彩纸:蓝色写搜索,黄色写支付,绿色写研究。林小满来公司时,在三张纸下面画了三间房,每间住一只猫。猫可以隔着窗说话,却不能跑去吃别人的饭。 午后下了一场急雨。旧楼外墙渗水,偏偏从新隔断边缘淌进来。马飞、林海和小郭拿脸盆接水,苏雨桐先把三类资料各自装进防水箱。陈维明抱着那块未采用的钱包泡沫板挡在门口,纸币火箭被雨点打得掉色。他看着自己花钱做的广告板最终只剩防水用途,忍不住骂了一句,随后又笑。 雨停后,他们在墙脚加了防潮条。数据隔离与生活里的墙一样,并不是立起来就从此可靠;楼会漏水,人会图方便,权限会随着岗位变化。每次变化都要重新检查门是否还能关上。 她的解释比内部培训更容易懂。 搜索和支付之间的墙从来不只是夹板。 第67章 第一台账务服务器 第一台账务服务器到货时,运货的人不肯抬上楼。 木箱比洗衣机窄,却重得多。货车司机把它卸在楼门口,说送货单只写到址,不含搬运。六月太阳晒得柏油发软,箱子底下很快烫得不能摸。 陈维明与司机讲价,从五十讲到三十。司机仍不肯,说自己腰伤过。最后楼下老杜叫来两个卖灯具的伙计,四个人用粗绳把箱子一层层抬上三楼。楼梯拐角太窄,木箱立起来才转得过,包装侧面被墙上钉子划出一道长口。 林海一路跟着喊慢点,声音比抬箱子的人还累。 箱子进办公室,他没有立即拆。先对照运输封签、设备序列号和外观记录,再让周会计确认付款凭证。陈维明等得冒汗:“机器都在眼前,还怕是假的?” “眼前的是一只箱子。”林海说,“里面什么还没看。” 马飞递给搬运伙计汽水。四瓶汽水在窗台晒热了,开盖时泡沫喷出一半。老杜坐在门槛上数搬运费,忽然问这台电脑是不是能替周会计打算盘。 “能帮着记。”周会计说,“不能替我认账。” 这台机器等了两个月。 家电客户取消数据合并加价后,采购被推迟。直到搜索商业服务连续两个季度正现金流,星辰付的三家新增客户也按技术服务合同实际回款,公司才重新评估预算。 报价三万八千六百元,包含机架式主机、校验内存、两块可做镜像的硬盘和三年基础维护。价格足以买许多台普通办公电脑。陈维明主张先组装一台便宜机器,林海坚持账务设备必须对内存错误、单盘损坏和电源波动有基本保护。 “支付钱又不在我们机器里。”陈维明说。 “状态在。”林海回答,“状态错了,人会按错话办事。凌晨回滚已经见过。” 最后的采购条件比机器本身更长:不能动用客户交易款;支付产品收入只能按已提供服务确认;购机后公司仍保留一个月刚性运营缓冲;员工工资、带宽和银行合作费用不得延期;先进工程已批准预算不挪来填设备。 周会计在银行付款时,把这些条件抄在凭证附件上。她说,等几年后大家只看见服务器,不该忘记它凭什么被买回来。 木箱打开,里面没有想象中的未来感。灰色金属外壳,前面一排硬盘位,重量主要来自电源、机箱和厚实导轨。附带键盘是米白色,空格键边缘有一道出厂磨痕。 林海没有嫌。他先在隔间里铺防静电垫,把那盆差点死掉的文竹搬走,免得浇水时出事。林小满的三猫分房画也被移到门外,猫仍隔窗说话。 “它叫什么?”小郭问。 搜索服务器一直用星体代号,最早一台叫启明,后来有北斗、织女。小郭想给账务服务器取名“金库”。 赵秋寒恰好来审合同,听见便说:“别又暗示客户的钱在里面。” “那叫算盘。”周会计说。 于是机器在资产登记上多了一个朴素的内部名:铁算盘。 上架前先烧机四十八小时。林海让内存持续校验,模拟一块硬盘失效,再从镜像读回;断开网络,确认状态不会因为无法连接就自行改成失败;恢复供电后,程序停在待核,而不是猜测银行结果。 第一轮测试就发现一块硬盘在高温下出现读错。供应商认为偶发不影响使用,建议先上机观察。林海把错误记录与合同维护条款传真过去,要求更换。 “一块新盘测出一次错就换,太苛刻。”供应商技术员说。 “我们买双盘就是为了单盘出错时还有证据。”林海说,“不能第一天就把一块带已知错误的当冗余。” 新硬盘三天后到。采购进度因此又推迟,但没人再建议先带病上线。 迁移定在星期六夜里。所有邀请客户提前一周收到公告:指令提交暂停四小时,查询状态保持只读,银行已执行的资金不受影响。旧电脑冻结数据后生成总数、总额和记录摘要;新服务器导入,再由周会计随机抽凭证、林海查日志、苏雨桐核状态语义。 马飞原本安排自己全程在场。迁移前一天,母亲来电话,说父亲扭了腰,虽不严重,还是希望他回去看看。火车票只买到星期六傍晚。 他犹豫了。 “手册已经演练两次。”林海说,“你批准窗口,我和小郭执行,周会计核账,雨桐验状态。你在不在不该改变结果。” “第一次正式迁移。” “正好验证不靠你。” 苏雨桐已经替他查好车次:“回去。若达到停止条件,我们停,不等你在火车上给答案。” 马飞最终上了车。车厢没有空调,窗户开着,煤灰不断吹进来。他坐在硬座上,膝盖顶着对面乘客的编织袋。晚上十一点,列车经过一座小站,他从站台公用电话给公司打了一次。 “导入到百分之六十。”小郭说,“一切正常。” “别每十分钟报。”林海在旁边喊,“按约定节点。” 电话很快挂断。马飞握着听筒,忽然既不习惯又有一点轻松。服务器正在承载星辰最敏感的状态,而他只能听见列车远处的汽笛。 迁移没有一次完成。 凌晨一点,苏雨桐发现七笔旧记录的“退款完成”只保留最终状态,缺少银行受理到到账的中间证据。旧系统能显示结果,新系统要求完整链,因此导入校验拒绝。 团队按条件停止,没有手工补造时间。七笔依据纸质回执重新录入,注明历史迁移与证据来源,再从头跑全量。窗口延长四十五分钟,客户页面显示公告,没有把延迟藏起来。 清晨四点二十,三本账、银行已确认总额与新服务器记录完全相等。旧电脑关闭写入,封存为迁移证据,不马上格式化。 马飞到家时,父亲正坐在院里晒太阳,腰上贴着膏药,见他回来先骂浪费车票。母亲把一碗面端上来,问公司机器换成没有。 “换了。” “你不在也会换?” “会。” 母亲听完没觉得这是什么成就,只说那就好,省得每次半夜叫他。 星期一,马飞返回北京。铁算盘已在支付隔间运行,前面板灯光平稳。林海在机柜旁贴了迁移报告,最显眼的不是成功时间,而是那七笔暂停与四十五分钟延长。 小郭把旧电脑擦干净,问能不能拿去给先进工程组做计算。 “先封存三个月。”周会计说,“账务证据期过了再按资产流程重新分配,不能因为它旧了就忘记上面有什么。” 铁算盘运行的第一周,办公室反而比过去安静。电话仍响,银行回执仍要核,但支付批次不再与搜索索引争一块硬盘。夜里一点,林海从机房打来例行报告,说镜像盘正常,电源有一次短时波动,被不间断电源记录下来,没有引起状态变化。 周会计第一次不用把日结文件拷到三张软盘再带回办公室。她准时赶上夜校的成本会计课,下课后买一串糖葫芦,第二天分给众人。山楂只有七颗,办公室却有八个人,她把最下面最大的一颗切成两半。小郭说机器都买了,怎么还为半颗山楂算这么细。她回答,正是买了机器,才更要知道剩下什么。 发工资那天,银行账户扣完薪资、带宽和设备维护预留后,运营缓冲仍高于停止线。马飞被推迟的那部分工资也按书面日期补发,没有因为创始人“不急用”继续变成无期限借款。他拿到钱,先给家里寄回一部分,又买了一只腰垫寄给父亲。母亲回信说腰垫太硬,父亲嘴上嫌弃,吃饭时却一直垫着。 苏雨桐则把那盆文竹重新放到隔间门外。服务器房不能有水,花只能隔着玻璃看见里面的灯。新长出的枝叶向门缝一侧倾,像总想越过边界。她每次浇水都先把花盆端远,等盆底不再滴才放回去。 专用机器没有让生活突然宽裕,却让一些过去靠人记住、靠软盘搬运、靠创始人垫付的事情终于有了固定位置。 第68章 机房里的第二把钥匙 第二把钥匙配好以后,谁拿成了问题。 第一把在林海手里。他负责机房、备份和账务服务器运行,钥匙装在一只牛皮套里,夜里睡觉也放床头抽屉。 第二把原计划交给马飞。 锁匠把钥匙从机器上取下来,吹掉铜屑,递过去。马飞还没接,周会计便问:“为什么是你?” “他是公司负责人。”锁匠替他回答。 “正因为他是负责人,才不能默认所有门都由他开。”苏雨桐说。 锁匠看看众人,以为撞上公司内斗,迅速收钱下楼,连多配钥匙的生意都没敢问。 铁算盘上线后,支付隔间与机房形成两层访问。普通状态查询可以通过受限终端完成;进入机房接触服务器控制台、备份介质和批次导入设备,需要物理钥匙。任何涉及批次发布、历史状态修正或备份取出的高风险操作,又要求两个人共同在场。 一把钥匙不够,两把都交给技术人员也不合适。 林海主张第二把交周会计。她负责账务证据,可以独立阻止未经财务依据的修改。周会计却说自己每周有两晚夜校,周末还要去国营商店盘账,若紧急恢复时找不到她,双人制度会变成单点堵塞。 陈维明想拿。他是股东,有财务知情权,又常在外见客户,觉得钥匙代表公司对自己的信任。 赵秋寒反问:“你需要知情,还是需要半夜打开服务器柜?” “我不一定去开,但不能所有权力都在他们几个人手里。” “所以要设计授权,不是按股份分钥匙。” 会议开了一个上午,钥匙一直放在桌子中央。阳光照在新削出的齿上,亮得刺眼。 林小满中午来送饭,看见后伸手想拿,被林海轻轻按住。她问这是不是宝箱钥匙,爸爸说里面没有钱。小姑娘不信,没有钱为什么这么多人争。 “因为里面写着钱走到哪。”林海说。 “那不就是钱吗?” 成年人一时答不上来。 最后,他们没有把制度绑在固定两个人身上,而是设置三名保管人:林海、周会计、苏雨桐。任意高风险操作需其中两人在场,且不能由同一人同时提出、执行和复核。马飞拥有业务批准权,却不保管日常钥匙;紧急封存钥匙另放银行保管箱,启用必须留下书面原因并在事后复核。 “为什么我没有?”马飞问得很平静。 “你已经有太多可以说继续的权力。”苏雨桐说,“这里需要一扇你不能一个人打开的门。” 他看着那枚钥匙,想起前世项目里自己既参与设计、又推动进度、还在故障判断中拥有巨大话语权。集中让决策很快,也让反对意见必须先穿过他的确信。 “同意。”他说。 第二把钥匙交给周会计,第三把不是现场复制,而是用登记过的备用锁芯配套钥匙,放苏雨桐处。每把编号,禁止私配,丢失立即更换锁芯。门口的双人登记表不只写进去时间,还写目的、携带物和离开时状态。 制度上线第三天就遇到麻烦。 星期四晚上十点,铁算盘的镜像盘发出告警。林海判断一块盘可能松动,需要进入机房检查。周会计在夜校考试,传呼关了;苏雨桐正在学校参加评审,电话打到办公室无人接。 支付服务仍可运行,另一块盘正常,告警不要求立即停机。可林海担心拖到凌晨会扩大风险,给马飞打电话,希望临时用负责人权限打开封存钥匙。 “达到紧急条件了吗?”马飞问。 “还没有。单盘告警,镜像可读。” “那按手册降级,暂停新批次写入,等第二保管人。” “客户夜间还有状态更新。” “只读服务继续,写入排队并说明。不能因为不方便,就把备用钥匙叫紧急。” 这一次,是马飞自己拒绝绕过那扇限制他的门。 林海执行降级,把新回执暂存到独立队列,不更新权威状态。十一点二十,苏雨桐从学校回来,两人共同进入机房。检查发现不是硬盘故障,而是托架接触不良。重新固定前,他们先完成备份校验;操作结束后,排队回执逐条处理。 客户状态延迟最长一小时零七分。第二天有两人投诉,认为一块硬盘架松动不该让整个支付变慢。 “从用户看确实不该。”林海说,“我们要改冗余结构,让单盘检查不必冻结正常队列。但昨晚没有证据证明写入安全,不能拿客户的钱路练胆量。” 事故复盘没有把结论写成“第二把钥匙拖慢恢复”。相反,它暴露了双人保管的排班缺口和单盘维护仍影响写入的架构问题。三名保管人的可用时间被纳入值班表,不要求休息中的人随时待命;系统则增加独立接收日志,使权威状态暂停时,外部回执仍能完整保存,待双人核验后再应用。 陈维明拿投诉信要求增加一把销售钥匙,被拒绝。他气不过,约马飞下楼吃夜宵。 两人在烧烤摊坐下。陈维明点了一盘羊肉串,马飞只要烤馒头。炭烟不断往脸上吹,他们换了三次座位都躲不开。 “你真不介意没钥匙?”陈维明问。 “介意。” “那你还同意?” “介意不等于不该做。” “我也介意。可每次出了问题,客户先找我。门我进不去,怎么跟人说?” “你需要的是实时事故信息和对外说明权限,不是进去拧硬盘。” “至少给我看登记。” “可以。财务知情范围内看操作摘要,不看无关客户明细。” 两人把新接口写在餐巾纸上:重大降级发生后,销售与客服立即收到原因类别、影响范围、下一次更新时间;技术细节与客户数据按需开放。陈维明不再靠拿钥匙证明自己被信任,也不用等工程师忙完才知道发生了什么。 吃完时下起小雨。两人没带伞,只好举着烧烤摊送的塑料布跑回公司。塑料布有洞,马飞肩膀湿了一大片。苏雨桐还在办公室写告警复盘,看见他们狼狈的样子,把牡丹保温瓶里的热水倒两杯。 “谈妥了?”她问。 “没拿到钥匙。”陈维明说,“拿到一张通知单。” “更适合你。” 他想反驳,喝了口热水,最后只说保温瓶真难看。 一个月后,第二把钥匙真正发挥了另一种作用。马飞想查看先进工程组是否能借铁算盘空闲时间跑一组数据同步模拟,提出进入机房看负载。林海说可以提供经隔离后的性能报告,但生产账务服务器不得用于航天预研。周会计与苏雨桐都没有开门。 马飞在自己的预算决议上签过这条限制,只能接受。他用封存期满的旧电脑搭了一个更慢的离线环境,模拟跑了整整一夜。 结果出来时,他反而确信第二把钥匙不仅保护客户,也保护公司不被自己的长期梦想偷偷挪用资源。 三名保管人后来做了一次“不在场演练”。林海请假带妻子去办住房手续,周会计按计划与苏雨桐共同开门,完成备份介质轮换。两人都不熟悉机柜托架,操作比林海慢,却严格按图示逐步确认。走到第三步时,她们发现手册只写“取出上一周期介质”,没有说明两个外观相同的盒子怎样区分。 苏雨桐没有凭日期猜,停下给林海打电话。林海只告诉她们标识规则,不替她们远程决定拿哪一个。回头检查才发现,盒盖标签在上次清洁时被擦掉一角,月份数字看不全。演练再次暂停,所有介质改用颜色、编号和机器可读清单三重对应。 周会计出门时在登记表写了四十七分钟,比林海平时多一倍。她没有把时间改短,反而在备注里写“流程对非日常操作者仍不够清楚”。苏雨桐说,如果第二把钥匙只能在第一把钥匙的主人站旁边时使用,那它只是备用金属,不是独立控制。 星期天,林小满拿硬纸板给三把钥匙各做一张小床,画上不同颜色。林海不让真实钥匙放进去,只把纸床贴在保管箱外。小姑娘问钥匙晚上会不会孤单,周会计说不会,它们分开睡,白天要两把一起工作。 这句孩子能听懂的话后来也进了培训:钥匙必须分开保管,责任必须在需要时相遇。 第69章 电话那端是谁 电话那端的人知道高经理午饭吃了什么。 他知道办公室门牌,知道今天采购的是一批继电器,知道付款金额一百八十元,还知道高经理下午去看牙,三点前回不来。 所以小郭问“您是高经理吗”时,对方毫不迟疑地回答:“是。” 电话确认被记录为通过。 十分钟后,真正的高经理捂着半边脸回到办公室。他拔了一颗坏牙,说话漏风,听见付款已经确认,先以为自己打麻药后忘了做过什么。 “我没接电话。”他说。 接电话的是新来的业务助理。年轻人见高经理的私人办公室响铃,怕错过付款时限,便进去接了。他知道采购安排,也认为老板回来一定会同意,于是替他说了“是”。 “我没想骗钱。”助理解释,“货等着发,流程又只差电话。” 银行指令幸好还需要单位财务印鉴,没有因电话确认直接执行。可星辰系统已经把一个熟悉情况的人认成了另一个人。电话线正确、信息问题正确、回答语气自然,全都没能证明身份。 高经理嘴里塞着药棉,发火也发不清楚。他在纸上写:以后只打我手机。 陈维明觉得这办法可行。移动电话随身带,比办公室固定电话更接近本人。马飞却问:“手机借给别人呢?丢了呢?你拔牙时交给司机保管呢?” 高经理又写:那就问只有我知道的问题。 “午饭、采购、行程,助理都知道。”苏雨桐说,“问母亲姓什么、身份证号码,也可能被同事或家人知道,而且把更多个人信息收进系统,不一定更安全。” 高经理不耐烦地把笔一扔。牙疼让所有制度讨论都显得多余,他只想回家躺着。苏雨桐没有强留,先把本次指令退回待授权,让财务不要执行,再约第二天复盘。 他走时,助理跟在后面,一遍遍道歉。两人背影一前一后,像一场尚未决定怎样收场的家庭争执。 星辰原本准备把电话回呼作为移动确认前的过渡。用户在电脑上提交指令,系统拨打登记电话,由客服核对金额和收款人。对于没有个人电脑或经常外出的负责人,这比回办公室签每张纸快。 这次事件证明,电话只找到一部设备,最多找到一个环境,不能自动找到应当作决定的人。 “那电话确认是不是没用?”小郭问。 “有用。”苏雨桐说,“它能证明有人在登记号码接听,能传达风险提示,也能作为多项证据之一。错误是我们让一句‘是’承担了全部授权。” 他们调出录音。客服先报星辰名称,再问身份,然后说出完整金额、供应商与用途。业务助理每项都回答正确。因为他参与采购,这些信息没有秘密可言。 更糟的是,客服为了方便用户,只要对方回答三个问题就勾选通过,没有让他提供一项独立于办公室日常信息的授权凭据,也没有在高经理登记的个人渠道留下通知。 赵秋寒听完录音,说:“你们让人自称是谁,再用他身边的人都知道的事证明他说的是真的。这不是确认,是一次很礼貌的询问。” 电话方案被暂停。 那天晚上,马飞在楼下公用电话给母亲打电话。接电话的是邻居,邻居听出他的声音,说母亲去买菜,五分钟后回来。马飞没有留下公司事情,只让母亲回拨。 他站在电话亭外等,身后有三个人排队。第二个人不停看表,第三个人抱着哭闹的孩子。五分钟变成十五分钟,母亲仍没回。摊主催他别占着位置,他只好先离开。 半小时后,母亲把电话打到公司。前台是小郭接的,问是谁,母亲说“我是马飞他妈”,小郭立刻把线转进办公室。 这条链里,每个人都靠熟悉和常识完成了判断。日常通话足够,付款授权却不能把“大家都知道是谁”当作永远可靠。 马飞与母亲聊完,发现她记得自己小时候传错邻居口信的事,却说不出公司最近使用的任何口令。若系统用童年问题验证,她比马飞本人更可能回答正确。 第二天,高经理脸肿了一边,仍来参加复盘。他没有开除助理。年轻人写了情况说明,承认冒用身份,但也指出公司内部把“老板同意”当成可以由熟悉老板的人推定的文化。过去他代接电话、代签收、代向司机传命令,从未有人画清边界。 “以后付款不许代。”高经理说。 “那你外出怎么办?”老杜问。 “设正式代理权限。”苏雨桐说,“谁代理、限额多少、到什么时候,由本人提前授权。不能事情发生后,因为某个人很了解老板就自动算代理。” 电话确认重新拆成四部分。 第一,登记号码只作为联系渠道,不标成身份本身。第二,客服不再询问可以从办公室获知的生活问题。第三,付款人必须拥有独立凭据,例如事先封装的动态编码卡;编码一次使用、与具体指令绑定,客服只核对编号,不要求用户朗读更多私人信息。第四,任何确认同时向另一个已登记渠道发送提示,让本人有机会在执行前发现冒领。 “没有手机的人怎么办?” “保留纸面、传真和双人复核,不强迫所有人使用电话。” “手机短信呢?”陈维明问。 “可以试提醒,不先当唯一授权。运营商传输延迟、号码转移和丢机都要测。” 这为即将试行的移动确认留下入口,却没有把手机变成魔法身份证。 新流程先在高经理身上测试。他提前授权老杜在五百元以内代理常用供应商付款,有效期一个月。代理使用自己的身份与编码,不说自己是高经理。超过限额时,指令进入待本人确认。 那笔一百八十元付款重新提交。高经理在自己的移动电话上收到一条数字提示,随后由客服回呼。他用与指令绑定的一次编码确认,财务人员另行复核,银行才受理。 业务助理坐在旁边看全程。高经理问他是不是觉得麻烦。 “麻烦。”年轻人说,“但这次不用猜你会不会同意。” 高经理笑的时候碰到伤口,疼得捂住脸。 晚上,陈维明请大家吃面,说庆祝电话方案没有被一棍打死。面馆老板把账单送错桌,隔壁客人看见金额,顺手就想替他们一起结。周会计赶紧拦住,说不认识的人付错钱,明天又要开一章退款。 隔壁客人笑,说这个公司的人真怕钱。 “不是怕钱。”陈维明说,“是怕钱听错话。” 他已经越来越会说星辰的方言。 回公司后,林海把登记电话号码字段从“身份号码”改成“联系渠道”。一个很小的名字变化,迫使所有程序不再默认号码后面永远站着同一个人。 为了验证普通人是否听得懂新提示,苏雨桐没有只找公司员工。她请房东大姐、楼下老杜和银行的一名退休出纳各听三段模拟电话。房东大姐把“本次编码只用于当前指令”理解成以后每次都要换电话号码;老杜只顾记金额,没听清收款人;退休出纳则指出客服报完整账号会让旁边的人听见,不如只读末四位并让用户主动核对其余信息。 三个人的误解都被留下。提示改短,先说动作与风险,再报部分信息;若环境不便,用户可以挂断后在约定时间重新发起,不因一次未确认就被催着当场决定。 测试结束,房东大姐拎来一袋刚蒸的玉米面窝头。她说电话里那些话听着不像骗子,就是太长,等说完锅都糊了。苏雨桐把这句也写进评估:安全提示若让人在日常生活里无法完成,就会诱使人敷衍说“是”。 马飞拿一只窝头走到窗边吃。远处新建的通信塔在夕阳下发亮,街上已有越来越多人把移动电话夹在腰间。未来看似正快速靠近,真正的使用者却还要看锅、接孩子、在嘈杂办公室里替老板接线。移动确认必须进入这种生活,而不是要求生活先变成安静的实验室。 第70章 短信验证 第一条确认短信到达时,陈维明正在一列慢车上吃泡面。 车厢晃得厉害,纸碗里的汤不断泼到小桌板。他把移动电话放在窗边,信号一格一格跳。短信晚了七分钟,屏幕亮起时,他差点把塑料叉掉进碗里。 “星辰付测试:向华北电子器材支付180.00元,编号0173。若信息一致,请在十分钟内使用编码卡第六格,通过登记电话确认。星辰不持有资金,银行结果另行通知。” 一条短信塞满屏幕,要按两次键才能看完。 陈维明先看金额,又看收款人,最后从钱包夹层取出一张覆膜编码卡。第六格刮开后是四位数字。他没有直接回复短信,而是拨通星辰的专用号码,在语音提示后输入交易编号和一次编码。 列车正好进隧道。 电话断了。 他骂了一句,重新拨。系统提示刚才确认未完成,编码仍未使用,但剩余时间只有三分钟。第二次输入时,邻座旅客好奇地侧过头。他用手掌挡住键盘,终于听见:“本次确认已记录,等待单位财务复核与银行处理。” 没有烟花,没有到账提示。 一百八十元仍在付款单位银行账户里。星辰只多了一条由陈维明本人在移动途中提交的授权证据。 他回北京后,第一句话是:“太长,太慢,隧道里还断。” 苏雨桐问:“金额和收款人看清了吗?” “看清了。” “编码被别人看见吗?” “差点。” “断线后有没有重复确认?” “没有。” “那第一目标达到了,体验还要改。” 2000年冬,星辰付0.1开始移动确认试验。移动电话不执行银行划款,也不代替单位财务印鉴。它只让已经登记、拥有明确权限的参与人,在离开办公室时确认一笔具体指令。低额度、常用收款人、一次编码、独立财务复核,四项缺一不可。 短信由通信服务商的企业通道发送,可能延迟,也可能失败。星辰记录提交时间与服务商受理回执,却不把“已发送”写成“用户已收到”。超过有效期,编码作废,指令继续等待,不自动重复发送。 第一周有五十名受邀用户。 有人把移动电话留给司机,有人夫妻共用一部,有人根本不会找短信菜单。傅出纳收到提示后,拿着说明书研究二十分钟,编码已经过期。她第二天到公司,把手机往桌上一放:“这东西比算盘难用。你们不能因为年轻人会按,就说所有人都能用。” 小郭想给她重新演示。傅出纳不肯,让他只在旁边说,不许替她按。她从打开短信开始,一步步记在纸上:菜单键按两次,向下键三次,找到未读信息;号码不认识,要先确认发送方标识;看完金额后退出,再拿编码卡;拨电话时短信不再显示,必须把编号抄下来。 “你们让人同时记两样东西。”她说,“眼睛不好就容易抄错。” 苏雨桐把流程改成短信中只显示短交易号,电话接通后由系统重读金额与收款人末尾简称,用户再输入一次编码。显示不完整仍不执行,用户可以选择转人工或回到纸面授权。 “人工会爆。”陈维明说。 “所以移动确认不是强制渠道,也不能一夜开放。” 第二周发生第一次迟到短信。 一家客户在上午取消指令,系统已经将编码作废。下午三点,通信服务商才把原短信送到用户手机。用户按提示拨号,听见“指令已取消,不得执行”。他仍担心,打电话问是不是取消后又扣了一次。 星辰由此在每条短信加入生成时间和有效期限。取消指令同时发送新提示,但不依赖新提示成功送达才生效。服务器只认权威状态,手机里保存的旧文字不能让已取消交易复活。 第三周,一部手机丢了。 失主是仪器厂财务,挤公交时发现腰包拉链开着。手机、编码卡和十几元零钱一起不见。她急着去派出所,先给星辰打电话挂失。 因为编码卡与手机放在同一只腰包,多证据实际变成了一个包。星辰立即停用该号码与未用编码,所有待确认指令转人工。银行端没有收到新授权,资金未动。 林海在事故记录上写:两个凭据物理共存,失窃风险相关。 “难道要求用户把卡放家里?”财务问,“人在外面怎么确认?” “不能只靠要求。”马飞说,“高额指令不允许仅凭手机和卡;低额也要有单位复核。我们把丢失后的挂失入口做得比找说明书快。” 挂失号码被印到编码卡正面,不再埋在协议第九页。客服能先冻结渠道,再核验身份补办,避免失主必须回单位找合同。 试验期间,马飞也登记了一部移动电话。设备是公司采购的二手机,外壳有一道裂纹,电池只能撑一天。他第一次在公交上收到确认短信时,没有觉得未来终于到来,反而先看周围有没有人看屏幕。 那笔指令是给资料复印店付四十二元。金额很小,仍经过编码和周会计复核。马飞完成确认,车正到站,售票员催他下车。他一边收手机一边被人群挤出车门,差点坐过站。 苏雨桐知道后说:“支付节省的时间,最后可能全花在看手机上。” “所以提示不能频繁。” “也不能把所有风险都推成更多确认。人习惯了,就会闭眼按。” 她的研究线因此增加“确认疲劳”观察。五十名用户每周最多收到的主动提示受限;相同低风险批次可在单位规则下统一确认,高风险变化才单独加验。研究不读取个人搜索查询,只使用参与人明确同意的操作结果与反馈。 十二月十五日,星辰付0.1完成阶段审查。五十名用户共提交四百七十二次移动确认,三十八次因超时转人工,七次短信迟到,两次设备丢失或借用触发冻结,没有一笔仅凭移动确认直接绕过银行和单位复核。 陈维明想把对外稿标题写成“国内首个移动支付系统上线”。赵秋寒把“首个”与“上线”都划掉。 “我们无法证明首个。”她说,“对公众也没开放。” 最终标题是:星辰付0.1启动邀请制移动确认。正文第一段便写限制:小范围、低额度、资金由银行执行、短信不作为到账证明。 “像给自己泼冷水。”陈维明说。 “冬天本来就冷。”苏雨桐把窗关紧。 发布那天没有仪式。五十名用户各收到一封纸质说明和一只印着状态点图标的卡套。傅出纳把编码卡装进去,说卡套比系统实用,至少不容易把纸磨破。 晚上,陈维明请团队吃涮羊肉。他把火车上那碗泡面经历讲了三遍,每遍都把隧道说得更长。林海问他当时手机若掉进面汤,算不算关联风险。陈维明夹起一片羊肉丢进锅里,说那就算产品经受高温液体测试。 众人笑得筷子乱碰。 苏雨桐坐在靠门的位置,冷风一进来就吹到她。马飞起身与她换座,没有说理由。她看他一眼,把刚烫熟的一片冻豆腐放进他碗里。 饭后五十名用户中有人发来最后一条反馈。那是一名经常出差的采购员,他说移动确认让自己少跑两次长途电话,却也让家人抱怨吃饭时总盯着屏幕。他建议设置“非紧急时段”,晚间指令第二天再提醒。 苏雨桐当场记下。第二周,用户可以设定安静时段,普通指令不在深夜催促;真正超过时限的风险由单位提前约定其他处置,不用“紧急”二字无限侵占私人时间。林海看到这条,立刻把自己的号码设为女儿睡后只收机房严重告警。 马飞没有设置全天可达。他也选了一个夜间窗口,只保留搜索与支付的最高级别事故。做完后,他盯着那行时间看了许久。过去他把随时能被找到当成责任,如今一部能跟着人的电话反而迫使他承认:移动不应该等于工作可以无边界地追到每一张饭桌。 掌心里的确认没有让支付摆脱纸、银行、会计和人的判断。 它只是让一个在火车上、公交里或异地办公室的人,多了一条可以表达“我看见这笔具体指令,并在自己的权限内同意”的渠道。 电话仍可能断,短信仍可能迟,设备仍可能丢。 星辰没有把手掌大小的机器叫作身份,也没有把屏幕上的“确认成功”叫作钱已到账。 正因为这些限制公开存在,二〇〇〇年路线图上的“移动支付”才第一次落在真实时代里:不是未来产品的复制,而是一条仍要经过窗口、印章和银行回执,却已经能跟着人移动的细小路径。 第71章 一万名用户之前 “十万用户”写在横幅上,挂了不到半天。 陈维明从行业交流会带回这条横幅,红底白字,末尾还有一个巨大的感叹号。广告店牛老板这次学聪明了,先只收一半钱,等星辰确认再做正式版。 马飞进门看见,让人把横幅取下来。 “又哪里不对?”陈维明问。 “我们现在只有五十名移动确认用户。” “这是明年目标。” “谁批准的?” “合作方愿意给入口。移动通信营业厅、银行网点、商业客户,一起推,十万并不夸张。” “系统处理不了十万。” “服务器能。” “申诉、挂失、退款和银行待核处理不了。” 横幅被卷起来,靠在支付隔间门口。十万两个字仍从卷缝里露出一半,像一双不肯闭上的眼睛。 星辰付0.1的消息虽然写明邀请制,还是收到两千多份申请。有人做批发,有人经营小商店,也有个人用户问能不能在网上交电话费、买火车票。信件、传真和电子邮件把小郭的工位围得看不见桌面。 真正让马飞警觉的,是一只没能按时得到回复的传呼。 申请人姓罗,在街边经营裁缝店。她通过熟人参加了第二轮试用,给布料供应商付了六十八元订金。付款指令因收款户名不一致进入待核,她下午四点留言,第二天中午仍没人回复。担心错过进货,她又从银行柜台汇了一次。 第一笔后来也被银行受理。 两笔钱都到了供应商账户。 星辰的重复提示只检查系统内指令,看不见她在柜台另办的一笔。更关键的是,她在焦虑时找不到人。客服记录堆在传真机旁,她的纸被一份十页申请盖住,直到供应商打电话说多收了钱才被发现。 罗师傅来到公司时,手上还扎着一圈软尺。她没有大吵,只问:“你们页面上写有问题就联系,我联系了,为什么没人回?” 小郭道歉,说当天申请太多。 “申请人多,和我这六十八块有什么关系?” 没有关系。增长是星辰自己邀请来的,不能拿它当作让现有用户等待的理由。 供应商愿意退回多付的一笔,银行流程仍要几天。星辰承担了因超时未响应造成的电话、交通与手续费,并把罗师傅的记录列为服务事故。 陈维明看完仍认为不该因一例延迟放弃十万目标:“多招客服。两千申请里收一点服务费,就养得起。” “先招多少?”马飞问。 “二十个。” “谁培训?他们能看什么数据?误告诉用户已到账怎么办?” “边做边学。” “拿真钱边做边学?” 争论持续到晚上。窗外下起冻雨,电话线受潮,铃声时断时续。小郭一边接申诉,一边热午饭剩下的馒头,最后把一只馒头忘在电炉上,烤成黑炭。焦味飘满办公室,所有人这才意识到他从早上起没离开过座位。 苏雨桐关掉电炉,让他回家。小郭说桌上还有十二个待回电话。 “交接,不是扔下。”她说,“一个人累到闻不见东西烧焦,继续回话只会制造更多错误。” 众人按风险分工。涉及重复付款、疑似盗用和退款期限的今晚处理;普通申请确认明日回复;所有等待者收到下一次更新时间。马飞与陈维明也各拿一份电话表,不把客服当成低级工作丢给新人。 马飞打到第七个,是一位想替父母交水电费的年轻人。对方听说暂不支持个人缴费,很失望,问星辰不是做互联网的吗,为什么连这个都做不到。 “需要与收费单位、银行建立对账和退款流程。”马飞说。 “不就是把钱转过去?” “转过去以后,多交、错交、没记到户上,都要有人处理。” “那你们什么时候能做?” “还没有日期。” 电话挂断,马飞知道这种答案会把许多用户送向更敢承诺的竞争者。但一项服务不能只把最顺利的点击路径画出来,就把所有例外留给柜台和用户自己跑。 第二天,苏雨桐拿出一张容量表,不以服务器请求为中心,而以人能可靠完成的工作为中心。挂失平均需要十五分钟,普通状态查询五分钟,退款与争议从半小时到数天不等。当前两名轮班人员每天最多闭合三十件异常,且必须保留培训、复核和休息时间。 “按现在异常比例,五千活跃用户已经接近上限。”她说。 “十万不是同时活跃。”陈维明说。 “所以要看分阶段数据。不能只拿注册数除。” 他们最终提出四道扩容门槛:账务服务器在目标负载下稳定;银行批次和状态回执有确定容量;百分之九十五的高风险申诉在承诺时间内首次响应;退款、挂失和误判都有足够训练后的人员轮班。任一门槛不满足,暂停新增邀请。 用户总上限先定一万,不是马上招满,而是作为下一阶段不得越过的边界。每增加一千人做一次复核,任何宣传不得把“可申请”写成“已开通”。 陈维明仍嫌小:“合作方一句推广就能带来十万。你把机会挡在门外。” “一万以内先把路走通。”马飞说,“若连一万个真实生活里的问题都接不住,十万只是把失败放大。” 为了证明这个上限不是保守情绪,团队做了三天演练。员工和客户志愿者模拟手机丢失、短信迟到、重复付款、收款人争议与账号变更。第三天下午,客服队列最长等了四十七分钟,一名新培训人员把“银行已受理”误说成“对方已收到”。演练立刻停止,录音回放,话术重新训练。 如果这是真实十万用户,四十七分钟可能变成几天,一句错话可能变成货物发出或重复付款。 陈维明终于同意把横幅退回。他骑车去广告店,牛老板不肯退定金,说布已经裁了。陈维明把“十万”剪掉,留下“用户”,再让人补成“服务每一名受邀用户”。字大小不一,看着很别扭。 “这还怎么挂交流会?”他问。 牛老板说:“别挂,拿回去当桌布。” 横幅最终真铺在客服桌上,盖住被传真机烫黄的桌面。那半个感叹号垂在桌边,罗师傅来取退款回执时一眼认出。 “你们原来想十万?”她问。 “想过。”陈维明说。 “那我这张纸会不会又被盖住?” “不会。现在每件申诉进系统,有编号和下一次答复时间。” 她看了看他,收好回执:“先把我们这些几十块钱的人照顾明白吧。” 离开前,她送给小郭一只缝好的帆布文件袋,袋口有扣,不容易让纸滑出去。软尺仍挂在她脖子上,像刚从裁缝台赶来。 退款真正到账那天,小郭没有只在系统里把状态改成“已闭合”。他骑车去了罗师傅的铺子,让她在自己的存折上确认数字。铺子只有一间门脸,门口挂着半截棉帘,熨斗蒸汽和浆过的布料味混在一起。罗师傅正给一个要赶春节婚礼的姑娘改袖口,脚踩缝纫机,嘴里还在和布商核对下批面料。六十八元不算一笔能让店铺倒闭的钱,却让她多跑了两次银行,少接了一件改裤脚的活。 “你们算事故的时候,算不算我排队的两个钟头?”她翻着存折问。 小郭愣了一下。他们的事故表里有金额、电话费、手续费和处理时长,却没有用户为一笔错误耽误的工时。 当晚,表格多了一栏“用户额外付出的时间”。它不能全折算成赔偿,却必须被看见。苏雨桐说,系统最容易统计的是自己的忙碌,最容易漏掉的是别人被迫承担的麻烦。陈维明看着那一栏,第一次没有提转化率,只让人把银行营业时间、公交路线和平均等待一并写进复盘。 客服排班也随之改了。小郭不再一个人守到深夜,支付、运维和产品轮流值守,但每个人每周必须有两个不被临时电话占用的晚上。谁需要换班,要在白板上写明交接事项,不能只留一句“有事找我”。第一个按新制度准点离开的人反而是小郭。他拎着装午饭的铝饭盒走到门口,又回头看了三次,最后被林海推着肩膀送进电梯。 第二天,他带来两只没有烤焦的馒头和一小罐母亲腌的萝卜。众人围在客服桌边吃早饭,那条改过字的横幅成了桌布,油渍落在“服务”两个字旁边。陈维明本能地想拿纸擦,罗师傅送的文件袋却好好挂在桌侧,一张回访单也没有被压住。 晚上,小郭把高风险申诉装进那个袋子。林海提醒纸袋只是运输,权威记录仍在系统。小郭说知道,但至少不会再让一份传真被十页申请压住。 马飞站在卷起的横幅旁,想到自己路线图上那些宏大数字。百万用户、火箭回收、登月、火星、比邻星。数字可以给方向,也会诱使人把尚未承受的生活压缩成增长曲线。 十万没有被取消。 它只是失去了写在横幅上、逼所有现实向它让路的权力。 第72章 盲测 苏雨桐把答案锁进铁皮柜的那天,实验室暖气坏了。 窗缝里灌进来的风把打印纸吹得一角一角翘起。她戴着露指手套,在三只牛皮纸袋上分别写下“训练”“调试”和“最终评估”,又把装有最终标签的软盘放进最里面那只袋子,用浆糊封口,在骑缝处签上名字和日期。 陈维明站在门口,手里捧着一杯刚冲的豆浆:“这么郑重,不知道的还以为里面是工资。” “比这月工资贵。”苏雨桐说,“要是谁先看了答案,三个月的实验都得重来。” 研究小组刚从支付与搜索两边收集到一批经过授权、脱敏和人工复核的异常样本。所谓异常并不都是坏人。有老人重复点了两次确认,有商户把同一天的进货拆成十几笔,也有人从外地出差,电话区号和常用地址对不上。真正需要拦下的,只占很小一部分。 产品组很想尽快把这些样本变成一道“聪明的门”。马飞却同意苏雨桐先做盲测:建模型的人只能看训练集,调参数的人只能看调试集,最终评估样本由不参与开发的人保管。在正式揭晓前,任何人都不能根据最终答案修改规则。 负责保管的人叫乔岚,是大学实验室派来协作的助理研究员。她二十四岁,骑一辆车铃不响的旧凤凰自行车,每天从学校宿舍穿过两条结冰的小路来星辰。她第一次进公司时,前台以为她是来应聘文员的,因为她怀里抱着搪瓷饭盒和一摞用棉线缝起来的记录本。 苏雨桐问她为什么不用订书钉。 “拆过会留痕。”乔岚说,“老师以前把我的实验页弄乱,我就养成这个习惯了。” 她不负责设计模型,只负责抽样、编号、保管答案和主持最后评估。这个位置看似离“智能”最远,却拥有叫停所有人的权力。 第一轮讨论很快暴露出分歧。 支付产品的一名同事提议把用户在搜索框里查过什么也加入判断:“搜过‘退货’‘银行卡’‘套现’,总能说明点问题。数据都在我们公司,拿过来又不用花钱。” 苏雨桐把铅笔横放在本子上:“搜索数据和支付研究的授权是分开的。” “可以只看关键词,不看姓名。” “把时间、地点、商户和查询组合起来,人很容易重新被认出来。更重要的是,他来搜索一个词,不等于同意我们拿它决定一笔钱能不能付。” 对方不服:“不用这些,模型怎么赢?” “先问该不该用,再问能不能赢。” 最终样本只保留支付流程本身允许使用的信息:金额、授权方式、账户状态、近期失败次数、商户类型,以及人工争议留下的有限事实。姓名、完整卡号、搜索内容全部不进入研究环境。林海另做了一份导出程序,每次导出都生成清单,由两人签字,研究机器不能反向连接账务服务器。 这些限制让样本变得不那么“漂亮”。许多记录只有空白,有些字段由银行批次延迟一天才补齐。年轻工程师抱怨像蒙着眼走路,苏雨桐说盲测本来就不是为了让人走得舒服。 她给团队定下最简单的比较办法:先做一套人人看得懂的规则基线,再做统计评分。结果不只看命中了多少异常,还要看错拦了多少正常付款,以及漏掉的事情后来给用户造成什么后果。把一位赶着付住院押金的人误拦,和让一笔可以次日复核的订货款多等十分钟,不应只算成两个相同的“错误”。 马飞听完,提醒她不要预设未来答案:“你以前说过,我脑子里的经验不能代替这一年的证据。你的判断也一样。” “所以答案在柜子里。”苏雨桐看了他一眼,“也包括我不喜欢的答案。” 研究持续了六周。 白天,苏雨桐仍要处理搜索业务。春运前,许多人开始查车次和地图,搜索服务器负载上升。她上午和林海排查分词程序,下午到大学实验室看模型,晚上回到出租屋才整理盲测记录。两个人的住处添了一床苏母寄来的新棉被,花面是俗气的大红牡丹,厚得把柜门都挡住一半。 马飞第一次套被罩,把被芯塞成一团。苏雨桐从桌边抬头,发现他正试图用工程图一样的办法把四个角编号,忍不住笑了。 他们一人抓住两个角,把被子在狭小客厅里抖开。风带着棉絮飞到苏雨桐的头发上,桌上的评估表被压在茶缸下面。那晚她没有再去公司,只在家把缺失字段的处理原则写完,十点钟准时关灯。 第二天,乔岚却迟到了。 她的自行车链条在桥上断了,裤脚沾满黑油。她走进实验室先检查铁皮柜上的封条,又去水房用肥皂搓手。有人催她赶紧把前一日抽取的样本交出来,她摇头,说手上油污会弄脏原始记录,必须等晾干后戴手套。 “电脑里的数据又不会脏。”那人说。 “电脑里的版本从纸上复核。”乔岚回答,“纸错了,电脑会把错放大得很整齐。” 午饭时,她打开搪瓷饭盒,里面是冷米饭和一块豆腐乳。苏雨桐把自己从食堂带回来的白菜分给她,问协作补贴有没有按时发。乔岚说学校手续还差一个章,房东却不会等章,月底以前若拿不到,她就得把自行车卖了。 苏雨桐当天下午找财务核对。星辰不能替学校发工资,但可以按协议先结已经验收的工作部分。两天后,乔岚拿到第一笔协作费,没有换新车,只花三块钱修好链条,剩下的寄回了县城。她母亲来信说弟弟要买复习资料,信纸背面还写着一份腌雪菜的方法。 苏雨桐把这件小事记进项目复盘:独立评估不是找一个清高的人守柜子,还要让守柜子的人不必为了房租接受开发组的人情。预算、职责和生活条件都可能影响所谓客观。 第一次中期演练时,开发组犯了一个很常见的错误。 他们没有偷看最终标签,却反复询问乔岚“这批结果大概好不好”。乔岚起初只说不知道,后来干脆在桌上摆了一只空茶缸。谁再试探一次,就往里面放一枚硬币,作为全组的晚饭基金。三天后,茶缸里有一块八毛。 陈维明路过,以为是募捐,塞进去五块钱。弄清用途后,他把钱拿回来,又问:“那我能不能只知道通过率?” 乔岚指了指茶缸。 陈维明叹气,放回五块:“算我替市场部交学费。” 真正的盲测安排在三月的一个星期六。公司会议室清空,开发组把程序和参数刻在只读光盘上,林海计算校验值并封存。乔岚当众检查牛皮纸袋的签名,剪开棉线,取出最终样本。测试机器拔掉网络线,输入文件只读,输出直接打印。苏雨桐坐在最后一排,没有碰键盘。 打印机走纸很慢,齿轮每转一下都发出细碎的咔哒声。大家盯着那条不断伸长的纸,像在等医院化验单。 第一个结果出来,命中率比训练时低。第二项更难看:正常交易误报接近训练结果的两倍。开发工程师立刻说最终样本可能抽偏了,要求先看几个案例再决定是否重跑。 “先按预先写好的流程算完。”苏雨桐说。 “明明有问题,为什么不能修?” “可以修。揭晓以后它叫下一版,不能倒回去假装这一版从没失败。” 下午四点,所有数字写上白板。复杂评分确实捕捉到几种旧规则看不到的组合,但也把一批月底集中进货的正常商户判成高风险。它在训练集里学到的,不完全是欺诈模式,还有那几个月里样本怎样被人工挑选出来的习惯。 没有人鼓掌。 苏雨桐却把报告封面上的“内部试验”改成“盲测基线一号”,要求原始输出、代码版本、失败案例和现场签名一并归档。陈维明问这份难看的报告能不能别给董事会看,等改好再报。 “董事会给了独立预算,就应当看见预算买到了什么。”她说,“失败不是没产出。把失败藏起来,才是什么都没买到。” 夜里散会,食堂早关门了。大家用茶缸里的钱买了两袋热包子,五块钱贡献者陈维明坚持多拿一个。乔岚把剩下的包子包进报纸,准备带回宿舍给室友。她去取自行车时,发现车座上落了一层薄霜。 苏雨桐和她一起推车走到路口。乔岚问:“结果这么差,研究线会不会被砍?” “也许有人会提。” “那你为什么看起来不太难过?” 苏雨桐停下来,把围巾往上拉了拉:“因为今天以前,我们只有一种自己觉得很聪明的方法。今天以后,我们有一把不讨好任何人的尺子。” 路口的红灯很久。自行车、公交车和卖夜宵的三轮车挤在白线后,热气从包子袋里一点点冒出来。苏雨桐想到实验室铁皮柜里那些被封住的答案,也想到罗师傅为六十八元多跑的两个钟头。 所谓智能,如果只在开发者知道答案时表现聪明,只在用户按预想方式生活时保持准确,那就不是能够托付事情的能力。 灯转绿后,乔岚跨上那辆修过链条的凤凰车。车铃仍然不响,她抬手朝苏雨桐挥了一下,汇入夜班下班的人流。 苏雨桐没有急着回公司改模型。 她先去街角公用电话亭给母亲打了个电话,说棉被收到了,很暖,花也没有想象中那么难看。然后买了两个烤红薯,一个给马飞,一个留给自己。 盲测的答案已经揭开,真正困难的工作才刚开始。 第73章 模型第一次输给规则 盲测结束后的第一个星期一,白板上的数字还没有擦。 误报率那一栏被红笔圈了两遍,旁边有人趁周末写了句“小样本不代表未来”。字很小,像一句既想反驳又怕被认出的辩解。 苏雨桐进会议室,先把窗户推开。清晨的冷风灌进来,白板笔的酒精味淡了一些。她没有追问是谁写的,只把那句话也纳入会议记录。 “同意,小样本不代表未来。”她说,“但它代表这版模型在这批没有提前见过的数据上输了。” 开发组做的统计评分用了十几个变量:金额相对历史均值的偏离、短时间尝试次数、商户类型变化、授权失败间隔和账户使用时段。训练时,它比旧规则多找出近三成异常。可在乔岚保管的最终样本上,新增命中的大半是月底集中进货的批发商。 与之相比,那套人人看得懂的基线只有五条:同一指令不可重复执行;连续授权失败后暂停高金额操作;收款户名不一致转人工;挂失账户禁止新授权;超过受邀额度必须由银行复核。 基线不聪明,也不迷人。它漏掉两种后来确认的可疑组合,却很少把正常商户赶去打申诉电话。综合人工成本和用户损失,复杂模型第一次输给了规则。 工程师孙理不愿接受。他为这版评分熬了两个多月,桌下放着一张行军床,春节回家的车票退过一次。他指着样本分布说:“最终集里批发商太多。重新按训练集比例抽一次,肯定不是这个结果。” “真实用户为什么必须按训练集比例生活?”苏雨桐问。 “至少应该均衡。” “均衡的是研究方便,还是业务现实?” 孙理沉默了一会儿,把笔摔在桌上:“那我之前做的全是白费?” 苏雨桐没有用“失败也是成功”安慰他。她年轻时也听过这句话,通常说完以后,失败者仍要一个人收拾残局。 “有两部分不是白费。”她说,“一是模型找到了旧规则看不到的两个组合,二是盲测告诉我们它还不能决定真实用户的钱。前一部分进候选规则,后一部分留在报告里。” “把模型拆回规则?” “先让结论承担得起后果。” 产品会上,陈维明提出折中方案:对外仍叫“智能风险识别”,实际只上线五条规则,把模型放在后台打分,不触发拦截。这样既不伤用户,也能给市场一个新说法。 马飞问:“后台分数做什么?” “积累案例。” “那就叫研究评分。为什么一定要在宣传页写智能?” “竞争对手已经在说智能商务、智能门户。我们什么都不说,客户会觉得落后。” 赵秋寒翻开产品说明草稿,念出一句“星辰智能系统自动识别危险交易”。她把“自动识别”划掉:“如果用户因这个说法相信每笔危险交易都能被挡住,出事以后你准备怎么解释那两种漏报?” 陈维明说宣传不可能把所有限制写在标题里。 “可以不写标题。”苏雨桐说。 会议没有谈出热闹的名字,只定下朴素的处理方式:五条明确规则进入受邀环境,每次触发都显示原因和申诉路径;模型只生成研究标记,标记不进入支付执行链,也不提供给客服作为定罪依据。任何人查看研究结果必须留下用途和时间。 孙理在会议结束前起身,说自己不想做“把模型拆成五条判断”的活。 “我请几天假。”他说。 苏雨桐批准了,没有让他交出宿舍钥匙,也没有用项目节点拦人。 孙理回了趟河北老家。第三天,他给公司打来电话,背景里有鸡叫,也有母亲喊他去给煤炉添火。他说父亲看不懂他的图表,只问了一件事:那台机器若不让别人付钱,机器说错了谁去赔? “我没答上来。”孙理说。 “回来再答。”苏雨桐说。 一周后,他带着一袋家里炒的花生回来。行军床仍在桌下,他却把被子卷起,送到附近洗衣店,不再把睡在公司当成努力的证明。苏雨桐让他负责模型失效分析,并给他配了一名不参与原开发的产品同事。 两人从误报案例中挑出一位姓魏的五金商。魏老板每月二十八日前后集中向三家供应商付款,因为仓库月底盘货;春节后第一次使用移动确认,付款地点又从店铺电话改成了妻子的手机。模型把“集中、大额、新设备”叠成高风险。 孙理和小郭去店里回访。五金店开在建材市场最里面,屋顶漏雨,货架上扳手和水龙头挤在一起。魏老板没空听算法解释,一边给客人称铁钉一边说:“我每个月都这么进货。你们要是不让我付,供应商就不给我留货。” 他的妻子从里间出来,把手机从围裙口袋里掏给他们看。那是一台用了很久的直板机,屏幕右下角有裂纹。她负责月底账务,因为魏老板写字慢。所谓“新设备”,只是星辰第一次见到这个号码。 回公司路上,孙理一直没说话。公交车堵在市场出口,小郭拿出魏老板硬塞的一把螺丝钉,问能不能拿去修客服桌松动的抽屉。 “先登记礼品。”孙理下意识说。 小郭笑了:“一把螺丝也登记?” “模型会把没登记的异常当成正常。” 他说完自己也笑了。回到办公室,他把魏老板案例写进报告,没有删掉那些令模型难看的细节,还新增一条结论:设备首次出现不能直接等同于设备异常,家庭成员代办在受邀客户中很常见,但必须重新确认授权关系。 接下来的两周,团队把两种新增组合改写成“提示人工复核”的候选规则。其中一种涉及短时间跨多个商户重复失败,确有风险;另一种与某类商户的结算习惯高度相关,证据不足,被放回观察清单。 陈维明问,既然复杂模型里有用的东西最终变成规则,为什么还要养研究组。 “因为没有模型试过,我们可能看不到组合。”苏雨桐说,“但发现线索和拥有裁决权不是一回事。” “以后模型总会超过规则吧?” “可能。那也要一轮一轮证明,不会因为我们希望它赢就算赢。” 乔岚开始准备第二套盲测样本。她改变抽样方法,按时间向后留出一段完整数据,而不是从同一时期随机挑选。这样更接近系统面对未来的样子,也更容易暴露环境变化。她仍用棉线装订纸质索引,这次多加了一栏:每个标签由谁判断、依据是什么、是否存在分歧。 有二十七条样本无法得到一致答案。过去,开发组会把它们删掉,免得影响训练。苏雨桐决定保留争议标记,不强迫现实装成干净的对错题。 周五晚上,孙理把第一版失效报告交上来。封面没有写“智能”,只写《研究评分一号:盲测失败与适用边界》。报告末尾列着四个尚不能回答的问题,其中第一个就是魏老板妻子那台有裂纹的手机。 他本想等苏雨桐批完再走。墙上时钟刚过七点,母亲从老家打到公司,问他周末能不能去火车站接姨妈。孙理捂着话筒,说还有工作。 苏雨桐在报告首页签下“归档,继续研究”,把文件递还给他:“工作已经留下了。去接人。” 孙理收拾书包时,从抽屉里抓了两把花生放到公共茶盘。众人边剥边看新上线的规则记录。第一天共有三笔进入人工复核,两笔因户名不一致,一笔因连续输错确认码。三位用户都在承诺时间内得到解释,没有谁被一个看不见的分数宣布有罪。 连续输错确认码的用户是一位印刷厂采购员。他在公共电话旁听短信,车间机器太响,抄错了两次数字,第三次又把纸条拿反。规则暂停了付款,却没有给他贴上“可疑”的永久标签。客服回拨到厂办公室,按预留联系人复核后恢复权限,并建议他以后走到安静处再确认。 孙理调出后台研究分数,发现模型给这笔交易打得很高。他本想把它当作模型仍有价值的证据,乔岚却提醒:“真实结论是噪声环境导致输入错误,不是分数证明他危险。” 第二天,他们去印刷厂看了一次。机器轰鸣得面对面也要喊,采购员把确认数字写在废纸边角,手指还沾着油墨。孙理回公司后,在研究记录里增加“信息获得环境”一栏。它暂时无法自动采集,也不该靠监听电话采集,却能提醒研究者:屏幕里相同的三次错误,可能来自完全不同的生活。 白板上的误报数字终于被擦掉,但失败报告没有消失。它被放进研究档案第一格,和程序光盘、盲测签名、魏老板店里的回访笔记放在一起。 模型第一次输给规则,并不意味着星辰从此只相信规则。 它意味着在一台机器尚未学会承担错误以前,人不能替它撒谎说已经学会了。 第74章 算力不是智能 四月第一场雷雨来的时候,研究室跳了闸。 不是雷劈坏了线路,而是孙理把第三台计算机接上插线板,又有人在同一墙插上烧水壶。空气里“啪”地一响,屏幕全黑,烧到一半的水停在壶里,窗外的闪电反而把每个人的脸照得很清楚。 林海举着手电进来,先拔掉烧水壶,再检查配电箱。他在那只发烫的插线板上贴了张红纸:禁止继续串接。 “三台机器就不行?”陈维明问。 “墙里是旧线,不能按插孔数量算容量。” “换粗线。” “要房东、物业和电工一起查。还要看空调,不只是电源。” 陈维明原本准备了一场媒体参观,主题叫“星辰智能计算中心”。他设想把十几台机箱排成两列,指示灯闪烁,记者拍照时一定很像未来。现实却是三张从二手市场买来的桌子、一台嗡嗡响的窗式空调,以及满地不能再接的电线。 “这个月买八台服务器。”他在会上说,“至少先把阵势做出来。” 苏雨桐问:“八台跑什么?” “你的模型、搜索索引、数据分析。算力多了总有用。” “研究环境和搜索生产环境不能因为拍照混接。模型也不是把同一份程序复制八遍就变聪明。” “行业都在讲算力。” “电费也会讲。” 财务很快给出一张预算。服务器采购只是第一笔,后面还有机柜、交换设备、备份介质、空调、电力改造和夜间值守。旧办公楼若全面改线,房东要求星辰承担大半费用,但租约只剩一年半。把设备放进现有机房,又会挤占账务服务器的独立区域。 马飞没有直接否决。他让苏雨桐列出未来十二个月真正需要完成的研究任务,再让林海分别估算本地计算、夜间借用大学实验室和租赁托管机位的成本。每一台设备必须对应任务、数据权限和停止条件。 任务表列了七项,苏雨桐删到三项:建立稳定的盲测流程;验证规则与有限统计模型在时间变化下的表现;改进中文搜索中的歧义消解。她把“通用智能商务平台”整行划掉,说这个名字没有可以验收的内容。 孙理起初舍不得。他看中一款新到货的双处理器服务器,彩页上印着巨大的速度数字。他把彩页带回宿舍,吃饭时也压在桌角。同屋的表弟来北京找工作,看了半天问:“买了这个,你那机器就知道我是好人还是坏人?” “不知道。”孙理说。 “那数字这么大干什么?” “能更快算错。” 他说完自己把彩页折起来。第二天,他在需求表上写:若数据定义和评估方法不变,新增节点只缩短训练时间,不改变证据质量。 团队最后决定采购四台而不是八台。其中两台用于离线研究,一台作为受控数据准备节点,一台留作故障替换与复现实验。它们放在托管机房的独立机柜中,不与账务网络相连。搜索业务的扩容另行采购,账目也分开。 设备到货那天,雨刚停。运输车进不了院子,司机把木箱卸在路口。林海、孙理和两名搬运工用平板车往里推,车轮陷进积水,半箱泥点溅在孙理裤腿上。陈维明请来的摄影师已经到了,想让大家先擦干净再重走一遍。 “机器要先验封条和碰撞记录。”林海说。 摄影师说光线过会儿就没了。 “那就拍泥。”苏雨桐说。 照片后来没有上媒体,只贴在研究室门后。四个人推着木箱,裤脚全湿,没有发光的机柜,也没有“智能中心”的牌子。 托管机房在城北。苏雨桐第一次去,坐了一个多小时公交,又步行穿过一片正在施工的道路。机房值班员姓周,四十多岁,午饭用铝锅在暖气上热。他带他们检查电力、温度和出入登记,反复强调任何人不得为了省事把门卡借给同事。 陈维明问能否在门口挂星辰的标志,周师傅说:“挂了也不能让你多用一安培电。” 安装从上午持续到晚上。孙理跑程序,林海记录网线端口,乔岚核对导入样本的编号。苏雨桐带来的面包早吃完了,周师傅把自己那锅白菜面分成四碗,还拿出一瓶腊八蒜。 “搞人工智能的也吃面?”他问。 孙理端着碗说:“今天主要搞螺丝和地址。” 周师傅听不懂后半句,但很满意有人承认机器也得拧螺丝。 新设备让一次完整训练从十几个小时缩短到三个小时。第一周,开发组兴奋地一天跑四五次,参数表很快堆满一面墙。苏雨桐却发现,实验次数增加后,大家开始只挑最好的一次汇报。若每晚试二十种组合,总能碰见一个在调试集上格外漂亮的数字。 她随即补了实验登记:每次运行前写下假设、参数范围和主要指标;所有结果保留,不能只保存最好的一次;同一调试集使用次数达到上限后封存,另换样本。算力越便宜,偶然被包装成发现的机会越多,流程反而要更严格。 有人说这会拖慢速度。 “四台机器省下的时间,不是让我们更快骗自己。”她回答。 五月,星辰终于安排了一次小范围开放日。没有“智能计算中心”,邀请的是合作银行的技术人员、大学老师和几位受邀商户。来访者不能进入机房,只在会议室看盲测流程、申诉案例和匿名结果。 魏老板也来了。他穿着沾灰的工作服,坐在一群工程师中间很不自在。孙理把“首次出现的设备”那个误报案例讲完,请他说明月底进货的习惯。 魏老板对投影上的曲线没兴趣,只问:“现在我老婆用那台手机,还会被你们拦吗?” “不会仅因为第一次出现就拦,但高金额会要求重新确认授权。”孙理说。 “那就讲这个。我听得懂。” 会后,大学老师评价星辰的模型并不先进,样本也少。陈维明脸色有些难看,苏雨桐却请对方把批评写进访谈记录。老师又补了一句:愿意公开盲测失败和适用边界的公司更少。 独立研究预算也在这个月正式执行。苏雨桐拥有经过董事会批准的年度额度,支付和搜索产品负责人不能以临时上线为由随意抽走研究人员。相应地,研究组每季度必须交付可复现实验、数据使用清单和负面结果,不以“方向前沿”为理由无限延期。 她把第一笔预算的一部分用在很不起眼的地方:给乔岚续协作合同,为实验室买带锁档案柜,支付样本复核人员的工时,还订了一班往返托管机房的通勤车。车只是一辆旧面包车,每周二、四发两趟,车门关上时要用力拉。 此前,孙理和乔岚常在末班公交后骑车回城。一次乔岚在路边补胎,回宿舍已过凌晨。苏雨桐认为这不是“研究热情”,只是预算把时间和风险偷偷转嫁给个人。 面包车第一次发车,周师傅托人带来一罐腊八蒜。车里蒜味很重,所有人开着窗,风吹得实验记录哗哗响。孙理抱怨味道会留在服务器旁,乔岚说服务器不怕蒜,人才怕。 马飞去看新机柜时,没有问每秒能算多少次。他先检查研究网和账务网是否确实隔离,又抽查一份失败实验能否从登记、代码、输入一路复现到输出。孙理花了四十分钟重跑,结果与归档一致。 检查快结束时,周师傅故意拉下测试机柜的一路备用电。风扇声骤然停了一半,监控蜂鸣器响起。孙理第一反应是扑向键盘,林海拦住他,先按演练表确认断电范围、记录时间,再切换到备用设备。恢复后,一次未写完的实验丢了,原始数据和已归档结果都在。 周师傅把这次演练写进值班本,问他们媒体宣传里会不会提“停电丢了一次计算”。陈维明说没人爱看这个。苏雨桐却让人把恢复记录放进开放日材料:“算得快是机器的成绩,停下来还能说明白发生了什么,才是系统的成绩。” 夜间值守不再默认由最年轻的人承担。林海排了轮班,连续值守后次日上午不得安排评审。值班室添了一张折叠床、一只干净热水瓶和药箱,费用都记在研究预算里。它们没有任何一件能提高每秒计算次数,却让机柜后的工作不再依靠某个人硬扛到天亮。 “这四十分钟算智能吗?”陈维明半开玩笑地问。 “算诚实。”马飞说。 那天回程,面包车堵在晚高峰。苏雨桐靠着车窗睡着了,膝上还放着乔岚缝过的记录本。马飞把自己的外套搭在她肩上,没有叫醒她讨论下一代模型。 道路两侧的广告牌不断出现“网络”“智能”“未来”这些词。它们比机房里的风扇安静,也比真实研究轻巧。 星辰有了更多算力。训练更快,索引实验更大,机柜上的灯也确实更密。 但没有一盏灯能替人决定该用什么数据,怎样承认失败,谁来承受误判,又该在什么时候让一个疲惫的人坐车回家。 算力是能力的一部分。 智能若存在,首先不能是对责任的省略。 第75章 利润表 六月结账时,财务室多了一扇门。 原来的财务室只是大办公室角落的一道木隔板,谁去饮水机都能看见账册。赵秋寒提醒支付业务扩大后,合同、对账和公司自有资金凭证不能混放,更不能让客户误以为星辰替银行保管钱。公司请木工加了一面隔断,门锁很新,门框却有些歪,每次关门都要往上抬一下。 财务负责人许姐搬进去的第一天,把两摞账本放在桌上。左边贴蓝纸,写“搜索”;右边贴黄纸,写“支付”。桌子中间还有一本薄得多的灰色账册,属于先进工程预研。 马飞召集半年经营会,开场只提了一个要求:三本账都按真实成本算,不能让挣钱的业务显得更漂亮,也不能让喜欢的项目把费用藏在别人名下。 陈维明先拿出搜索业务的报告。企业索引服务、商业入口和有限广告带来稳定收入,服务器、带宽、内容维护和销售费用扣除后,连续四个月为正。数字不大,却已经能覆盖搜索团队工资与下一轮设备折旧。 “如果扩大广告位,利润还能翻倍。”他说。 苏雨桐翻到附页:“用户投诉也会翻。结果页顶部现在已有两处商业位置,再加必须另做相关性测试,不能让付费页面冒充自然结果。” “今天是利润会。” “投诉处理也是成本。” 许姐把一叠客服工时单推过去。过去这些电话统一算行政费用,分账后才看清,搜索结果不相关、商业标识不清带来的解释工作占掉客服近四分之一时间。若只看广告收入,增长很诱人;把用户困惑也计入,新增位置的收益便没有那么干净。 支付业务的账更薄,也更复杂。星辰不碰客户货款,收入来自合作方支付的技术服务费、受邀商户的小额系统服务费和对账工具费用。专用服务器、银行接口维护、轮班客服、法律审阅与申诉补偿扣除后,最近两个月刚越过盈亏线。 六十八元重复付款事故被单独列出。赔偿与手续费不多,回访、调查和培训却用了十几个人时。陈维明看到后皱眉:“连马总去打电话的时间也算?” “算。”许姐说,“若只有老板免费救火才能盈利,就不是真盈利。” 小郭坐在末席,听到这句话偷偷笑。他现在每周能有两个晚上按时回家,母亲不再把饭菜放在锅里热三遍。代价是公司新招了四名客服,还要给他们培训、复核和夜班补贴。这些都让支付利润看起来更小,却让那条线可以离开某个具体人的硬撑继续运转。 “所以两条业务都赚钱了?”董事问。 许姐没有立刻点头:“形成了有限现金贡献。搜索连续四个月,支付只有两个月。账面为正不等于现金随时可用,有些服务费要四十五天以后才能收回。” 她在黑板上画了三条时间线:开票、应收、到账。六月报表上的利润,有一部分仍躺在合作方的付款流程里;七月工资和机房费用却不会等。 马飞对这些并不陌生。未来记忆里,无数公司死在“看起来赚钱”和“手上有钱”之间。但他没有用那些故事压服董事,只让许姐把最坏情况下的到账延迟按当前合同重算。 结果是:若两家主要客户同时晚付一个月,公司仍能发工资、付机房和履行支付申诉;若晚付两个月,必须暂停新采购和先进工程扩张;若核心收入连续两个季度下降,则重新审查所有长期项目。 会议真正的争议落在灰色账册上。 先进工程预研没有营业收入。事故问题册、材料资料、外部咨询和小型验证都在花钱。过去它的季度额度严格受限,如今两条业务首次共同形成现金贡献,马飞提出把预研预算提高一倍,为非燃烧试验台与材料样片做准备。 一名董事问:“两条业务刚会走,就要养第三个不会赚钱的孩子?” 陈维明也罕见地犹豫。他支持马飞的长远目标,却知道搜索推广和支付扩容都缺钱:“一万用户还没到,银行合作也能继续谈。现在加先进工程,会不会太早?” 马飞没有展示火箭效果图。他把灰色账册里已经完成的工作一项项念出来:事故模式问题册、跨系统时间基准推演、外部公开资料核验、合规路径调查,以及明确不做的高风险事项。 “提高预算,不是宣布造出火箭。”他说,“下一阶段只租合规场地,做阀门、传感器、采集系统和材料样片的低风险验证。没有资质,不碰推进剂;现金停止线触发,立即冻结扩张。” “如果一直没有收入呢?” “它在很长时间里都不会有收入。” 这句话让会议室安静下来。投资人习惯听市场规模、回报周期和先发优势,很少有人主动承认一个项目将长期消耗现金。 苏雨桐问:“预算提高以后,谁有权停?” 马飞说,财务可因现金停止线冻结未签支出;安全和合规负责人可叫停试验;技术审查未通过,不得用创始人决定替代;董事会每季度看原始记录和失败项。 “你自己呢?” “我提出方向,不拥有绕过停止线的权力。” 赵秋寒要求这句话写进决议,而不是只留在录音里。 会议中途,木门突然卡住。许姐端着暖壶出去后推不开,外面的人敲,里面的人拉,最后木工被叫回来削门框。董事们只好暂停宏大预算,在走廊里分吃前台买来的西瓜。 小郭把西瓜切得大小不一,最甜的中心留给了夜班客服。陈维明拿到一块靠皮的,边啃边看许姐贴在墙上的三条现金时间线。汁水滴到“应收”下面,他赶紧用报纸擦。 “企业是不是总这样?”他问马飞,“刚觉得手里宽一点,马上又有地方要花。” “家里也一样。”马飞说。 他和苏雨桐正准备换住处。出租屋的房东要涨租,新棉被又占了半个柜子。两人周末看了三套房,一套离公司近但没有阳台,一套便宜却要倒两次公交,还有一套厨房漏水。最终他们没有因为公司“盈利”就买房,只续租半年,请房东修窗缝。 苏雨桐把家庭账本摊在饭桌上时,马飞看见一列“寄父母”,另一列“应急”。她说公司资金和家里资金的道理并没有神秘多少:不能把下个月才可能收到的钱,当成今天已经能花的钱;也不能因一个远大目标,把所有人的眼前生活都变成可以无限延后的项目。 董事会下午重新开门时,许姐带来修改后的方案。 先进工程预算提高百分之六十,而不是一倍。第一批只批准场地评估、非燃烧试验台设计、公开渠道材料样片和合规顾问费用。后续拨款分三道门:场地安全审查完成;试验计划能从测量目标反推设备;搜索与支付保留六个月基本运营现金。 与此同时,搜索与支付各自建立完整利润表,不再用总收入遮盖成本。研究线和先进工程的公共资源使用也按工时、机位和采购记录分摊。苏雨桐的研究计算节点不能免费记在搜索生产设备下,航天预研人员也不能借“帮公司搬服务器”把工资藏进行政费。 决议以七票赞成、两票保留通过。 许姐没有把决议只锁在新财务室里。她做了一页人人看得懂的说明,贴在食堂门口:公司不会因预算增加拖欠工资和夜班补贴;支付客户的每一分钱仍由银行管理;先进工程只花公司已确认可用的自有资金;停止线触发时,谁都可以查询执行情况。 下午,有员工在说明下面写:“那今年还发年终奖吗?”许姐没有嫌问题俗,算出三种经营情形,说明奖金取决于已到账现金而非报表利润。另一人问先进工程是不是老板的个人爱好,她也把场地、审查、成果归属和叫停权限逐项写明。 马飞站在公告前看了很久。他曾经习惯在极短时间里决定巨额投入,如今却意识到,所谓长期主义不能只要求别人相信创始人的远见。食堂里关心房租、奖金和下个月工资的人,同样是长期计划的一部分。 马飞签字后没有兴奋到睡不着。他和苏雨桐乘末班公交回家,车上有人抱着西瓜,有人拎着刚买的电风扇。两人下车后在巷口买了一碗凉粉,分着吃完才上楼。 第二天,灰色账册换成了一本更厚的硬皮本,封面仍然没有火箭图案,只写“先进工程预研,第二阶段”。许姐在第一页夹入董事会决议和停止线,后面才是预算。 搜索与支付第一次证明,它们不只是故事里通向未来的台阶,也能付工资、付电费、补偿一位多跑银行的裁缝师傅,让研究人员坐车回家。 而先进工程得到的,也不是一张可以任意取钱的支票。 它得到的是一笔写明来源、边界和停止条件的钱。每花掉一元,都要承认那一元原本也可以用在服务器、客服、房租和人的生活上。 星辰的两条业务终于有了各自的利润表。 比利润更重要的是,它们开始学会不向未来借用一笔尚未到账的诚实。 第76章 张建国的选择 张建国第一次看见“首席顾问”四个字,就把聘书退了回来。 信封里还有一份先进工程第二阶段说明、董事会预算边界和马飞亲笔写的邀请。马飞没有请他带型号、带图纸或带一支研究所队伍,只请他每月参加两次方法审查,帮助年轻团队把试验问题写清楚。 “首席”仍让张建国不舒服。 他在研究所干了三十年,知道一个头衔在外面会长出多少未经许可的含义。媒体会把顾问写成总师,把方法审查写成技术转让,再把星辰尚未搭起的水路试验台写成某种秘密发动机。到那时,他说自己只看了几张公开方案,未必有人愿意听。 张建国用蓝黑墨水在聘书上改了三处:“首席”删掉,“总体技术指导”改成“公开方法与试验流程顾问”,“代表星辰开展对外技术交流”整句划除。合同期限从三年改成六个月,每次工作内容单独登记。 修改后的文件在他书桌上放了两个星期。 张师母问过两次,他都说还没想好。她是中学物理老师,刚办完退休手续,原本计划秋天去女儿家住一个月。张建国嘴上说终于能清静,晚上却总把研究所的材料带回家,吃完饭在台灯下看。茶凉了,他也不知道添水。 “你不是没想好。”张师母把洗好的苹果放在桌边,“你是怕别人说你给学生的私人公司站台。” “这不是怕不怕。” “那是什么?” “边界。” “边界写清楚以后呢?” 张建国没回答。他拿起苹果咬了一口,发现张师母已经切掉碰伤的地方。窗外院里有人修自行车,扳手碰在地上,一声一声响。 研究所内部对民营公司参与航天相关预研仍很谨慎。张建国没有私下答应马飞,而是把邀请、合同和星辰的公开说明一并交给组织与保密部门。他主动列出回避清单:不讨论在研型号,不携带内部图纸、数据、样件与供应商信息;不使用研究所工时和设备;遇到与本职项目可能交叉的问题立即停止;对外不得使用研究所名义背书。 负责审查的人问:“既然限制这么多,你去能做什么?” “看他们会不会在没有答案的时候编答案。” “这也值得顾问费?” “比给错答案值钱。” 审查没有立刻通过。一个月里,文件在几个部门之间往返。有人建议他退休后再说,有人认为只要内容公开就可作为业余技术交流,也有人担心星辰借他的身份宣传。张建国每周照常上班,没有催马飞找关系,也没有让星辰先以“非正式交流”开始。 马飞等得焦躁。他在未来记忆里知道时间窗口正在收紧,知道二〇〇二年前后世界另一端会出现怎样的商业航天行动。他几次拿起电话,想告诉张建国再拖半年会失去什么,最终都放下。 过去的知识不能替今天的流程,紧迫也不能替老师作选择。 批准下来时已是九月。文件只同意六个月业余咨询试点,限定公开方法、试验安全和评审流程,不涉及具体型号设计。所有会议留纪要,星辰按实际工时支付顾问费,张建国需向原单位申报所得。任何一方都可立即终止。 张建国把批件复印件装进牛皮纸袋,周六第一次来到星辰。 前台准备了一块临时胸牌,写着“首席技术顾问 张建国”。他站在门口不肯戴。小郭赶紧重新打印,改成“外部方法顾问”,张建国才把别针扣在外套口袋上。 马飞下楼接他,目光先落在老师手里的旧帆布包上。那是张建国过去带图纸的包,边角磨得发白。 “里面没有你想的东西。”张建国说。 他当众打开包。里面只有批准文件、星辰寄去的试验台概念方案、两本公开出版的测量手册、一只装午饭的铝饭盒,还有一副老花镜。没有研究所笔记,没有型号图纸,也没有任何样件。 马飞说:“我没想让您带。” “你眼睛先看包,不是先看我。” 马飞无法反驳。 第一次评审安排在先进工程资料室。桌上摆着非燃烧试验台草图:水箱、气源、阀门、压力传感器、流量测量和数据采集。年轻成员讲了二十分钟,试图证明装置以后能逐步扩展到推进系统验证。 张建国只问:“这一次要测什么?” “阀门响应、管路瞬态和采集同步。” “三个里哪个是主问题?” “都重要。” “都重要就是没排优先级。阀门响应要什么精度?管路里用什么介质?若采集钟差十毫秒,哪个结论还成立?” 方案汇报者翻了半天,没有找到明确数值。 张建国合上手册:“先回去写测量目标。设备不是答案,试验台更不是缩小的火箭。你们若连为什么拧开一个阀门都说不清,拧得再响也只是花钱听声。” 马飞久违地感到像回到第三研究室。区别是这次没有单位级别保护他,顾问也不是来替创始人撑场面。 中午,公司给张建国订了盒饭。他没吃,把铝饭盒打开,里面是米饭、炒芹菜和两块酱牛肉。张师母特意多装了一份,让他分给马飞。 两人坐在资料室窗边吃。张建国问苏雨桐怎么没来,马飞说她在大学开评估会,智能系统研究由她独立负责。 “你们还住那个窗户漏风的房子?” “续租了,房东刚修。” “钱都拿去做试验了?” “不是。只是还没决定在哪里买房。” 张建国夹了一筷子芹菜:“做公司不等于全家都要住在你的路线图里。” 这话不像技术评审,马飞却听得更慢。 饭后,张建国提出去看事故问题册。他没有直接翻,先查阅授权登记。问题册里关于二〇二六事故的部分全部被写成没有未来型号信息的假设:轴承状态与热环境是否相互放大,分离判据是否依赖不同时间源,热防护缺陷如何跨阶段累积。每项都有“已知、推测、缺证、停止条件”。 张建国看了一个下午,在“十七毫秒时序差可能改变判据”旁写下一行:先证明现有采集系统确有可重复的时差,再讨论它是否重要。 他没有夸马飞终于回到航天,只在顾问工作单上记了四小时,减去午饭半小时。许姐按合同给他结算,他又要求补一张税务和原单位申报所需的凭证。 离开时,陈维明请他在公司门牌旁拍张照片,承诺不对外发布,只留档。张建国拒绝站在“北京星辰信息技术有限公司”正中间,最后在资料室门口和所有参与评审的人合影。照片里没有火箭模型,桌上是一张被红笔改得几乎看不清的测量目标表。 回家路上,他去菜市场买了条鱼。摊主认得他,问今天怎么有空。张建国说做了半天顾问,摊主立刻问是不是给大公司当领导了。 “不是领导。”他说,“去挑毛病。” “挑毛病还能给钱?” “挑得有证据才给。” 张师母见他拎鱼回来,知道他已经作了决定。她没问星辰将来能不能造火箭,只拿出日历,把每月两个周六圈起来,又把去女儿家的车票日期写在旁边。 “这两个周六以外,你别答应。”她说,“十月二十号我们要走。” 张建国想说项目节点未必等人,话到嘴边又咽下。他给马飞打电话,说明十月有一次评审需要顺延。 “家里有安排。”他说。 马飞停了停:“按您的时间来。方案先书面送审。” 张建国挂电话后,把马飞当年离所时借走的那本笔记登记进个人物品清单。笔记仍可继续借用,但从这一天起,每次引用都要注明仅限通用试验方法,不能被写成研究所技术来源。 第一笔顾问费到账后,他没有拿去买新的技术书。张师母把钱分成三份:一份补去女儿家的车费,一份给家里换掉漏水的厨房龙头,剩下的存进两人共同的医药备用金。张建国起初觉得顾问费应该继续用于专业学习,张师母反问:“你用周六去工作,难道周六不是我们家的?” 他想了半天,在自己的工时记录旁新增一栏“家庭占用时间”,没有交给星辰,只留在日历上。此后临时评审如果挤进已经圈出的日子,他先与家里商量,而不是默认工作拥有优先权。 去女儿家那周,他真的没有远程参加评审。马飞把问题汇成书面材料寄去,张建国在火车上只看公开手册,不拆星辰的文件。等他按约定回来,年轻团队已自行把三处测量目标改清楚。张建国发现自己不在场时项目也能前进,反而在顾问记录里写下“组织未依赖个人现场判断”。 他选择参与,不是把半生积累从一个机构搬进另一家公司,也不是替学生的梦想盖章。 他选择的是一种更麻烦的关系:保留原单位的边界,保留自己的晚年生活,也保留在证据不足时对马飞说“不”的权力。 而马飞真正得到的第一份顾问成果,不是一组参数。 是一张被退回重写的测量目标表。 第77章 从纸面到试验台 星辰租下的第一处试验场地,前一家是做暖气配件的。 院子在城南一片老工业区里,门口的水泥路被货车压出两条深槽。三间厂房一到下雨就从北墙渗水,角落堆着没运走的生锈法兰。房东指着屋顶说去年刚修,林海抬头看见两块颜色不同的油毡,没有接话。 陈维明嫌地方不像航天:“至少把墙刷白,门口做个牌子。” 马飞蹲在排水沟旁,看水往哪边流:“先测地面承载、供电和排水。牌子不参加试验。” 他们没有当场签合同。 场地评估用了三周。消防通道是否被邻厂占用,电力增容由谁申请,水路排放能否进入工业管网,设备基础可不可以打孔,夜间噪声会不会影响附近住户,每一项都要找真实的人确认。房东最初拍胸口说“都没问题”,等赵秋寒把承诺写进租约,他又说许多事得回去问弟弟。 先进工程组新聘的机械工程师何敬每天骑摩托车跑现场。他三十五岁,原先在一家泵阀厂做非标设备,厂子改制后出来找工作。面试时,他没有讲自己多懂火箭,只拿出一本维修记录,里面贴着十几年间换过的密封圈和阀杆照片。 张建国问他:“给你一张没有公差的草图,怎么办?” “退回去。” “老板不让退?” “让老板签字说他接受随便做成什么样。” 马飞在旁边咳了一声。何敬后来才知道问话的人是老板的老师。 何敬入职的第一个要求不是电脑,而是一只带锁的工具柜。他说工具若没有固定位置,试验前半小时会永远用来找扳手。第二个要求是按规定买劳保鞋,不接受员工先垫钱。许姐把这两项都写进场地启动成本。 租约最终签了一年,带三个月退出条款。星辰获准在限定区域搭建水路与低压气动装置,但不得储存或使用推进剂、可燃高压气体与未经审查的危险化学品。任何高能试验必须另寻有资质合作单位,不能在“先试一次”的名义下突破。 门口没有挂星辰航天。小牌子只写“先进工程试验场”,下面列出值班电话和禁止事项。 第一天清场,众人在角落发现一只旧搪瓷盆,盆底写着“老刘”。房东说可以扔,何敬把它洗干净,用来装拆下的废垫片。午饭时,大家坐在木箱上吃包子,何敬把家里带来的辣椒酱放在盆旁。马飞看着满地灰尘,想起未来总装厂洁净明亮的地面,也想起那片火焰最后怎样吞掉整枚火箭。 他没有催人先把设备搬进来。 场地先做最普通的事:补漏、划消防线、检查接地、安装照明、确认急停位置。林海给每一路电源编号,何敬在地面画出人员区、设备区和排水路径。苏雨桐来做独立审查,指出观察位正对一扇向内开的门,紧急撤离时会互相堵住。 “这是水试验,又不会爆炸。”有人说。 “不爆炸也会滑倒、触电、被软管打伤。”她回答。 门改成向外开,花了两百多元和半天时间。陈维明看发票时说这可能是公司最不具未来感的一笔航天支出。 “所以记得最清楚。”许姐说。 试验台设计也从宏大草图缩成一个明确问题:在不同控制指令下,验证一只工业阀门的实际开启时刻、上游压力变化和采集系统时间能否对齐。介质先用清水,气源只用于在允许压力内驱动阀门。没有燃烧,没有推力,更没有发动机。 张建国把测量目标表退回两次。第一次因为“阀门快速开启”没有定义快速到什么程度;第二次因为压力传感器、控制器和采集计算机各用自己的时钟,却把数据画在同一条横轴上。 林海提出加入统一脉冲标记。何敬担心改装控制器影响保修,建议先用独立触发信号同时送入各采集通道。两人在图纸前争了一下午,最后决定两种办法都保留接口,通过小样验证后再选。 设备采购没有一家包办。水箱来自食品设备厂的标准产品,管路与法兰由何敬熟悉的公开供应商加工,阀门从工业目录中选,传感器则比较三家量程、精度、温漂和校准服务。马飞未来记忆里有更合适的型号,却没有在二〇〇一年真实存在的供货记录。他只能和所有人一样看样本、问交期、做验收。 第一批法兰到货时,何敬用卡尺量出两个孔距超差。供应商业务员说水压不高,拿锉修一下就能装,还承诺下批便宜。 “装得上不等于符合图。”何敬把检验记录递过去。 对方说小公司做试验别太讲究。 “就是小公司,才没有钱让一处随便变成十处随便。” 货被退回重做。试验台因此晚了一周,陈维明原定邀请合作方参观的日期也取消。他很恼火,却没有要求用那两个法兰先搭出样子拍照。 场地离市区远,公交末班车早。公司安排的旧面包车每天只往返一次,错过就得走两公里到大路。何敬常比别人早到,因为他要先送女儿去小学,再骑摩托车过来。女儿在语文作业里写“爸爸造火箭”,老师让她画一幅图,她画了一个水龙头连着电脑。 何敬把画贴在工具柜里,告诉女儿暂时只造试验台。 “试验台能飞吗?” “不能。” “那为什么造?” “先让不能飞的东西把话说清楚。” 设备安装到一半,北京入冬。厂房暖气管只有靠门一段热,最里面冷得扳手粘手。许姐不批准购买大功率电炉,因为旧线路负荷不足,最后租了两台经过检查的燃油暖风机,只在有人值守和通风条件下使用。何敬又从家里带来一只大保温桶,中午所有人轮流泡方便面。 隔壁是一家做木门的小厂。星辰试开排水泵那天,振动沿共用墙传过去,把对方立在墙边的三块门板震倒。木门厂老板冲进院子,认定他们在偷偷试火箭发动机,要找街道投诉。 何敬没有拿“先进工程”压人。他关泵、拍照、检查门板损伤,又请对方一起站到设备旁找振动来源。原来水泵底座一角没有贴实,软连接也装得过紧。星辰承担门板修复费,重做减振垫,并约定有明显噪声的调试只在白天进行,提前一天通知邻厂。 木门厂老板第二次来时带着分贝仪,是儿子从学校实验室借的。两边在墙两侧各测一次,数值降了大半。他仍不懂阀门时间为什么值得单租厂房,却把自家做废的一块实木门板送给何敬,当作画图垫板。 “你们以后真点火,先告诉我搬货。”他说。 “这里永远不点火。”何敬说。 这句话后来被加进租赁场地入口的禁令牌。它不只约束星辰,也让周围每天在这里生活和工作的人知道,公司对院子作过什么承诺。 张建国按顾问日程来审查时,先看见工具柜上的水龙头火箭。他没有笑,问何敬女儿多大,又问摩托车冬天是否安全。何敬说再下雪就坐公司车,可能要晚到半小时。 “把班次按现实改,别把准点写成靠冒险实现。”张建国说。 试验台第一次通水没有启动阀门,只检查泄漏。清水缓慢充入,连接处一圈圈擦干。十分钟后,最下游法兰边缘出现一粒水珠。有人说可能是刚才残留,何敬用纸巾擦掉,等了五分钟,第二粒又冒出来。 他们排空、泄压、挂牌,再拆开检查。密封垫没有损坏,是法兰表面一道极浅的加工纹让局部压紧不足。若为了赶节点继续加压,泄漏也许不会立刻扩大;若把它记成“无泄漏”,后面的数据就从第一天开始撒谎。 马飞在试验记录上签署未通过。计划再延三天。 那晚回城,面包车里很安静。陈维明算着延期成本,何敬抱着拆下的垫片,林海在膝上修改检查表。司机打开广播,正播一则国外企业家谈私人太空计划的新闻。主持人说,新时代的商业航天正在加速到来。 马飞看向窗外。远处城市灯光越升越高,试验场门口那条泥路却还在车轮下颠簸。 他知道“加速”是真的,也知道他们不能因此把一滴水写成不存在。 三天后,新法兰通过检验。系统重新通水,稳压半小时,所有连接处保持干燥。何敬没有欢呼,只在检查单上逐项画勾,最后把“允许进入阀门与采集联调”写进状态栏。 正式交付前,他们做了一次不通水的撤离演练。林海按下急停,何敬确认气源隔离,其他人沿标线离开。陈维明跑到门外才发现把来访登记册忘在屋里,转身想取,被安全员拦下。人员清点比预定多用了一分四十秒,因为一名来送水的工人没有登记进入设备区。 那桶水最终没送进厂房。门卫登记增加了临时来访的进出状态,送货区也被移到观察线外。马飞在演练复盘里写:最普通的日常人员,往往比设备图上画出的部件更容易被忽略。 场地从纸面变成了试验台。 它没有喷出火焰,没有发出轰鸣,只有一箱清水、一只工业阀门、几根按编号固定的线和一地必须及时擦干的水迹。 但这是星辰第一次拥有一套能被检查、能被叫停、也能在失败后按记录重新开始的实体工程系统。 在火箭真正出现以前,他们先学会不把一座厂房当成梦想的布景。 第78章 一块烧蚀的材料 第一块样片烧完以后,像一片结了壳的黑面包。 它原本是五十毫米见方的灰褐色复合材料,表面平整,背面贴着编号。经过合作实验室规定条件下的热流试验,迎火面隆起一层脆黑炭化层,边缘有一道浅裂纹。技术员等它冷却,戴着手套放进金属盘,空气里残留着树脂受热后的焦味。 马飞盯着它,心里先出现了一个结论:材料不对。 未来那枚失事火箭使用过更成熟的热防护体系。他记得材料类别、层间结构和一部分试验现象,也记得事故调查中那条沿缺陷扩展的热路径。眼前样片的炭化形态与记忆不同,他几乎要让人停掉后续测试,换另一条路线。 张建国站在观察窗外问:“你说不对,和什么比?” “预期形态。” “预期写在哪里?” 马飞翻开试验计划。里面写了质量损失、背温上限、尺寸变化和表面记录,没有写炭化层必须长成什么样。 “没写,就不是这次的拒收依据。”张建国说,“先把该测的测完。” 高温试验不在星辰租用的工业场地进行。赵秋寒和安全顾问筛选了三家有资质的机构,最终与一家材料试验中心签订小样测试协议。星辰只提供公开采购的材料样片、明确热流与测量需求,试验中心负责设备、操作、安全和废物处置。所有人进入观察区前都接受对方培训,不能因马飞是出资方就跨过警戒线。 材料工程师邱蕾负责样片。她三十二岁,过去做工业炉保温材料,来到星辰时最常被问的问题是“你懂不懂航天材料”。她总回答自己先懂称重、取样和批次,再讨论航天。 第一批六块样片由两家供应商提供。名义配方相近,厚度和密度都在采购范围内。邱蕾给每块样片拍照、称重、测尺寸,再装入独立纸盒。何敬想用记号笔直接写编号,她摇头,说油墨受热会消失,也可能影响表面。最终编号同时刻在冷端金属夹具、纸质流转单和照片板上。 试验当天,众人凌晨六点从公司出发。面包车暖风坏了一档,玻璃内侧不断起雾。邱蕾抱着样片箱,不肯放进行李区,怕路上颠坏边角。她母亲前一晚包了白菜猪肉饺子,给整车人装了两饭盒。张建国没来,按顾问日程在家;他只在前一天审过计划,留下五条问题。 第一块结果尚可。第二块背面温升突然高出近一倍,测试到停止条件后自动中止。第三块来自同一板材,表现又接近第一块。 试验中心技术员怀疑热流波动,调出设备校准记录,主参数在允许范围内。供应商则说星辰切样时可能损伤内部。邱蕾没有站在任何一边,先封存剩余样片,要求把第二块的安装、传感器贴附、照片与原始采集全部关联起来。 陈维明原本等着一组能写进先进工程季度报告的整齐结果。看见三块样片三种表现,他问能不能去掉第二块明显异常的数据。 “异常原因找到了才谈去不去。”邱蕾说。 “它和另外两块不一致。” “不一致就是我们来试验的原因。” 第二块拆开后,背面传感器粘接没有脱落,夹具压紧也正常。切开炭化层,裂纹下方有一处肉眼很难看见的疏松区。它可能来自原板制造,也可能来自切割与保存。仅凭烧后样片无法倒推出唯一原因。 马飞再次提议换材料。他说得比第一次克制,只称这条体系的离散性可能不适合未来需求。 邱蕾问:“未来需求是多少?” 问题让他停住。现阶段没有整箭构型,没有返回轨迹,也没有确定热环境。所谓适合未来,是他脑中来自二〇二六年的答案,而不是二〇〇一年的任务输入。 “我们先研究可制造性和测量重复性。”他改口。 “那就别先淘汰材料,先查这六块是不是同一种东西。” 供应商文件很快露出问题。第一家给出的批次证书只有板材出厂平均密度,没有标出样片在整板中的位置;第二家把两次不同固化日期的余料合并写成一个销售批号。星辰下单量小,对方觉得做航天概念验证“差不多就行”,没有按正式工程项目管理。 邱蕾去了两家工厂。第一家在外地,她坐夜班火车,硬座旁有人整夜磕瓜子。到厂后,她没有先进车间,而是先在门卫室等采购联系人。中午食堂只剩馒头和土豆,她边吃边看库房出入卡,发现星辰收到的板材曾在靠暖气的货架上放了二十多天。 树脂基材料的含水和后固化状态可能因此变化。不能仅凭这条记录认定原因,却足以说明样片没有共同的保存历史。 第二家愿意重做样片,但要求星辰承担小批量工艺费。许姐问这算供应商返工还是研发新增,邱蕾说双方都有责任:供应商批次标识不足,星辰采购条件也只写了最终尺寸,没有写板材方向、切样位置、保存与随批见证件。 他们没有把所有损失推给供应商。新订单增加了制造批号、原板位置图、纤维或层向标记、保存条件和见证样。星辰承担更严格要求产生的合理成本,供应商免费重做文件不符部分。 第一块烧蚀样片被带回试验场。何敬在观察区做了一个小玻璃盒,把它和未烧样片并排放置。陈维明建议下面写“星辰首块热防护材料试验件”,邱蕾改成“批次a样片一,结果仅对本次条件有效”。 “这样谁还来看?”陈维明问。 “想看证据的人。” 新一批样片用了一个月。等待期间,马飞几次翻阅事故问题册,想从未来记忆里找一条更快的捷径。他记得某些材料最终会赢,却也记得未来事故正是从“已经成熟”的信念里长出盲区。材料名称可以提前知道,真实供应链、工艺波动和测量误差却不会随他一起重生。 苏雨桐来场地时,带着研究组第一份时间外推盲测报告。她看见玻璃盒里的黑样片,说它和失败模型很像。 “都不好看。”马飞说。 “也都比没留下好看。” 两人中午坐在厂房门口吃饭。何敬女儿画的水龙头火箭贴在工具柜上,木门厂机器隔墙传来规律的锯切声。苏雨桐问马飞是不是失望? “有一点。” “你更信哪一个?” “我希望自己更信数据。” “希望不是证据。” 这句话原本是张建国教他的,如今从苏雨桐口中回来。马飞把它写在新试验计划首页。 第二轮测试前,所有样片在相同环境中保存,按原板位置编号。试验中心重新校准热流测量,安装过程由双方各一人核对。六块样片仍有差异,但范围明显收窄。那道异常高背温没有重复出现,炭化层形态也更一致。 结果没有证明材料已经适合火箭。它只证明上一轮离散的一部分来自批次与过程控制,而非一个可以简单归咎于“材料不行”的结论。剩余差异需要更多样本、不同热流条件和微观分析。 测试结束已过晚饭时间。试验中心值班员把废样和可返还样片分开登记,邱蕾逐件核对,直到最后一只纸盒封好。面包车司机催了两次,说再晚回城要赶上道路施工。她仍等技术员把原始记录的复制件盖章,不接受第二天“有空再寄”。 回程途中,邱蕾在服务站给家里打电话。儿子已经睡了,母亲说给她留了小米粥。她到家时粥表面结了一层薄皮,桌上压着孩子的数学作业,最后一道应用题空着。邱蕾没有因一次结果收敛就把孩子叫醒庆祝,只把样片箱放到不会被碰倒的柜顶,第二天早晨边热馒头边讲那道题。 她后来在组会上说,材料的“历史”不只在工厂批次卡上,也在运输、等待和保管这些没人愿意拍照的时间里。若一只样片必须由某个人整夜抱着才不出错,流程仍没有真正建立。于是星辰为后续运输订了带缓冲和封签的周转箱,交接时记录温湿度与外观,邱蕾不再用自己的手臂充当唯一的安全措施。 邱蕾把两轮数据全部写进报告,第二块异常样片没有删除。报告结论列了三条:当前材料仅进入候选;供应链与取样方法是性能的一部分;在飞行热环境和结构需求确定前,不得以这组小样数据作型号选材。 季度审查时,董事问花了这么多钱到底得到什么。 邱蕾把那块黑色样片放到桌上:“得到一块不能冒充答案的材料,还有一套下次不会把批次混在一起的办法。” 张建国在顾问意见里只写了八个字:结论有限,记录可继续用。 马飞把样片重新放回玻璃盒。黑色表面那道裂纹仍在,既没有被未来记忆解释,也没有被漂亮报告抹掉。 第79章 十七毫秒 阀门第一次动作时,所有曲线都很漂亮。 控制指令在零点发出,阀门位置开始变化,上游压力下降,下游流量上升。四条线在屏幕上首尾相接,像一本教科书里提前排好的图。陈维明站在观察窗后问:“这算成功了吗?” 林海没有回答。他把同一次试验的另一套记录调出来。 独立采集器显示,阀门位置变化比主系统晚了十七毫秒。 十七毫秒短得来不及眨一次眼。水箱没有破,管路没有漏,流量最终也达到设定值。若只判断阀门有没有开,两个系统都写着“正常”。可先进工程事故问题册里,跨系统时间正是马飞不肯放过的缺口。 何敬先怀疑位置传感器。他用手动夹具缓慢推动阀杆,主系统与独立采集器在静态位置上完全一致。邱蕾怀疑水温影响响应,测量结果也在允许范围。控制软件工程师则说十七毫秒可能只是屏幕绘图误差,不影响真实数据。 “可能”被写进白板,后面留了一格“证据”。 第一次动态通水随即判为只完成设备安全检查,不接受时序结论。何敬排空管路,林海复制原始文件,所有配置、软件版本和接线照片当日封存。陈维明原本请了摄影师,这次没有拍到水流冲过透明观察段的画面,只拍到众人围着两个不同时间戳发愁。 当晚,林海把两套设备的时间基准画在纸上。控制计算机用自己的系统时钟记录指令,主采集卡按驱动程序返回数据块的时刻盖时间戳,独立采集器则从外部计数器起算。三者都写“零点”,却没有一个零点由共同事件定义。 “像三个人约在八点见面,每个人的表都没对过。”小郭来送文件时说。 “而且有人在到站以后才写自己几点出发。”林海说。 主采集程序的问题就藏在这里。传感器实际按固定间隔采样,但软件收到一批数据后,才把当前系统时间倒推到整批样本上。数据块大小、总线等待和操作系统调度共同造成延迟。十七毫秒不是阀门本身慢了,而是两套记录对“发生时刻”的定义不同。 找到解释并不等于问题解决。 张建国来评审时,听完汇报只问:“怎么证明这十七毫秒来自记录,不是你们挑了一个听起来合理的软件故事?” 林海提出共同触发标记:用一只独立脉冲发生器同时向控制系统、主采集器和独立采集器送入边沿,各系统都记录这个物理信号,再按它对齐时间轴。何敬另加一个与阀杆运动无关的光电标记,用来确认机械动作可被独立观察。 张建国没有批准直接重做通水。他让团队先在桌面上进行无水联调,断开执行机构,只测试指令、触发和采集。若连一根电信号都对不齐,把水加进去只会让图更热闹。 桌面测试做了二十次。最初的偏差在十四到二十一毫秒之间变化,平均接近十七。加入共同脉冲后,三套系统能看见同一事件,但主采集的时间仍随数据块长度改变。把时间戳从“接收整块数据的时刻”改为“硬件计数对应的采样序号”,偏差缩小到两个采样间隔以内。 软件工程师想把旧程序直接覆盖。林海不同意,要求保留旧版、变更理由、编译环境和回退方法。第一次支付账务升级的凌晨回滚已经教过他们:一个更正确的新版本,也不能靠抹掉旧状态证明自己正确。 修改后的程序在试验场跑了一夜。何敬负责接线,林海盯数据,马飞按安全表复核每次状态。午夜以后,暖风机停了一台,众人的手越来越冷。司机带来四碗羊杂汤,汤在路上洒出一点,整个观察室都是胡椒味。 何敬女儿第二天有家长会,他原本打算测试结束直接骑摩托赶回去。凌晨一点,路面开始结冰。马飞让他按轮班表离场,自己接下后续记录。 “最后五次了。”何敬说。 “五次不会认你当父亲。” 何敬笑了一下,换掉工作鞋,坐公司车回家。他上午出现在教室时,裤脚还沾着试验场泥点。女儿的画贴在后墙,水龙头火箭旁多了三只钟,老师问为什么。 “爸爸说大家的表要一样。”她答。 试验场这边,最后五次无水联调没有因何敬离开而中断。交接表写明接线状态、剩余步骤和异常。马飞照表完成,没有临时改变参数。 通水复验安排在一周后。参与者先各自写下预期:共同触发对齐后,阀门位置、压力和流量之间仍会有真实物理延迟;不同系统对同一电事件的记录差应在规定采样精度内;若重新上电后偏差回到十几毫秒,测试停止。 第一次通过。第二次通过。第三次主采集器突然少了一段数据。 没有人用前两次成功覆盖第三次。排查发现一只接插件锁紧不到位,振动时产生瞬断。何敬更换接插件并把扭矩、复核人和旧件编号写进记录。所有计数从头开始,前两次不再算入完整验证批次。 陈维明听说“成功两次以后归零”,赶到试验场问是不是太浪费。 “我们要证明的是一套状态下能重复,不是从不同状态里攒够成功次数。”林海说。 “那之前的数据呢?” “保留,标明为什么不进入最终统计。” 接下来的三十次测试跨了六个工作日。团队改变阀门指令间隔,执行整机断电重启,调节水温到计划范围两端,又在不更换传感器的情况下重新插拔采集连接。每次共同触发都先于阀门指令记录,任何系统缺失标记就停止该轮。 真实阀门响应并不是固定值。密封摩擦、水压和温度会使它有小幅变化。过去被十七毫秒记录偏差遮住后,这些物理差异看起来像噪声;时间轴对齐后,团队终于能区分哪一部分来自阀门,哪一部分来自传感器和采集。 第二十八次结束时,何敬想提前庆祝。邱蕾从保温桶里倒出最后一点热水,说还有两次。第三十次打印完成,林海先核对文件数量和校验值,再在白板上写“重复验证完成”。 完成不等于封口。共同脉冲发生器随后被送到计量机构校准,星辰不能因为三套设备都看见它,就假定它自身绝对准确。送检窗口排着温度计、压力表和商店用的电子秤,林海抱着仪器箱坐在塑料椅上等了两个小时。前面一位饭馆老板不停问秤少十克会不会被罚,后面一名工人提着装满油污压力表的木箱。所谓航天时间基准,在窗口叫号单上只是“脉冲设备一件”。 校准结果显示,发生器边沿重复性满足本轮要求,长时间稳定性却不足以支撑更长周期试验。团队没有把这当作否定前三十次的理由,而是把结论范围限定在每次试验前后均有标记的短窗口,并把下一阶段更稳定的时基与校准周期列入采购评估。 苏雨桐作为独立审查人又从三十次中随机抽取五次,只给文件编号,不给试验顺序。另一名未参与开发的工程师按归档说明重新生成曲线,得到相同偏差范围。复核中发现一张照片的时钟显示与文件名相差一天,原因是相机日期未在换电池后重设。照片不承担测量计时,却暴露出辅助证据也会制造混乱。 林海给相机贴上检查标签,规定拍摄前用当天日期板入镜。陈维明问这是不是管得太细,苏雨桐把那张错一天的照片放到他面前:“今天觉得不重要,三年后就会有人拿它证明错误的事情发生在正确的日子。” 没有香槟。木门厂老板送来一袋烤红薯,祝贺他们终于把“三只表对上”。众人坐在厂房门口剥红薯,热气沾在眉毛上。何敬把最大的一只留给女儿,邱蕾把烧焦的皮放进旧搪瓷盆。 张建国在最终评审中仍然挑出两个问题:共同脉冲发生器本身也要校准;现有结论只适用于这套设备和本轮条件,不能直接推到未来发动机控制系统。团队把两条都写进适用边界。 马飞翻开事故问题册。在二〇二六年的最后三点七秒里,不同系统对时间和状态的误认曾把局部正常拼成整体安全。眼前十七毫秒不是那场事故的复现,也没有证明任何未来设计已经安全。它只是第一次用这个时代的设备与记录,证明“时间一致”不能靠文件里的同一个单位名称获得。 他在问题册上写下:已证——现有冷流试验台存在由采集定义造成的可重复时序偏差,经共同触发、硬件计数和三十次完整测试完成修正验证。未证——对任何飞行系统的影响。 那行字很长,没有英雄气概。 十七毫秒也没有让星辰得到一台发动机。 它给了团队一种更基础的能力:当三套系统都说自己准时时,不先相信声音最大的那一套,而是制造一个它们必须共同看见的事件,再把每一次不一致留在记录里。 厂房熄灯前,林海把旧程序光盘、新程序光盘和三十次原始数据放进不同档案盒。何敬锁好工具柜,检查水箱已排空。门外禁令牌仍写着这里永远不点火。 第80章 星辰航天筹备组 二〇〇二年二月,先进工程第二阶段审查用了整整两天。 第一天看账。场地租金、法兰返工、材料试验、顾问工时和面包车通勤逐笔对应凭证。搜索与支付仍保留六个月基本运营现金,客户资金没有进入任何预研科目。第二天看失败:漏水法兰、混乱批次、异常背温、松动接插件和那十七毫秒,全都摆在会议桌上。 没有一项像火箭。 董事会却第一次认真讨论,是否该在公司组织结构里写下“航天”两个字。 陈维明准备了三个名称:星辰航天公司、星辰运载技术中心、星辰太空事业部。每一个都适合印在名片上。马飞看了很久,把它们放到一边,提出“星辰航天技术筹备组”。 “还筹备?”陈维明问,“场地有了,试验台也有了。” “有一套非燃烧试验台和材料小样,不等于有发动机、整箭和发射能力。” “名字可以先走一步。” “名字先走一步,责任就会落后一步。” 张建国以外部顾问身份列席。他没有替马飞说话,只要求所有名称旁边列出外界可能产生的合理理解。“公司”可能让供应商与应聘者认为主体已经具备独立业务和完整资质;“运载技术中心”可能暗示已有运载器项目;“事业部”则会让员工误以为预算可长期扩张。 “筹备组”也不安全。赵秋寒补充,必须写清筹备什么、不能做什么,以及何时解散。 最终提案只有一页:筹备组的任务是建立合规资源、专职基础工程团队、公开供应链、可复核试验方法和未来独立主体所需治理方案;现阶段不承接发射服务,不研制完整型号,不在自有场地进行推进剂或高能试验,不对外募集以“已有火箭”为前提的资金。十二个月后若未通过阶段审查,组织自动回到先进工程预研组。 何敬看见“自动回到”几个字,问自己是不是也要自动失业。 许姐解释,组织停止不等于立即解雇,劳动安排和项目决议分开处理。若航天筹备缩减,公司应优先安排已胜任的工程、运维或供应链岗位;确实无法安排,再按合同补偿,不能把技术停止线变成员工个人承担的悬崖。 这条随后也写进决议。 筹备组初始只有七名专职人员。马飞负责目标与资源,何敬负责试验设施和机械系统,邱蕾负责材料与供应链,另有控制、测量、质量和项目管理各一人。林海仍属于公司运维团队,只按批准工时提供时钟、数据归档与恢复支持;苏雨桐担任独立证据审查,不转入航天线;张建国继续按六个月合同作为公开方法顾问。 没人被要求因为创始人梦想而改岗。 小郭报名想去做项目管理。他说自己处理支付申诉时学会了状态、授权和交接,航天也需要。马飞没有立即同意,让他先做一个月兼职观察,并与支付负责人确认客服扩编完成后才可转岗。 “我以为你会说终于等到这一天。”小郭有些失望。 “等到这一天,不等于你欠它一份工作。”马飞说。 小郭回家问母亲。母亲听说试验场在城南,第一件事是算通勤:每天早出四十分钟,晚饭可能赶不上;第二件事才问火箭会不会危险。小郭把场地禁令和工作安排拿给她看,两人约定若连续两周无法在九点前回家,他就重新评估。 何敬的女儿则非常支持。她把那幅水龙头火箭重新画了一遍,在旁边加了“星辰航天筹备组”九个歪歪扭扭的字。何敬贴画时发现“筹”少了一横,没有让她重画。 挂牌日定在三月的第一个周一,没有请媒体。 所谓牌子只是一块三十厘米宽的白底黑字木牌,挂在试验场办公室门内。外面的入口仍写“先进工程试验场”和禁止高能试验。陈维明坚持至少拍一张合照,这次张建国同意了,因为照片说明写得完整:筹备组成立,现阶段进行非燃烧、材料小样与测量方法验证,不具备整箭和发射能力。 拍照前,木门厂老板来借梯子。他看见一屋人站得整齐,问是不是今天发射。何敬说今天挂牌,不发射。老板摇头,说你们这家公司庆祝事情总没声响,借走梯子时顺手放下一包瓜子。 照片拍完,众人围着工具柜嗑瓜子。壳装进老刘留下的搪瓷盆,没有落进设备区。许姐带来筹备组第一季度预算,金额远小于陈维明想象。最大几项不是发动机零件,而是场地整改、测量校准、质量体系培训和两名专职工程师招聘。 招聘启事也改了四遍。初稿写“加入中国商业航天先驱”,被赵秋寒删掉;第二稿写“共同研制可回收火箭”,被张建国退回;最终版本只写当前任务、风险边界、试验条件和薪酬。应聘者可以因火箭梦想而来,公司不能用尚不存在的火箭替代工资与职业说明。 第一个面试者带来一叠国外火箭照片,谈了半小时宏大构型,问星辰什么时候点火。何敬请他看漏水法兰复盘,对方翻了两页便说这种小事可交给工人。 第二个面试者是一名做仪器校准的女工程师。她没有火箭照片,先问现有压力传感器多久校一次,原始数据谁能修改,试验中止后谁保管状态。邱蕾听到第三个问题,在评分表上画了一个圈。 筹备组并未因挂牌而突然忙得像战争。周一仍开安全例会,周二处理材料周转箱,周三复核阀门试验数据。何敬下午五点半离开去接女儿,邱蕾每周有一天在供应商现场,林海按工时回公司照看账务和搜索系统。张建国四月合同到期前要重新申报,不能默认续任。 苏雨桐第一次以独立审查人的身份提交意见,指出筹备组把“可回收”写进五年目标,却没有定义回收什么、在什么任务条件下回收、怎样证明复用后的可靠性。马飞把这个词拆成五个待证问题:返回环境、制导与控制、结构与热防护、推进系统重复使用、地面检查与再次放行。 他没有把二〇二六年的答案写进去。 三月中旬,一条来自美国的行业消息出现在传真纸上:一位互联网领域的企业家正在召集团队,准备创办私人太空企业。消息很短,细节甚至互相矛盾。陈维明把传真带到试验场,问马飞是不是早就知道会有人来。 马飞看着纸上的英文名字,胸口有一瞬间发紧。 未来开始按记忆显影。那个将改变全球商业航天节奏的对手,终于站上时间线。七年前,他在研究所宿舍写下“二〇〇二年,星辰航天”,以为只要赶到年份就算没有落后。 如今二〇〇二年真的到了,他手里没有火箭,只有一只通过冷流验证的工业阀门、一块结着黑壳的材料、一套对齐十七毫秒的采集方法和七名专职人员。 陈维明问:“要不要把公司成立的消息也发出去?至少让外面知道我们不是现在才想到。” “筹备组成立可以按事实披露。”马飞说,“不和别人的新闻赛跑。” “窗口会关。” “所以更要把每次试验做成下一次能用的东西。” 当天晚上,马飞独自在资料室翻开张建国借给他的旧笔记。扉页那句话已经陪他七年:哪天真做航天,拿数据来换,拿梦想不行。 第二天顾问评审结束,他把十七毫秒的完整试验档案、材料批次复盘和冷流台验收记录放到张建国面前。 “这些能换什么?”马飞问。 张建国没有把旧笔记送给他,也没有拿出研究所里的任何图纸。他从自己的公开方法记录中复印了三页,一页讲测量不确定度怎样传递,一页讲试验中止后的状态保存,最后一页只有一张空白评审表。 “换下一次提问题的资格。”他说。 窗外,何敬正在入口处把新木牌的螺丝拧紧。女儿放学后跑进院子,把书包放在观察室外,在旧木板上写作业。邱蕾给材料周转箱换封签,小郭坐在门卫桌旁试做第一份航天项目交接表。 没有倒计时,没有点火,也没有一枚火箭从地面升起。 星辰航天技术筹备组的第一天,就这样与支付客服的电话、搜索机房的风扇、家长会、末班车和一张国外传真同时开始。 第81章 新闻里的对手 那张传真在公司传了三个部门,最后沾上了一圈茶渍。 标题来自一份海外行业简报:美国一名互联网企业家正在组建私人太空公司,计划降低进入轨道的成本。正文不到半页,既没有发动机参数,也没有确定发射日期。消息来源互相引用,连公司中文译名都写了两种。 陈维明却把它复印了二十份。 “人家已经公开说要造火箭。”他把复印件放到晨会桌上,“我们七年前就想到了,现在只有一块挂在门里的筹备组牌子。再不发声,等于把先机送人。” 何敬低头看纸。他更在意简报里提到的招聘规模。对方似乎在寻找推进、结构和制导人员,而星辰的新招聘启事贴出去两周,只收到十六份能认真看的简历。 邱蕾问:“这里写的目标都验证了吗?” “公开表达本身就是能力。”陈维明说。 “那我们也有。入口牌上写着这里不点火。” 有人笑了,笑声却不轻松。 马飞坐在窗边,一直没有开口。他比屋里任何人都清楚这条新闻意味着什么。那个名字会在未来二十多年里一次次进入全球头条,从连续失败、濒临断粮,到大型火箭回收、星链和载人任务。二〇二六年的他既研究过对方,也被对方逼着缩短过无数计划。 记忆让眼前半页传真变得异常沉重。 他甚至知道对方最初的一些路线会碰到什么困难。如果把这些写成一张“竞争预测”,星辰可以避开弯路,也可以在投资人面前显得洞察惊人。但那些尚未发生的失败无法公开验证,更不能被团队当成必然。 “从今天起,设竞争看板。”马飞终于说。 陈维明眼睛亮起来:“我让市场部做,全球公司、融资、火箭型号、时间表都放上去。” “只放公开来源和已发生事实。传闻单列,未知就写未知。最重要的一栏是:这件事改变了我们的哪个决定,证据是什么。” “不做倒计时?” “不做。” “连对方可能首飞的年份都不写?” “可以写对方公开宣布的年份,旁边注明是宣布,不是完成。” 看板用的是一块旧白板,原先记录支付客服排班。上面画出四列:公开事实、对方承诺、星辰已验证、尚不能比较。第一行写海外公司已开始招募团队;第二行写星辰航天技术筹备组七名专职人员;第三行想写“可回收技术领先”,被马飞擦掉,改成“已完成非燃烧阀门时序与材料小样验证”。 两边放在一起,星辰显得更小。 陈维明看了很久:“这块板让人泄气。” “新闻纸不能替他们造火箭,我们的白板也不能。”马飞说。 当天下午,招聘电话突然多起来。有人看见海外消息,认为商业航天将成为下一个互联网;也有人听说马飞“押中赛道”,想来买原始股。一位应聘者开口就问星辰将来上市能翻多少倍,听说现阶段工资与普通工程岗位相近,当场失去兴趣。 还有一位在职工程师下班后从外地打来长途电话。他没有问股份,先问星辰是否真的在普通厂房点火。小郭解释自有场地禁令,又说高能试验尚未签合作机构。对方沉默了十几秒,说:“那我愿意来看看。至少你们没把厂房炸响当成勇气。” 新闻带来的不只是人。两家投资机构约见马飞,愿意为“中美商业太空竞赛”提供资金,其中一家要求星辰半年内公开发动机点火画面,另一家希望把搜索和支付业务整体装进航天故事里,以提高估值。 许姐把条件折算成现金,看上去足够让筹备组扩到三十人。马飞却在董事会上逐条写出代价:时间节点先于试验准备;资金可能迫使业务对外作不实关联;失败公开方式由投资条款决定;搜索与支付的员工和用户被动成为航天融资材料。 “你不是一直怕钱不够?”董事问。 “怕,所以更不能拿一笔会让我们假装已经准备好的钱。” 他们没有完全拒绝外部融资,只给出新的资料包:当前能力、禁区、十二个月验证计划、停止条件和三条业务独立账目。愿意按真实阶段讨论的继续谈,只买竞赛标题的不再约第二次。 晚上回到出租屋,苏雨桐正在给母亲回信。桌上放着半碗凉掉的西红柿鸡蛋面,旁边是她的盲测二号抽样草案。马飞把传真摊开,说那个对手终于出现了。 “他知道你吗?”苏雨桐问。 “不知道。” “那现在是谁在和谁比赛?” 马飞愣了愣。 “你在和记忆里的他比赛。”她把信纸翻到背面晾墨,“团队只看见一张传真。如果你突然把所有节点压紧,他们不会知道压力从哪里来,只会以为是自己不够快。” “时间确实不多。” “那就说能说的。行业开始变化,人才和供应链会变贵,资金窗口可能变。别把未来结局当成他们欠你的紧迫感。” 马飞把凉面热了一遍。煤气灶火苗偏黄,锅底很快烧出一圈焦痕。他一边吃,一边重新写筹备组周会说明,没有写对方将如何成功,只写已经可观察的三件事:海外资本开始进入,专业人才竞争可能加剧,星辰需要尽快建立合规点火合作与专职队伍。 第二天周会,他把这份说明念给所有人,允许匿名提问。 第一张纸问,公司会不会因为外部新闻取消休假。第二张问,若半年内不能点火是不是全员失败。第三张问,马飞是不是掌握对方内部消息。 “不取消已经批准的休假。”马飞逐项答,“半年不是生死线,任何点火都服从场地、设计和安全条件。我没有对方内部消息,也不允许公司去获取。” 何敬问:“那我们到底要快到什么程度?” “快到每次等待都有理由,每次返工都留下能复用的证据;不能快到用加班填设计空白。” 这句话被张建国挑了毛病。他在下次顾问会上说,“每次等待都有理由”仍可能替拖延开脱。计划要写清责任人、依赖条件和最晚复核日,不满足就调整路线或停止,不能用谨慎掩盖没有决定。 竞争看板因此多了第五列:星辰下一次可检查动作。 新闻后的第一个月,星辰没有发布火箭效果图。筹备组完成三家点火场地初筛,招聘面试排了两轮,材料试验协议也开始续谈。看板上对方一栏仍只有几条公开消息,星辰一栏则不断增加小而具体的日期。 外部消息也改变了家里的谈话。邱蕾的母亲从报纸上看见“私人火箭”,以为女儿很快要去发射场,连续三个晚上打电话问会不会调到沙漠。邱蕾把工作证和安全协议带回家,一页页解释自己现在仍在管样片、批次和合作试验。母亲最后只听懂一句“城南不点火”,便要求她写在电话旁的挂历上。 新来的控制工程师则在入职前临时反悔。他的妻子刚怀孕,海外竞赛新闻让两人担心公司会突然搬迁或停发工资。他没有编造家庭急事,只来办公室说明原因。何敬把已经为他准备的工位收回,没有指责不够有理想;许姐按约报销了他参加终面的火车票。 一周后,那名工程师寄来一封信,说等星辰能明确未来一年工作地点和保险安排,他愿意重新申请。马飞把信钉在招聘板背面。对手带来的紧迫感不仅是争夺人才,也要求星辰给人才足够真实的条件,让别人能把孩子、房租和父母一起放进决定里。 筹备组于是公布未来十二个月的场地安排:日常工作仍在北京,合作点火需要短期出差,单次排期提前说明;差旅、保险和停试后的返程由公司承担,不用“结果没出来”扣住个人。这个说明没有让简历突然翻倍,却让下一轮面试者问的问题更具体了。 周五下午,何敬女儿来试验场写作业。她仰头看白板,问美国那家公司是不是坏人。 何敬说不是。 “那为什么写对手?” “因为他们也想先做到一些事情。” “先做到的人就赢吗?” 何敬看向马飞,把问题交给他。 马飞蹲下来,说:“先做到一件真的事,比先说做到重要。可如果为了抢先把人弄伤、把失败藏起来,也不算赢。” 女孩似懂非懂,在作业本上继续写字。她把“竞争”的“竞”少写了一点,何敬用铅笔轻轻补上。 傍晚,众人离开试验场。马飞最后擦掉白板角落一行不知谁写的“赶在他们前面”。他没有把竞争者的名字擦掉,只在旁边添了一句:公开事实会改变资源判断,不替代自己的试验证据。 那家远在大洋彼岸的公司不会因为星辰的克制放慢,也不会等他们准备好。 新闻里的对手已经出现。 星辰首先要防止的,却是把一个真实对手变成组织内部可以压过所有边界的借口。 第82章 七个人的招聘会 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第83章 合格的点火场 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第84章 第一份推进剂协议 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第85章 喷注器先过水 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第86章 被取消的试验 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第87章 点火前一分钟 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第88章 四点三秒 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第89章 黑色沉积 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第90章 推力不是越大越好 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第91章 一万零一名用户 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第92章 一封监管问询 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第93章 苏雨桐不签字 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第94章 封闭的春天 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第95章 盲测二号 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第96章 重新点火之前 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第97章 可回收火箭 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第98章 一条腿的重量 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第99章 台架上的第二次点火 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第100章 可重复的第一步 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第101章 十天以后 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第102章 门牌还没换 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第103章 第三次不叫重复 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第104章 少了一毫米 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第105章 十一点八秒 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第106章 把推力降下来 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第107章 热着的时候 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第108章 四十七分钟 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第109章 第三次火焰 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第110章 两条推进路线 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第111章 一张能飞的许可 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第1章 火焰尽头 倒计时归零后七十一秒,马飞听见了一个不该出现的声音。 不是警报,也不是舱体被气流摩擦时绵长的低啸,而是一阵从箭体深处传来的、极细的金属颤音。 它只持续了半秒。 主屏上,二级发动机氧泵出口压力跳低了百分之三点四,随即被控制系统拉回正常区间。绿色曲线重新贴住标称值,像什么都没有发生。地面指挥中心没有发出询问,自动诊断也只给出一条黄色提示。 马飞却把手从扶手上移到了应急面板。 六十一年的生命里,他有四十年在和火箭打交道。数据会被滤波,传感器会撒谎,结构传来的声音不会。 “星舟一号,确认氧泵压力波动。”耳机里终于传来测控大厅的声音,“幅值在容限内,姿态正常。” “我听到高频振动。”马飞说,“调出泵后轴承温度原始量,不要滤波值。” 两秒后,屏幕右侧展开一组灰色数字。 七十三点一。 七十四点六。 七十七点九。 温升并不陡,却快得不合常理。 “准备中止入轨。”马飞说。 耳机里沉默了一瞬。星舟一号已经接近二级关机点,中止意味着这次耗费十一年、承载着整个团队希望的首飞将以失败告终。更麻烦的是,它的返回窗口只有九十秒。现在改变任务,飞船必须在未经完整验证的姿态下再入。 “总师,压力恢复了。”副指挥的声音发紧,“制导给出的剩余裕量足够。” 马飞看着那条过分平滑的绿色曲线。 三十年前,他也相信过“在容限内”。 “执行中止。”他说,“这是命令。” 他的手指按下红色保护盖。 就在同一刻,舱体猛地向左一沉。 氧泵压力从百分之九十七跌到百分之六十一,发动机推力曲线像被刀砍断。姿态控制喷口连续点火,飞船试图抵消偏转,二级箭体却在失去轴向约束后开始摆振。 红灯铺满屏幕。 “推力衰减!” “俯仰角速度超限!” “二级关机,准备分离!” 马飞看见分离指令发了出去,爆炸螺栓状态却迟迟没有变绿。 零点一秒。 零点四秒。 零点七秒。 前一世——或者说,此刻仍是他唯一的一生——最致命的错误终于露出了全貌:涡轮泵的失稳不是孤立故障。推力下降让箭体进入异常姿态,老化的分离判据又在错误的角速度门限下拒绝执行。两个各自被标注为“可接受”的风险,在七十多秒后咬合成了一把剪刀。 “手动分离无响应!”地面有人喊。 马飞没有再尝试第二次。 他把最后几秒用来盯住原始遥测。泵后轴承温度八十九点二,纵向振动频率一百七十六赫兹,右侧隔热层温度比模型高出一百九十四摄氏度。数字清清楚楚地留在视网膜上。 三点七秒后,箭体折断。 火焰从舷窗外压过来,白得没有颜色。 马飞最后想到的不是疼,也不是遗憾。 他只来得及问自己:如果把所有被分开的风险放回同一张图上,结局会不会不同? —— 他在一阵电铃声里睁开眼。 天花板很低,墙角有一小块受潮后鼓起的石灰皮。头顶不是飞船的照明带,而是一根发黑的日光灯管。窗外有人骑车经过,车铃隔着玻璃响了两声。 马飞没有立刻坐起来。 他的第一反应是事故后的镇静剂造成了幻觉。第二反应是确认呼吸——平稳,胸腔没有灼伤;再确认四肢——有知觉,右手能动;最后听声音——走廊里有人用搪瓷杯接水,广播正在播报早间新闻。 “……邮电部将继续推进国家公用数据通信网建设……” 播音腔平直而遥远。 床边放着一只上海牌手表。七点十二分。 压在手表下面的《北京日报》印着日期:1995年9月17日。 马飞盯了很久,才把视线移向自己的手。 手背上的烧伤疤不见了,虎口那层常年握工具留下的硬茧薄了许多。无名指上没有婚戒——他在四十三岁那年离婚,此后一直戴着戒指留下的浅痕,此刻也不存在。 他起身走到镜子前。 镜中人三十岁,短发凌乱,眉骨右侧有一道少年时留下的细疤。那张脸他并不陌生,只是已经三十一年没见过了。 桌上的工作证给出了最后一个证据。 马飞,北京航天研究所第三研究室,工程师。 门外传来钥匙碰撞声。隔壁宿舍的老董端着铝饭盒经过,隔门喊了一句:“小马,食堂今天有豆腐脑,再不去只剩汤。” 声音年轻得让马飞鼻腔一酸。 老董在二〇一三年病逝。葬礼那天北京下着雨,马飞因为发动机试车没能赶回去,只托人送了花圈。如今他还在门外抱怨食堂,布鞋拖过水磨石地面,走得很慢。 马飞想开门,又把手收了回来。他还不知道该用什么表情面对一个已经死过的人。 胃却先替他作了决定。昨晚那具三十岁的身体大概只吃过一碗面,此刻饿得发疼。桌角放着半只冷馒头,外皮已经干硬。他咬了一口,真实的麦香和酸味一起压住喉咙里翻上来的灼热感。 他扶着桌沿,胃里一阵收紧。 1995年。距离spacex成立还有七年,距离那次让他死去的事故还有三十一年。更早的研究、更慢的计算机、更有限的材料条件,以及一个尚未被任何人画出的故障链,全都在门外等着他。 如果这真是第二次生命,他当然知道未来会出现什么。 可知道一枚火箭将在三十一年后爆炸,不等于知道怎样让它今天就不爆炸。 马飞拉开抽屉,找到一本空白实验记录本。抽屉里还有粮票、两节用过的电池和一封母亲催他国庆回家的信。他把信移到一边,没有写公司名,也没有列历史大事。 他只写下四组数字: 七十一秒。 一百七十六赫兹。 零点七秒。 一百九十四摄氏度。 笔尖停在页脚。他本想写“根因”,又把那两个字涂掉,只留下日期和四组数字。 食堂第二遍开饭铃从窗外传来。马飞合上记录本,洗了把脸,把那封家信揣进外套口袋。 走廊里,老董正为豆腐脑没有香菜和大师傅争论。看见马飞出来,他把自己饭盒里剩的一只烧饼塞过来:“又熬夜了?脸跟纸一样白。” 马飞接住烧饼,手心被余温烫了一下。 “国庆我回趟家。”他说。 老董莫名其妙:“回就回,跟我报什么批?” 马飞低头咬了一口,没有解释。窗外自行车铃一阵接一阵,研究所的星期天照常开始了。 第2章 三点七秒 马飞花了一个上午确认记忆的边界。 他记得2026年星舟一号的总体方案,记得每次关键评审里谁支持、谁反对,也记得许多后来被证明正确的工程路线。但当他试图把氧泵后轴承的完整设计画下来时,笔尖很快停住了。 轴径记得,材料牌号记得,润滑方式记得。 滚子修形的精确曲线却只剩一个模糊轮廓。热处理温度能想起区间,保温时长和炉冷曲线却互相混杂。至于三十一年后那套联合故障诊断软件,他记得数学思想,却不可能凭记忆重写数百万行代码。 人的记忆不是硬盘。 更何况,即使图纸一张不差地摆在面前,1995年的机床、材料纯度和传感器也造不出2026年的成品。 这个结论没有让他沮丧,反而让他安静下来。 未来知识不是仓库,是地图。地图能告诉他悬崖在哪里,却不能替他修桥。 午休前,马飞回到第三研究室。 实验楼仍是记忆中的样子。楼道墙裙刷着暗绿色油漆,门口挂着“严禁烟火”的木牌。资料室里立着一排灰色铁柜,每个抽屉都贴着手写标签。没有联网数据库,历次试验数据保存在纸质曲线、磁带和少量软盘里。 值班的何师傅从报纸后抬头。 “小马,星期天也来?” “先来占张桌子。”马飞把从食堂带回的铝饭盒放到暖气片旁,“晚一点再吃。” 何师傅闻见盒里炖白菜的味道,皱眉:“九月就拿暖气热饭,你当它开着?” 马飞这才想起供暖还要等一个多月。何师傅从柜下摸出自己的热水盆,让他把饭盒坐进热水里,嘴上仍念叨年轻人干活不记季节。 “下周评审,我想再看一下涡轮泵转子试验。” 何师傅把登记簿推过来:“哪一年的?” 马飞顿了一下。 在2026年的事故复盘里,最早的异常可以追溯到某型发动机1994年的一次耐久试验。那个结论来自后来数字化的旧档案。此刻,它们还散落在不同科室,没有人把轴承温升、振动峰和分离时序放在一起。 “先看九三、九四年的。”他说,“包括判废件记录。” 何师傅从眼镜上方看了他一眼:“评审不看判废件。” “所以我想看。” 二十分钟后,六只牛皮纸档案袋摆在桌上。 马飞没有找到命中注定的那张曲线。 他找到的是一堆不完整的证据:某次长程试验在八十七秒后出现一百六十九赫兹的窄带振动;另一台泵的后轴承温度突然上升,试验员把原因归为热电偶松动;一份判废报告提到保持架表面有轻微擦伤,却没有继续做金相分析。 这些现象和星舟一号的一百七十六赫兹并不相同。型号不同、载荷不同、测点也不同。任何一个严谨的工程师都不会仅凭相似数字宣布找到未来事故的根因。 马飞却看见了一条可以开始验证的路。 他取出记录本,只抄原始数据,不写结论。 炖白菜在热水里泡得温吞。马飞吃了两口,又翻到一份被退回的试验交接单。单上写着热电偶松动,却没有更换前后的对照记录;振动异常出现在同一时间段,两个部门的报告却使用了不同起点。 他在纸上画了三条时间轴,把各自的零秒对齐。原本相隔十几秒的温升和振动峰,落到了同一个两秒窗口里。 何师傅端着茶经过,停下脚:“你把人家的表画错了?” “没错。三块表的零点不一样。” 何师傅看不懂全部曲线,却看懂了三条竖线重合。他放下杯子,把已经锁回柜里的判废件目录又拿了出来:“九四年还有一盒照片,登记单没写。你要不要看?” 照片里,一只轴承保持架的擦痕恰好位于温升测点附近。它仍不能证明未来事故,却让马飞手里的假设第一次多了一件不是来自记忆的实物证据。 下午三点,资料室的门被推开。张建国抱着一卷图纸站在门口。 张建国四十七岁,鬓角已经有了白发。他是第三研究室的副主任,也是马飞进所后一直带他的老师。三十一年后的病房里,老人曾握着他的手,问他是不是把一辈子都过成了一次没有结束的试验。 此刻,张建国身体硬朗,声音也有力。 “我在办公室找你半天。”他扫了一眼桌面,“怎么翻起判废档案了?” “想查转子系统在长程工况下有没有共同的异常频段。” “哪个任务要求的?” “没有任务。” 张建国放下图纸,没有立刻批评。他抽出马飞抄下的曲线编号,看了两页。 “一百六十九赫兹和一百七十六赫兹,”他说,“你把不同型号的数据放在一起,是想证明什么?” “现在什么也证明不了。”马飞回答,“我只怀疑我们对低幅高频振动的处置太分散。结构组看结构,泵组看温度,控制组看姿态。各自都在容限里,组合起来未必还在。” 他把三条对齐后的时间轴推过去,没有先提未来那一百七十六赫兹。 “这台泵的报告说温度异常发生在振动以后十二秒,控制组因此没把两件事关联。按各自原始时标换算,它们相差不到两秒。保持架照片也在,但没人把照片编号抄进热电偶处置单。” 张建国翻到原始记录,自己算了一遍。第一次结果差半秒,他重新核对采样起点,第二次与马飞一致。 张建国的眼神变了。 这个说法在三十一年后叫跨系统耦合风险,在1995年的工程体系里不是不存在,只是很少有人能获得足够完整的数据。部门边界比技术边界更难穿透。 “你从哪儿想到的?” 马飞早已为这个问题准备了一个不完美的答案。 “昨晚做了个梦,梦见一台发动机在正常数据里坏了。” 张建国盯着他。 片刻后,他拿起图纸卷,在马飞头上轻轻敲了一下。 “梦不能写进报告。”他说,“明天九二一专题会,你要是敢拿梦当依据,我让你回去抄一个月试验规程。” 他说完走向门口,又停住。 “不过,把九四年七月那台泵的原始磁带借出来。周二有台时,可以重放一次。” 门关上后,马飞低头看着记录本。 张建国没有相信他的结论。 但他给了一次试验机会。 马飞把已经冷透的白菜吃完,去值班室洗饭盒。何师傅见他回来,朝桌上努了努嘴。 那里多了一张磁带机预约单,张建国已经签过字。时间是星期二晚十一点到凌晨两点,后面还用红笔加了四个字:原始量全留。 傍晚,马飞把六只档案袋逐一归位。那张保持架照片被重新登记,夹进对应档案袋。何师傅锁柜时抱怨他们给星期一值班添了活,手上却把新标签压得格外平。 马飞将预约单折好放进记录本,骑车离开实验楼。车筐里空饭盒一路轻响,晚风从袖口灌进去。经过研究所门口的小卖部时,他停下来买了两节新电池和一包最便宜的磁带标签。 星期二晚十一点,他会再听一次三十一年前被当成噪声的东西。 第3章 九二一会议 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第4章 图书馆的检索框 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第5章 被退回的报告 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第6章 七年窗口 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第7章 一台二手486 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第8章 第一次失败查询 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第9章 喷注器与软盘 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第10章 把未来拆成零件 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第11章 辞职信 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第12章 最后一份试验报告 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第13章 半地下室公司 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第14章 第一条数据 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第15章 只够二十七天 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第16章 苏雨桐的条件 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第17章 乱码之夜 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第18章 门外的投资人 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第19章 一百次查询 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第20章 星辰第一次亮起 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第21章 三封问题邮件 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第22章 不能抓的页面 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第23章 一万次查询 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第24章 机房雪崩 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第25章 第二台服务器 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第26章 三十天窗口 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第27章 控制权的价格 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第28章 没有广告的校园 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第29章 第一个竞争者 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第30章 结果页上的广告位 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第31章 错误答案的代价 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第32章 把广告和结果分开 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第33章 搬进机房 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第34章 苏雨桐的署名 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第35章 七个百分点 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第36章 星辰科技有限公司 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第37章 一九九八倒计时 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第38章 公测前夜 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第39章 十万次查询 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第40章 正式上线 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第41章 服务器上的红灯 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第42章 七天故障表 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第43章 第一张商业合同 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第44章 不值钱的点击 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第45章 一百一十七次拒绝 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第46章 三十天不关机 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第47章 现金流第一次转正 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第48章 招聘启事上的一道题 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第49章 一封来自航天口的信 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第50章 事故问题册 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第51章 不是火箭公司 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第52章 三种账本 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第53章 到账要三天 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第54章 不能替客户保管钱 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第55章 身份不是密码 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第56章 第一次对账差一分 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第57章 黑名单里的人 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第58章 一百笔试付 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第59章 苏雨桐的第二条线 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第60章 零点清算 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第61章 三百笔以后 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第62章 银行窗口里的软盘 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第63章 谁来退款 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第64章 凌晨两点的回滚 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第65章 第一个支付产品名 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第66章 搜索和支付之间的墙 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第67章 第一台账务服务器 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第68章 机房里的第二把钥匙 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第69章 电话那端是谁 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第70章 短信验证 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第71章 一万名用户之前 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第72章 盲测 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第73章 模型第一次输给规则 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第74章 算力不是智能 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第75章 利润表 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第76章 张建国的选择 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第77章 从纸面到试验台 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第78章 一块烧蚀的材料 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第79章 十七毫秒 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第80章 星辰航天筹备组 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第81章 新闻里的对手 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第82章 七个人的招聘会 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第83章 合格的点火场 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第84章 第一份推进剂协议 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第85章 喷注器先过水 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第86章 被取消的试验 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第87章 点火前一分钟 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第88章 四点三秒 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第89章 黑色沉积 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第90章 推力不是越大越好 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第91章 一万零一名用户 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第92章 一封监管问询 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第93章 苏雨桐不签字 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第94章 封闭的春天 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第95章 盲测二号 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第96章 重新点火之前 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第97章 可回收火箭 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第98章 一条腿的重量 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第99章 台架上的第二次点火 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第100章 可重复的第一步 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第101章 十天以后 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第102章 门牌还没换 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第103章 第三次不叫重复 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第104章 少了一毫米 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第105章 十一点八秒 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第106章 把推力降下来 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第107章 热着的时候 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第108章 四十七分钟 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第109章 第三次火焰 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第110章 两条推进路线 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第111章 一张能飞的许可 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第112章 不是缩小的整箭 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第113章 地面上的飞行 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第114章 三根绳子 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第115章 十五厘米 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第116章 侧风 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第117章 少了一只螺母 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第118章 十二米 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第119章 落地以后 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第120章 十八米 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第121章 拆开以后 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第122章 一张南方地图 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第123章 kb 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第124章 海外第一张回执 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第125章 三条海岸线 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第126章 盐雾里的螺栓 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第127章 蜂箱以外的村子 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第128章 不是买一块地 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第129章 马飞的六小时 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第130章 退回来的三十二元 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第131章 掌上的搜索框 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第132章 清澜港的风 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第133章 退回的意向书 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第134章 九张红线图 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第135章 不搬走的人 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第136章 两种速度 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第137章 一场台风以前 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第138章 海外商户名单 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第139章 风暴过境 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第140章 文昌方案 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第141章 工厂与发射台之间 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第142章 八公里之外 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第143章 第一份总图 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第144章 不用拐弯的车 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第145章 七个市场 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第146章 口袋里的下一代 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第147章 不能动的红树林 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第148章 没有掌声的听证 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第149章 地价翻了一倍 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第150章 三道门外 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第151章 旧厂房里的大圆筒 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第152章 海风标准 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第153章 第一条结算走廊 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第154章 对手的首页 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第155章 马飞不在发布会 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第156章 一张施工许可证 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第157章 先修排水沟 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第158章 第一扇厂门 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第159章 海边的总装线 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第160章 还不能点火的地方 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第161章 另一座文昌 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第162章 显卡不只用来打游戏 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第163章 三十吨的心脏 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第164章 水泵里的暴风雨 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第165章 五月十二日 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第166章 半秒钟 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第167章 两分钟 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第168章 口袋里的广场 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第169章 海那边的第三次坠落 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第170章 九月的风暴 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第171章 两束火光 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第172章 十二次任务 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第173章 g牌照 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第174章 为什么要分成两截 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第175章 竖起来 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第176章 围墙之外 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第177章 越过一百公里 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第178章 少了四百米每秒 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第179章 四十三天 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第180章 第一圈 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第181章 掉下去的那一截 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第182章 轨道上的门牌 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第183章 第三种脾气 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第184章 第二个圆 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第185章 客户不坐第一排 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第186章 一块更大的屏幕 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第187章 搜索框外的风 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第188章 海面不会替人藏错 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第189章 九台发动机 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第190章 三份报价 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第191章 把卫星装进去 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第192章 第一次收钱的火焰 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第193章 失联的十一分钟 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第194章 月亮发来的催促 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第195章 半空中的第二把火 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第196章 倒着飞 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第197章 离船八百米 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第198章 捞上来的账单 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第199章 从轨道回来 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第200章 海面上的白点 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第201章 平台不是一块甲板 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第202章 手机里的一条语音 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第203章 台风来以前 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第204章 三月十一日的海 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第205章 一张不该抢的地图 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第206章 甲板边缘 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第207章 捞回来的腿 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第208章 第一张回收保单 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第209章 天宫在头顶相遇 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第210章 存下来再说 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第211章 完整回来 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第212章 箭体拆解 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第213章 一百零七个必换件 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第214章 龙飞船抵达空间站 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第215章 客户要的不是奇迹 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第216章 好奇号的七分钟 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第217章 三分钟到二十二分钟 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第218章 第二次站上甲板 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第219章 拆到只剩骨架 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第220章 一枚一级回到工厂 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第221章 先别洗干净 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第222章 一百零七张判决书 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第223章 同一台发动机 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第224章 复飞券不是门票 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第225章 月亮上的灯 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第226章 玉兔不走了 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第227章 机器先学会冻一夜 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第228章 g牌照 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第229章 付款码贴上柜台 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第230章 第一次复飞 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第231章 旧箭到底便宜多少 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第232章 便宜之后的拥堵 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第233章 十二颗星的圆桌 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第234章 轨道上的路由器 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第235章 先把云扔掉 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第236章 门终于开了一条缝 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第237章 对手们的星座 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第238章 三台发动机 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第239章 三台一起吵 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第240章 星链不是一条线 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第241章 第二次创业 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第242章 招不到的三种人 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第243章 模型不签字 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第244章 机械臂打翻的水杯 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第245章 错杀的焊缝 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第246章 数据有门 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第247章 云端的显卡 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第248章 机房不能直接上天 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第249章 第一块轨道计算板 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第250章 四百毫秒 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第251章 开源的工具箱 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第252章 一行代码,十台错法 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第253章 十一颗卫星同时失语 零点零一分,十一颗卫星的路由图标全部变灰。 值班员先以为大屏卡了。他刷新一次,星间链路仍是一片断线;切到地面站原始接收,卫星载波还在,健康遥测也能从独立测控通道收到。卫星没有关机,没有掉出轨道,只是不再承认轨道网络递过去的“工作证”。 叶骁冲进控制厅时,第一颗验证星刚经过海南站。 “刚才不是正常吗?” 安全工程师唐梨把两套记录并排。二十三点五十九分的验证发生在隔离测试网,测试站同时信任旧根证书和新根证书;零点整,生产网按计划更新信任清单,旧根被移除,新清单却漏掉一张中间证书。卫星带来的身份证没坏,地面站少了一页能把身份证一路核到签发机构的证明。 那张中间证书不是被人手动忘掉的。配置生成脚本按“生产必需”自动裁剪信任包,为了减小上传和维护范围,只保留当前生产记录中直接引用的链。验证星的新证书尚未在生产库正式生效,脚本便认为那张中间证明“暂无引用”,清理了出去。 隔离测试网为什么没出错,也有一条旧账。半年以前,为兼容一颗早期试验星,测试站临时保留过完整证书链。任务结束后没人删除,文档只写“兼容配置”,没有写它会让测试环境比生产环境多信一层。大家以为测试更接近真实,实际它悄悄多了一张护身符。 换证原计划提前两周。数据越权事件发生后,所有跨域证书与访问更新暂停复核;恢复后,申请又在积压队列里等了几天。时间被一点点吃掉,最后只剩到期前一夜。没有一个人决定“拖到最后”,每个环节却都能解释自己为什么晚半天。 唐梨把这三条写进临时记录。运营经理看完,没再把事故叫作“漏传一个文件”。若只补上文件,下一次自动裁剪、环境漂移和临期更新仍会在别处重新碰头。 十颗尚未切换的新证书当然无法建立会话。已经切换的一号星也因为证书链不完整,被生产网拒之门外。 “把验证关掉,先接回来。”运营经理说。 唐梨抬头:“关掉以后,任何会发同样消息的人都能冒充卫星。” “只关十分钟。” “十分钟也能把假路由和假配置送进来。” 海岛终端、船舶短报和十二星影像队列正在积压。客户电话一个接一个打进来,运营经理额头全是汗:“那你说怎么办?” “走恢复链。独立测控确认节点身份,发送离线签名的完整信任包,一颗一颗恢复。先不能把门卸下来。” 恢复链存在,是为主网络证书失效准备的。它带宽低、窗口有限,每次操作要经过两人授权并核对卫星状态,速度远不如网络批量推送。过去演练只做过单颗,没有人真正用它恢复十一颗。 第一颗可见窗口还剩六分钟。 唐梨生成包含完整中间证书的新包,离线签名机需要两把实体钥匙同时启用。一把在她手里,另一把由当夜不值班的授权人保管。电话打过去,对方正在城西医院陪母亲急诊,钥匙锁在公司保险柜,备用授权人住得更远。 运营经理差点骂出声:“紧急钥匙为什么不在控制厅?” “因为放在控制厅,网络被攻破时别人也能一起拿走。” 安全设计挡住了错误,也挡住了最快的恢复。不能说哪一边天然正确,只能按预案走。 备用授权人二十七分钟后赶到,穿着拖鞋,外套里面还是睡衣。第一颗星早已离开海南站范围,要等下一座地面站或下一圈。 叶骁调动合作站。北方站天气良好,十六分钟后能看见三号星;海外合作站可以更早接触七号,却需要按数据和操作协议确认本次紧急指令。谁也不能因为着急,直接把恢复密钥发给不在授权范围的站点。 凌晨一点十二分,三号星收到恢复包。 节点先验证离线签名,将信任清单写入备用区,自检,再切换。主网络会话重新建立时,控制厅里响起零星掌声。 三号星恢复了,其他十颗仍然灰着。 路由系统自动把积压消息尽量交给三号和未参加换证的第十二颗试验星。两颗卫星无法承担原网络容量,健康与紧急短报优先,普通影像和语音暂停。海岛终端页面从“正在发送”改成“网络故障,已排队”,同时提示使用既有应急链路。 林秀兰凌晨被终端告警叫醒。岛上水箱液位正常,制冰机也没坏,真正急的是一名养殖工人的妻子要生产,他想给家里发消息。卫星语音排在低优先队列,手机又没信号。 林秀兰没有把语音标成设备紧急包。她带他去用岛上的卫星电话,按既有应急联系人拨回岸上。电话费不便宜,至少当场接通。星辰网络不是唯一的救命绳,事故发生时更不能假装自己仍然可用。 天亮后,孩子出生的消息先通过卫星电话传回岛上。那段原本排队的语音到中午才送达,已经从“快生了”变成迟到的报平安。养殖工人没有投诉,只问停网那几个小时算不算钱。 运营系统按服务中断和送达时间自动免掉相关费用,并给试点用户延长服务期。没有让用户拿着截图逐条申请。 商业成像客户损失更大。 十一颗星仍在拍,原始影像存在各自存储里,却无法通过轨道网络有效调度。两座直接地面站能逐颗接收一部分数据,覆盖之外的内容继续排队。唐志远要求优先下载一批有明确交付时限的海岸影像,普通测试图和低时效数据让路。 “会不会丢?”他问。 “当前存储够二十多个小时。超过后按既有保留规则清理低优先数据,客户任务暂不自动删。” “别再跟我说当前。” “那就说最坏。若恢复拖过一天,部分低优先影像会延迟,超过存储安全线还要停止新拍摄。我们不会拿覆盖不到的数据向你保证不丢。” 唐志远骂了一句,仍按任务清单排了优先顺序。 外部舆论在早上八点爆开。海岛用户把故障页面发到网上,有人发现轨道网络状态大面积异常。“星辰卫星集体失联”的标题冲上热榜,甚至传出十一颗卫星遭遇太阳风暴。 公关组想等全部恢复后再说明。苏雨桐不同意。卫星没有失联,网络服务确实中断;拖到客户先发消息,只会让准确说明也像掩盖。 星辰发布初步通报:十一颗卫星在地面证书更新后无法建立路由会话,独立遥测正常,服务降级,恢复正在进行。原因尚在确认,不把“疑似外部攻击”当挡箭牌。 程海川看见通报,主动开放瀚海两处兼容地面节点协助接收允许转发的短报,条件按既有互通协议执行。网络安全边界没有因此取消,节点仍需有效身份;能验证的三号和第十二颗星可以使用,其他失效节点不能靠友谊接入。 魏北川则从火箭公司发来一句:“天上的东西没坏,地上一张证书把它们都哑了。我们也查更新链。” 竞争对手没有放过市场机会。瀚海公开强调自家证书分区与地面站架构,一家海外卫星通信商给海事客户发来替代报价。程海川一边帮忙转发,一边照样抢单,两件事并不矛盾。 中午前,五颗卫星完成恢复。 控制厅里的人已经连续工作十二小时。运营经理不愿换班,担心新班组不了解现场;顾宁强制让第一批人员分组休息,交接必须按卫星逐颗读状态、未完成操作和下一个窗口,不能只说“情况都在群里”。 唐梨喝了四杯咖啡,签名时把日期写错一天。她盯着那一笔看了几秒,主动把离线钥匙交给下一名授权人,去休息室躺下。 “我还能撑。”她说。 “证书事故刚教完你时间不能信错。”顾宁指着错日期,“现在连今天几号都写错,还拿钥匙?” 休息室只有折叠床,门外每恢复一颗星便有人小声报数。唐梨戴上耳塞仍睡不着,最后让同事把手机收走。两小时后她醒来,新的授权人已经安全恢复一颗,没有因为换人让天塌下来。 这次交接后来成为恢复演练的一部分。关键岗位有备份,不是只在组织表上写第二个名字;备用的人必须真握过钥匙、走过流程,也必须在主负责人最不愿离开时敢接手。 第六颗在写入备用区后校验失败,没有强行切换。地面包传输中有分段缺失,节点保持旧状态,等待下一次过站。恢复流程因此又慢一圈。运营经理想远程缩短分段确认,唐梨拒绝:“已经因为赶时间掉进一次坑,别在爬出来时再挖一个。” 下午,沿海天气转坏。海南站上空风雨增强,天线进入保护角度;北方站可见窗口有限,海外合作站操作额度也接近上限。剩余卫星必须依靠一座平时用于演练的移动地面站补窗口。 那套站装在两辆车上,一辆载天线,一辆载电源与控制设备,平时停在文昌仓库。值班员去取时,发现天线车左后轮胎压不足,发电机油料也只够半夜演练,不够长时间连续恢复。 仓库主管说上月维护单已经提交,移动站没有正式任务,预算排在后面。 叶骁看着那张维护单,气得说不出话。备用设备最容易被解释为“今天不用”,直到主系统坏掉的那一刻,所有人又希望它像新的一样启动。 轮胎更换、加油、加载最新信任包与站点授权同时进行。移动站出库已是傍晚,目的地是风雨边缘一块提前勘测过的开阔场地。 还有六颗卫星没有完全恢复,其中一颗存储余量只够十个小时。 车队驶出文昌时,雨刷已经开到最快。天线操作员看着车窗外横着刮的雨,问叶骁:“这风里真能把站立起来?” 叶骁盯着气象图上那条不断移动的安全边界。 “不能硬立。”他说,“先追一个能立的地方。” 第254章 风里的备用站 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第255章 对手站住了 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第256章 大火箭的影子 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第257章 第三次飞行的一级 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第258章 五十七天 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第259章 轨道边缘的云 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第260章 机器人的第一张工牌 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第261章 第三十七手 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第262章 别让机器学会讨好验收 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第263章 从酒泉升起的光 借走第二把钥匙的人没有跑远。 会场保卫人员在地下停车场找到他时,他正蹲在一辆商务车后面抽烟,胸前挂着临时证件,手里还捏着那张借调单的存根。 他不是间谍,也没准备撬乔岚的盲测箱。 他是负责布置展台的外包主管。 “领导让我保证演示不出问题。”男人把烟摁灭,声音越来越小,“有人说箱子里有故障样本,我想先拿出来看看,万一影响现场数据,就换一批好看的。” “哪个领导?” 他报出的名字来自主办方宣传部门。电话打过去,对方承认说过“演示要稳”,却否认让人领钥匙。外包主管便从手机里翻出一串消息,最后一句写得很清楚:想办法提前看,别让领导台上难堪。 意思传了四层,每一层都删掉一点责任,到了最下面,就变成一张盖真章的假借调。 乔岚没有接受私下道歉。她要求把经过写入会议安全记录,也没有把事情夸成技术泄密。箱子没开,样本没丢,真正暴露的是一条比算法更古老的漏洞:所有人都觉得自己只是替上一级省一点麻烦。 温蔓从海南打来电话,听完先问:“钥匙还能用吗?” “锁芯已经换了。” “那张借调单留下。” “你又想挂墙上?” “黑胶带旁边还有位置。” 安全通信评审没有因此取消。大屏幕上的墨子号模型缓慢旋转,讲解员把原理说得很玄:量子不可克隆、测量必然扰动、天地一体化保密通信。坐在后排的企业代表听得频频点头,仿佛只要卫星升空,世界上所有秘密都会自动穿上盔甲。 马飞第二天赶到北京,听见一家机构代表问:“我们以后是不是可以把数据库直接放到量子链路上,再也不用担心泄露?” 台上专家很耐心:“量子通信目前主要帮助分发密钥,不会替你修复数据库漏洞,也不会让被盗的电脑自动变安全。” 代表仍不死心:“那黑客一监听,不就能被发现?” “你可以发现钥匙传递过程受到窃听。可如果有人拿着正式借调单进门,量子不会替保安判断那张单是谁授意的。” 乔岚坐在旁边,忍不住看了马飞一眼。 马飞摊手:“不是我安排的例子。” 墨子号是国家工程,星辰没有抢它的名字和功劳。星辰参与的是几套地面终端的工程适配:让精密光学设备在风沙、温差和普通值班员手里也能稳定工作;同时把获取的密钥安全送进现有通信系统,而不是停在实验室仪器里供人拍照。 这活听起来没有卫星浪漫,做起来却处处磨人。 地面站望远镜要在几百公里外追住高速掠过天空的卫星,像用一根极细的吸管接住从屋顶飞过的一粒雨。云层会挡住光,空气会让光束发抖,卫星每次经过的时间窗口也只有几分钟。即便成功得到密钥,银行、政务和科研网络还要知道把哪一段密钥交给谁、用多久、什么时候作废。 吕春生第一次听完,皱着眉问:“说白了,就是天上给两边送同一本一次性密码本?” “可以先这么理解。”工程师说。 “那密码本送到以后,值班员贴在显示器边上呢?” 会议室里一阵笑。 工程师笑不出来。某个试验站为了交班方便,确实把设备初始口令写在纸上,压在键盘垫下面。量子链路的误码率、成码率和跟踪精度全都达标,门口一张纸却足以让成果难堪。 马飞让团队把“人拿到钥匙以后怎么办”单独立项。密钥不能只生成,还要被装入受控设备,按用途切片,按时间轮换;值班员能执行任务,却不能一次导出全部内容;设备丢失或人员调岗,权限当天失效。 苏雨桐看完方案,又加了一条:“别让一个系统管理员同时管申请、审批和销毁。” “会慢。”项目经理说。 “慢三分钟,还是丢一整套钥匙,自己选。” 她在支付业务里吃过相似的亏。账户风控再聪明,也挡不住有人拿主管账号批自己的申请。星辰后来把权限拆开,开始时人人抱怨麻烦,真到故障追查,却能知道每一步是谁动的。 同一套做法被搬进地面终端。机器可以提醒、拒绝越权、自动轮换,却不能悄悄替两个人完成本应相互制约的签字。 八月,酒泉夜里的风带着沙。 发射前几个小时,控制室灯光压得很低。星辰工程师盯着自己负责的地面适配界面,手边放着冷掉的盒饭。马飞没有进国家任务的核心指挥席,只在合作保障区陪着团队。电视画面里,长征二号丁运载火箭静静立在塔架旁,箭体被探照灯照得发白。 女儿给他发来一条语音,问今晚是不是又有“星星上天”。 马飞走到走廊才敢回复:“这颗星星送钥匙。” “它有口袋吗?” “没有,用光送。” “光跑那么快,钥匙会不会掉?” 他愣了一下,笑着说:“所以爸爸他们要盯着。” 倒计时归零,火焰照亮戈壁。火箭在轰鸣中离开地面,尾焰越升越高,最后缩成夜色里一枚发亮的针。 现场没有人拿这次成功给星辰贴金。大家鼓掌,是因为中国自己的量子科学实验卫星走向轨道,是无数研究单位、工厂、测控站和发射人员一起把一件几年前仍显得大胆的事变成现实。 等轨道数据稳定,合作保障区才有人把盒饭重新热上。 马飞端着饭盒靠在窗边,手机新闻已经刷屏。有人说全球通信即将绝对安全,有人说传统加密从此作废,还有人迫不及待地推销“量子保密手机壳”。 齐放从海南发来一张截图。某家小公司宣称自己的人工智能与量子技术结合,可提前发现全部网络攻击,配图却是一颗蓝色卫星外加人脑形状的闪电。 马飞回了两个字:收藏。 不是准备学习,是留着提醒宣传部门别走到同一条路上。 真正困难的实验还在后面。卫星要经过目标地面站上空,望远镜要捕获光束,天气、姿态、时间同步与背景噪声缺一不可。星辰的终端连续两个窗口都没拿到可用结果。 第一次是薄云。 第二次,设备表面数据正常,望远镜却在最后十几秒出现极小偏差,光斑从接收区域边缘滑了出去。 合作专家没有责怪,只安排重新校准。项目组却发现偏差不像随机误差,更像地面坐标在某个转换环节被重复修正了一次。 “又是一行代码?”赵国梁问。 “还不知道。” 所有配置被冻结。乔岚按盲测办法,把时间同步、站点坐标、姿态输入和设备标定拆开查。星核只负责比对异常模式,不允许自动改参数。凌晨三点,系统找出一个总在交接班后出现的微小跳变。 值班记录显示,夜班人员每次接班都会重新导入当天任务包。这本来只是为了确保文件最新,可任务包里同时带着一份坐标修正表。设备启动时已经加载过一次,人工再导入,相当于把同一把尺子往前挪了两遍。 偏差很小。 放到数百公里外,就足以让那束看不见的光从指缝旁滑过去。 第三个窗口前,任务包被拆成只能更新一次的版本,重复加载会直接报警。值班员仍需核对,系统却不再允许一个“保险动作”悄悄叠加两次。 天气预报说后半夜有云。 所有人提前两小时进场。望远镜转向预计方位,圆顶缓缓打开。风吹进来,值班员手里的咖啡凉得很快。 卫星出现时,肉眼什么也看不见。 屏幕上的跟踪框先抖了一下,随后稳稳咬住目标。光斑进入接收区,误码数据开始下降,可用密钥长度一格一格增长。 没有电影里贯穿天地的蓝色光柱,只有控制室里一排人屏住呼吸,盯着几个安静变化的数字。 链路成功的提示跳出来时,外面刚好起云。 一名年轻工程师握拳想喊,又怕影响操作,硬生生把声音憋成了咳嗽。吕春生递给他一杯热水:“光是接住了,别先把自己呛死。” 第一批试验密钥按流程进入受控设备,没有打印,没有截图,也没有人能够单独把它带走。马飞在记录上签的不是“通信绝对安全”,而是“本次链路与交接过程符合约束”。 庆祝也很克制。食堂临时多做了一锅羊肉汤,值夜班的人每人分到一碗。有人提议拍张合影,保密人员先把桌面和工牌检查了一遍,连窗玻璃上的屏幕倒影都用窗帘挡住。吕春生端着碗站到最后排,照片拍完才发现嘴角粘着一小片香菜。 年轻工程师想替他修图,被他拦住:“别修。省得以后人人都以为搞航天不用吃饭。” 马飞把照片发给苏雨桐,只截了没有设备的那一角。女儿已经睡着,茶几上留着一只纸做的小口袋,歪歪扭扭写着“给光装钥匙”。苏雨桐说她白天追问了半小时,最后决定口袋里还要放一块饼干,免得卫星饿。 “你什么时候回来?” “交接完就回。” “别每次都说交接完。上次交接完又多待两天。” 马飞看着外面逐渐泛白的天,老老实实把返程日期写进消息,不再用“很快”敷衍。 项目组也没有因为一次成功便拆设备庆功。下一班把失败的两个窗口重新走了一遍,从薄云预报到重复导入,逐项确认告警能否被普通值班员看懂。最早的提示写的是“坐标参数状态异常”,值班员看完只会打电话;后来改成“今日修正表已加载,不要再次导入”,下面只留下检查与取消两个按钮。 复杂原理藏在系统里面,人的动作却必须简单清楚。 乔岚又故意拿错一份任务包。设备没有把她当成不会犯错的专家,直接拒绝执行,并在记录里留下时间、账号和文件版本。她点点头:“这比相信我靠谱。” “你不觉得被冒犯?”项目经理问。 “昨天那张借调单才叫冒犯。” 一屋人都笑了。可笑过以后,每个人还是把自己的临时权限交回去,连马飞也不例外。老板可以批准项目预算,却不能因为赶飞机就绕过密钥销毁流程。 天亮后,大家走出地面站。东边云层被太阳照出一条金边,昨夜那束光早已消失。 乔岚的手机却收到一条告警。 一枚已经按流程销毁的测试密钥,在另一座城市的模拟终端里,被调用了一次。 第264章 销毁以后 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第265章 热没有窗户 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第266章 被删掉的海岸 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第266章 两颗卫星不认识彼此 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第268章 退款只退一次 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第269章 一栋会喷火的楼 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第270章 大西洋上的一级 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第271章 远航一号 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第272章 三成不能写在空气里 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第273章 三条一模一样的裂纹 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第274章 黑暗里的那只阀 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第275章 空间实验室的门 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第276章 在轨倒一杯水 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第277章 一滴液体绕着舱飞 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第278章 复飞的账终于变薄 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第279章 对手也把旧箭送上了天 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第280章 地月之间第一盏灯 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第281章 一百次的海岸 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第282章 海南没有一块空地 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第283章 七洲洋东南三十公里 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第284章 一百次不是一百声倒计时 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第285章 不是三枚中型绑一起 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第286章 两股火在一个燃烧室相遇 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第287章 十米箭体首飞 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第288章 鹊桥与第一批施工箱 二〇一八年五月二十一日清晨五点二十八分,马飞没有在星辰的控制室。 他和一群工程师挤在母港食堂,抬头看墙上的电视。 西昌卫星发射中心,长征四号丙运载火箭点火升空,把嫦娥四号任务的“鹊桥”中继星送入地月转移轨道。电视画面切过火箭、指挥大厅和展开的任务示意图,食堂里没人顾得上刚盛出来的粥。 长征四号丙飞行约二十五分钟,完成星箭分离。鹊桥将经过中途修正、近月制动和月球借力,前往地月拉格朗日二点附近的使命轨道。 那里不是一块能把卫星钉住的太空停车场。 鹊桥要沿一条巨大的晕轨道飞行,在合适的位置同时看见地球与月球背面,为年底的嫦娥四号搭起通信链路。月球背面之所以神秘,不是因为那里永远黑,而是月球本身挡住了地球发出的无线电。 何师傅听完电视里的解释,端着粥问:“就是在墙外搭个高梯子,一头能看见院子里,一头能看见院子外?” 钟鸣点头:“差不多。梯子还得一直自己保持姿势,天线偏一点,信号就会滑出去。” “你们那盏灯不行?” “我们的先导星只能做有限地月存储转发和近侧导航,轨道、天线与任务都不一样。”钟鸣说,“别人的桥不是我们的灯,我们也不能拿自己的灯去蹭桥。” 这句话当天便被写进星辰地月团队的接口边界。 鹊桥属于国家探月工程,任务、频率和数据都有明确授权链。星辰只能使用公开轨道信息做避碰和兼容性设计,未经许可不得接入,更不能把将来嫦娥四号的通信说成自家网络的一部分。 陈维明原本准备了一篇“星辰地月网络迎来关键节点”的宣传稿。苏雨桐删到只剩两句话:祝贺鹊桥成功发射;星辰将依据公开规则继续推进独立、兼容的商业科研链路。 “是不是太冷?”陈维明问。 “别人的火箭刚飞,你就把自己名字贴桥头,热过头了。” 食堂电视下方,周遥带来的银白货箱一字排开。 一共四只。 第一只是能源箱,装着可展开太阳翼、蓄电池、配电与热控。第二只是通信导航箱,带低功率信标和能够在断链时存数据的节点。第三只是工具与备件箱,里面没有扳手满天飞的浪漫画面,每件工具都锁在固定位置。第四只最重,装着折叠坡道、地面标志器和一台用于铺设电缆的小型机器人。 它们不是月球基地。 没有住人舱,没有核反应堆,也没有一落地便自动长出城市的机器。四只箱子只想证明更朴素的事:货物能否在月面自己卸下来,电源能否接上,机器人能否找到接口,坏掉以后能否用随箱备件修。 “为什么叫施工箱?”马飞的女儿问。 周遥蹲下来,把其中一只模型打开:“因为先把工具放到该放的地方,以后才有东西可施工。” 小姑娘翻了半天,找不到那只画在箱角的白兔。 “烧掉了?” “贴纸过不了热真空和洁净要求。” 她很不高兴,觉得月亮规矩太多。陈小满找来一块合格的激光标记片,让她重新画。白兔的耳朵依旧歪向左边,经过材料检验后被固定在工具箱内侧,不暴露在外,也不影响任何接口。 真正让团队头疼的,是四只箱子不能彼此独立。 能源箱若打不开,另外三只撑不过一个月夜;通信箱若不工作,机器人干了什么地面不知道;工具箱若卡在上层,机器人必须越过一个比自己轮子还高的门槛。 最初装卸顺序由星核根据重心和路径自动生成。模拟里,机器人先拖出通信箱,再绕到能源箱侧面展开太阳翼,路线最短。 周遥让人在厂房铺了二十厘米厚的月壤模拟物,再把照明压低。机器人一动,细灰便被轮子推到通信箱底部。它绕行时,右轮打滑,机械臂下意识抓住能源箱边缘。太阳翼还没展开,锁扣却被拉出一道白痕。 星核显示任务完成率百分之九十六。 庞姐从观察区走进来,拿扫帚柄点着那道白痕:“剩下百分之四准备让谁上月亮补?” 路线被推倒重做。 折叠坡道先落下,两枚地面标志器由弹簧缓慢推出,机器人根据近距离标记建立自己的小坐标系。能源箱第一,展开并自检;通信箱第二,接上电源后给地球回执;工具与施工机器人最后卸载。任何一步失败,后续动作停在安全姿态,不让四个错误排队发生。 装卸试验做了四十三遍。 第二十一遍,模拟月尘钻进坡道铰链,坡道只开到十一度。机器人能强行爬下去,却有翻覆风险。陈小满在铰链外加柔性迷宫密封,又把电机改为两级驱动:先轻轻破除黏着,再正常展开。若电流异常,机械释放允许坡道靠自重降下,不能让一只小电机锁死整批货。 第三十四遍,能源箱完全展开,通信箱却认错接口。两只插座机械尺寸相同,软件标签不同。视觉模型识别出了文字,在逆光下置信度仍有百分之九十一,实际抓的是测试口。 赵国梁把接口改成物理防错。电源、数据和测试插头形状各异,插错便插不进去。齐放没有反对,反而把这次失败加入星核训练与盲测集。 “能用形状解决,就别逼相机每次都考满分。”他说。 第四十三遍,所有箱子在模拟低温、斜坡与通信中断条件下完成卸载。顾宁仍只签署进入整器试验,没有签发月面任务放行。 着陆器代号“驿站一号”。 它没有借用鹊桥链路,目标也不在嫦娥四号预定月背着陆区。任务选择月球近侧一块经过批准的低风险验证区域,由星辰先导星和地面深空站提供有限通信导航,科学与环境数据按合作协议公开一部分。 有人问,既然十米验证箭首飞成功,为什么不一次带十倍货物。 顾宁把首飞状态摊开:一级与轨道级都落海,m230发动机只完成有限寿命,十米结构只飞过一次,月面着陆器也从未落过。 “运力不是往货舱里塞满的理由。我们现在能承担的任务失败后果,是四只无人箱,不是四十只。” 这句话挡掉了十三份临时搭载申请。 一家建材企业愿意出高价,把一块印着公司名字的砖送上月球;一家酒厂想放一瓶纪念酒,承诺承担全部费用;还有投资人建议装一面能从轨道拍到的巨大反光膜,只要照片传回,广告收入就能覆盖半次发射。 苏雨桐让法律、环境和任务团队逐份回复。不是给钱便能塞进货舱。材料会不会释放气体,容器会不会破裂,是否制造长期碎屑,所谓纪念物由谁负责,全部要有答案。 酒厂代表不服:“一瓶酒能影响月球什么?” “那就先把它放进真空舱。”邱蕾说。 瓶塞在低压与温差循环里慢慢退出,第三轮突然弹开。酒液迅速沸腾、结冰,碎玻璃撞在防护网里。代表隔着观察窗看了半天,再也没提原样搭载。 砖倒是没有碎,却除了广告没有任务价值。反光膜展开后可能干扰光学观测,也被否决。 最终增加的只有两件东西:一套由多所学校共同制作、经过材料检验的微型辐射计,以及一小片记录所有参与工种姓名的金属存档片。名字里有设计师,也有清洁工、叉车司机、食堂夜班和把四只箱子一遍遍擦净的装配人员。 存档片安装那晚,负责清洁的阿姨在名单里找了三遍,才相信那个与自己相同的名字真是她。她没有拍照发朋友圈,只把手套换成新的一副,又沿箱角擦了一遍。 “月亮上灰多。”她说,“从这里走的时候,至少干净点。” 第二枚十米验证箭完成了比首飞更长的整级静态点火。一级仍不安排塔捕获,返回目标是外海受控落水;轨道级把驿站一号送入地月转移后,也只执行再入数据任务。市场团队很想把它叫作第一次商业重型复用飞行,标题被质量部门改成“第二次无人验证发射”。 “一个字都不让兴奋?”陈维明抱怨。 “可以兴奋,别替硬件毕业。”顾宁说。 发射窗口选在鹊桥前往使命轨道的途中。两项任务在频率、轨迹和指挥链上彼此独立,轨道团队提前完成协调,避免任何误解。 海上平台点火那天,四只施工箱没有给镜头。它们躺在着陆器内部,被固定带压得严严实实,白兔标记藏在工具箱门后。 三十一台发动机把箭体推离海面。 第一次飞行曾让所有人惊叹它有多大,第二次,人们开始注意它能带什么。驿站一号与轨道级在停泊轨道完成检查,主发动机随后点火,把这批总质量不到运力上限一半的货送往月球。 一级仍在外海落水。落点误差比首飞缩小,肩环载荷与姿态控制数据也更完整。它入水前,一枚布置在安全距离外的浮标拍到肩环从云下穿出的清晰画面。 有人把那一帧与双层四臂回收塔合成,提前做出“筷子接巨箭”的海报。 何敬要求撤下。 “等真接住了再发。合成图不能替塔吃力。” 驿站一号飞向月球的第三天,鹊桥完成近月制动,转入前往地月拉格朗日二点的轨道。两个任务隔着遥远空间各走各的路,却让同一幅地月网络图第一次有了更多真实节点。 晚上,钟鸣把链路排程铺满三块屏幕。低轨卫星每秒都在换邻居,地月先导星按窗口出现,鹊桥只作为公开轨道物体显示,不接入星辰数据链。驿站一号的状态包每隔几分钟抵达一次,像一辆离家越来越远的货车,偶尔回报油温、电量和车门锁定。 最后一次中途修正结束,着陆器进入月球影响范围。 地面发出姿态调整指令。 已发送。 先导星确认转发。 驿站一号没有回执。 四十秒。 八十秒。 一百二十秒。 轨道屏幕上,那枚代表着陆器的小点正从月球边缘滑向背后。 钟鸣拿起耳机:“它被月亮挡住了。” 第289章 月背没有直线电话 “被月亮挡住”不是故障说明。 它只说明驿站一号此刻在地球看不见的地方。 按照轨道预报,遮挡应该持续四十六分钟。地面无法直接叫它,也不能借用鹊桥链路。星辰先导星的视野同样有限,只能在着陆器重新转出月球边缘后接住数据。 钟鸣把计时器放到主屏右下角。 四十六分钟,足够低轨网络换几百次邻居,也足够控制室里的人喝完两杯咖啡。可驿站一号正在准备近月制动。它若提前进入安全姿态,若电池掉压,若发动机阀门拒绝动作,地面都要等它出来才知道。 一名年轻操作员问:“能不能把指令功率加大,让信号绕过去?” “无线电不是喊得响就能拐弯。”钟鸣拿起桌上的保温杯,挡在手机与路由器之间,“月球不是这只杯子,它直径三千多公里。你站在墙这边,电话线在墙那边,没有中继就没有直线。” “那它现在靠什么?” “靠自己。” 遮挡前,地面已经发送完整任务包:姿态目标、点火时间、允许偏差、停止条件和失效后的安全轨道。驿站一号本地控制器按已核验规则执行,星核可以帮助评估异常候选,却不能在几秒内从地球遥控一只看不见的阀门。 这也是地月网络最不讨喜的真相。 地面不能永远当驾驶员。 马飞知道将来的火星通信更残酷。地球与火星单程延迟能从几分钟变到二十多分钟,还有太阳遮挡造成更长中断。若今天的机器人每遇到一块石头都等地面点鼠标,去了火星只会在原地排队。 “会不会自己做主太危险?”陈维明问。 “让它什么都自己决定才危险。”叶骁说,“本地自主不是给它自由发挥,是提前告诉它哪些事能做,哪些事只能停。” 驿站一号有三层权限。保持供电、避免翻滚、关闭异常阀门属于保命动作,可以本地立即执行;按已批准轨迹点火属于任务动作,条件不全便拒绝;改变着陆区、释放外部载荷和覆盖安全限制,必须等地面授权,断链时不猜。 计时器走到四十六分钟。 屏幕没有信号。 四十七分钟。 仍没有。 有人开始核对地面天线,另一组检查先导星姿态。钟鸣不让任何人重复发送近月制动指令。原任务包已经有唯一意图号,若着陆器执行过,再来一份不会多点一次;可在状态未知时乱塞新命令,只会让恢复后的队列更难判断。 五十一分钟,先导星收到一只很小的状态包。 不是完整遥测,也没有图像,只有八项关键结果。 设备存活。 姿态正常。 近月制动完成。 发动机关机正常。 电量正常。 储箱压力正常。 轨道待地面复核。 完整数据排队等待。 控制室里先响起一阵长长的呼气声,随后才有人鼓掌。 “为什么晚了五分钟?”马飞问。 轨道组很快找到原因。近月制动后的实际轨道远月点比预计高出一点,着陆器从月球边缘重新出现的时刻相应推迟。偏差仍在任务允许范围,却使链路可见窗口移动。 “晚出来,不等于它在里面出事。”钟鸣说,“我们的问题是屏幕只会显示没信号,不会显示为什么等。” 界面当天改了。 红色的“失联”被拆成四种状态:计划遮挡、超出预报窗口、地面链异常和飞行器异常证据。计划遮挡显示灰色并给出预计恢复区间;只有超过区间或出现矛盾证据才升级警报。 齐放反对只换颜色。他找来一批新员工做盲测,发现不少人即便看见“计划遮挡”,仍会在倒计时结束后连续点击重发。界面于是把发送按钮锁在任务证据面板之后,操作员必须先确认原指令意图号、允许重复策略和当前可见性。 “这是不相信人?”年轻操作员问。 “是承认人着急时会手快。”小郭说,“我在支付退款里吃过这个亏。” 地月链路收到第一批完整遥测后,又暴露出一个更像互联网公司的毛病。 施工箱在月球背面拍了一组高分辨率星敏感器校准图。图像文件大,商业科研客户订阅等级也高,被调度系统排在前面。一条阀门温差异常摘要反而在队列里多等了十二分钟。 阀门最后没有故障,十二分钟却把钟鸣吓出一身汗。 “在地球机房,图片晚十二分钟是体验问题。”他说,“在月球,故障摘要晚十二分钟,机器可能已经冻住。” 调度规则重新分级。生命安全、飞行器保命、故障摘要和控制回执占用受保护带宽;科学数据按任务优先级传送;商业价格只能在同一安全等级里影响排队,不能拿钱把告警挤到图片后面。 苏雨桐还加了一条:任何客户购买的是服务窗口,不是对公共安全链路的所有权。即使未来月面网络由星辰投资建设,也不能让最高报价者关掉别人的求救信号。 这条款发给第一批地月客户时,有家公司当场退出。 陈维明觉得可惜。那份合同足以支付一颗中继星。 “少一颗星,可能让网络晚半年。”他说。 “拿安全带宽换来的星,越多越危险。”苏雨桐说。 两人争到食堂收摊。老板娘把剩下的粉汤重新烧开,问他们月亮上的网费是不是比海南贵。 “会贵很多。”陈维明说。 “那月亮上有人欠费,你们去剪线吗?” 苏雨桐笑了:“保命的线不能剪。” 老板娘给她多加了一勺酸笋:“这才像做长久生意。” 六月十四日十一点零六分,鹊桥成功进入环绕地月拉格朗日二点的晕轨道。公开消息传来时,星辰控制大厅没有把那个节点接入自己的屏幕,只在轨道交通图上更新了位置与保护边界。 世界第一颗在这一使命轨道运行的通信卫星,开始为嫦娥四号任务做准备。 钟鸣看着月球背面那片仍与星辰网络断开的区域,提出商业科研中继的三步方案。 第一步,在获得频率与轨道许可后补充两颗高可靠地月中继节点,让月面近侧与极区设备不再只依赖单点窗口。 第二步,建设月球轨道存储转发层。节点不假装一直在线,数据可以在轨道上等待合适链路,像驿站一样一站一站送。 第三步,才是远期地月、地火与低轨互联网的统一寻址。统一的只是身份、回执和延迟容忍规则,不是让月球、火星都拥有地球宽带的实时速度。 冯启明把“实时”两个字从宣传草案里删掉:“距离不会因为公司上市就缩短。” 马飞又在火星旁边画了一条虚线。 他没有写完成年份,只写下三个要求:能断,能等,能确认。 往比邻星的通信延迟要用年计算。那时的网络不再像通话,更像一封永远不能丢、也不能重复执行的信。今天在月球背后多等五分钟,便是整个文明学习远距离生活的第一堂小课。 冯老师把这堂课搬进学校。 星辰给教室接入一个受限测试窗口,孩子们可以向地月先导星发送不超过二十个字的公开消息。内容先在地面完成审核,再进入低优先级队列,不占用驿站一号的任务带宽。 马飞的女儿写的是:“月亮上的兔子,你冷不冷?” 发送按钮按下,没有动画,也没有立刻弹出“成功”。屏幕只显示:地面已接收,等待可见窗口。 旁边一个男孩以为电脑卡了,连续按了五次。 页面出现五条发送请求,却共享同一个意图号。系统告诉他,地面听见了五次催促,只会把那句话交给卫星一次。 “要是五次都发呢?”男孩问。 “月亮就要听你说五遍。”钟鸣说。 “那不是更有礼貌吗?” “如果你让机器人向前走一步,五遍就是五步。前面有坑,它会被你的礼貌送下去。” 孩子们笑起来。两分钟后,可见窗口打开,消息从地面送往先导星。又过一会儿,屏幕状态变成节点已保存。它没有真的发给月兔,也没有假装月球上有人回复,只把同一段文字存住,再在返向窗口送回带时间戳的回执。 从按下按钮到回执出现,前后用了七分多钟。 “这么慢,还叫网吗?”有人问。 钟鸣没有用速度纪录反驳。他让孩子们看窗外送信的电动车:“它比你在教室喊话慢,却能把东西送到喊声到不了的地方。网不一定让所有人立刻听见,先要保证送对人、只做一次、最后知道送没送到。” 第二条消息轮到一名住在渔村的女孩。她没有问兔子,只写:“爸爸今晚出海,海上有风。” 文字经过地月先导星再回到教室时,她父亲的渔船还没有离港。女孩把回执纸条折好塞进书包,放学后跑到码头给父亲看。 许船主看不懂意图号,却看懂了发送和确认时间。他摸摸孩子的头:“绕月亮一圈,还是赶上吃晚饭。” 这场测试没有创造收入。申请消息的人太多,星辰只随机开放少量席位,并公开说明它不是月球信箱,更不是紧急通信。有人抱怨抽不到资格,小郭把投诉原样收进运营记录。未来地月网络若只让有关系或付得起高价的人发第一句话,再先进也只是昂贵会所。 那张问月兔冷不冷的回执被带回家,贴在冰箱门上。晚上苏雨桐开冰箱拿菜,纸被冷气吹得轻轻翘起。 “它当然冷。”她说。 女儿很认真:“那施工箱为什么没带被子?” 马飞从厨房探出头:“带了,工程上叫保温层。” “名字不好听。” “但真能保温。” 驿站一号在近月轨道运行了五天。 轨道测定逐渐收敛,着陆区天气不是问题,太阳高度、地形阴影和通信窗口却要精确交叠。它计划降落在月球近侧,仍会在绕月过程中周期性进入遮挡。每次重新出现,状态包都先报平安,再送完整数据。 最后一次降轨前,周遥把机器人动作权限全部锁住。 施工机器人不能在着陆器落稳前自行展开,哪怕姿态传感器一度显示接地。只有多源证据确认速度归零、支腿载荷建立、发动机关闭且环境稳定,货舱门才允许解锁。 “如果一只支腿落在石头上?” “先不出门。” “地面看见安全,能强行开吗?” “不能覆盖翻覆风险。可以更新任务,不能删掉物理事实。” 下降日凌晨,控制室关掉了所有无关屏幕。 驿站一号飞过月球背面,按任务包自动点火降轨。它应该在十四分钟后从东侧边缘重新出现,随后进入动力下降准备。 十四分钟到了。 先导星收到回执。 轨道正常。 姿态正常。 下降发动机待命。 钟鸣刚念完最后一项,回执后面又跟来一个新状态。 着陆区导航信标:未识别。 第290章 机器人先下车 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第291章 月背传回来的照片 月面没有修理店,星辰却给机器人带了一只工具箱。 问题是,工具箱还锁在驿站一号货舱里。 施工机器人停在三米外,右后轮扭矩持续升高。它可以倒车回去拿工具,也可能在途中把轮子彻底卡死。月面没有人能拿千斤顶把它支起来,更没有第二台车从旁边推一把。 周遥先让它什么都不做。 右后轮温度低于其他轮组十二摄氏度,电机电流高,转速却没有明显丢失。轨迹照片里,那道轮痕确实更深,可另外五道也深浅不一。真实月壤不像实验室铺平的模拟粉,几十厘米内便可能从紧实变松软。 “是地软,还是轮子硬?”陈小满问。 星核给出六种候选:月尘进入密封、轴承低温阻力、制动器未完全释放、扭矩传感器漂移、轮下软土和电缆拖曳。最高一项只有百分之三十一。 “终于没装懂。”齐放说。 机器人执行最小动作。右后轮单独前转两度,再后转两度,其他轮锁定。电流每次都在同一角度抬高,说明不只是软土。制动器位置回报正常,壳体温度却仍在下降。 地面备份轮组被送进低温真空舱。工作人员把温度降到月面实测值,果然复现出一段周期性阻力。拆开后发现,制动器回位弹簧在低温下仍有足够力量,一小段润滑层的黏度却比供应商数据高,松开后没有完全退离摩擦片。 供应商拿出的报告最低只做到零下八十摄氏度。 月面阴影处更冷。 “合同写的是通过月面温度范围。”采购人员说。 “报告写的是零下八十。”邱蕾把两张纸并排放好,“我们看见想要的那句话,没看见证据停在哪里。” 在轨无法换润滑层,但可以加热。 机器人把本应用于夜间保温的轮组加热器提前开启,右后轮温度缓慢上升。等待期间,它静静停在驿站一号旁,太阳翼投下又长又黑的影子。地球上的人隔着三十八万公里,连催促都显得多余。 温度升高八度后,右后轮再次转动。 电流峰值下降一半。 再升四度,周期性阻力消失。 机器人没有马上长途行驶。它只倒退二十厘米,前进二十厘米,再原地停住。新轮痕深度与其他轮接近,扭矩曲线回到允许范围。 工具箱终于卸下。 陈小满设计的机械臂取出一只反光镜和一组清洁刷,先让机器人对着镜子拍自己的轮组。镜中右后轮外侧没有破损,密封也没有月尘堆积。它无法完成真正拆修,却证明这次故障可以通过温控管理。 后续车辆把制动器材料和润滑方案全部更换,现有机器人则修改行驶窗口,尽量让轮组先接受阳光,温度不足时不进入连续作业。 它第一次真正施工,只铺了十二米电缆。 能源箱与通信箱原本相距不到十米,电缆多出的两米用于绕开一块尖石。机器人沿路线放下固定扣,第三只固定扣没有压紧。它退回半米,用机械臂重新按下。通信节点切换到月面能源箱供电时,电压曲线平平稳稳,没有出现戏剧性的闪光。 地球上的测试灯却亮了。 冯老师带学生来看那段十二米轨迹。孩子们嫌太短,问为什么不一天铺一百公里。 何敬拿出一卷真正的电缆,让他们拖着绕操场走。第一圈过树根,第二圈缠上足球门,第三圈有人踩住,队伍立刻停下。 “月球没树,也没足球门。”一个男孩不服。 “有石头、有坑,还有你们看不见的温差。”冯老师说。 马飞的女儿把那张地月回执贴到模型旁边,白兔下面多出十二厘米细线。她规定一厘米代表一米,谁都不许偷画长。 二〇一八年十二月八日凌晨两点二十三分,长征三号乙从西昌升空,成功发射嫦娥四号探测器。 星辰母港许多人又聚到食堂看电视。与鹊桥发射时不同,这回墙边多了一块月面屏幕。左侧是国家探月工程的公开消息,右侧是驿站一号和施工机器人的自有遥测,两条任务没有数据互通,也没有谁给谁当备份。 有人在网上把星辰近侧货运与嫦娥四号月背任务排成胜负榜,问谁才代表中国商业航天超过国家队。 马飞看见后,第一次主动要求公开回应。 “不在一个任务里,也没有这场比赛。” 驿站一号去的是月球近侧低风险区,带四只工程箱;嫦娥四号要在人类从未软着陆过的月球背面落下,并依靠鹊桥完成中继通信与科学探测。星辰从国家工程公开成果中学习,也按规则提供独立商业能力。把两者编成擂台,只会把真正的难处删掉。 这段回应没有口号,传播却比陈维明预料得更快。 一名参与驿站任务的年轻工程师在内部留言:小时候看嫦娥一号绕月,今天给月面机器人写过一段代码,不妨碍他仍在等嫦娥四号的照片。 另一名工人说得更直白:“自家开了饭馆,也能去别人家吃喜酒。” 二十六天的飞行不像电视连续剧每天都有新消息。嫦娥四号完成地月转移、近月制动和环月飞行时,星辰的施工机器人也经历了第一次月夜。 月夜接近十四个地球日。太阳能停止供电,温度大幅下降。驿站一号把通信节点降到最低工作模式,机器人回到能源箱附近,关闭大部分设备。地面每天只等少量状态,不拿频繁唤醒换存在感。 第一夜,轮组加热耗电高于预计。团队减少非关键传感器采样,保住电池和核心保温。有人建议让施工机器人在月夜中途醒一次,拍张“仍然存活”的照片,用于稳定市场信心。 周遥拒绝:“照片不能给电池充电。” 月昼重新到来,太阳翼先给电池慢慢回温。机器人没有按日历准点醒,而是等温度、电压与时钟三项满足。它发回第一包状态时,市场已经等了十六个小时。 右后轮正常。 工具箱正常。 通信节点正常。 那段十二米电缆也还在。 二〇一九年一月三日上午,星辰北京、海南和海外办公室的屏幕都切到公开直播。 十点十五分,嫦娥四号从距月面约十五公里处开始动力下降。七千五百牛变推力发动机工作,把相对月球约一点七公里每秒的速度逐步降下。六到八公里高度,探测器调整姿态;一百米附近悬停识别障碍,再自主选择相对平坦区域下降。 十点二十六分,嫦娥四号落在月球背面南极—艾特肯盆地内的冯·卡门撞击坑。 控制大厅里响起掌声。 马飞也站了起来。 他曾在另一段人生里看过这个消息。那时他只是屏幕外无数人中的一个,知道月背着陆伟大,却离任务很远。如今星辰的机器人已经站在月球另一面,他反而更清楚这六百九十秒有多重。 知道未来不会削弱震动。 它只会让他提前明白,多少阀门、轮子、长阴影和不肯猜测的控制器,才托得住一句“成功着陆”。 张建国在这时打来电话。 老人没有问星辰什么时候去月背,也没有比较谁先谁后。他只说家里的电视声音太小,落月那一刻没听清播报,还是老伴看见字幕先拍了他一下。 “老师,您看见了?” “眼睛还行。”张建国说,“你们食堂是不是又围了一群人?” 马飞看了看四周。有人站着,有人端着碗,几个刚下夜班的年轻人靠墙睡着,听见成功才睁开眼。 “都在。” “那就让他们好好看。别急着开会讨论能学什么。” 马飞笑了:“您以前不是最爱看完就复盘?” “复盘也得等人把一口热饭吃完。” 电话那边传来碗碟声。张建国的老伴催他去端菜,他应了两声,又压低声音:“月亮背后这一步,不是哪家公司一夜赶出来的。你比别人看得远,也别把前人的路看短。” 马飞握着电话,过了一会儿才说:“记着。” “还有,你那台月球车右轮好了,别只发状态灯。下回公开一张它真正干活的照片,让普通人看得懂十二米电缆是怎么铺的。” “您不是说先吃饭?” “我已经吃上了。” 张建国挂得很快。 马飞放下手机,发现自己的粥也凉了。苏雨桐把保温桶往他面前推,不说安慰,只给他换了一碗热的。 十一点四十分,嫦娥四号通过鹊桥传回世界第一张近距离拍摄的月背影像图。 照片里的月面没有城市,没有外星遗迹,也没有电影里的蓝色光晕。灰色地表向远方延伸,坑和石块在阳光下留下长影,巡视器即将驶出的方向安静得仿佛从未有人靠近。 食堂里有人拿手机拍电视,被反光照得什么也看不清,又赶紧把灯关掉。老板娘端着刚出锅的面站在门口,屏幕一亮,她忘了喊取餐号。 马飞的女儿盯了很久,小声说:“背面也有路。” “以前没人走过。”苏雨桐说。 “现在呢?” “现在有人把第一张地图送回来了。” 当天夜里,玉兔二号沿转移机构缓缓驶上月面,在月球背面留下人类探测器的第一道车辙。 星辰没有把照片直接喂给商业模型抢发识别结论。公开资料先经过来源与授权核验,科研团队按后续开放规则使用。齐放只把那种长阴影条件加入失效研究清单,要求任何训练数据都保留出处。 周遥把玉兔二号驶下坡道的公开画面放在施工机器人旁边。两台车不在同一片月面,也没有通信,却都面对着尘土、温差和一条不能靠想象铺平的路。 “我们那十二米,还算长吗?”有人问。 “很短。”周遥说,“继续铺。” 施工机器人收到新的任务包,向第二处导航标志点出发。它刚越过那块曾垫住坡道的石头,地面另一块屏幕突然弹出橙色警报。 那名年轻值班员刚端起的热面又被放回桌上,筷子沿着碗边滚了一圈,落在地砖上。此刻没人去捡。 八个轨道算力节点里,四个温度同时越过了降频线。 第292章 轨道机房发烧了 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第293章 星链 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第294章 老板娘把镜头转了过去 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第295章 这张门票不卖 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第296章 轮到你问了 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第297章 天亮以前别关门 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第298章 他们也开始抢人了 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第299章 工厂夜里亮着什么 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第300章 不等天黑的机房 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第301章 年会取消了 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第302章 没回家的那个人 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第303章 今晚别关门 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第304章 工厂彻夜不眠 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第305章 筷子接火箭 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第306章 这片海按我们的价 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第307章 复飞 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第308章 模拟舱 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第309章 把那场火留在地面 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第310章 从火焰里带人回家 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第311章 旧箭入苍穹 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第312章 在地火之间点灯 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第313章 火星车 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第314章 七千吨推力 “别只给我剪点火那一截。”罗诚说。 陈维明拿着转播安排来找他,听见这句,低头翻了翻。公开画面本来就准备放全程,他指给罗诚看,又问后半段那台外围发动机降推,要不要事先解释。 “写清楚,计划工况。别让人以为它坏了。” 两人把这件事说定,陈维明去找转播组,罗诚继续看时序。 三十一台m230已经装到十米级动力段上。单台额定海平面推力二百三十吨力,全部建立额定工况,合计七千一百三十吨力,接近七十兆牛。 同型发动机已经随十米箭飞过,一级也完成了复飞。今天这场长程联合试车,罗诚最关心的却不只是满推力。联合节流、推力重分配,还有末段中心三机的工作,要在一整套动力段上连续跑下来。 后面星舟、补给和星群都等着运输。罗诚不想每次轮到一个新任务,就再临时凑一套只够那次用的结果。 程卫把末段时序交来,两人对到中心组三机,站着说了好一会儿。到了真正返回的最后阶段,靠的就是这几台。地面固定着烧与天空里托住箭身不同,但该拿的数据,今天必须拿到。 罗诚去了一趟现场,回来时,试验区已经开始撤人。 他早年做澎湃三〇,一台小发动机就够全组忙很久。如今三十一只喷管排在面前,最外圈挡着里面,站在地上得换个位置才能看全。推力架后密布管线,低温供给、导流和喷淋设施一直延伸到远处,单靠最早那几个熟人,连这些位置都站不满。 罗诚走回大厅,坐下戴上耳机。 温蔓已经开了高频原始采样,廖长川也在对应工位,做好各自的准备。 马飞坐到后排,听见转播在介绍全流量分级燃烧。剖面图里,氧侧和燃料侧各自的预燃与泵系统被分开标出,最后汇向主燃烧室。主持人把复杂结构讲到观众能跟上,随即停下来,让出倒计时。 直播间里,澎湃三〇的旧照片已经被翻出来。 “三十吨那会儿我就看过报道。” “现在一台二百三十,还是三十一台一起烧?” “参数写着呢,别刷了,快点火了。” 水雾先铺开,喷管下方随即亮起火光。燃烧迅速建立,炽亮喷流撞向导流区,白汽被猛烈推开,镜头里短暂只剩下一片亮色。 轰鸣传进大厅,马飞胸口也跟着发闷。 罗诚面前的三十一组数据开始同时变化。 他按位置看过去,泵转速、压力、温度,都在各自建立工况。耳机里传来额定工况确认,他没有去看外部火海,接着比相邻发动机的响应。 他们以前吃过只看平均值的亏。温蔓把高频振动留在前面,几处相邻通道沿统一时间展开,整段原始记录持续保存。 六十秒,动力段按计划进入联合节流。 外部画面的火焰变了,推力随指令回落。罗诚看氧侧与燃料侧的变化是否接得上,又看各台响应的先后。三十一台发动机挂在同一套结构和供给里,不能只把单台合格的报告叠起来就算完。 他在一处时刻做了标记,继续等下一段。 到了一百秒,现场喷流还在持续。直播里最初那些惊叹渐渐变成计时,有人嫌解说太多,有人又问怎么推力降了,先前发出的任务说明被一次次贴回评论区。 陈维明在后排看着。他喜欢大场面,这个场面也确实大,可轰鸣持续久了,起初的兴奋反而变成一阵阵紧张。公开出去的每一分钟,前面都是真实的设备、耗料和工时,不能像宣传片那样剪到下一页。 推力重分配工况开始。 外围一台发动机按序降推,其他发动机接过相应负荷,几路响应随之改变。公开字幕显示计划工况,控制大厅则继续看整套动力的变化。 罗诚最先看降下去的那台,再看接上来的几台。他不只要总推力凑到数,还要这次调整不会给相邻部分带来没被看见的影响。 程卫一直留着整体响应。数据收拢到新的状态,他才在时序上标下位置,继续往后看。 陈维明看见其中一格变色,想起罗诚前面交代的话,没有站起来问。他回头确认公开字幕已经接上,便又转回来。 一百八十秒附近,外围机组按序退出。 满屏火海收窄,中心三台仍在工作。动力段没有挪动,外部画面也没了刚才那股铺满视野的气势,程卫却比前面坐得更近。 三机进入深度节流,再抬升,末段工况沿时序推进。 罗诚盯着这一组,觉得自己等了很久。早些年一台小发动机烧满几十秒,他们就高兴得睡不着;今天前面三十一台已经烧过很长一段,他仍得等最后这些看起来不那么壮观的变化。 关机口令下来,火焰收去,白汽还在导流区翻滚。 耳机里接着报状态。罗诚没有立刻摘,他把末段最后一段看完,又听见全程完成的确认,才向程卫转过身。 程卫已经起来了。 两人在桌边抱了一下,后排的掌声跟着响。罗诚被拍了好几下背,想摘耳机,线挂在椅背上,越急越解不开,只得让旁边的人帮一把。 马飞走过来,与他握住手。 “后面三台那段呢?” “拿到了。”罗诚说,“回头和几次返回的记录放一起看,这次是整段接下来的。” 媒体见面时,罗诚带着新旧两张照片。 记者先认出澎湃三〇,拿着旧图问他在不在里面。罗诚凑近看,指向最右边露出的一只手。 “这个是我,站后边了。” 台下有人笑。记者接着问,这么多台联合工作,和当年最大的不同是什么。 罗诚没先讲循环和推力,把新照片往旁边挪了挪,露出后面的设施。 “以前一只阀没来,大家等着。现在阀、泵、燃烧室、总装、试车、拆检,都有不同的人接。不是我比以前多拧几只螺丝就行,后面得有厂,有工装,还得有人接班做。” 他讲起今天的工况,话比平常多。记者几次想插问,见他还没说完,又把话筒留给他。 有人问星辰为何需要这样的运力,马飞把运输任务放出来:星群、星舟、推进剂、后面的机器人和货运设备。屏幕上没有只留一幅月球基地图,每一类都能找到眼前正在做的实物。 “这些要一批批运。”他说,“今天能飞一回还不够,后面的发射得接得上。” 陆启也在场,听说有人问客户在哪里,举了一下自己的载荷资料,说下一批还在谈价,希望能排早些。会后,几位商务代表果然没急着走,陈维明带他们去看接口安排。 当天的试车画面传遍航天论坛。十米箭与七十米级火箭的等比例图被放到一起,一百一十八米左右的轮廓、三十一台甲烷发动机和七千吨级推力,成为争论里的实物依据。 马斯克转发视频,谈大运力、复用和轨道补给。程海川继续压卫星制造与运输成本,魏北川则盯着客户眼前可用的小载荷窗口。陈维明收到了更多询问,先把载荷与时间接到团队,没有一律许诺给对方最早的位置。 罗诚回工位时,大厅已经空了不少。 他把当天的动力段照片发给最早参与澎湃三〇的几个人,随后去库里看了一眼那台旧发动机。小喷管在灯下不怎么显眼,外面还能认出当年拆过的痕迹。 手机接连响了几声,有人只回一个“好”,有人直接打来电话。罗诚走到门外接听,对方第一句就问后面的三机工况怎么样。 他靠着门,把试车从头讲起来,讲到那段节流时,又往库里看了一眼。 第315章 星舟一号 幕布落下,前排的摄影师先往后退了几步。 他们从入口进来时就看见了轮廓,仍没有估准它的宽度。五点二米的底部占去很大一片位置,白色舱体向上收拢,舷窗和舱门沿曲面排列。有人蹲下拍,有人把镜头拉远,直到将人和飞船一起收进去。 二〇二一年夏末,星舟一号第一次正式公开展示。 马飞站在样机旁,先把工程样机与旁边的首批飞行结构说明白。 舱内镜头接通,三张座椅出现在屏幕上。 秦岳站在门边,郭承宇先进去,把工具包固定在接口上,再从座椅间移到维护位。唐知夏拿着可更换单元跟上,到了转身的位置,秦岳退开一些,给她留出通道。 演示没有配音乐,收进麦克风的除了说话声,还有固定工具时的轻响。观众起初只想看里面大不大,等一个人的肩膀和膝盖都出现在画面里,才知道十四立方米的加压空间并没有剖面图上那么空。 “那个靠背能放下来吗?” 问题从现场传来,郭承宇收到提示,把靠背调到规定位置,自己坐进去。他刚放好腿,唐知夏又得从旁边过,他便把工具拿到手里,给她让路。 台下有人笑,郭承宇也笑了。这种挪来挪去,他在地面舱里早做熟了,真给外人看,才发现大家关心的和工程组以为的并不全一样。 马飞介绍返回舱约九点八吨、带服务舱约二十五吨时,画面仍留在舱内。三人深空构型,二十一天独立任务的设计量级,舱内演示还在继续。 秦岳沿需要工作和应急移动的位置走了一遍。有人问这是否就是未来第一批乘员,他把话筒接过去。 “我们是候选人。今天这几处操作,地面都做过。” “您想不想坐上去?” “想。” 记者随后问到舱内最不顺手的位置,秦岳让镜头转向工具包旁边。 这些问题,他有东西能讲。哪里原来够不到,哪里拿着东西就转不过身,都能在样机上重新做给人看。何敬坐在侧台听着,遇到演示里仍不顺的地方,就在图上记下来。 后面的任务动画把服务舱和独立转移模块接到一起。星舟负责乘员往返,月面下降与起飞另有着陆器;服务舱约二十七千牛的主发动机使用可储存双组元推进剂,主要奔月增速则交给外接模块。 一个记者问,需要分几次发射,才能完成一趟登月。 马飞让动画回到近地轨道,船、着陆器与推进剂分别出现。几次发射以后,在轨检查、补给、组合,再向月球出发。 “后面按这条路线做。”他说,“所以你们今天看的不光是这个舱。外面的运载和制造,也要能一批批接着走。” 对方继续问多次发射的接续,何敬把总装运输线的画面接上,说了实际怎么排。记者低头记下“一支运输队”,又问起后续合作接口。 陈维明在旁边听见,叫人把带载荷资料来的几位客人留下。以前他得到处劝人相信计划,如今对方会拿着自己的货来问,这样的问法,他更愿意接。 罗岚回答外形与返回的问题时,秦岳在舱门旁停了一会儿。钝头、偏置重心和升力再入的关系放在图上,他也看过,可此刻低头望向样机底部,再回头看三张椅子,仍觉得这些位置离自己很近。 他想坐进去,这个念头从来没有淡。演示了这么久,连观众都问出来了,他也懒得装得毫不在乎。 苏雨桐接过资金和经营那部分。 有人直接问,航天持续投入,会不会把星辰其他业务拖进去。她把现有收入和未来投入放到一起,说明哪些钱已经挣到,哪些还只是后续项目,再让杜明远接一段实际业务演示。 小商户订单被整理成清单,程序在测试环境里运行。杜明远改了一个条件,结果重新计算,台下几位技术代表很快开始问版本与接口。 苏雨桐讲完制造批产与复用的成本情景,没有把支付客户的资金写进航天来源。公众星核、企业服务和制造要继续经营,已有客户也不会因为星舟亮相,就自动放弃自己的需求。 “收入得持续做,投入才接得上。”她说,“今天有真实项目,可以接着谈。只看一张远期收益表,不够。” 她此前公布的常照计算地面结果,已经引来研究机构询问。这次几个合作入口放出来,会后留下的人更多,陈维明忙着分流,连采访都推迟了一会儿。 闭门会里,周启明带来提前准备的融资意向。 陈维明看了总额,心里着实动了一下。后面几年的投入都要钱,这笔若能进来,能腾出不少余地。他把材料翻到条件页,苏雨桐也正好看到同一处。 对方希望优先取得几项新业务的排他合作。 “这条范围太大。”苏雨桐将那页放回桌上,“工程项目可以谈,研究合作也可以。把几条业务一起锁住,不行。” 周启明并不意外,解释自己要承担前期投入,也希望以后有稳定的回报。 “你们把合作拆开,投资人能拿到的就不一样。钱也没这么快下来。” “那就分开谈。”她说,“不能因为现在需要设备,就把后面还没做完的业务全给出去。” 周启明转向马飞。 马飞看过那条,又把前面的项目范围翻回来。他想要钱,而且比谁都清楚后面的船会有多贵。可复飞刚把运载成本打开一点,研究和运输的合作也刚有人来问,若在这时把几个方向一起交成排他,往后的许多选择便要先找别人同意。 “按具体项目来。”他说,“这条我也不同意。” 陈维明没有再接那句总额。他把另一份合作材料拿过来,请周启明先看常照计算飞行样机需要的几项资源。 周启明没被几句话说服,也没有当场撤走。他问了设备和接口,苏雨桐从实际任务说起,两人把能继续谈的部分留了下来。那份排他条件没有签,新的合作仍须由团队对接。 马飞走出会议室,才发现大厅的人已经散了大半。 张建国通过远程连线看样机,没赶上前面最热闹的一段,反倒能让镜头慢慢转。老师看过舱门和座椅,问名字是不是还叫星舟,马飞说还是这个。 “你惦记好多年了。” “嗯。”马飞站在舱门旁,“想把它送得远些。” 老师没有说更多,只让他后面的飞行继续做好。马飞挂断,工作人员来收线,他在旁边等了一会儿,直到苏雨桐带女儿进来。 女孩已经绕样机看了一圈,选了舱门旁的位置,请母亲拍照。她对那些缩写兴趣不大,倒认真看了介绍页上的年份。 “二〇二七,我十九岁。” 马飞听她算完,忽然也在心里算了一遍。自己一直按试验和飞行节点排时间,到了女儿这里,就是中学、毕业和以后去哪里。 “到时候想来这儿看?”他问。 “还没想好,也许跟同学一起。”她翻着刚拍的照片,“你们先把它飞起来。” 苏雨桐笑了,把手机交给马飞,让他再拍一张。马飞往后退,女孩嫌角度歪,指挥他向右一点,直到人和舱门都能拍全。 第二天,星辰首页放出星舟照片,舱门敞着,三张座椅朝向镜头。媒体有的谈月球计划,有的分析制造与资金来源,公开页面上则写着:首艘无人飞行件正在总装。 女儿选中了父亲拍的第二张,另存进自己的相册,没有用发布页上那一张。 第316章 一箭百星 陆启这回带来的资料,比上一次厚。 他把载荷交接单收好,剩下的是本次部署安排和下一批载荷需求。陈维明在装载图旁找到他,没急着问下一单,先把负责对接的人叫过来。 陆启想再听一遍自己那组的释放条件。 一百二十八颗星装在同一个货舱里,各家的东西都不大,放到全景中,得靠编号才能迅速找到。星辰自己的通信星占了不少位置,多家客户的载荷也在其中,部署架把它们分得清清楚楚。 “就在这组。”对接人员指着图,“按前面确认的顺序。” 陆启听完,重新把纸叠好。他对这趟发射不陌生了,可自己的卫星和别人一同装进去,仍有种说不上来的感觉。以前单是送这一小批,就得花很多心思找窗口,现在它们只是这趟运输的一部分。 二〇二一年秋,星辰再次使用首枚捕获后复飞的一级。 直播才开始,观众就认出了编号。第一次捕获、第二次起飞与备用塔回收的照片被接连翻出来,有人还留着当时庆祝的评论,这次又原样发了一遍。 程卫在公开镜头前指出保留标记,说还是这一枚,没再花时间讲所有拆检工序。 陆启也看了那个近景。上回复飞成功后,他在会议室磨了很久,拿到有条件的后续安排,后来团队把载荷和时间逐步落实,才有了今天。 陈维明看他还带着下一批需求,心里很高兴,却知道眼前这趟没送完,对方不会只顾着谈生意。 母港外的观景区站满了人。海上的十米箭在灯光里很白,常用构型高约一百一十八米,这次起飞质量接近四千八百吨。直播给出货舱近景,又拉回全箭,三十一台m230所在的尾部,隔着距离已经看不清细节。 林秀兰把小店电视搬到门口,拿东西结账的人也停下来多看两眼。她叫前面的人往边上挪,别挡着后面。 工厂换完班,庞姐和吕春生站在休息区,认出货舱里这一批接头已经改过。学徒问哪颗是他们做的,吕春生说这一批都有,让他看整个部署架,别只盯一颗。 倒计时结束,光从箭底涌出。 白汽遮住发射台下半部,箭身缓慢抬起,随后越升越快。观景区的人喊着往上看,轰鸣传来,有人隔了半天才发现手机拍歪,赶紧把镜头重新举正。 陆启站在屏幕前,没找最靠前的位置。他要同时看载荷任务,旁边一响起提醒,就会转头去看另一页。 一级关机、分离,轨道级继续送货。 返航的一级很快成了直播焦点。它完成返程点火,进入动力下降,最后在塔前停稳,下层承力臂接住肩部硬点,上层稳定臂抑住余摆。 第三次任务,第三次回来。 载荷转移确认时,观摩区响起掌声。陆启也拍了几下,随即又看投送状态。陈维明站在他旁边,也在等投送的结果。 轨道级进入第一组部署条件,画面里,一颗卫星缓缓离开架体。 分开的速度看着很慢,后面是辽阔的地球弧面,云层铺出去,银白色星体在镜头里小得出奇。第二颗接着离开,与前一颗拉开距离,货舱中原来密密排着的位置渐渐空出来。 冯启明在网络席等待初次上报。 分离确认先到,星上消息要等对应的链路。他把两类状态分开放着,没有把放出去直接算成已经能用。旧节点沿原有轨道经过,新星按安排联系地面,先后开始自己的调试。 钟鸣那边传来第一条回执,冯启明接到对应位置,接着又有下一条。 公开页面只显示到哪一步,直播间的观众却忍不住自己数。镜头一换,有人漏掉两颗,有人重复数了一颗,评论争了一阵,最后都回去找官方状态。 陆启不参与。他那组还没开始,电话也没响,手里拿着部署资料,翻到对应的那一页就不再动。 轨道级按安排进入下一组释放条件。每颗卫星带着不大的相对速度离开,后续再靠自身机动逐步展开相位,不能在同一处把一百多颗一起推走。 动画把后面的关系画出来,观众总算不再只问为什么放得这么慢。 到了凌云微星这一组,陆启往前走了些。 他看见编号出现,也看见星体离开。分离那一栏确认后,他仍站着,等自己的团队。身后的同事正在通话,朝他示意稍等,他便把想问的话留住,又看了一遍画面。 这批星上去以后还有很多事。可在这一刻,他最想听的只有团队说已经收到属于自己的那份确认。 手机终于响起。 陆启转到旁边,听完状态,问了两个具体问题,才让团队接着做后面的工作。陈维明看他收起手机,没再客套,直接问:“到了?” “到了。” 两人握了握手。陆启回头看部署画面,后面还有别家的星,继续一组一组释放。 “下批的安排,给我几种。”他说,“你们一级怎么排,我都看看,别只拿一个总价。” 陈维明应下来,让人先把他带来的需求收好。两人没立刻去会议室,站在那里看完了后面的部署。 最后一组分离完成,投送席传来确认,观摩区这才又热闹起来。新星初次上报还在陆续接入,冯启明和轮值人员交接调试安排,自己仍等着后面该到的消息。 稍后问答,有记者拿百吨级设计运力问,为什么不把每一点质量都装满。何敬把载荷包络和部署架放出来,说明本次各家对环境与释放的要求。 陆启在旁边听着,忍不住接了一句:“我的东西放到约定的位置就行,不用为了多装几颗,把这趟的安排改了。” 话很实在,也正是许多小客户关心的。陈维明顺势把几类任务拿出来,有人原先只问专箭,算过拼单的价格和时间,又留下来继续谈。 这场发射的海外讨论,随后也转到客户和成本上。有人认为星辰只靠自有星座填运力,第三方载荷的释放画面很快被放出来;有人估算同一一级第三次飞行能摊薄多少投入,算出的数不同,询价邮件却确实多了。 当晚,程海川给陈维明发来一条消息。 瀚海想问某个载荷范围能不能留合作窗口。 陈维明看了好几遍,给马飞打电话。他们在网络市场还争着客户,对方这会儿来找运力,他觉得痛快,也有些犹豫。 “你说这单怎么接?” “先看载荷和时间,能做就接。”马飞说,“接口按我们的来。” “他那边的星,后面还和我们抢生意呢。” “他现在肯来问,就有他的需求。我们自己该做的照常做,运输这笔按运输谈。” 陈维明没再纠结,回拨过去,把载荷和窗口问清,随后叫人按同样接口往下对。 电话打完,陆启那份下一批需求还在桌上。他把两份分开,分别交到对应团队。今天的复飞,已经让客户带着不同的目的来敲同一扇门,后面的运力排得好不好,会比多发一张庆祝照片更影响生意。 工厂里,下一批卫星继续进线。吕春生叫回还在看视频的学徒,两人接着做没做完的工序。庞姐把交班表压好,关掉休息区的电视,往亮着灯的工位走。 马飞去了星舟总装厅。 首艘无人飞行件的外壳已经合拢。何敬在舱下等他,介绍下一段装配,马飞走近,看见里面三张座椅,要了一份编号和内舱照片。 何敬后来发来,他逐一存好。今天的一级和客户载荷都有了新记录,眼前这艘船也快要排上真正的飞行了。 第317章 六分钟 秦岳到通话隔间门口时,预约还剩六分钟。 唐知夏正和母亲说复查的事,听见他叫自己,转过头,示意稍等。 “泵要提前切换。”秦岳说。 她把通话声音调低:“我看过趋势,还没到必须换的时候。给我六分钟。” “地面刚给了建议,我想现在做。” 唐知夏没出来。母亲在那头问她是不是忙,她说等一下,又抬头看向秦岳。 “备用在,主泵也没越限。我通完就来。” 秦岳没有马上走开。 他知道她说的是事实,却放不下那条持续上升的振动趋势。封舱到了中段,人都有些疲惫,任务还在往里加,一件能提前做的维护,他不愿留到后面挤在一起。 郭承宇从旁边过来,看见两人僵在门口,先去做不侵入设备的确认,把实测状态和备用情况报给秦岳。 六分钟等得起。 秦岳又问了一处,郭承宇把结果给他看。他这才退开,去准备后面的工具。 唐知夏重新接通话,母亲还在等。她把刚才记到一半的复查安排补完,问清需要再带哪些材料,没因为有人在外面等,就把剩下的话随便应付过去。 这已经是他们的第二轮密闭试验。 二〇二一年冬,三个人带着上一回三十天的经验进舱,准备住满九十天。刚进去时谁都熟门熟路,秦岳安置任务资料,唐知夏接生活负载,郭承宇固定工具,连通道里什么东西碍事都知道。 可九十天比三十天长得多。 到了中段,最磨人的未必是某一次试验,而是维护、睡眠、外部联络和手头任务总有挤在一起的时候。谁都觉得自己正做的那件有理由先完成,理由也往往确实成立。 秦岳把需要的工具备齐,仍有点不快。他不是要唐知夏少和母亲说话,也知道那是约好的复查联络,但在当时,设备问题一进脑子,他就很难再去想别的。 通话结束,唐知夏按时出来,没有先和他争。 泵的切换与维护接着做。郭承宇把要取出的部分让到她手边,秦岳配合后续任务调整。活干起来,三人都熟悉各自的位置,比门口争执时顺畅。 等泵修好,唐知夏才把那份记录拿回来,放到桌上。 “你刚才看见建议,就直接来叫我。” 秦岳说:“趋势一直往上,我想早一点处理。” “我知道。可我不是没看见,通话前就看过了。” “万一这六分钟里变了呢?” “那就叫我,马上出来。我没说你不能叫。” 两人说着,声音都有些硬。郭承宇坐在旁边,没劝谁大度,等他们停下来,才把自己先做的那段确认放到中间。 “这段我能顶。以后先把这个叫给我,我看完报给你们。真要拆,或者状态变了,再一起上。” 秦岳读完,没有立刻说自己错了。他仍觉得提前准备没问题,只是这一次,他把“想早些做”当成了“必须现在做”,没有给唐知夏留出解释的余地。 唐知夏也没要求他以后遇到趋势都等。三个人把最迟何时叫人、谁能先做哪一段说清楚,接到后面的轮值里。 晚饭时,大家比平常话少,郭承宇热好饭,叫两人来吃,唐知夏还在补自己的记录。秦岳等她坐下,先把工具占着的那一小块桌面清了。 后来轮到秦岳与妻子通话,唐知夏接下了同类确认,郭承宇留着需要三人一起做的部分,没有在门口一趟趟叫他。秦岳出来后,照着两人的交接接上工作。 进舱前那场水下训练,他又想起过几次。 郭承宇对着一只扣,用力一拧,身体先转开,反而够不到原来的位置。秦岳叫他回到固定点,先稳住自己,再把工具放进辅助支架,第二次才拆下来。机械臂接走部件,郭承宇上岸第一件事就是找陈小满,要给那里留出人能吃力的位置。 水下不能替代所有失重工况,但人到底靠在哪儿、力往哪里走,做一遍便知道。 后半程,模拟任务延伸到地月航行,外部联络加入延迟。 一次设备温度异常,舱里正在联合操作,地面的建议还是继续。唐知夏看着局部变化,直接要求先减载。 秦岳这回没有追问她能不能再撑一阵。他先确认她看到的位置,随即拆开剩余任务,保留返航准备,让郭承宇接需要维护的部件。 他们在舱里先做完自己的处理,更完整的地面建议才传来。回看时,处理方向一致,发生顺序却不同。唐知夏的判断先起作用,秦岳把它接成任务取舍,郭承宇再把设备处理好。 郭承宇后来翻那段记录,发现三个人说的话比刚进舱时少,并不觉得哪里没交代清楚。谁能先接,哪里必须一起做,已经真的用过一次。 九十天结束,舱门打开。 秦岳出来时先回头看了一眼,郭承宇在后面催他让开点,自己也想看看外面。三个人在走廊站好,掌声才响起来。 郭承宇伸开胳膊,笑着说想找个宽敞地方待会儿。唐知夏抱着自己的杯子,先向团队示意结束,再去接外面递来的东西。庞姐站在人群里,郭承宇认出她,问机器人最近听不听话,她回一句比他刚进去时听话,几个人都乐了。 恢复观察之后,秦岳接受采访。记者问他训练这么久,最后如果是别人坐那张椅子,会不会不甘心。 “会。” 对方等着他补一句大局,秦岳却说:“我来就是想去。我当然得接着争。” 采访播出后,一个新报名的候选人来问,自己这时进来,会不会像在抢他们的位置。秦岳看完消息,心里确实不舒服了片刻。 那几个位置太具体,他伸手够过,住过九十天,提出的改动也装到了后面的船里。他不可能忽然变得无所谓。 过了一会儿,他还是把熟悉舱体的时间发给对方,叫人来。 郭承宇知道了,问他舍不舍得教。秦岳说不舍得,随后又把自己的训练表打开,接着排下一轮。 新人进池时,也遇到用力以后身体先转开的事。秦岳没在最早那一下就打断,等对方发现不对,再把固定位置指给他。郭承宇站在旁边看得直乐,笑完又去和教练说支撑点的改动。 唐知夏把后续负载安排送来,让他们看几处需要协同的位置。地面九十天给了很多经验,真正失重时的气流和液体行为,还得让无人船去经历。她把模型头部附近的采样单独标好,郭承宇看完,将对应维护位也改给她。 何敬后来带他们进总装厅。 首艘无人飞行件已完成大部分装配,郭承宇认出了自己要求过的抓取接口,叫秦岳看,唐知夏则在门边和负载人员核了最后几处位置。 秦岳看着即将固定的三具模型,想坐的心思又上来。他转身帮工作人员辨清自己熟悉的固定带。 再过不久,先去飞的就是这三具。 第318章 星舟升空 首艘无人星舟的舱内画面公开时,秦岳正坐在观察室里。 三具模型已经固定好。头部、胸部和约束位置布着传感器,模拟呼吸与发热的负载也接通了。舷窗透进来的光落在面罩上,座椅旁边,能认出他们用过的工具位置。 郭承宇原本想说中间那一具看着挺自在,转头见秦岳看得认真,便没说。他也认出了自己提出过的接口,等镜头转到那里,还往前凑了一些。 唐知夏调出负载页,放到三人都能看见的位置。 二〇二二年春,星舟一号准备第一次无人近地轨道飞行,计划三天。 今天不需要再用样机向人解释船有多大。它已经装到十米箭顶端,与逃逸系统连成清楚的轮廓,发射台周围的人和车都已撤走,只剩下公开镜头一直看着它。 陈维明在媒体区又被问到谁第一个上去,什么时候能上。他回答了几遍,对方仍想知道马飞本人敢不敢。 马飞接过话筒:“想上。今天先让里面那三位去。” 镜头切回模型,现场有人笑了。记者追问,从搜索公司走到飞船,这么多年是否一直相信会有今天。马飞一时没答,回头看了一眼箭。 “想过很多次。”他说,“真到今天,比想的时候紧张。” 他没有再留着接受下一轮采访。苏雨桐在门边等他,手里还拿着和林海、沈放核过的公众服务安排。直播用户不断涌入,已有业务也得继续运行,杜明远把多语言任务说明接到页面,刚才又有团队在问接口。 她办完自己的事,和马飞一起进大厅,说女儿已经约好同学看了。 “家里投影开好了?” “开了。她比你着急。” 马飞笑了一下,找到后排座位。前面的各席仍在工作,他坐下以后,才发现自己的手机也在不断收到祝贺,其中好几条写着“预祝”。 他没回,先把屏幕关掉。 点火时,箭底的光照亮了海面。 三十一台m230建立推力,巨大的箭身离开支座。最初上升看着慢,逃逸系统、飞船和轨道级从塔架旁逐段抬起,越过塔顶后,速度越来越快。 观景区的人群一起仰头。有人大喊,有人忙着找镜头,手机里只录下一片突然亮起的天空。轰鸣传来,叫喊声被盖了下去,尾焰已经拉成很长的一束。 秦岳的视线跟着公开轨迹走。他熟悉那三张椅子的约束位置,居然有些羡慕坐在里面的模型。这个念头荒唐,可看着那艘真船升起来,他又确实想去。 郭承宇说了声“上去了”,唐知夏应了一句,随即又看舱内负载。 最大动压段通过,一级继续工作。马飞听着报告,想起这些年做过的许多小试验。有的只有几个人围着,有的还得反复找工位,如今一艘叫星舟的船,正在眼前完成真实上升。 他在另一段人生里也守过这个名字。那里的事故没有因为他重来一回就变成一件轻松的旧事,可此刻,眼前的每一条结果都属于这支重新走来的团队。 一级关机、分离。 轨道级接力工作,一级返身回收。捕获塔的画面引起一阵欢呼,四臂接住一级,载荷转移确认后,播报很快又回到还在继续的投送任务。 今天大家等的主要结果仍在上面。 星舟与轨道级分离,开始独立工作。能源板展开,太阳光照过船体,镜头边缘出现蓝色地球和大气层的薄光。 轨道参数确认。 “星舟一号进入预定轨道。” 播报传进观察室,秦岳站了起来。郭承宇在旁边拍掌,拍到手心疼也没停,唐知夏笑着转过身,和后面的人说成了,随后又想起要看更新的负载。 控制大厅的人也站起来了。马飞起身,与前来握手的何敬碰到一起,何敬嘴里还在说刚才分离的位置,他听着,目光却一直往外部镜头上走。 地球在星舟旁边,很大,云层很清楚。 他高兴得一时找不到话,索性又和何敬握了一下。 媒体区里,陈维明第一次念通报有点快,读到名字又停了停,重新将入轨结果说完整。海外转播接进这张星舟与地球同框的画面,原先只肯听计划的人,也开始来问真实接口。 一封旧邮件被陈维明翻出来。对方几年前说有船再谈,新邮件已经在问技术对接。他把两封一起发给马飞,后面附了一个笑脸。 刘慈欣也转发了公开画面,谈普通生活与太空探索的联系。有人贴出早年的星辰搜索页,说当初在大学机房用它查过航天资料,没想到会看见同名公司的船飞上去。马斯克与几家航天企业的评论,则开始关注后续深空运力和补给。 这些消息很热闹,舱里的试验仍按安排做。 第一天,模拟生活负载持续运行。唐知夏从大体型模型头后发现局部变化,把采样和气流位置放到一起,留下后续风道需要改的部分。郭承宇看见一滴液体沿柜门移动,没有按地面图里的箭头往下落,才在自己的维护记录上划掉那个想当然的动作。 第二天,卫生模拟负载做到偏心输入时,泵电流上升,流量下降。 隔离完成,舱内空气仍稳定。机械臂打开柜门,传回的影像里,失重抱团与气泡共同卡在管路中。郭承宇认出位置,直接把图存了下来。 地面做过九十天,水和气到了失重里,还是走出了另一种样子。 任务组决定提前返回,把真实状态带回。第三天的一部分安排后移,现有热控、气流、约束与生活负载的结果先留下,故障支路保持隔离。 马飞同意提前返回,又问后面最缺什么试验。生命保障组说长时间微重力,他让团队把这部分接到后续飞行里,同时将下一轮要保留的实物状态说清楚。 他本来盼着首飞能顺顺当当做满,眼前的结果并不完全合意。可它已经飞上去,确实遇到了地面不容易看清的问题,带回这些,比多待一段时间拍图重要。 媒体拿卫生系统开起玩笑,图传得飞快。陈维明看了几条,随即把返回说明发出去,继续回答任务结果和回收安排。 苏雨桐来找马飞,给他看女儿新做的图片:去年样机旁的合照,与今天的轨道画面排在一起,下方写着“它真的上去了”。 马飞存好,说等回来,再给她一张。 返回准备接续完成,海上救援也已就位。秦岳、唐知夏和郭承宇重新坐到观察室,舱内那三具模型仍在,模拟负载继续工作。 减速点火完成,服务舱分离。 返回舱向大气层降去,轨迹一度持续更新,随后各项状态停在最后一次接收的位置。 舱内画面也消失了。 唐知夏把负载记录留在一旁,和另外两人一起看向外部跟踪。接下来这一段,只能等返回舱重新传回消息。 第319章 一百五十二秒后 九十秒,频谱里亮了一下。 通信席没能从那一点短暂的信号中确认身份,继续监听。观察室里的郭承宇不知道这段细节,他只看见舱内状态停在最后一格,画面仍没回来。 黑障预报是九十到一百二十秒。 唐知夏把外部雷达的消息读给两人听,轨迹还在,返回舱沿着预定方向继续飞。秦岳应了一声,叫郭承宇先把笔放下。郭承宇低头,才发现笔帽已经让自己捏开了。 大厅后排,马飞站着没动。 他知道这个阶段为什么收不到信号,也知道模型不需要地面一句句告诉它怎样返回。已经装进船里的程序会继续工作,独立跟踪也没有丢掉目标,可懂这些,没能让等待变得轻松。 另一段人生里,他等过一场没有回来的人和船。那时也有人说再等等,后来等到的是什么,他一直记着。 一百秒过去,他开始觉得屋里太热。 苏雨桐来到旁边,把不断亮起的手机倒扣在桌上。外面有人已经写“失联”,有人要求给一个肯定结果,陈维明只把独立跟踪和仍在等待通信的情况分开回应。 叶骁让继续监听。通信席留着原始接收,外部跟踪仍在更新。 一百二十秒过去,郭承宇看向秦岳。秦岳也看到了时间,目光随即转到外部跟踪,没有开口猜是哪一处出了问题。 直播间的评论慢了下来。先前开卫生系统玩笑的人少了,解释电离与通信遮蔽的人多了,也有人只是一遍遍发“加油”。林秀兰坐在店门口,眼睛离不开电视,顾客叫了两声,她才应。 第一个短包到达,校验没过。 马飞听见报告,一颗心提起来,又落不下去。他想问,话到了嘴边,知道通信席已经在继续做,便没问出口。 苏雨桐也听见了,转过头,与他对视了一下。两人谁也没说别担心。 一百五十二秒,稳定载波出现。 身份和任务号确认,紧接着第二个完整包进来。 “遥测恢复。” 前排有人喊了一声,指挥继续让报状态。姿态正常,舱压稳定,卫生故障支路保持隔离。黑障内两次姿态修正的记录随后传回,主控与安全控制对应得上。 船一直在往下走。 马飞坐了下来,椅子是苏雨桐刚推过来的。他觉得很累,这才意识到刚才自己一直在怕。屏幕恢复以后,那些知道的原理和做过的试验,才又变成能让他相信的东西。 “听见了。”他说。 苏雨桐伸手碰了碰他的胳膊,随即又望向返回画面。 海上,跟踪镜头已经接住了返回舱。 先导、减速,三顶主伞相继张开。第三顶稍晚,伞面充满气流后,返回舱的下降稳定下来。烧深颜色的底部迎着太阳,向下方海面接近。 许杰在回收保障位置报测量结果。他从前因纪律问题重新复训,后来做过很多并不热闹的测量。今天耳机里接连有人说话,他仍按自己的顺序,把坐标、时刻和实际状态报全。 镜头里的舱体落向水面,白沫掀起,一时看不清底部。随后浮囊撑开,舱门离开水线,天线状态重新接上。 无人艇带着稳定缆靠近,主艇沿既定路线接续。许船主根据当前浪向提了建议,艇上据此调整接近姿态。 许杰抬头看返回舱,听见接近位置确认,又把镜头转近。 舱门打开,三具模型还在座椅上。 观察室里,郭承宇猛地拍响桌子,喊了声“都回来了”。秦岳也站起来,先去认模型和座椅位置,唐知夏把舱内状态放大,脸上已经带着笑。 海训时他们挪过的身位、救援艇接近的角度,如今就在实际回收里。今天没有真人,秦岳看着舱门,却很容易想象将来有人从那里伸出手。 回收人员接手模型和舱内设备,动作仍按训练做。许杰把实物情况逐一传回,等这轮工作完成,才在安全位置拍下自己和返回舱的合影。 照片里,他笑得很亮,舱底黑得很厉害。 发回地面,大家除了转发飞船,也开始找照片里那几个实际把它接住的人。许杰把原图存好,准备回头给叔叔看,工作群的新安排来了,他又把手机收起。 完整回收确认进大厅时,掌声持续了很久。 何敬从前面过来,马飞起身与他握手。两个人都高兴,何敬一时还在讲刚才的开舱,马飞听着点头,后来两人又同时往主屏看。 返回舱已经稳在海面,被保障人员接手。前面的分离、入轨、减速和黑障,现在终于连成了一次有起点也有终点的飞行。 陈维明将回收通报最上面的状态改成“完成”,读给媒体听。记者问是否很快就能载人,他没有给新的年份,只说下一艘会用上今天带回的结果,随后把可公开的回收画面放出来。 问话很快转到实物能不能看,卫生支路怎样处理,后面还有什么试验。陈维明将问题分别交给相关团队,不再由自己一口气答完。 当夜,星辰首页并排放了总装厅、轨道地球和海上开舱三幅图。最早用过搜索的网友讲起大学机房,有开发者说自己用星核改过第一份程序,也有供应商认出舱上一小处部件。 苏雨桐让团队继续完善多语言资料,几个面向公众的问题也补进去。女儿则发来新排版的图,问能不能拿去做班里的分享,马飞回了能,把可公开的原图发给她。 他随后给老师打电话。张建国已经看过结果,先问实物什么时候到,又提醒他别只忙庆祝。马飞应着,心里还在高兴,直到挂电话,才想起晚饭没好好吃。 返回舱进厂后,郭承宇参加了对应观察。 在轨图像里卡在管中的团块,回到地面已经换了形状,气泡也不在原来的位置。只看眼前实物,未必能重新看懂天上的问题,生命保障组把两份证据一起对照,才把气液分布、管壁润湿和几何导流的共同作用理清。 后面不再只靠加大泵,长时间微重力验证也有了实际要看的位置。郭承宇将机械臂够不到的部分重新画开,找陈小满到实物旁比,希望把维护空间一起改出来。 罗岚一直留在舱底。 两处边缘热损伤,与黑障内两次姿态修正的方向对应。原来在地面担心过的热流移动,真正飞过以后留下了痕迹。她把照片和实物摆在一起,又拿来高速返回试验器的图。 马飞走过去,问她想怎么做。 “接近月球回来的速度,再烧一次。接缝、背板、固定都得带上,不能只飞一片材料。” “结构段需要多大,你和何敬对。运输我来接。” 罗岚拿着图去找何敬,马飞又看了一眼返回舱。外壳烧黑了,门口还有回收后留下的作业痕迹,已经和展厅里的样机完全不同。 他本来想先回去吃饭,听见两人在后面谈工装,还是走过去,把下一轮要占用的制造和运载安排一起说清楚。 第320章 十点九公里每秒 宋梅敲到新固定点旁边,停下了。 旁边的人以为她还要换个位置,她却把工具放下,叫罗岚过来听。复查后,那里确实有一处胶层局部偏厚,恰好挨着新的固定点。 这件不能飞,留下做地面对照。 罗岚看过,换另一件接续固化。程卫问明需要的时间,随后去调运输和后续工位。 二〇二二年下半年,星辰正在准备高速返回试验。首艘无人星舟已经回收,舱底的两处边缘热损伤也看清了,这一次要让试验器接近月地返回速度,再把接缝、背板与固定一同带回来。 罗岚在白板上写了十点九公里每秒,又把第一次近地返回约七点八公里每秒的数据放到旁边。 前一个速度对应的单位质量动能,接近后一个的两倍。真正要经历的热流和浸热,还与形状、姿态、轨迹有关,不能只看材料表面能耐多高的温度。 陈维明站在实物边听,原本想问能否直接多铺一层,等看见接缝、填料和背面固定,话便改成了这次到底带几种。 三种构型:基线接缝、调整后的填充、新的背板固定。 表面差别不大,背后的设计却各有变化。罗岚让装配人员把对应位置给他看,陈维明沿着走了一圈,第一次觉得宣传图里一片平整的黑色,其实有不少地方不能混着叫。 工人把试验器叫“锅底”,何敬听习惯了,也跟着这么叫。正式资料还用原名,到了车间,问锅底在哪个工位,比说一长串型号快。 程卫把工位和运输接顺后,追回了一部分固化等待占掉的时间。马飞看过安排,让下一枚飞行件的准备并行做,能提前的先提前,不必所有人都围着同一件等。 十一月十六日,阿耳忒弥斯一号升空。 sls block 1约九十八米高,起飞推力约三十九兆牛,四台液氢液氧主发动机与两枚大型固体助推器,把猎户座送向月球。真实发射画面传来,星辰的人也在看。 网上很快有人拿两枚火箭比,接着问星辰的箭既然更大,为什么还在等一处胶层固化。 陈维明把消息拿给马飞,觉得对方没看懂,却也承认这种问法传得快。 马飞看完,先问专用推进段的准备。热防护试验器这次不去月球,要沿高椭圆地球轨道飞行,用专用推进段建立接近月地返回的再入条件。运力有了,飞船怎么从更远处回来,仍得自己做。 他知道人家这一趟会受到很多关注,自己也想早一天把船送出去。可首飞带回来的实物就摆在厂里,不能因为外面换了一个比较对象,就跳过原来要做的试验。 周启明也来问能否把二〇二七的目标往前提。马飞没许新日期,直接和他谈哪些准备能并行:下一件结构、地面热试、接口、测量与运输工位。 “想把时间省出来,就投这些。”马飞说,“按具体设备和任务谈,你明天过来,我们把清单拿出来。” 马飞和何敬把实物与排期留出来,第二天给对方团队看。 正式发射前,罗岚和邱蕾做了一场短演示。 桌上放着完整件、热试后的件和剖开的样品。邱蕾把表层与内部区分开,说明材料烧蚀带走热,里面还要继续隔热。烧黑本身不能说明坏了,表面整齐也不能替背板温度下结论。 有人问不同材料热胀不一致怎么办,邱蕾拿两种小样比给他看,罗岚则将接缝和固定位置接上。 马飞来时,桌边已经围了不少人。他被叫去回答为什么值得为一个试验器单独安排真实飞行,便指了指这几件东西。 “地面能做的先做,到了真飞,还得看真实受热。接下来船要走得远,这一趟的数据和实物都得带回来。” 发射当天,公开镜头先给了试验器近景。烧蚀复合材料块沿曲面排开,远看几乎分不清那些接缝,角落标着本次速度目标。 有人换算成每小时,算完又问这次绕不绕月。主持人把轨迹图展开,路线始终围绕地球,靠轨道与推进安排复现接近月地返回的条件。 十米箭点火,试验器与推进组合升空。 一级完成回收后,任务继续进入高椭圆地球轨道,等待安排好的加速与返回时机。这一次,罗岚最关心的页面是内部测点。表面会烧成什么样,回收后还能看,热怎样到背板,得靠飞行时的记录接住。 独立测量确认加速后的真实速度,与返回轨迹对应。白板上写过许多遍的十点九,终于有了实际飞行依据。 试验器进入大气,热流开始建立。 各处背板的响应不同,罗岚和温蔓沿同一时间对着看。外部画面出现炽亮的光,随后进入黑障,舱上数据不再实时传回,地面跟踪仍接着报位置。 两百零七秒,完整短包出现。 温度、姿态和返回走廊重新更新。一块背板比预测热,另一种构型浸热更久,第三种有一只应变传感器丢了数据。罗岚标下缺失位置,先收好还能收到的部分,等实物回来。 减速装置展开,目标落进批准海区。 浮标消息传回,打捞船接近。试验器固定到甲板上时,盐水还沿边缘往下滴,表面烧深了颜色,承力面仍完整。 没有烧穿。 确认传到大厅,装配席的人先站起来,旁边跟着一片掌声。罗岚也笑了,和身后的人握手,随后又回到掉线传感器的位置。 她高兴得很直接。东西从这样的速度里回来了,还有真实结构能拆,前面那些地面争论终于有了另一份证据。几种构型该怎么选,她此刻还没有答案,也不急着给答案。 马飞把近地返回的旧曲线关掉,留下今天的实测,叫团队把两次差别整理出来。媒体的问题也从怎么还没奔月,转到本次返回条件与热防护结果,陈维明守着回收画面,接连回答了很久。 十二月十一日,猎户座完成二十五天多的无人任务,溅落太平洋。星辰从公开消息得知结果,向对方发出祝贺。 同一天,锅底运回翁田。 罗岚到场时,检查台上已经是一片深黑。有人看第三种构型的表面最整齐,问是不是可以先选它,她让等温度和结构状态一起看。 宋梅把侧灯移了个角度。 瓦块边缘露出一条细暗纹,经过固定点,延伸到相邻一块下方。灯摆正以后不明显,再偏过去,那条线仍在。 “这里。”宋梅说。 罗岚走近,先找对应温度。没有越限。 再看应变传感器,掉线的那只恰好在暗纹中央。 旁边的人不再讨论表面谁更整齐。宋梅叫下一班也过来看,侧光角度留下,取样前不去动那条缝。 马飞从另一侧过来,站在黄线外,看了好一会儿。 “往里延伸了?” “现在不能定,明天拆。”罗岚说。 他把原定展示安排交回项目组,问工装能否接上。何敬去对位置,罗岚留在台边,将暗纹和掉线测点标到同一张图上。 宋梅把灯固定好,让罗岚从刚才的角度再看一次。两块瓦下方,那条细线清清楚楚地连着。 第321章 隔热瓦之下 隔热瓦抬起来,背面露出了一条褐色的痕迹。 罗岚没让工人接着往下拆。她俯身看了看,将昨晚宋梅标的位置拿来比。暗纹从这块下面穿过去,到了相邻一块,受热的颜色仍然连着。 第三种构型表面最好看,里面却留了一条连续的热损伤。 陈维明站在外面,原本还惦记着什么时候展示实物。这一眼看完,他知道今天先别问了。 宋梅把掉线传感器的夹片找出来。陶瓷上有微裂,走线被局部变形拉脱,传感器本体没有烧坏。它停止送回数据的时候,正好也是这处背板继续变化的时候。 温蔓将最后收到的记录放大。单看温度,没越限;连上热流扫过的位置、应变变化与缺失时刻,问题才逐渐清楚。 填料填得紧,减少了部分表面热流侵入,却使进去的热更难散开。背板固定得太死,热胀时的变形又集中到同一处。试验器真实返回中的姿态变化,让热斑扫过接缝,几项作用碰在了一起。 罗岚听完各组的结果,自己又沿实物看了一遍。 她原来最看好第三种。外面整齐,地面几轮数据也不错,送上天之前,她还想过这一趟回来,后面的选型能省不少事。 现在得重做。 罗岚伸手去拿背板,手套的指腹蹭过褐色痕迹,留下一点深色粉末。她原本打算今天向总装交选型意见,昨晚已经把几张图排好,第一张正是表面完整的第三构型。 她关掉那份文件,让人把另外两种一起送过来。 “地面件也要?”装配工问。 “要。受过同一轮热试的也要。” 几件背板靠在样架上。罗岚沿接缝比,原来不起眼的基线件,在深层温度上反倒更好。有人见她把它摆回中间,问是不是先退回去。 她没有立刻答。这几个月一直在改,大家急着定型,她也一样。但要是图省事,等真正造出一艘,才发现同一片区域装不得、拆不出,想回头只会更难。 “先留下。”她说,“别按一整套选。” “别全扔。”她把三种构型的资料摊开,“基线这里的深层温度低,填充在这段也有效。固定方式留能用的,约束得改。” 有人想直接回到最早的结构,省得再折腾。罗岚没同意。她让人保留各自有效的部分,重新做组合样件。 马飞到场时,几个人已经在争固定点允许多大位移。 何敬把实物移到样架上,叫他们别只在图上画,先看这里怎样装、怎样拆。罗岚拿着背板站过去,很快发现原来准备留的操作位置不够,换了工具,人的手腕还是转不开。 马飞一直听到这时才插话,问新件能不能继续沿用原来的生产方式。罗岚将背板翻过去,给他看固定件的安装方向。加工难度没有陡增,难的是几项变化必须在同一件上成立,不能这次试填料,下次换背板,拿两份各自好看的结果拼起来。 “要连着做。”她说,“给我留同一套工装,做到把它拆开。” 马飞问了预计占用的时间,拿手机给制造负责人打过去。对方正准备接一批别的任务,他没有直接把人调走,而是与何敬一起把用得上的设备、能分开的工序排好。电话用了十几分钟,罗岚始终拿着那块背板等。 “这一套留给你。”马飞挂断后说,“有加工改动,你直接到现场找人。” 罗岚把背板放回去,心里松快了一些。她不怕再做一轮,怕的是这次刚发现问题,下一轮已经换了一套条件,最后谁也讲不清哪一项起作用。 新的样架搬来,原先那块有暗纹的飞行件留在旁边。后面的每次讨论,大家都能过去看一眼,不必凭记忆争论那个固定点究竟怎样压着。 郭承宇用手指了指要拆的位置,何敬顺着看进去,才发现图纸留出的那段空间并不好用。若按原顺序拆,工具会先碰到旁边的结构,光是让开就要多取下一块。 “不能把以后每次维护都变成拆半艘船。”何敬说。 他叫装配工停下,先把工具拿出来。罗岚也不再争那几毫米该留在哪边,几个人顺着真实的手位,把需要的进路重新画了一遍。 “这处让陈小满一起看。”何敬说。 陈小满下午来,没先拿复杂机构,把夹具的手位改了一处,又让郭承宇按维护姿势试。郭承宇戴着训练手套,做了两次,第三次才把那块东西顺利取出来。 “装的时候顺手,拆的时候不是这个角度。”他说。 罗岚把位置记下。新填料减薄,固定允许有限的受控位移,传感器走线也与背板变形分开,几项改动一起进入样件。 第一次装新样件,罗岚在台边守着。工具伸进去,压住,松开,再拉出来。郭承宇戴着厚手套,第二次就碰掉旁边的临时定位块。 “你平常是不是从这边扶一下?”他问装配工。 对方承认了,拇指顺着伸进去一顶,位置便正了。郭承宇叫陈小满拍下来。维护姿态下,那只手根本没有地方放,不能默认以后总有人替它顶住。 陈小满没有扩大整个开口。她量了工具运动范围,在夹具上换着力位置,再让郭承宇做。原来要拧着手腕找的角度,改成从侧面推到止挡,手套不再挤在结构边上。 罗岚也试了一遍。取下的背板比她想象中沉,端到胸前时,视线还被遮住一点。她让记录员把这一项留进维护试验,自己站回样架边。 第一轮热循环后,节点卡住了。 拆开,导槽里有高温产物侵入。有人主张再加一道密封,有人担心填得更严又回到原来的问题,台边很快又争起来。 陈小满把两种办法都放到简化件上。马飞来问进度,何敬给他看实际差别,要了一套能更快换装的工装。车间接过去,没等大件排完才做这只小夹具。 卡住的节点拆在白布上,高温产物很少,偏偏聚在本来要让开的位置。装配时能滑动,热起来以后,留给位移的地方便没了。 两组人拿着小样过来。增加密封的一组觉得再挡一层最直接,陈小满捏着另一只片簧,想缩短运动路径,别让活动件在细槽里走那么远。 “都做。”罗岚说,“先不用争整艘船,做这一个节点,按同样的温度和载荷来。” 工装排期撞上另一组任务。何敬问车间能不能先做一套换装快的小夹具,站在门边等加工图。马飞来时,桌上放不下了,几个人把图纸压在空箱盖上给他看。 马飞先保住下一轮试验的时间,再调制造工位。两组样件不必为了抢设备,分在不同条件下跑。 晚些时候,小夹具送到,加工人员没有走。他想看第一轮安装,要是还缺一道槽,可以带回去改。陈小满指着一处毛刺,借工具与他一起收拾。罗岚将温度和位移采样对齐,第一套才装上试验架。 第二轮,复杂密封方案没有留下。片簧配封闭接触面的组合较简单,位移也更可控。 第三轮加载,罗岚始终留着位移画面。温度上升,节点缓缓让开;卸载冷却后,它开始回移。最后那一点回得很慢,装配工已往前凑,宋梅叫他别碰,先等记录收完。 标记回到了基准附近。 罗岚将卡住那一轮放到旁边,这回没有停在半途,也没有冷下来后带着固定偏移。 “再来。”她说完才笑,“等这一轮凉透。” 后面几轮仍能回位。宋梅复核完,她才把结果发回组里。加工人员已经下班,在群里回了一串笑脸,又问新夹具还改不改。 罗岚回说先不改,下一轮接着用。她去摸那只冷下来的样件,手指停在先前卡死的位置。 屋里的人高兴了一阵,接着又围到样件旁。原先最像“稳妥”的一处固定,拆开以后改得最多,大家都想知道实际怎样动回来。 陈维明赶来时,郭承宇正拿着工具演示重装。他看完,问后面的安装工时增加多少。 何敬把制造与维护的人叫到一起算。单块多几分钟,整艘船便会多出不少时间,不能等造完一艘再发现修起来费劲。陈小满又改了工具顺序,样架边上少换了一次夹具。 盲测样件里又查出一处浅脱粘,宋梅带人补做检测。热防护组据此完善改型,才开始下一件飞行结构的装配。 盲测那天,宋梅把编号纸折好,交给另一名检测员。罗岚知道有件带缺陷,不知道是哪件,也不进检测间,留在外面看下一批的制造安排。 查出浅脱粘以后,宋梅带她看原始响应。信号不显眼,按原先那种扫法容易从边缘过去,新方法则让它在另一方向显出来。 罗岚在实物旁站了很久。她最想得到一个干脆的好结果,没想到结束前还要拆开这里。可这处缺陷在地面被找出,后面装船的人就少了一处不知道的东西。 工人开始取样,她主动腾出位置,给总装发去变更后的交付时刻。何敬接了电话,没问能不能先放过去,只与她核实影响哪批件。 那晚,陈维明把公开展示推迟的消息告诉马飞。马飞问过罗岚,决定仍给大家看部分实物,但只展示已经确定的构造与拆检过程,不先宣布选型。陈维明到样架前拍了几张照片,第三构型背面的褐痕也留在里面。 次日的小范围开放里,有人绕到样架后面问这条痕是怎么来的。罗岚拿起那只微裂的陶瓷夹片,将最后收到的数据与掉线位置放在一起。桌边人多起来,她说到固定点时,叫郭承宇把新夹具递来,直接做了一次装拆。 掌声从后排响起,装配工有些不好意思,指着新件说,这还得继续做。罗岚听见,笑着让他把另一边也演示完。 后续装配开始,陈小满又拿来一版便于双臂操作的夹具。周遥正在做的人形整机也需要用到这一类进路,旧式移动底座一遇到台阶,工具便够不到原来的位置。 她把工装尺寸抄回去,热防护这边继续装配。罗岚站在样架旁,亲手将一块取下,再装回。宋梅复核背面,签下检测记录。 第322章 太空液氧转运 第一艘液氧船与接收端接近时,公开画面里看不见任何流动。 两件金属飞行器缓缓合拢,对接锁住以后,仍只是静静连在一起。陈维明在媒体席等了一会儿,问旁边的人:“现在开始没有?” 对方指了指屏幕上的管路温度。 还在预冷。 接收端推进模块此前独立入轨,干重约八吨。主发动机、贮箱与测量设备都已到位,接下来两艘液氧船和后面一艘甲烷船分别送货,才有足够推进剂去做后续组合。 罗诚把外部镜头缩到一角,主要看管路和接收端。 液氧接近九十开尔文的低温量级,地面常温设备里理所当然的事情,到了这里会换一种样子。管子没冷透,液体刚进去便大量汽化;微重力中液体分布也不同,气体可能占在最想让液体通过的位置。 小推力先帮助液体形成可用的沉降状态,气相通道连通,转移管路再逐步预冷。 罗诚从地面低温台一路跟到今天。台上起霜的管子能让人隔着护栏看见寒气,到了天上,外面没有空气,镜头也拍不出平常所见的白雾。热藏在管壁里,液氧一碰上去,先变成气体。 陈维明盯着那几行缓慢变化的数,忍不住问还要多久。 “等这段冷下来。”罗诚说。 “我能这么跟直播说?” “能。别说加油枪已经打开了,后面还有接收贮箱。” 陈维明原想用汽车加油打比方,到这时才发现那个比方少了太多东西。他在纸上画两只箱,中间连一段管,叫转播组把已经做的部分与尚未开始的部分用颜色分开。直播里的飞行器还连着,图上却能看见准备正往前走。 一个摄影师问会不会拍到液体,媒体席几个人都笑了。陈维明自己刚才也想找那样的镜头,只好承认,今天最要紧的画面确实在屏幕里。 主屏上,接收端的温度逐段下降。转移开始前,罗诚让人将几组采样同时放出来,不再用单条曲线占满整块屏幕。 温度往下走,压力有过几次起伏。罗诚让控制按既定工况降低开度,等变化收住,再逐渐往上加。第一段真实液体进入接收端时,镜头仍然没什么动静,推进席的人却都坐近了。 温蔓沿不同测量看增量。 供给端少了多少,接收端多了多少,状态换算得出的量,再加上动力响应,几种证据不能简单当成同一个数。第一回差异最宽处达到百分之二点八,按最乐观的一路报“交付完成”,会让后面的任务无端多出一份余量。 温蔓先把一段变化异常的时间挑出来。供给端的状态换算、接收端的增量和稳定后的估量不在同一个点上,差距也没有随多转一会儿自然消失。 罗诚问她:“现在你敢拿哪一路去点下一次火?” “单拿一路都不够。” 她把三份结果压到同一时间,指出哪些可以互相支持,哪些还带着更大的不确定范围。有人想等转完再统一结算,温蔓摇头,手里的笔一直落在那条边界上。 这批液氧已经从另一艘船真正进来了,接收端状态也稳定,离成功只差一个好看的完成量。罗诚盯了一会儿,在任务页上暂停后续增量,让测量组先把保守结果给出。 马飞在后排听见暂停,走近问是不是要分离。 “先停。”罗诚说,“不是漏,也不是没转进去。量还没对清。” 马飞看了眼接收模块的后续安排。他原先为这批装载留了更紧的时间,再等,后面的动作要让开。但若把最多那一路当成实际库存,所有安排都会显得顺利,只有发动机真用起来才会知道少了什么。 “按你们能确认的量。”他说,“下一步的时间我来调。” 罗诚将关断序列交给飞行器,温蔓仍守着原始记录。主路流动收住,压力变化逐步稳定,这一批转移到此结束。 罗诚与任务组商量后,决定提前停止这批转移,先保留几路测量共同支持的装载量。 第一艘供给船关断、分离,推进模块留住实际收到的液氧。首批转移做成了,装了多少仍带着测量范围,后续还要用更稳定的状态继续收敛。 陈维明拿到公开结果,没有立刻出去。他原来想象过很热闹的一场“太空加油”,现场真正重要的东西却都藏在贮箱里。 他去问温蔓,哪个结果现在能对外讲。 温蔓把几路来源分开,让他看实际交付和仍有差异的部分。陈维明看完,要了一份普通观众能读明白的说明,转身去了媒体区。 网上有人问是不是没加满,也有人争论液体在太空会不会自己流过去。转播里给出预冷和沉降的简图,真正的飞行画面则一直留着,让人知道那两件看似不动的东西正在完成什么。 第一艘船退开后,接收模块单独留在轨道上。外部镜头里,接口保护机构合回去,地球云带从后面缓缓经过。罗诚终于站起来,肩膀一动,才觉出后背僵得厉害。 陈维明还没走,拿着准备公开的图来找他。图的右上角原本写着预计交付量,现在只留下实测范围和已完成动作。 “有人会说你这没加满。”陈维明说。 “没加满就没加满。” “我知道。我想问,下一艘是不是还按这张图播?” 罗诚看了看,说接收端已经有液体,初始工况变了,图可以留,时序别照搬。陈维明把这句记下,又叫团队保留两艘船各自的记录,免得后面剪到一起,连自己都说不清是哪一批。 去媒体区的路上,他听见几个人仍在讨论贮箱里究竟怎样流。过去星辰发射最容易传播的是一大团火,如今一根在太空接通的管路,也有一群人愿意一直看。他将这场转播往后延了一段,接上测量组能公开的解释。 第二艘液氧船后来接近,同一个接口又经历了一轮低温。 气相通道出现轻微压降,机械臂传回的近景里,保温罩边缘没有完全贴合。地面的同构件复现后,团队确认可以通过小幅锁紧调整恢复。 地面复现用的是相同的接口组件。常温锁得严密的边缘,冷下来后收缩不同,保温罩有一侧没跟上。工人照着飞行近景调整工装,罗诚就站在台边看他们做。 “再压一点?”有人拿着工具问。 “先别动。现在这位置拍下来。” 他把地面和飞行图并排。需要调整的是锁紧行程,不是让机械臂一味加力。若把外缘硬压进去,连接件可以暂时贴合,也可能把后续分离变得更难。 机械组试过允许的那一点调整,气相通道的变化才与飞行迹象对应。动作范围送到在轨系统,机械臂缓慢执行,保温罩边缘向里收回。随后几组压力数据接连稳定,推进席报出可以继续。 这一次,罗诚将调整前后的图都留下。他还要将实际收缩带回下一轮制造,不能让以后每一艘船都靠轨道上的机械臂补这一点。 动作做完,通道状态重新接上,第二批转移继续。 这一次,推进模块里的液体比第一批多,测量所处的工况也不同。罗诚没有直接照抄上次时间,让接收端稳定后,才继续往后判断。 主阀关闭,状态留存,接收模块保持已有装载。两艘液氧船分别完成交付。 一小段已知推力的机动随后执行。温蔓将质量变化与实际加速度对应,测量范围进一步收拢,罗诚看完,终于愿意往椅背上靠了。 已知推力的短机动开始,外部镜头里仍只是飞行器稍稍改了姿态。温蔓让人把无关窗口缩小,质量估计随实测加速度重新计算。 供给端少掉的量、接收端的状态和这次动力响应开始相互收拢。她来回查了两遍时刻,才把新范围发给罗诚。罗诚没有接着催第二个数字,等原始采样全部到齐,又叫测量席读回一次。 他前面设想过各种公开方式,真到这一步,只低头在纸上写了一个量,再与何敬手里的本轮质量表对上。 何敬看完,朝他伸了伸手。两个人隔着椅背握住,谁也没起身,邻座却已笑了起来。有人将原先搁着的咖啡递回来,罗诚喝一口,凉得皱眉,又继续把那一页看完。 “这个量,后面的任务能用了。” 何敬把结果接去看组合质量。未来深空转移模块计划装载约七十三吨液氧甲烷,与星舟构成百吨级组合,承担约三点二公里每秒的奔月增速。眼下的液氧已经实际转过去,甲烷那一份还在后面,哪一路都不能只用“设计上能装”来凑。 马飞来时,罗诚把第一份和后来的结果都给他看。 他没有嫌第一批提前停得不好看。推进剂终于能从另一艘船里接过来,往后的发射和组合便有了不同排法,原来必须一次带足的东西,现在可以分开准备。 马飞将组合安排交给何敬以后,又回去看了一遍分离画面。供给船退开,接收模块保持姿态,两个原来必须一起从地面起飞的部分,如今能在轨道上分批准备。 这会改变后面的发射排法。模块可以先送,推进剂另送,星舟不用为了等其中一批硬件,把制造与测试都压在同一天。 他把想法讲给陈维明,后者立刻拿出已有客户的货运需求。两人先标出哪些用得上统一接口、哪些还要另做适配。未来的运输量终于能建立在这一次交付上,而不只是效果图里的几艘船。 罗诚过来拿下一份安排,见他们还留着外部图,顺口说后面也会有看着不热闹的转移。陈维明笑了,说今天起初以为画面没动,差点叫导播切走,后来反倒看得最久。 陈维明也收到两家合作方的询问,问的都是接口和后续运输。他把需求交给团队,自己仍回来听实际装载。 何敬将这轮质量范围带进组合安排,原来一些只能按设计值排的动作,现在可以根据实际机动反推。接收模块留在近地轨道,下一批推进剂还要接着送。 晚上,罗诚给马飞发来新的地面复核结果。甲烷主阀和备用阀的两束线,绕回了同一只继电器。第二天的安排改了,先把这处独立性做实,再接下一艘船。 第323章 多出的十七公斤 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第324章 地球上空的组合 何敬把三艘飞行器的位置调出来,先找星舟。 推进模块留在近地轨道,前面两艘液氧船分别完成交付,甲烷船转移中主阀卡住,备用隔离以后,本轮能用的量已经重新算过。今天所有机动都按实际装载做,不再从设计上限往下扣。 另一侧是接口验证船,按安排等待。 何敬看过很多组合图,今天仍忍不住把外部画面放大。图上的几条线连起来容易,真正两件东西各自绕地球飞,要先把相对位置和速度收住,才能一小段一小段靠近。 叶骁把接近任务接到飞行器。星舟进入对应位置后,双方状态在大厅里陆续更新。 何敬在来之前,刚去过总装间。地面同构接口放在台架上,两个圆环分开,各有自己的安装基准。杜昊让人最后确认钩锁运动,他就站在侧面看,仿佛还能替天上那一套找出什么。 “这套昨天又跑了?”他问。 “跑过。”杜昊把记录递来,“按这轮热状态重放的。” 何敬翻了两页,又合上。他没想把已经做过的事情重新问一遍,只是今天几段真实受力拿到以前,心里总有一小块悬着。车间里的吊车、支架和人员,到了轨道上都没有。 此时外部画面里的接口越来越大,地球在后方转过去,两个金属圆环却还各自保持着细微运动。 杜昊将捕获状态留在前排,一只手按着耳机,等飞行器开始最后接近。何敬不再找他说话,坐下把自己的椅子拉近了一点。 远景里,两艘船像不太动。 近一些,才看出接口在缓缓接近。最后一段由本地程序继续,软捕获接触,缓冲结构受力,锁钩按序闭合。杜昊守着这部分,直到硬连接成立,才把结果报出来。 控制大厅响起掌声,何敬没跟着转身。他还要看组合真正动起来。 连接以后,电力、数据和热控按安排接通。星舟自身的生活负载继续,推进模块也维持自己的工作,哪些能交换、哪些各留在原系统,都已写在这轮任务里。 硬连接完成以后,飞行器还没急着动。最初那一点相对运动已由捕获机构吸收,结构锁住,接口载荷稳定下来,电力交换才按本轮额度接通。 星舟的模型继续模拟生活负载。前一轮甲烷没有装满,所以今天并不打算向月球飞,何敬仍要看同样的组合在真实工作时怎样受力。不能只证明两艘船能贴在一起,再拿一张静止照片替掉后面的运动。 他看着接口附近的影子。太阳光从舱体边缘划过去,一部分连接结构变暗,热状态也随姿态慢慢变化。地面模拟给过范围,现在每一处变化都要与真实飞行相对。 “可以开始。”杜昊报完,手没从耳机上拿开。 叶骁让本地程序接着执行。控制动作送上去,再经过短暂等待,外部图里的舱体终于出现连续的转动。 首次组合机动开始,外部画面中的两艘船缓缓转过一个角度。 何敬一直看着接口附近。组合受控以后,力从哪里进、两边怎样一起响应,比一句“已经对接”多出很多实际东西。 徐研把响应与预报接到同一时间,温蔓用本轮实装量对测量。推进席接着报状态,星舟和推进模块始终作为一个组合继续走。 星舟和推进模块带着各自的惯量,接口则把它们连成一体。机动刚开始时,何敬最注意的是先后关系:命令何时发,执行从何时建立,连接点的载荷怎样变化,两边的姿态又从哪里开始一致。 曲线没有完全照着仿真线走,却都处在预定范围。徐研将实测放大,指出一段响应略慢的地方,和叶骁核过时刻,再把下一段接续做完。 何敬问杜昊接口有没有残留变化。 “回到稳定范围了。” “后面那一段接着做。” 这句话说完,他才发现自己刚才一直将一只脚抵着椅子。隔着这么远,那点力一点用也没有,他把脚收回来,看组合按计划停止转动。 “这一下拿到了。”何敬说。 他没有提高声音,旁边的人却听出来他高兴。以前总装时,每一处都能走到跟前看;到了天上,他得靠这些真实动作确认那些接口没有只在图上成立。 接口验证船随后按安排参与测试。 测试分段进行,验证船依次完成接口连接、运行与分离。星舟留着自己那套返回能力,各飞行器也按任务保持各自资源,没有因为同属星辰,就把所有余量混成一份。 验证船接近的那一段,比最初两船组合还慢。已经形成的组合先保持状态,留出规定通道,测试分开进行。何敬手边的图没有把三艘船画成一团,而是按每个时刻留下实际位置。 一次连接完成、测试结束,对应飞行器先退开,下一段再接着进行。大厅里换过一轮班,外部图像从明亮的地球边缘转到黑暗背景,等再次见到云层时,何敬才意识到自己很久没看时间。 杜昊叫人接班,出去倒水,回来站在他后面看了一阵。两人在地面为接口位置争过不少回,现在那些有过分歧的地方变成了能量、载荷和实际运动。 “等分完再走。”何敬说。 杜昊笑了,说自己也这么想。 陈维明来找可公开画面,恰好赶上组合转动。 他站在后排看了一会儿,问何敬能不能把这一段单独留下。 “能。后面还有分开那段,一起给你。” “这个比动画强。” 何敬笑了。他没觉得这话外行,自己看过再多动画,今天这一个小转角,仍看得舍不得移开眼。 马飞来时,组合已经完成一部分运行。 他先看状态,再看外部相机。星舟、推进模块和验证船分别处在自己的位置,地球云层从下方经过,能看见的地方没有那么多变化,已完成的实际任务却在增加。 公众页面同时给出后续深空方案的参考量级。转移模块约八吨干重,计划装载约七十三吨液氧甲烷,配上星舟,组合约一百零六吨,承担约三点二公里每秒的奔月增速。 有人在直播里算推进剂,也有人只想知道,这个组合是不是下一步就向月球去。 本轮先完成近地验证,真正赴月使用另一轮完整准备。罗诚将甲烷主阀的后续调查接下去,独立备用这次已经给过证据,下一轮仍要把常规动作做好。 马飞问何敬,哪些实物与工位会影响后续整备。 何敬报了几处。能并行的已经并行,不能靠多熬一夜解决的,也直说。他不想拿一份模糊的“很快”让所有人继续等。 马飞让制造与运载按这些位置接资源,其他已签任务不能凭一场直播临时往后挤,需要调整的由团队给出实际排法。他自己去处理两处跨团队的时间安排,何敬继续留在大厅。 最后一段分离到来,刚才相连的结构慢慢退开。 钩锁释放后,飞行器沿计划建立距离。星舟保持姿态,推进模块重新按自身构型受控,验证船也完成自己的接续。各段相对运动确认以后,任务组才宣布本轮组合运行与分离完成。 何敬从头看过记录,把自己最关心的几处对清,站起来时,才发现腿有点僵。 陈维明拿到了前面说好的两段图,一段连着转,一段分开。他看完,让团队按实际状态做任务说明,自己留下来听后面的整备安排。 公开画面先放出组合机动,再接分离。有人在直播里开了倍速,又退回正常速度,盯着那个小转角看;一名做机械结构的网友把接口位置圈出来,留言说这比几艘船排成一列的效果图难得多。 “过去的推进段一次带着飞,现在真能送过去接上?” “别只看接上,后面自己分开也做完了。” 海外转播引用了星辰公开的质量量级,主持人起初将近地验证说成奔月准备完成,旁边的技术嘉宾翻过任务说明,改成这一轮先验证组合运行。画面里已经完成的东西足够让人多看几遍,用不着提前把下一次飞行也算进去。 陈维明从媒体区回来,手机上已多了几条客户消息。他将其中一条拿给马飞看,对方问一件现有研究仪器能否使用同类标准接口,重量和尺寸都给得很清楚。 马飞让团队先做接口评估,等真正赴月的结果再谈运输。他自己仍回到何敬身边,准备把下一批制造、测试与发射接到一起。 媒体接着问后续标准货箱、接口和运输,问法比以前具体。何敬挑了能公开的一部分回答,也终于有空拿起那杯已经凉透的水。 当晚,马飞和任务组把首次赴月准备重新排了一遍。 热防护改型、低温补给和组合验证都有了结果。赴月所需的飞行件正在制造,他们将后续试验、发射和人员安排落实到同一份日程上。 秦岳三人拿到配套模拟安排,开始对接新的任务段。郭承宇把一项维护排在休息前,唐知夏提醒他,这段还有一轮生活负载变化,两项要一起试。 几个人重新坐下改,秦岳在旁边看返回路径。 何敬走出大厅前,收到总装那边的照片。本轮组合的记录还留在主屏上,新的飞行件已经在另一个工位等着。 照片里,新飞行件还没有包上外层材料,支架旁边站着两名装配工。何敬将画面放大,认出自己前几天去过的那个位置。 这边刚完成连接和分离,那边接着装真正要去月球的东西。两轮任务的船号、接口和返航安排都不同,工人却已经用上这次近地验证留下的装配经验。 马飞收到照片,说第二天要带制造的人一起去,先看哪些工装必须继续留,哪些可以交回别的任务。何敬回了时间,又提醒他别让拍摄组先把外层封了,自己还想从里面看一次。 消息发完,何敬靠在椅子上,将组合转动的片段从头放到尾。直到杜昊叫他出门,他才收起那张新飞行件的照片。 他把照片转给马飞,约好第二天到现场看,随后收起任务资料,关掉自己那块屏幕。 第325章 向月球出发 发射前,女儿问马飞,能不能先拍张合影。 他外套还没穿好,站在门边看时间,说等这趟任务回来。女孩没闹,问他哪天回来,两人对了一下各自安排,最后约好飞行结束再定一个真能到家的晚上。 “别半夜叫我,我还要上学。”她说。 苏雨桐在旁边笑,让他把这句记住。 马飞出了门,手机又收到女儿发来的海报草稿。月球旁边留着一片空,等后面的公开照片。她对星舟的介绍文字越写越少,对画面位置却比以前讲究,他给她回了收到,保存下来。 张建国那边也在等。 七十五岁的人不再陪每次台架熬夜,这一趟却特意把电视留着。张师母问今晚要看到什么时候,老师说至少先看船离开地球,马飞打电话过去,听见这句,又有点不好意思。 “别守太晚,有结果我发您。” “你去忙,别在我这儿耽误。” 电话挂断,马飞走进大厅。 这次赴月使用的星舟和推进模块,与上一轮近地验证分开准备。 临出门前,马飞又看了一眼女儿的海报。她没把火箭画在正中,留给飞船与月球的地方更大,旁边已有几条自己查过的说明。 苏雨桐问他意见,他说等这次回来,会有更合适的照片。女儿将手机拿回去,删掉一行太长的介绍,告诉他图片公开以后直接发原图,不要把新闻页面截一遍。 马飞答应了,站到门口才发现外套还搭在椅背。苏雨桐替他拿来,提醒他到了以后先吃点东西。他说好,下楼时仍在看那张留下空位的草稿。 十米箭升空时,观景区照样热闹。一级返回塔架,欢呼过后,镜头重新留给更高处的飞船。 点火后的低沉轰鸣传到观景区,栏杆边的人一起仰头。巨箭离台,箭身沿白色水汽上升,越来越亮的尾焰把附近云层照出颜色。 有人原本想一直用手机追,举了一会儿,索性把手机放低,直接看天。对面孩子喊了一声,旁边成年人答得更响,等箭钻进高处,只剩镜头还能追,才开始低头找直播。 马飞没有到观景台。控制大厅里,运载火箭的状态与舱内模型的负载一起更新,他看着三张熟悉的座椅,想起此前在地面舱与他们说过的话。 秦岳就坐在另一间观察室。今天又不是真人飞,他不需要穿飞行服,身旁却将返回路径、逃逸与地面配套模拟准备得很全。马飞路过时看见他在翻同一页,没去问心情,拍拍门框便走了。 星舟入轨以后,奔月点火还在后面。观景区的人陆续散开,控制厅却继续换班,下一段组合与轨道准备并不会因为发射画面结束而省掉。 各飞行器完成发射、近地补给与组合,推进剂按实际装载量计入解算。陈维明在媒体区指着舱内三具模型,说明这一趟将全程模拟三个人的呼吸、发热和生活负载。有人问飞船何时能到月球附近,他将任务时间线调了出来。 大厅前方,罗诚和叶骁已经在看组合状态。 这套东西在近地连过,也分开过,今天却要完成一段远得多的加速。主发动机提供的冲量,得把约百吨级组合从近地轨道送到自由返回的路线上,目标增速约三点二公里每秒。 马飞坐到后排,眼前仍有一些不可思议。 他记得自己最早在旧电脑上查月球,那时一台服务器坏了,都能让整间屋子忙乱起来。后来做发动机,做小箭、中型箭、十米箭,每一步都有过足够让人停下来的理由。他也想过今天,却很少有哪次想象里,能把这么多人的具体工作都装进去。 何敬从旁边经过,给他指了一处外部画面。星舟和推进模块在地球上方连成完整组合,太阳光照过舱体,白色外表有些发亮。 “等这一次。”何敬说。 临近点火,张老师发来一条短消息,问组合状态是不是已经稳定。马飞把能公开的结果回过去,收到一个“好”字,便将手机放到一边。 前排已经很少有人起身。罗诚将待执行段调出来,叶骁报完当前状态,几处原先分散的窗口都对应到同一条时间上。何敬看接口,热控席看余量,星舟舱内的呼吸与生活模拟照常运行。 发动机一开,接下来的变化便要由飞行器自己完成。地面会收到推力与姿态,实际状态也会进入导航,却没有谁能在最后一瞬像改一条地面行程那样,将这艘百吨级组合随手拉回原位。 马飞往后靠着坐好。他原以为自己会忍不住问很多问题,真到这里,却只想让前排把这段做完。 奔月点火开始。 公开画面看不出地面发射那样的大火,姿态却发生了能看见的细微变化。组合主发动机持续工作,速度增量增长,轨迹图上原来靠着地球的一段弧线逐渐向外拉长。 罗诚看真实推力,温蔓看独立测量,叶骁把实际状态接进导航。几个人说话都短,前排的报告声断断续续传到后面。 陈维明在媒体区等通报。 他突然很想出去,隔着玻璃看一眼天。想完又知道,这会儿出去只能看见平常的天空,那艘船已经远到肉眼找不着,只能从这里等它把结果传回来。 点火持续着,真实速度增量一段段增加。轨迹图从紧贴地球的一小圈伸出去,最外端还在变化,飞行器的外部图像却很平稳。 主持人让观众看右侧那条逐渐拉长的线。弹幕里有人计算还有多久,有人提醒别把近地的轨迹与自由返回混成一回事。更多的人没法看懂每一项,只是在任务状态更新时跟着问,现在到哪一步了。 罗诚报过一次推力,声音与平常试验没有太大区别。马飞却从他身上看见绷着的劲:多年前的小发动机台架、后来的三机、三十一机,今天都接到了这一段飞行上。 何敬将手放在桌边,眼睛跟着接口响应走。组合点火带来的持续受力,与之前近地那一个转角不同。每一段数据都在回答同一个问题,这套连起来的东西能否按预定路线一起加速。 温蔓把独立测量送入解算,叶骁接过实际状态。接近关断点时,前排的报告更密,后排却静了下来。连刚才还在小声讨论的媒体人员都停住了。 发动机关断。 组合状态接续,实际增速与目标路径核对。前排仍在算,直播里的留言已经多起来,有人问到了没有,有人解释还要继续飞,也有人只写了一句“真往月球去了”。 确认传来,自由返回路径成立。 马飞站了起来,何敬也转过身。两人握住手,周围的掌声越来越响。他听见有人叫自己,答了一声,又往主屏看。 星舟已经离开近地的那一圈。 外部相机重新找到地球。完整的弧面已经和发射时不同,云系缓缓后退,飞船舱体在前景里只占一角。 公开页面把这张图放大,直播间短短停了一下,随后留言成片涌上来。 “以前看它接火箭,今天看它去月球。” “我在上班,老板也把电视打开了。” “一点开就是地球,这次真走远了。” 有人翻出星辰最早的小箭视频,将那个细瘦的箭体与今天的组合放在一张图里。一位做航天报道的海外主持人读完任务通报,重新介绍这家公司走过的运载路线,话说到一半,导播又切回了实时飞行图。 陈维明站在媒体区门边,听到有人喊他的名字,先将新消息读完,才转身接受采访。他这次不用拿动画证明船将来会去哪里,屏幕上那一段持续变化的距离已经摆在所有人面前。 他讲完任务状态,又被问到何时能带人。陈维明报出已有路线与仍需完成的验证,话题最后还是回到今天这趟船。记者让他与背景合影,他站定以后,自己也回头看了一眼地球。 秦岳三人在另一间观察室里,跟着本轮任务做配套模拟。郭承宇抬手和秦岳碰了一下,唐知夏笑着让他们先别挡数据,三个人很快又回到各自面前。 真正坐进去的机会还在后面,可眼前那几具模型和座椅,他们熟悉得不能再熟悉。那艘船会经过月球,随后返回,地面交给它的任务也会经历长时间没人能直接伸手的阶段。 海外直播接到这条消息,星舟与地球同框的画面被反复使用。评论里有早年星辰搜索的用户,也有刚认识它的航天迷。几家机构来问仪器与标准货箱,陈维明让团队按实际任务收需求,自己把通报读完。 张建国家里的电视仍开着。张师母给他拿来水,见他手机一直放在手边,问是不是还在等马飞。 “等他有空。”老师说。 她叫他先去休息,他答应一声,又将公开轨迹放大。屏幕里的飞船看不出多大,任务名称却已经从近地飞行换成了赴月。他把这张图存下,给马飞发了一条不必急着回电话的消息。 大厅里的马飞换下一个班,才看见那条消息。他站在走廊上,先将最新状态发过去,随即拨通电话。前面有些话适合在通报里说,有些喜悦,他还是想亲口告诉这个教过自己的人。 马飞换班出来,才有空给老师回电话。 张建国问船走得怎么样,他照实际结果说完。 “轨迹已经出去了?”老师问。 “出去了,自由返回那条路成立。”马飞答。 他说得很慢,像要将每个字都放稳。电话那头有人把电视声调低,老师又问了一次剩余任务,他一项项说完,才发觉自己在走廊里站了许久。有人从身旁经过,见他在打电话,笑着比了个成功的手势,他也抬手回应。老师在那头停了一会儿,笑了,说知道了,这回可以先休息。 马飞站在走廊,听见张师母问是不是终于能睡。老师回答还要把最后一条看完,他忍不住也笑起来。 挂断后,他把公开轨迹发给家里。女儿说海报先留着,等月球附近有合适的图,再来选。 他答应下来,回到大厅。前排的任务组已经换过一轮,主屏上地球越来越小,飞船状态仍在逐项传回。 第326章 月背的那段路 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第327章 十七点三公里 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第328章 行者上工 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第329章 到别人的车间去 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第330章 在月轨等八天 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第331章 四条腿 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第332章 先把地面做好 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第333章 磨花的镜片 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第334章 第一次下降 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第335章 落在驿站以北 郭承宇醒得比闹钟早。 他先找周遥发来的最后一版路线,坐在休息区看完,才去洗脸。前一天没落下去,外面的讨论还在继续,他却没再点开那些截图。新的观测已经解释首选区的问题,今天有一套真正换过的计划。 秦岳在门口等着,两人一起进大厅。有人递来热饮,郭承宇问是哪一杯,唐知夏在后面说写了名字,让他自己看。 月轨画面比昨天更亮,北侧备用区的轮廓已经能认出来。郭承宇找到自己昨晚反复量过的那一段坡,坐下以后才发觉,昨晚那杯凉咖啡还留在桌角,杯盖已经扣回去。 第二个窗口,四台下降发动机点火。 月轨画面开始改变,灰白色的地面不再平缓掠过视野。速度不断降低,坑缘和长影逐渐放大,预定区域从远处的一小片亮色,变成画面下方能分出高低的坡地。 郭承宇坐得很直。他醒来又看过一遍北侧小车路线,现在那条路的终点就在飞船前方。 “下降正常。” “高度十一点六公里。” 主屏旁边还留着驿站一号的画面。既有机器人已经退到规定位置,能源阵列安静地展开,地面上拉长的影子没有变化。 两幅图里,距离和速度差得太远。郭承宇看了一会儿,忍不住想象从那台小车上抬头,能在什么时候看见飞船。 四台发动机持续工作,飞行器逐步压低沿轨速度,视野向下方转去。控制厅里的报告很密,真正的月面却安静,没有一丝声音跨过距离传回来。 马飞看见主屏里地面扩大,心里那股催它快一点的冲动又冒出来。他已经等过火箭一级捕获、等过星舟入轨和月地返回,到了今天仍没学会完全平静。 这回飞船不能只从月球旁边绕过去。它要停住,把整艘舱体放到一块不随人愿望变平的地上,之后还要自己起来。 何敬站在接口与结构席后面,眼前是四条腿各自的状态。他还认得地面旧件的样子,蜂窝压扁以后那道斜面,曾让他们在厂房里停了很久。现在放大地图,地面也不再是最初那块理想平地。 北侧候选区持续更新,新的局部测量进来,原排序开始改变。 下降到两公里附近,候选落区重新排序。 南侧的浅坡满足支撑要求,却有一段地形可能把羽流带起的颗粒引向旧能源阵列。北边石块较少的一片升到首位,位置仍在批准椭圆内。 着陆器开始横向调整。 直播轨迹跟着挪动,评论里突然刷出一排问号。解说还没说完自主选点,已经有人贴出任务图,在北侧画了个圈。 “别急,这边本来就是备用。” “看见它拐过去了!” 陈维明在直播间里,耳机一边听飞控,一边听导播。他没有跟着说“已经落稳”,现在才刚到一千米。 末段相机依次打开。地面出现细石和浅痕,一只镜头下方慢慢泛白,飞船降低它的使用权重,另外方位的镜头继续工作。高度与速度仍由多种测量交叉确定。 五百米以下,郭承宇已经不大听得见旁边的动静。 他在地面模拟过许多回,也在密闭舱里住过很久。真到这时,仍然觉得太慢,恨不得把那几十秒一起推过去。 月面纹理越清楚,郭承宇反倒越难把整片区域一次看全。镜头一边有石块,另一边是细小起伏,人习惯先盯住最显眼的东西,飞船却要把四只脚、横向速度和资源都放进同一次选择。 它向北调整时,地面没有人喊再往左一点。观测已经滞后于真实动作,最接近那片地面的是飞船自己的测量。 周遥将旧能源阵列的状态留在旁边,确认地面机器人已经退到规定位置。她盼着着陆器下来,也不愿让这一趟落地把原来好不容易工作的东西吹坏。 末段短时相机打开,细尘逐渐进入画面。清晰区域仍支持当前选点,激光与雷达提供各自的测量,飞船继续往下。 前排开始报更短的高度。郭承宇听到声音,却一时没法将数字与屏幕上的尺度完全对上,只能看舱底投影一点点接近地面。 八十米。落脚投影旁边出现一块石片,飞船再移开几米。 二十米。灰尘贴着地面向外扫,画面里细密的纹理很快淡下去。 五米。 两米。 图像停在扬起的灰里,接地数据还没有回来。 郭承宇听见后面有人吸了口气。他自己也屏住了,直到第一组状态出现:一号腿有载,另外三条腿随后建立支撑,四台发动机关闭。 “垂直速度归零。” “四腿支撑稳定。” “倾角二点一度。” 何敬等了下一组数据。角度没再增加,底框应变落在允许范围,供电和通信继续维持。 他向飞行负责人报出结果。 “确认着陆。” 郭承宇猛地站起来,椅背撞到身后。大厅另一头有人喊了声“到了”,随即掌声起了一片。他转过身找周遥,发现周遥已经被身边的工程师抱住,半边耳机都歪了。 马飞在后排站着,眼睛有些热。他和何敬握了握手,听见对方说了一句“脚没白做”,两个人都笑了。 确认报出后,后排有人隔着座椅伸手,前面的人转过来,两双手握得很紧。罗诚摘掉一侧耳机,还能听见本轮推进的最后报告,另一侧已经全是欢呼。 马飞原本准备问下一项,见何敬还在笑,自己也笑起来。他想说的很多,到了嘴边却只叫了一声老何。 何敬指着四条腿的状态,说都站住了。 旁边一名装配工一直看直播,消息确认后给车间发了语音,嗓子很响。车间那边同样在喊,有人将旧脚垫的照片翻出来,与月面那只大脚并排放着。 郭承宇坐回去,才看见秦岳向自己比了个手势。他回了一个,随后指向地形车,下一段终于轮到他们熟悉的机器靠近。 直播里的灰渐渐散去。 镜头下缘是一截支腿,圆大的脚垫压在月壤上,远处的地平线起伏很低。飞船外壁投下深色阴影,阴影边缘有几道被气流扫出的浅痕。 这是星辰自己的着陆器第一次把这一整套船体送到月面。它还要起飞,舱内坐着的仍是模型,但那四只脚此时确实站在三十八万公里外的地上。 观看人数还在往上走。有人把屏幕贴到办公室电视上,午休没结束,人已经围了一圈;海外直播里,一位原先解说卫星发射的工程师连着说了两遍着陆确认,才想起把声音切回现场。 “这腿真大。” “去年笑它像鸭掌的出来。” “我笑的。今天认了,鸭掌好。” 公开直播没有立刻切走。镜头里那一截支腿始终不动,月壤上的影子很黑,舱体已经稳稳留在那里。 办公室电视前的人越来越多,原本催着切回发射回放的观众也不催了。几名长期讲航天的主播对照任务图,一遍遍找北侧选点,讲到四条腿接地时,声音仍带着刚才喊过的哑。 “这地方去年还只是几辆小车。” “把旧图找出来,真能对上。” 一张驿站早期照片被转出,旁边贴今天的着陆器。机器没有变成一座城市,月面也仍荒凉,可图里的尺度与能送来的东西,已和最初不同。 陈维明收到媒体采访安排,叫导播先留住现有画面,让观众看地形车怎样接近。他自己盯着那一点缓慢移动的光,等它从地面真正拍到完整舱体。 网络上的截图飞得到处都是,真正的月面车还在慢慢走。 它从停放区出发,沿昨晚重新核算的路线绕过坡地向北移动。郭承宇换到月面操作席,周遥在旁边和他核对观察点。车上相机的视野随着地形起伏,先看见一块亮边。舱壁的一部分从坡后露出来,熟悉的轮廓让郭承宇想起厂房那台全尺寸模型,周围却再也找不到围着它工作的装配人员。 驿站的旧设备一下有了尺寸参照。 几年前,机器人在这里搬一只小箱子都要反复调整;如今,镜头前立着能容纳未来乘员的舱体,底下还留有卸货和维修的空间。 车绕过一段低矮起伏,完整着陆器终于从月面视角出现。上方舱体亮,下面支腿与阴影连在一起,远处再没有厂房的墙,也没有悬在顶上的吊索。 郭承宇从原图里找四号脚垫,放大以后,看见周边被压出的细痕。地面试验那只最先陷下去的腿曾让他看得心烦,今天同样的位置稳稳承着载荷,起飞级也没有像旧模型那样歪在支撑上。 他叫周遥看这个角度。周遥先确认小车位置,随后将图存入当前观察记录。她身后有人还在讲刚才的着陆,声音很兴奋,她却又看了那只脚垫一遍,才去接下一段巡视。 郭承宇问这张能否公开,得到答复,便发给媒体席。陈维明很快回了一句收到了,接着把它换到直播主画面。 郭承宇把这个机位停住,等图像传完。他很想说一句自己也能去看看,又觉得此时说出来像在讨座位,便只把观察数据存了下来。 小车没有穿过着陆器下方。它从允许的一侧绕行,检查脚垫附近地面,逐条支腿拍照,核对地面冲刷与预先估计的差别。 南侧能源阵列的电流没有出现突变,巡视镜头也未发现明显颗粒撞击损伤。马飞看完这组结果,才让宣传组同时放出两幅图:刚落下的着陆器,以及仍正常工作的旧驿站。 月面车按新路线开展巡视,任务进入驻留段。模型的人体负载照常运行,舱内温度慢慢稳定。 庆祝还没结束,何敬被结构席叫了回去。 第三支撑的位置读数在接地后偏离了锁定位。它没有中断,也没有乱跳,而是逐渐停在四十八点七附近。 上升级此时仍承着载荷,四组支撑都没收到释放命令。 郭承宇还在给地形车留下一段观察安排,听说第三支撑读数不对,先将刚才取得的外部图发过去。他没有退出操作席,等何敬确定要看哪个位置。 何敬回看接地前后的曲线,再看窗外已经开始变暗的天。他把尚未喝完的水放在桌边,叫人先把地面备份支撑件找出来。 第336章 白色见证标志 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第337章 从月面起飞 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第338章 下一批行者 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第339章 三次发射 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第340章 回来的空座椅 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第341章 座椅后面的风 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们 第342章 三个人的名字 本章节内容正在手打中,当您看到这段文字,请您稍后刷新页面看是否已经更新,如果长久未更新,请通过下面反馈联系我们! 特殊时刻,请大家多多收藏支持:(.ilwxs)太空争霸之我来自未来 乐文小说 如有问题请点击此处反馈给我们