1.导读
如果说有什么东西是技术发展与自然的相似性,那就是如果一个产品不能进化并适应它所处的环境,它就会被淘汰,这可能是我们社会生活中少有的定数之一。
软件也不无例外的符合这个规则,有趣的是,为了规模扩展和增加其复杂性,它借用了自然界中的许多技巧,本文将用简单的类比来探讨软件应用程序是如何发展的,以及为什么NULS2.0的定位是处在区块链项目食物链的顶部。
2.起源-单体架构应用
地球上生命的出现大约可以追溯到43亿年前,关于生命究竟是什么并没有一个明确的定义,但在科学家们为数不多的共识中,其中一点就是,每一个有机生物体都由不可分割的单元,即”细胞”组成,这些细胞编码了每一个有机生物赖以生存的基本功能。
一开始,只有单细胞的生物体存在,它们生存的基本过程是:
•复制:细胞繁殖的能力
•新陈代谢:它们将输入转化为有用的输出,如营养转化为能量。
单体架构应用
一个单体架构的应用程序就像一个肥胖、迟缓、单细胞的有机体,所有功能都编码在一个单一的单元内并对外暴露在环境中,如果细胞受损,那么这个有机体就会死亡,应用程序的拷贝要么是”完全复制”,要么是”完全不复制”,因此复制效率是非常低的,基本功能的更改是一个艰难的过程,过程中整个生物体可能会仅仅因为一个错误而受损。
这种类型的应用程序随时间推移而能获得的演变和发展的程度是有实际限制的。
令人惊讶的是,仍有许多单体架构的应用程序还在运行中!
3.数据保护-使用面向对象语言编写的单体应用
一段时间后,真核细胞出现了,这些细胞保护着那些处于核内的,对细胞存在性进行编码后的数据(RNA/DNA),而不会再将这一关键部分数据直接暴露在环境中,从而保证了较高的存活率。
在软件中,能够将重要数据对应用程序的其他部分进行隐藏和封装的开发语言称为面向对象的开发语言,由于这种高级语言的存在,应用程序能够更快地提高复杂性,并且更加不容易出错。
但是我们的应用程序仍然由一个庞大的、肥胖的、迟缓的单细胞组成。
封装不暴露数据的单体应用程序
区块链技术中的大多数项目都是使用面向对象技术开发的,有趣的是,对于其中的大多数项目而言,它们所能做到的也就止步于此了!
4.功能划分–模块
随着不断的进化,细胞开始增加其重要功能的数量和复杂性,因此它们开始开发定义明确且半独立的部分,每个部分负责特定的过程。
类似的,一些应用程序会被拆分成逻辑单元,每个逻辑单元负责执行一组特定的功能,这些单元就称为模块;得益于模块化开发的方式,开发人员可以更加高效地并行开发同一个产品,而由于可以更轻松的定位和理解程序的各个部分,对功能进行更改相较之前也更为快速。
模块化的问题是:
•所有模块都必须与整个应用程序同时创建。
•如果一个模块发生更改,则需要停止运行整个应用程序并重新部署。
•即使模块化具有更高的效率,应用程序仍然是一个臃肿肥胖的单细胞。
•如果某个模块出现故障,可能会危及整个应用程序。
•整个应用程序的所有模块都需要使用相同的语言编写。
直到最近一段时间,一些区块链项目才开始讨论模块化,很少有项目在其路线图中有列出具体的步骤。NULS1.0已经是100%完全模块化的,它出色的设计无疑是它能够在创纪录的时间内完成开发,而又没有发生重大问题的原因之一。
5.在生命周期内更改功能-插件
干细胞之所以能够引人注目的原因是多方面的,但其中最重要的一个原因是,干细胞可以在其生命周期内产生具有不同功能的细胞,同样地,一些应用程序可以通过附加的称为插件的特殊模块来在运行时改变其功能。
使用插件的设计良好的应用程序可以极大地提高程序的可用性,因为它解决了第4节中描述的前两个问题,程序可以在执行时升级它们的功能,但除了剩下的其他三个问题之外,使用插件还带来了另一个问题:由于多种原因,设计需要能够经受住时间考验,使用了插件的复杂应用程序是很困难的,在实践中,大型应用程序往往会再次被重构,这首先就会失去使用插件的好处,而这仍然是软件开发演进中的一大步。
带插件的应用程序
很少有区块链项目使用这种技术,对于那些使用了这种技术的人来说,现在判断他们是否已经有效地实现它还为时过早。
在某种程度上,NULS2.0将在某些特定模块中使用此技术。
6.多细胞有机生物-微服务
自然选择进化路线的首选方式是不断搞乱成千上万甚至数百万次,直到纯属偶然的出现一个能够更适应环境且能存活下来的有机体,这个过程被称为突变;在某个时刻,有机体进化了,它们不再是一个单细胞体,而是进化成多细胞体,再后来,进化出多种细胞种类,从而获得发展到前所未有的规模和复杂性的能力。
为了在更复杂的环境中生活和生存,细胞需要更多的执行过程,对于我们的演示来说,重要的两个过程是:
•通信:细胞可以通过一个称为细胞信号的过程进行相互通信。
•运动性:从一个物理位置移动到另一个其他功能所需要的位移能力,例如白细胞移动到创伤处从而杀死细菌。
微服务就像一个单一的细胞,一个完整的活跃的应用程序有自己的生命周期,可以放置在不同的物理位置,可以根据需要进行复制,也有一组定义明确、界限分明的功能。
微服务解决了第4节中描述的所有问题,正如我们将看到的,我们的实现将添加更多的特性。
除了NULS2.0,没有其他的加密项目使用了这种微服务技术。
Nulstar
在这种情况下,Nulstar就像神经系统一样,从这个意义上来说,它协调来自微服务的进程,并为它们提供必要的信息,以便彼此通信,同时,来自或流向应用程序的消息需要通过Nulstar传递,它还会对数据执行基本验证,以防止可能发生的攻击。
7.不同细胞协同合作,互相通信-多种开发语言
人体有200种不同类型的细胞,它们执行着不同的功能,需要以不同的方式构建,因此它们需要一种既能相互通信而又不影响各自运作的方式。
标准的应用程序需要用一种单一的开发语言编写,这大大减少了可以参与到项目中的开发人员的数量,而微服务的出现可以消除这种障碍,只要程序使用标准语言实现通信,就可以用任何可用的语言编写。NULS2.0实现了一种非常容易使用和理解的语言,所有微服务都必须学习这种方言。
跨语言开发
在目前可知的2100多个加密项目中,只有NULS 2.0具有此特性,能够将具有完全不同背景的开发人员聚集起来,这将加速整个生态系统的发展。
8.遇见海豚!–近乎零停机
有些生物进化得很不寻常,海豚被认可的不只是它的智慧,而这种智慧处于动物统治时期的最高水平,而且还因为它们保持警觉的能力,即使在休息时也处于游泳状态,因此它们不会像标准定义的那样睡眠。它们一次只会关闭一个脑半球和另一边眼睛(由脑半球控制),而另一个脑半球和另一只眼睛则会保持警惕。
使用Nulstar框架开发的系统将能够在无需关闭整个应用程序的情况下执行升级操作,对于外部服务,系统看起来几乎可以一年365天每天24小时不间断地工作。
近乎零停机
加密领域中没有任何系统具有这种能力,例如,为了执行预期的维护或升级,交易所往往需要关停几个小时。
围绕我们的系统进行开发从而避免这个过程所带来的数万美元的损失,这些公司对此会有多感兴趣呢?
9.神奇生物:海星-自我修复能力
如果被捕食者撕掉四肢,某些种类的海星有能力可以再生,一些甚至可以从一只管足再生一个新的吸盘!
与需要几个月才能完成再生过程的海星不同,Nulstar能够在微服务因某种原因失败时立即克隆并重新启动微服务,如果需要并行计算的能力,该功能还可用于在不同物理位置启动同一微服务的不同实例。
自我修复的能力
全世界只有极少数系统具有这些特性,而这些特性可能为公司节省数十万美元的成本
10.基因操作,类固醇的进化-超快速的微服务升级周期
根据维基百科的说法,基因操作可以被定义为”一套用来改变细胞基因组成的技术,包括在物种边界内和跨物种边界转移基因,以产生改进的或新颖的有机体”。尽管这是一个具有争议的做法,它仍可能创造出令人惊叹的超复杂的有机生物,这些生物体优于当前自然所赋予的所有物质,例如作物抵抗疾病和害虫,抵抗恶劣的环境条件等。
微服务具有比人类已知的任何其他软件技术更快、始终如一的固有的适应能力,将非常复杂的应用程序划分为独立的执行部分,使开发人员能够精确定位想要更改的代码的确切位置,而不会损害应用程序的任何其他部分。
类固醇的进化
基因操作可能需要数十年来完善其操作方法,很高兴软件不用这样,应用程序可以通过微服务体系结构加速其发展。
11.结语
区块链技术可能是技术发展最快的领域之一,不断地会有新想法涌现出来并得到有效地实现,公司和个人对于长期投资单一的技术会感到不安,而NULS2.0和Nulstar代表了该领域多年努力和持续研究的成果,正如本文所揭示的,NULS长期来看不止于它当前所具有的技术(这是当前技术发展的最新水平),而且还有它能够适应和发展新技术的能力,比现有的任何其他区块链都要快。NULS将赢得区块链的未来。
来源:NULS