NULS从创立之初,就秉持着让区块链更简单的理念,在继NULS 1.0之后,为了进一步实现这样的愿景,NULS核心团队和社区共同设计了NULS 2.0微服务架构。
NULS 2.0究竟是如何让区块链变得更简单的呢?它到底又解决了哪些问题呢?今天就来给大家科普一下。
常见的开发模式及其问题
想要给出一个解决方案,让区块链变得更简单,我们必须先知道目前常见的软件开发模式是怎样的,以及其中存在哪些问题。
通常在开发大型项目的时候,开发团队会将项目根据业务划分成不同的模块,然后让每个开发小组负责一个或者几个模块的开发。不同的模块实现不同的业务功能,最后所有模块组合在一起,形成一套系统,满足一个完整的业务场景需求。
这种开发模式像是拼拼图,每一块拼图就是一个模块,将所有的拼图拼在一起,才是一个完整的图案,少了其中一块拼图,这个图案就不完整了。同样的缺少模块的系统,就不能正常的运行。
这样的开发模式,让模块和系统之间的关系很紧密,每个模块不能脱离系统,系统也离不开每一个模块。
这种状况让整个系统变得很脆弱,因为一旦某个模块出现问题,即使其他模块正常,也会导致整个系统的瘫痪。并且每个模块都是为某个特定系统开发的,不能被其他系统使用,大大降低了代码被重复使用的机会。
NULS 2.0的微服务架构就很好的解决了这些问题。
NULS 2.0微服务架构
NULS 2.0的微服务架构让每个模块独立出来,每个模块即是一个服务。这是什么意思呢?
之前的系统中,每个模块不能单独部署在服务器上,被外部调用,为用户提供服务。只有把整个系统部署在服务器上,某个模块的功能才能被外界使用。
现在每个模块单独就是一个小系统,它可以被单独的部署在一个服务器上,当用户需要使用到这个模块提供的功能时,用户就像这个服务器发送请求,获得这个模块提供的服务。
这样的设计让NULS的整个生态变得更加灵活。如果说之前的模式下,是做拼图,那么现在的模式下,是搭乐高。每一个模块是一块积木,你可以用同样的积木搭一个房子,也可以用同样的积木搭一个火车。每一块积木变得很灵活,它可以用在不同的模型里面。
这样的设计让模块从系统中独立出来,每个模块可以被独立使用,大大提高了代码的复用性,同时系统也不会因为某个模块的故障,就完全瘫痪。
除了这些好处之外,微服务架构还让模块的开发变得更加方便,完全不受开发语言的限制,模块的升级和替换也变得很方便。想要增加新功能时,就开发新的模块,这样整个系统的扩展性也提高了。
让开发区块链更简单
NULS 2.0在使用微服务架构之后,模块之间为了完成通信,每个模块都必须了解消息的发送和接收方式,以及何时与其他模块进行通信。
是否这些工作都需要在每个模块中重复执行呢?
解决这个问题的最佳方法是开发一种软件,所有模块都需要将该软件的代码 合并到模块代码中,以便继承所描述的所有通用的方法,这样就不需要重新编写 规则。这个软件称为服务基础库。
为了进一步减少重复性的代码,NULS还将常见的系统功能抽象出来,开发出一组标准的模块,为不同的系统提供这些通用的功能。
除了提供基础的开发库之外,为了减少开发人员的工作量,让他们只需要关注应用程序想要解决的问题,而不用关心如何将其集成到平台中。NULS 2.0架构中还加入了基础应用程序库,这些库提供了关于如何管理网络资源的复杂细节,即设计消息,协议处理等。随着时间的推移,这些库可以移植到多种开发 语言中,从而吸引更多的外部开发人员加入到项目中。
使用微服务对模块进行解耦,提供服务基础库和基础应用程序库提高开发效率,这样的全新架构让使用NULS定制自己的区块链变得更简单了。
做一个类比,相信你就更能明白这个道理了。当你想要修一栋大厦的时候,你必须请很多的工程队,他们各司其职,有自己的分工,完成大厦的不同修建任务,但是只有工程队,你是不能修大厦的,你必须要有砖、水泥、钢筋等修建大厦的原材料。当你使用NULS定制你自己的区块链时,你的区块链项目就像是大厦,而每个模块就是准备就绪的工程队,服务基础库和基础应用程序库就是现成的原材料。你说,在这样的环境下,修建你的区块链大厦是不是更加简单呢?
链工厂:一键定制你的区块链
互联网上应用众多,并且彼此不会产生干扰,区块链中,同一条链内的应用
却会进行资源竞争,这是亟待优化的点。
区块链世界中要想做到业务隔离,目前只有两种方式:DAG和多链,相比于 DAG 目前有很多不确定性,多链是很容易理解的。 每一个业务有自己的链,维护自己的数据,不与不相干的业务产生交集,也就不存在资源竞争。
能不能像现在互联网这样来使用区块链?启动一个终端,接入区块链网络, 可以选择参与任何链上应用,应用间彼此数据隔离,业务隔离,但价值互联。
链工厂就是为了做到单节点多链并行,价值互通,业务隔离而设计的,在上面优点的基础上,还为区块链的建设方(企业和个人)降低了使用区块链的门槛,基于链工厂,甚至可以不关心区块链底层技术,就可以实现定制化的区块链应用或业务系统。
NULS:你的区块链解决方案专家
从NULS 2.0的整体设计来看,NULS完全是一个新物种,与目前主流的区块链架构完全不同。
现有的主流区块链架构,大都基于同一条主链,通过完善主链上的功能,以及提升主链性能来解决问题。而NULS采取模块化的思路,使用微服务的架构,不仅让开发区块链变得更简单,未来不断完善的NULS模块仓库,也让企业或个人定制自己的区块链应用或业务系统变成了可能。
未来的NULS不仅是一个可定制区块链基础设施,随着社区生态的不断发展完善,NULS必将成为你的区块链解决方案专家。