【虾说区块链】入门区块链,先学分布式系统!一文说明分布式系统与区块链的关系

论坛 期权论坛 区块链     
宇宙永恒   2018-11-20 23:41   2166   0
            
image欢迎收听「虾说区块链」。现在区块链这个概念在互联网上相当火热,这里简单做一个普及,不涉及项目推广投资,单纯地对区块链相关基础知识概念作一个说明讲解。本人区块链技术爱好者,结合相关区块链资料总结整理了「虾说区块链」,也是自己一个学习笔记,涉及相关内容如理解有误,也请及时指正。
1分布式系统概念分布式系统(distributed system)是建立在网络之上的软件系统,彼此节点之间通过消息传递进行通信和协调的系统。随着现在互联网业务的发展,单纯的集中式系统无法满足高并发,海量数据的处理,故出现了分布式系统来集中计算和存储资源,统一对外提供服务。
简单从物理上来看待分布式系统,一群互相独立的计算机,通过内部的通讯机制,形成一个大型的计算存储设备对外提供服务。分布式的意义在于计算机不局限于单一一个物理位置,通过网络进行互联,在逻辑上形成一个统一体,集中这些计算机的计算资源、存储资源。分布式中加入的计算机越多,理论上能够处理的并发就会越大。
2分布式理念一直以来,“量变引起质变”的概念被普遍认知,大量个体的涌现,随着成员之间的互相作用,必然会出现新的群体动态特性。当个体形成群集后,一些不可抗拒的特性就会显现。群集是社会发展的趋势。我们在自然界中经常能接触到很多分布式群集的事物。大雁的飞行模式、蚂蚁搬家等。互联网的出现,实现了信息共享、互联网中每个接入的个体形成群体,虽然互联网上现在大部分应用还是通过中心化的架构来提供服务,但是互联网的本质是分布式的概念。在互联网上形成分布式的服务是一种必然的趋势。
传统的应用系统,按部就班,通过顺序控制的理念来构建一个系统。系统有序执行一系列的操作,整个系统结构部署简单严谨,计算和存储资源集中在中心服务器,客户端终端负责数据的输入和输出,所有操作在中心服务器中执行,反馈至客户端。
分布式系统是一种群集的概念,它对外提供的可能是单一的服务,但内部是一个个自治的主体,自治主体之间高度链接,通过共识机制达到一致性。形成一个动态的主体。
分布式的特点:(只是指分布式的特点,而不是分布式系统的特性)
  • 没有强制的集中节点控制。
  • 个体自治。
  • 网络互联。
  • 共识机制。
分布式的优点:
  • 弹性:分布式中节点的加入和撤离灵活,不影响整个动态的主体,在资源紧张或者资源充足时,动态调节。
  • 冗余:节点众多,和传统的集中式相比,在出现故障时,也就类似节点的撤离,不影响整个动态主体。
  • 无限:这个概念有点缥缈,良好的分布式的系统,理论上节点的扩展性不会受到拘束,相反节点越多,对事物的处理会有更多的可能性,形成一种资源的无限扩展,系统的无限可能性。
  • 不可控:分布式众多的节点,形成共识,不是单单控制几个节点就能控制整个动态的主体。(一个两面性的特点)
分布式的不可避免因素:任何事物都有两面性。
  • 浪费:和传统的集中化对比,由于冗余、动态调节,资源的利用率上会有一定程度的浪费。
  • 复杂:个体到群集,每个个体还有自治性,形成一个动态的主体,必然会增加其复杂度。
  • 不可控和不可预知:对比优点中的不可控,这个是一种两面性的特点,在分布式中出现故障,由于整体运行良好,故障不易发现,整个系统是一个动态的主体,随着量级的增加,必然会出现一些不可预知的现象。
3分布式系统特点分布式系统中各个节点之间通过网络来协调和通信,在计算机网络中节点不受物理空间的影响。在逻辑上形成一个整体。
分布式系统特点:
  • 计算机设备在空间上随意分布,没有主-备-从的概念,节点间平等。
  • 资源共享,分布式系统中整个资源(计算资源、存储资源)共享。
  • 和传统的大型主机对比,分布式可用性价比更好的计算机设备。
  • 在分布式系统到一定的量级,在处理能力上优于传统中心主机。
  • 系统冗余性,保证系统的可靠性。
  • 计算能力的扩展,在分布式中可根据需求加入新节点提高整体性能。
分布式系统的缺点:
上述分布式系统的特点都应该从两方面来看待。
  • 节点众多和资源的共享,考虑信息的隐私性。
  • 设备节点众多,考虑通信的可靠机制。
  • 分布式处理能力的提高和系统冗余性的特点,也可能造成一定的浪费。
  • 计算能力的扩展,众多节点的加入,不排除恶意节点的入侵。
4分布式系统的时间问题分布式系统中的时间问题,如果简单去想,那么通过NTP时间同步,所有节点都通过去同步时间,然后根据进程发起的物理时间来排序,先不论时间同步中同步过程中的细微毫秒级差异,多个业务发起进程,在各个进程之间有关联关系,进程随着系统计算能力有差异,并且还有检查点的判断,一旦在顺序进程中出现了前物理时间某进程改变了检查点,那么在认为是同步处理的时候就会出现检查点状态改变导致业务逻辑的改变,这种情况理解下就是你在购物网站抢购的时候,货物剩余量在你发起交易的时候还有,但是确认过程由于网络和计算的延时,发现分布式系统中一边是交易已正常请求,但是实际货物记录中已下架。引入logical clock能较好的处理这种系统记录逻辑混乱的现象。
Logical clock称为lamport timestamps,这种概念里,先把分布式系统节点间交互分成三种类型:
  • 分布式单个节点自己内部传递的事件。
  • 分布式节点互相之间传递的事件。
  • 分布式节点接收除自己之外的传递进来的事件。
同时再加一个逻辑时间顺序概念。
顺序叠加原则:这里整个系统顺序逻辑时间时间为T(),各个节点顺序为X()
初始发起节点为0.
节点内传递,X+1
节点间传递,T+1
节点接收除自己之外的传递(T and X)+1

image那么如果再定义一个节点事件顺序,对节点A.B.C排序。假定发生顺序A
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:40
帖子:314
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP