九月上旬。
BJ的秋老虎还在发威,蝉鸣声从道场院墙外头一阵一阵地灌进来。
白子良盯着面前的电脑屏幕,屏幕上是苍鹰发来的最终测试报告。
QGP平台内测版,如期完成。
他拿起电话,拨通了苍鹰的号码。
“准备好了?”
“随时。”苍鹰的声音带着连续熬夜后特有的沙哑。
白子良靠在椅背上,手指在桌面上无意识地敲了两下。
“不搞封闭测试了。”
电话那头沉默了两秒。
“你说什么?”
“邀请五十个人,同时在线对弈。”
苍鹰的呼吸声明显粗重了。
“五十个?你知道咱们现在才三台服务器吧?”
“知道。”
“你知道其中任何一个节点如果扛不住,整个系统会像多米诺骨牌一样——”
“知道。”
白子良打断他。
“如果五十个九段同时在线系统都不崩,QGP就能扛住任何场面。”
“反过来说,如果扛不住,那现在崩比上线以后崩强一万倍。”
苍鹰沉默了很久。
“行。你是老板。”
他顿了顿,又补了一句。
“名单你定?”
白子良从抽屉里摸出一张早就写好的纸。
上面密密麻麻列着五十个名字。
赵博扬、常天昊、张文东。
金文玉、关宇翔、苏晚晴。
甚至还有一个用红笔圈出来的名字——朴一星。
苍鹰听完名单,声音都变了调。
“朴一星?你确定?那哥们儿上次被你打到投子的时候差点把棋盘掀了,他会来?”
“赵老师跟他有私交,面子够大。”
白子良把纸折好塞回抽屉。
“再说了,朴一星这种人,你越不请他,他越觉得你怕他。请了他,他反而非来不可。”
苍鹰在电话那头发出一声意味不明的笑。
“行,我去准备。九月十二号,晚八点。”
“对了,”白子良在挂电话前加了一句,“老陈的头发还剩多少?”
“别提了。”苍鹰的语气里带着真实的心疼。“上礼拜他洗头的时候,下水道堵了。”
白子良没忍住,笑出了声。
九月十二日。
晚八点整。
中关村那间半地下室的办公室里灯火通明,三台服务器的机箱风扇拼了命地转,嗡嗡声像一群被困住的野蜂。
老陈戴着他那顶永远不摘的鸭舌帽,眼睛死死盯着主监控屏幕。
旁边两个程序员一人抱着一杯冷掉的速溶咖啡,大气都不敢出。
苍鹰坐在最里面的工位上,左手握着电话听筒,右手悬在键盘上方,十根手指微微弯曲,像蓄势待发的弹簧。
电话那头是白子良。
白子良此刻坐在玄天道场二楼的电脑房里,面前是一台386的老古董显示器,屏幕上跑着QGP的后台监控面板。
在线人数:0。
八点零一分。
第一个亮起来的ID是“棋圣”。
赵博扬从棋院办公室登录了。
在线人数跳到1。
紧接着,“磐石公主”上线。苏晚晴在道场女生宿舍。
2。
“金童”。金文玉就在隔壁房间,白子良甚至能听到他拖椅子的声音。
3。
然后像开了闸一样。
5,8,12,19,27。
常天昊从家里的书房登录。张文东用的是棋院的公用电脑。关宇翔不知道从哪里借了台笔记本,信号飘忽不定。
白子良盯着数字往上蹦,心跳不自觉地加快了。
他以为自己早就过了会紧张的年纪。
毕竟前世今生加起来,他经历过的大场面够写三本书了。
但此刻看着这些数字,他掌心居然微微出汗。
这不是棋盘上的胜负。
棋盘上输了,最多丢一盘棋。
这要是崩了,几个月的心血、团队的命、围棋的未来,全得跟着一块儿崩。
35。
38。
40。
42——
屏幕上的数字突然卡住了。
页面刷新的转圈图标开始转个不停。
白子良的心往下沉了半拍。
苍鹰的声音几乎是吼着传过来的。
“BJ节点负载飙到89%!上海节点正常,但东京节点没有响应——”
他停了半秒,击键声噼里啪啦响成一片。
“日本那边的ISP做了IP封锁!”
白子良攥着听筒的手指收紧。
东京节点。
那是专门为日韩棋手设置的接入点。
ISP层面的IP封锁,不是随便一个技术人员拍脑袋就能干的事。
这意味着有人提前跟日本的互联网服务商打了招呼。
能做到这件事的人,他脑子里只有一个名字。
程谨。
K-Go还没上线,这条狗已经开始咬人了。
白子良把情绪压下去,声音很稳。
“东京节点放弃。流量切到新加坡备用服务器。”
“新加坡节点的带宽只有东京的六成——”
“够用。切。”
苍鹰不再废话。
键盘声密集得像机关枪扫射。
老陈在旁边死死盯着负载曲线,嘴唇发白。
一分钟。
两分钟。
两分四十七秒。
苍鹰的声音重新传来,这次带着如释重负的气音。
“切完了。新加坡节点接管成功,负载稳定在61%。”
白子良长长地吐了一口气。
屏幕上的转圈图标消失了。
在线人数重新开始跳动。
43。
45。
47。
50。
满了。
白子良看着那个“50”的数字,后背的汗已经把T恤湿透了。
他没有庆祝。
心里一直在响着警报。
程谨的手,伸得比他想象的更远。更快。
也更脏。
内测正式开始。
五十位中国围棋界最顶尖的头脑,第一次同时出现在同一个虚拟空间里。
棋谱数据像潮水一样涌入服务器。
每一秒都有新的落子信息在跳动。
这是围棋史上从未有过的画面。
反馈也很快来了。
赵博扬下完第一盘棋后,发了一条消息。
白子良点开。
“延迟几乎感觉不到,落子手感很流畅。”
白子良刚露出笑容,就看到后面还跟着一句。
“但界面太丑了。能不能换个好看点的棋盘?这个颜色像食堂的案板。”
白子良愣了一下。
棋圣吐槽UI,这画面实在太超现实了。
他还没来得及回复,金文玉的消息弹了出来。
“能不能加个聊天功能?”
“我想在下棋的时候骂对面。”
白子良揉了揉太阳穴。
职业围棋手的需求,跟他想象的完全不在一个频道上。
他把这些反馈老老实实记下来,发给苍鹰。
苍鹰回了一个字:“……”
然后是老陈的语音消息,声音里带着疲惫的绝望。
“加聊天功能?他知不知道我现在连觉都没得——”
白子良果断把语音关了。
内测进行到第二个小时。
苍鹰的声音突然从电话里传来,不再是先前的紧张或疲惫。
这次,他的语气很冷。
“老大,有情况。”
白子良正在记录棋手反馈,笔停在半空。
“说。”
“后台出现了一个异常账号。”
苍鹰调出数据,念出那个ID。
“'观棋不语'。”
“没有收到邀请码。没有走正常的注册流程。但它绕过了验证系统,自己登了进来。”
白子良皱眉。
邀请码验证是苍鹰亲自设计的多重加密系统。在这个年代,能硬破这套东西的人,全中国用两只手数得过来。
“它在干什么?”
“没有对弈。”苍鹰的声音压得更低了。“它在旁观。旁观所有正在进行的对局。”
他顿了一下。
“下载频率极高。每三秒抓取一次棋谱数据。”
白子良的眼神瞬间变了。
“追踪IP。”
“追了。多层VPN跳转,从东京跳到法兰克福,再从法兰克福跳到一个匿名节点。”
苍鹰的声音里出现了罕见的沉重。
“追不到。”
白子良慢慢地把笔放下。
“有人在偷数据。”苍鹰说。
这句话落在安静的房间里,像石头砸进深水。
白子良沉默了三秒。
“锁死它。”
苍鹰没有犹豫。
他的手指落上键盘的瞬间,中关村地下室的空气仿佛凝固了。
老陈和两个程序员不知道发生了什么,但他们从苍鹰的背影上读出了两个字——
开战。
这是一场没有硝烟的攻防战。
苍鹰封锁了第一条通道。“观棋不语”的数据流中断了零点七秒。
然后对方就从另一个端口重新接入了。
苍鹰封第二条。
对方换第三条。
三十秒。
每次苍鹰堵上一个洞,对方都能在三十秒内找到新的缝隙钻进来。
这个速度,这个精准度。
苍鹰的额头开始冒汗。
他在这个圈子里横着走了很多年,敢说自己国内顶尖。
但此刻,他感受到了一种久违的压力。
对面这个人,水平不在他之下。
甚至可能更高。
攻防持续了十五分钟。
苍鹰的T恤后背全湿了。
他知道不能再这么耗下去。硬碰硬只会让对方摸清自己的防御体系。
他做了一个决定。
苍鹰故意打开了一个看似脆弱的端口。
端口的权限设置松散得像没上锁的大门,数据传输协议用的是最基础的HTTP明文。
对任何高手来说,这都是一个一眼就能看穿的陷阱。
但苍鹰赌的是人性。
长时间的攻防已经消耗了对方的耐心。
当一个焦躁的人面前突然出现一扇虚掩的门,他会怎么做?
他会犹豫一秒。
然后推门进去。
因为他等不了了。
三秒后,“观棋不语”的数据流涌入了那个端口。
苍鹰嘴角的肌肉绷紧。
一个回车键。
所有出口瞬间关闭。
“观棋不语”的连接信息被完整地锁死在了服务器日志里。
账号被强制断线的刹那,那道数据流像被掐住脖子的蛇一样剧烈扭动了一下,然后彻底消失。
老陈在后面长长地出了一口气,鸭舌帽都歪了。
但苍鹰没有放松。
他盯着日志里最后捕获的那个数据包。
未加密的。
极短暂的。
可能是对方在被切断的瞬间来不及走加密通道,被迫以明文发出的最后一条指令。
苍鹰把它拖进解码器。
数据包的内容在屏幕上展开。
是一段自动化脚本。
功能:批量下载对局棋谱。
格式化处理。
输出为标准SGF文件。
苍鹰的手指悬在键盘上方,一动不动。