原文精选:分布式共识有各种应用,计算机界对其也研究了多年,传统具有启发式的应用就是提高分布式系统的可靠性。设想你在管理一个社交网络公司的后端平台,比如微信,像这样庞大的系统通常有几千台甚至几万台服务器,这些服务器组成了一个巨大的分布式数据库,数据库中记录了这个系统里发生的各种活动,而每条信息都会被记录在后端的若干个节点上,对于整个系统的状态,这些节点必须要做到同步。
分布式共识协议的意义远远超出了传统意义的范畴。一旦具备了这样的体系,我们就可以建立一个庞大的分布式键值(key-value)存储库,该类存储库可以将任意数据如身高、名字等对应一个相应的开启键,基于此,许多应用得以实现。例如,我们可以建立一个分布式域名系统,将人脑易于理解的域名与IP地址进行配对,我们也可以建立一个公钥目录,这个目录可以把公钥与电邮地址(或者其他真实世界中的身份证明)对应起来。
读书笔记:
1,分布式共识有各种应用,传统具有启发式的应用就是提高分布式系统的可靠性。
2,如微信的数据就存储在成千上万台服务器里,这些服务器组成了一个巨大的分布式数据库。
3,分布式共识协议的意义远远超出了传统意义的范畴,使我们可以建立一个存储库,将任意数据对应起来。
原文精选:以上讨论在直觉上说明了分布式共识的大概含义。对于分布式共识,我们还是要给出一个技术定义,以此我们可以判别一个协定是否符合分布式共识的要求。
分布式共识协议
在一个有n个节点的系统中,每一个节点都有一个输入值,其中一些节点具有故障,甚至是恶意的。一个分布式共识协议有以下两个属性:
输入值的中止须经所有诚实节点来确定。
这个输入值必须由诚实节点来生成。
那么以上概念在比特币里又是什么含义呢? 想要理解分布式共识在比特币中的用途,我们需要记住比特币是个点对点的系统。当爱丽丝向鲍勃付款的时候,她其实是在向构成比特币网络上的所有节点广播其交易行为,见图2.1。
顺便提一下,你可能注意到,当爱丽丝向整个比特币点对点系统广播时,鲍勃的计算机并不一定在图2.1的网络中。当然鲍勃也有可能在这个网络上运行着一个节点,如果鲍勃想在爱丽丝转币给他时及时被系统通知,运行一个节点当然是个好主意,但其实这并不重要,鲍勃是否运行节点并不影响他收到爱丽丝转给他的比特币。
读书笔记:
1,一个分布式共识协议必须满足以下两个属性:输入值的中止须经所有诚实节点来确定;输入值必须由诚实节点来生成。
2,比特币是个点对点的系统,为了向鲍勃付款,爱丽丝需要向整个网络广播她的交易行为。
3,如果鲍勃不在比特币的整个点对点网络中,也不影响他的收款。如果在的话,鲍勃可以及时收到转款通知。
一叶之秋带你一分钟速读经典书籍,每天一分钟(只需阅读读书笔记部分),天天获新知。
作者:全职高手一叶之秋
链接:https://www.jianshu.com/p/8a14fabc23ff