萧一准备修改鲇鱼号船长发来的星际海盗蜂群控制系统。
在升级到v4时加强过的处理器频率和人工智能算法的加持之下,萧一以常人难以实现的速度飞速开发着新的控制系统。
吴树询问萧一更改的方向,究竟要实现怎样的蜂群控制算法呢?
萧一一边在个人终端上苦思冥想,一边说“我们向系统报告的位置必然不能是我们的真实位置,因为必然有一天,我们要和他们翻脸,如果如实上报真实的位置,被顺藤摸瓜,就十分不妙了。”
郝天齐却有自己的顾虑“可是不如实向蜂群系统汇报自己的位置,飞船要是撞上怎么办?”
郝天齐的担忧是非常正常的,飞船的位置,是蜂群舰队控制系统中非常重要的参数。
数百艘战舰汇聚在一起,调整相互之间距离的时候,每个点的位置就是其他飞船的参考,如果汇报的位置不是自己的真实位置,必然会让编队混乱不堪,甚至发生不测。
萧一理解这种担忧,想到了自己的解决方案“假设雪橇号所处的空间是一个三阶魔方,共二十七块立体空间,雪橇号就位于魔方的第二层第二行第二列的位置,也就是说,在这个立方体的中间,我会在雪橇号的周围这个魔方的其他二十六块空间的位置各添加一条位置坐标。我会添加一个随机数生成器,每一分钟,向系统报告新的位置坐标。”
郝天齐理解萧一的做法,“你是想让我们的飞船在蜂群控制系统中看上去像是在二十六个位置上不停闪烁一般么?”
萧一很欣喜,郝天齐第一时间想到了这么做的用意,“是的,这样,我们飞船在控制系统中,就会有一个经常活动的范围,这种算法在设计的时候,为了避免碰撞,一般会设定飞船之间可能的最小距离,我们通过不断地闪烁自己的位置,实际上会让我们飞船的这个范围变得比较大,汇报给系统的位置,虽然永远不是我们飞船的位置,却永远紧邻我们的真实位置。”
吴树想了想,张峰则从背包里拿出一个魔方,似乎理解了萧一的想法。
虽然这么说,但是工程实践里还是相对困难的。
萧一聚精会神地修改位置报告和计算的部分。
高强度的开发工作中,鲶鱼号的船长不断催促,“小行星带飞船的操作系统都是通用的啊,你们到底缺什么运行环境?”
尽管雪橇号已经减速了一点点,但是在太空尺度上,这个距离显然还是太近了。
萧一没有理会鲇鱼号船长的聒噪。
开发过程非常迅速而顺利,萧一替换了位置报告模块。
在小行星带星际海盗的群体之中,混入了一艘位置每隔一分钟就触发一次闪现的荒诞飞船,更荒诞的是每一个位置都不是飞船真正的位置,而是紧邻飞船的经过偏置的位置。
就像狼群中,混入了一条不安分的哈士奇。
吴树起身,看着正忙于开发的萧一,笑着说,“船长,除了这种位置抖动,你还想要添加什么功能呢?”
萧一一边做着最后的调试,一边想着,“我还得预留一个接口出来,在关键时刻发送错误的数据包。上次在灶神星轨道上,因为没有通信密钥,我们只能通过在相同频道发送海量无意义请求连接的数据包来干扰蜂群网络,星际海盗的人很快就会补上这个漏洞,现在我们已经是这个网络的一部分,我们发送错误数据包就容易多了,只不过现在还来不及开发,先预留一个接口。”
萧一还要处理一件更重要的事情,就是想办法绕过蜂群网络的完整性校验。
蜂群网络在启动的时候,会校验控制系统是否经过了未经授权的更改,只有和超过半数的网络成员使用完全相同版本的控制系统的节点,才会被蜂群网络接纳。
这是一种高容错率的方案。
如果想要用篡改过的客户端接入真个网络,理论上,需要让这个网络中有超过半数的客户端使用篡改后的版本。
验证过程非常麻烦。
萧一看着验证客户端完整性的代码部分,深奥的加密算法让他非常头痛。
他想起地球文明古典时代的一句谚语,“大力出奇迹。”
既然要超过半数的节点运行这个篡改过后的版本,那我索性就直接运行很多个节点不就好了?
假设海盗船舰队中有一百艘海盗船,那雪橇号只要同时运行一百零一个节点,就能取得算力优势,那么,蜂群网络的信息流,就应该以篡改后的节点的信息为准。
那些运行着未经篡改的节点的海盗船,将被迫接收雪橇号发送的信息,蜂群网络会自动认为这些信息是真实可靠的。
当然这么做是有代价的,人们很快就会发现网络中运行着的节点数目过多,因此平时不能使用。
平时的雪橇号,当然还得运行原版的蜂群控制网络的操控软件,也只运行一个节点。
小行星带星际海盗之间为了建立相互的信任,这份控制网络由一个开源计划,所有星际海盗共同维护。
控制网络的软件经过萧一的代码审查,并没有什么问题。
萧一增加了一个转换的接口,在平时,使用开源版的原版蜂群控制网络,在紧急时刻,开启自己修改过后的版本。
开发工作进入尾声,萧一最终整合了两套控制系统,做了本地运行环境配置,将软件重新编译,发送给郝天齐。
郝天齐将蜂群控制网络导入到飞船现在的