# NULS 2.0 介绍
# 为什么要做NULS2.0
NULS创立的目的就是为了让区块链更简单,所以在2017年9月的时候,核心团队就定义了NULS 的基本架构为模块化,就是为了让更多开发者和用户能更容易的使用和编写模块。NULS目前完成了编码层的模块化,但存在模块之间耦合度较高的问题,开发者想使用某个模块或参与某个模块的开发,需要同时了解与其相关联的其他模块的设计,并且只能用特定的语言进行开发,这对NULS技术社区深度参与NULS架构的设计和开发,以及用户简单低成本的运用模块不够友好。
NULS在创立之初,就致力于成为一个由全球社区驱动的开源项目。我们认为,能不断催生创新思维的社区发展路线,才是区块链项目区别于其他商业项目的一大特点。不断的迭代与创新是开源项目发展过程中必然会产生的现象,也是区块链的魅力所在。为了让开源技术社区可以无任何障碍的融入NULS底层设计和开发中,以及为了革命性产品“链工厂”中的重要组成部分“模块仓库”的搭建和易用,有以下几个难点必须克服:
1、模块的耦合度降低,模块之间不在编写和使用上彼此依赖 ;
2、 模块可扩展、修改、替换,每一个模块都是简单的、纯粹的,不受到区块链程序整体复杂度的影响;
3、 彻底打破编程语言障碍。
核心团队革命性的在区块链底层基础设施设计中引入微服务思维,将软件应用程序设计为可独立部署的服务套件,将这种架构设计中最领先的思想引入到模块设计中,让模块像可以独立启动的程序一般灵活。这种不设置任何编程语言门槛,结合微服务的模块化架构,我们称之为NULS 2.0。这种架构下模块之间的耦合度更小,多语言开发让代码的贡献以及用户使用的便利性都得到极大地提升,同时更易于扩展,甚至模块支持分布式部署,模块的插拔也更容易。同时链工厂和跨链模块也会在这个架构上进行设计。
# NULS2.0的设计思维
NULS2.0的微服务架构是逐渐演化而成,想深入了解其是如何形成的,可阅读文档NULS2.0设计思维,文档中详细阐述了NULS2.0的演化之路。