最近参加了一个区块链的活动,投入了一个Validator。这个系统之前没有Validator,彻底去中心化,依赖简单硬件从世界各地链接到互联网上,每次随机选取16个节点,做记账运算之类的处理。群众感慨,这个系统了得啊,硬是用简单硬件支持到系统有八万多节点,在去中心化的行业中,绝对的第一梯队。
是啊,支撑到了八万多节点。可是在每增加一万节点的过程中,系统也没少出故障。最后这三四万点,数量上增长很快,差不多只用了一两个月的时间,功能与质量的维护则十分艰难。过去的两三个月里,出现过数次整条区块链锁死几个小时的大故障,始创团队不得不出手、发出“救援块儿”来解围。堪称伸出了上帝之手。
上周该区块链终于把记账处理转移到Validator上,利用地球上各大厂的云服务器来共同帮助区块链维持稳定。从此,局部中心化的问题诞生了,但目前哪家区块链发展壮大之后又不是这么做的呢?幸好还有些人对大厂的云服务不屑一顾,自己搭建自己的服务器,给整个系统带来一些不一样的元素。万一哪家大厂遭遇攻击或者外星人劫持时,坐落在某些小户人家的单个服务器们,还能抵挡一阵子。
据说,该区块链使用的集团服务器分布最集中的在美国俄亥俄州,有人戏说:俄亥俄州可别出事儿啊,否则一半的Validators都得挂了。
其实,一半的Validator都挂了又有什么,现在链上的Validator已经多得数不清了。Validator尚未启动时,大家纷纷预测,会有多少人愿意花钱租用商业云服务来支撑一个Validator?那时的预测是100-1000个。Validator正式上线的那天,大约1550个Validator已经完全与区块链同步,就等着被选入记账的共识服务小组了。
为什么急着要被选入共识服务小组呢?因为被选进去、就意味着可以参与分成,在记账结束时,拿到劳务费,也就是一定数量的数字币。所以,心理预期100-1000个Validator的群众,都有些失望。预演测试的时候,从来没有超过800个Validator参与义务调试,哪里突然跑出这么多藏在暗处的参与者,挣数字币的时候就来了,系统需要锤炼时,怎么不来出力呢?
这就是去中心化系统,民主制度的状态。有热心的支持者,也有躲在一边乘凉等着好处来了一起分的利己主义者。池子大了,什么人都有。
不管有多少个Validator吧,既然都来了,就一起玩儿。可是如何才能被选入共识服务小组呢?这可真不是服务器自己说了算的,选的时候,系统自有考量,包括细心的设计和粗心的bug,都会影响谁被选入或不被选入共识服务小组。
可以猜测的是:服务器的地理位置会是一个比较重要的因素,肯定不能一下子都选在西雅图或者洛杉矶,要均匀覆盖整个地球。服务器的编号,也是挺重要的,肯定不能从1-16,连着选几个号,大概率的那个伪随机数生成器不会在短时间内出既均匀又公平的号码,这是个纯运气因素。某些号码在这套随机数产生器下可能会格外受青睐。当然还有一个因素就是服务器自身的质量,是否跟整个区块链条始终保持同步,是否掉链子,是否在共识运算时磕磕绊绊,是否网络通畅等等,一旦出现表现不佳的状态,就会被标记一下,在未来被选取时,降低优先级。
这都是说起来易懂的条款,具体实现的时候,可能会遇到各种工程麻烦,毕竟程序都是人写的,问题和错误在所难免。
到今天,Validator上线一周,按照算数计算,每个Validator应该平均被选入共识服务小组7.2次。实际结果呢,最幸运的Validator被选了25次,之后高于15次的一眼望去也有一大堆,后面呢,还有接近200个Validator从未被选上过,同时Validator的总数也已经上升到1750个,还有很多跃跃欲试的后来者,而这个池子也是大门敞开,来者不拒。据说,要靠市场决定池子的大小,而资本主义的市场,是缓慢流动的。
有人提出,每一个伪随机数生成器都会有漏洞,就是说从1-1750,随机抽取一组数,经历很久很久之后,仍然会有从来都未被选中的数,将有非常长的长尾效应。乐观的人聚在一起,说要不咱们这些一直不被青睐的Validator组个团,照个相,成立一个不被待见俱乐部?悲观的人,会不会已经在盘算着到哪儿去闹一闹,抗议、示威、拔网线、卸硬盘?
可能这就是生活。我一直不相信运气这件事,这个星期观摩Validator系统的运行,不得不说,自己能活成现在这个样子真是运气啊。