美文网首页Nervos Fans
浅析区块链技术架构 & Nervos 架构特点

浅析区块链技术架构 & Nervos 架构特点

作者: 526ba0512193 | 来源:发表于2018-05-31 21:59 被阅读64次

    群友们,晚上好,今晚继续分享,今晚与大家聊聊区块链架构,内容与前几天相比较,通俗易懂。

    区块链作为比特币底层的技术,无需去中心化的服务器,可实现各类存储数据公开、透明、可追溯。

    而且,区块链是存储数字货币的一种方式,是一种自引用的数据结构,用来存储大量交易信息,每条记录从后向前有序链接起来,具备公开透明、无法篡改、方便追溯的特点。

    因此。区块链是一项技术,加密货币是其开发实现的一类产品(含有代币,也有不含代币的区块链产品),不能等同或混淆。

    那区块链技术大体是通过怎样的架构实现呢?

    通常是4个方面,点对点网络设计、加密技术应用、分布式算法的实现以及数据存储技术的使用,但是,这4个方面实现起来,不是漫无目的的,也是有相应的规矩,传统的区块链框架是这样设计的。

    其规矩是 整个架构系统 分别由 协议层,扩展层,应用层共同实现,其中协议层包含整个区块链系统的底层设计方案,如同建房的地基。

    协议层通常是一个完整的区块链产品,类似于我们电脑的操作系统,它维护着网络节点,仅提供Api供调用。

    通常,系统会先提供客户端(通称为钱包),这个客户端钱包功能简单,只能建立地址、验证签名、转账支付、查看余额等。

    最典型的例子是比特币,构建了网络环境、搭建了交易通道、制定了节点奖励规则,至于你要交易什么,想干什么,它一概不过问,也过问不了。

    从技术而言,协议层主要包括网络编程、分布式算法、加密签名、数据存储技术等4个方面,其中网络编程能力是大家选择编程语言的主要考虑因素,因为分布式算法基本上属于业务逻辑上的实现,什么语言都可以做到,加密签名技术是直接简单的使用的。

    数据库技术也主要在使用层面,但点对点网络的实现和并发处理是开发的难点,尤其是设计为多少人使用的 区块链底层系统,这涉及到去中心化的体量多大。

    所以对于那些网络编程能力强,对并发处理简单的语言,人们就特别偏爱。

    因此,现有的传统的区块链系统,大体上使用Nodejs 开发区块链应用。

    而协议层主要包括存储层 & 网络层,其中储存层是创世区块形成区块链条的底层架构,网络层根据底层布置节点,通过挖矿,投票等共识算法保障运行的节点安全。

    而在储存层,数据存储可以相对独立,选择自由度大一些,可以单独来讨论。

    选择的原则永远离不来是性能和易用性,拥有丰富底层公链开发经验的Nervos 恰恰能够满足这点。

    系统的整体性能,主要取决于网络或数据存储的I/O性能,网络I/O优化空间不大,但是本地数据存储的I/O是可以优化的。

    比如,比特币选择的是谷歌的LevelDB,据说这个数据库读写性能很好,但是很多功能需要开发者自己实现。目前,困扰业界的一个重大问题是,加密货币交易处理量远不如现在中心化的支付系统(银行等),除了I/O,需要全方位的突破。

    其次是扩展层,这个层面类似于电脑的驱动程序,是为了让区块链产品更加实用。

    目前有两类,一是各类交易市场,如币币交易,币与法币交易,现在国内禁止此业务,不深入探讨。

    二是针对某个方向的扩展实现,这个应用就有很多了,现在除了公链,大部份的项目都属于应用类项目。

    在扩展层面,为了方便,很多人会采用以太坊的智能合约实现。

    比如说达到某个条件,合约自动执行某项活动,比如自动转移证券、自动付款等活动。

    扩展层使用的技术就没有什么限制,可以包括很多方向,上面提到的分布式存储、机器学习、VR、物联网、大数据等等,都可以作为应用参考。

    编程语言的选择上,可以更加自由,因为可以与协议层完全分离,编程语言也可以与协议层使用的开发语言不相同。

    再来谈谈应用层,这个层面类似于电脑中的各种软件程序,是普通人可以真正直接使用的产品,也可以理解为B/S架构的产品中的浏览器端或手机端的app,但现在很多项目还无法实现这一步。

    因为很多项目在第1步搭建时,为了考虑更高的并发和性能,常常忽略了最重要的核心,安全保障。最近奇虎360 也加入区块链领域。

    因此,我自己觉得,很有必要再与大家分享下nervos的特点。

    很多区块链技术人才高手,可能都会有个梦想,我要搭建一个底层公有链。

    其实,这是一个相当复杂的过程,不仅考虑如何设计公链的底层架构,还需要考虑如何提高使用性能,使用环境。

    从nervos的白皮书来看,nervos最大的梦想,实现一个76亿人使用的区块链。

    这个梦想实现的前提,会从两个维度分别作优化。

    系统整体性能

    Nervos的创始人Jan 曾参与过以太坊的开发建设,其成功案例是参与研发了casper的扩容方案。他肯定深刻了解到比特币 & 以太坊的底层架构设计的缺陷。

    在设计底层架构,尤其是底层公有链,一方面需要改变原有区块链系统底层技术的缺陷,同时还需要设计出一套简单的,人人可使用的区块链开发系统。

    这开发系统不仅能像solidity开发时一样的简单,同时还具有较高代码纠错功能。这几天空时就在看nervos 的代码,发现其使用rust的频率很高,而rust 语言的特点,前几天群内一直再分享。

    扩展性能是绝对优势

    从另一个维度分享,nervos 扩展极好,在此只能泛泛而谈。(最近时间不够充裕,没机会对比多个项目,希望以后有机会补上)

    很多人会从tps 入手参考一个开发项目的扩容程度以及并发率处理能力。实际上,tps 只是一个相当基础且具象的参考值,并不能代表什么。tps的数量需要测试环境的数值一并考虑。

    坦白说,76亿人使用的底层区块链开发系统与1千万人使用的底层区块链开发系统不是同一个级别。

    而nervos 的底层架构系统是根据分布式架构理念设计的,懂行的人一看就知道其采用的技术特点。

    此技术特点,用一个最明显的例子做类比,很多人都用过淘宝吧,为什么我相信 且看好淘宝呢,因为淘宝网站的架构从底层就开始采用分布式处理。

    从淘宝过往的发展经历来看,淘宝的技术一直在创新,不仅是整体的架构,还有相应的性能处理细节。

    而nervos 就是从架构以及节点等细节开始着手,处理并优化整体系统的运转优势。

    具体的细节,早前做了很多的分享,今天就不再重复了。

    (待续,明晚8点,我们在爱好者社群等你一同参与。。。)

    相关文章

      网友评论

      本文标题:浅析区块链技术架构 & Nervos 架构特点

      本文链接:https://www.haomeiwen.com/subject/kwpcsftx.html