你和区块链之间只隔了一个NULS 2.0
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必将成为你的区块链解决方案专家。