大家好啊,又到了贝尔同学的科普时间啦!之前给大家讲述了区块链的基本概念,今天呢,我们就来讲讲区块链的具体架构。
区块链的架构可以分为三层:协议层、扩展层、应用层。各个层级之间相互独立,同时又相互联系,不能被分割开运作。
由于协议层对于整个区块链的架构是非常重要的,因此今天我们要详细的介绍协议层级的构造。
1.协议层的地位
区块链最基本的架构层就是协议层。这个层级又分为两个部分——存储层、网络层。协议层的主要功能就是维护网络节点,只为提供Api供调度使用。
如果把整个区块链看作一个大楼的话,那么通常协议层就可以说是这栋大楼的地基,因为它为这栋大楼提供了建立的根本需要。搭建网络环境、驾立交易渠道,规定节点奖励制度等这些大方向的区块链运行要素。
至于其他的个体运行活动,例如你要买什么,要做什么,协议层是不会干预的,也干预不了。
因此,在区块链中,协议层也可以看作是我们的电脑操作系统。
2.协议层的内部构造
在上面的架构设计图里,这个层面又从内部分成了存储层和网络层。
我们可以看到,在网络层中,各个计算机节点相互连接相互作用,这些服务器通过挖矿、投票等共识算法保障节点安全。在得出相应的数据之后,网络层会在确保安全可靠的情况下将这些最快最好的数据传输到存储层,进而存储层将其储存初始化。
数据存储可以相对独立,选择自由度大一些,可以单独来讨论,选择的原则无非是性能和易用性。我们知道,系统的整体性能,主要取决于网络或数据存储的I/O性能,网络I/O优化空间不大,但是本地数据存储的I/O是可以优化的。
3.协议层的应用技术
在协议层所用到的技术主要包括网络编程,分布式算法、数据存储技术以及加密签名等四个方面。网络编程是通过使用套接字来达到进程间通信目的的编程。它的最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。
网络编程能力是选择编程语言的主要考虑因素,因为分布式算法基本上属于业务逻辑上的实现,其他任何语言都可以做到。
比如加密签名技术是直接简单的使用,数据库技术也主要在使用层面,只有点对点网络的实现和并发处理是开发的疑难之处。所以对于编程能力强,对并发处理简单的语言,人们就特别的偏爱。
分布式算法、加密签名等都要在实现点对点网络的过程中加以使用,所以自然是网络层的事情,也是编码的重点和难点。
当然,也有把点对点网络的实现单独分开的,把节点查找、数据传输和验证等逻辑独立出来,而把共识算法、加密签名、数据存储等操作放在一起组成核心层。
无论怎么组合,这两个部分都是最核心、最基层的部分,都是协议层的内容。
好啦,这就是区块链协议层结构的详细介绍了,剩下的内容,我们下期再说!
如果还有什么疑问,下面的方式可以找到我哦~