NULS项目成立于2017年9月27日,是一个全球开源社区项目,主网于2018年7月上线。NULS在创立之初,就致力于让区块链更简单。为了达到这个目标,从NULS1.0开始,NULS就采用了模块化的开发方式,想要帮助人们用更简单的方式进行造链,并且实现多链并行的跨链生态。
但是NULS1.0并没有把模块化做到极致,为了进一步提高模块的独立性,为之后的造链和跨链打下坚实的基础,NULS核心团队和NULS CCC(NULS Code Craft Council)成员,创造性的将微服务架构与区块链结合,设计了NULS2.0的全新架构。
1.NULS2.0的模块化造链
1.1.分层设计
绝大多数有造链需求的企业,都是希望使用区块链解决自己的业务问题,就像绝大多数常见的系统一样,企业并不希望花费过多精力在底层开发上。为了让企业在造链时,只需专注于自己的业务,NULS采用了分层设计,将业务层从底层中分离出来。
NULS的分层设计总共分为三层,分别是微服务基础架构层、区块链基础服务层、DAPP应用层。
为了让NULS的模块化更极致,实现模块的完全独立,提高企业在造链时的定制化程度,NULS在分层设计中引入了微服务架构。
引入微服务之后,企业已经可以只专注于业务的开发了,但是为了进一步降低开发成本,降低开发的复杂度,NULS为每个服务模块都提供了服务基础库,帮助处理模块间的通信消息等基础工作。
1.2.微服务基础架构层
第一层是微服务基础架构层,是NULS2.0的核心,被称作NULSTAR,是一个区块链微服务底层框架,主要用于实现微服务架构所需要的服务发现、服务注册、服务通信等功能。
有了NULSTAR,想要基于微服务架构造链的企业,就不再需要关注底层的开发工作,可以直接在NULSTAR上开发自己需要的区块链。
为了减少造链企业的工作量,NULS在NULSTAR中,还加入了许多常见系统需要用到的通用功能,例如报表、授权、更新器、翻译器等。这样企业需要使用相应功能时,就可以直接使用NULSTAR提供的功能,不需要自己再进行开发。
1.3.区块链基础服务层
NULS2.0的第二层是区块链基础服务层,在这一层NULS使用微服务架构,将区块链系统划分成了不同的模块,这些模块主要分为通用模块和业务模块两种。
通用模块是所有区块链都需要使用的核心模块,包括网络模块、账本模块、账户模块、交易模块、共识模块、区块管理模块等。业务模块是企业根据自己的业务需求开发的模块。
企业使用NULS进行模块化造链时,只需要从NULS的模块仓库中,选择通用模块,搭建一条基础链,然后将自己开发的业务模块与基础链对接即可。
因为NULS采用了微服务架构, 所以模块具有更高的独立性,模块间没有任何代码上的依赖,每一个模块都可独立部署,并对外提供服务。
这对于使用NULS进行模块化造链的企业来说,具有极高的商业价值。大型企业的业务往往非常复杂,使用NULS造链,可以将业务进行很好的拆分,降低系统的复杂度,让系统维护更简单;当企业需要对区块链进行迭代时,只需要对相应的模块进行开发,然后替换掉原来的模块即可,不会对其他模块产生任何影响,保证系统的稳定性;当企业需要增加新的业务功能时,只需要开发新的业务模块,然后添加到系统中即可,这是一种非常简单的开发方式,能够帮助企业降低运营成本。除此之外,企业并不会受到NULS所使用的开发语言的限制,可以使用任何语言进行业务模块的开发。
如果企业要定制的区块链,想采用不同于NULS的共识机制,这也是可以的,企业只需要开发出自己的共识模块,然后替换掉NULS提供的共识模块即可。和其他造链项目相比,使用NULS不会受限于同样的共识机制,真正做到了高度可定制。
1.4.DAPP应用层
为了帮助企业建设自己的区块链生态, NULS2.0还设计了第三层——DAPP应用层。
想要在基于NULS搭建的区块链上开发DAPP的开发者,只需要通过NULSTAR中的连接器(connector)提供的接口,就可以实现和区块链的对接,轻松的获取各种服务。并且NULS还会在第三层中,为DAPP提供基础应用程序库,帮助开发者处理网络消息和通信协议等,让开发者可以更加专注于DAPP的业务开发,进一步降低DAPP的开发成本。
2.一键造链
NULS认为未来会有越来越多的企业需要使用区块链,用于解决自己的业务问题,尽管NULS2.0的模块化造链,已经可以很大程度上降低企业的造链成本了,但是依然需要进行业务模块的开发。对于资金紧缺,技术实力薄弱的中小企业来说,依然存在许多困难。为了更快的推进区块链技术的落地应用,帮助企业解决造链难,成本高的问题,NULS希望通过核心产品链工厂,利用图形化界面,实现”一键造链”。
链工厂基于NULS模块仓库实现。NULS模块仓库由NULS核心团队和NULS技术社区共同维护,内置了NULS开发的基础模块。其他开发者也可以加入到模块的开发中,开发者只需要将开发的模块提交到代码库中,通过审核之后,就可以放置到模块仓库中,供自己和他人使用。随着模块仓库的不断完善,将会包含更多的通用模块和业务模块,这样NULS模块仓库将会成为适用于不同行业的基础开发库,可以为更多企业提供完善的区块链解决方案。
链工厂本身是一条区块链,链工厂的节点可以同时运行多条链,这样使用链工厂搭建的区块链,就可以直接选择链工厂的节点,运行自己的区块链,省去了搭建区块链节点运行环境的麻烦,同时成本大幅降低。
通过链工厂实现造链,只需要简单的4个步骤就可以完成:
- l第一,你需要在链工厂的模块仓库中,选择需要的模块;
- l第二,你需要进行基本的系统参数配置,填写创世块中的内容;
- l第三,你需要填写链介绍的和发链方式,例如链的主要用途,是否选择链工厂的节点来直接运行;
- l第四,你需要交纳保证金,广播一笔造链交易,等到交易确认后,新链就搭建成功了。
如果你选择直接使用链工厂的节点,来运行你的区块链,节点会判断你选择的模块是否已经存在,如果不存在,就会从模块仓库中先进行下载,下载完毕,你的链就会直接运行起来。当然,你也可以选择,自己创建节点,来运行你的区块链。
通过链工厂提供的图形化界面,企业和开发者只需要经过简单的配置,就可以简单高效地实现造链,降低了造链的成本,节省了大量的开发时间。链工厂的”一键造链”将会加快区块链商业应用的落地,让我们看到多链并行的场景。
3.NULS的跨链生态
未来将会出现越来越多的区块链,那么实现链与链之间互通,让价值和数据都流通起来就成为一个必须要解决的问题,为了达到这个目的,NULS提供了自己的跨链解决方案。
3.1.NULS跨链解决方案
NULS的跨链基于NULS主网实现,所有区块链都只和 NULS 主网通信,交易的验证由 NULS 主网负责,各平行链信任 NULS 主网的验证结果。
利用NULS开发的区块链,如果想要实现跨链功能,可以直接选择NULS提供的跨链模块,组装到系统中。NULS的跨链模块实现了NULS跨链协议,可以轻松的实现与主网互通,然后通过NULS主网将资产转移到其他平行链中。
针对以太坊和比特币等,不受 NULS 影响的公链,想要与NULS生态中的区块链进行互通,NULS提供了通用的协议转换层。协议转换层可以与以太坊等公链互通,又可以与NULS主网进行互通,从而间接实现了与NULS生态中其他平行链的互联互通。
3.2.跨链生态的形成
通过NULS搭建的区块链,由于采用了微服务架构,可以直接通过添加内置NULS跨链协议的跨链模块,轻松地实现跨链,与其他平行链实现价值和数据的互通。
对于其他公链,通过NULS协议转换层,也可以实现与NULS主网的互通,从而间接的与NULS生态中的其他平行链实现互联互通。
NULS核心团队已于2019年3月28日,发布了NULS2.0的第一个Alpha版本盘古v1.0,目前企业和个人已经可以基于NULS2.0进行模块化造链。未来链工厂的诞生,将会帮助企业和个人更轻松的实现”一键造链”,届时,NULS生态中,将会出现多链并行的场景,而这将会为跨链生态的形成打下坚实的基础。
总结
- 1、 NULS通过微服务架构,从代码层实现了模块的解耦,不会受到开发语言的限制,使用NULS搭建的区块链将会具备良好的可扩展性,有利于后续的迭代和维护,降低企业的运营成本;
- 2、 NULS将基于NULS模块仓库,开发核心产品链工厂,实现”一键造链”,帮助企业和开发者高效地搭建自己的区块链;
- 3、 NULS通过模块化造链,到”一键造链”,会加速区块链商业应用的落地,NULS生态中将出现多链并行的场景,这是NULS跨链生态形成的坚实基础。未来通过NULS的跨链解决方案,将会实现万链互联的NULS跨链生态。