“好,那我们一会到二主楼楼下接你。@测不准机器人。”COS回复道。
冬天的天黑得越来越早,刚过六点,夜色已经笼罩了江大。
余弦和史作舟在二主楼的大厅外接到了温晓。
米其林轮胎人今天换了个白色的皮肤,脖子上围着一条红色的针织围巾,看着比平时大了一整圈。
大半张脸都缩在围巾里,只露出一双清澈的眼睛,看着外面的雨幕发呆。
天气越来越冷,但还是没有下雪,人们似乎已经对这种奇怪的天气习以为常,又或是也没什么办法。
周围的学生抄着手跺着脚,哈出的热气在路灯下变成一团团白雾。
“走吧。”余弦走上前,打了声招呼。
温晓回过神,点了点头,撑开那把米白色的小伞,跟上了两人的脚步。
三人沿着校园里积水较浅的小路,往西门的方向走,冷风顺着领口和袖管往里钻,冻得人直缩脖子。
快走到外门的时候,余弦闻到了一股甜丝丝的焦香味。
余弦抬起头,看到前面不远处的路灯下,停着一辆卖烤红薯的三轮车。
车上架着一个黑乎乎的铁皮炉子,炉口冒着丝丝缕缕的白烟,热气和雨丝搅在一起,腾腾地往上蹿。
卖红薯的是个裹着军绿色大衣的老人,戴着个棉帽子,手上套着棉手套,躲在三轮车撑起的小雨棚底下,正用火钳从炉子里夹出一个烤好的红薯,放在炉口的铁架子上。
那排红薯烤得焦黄,表皮裂开了几道口子,还往外渗着蜜汁,被炉火烘得暖呼呼的,在冷雨里格外馋人。
走在旁边的温晓脚步明显慢了下来。
余弦注意到,她的伞沿朝着小车抬高了些,又很快放下,像是怕被人发现似的。
“你们等我一下。”余弦停下脚步:
“我去买几个红薯,正好有点饿了。”
“我要两个。”史作舟面不红心不跳地说。
余弦转过身,径直走到那个三轮车前:
“大爷,拿五个烤红薯,挑软和一点的。”
余弦付了钱,摊主手脚麻利地用报纸包了五个红薯,刚一靠近,那种暖烘烘的香气就直往鼻子里钻,隔着袋子都能感觉到烫手的温度。
“给。”余弦隔着纸袋,递给温晓一个。
“谢谢......”温晓小声说着,一手撑着伞,另一只手隔着衣袖接过那个烫手的红薯,她没有马上吃,反倒像是抱着个暖手宝一样,紧紧地捧在怀里。
“呵,长大了。”史作舟倒是一点都不客气,从余弦手里抢了一个,一边被烫得直吸溜气,一边直接用牙咬开烤得焦脆的红薯皮:
“卧槽,沸沸沸......烫死我了烫死我了。”
史作舟嘴上喊着烫,还是直接一口咬了下去,香喷喷的烤红薯,驱散了凛冬的寒意。
这货又用胳膊夹着雨伞,腾出一只手,举着手机,对着咬了一口的红薯拍了张照片,马上转发到了“疯狂星期(4)”的微信群里。
旮旯给木糕手发言:“@AAA神算仙人(已黑化),这红薯好甜腻啊,烫嘴,吃不下去,怎么办?”
余弦点开照片看了下,金黄软糯的红薯瓤,冒着白蒙蒙的热气,背景是雨雾中朦胧的路灯,还有湿漉漉的梧桐树。
没过几秒,群里邵的消息已经回了过来:
“你知道烤红薯和什么一起吃会死人吗?壳硬硬的、绿绿的,千万要注意!”
史作舟一边走一边低头单手打字,差点踩进路边的水坑里,他在群里回道:
“是和什么海鲜一起吃会过敏吗?青蟹?”
邵发了个小丑面具的表情包,紧接着回道:
“笨,这都猜不到,是手雷。”
史作舟愣了一秒,然后在群里发了一长串省略号。
看着屏幕上你一张我一张激情斗图互怼的两人,余弦的嘴角也忍不住抽了抽,无奈地摇了摇头。
这俩活宝的脑回路还真是出奇的一致。
等走到公寓楼下的时候,史作舟的那份红薯已经只剩半张报纸了,嘴角还沾着一圈明显的焦黄色红薯泥,活像长了一圈黄色的胡渣。
余弦无奈地笑了笑,这下真是名副其实的“史”作舟了。
上了楼,杨依依学姐已经把菜端上了桌,两荤一素,还烧了一锅热腾腾的番茄鸡蛋汤,电饭煲搁在桌角,盖子掀开,冒着白气。
“先洗手吃饭吧,吃完再说正事。”杨依依拿了四副筷子,看到余弦手里的报纸包:
“这是什么?”
“烤红薯,路上买的。”余弦找了个毛巾把红薯裹上,避免太快变冷。
或许是因为心里都装着事,这顿饭大家吃得很快,风卷残云般扫清了盘子。
余弦把碗筷收进厨房冲洗,史作舟把剩下四个烤红薯摆在桌上,每人面前放了一个。红薯已经不像刚出炉那么烫了,但捧在手里还是暖的。
史作舟剥开皮,咬了一大口。
“你刚才不是吃过一个了吗。”杨依依指了指嘴角。
“那是路上的,这是饭后的,不一样。”史作舟理直气壮,又大喊道:
“我宣布,第一次红薯会议,启动!”
余弦倒了四杯温水,放在桌上:
“老史,把你刚才的想法给大家讲讲吧。”
史作舟点了点头,从口袋里掏出下午在机房画的那张满是圆圈的草稿纸,铺在茶几中央。
他指着图纸,把在教室里跟余弦说过的那个“中心化游戏大厅”和“停机更新”的思路,原原本本地给杨依依和温晓讲了一遍。
温晓靠在椅背上,双手抱着那个烤红薯,小口小口的吃着,时不时点一下头。
杨依依学姐则是盯着那张草稿纸,眼底闪过一丝惊讶和赞赏。
史作舟讲得比刚才更流畅了,大概是已经在脑子里过了好几遍。讲完,往椅背上一靠,看着两个人。
“这个架构设计非常巧妙。”温晓托着下巴地认可道:
“就像是一种子频道的分流,在软件工程里,这也能算得上是极其优秀的架构重构了。”
“有个公共的大厅作为缓冲,也能让玩家来组队,确实很不错!”杨依依也赞同道。
听到两个女生的夸奖,史作舟有些得意地摸了摸鼻子:
“嘿嘿,基本操作,基本操作。”
余弦一直没插嘴,直到史作舟讲完才适时开口道:
“大厅的方案,我也很认可。但是,下午我和老史聊的时候,发现了一个新问题。”
他把下午的推演又讲了一遍。
因为联机优先级高于蓝图脚本,这样一来,对于后进入的玩家来说,联机音频就变成了只具备‘负责劫持纺锤波到指定频率’的功能。
玩家进入的梦网空间内容,取决于当前频率内已经部署好的脚本,这意味着脚本可以被偷换,而用户手中的旧音频,根本无法分辨当前频率下梦网的内容是什么。
“因此,温晓之前提出的‘代码审计’方案,在这个机制下彻底失效了。”
史作舟把红薯皮揉成一团,闷声说:
“就是这个问题,想了一路了,没辙。”
“如果不解决这个问题,不仅可能有犯罪隐患,联机音频的信任体系,也会被恶意开发者轻易地摧毁。”杨依依也蹙着眉说道。
几个人各自低着头思考着。
“那个......”
温晓突然小声开了口,她看着桌上的水杯,似乎对自己接下来要说的话也不太自信:
“我想到一个办法......虽然,可能有点治标不治本。”
“什么办法?”三人的目光同时聚焦在她的脸上。
“下午讨论的时候,学姐提到了,纺锤波的频率区间在12Hz到15Hz之间,而且只能取整数,对吧?”温晓抬起头,看着杨依依问道。
“对,没错,现在的精度只能做到这样。”杨依依点了点头,等待着她的下文。
“这也就意味着,目前能作为梦网通道的频率,总共就只有4个。”温晓深吸了一口气:
“既然只有4个频率可以用来建房间......那我们,为什么不干脆把这4个频率,全部占下来呢?”
“全占了?”史作舟愣了一下。
“对呀。”温晓点了点头:
“只要我们的人,永远作为这4个频率的‘初始零号主机’待在里面。那这个梦网的蓝图脚本,就永远是我们设定的安全版本。那些恶意的开发者,就算他们想自己建带有毒的房间,他们也拿不到空闲的频率了。因为只要他们连进来,就会被强行拉入到我们控制的梦网里了。”
空气安静了两秒。
史作舟呆呆地看着温晓,又转头看了看余弦。
突然,他竖起了两根大拇指,脸上的表情哭笑不得:
“晓晓,你跟老余,你俩可真是咱团队里的卧龙凤雏啊!”
“啊?”温晓茫然地眨了眨眼。
“今天上午,为了解决‘删档重置’问题,老余想了个办法,他让咱们几个人排个值班表,三班倒轮流吃安眠药睡觉,人工维持服务器运转。”史作舟叹了口气,指着温晓:
“晚上到了你这儿,直接就变成‘包场占位’了。你们俩这脑回路,还真是一个模子里刻出来的。”
杨依依听到这也忍不住笑了一下,又叹了口气:
“这都是被逼得没办法了的无奈之举。”
“你、你们别笑......我是认真的!”温晓小声道:
“在计算机网络里,也有这种做法,类似于抢占所有的公网IP,或者占领所有的端口。简单粗暴,但理论上确实有效。”
余弦没有笑,他看着温晓,认真地思考着这个“占坑”方案的可行性。
他剥开手边那个已经放凉的烤红薯,咬了一口,薯肉已经不烫了,甜味倒是更浓了一些。
嚼着红薯,想了一会儿,才开口:
“温晓这个思路的出发点没问题,但实际执行起来,会有两个问题。“
他靠在椅背上,看着温晓,冷静地分析道:
“第一,还是上午的问题,人手不够。要维持一个频率的梦网24小时不掉线,就需要几个人轮流排班睡觉。现在要占满4个频率,算上容错冗余,那至少需要二十个人全天候在线,我们根本找不到这么多人占领所有的频段。”
温晓听到这里,点了点头,看起来也意识到这个方案实操的难度之大。
“第二点,也是最关键的。”余弦皱起眉头:
“在这个梦网系统里,第一个入梦的‘主机’,其实并没有太大的控制力和实际权限。”
他看着三人解释道:
“我们抢占了频率,确实能决定这个梦境最初的蓝图长什么样,能防止别人把恶意代码通过蓝图带进来。但是......”
余弦停顿了一下,说出了这个机制中最无力的一点: