学习笔记《张海霞-精读比特币白皮书》第七讲- 网络

传统的中心化网络


这是一种典型的中心化结构,C1 、C2、C3等之间没法直接的连接,C节点如果要连接必须要通过中心化S节点做为桥梁。中心化节点充当服务者、中介作用,比如我们没有办法把资金直接从一个人转移给另一个人,必须通过银行这个中介。

比特币网络-P2P网络

P2P网络是指位于同一网络中的每台计算机都彼此对等,各个节点共同提供网络服务,不存在任何“特殊”节点,每个网络节点以扁平(flat)的拓扑结构相互连通。


对比中心化网络,在P2P网络中不存在任何服务端(server)、中央化的服务。

P2P网络的节点之间交互连接、协同,每个节点在对外提供服务的同时也使用网络中其他节点所提供的服务,每个节点既是服务端又是客户端。

P2P网络模型除应用于比特币网络,使用广泛的BT下载就是基于P2P网络。

P2P网络不仅仅去除了中心化带来的风险,还可以提高传输的效率。

如何发现节点

既然每个网络节点都是平等的(是指在网络层面上节点是平等的,但各节点在功能上可以有不同的分工, 如钱包节点、挖矿节点等),不存在任何“特殊”中心节点,那么当新的网络节点启动后,它是如何跟其他的节点建立连接,从而加入到比特币网络呢?

在中心化网络中,新加入的节点只要连接“特殊”的中心节点就可以加入网络。

为了能够加入到比特币网络,比特币客户端会做以下几件事情:

1.节点会记住它最近成功连接的网络节点,当重新启动后它可以迅速与先前的对等节点网络重新建立连接。

2.节点会在失去已有连接时尝试发现新节点。

3.]当建立一个或多个连接后,节点将一条包含自身IP地址消息发送给其相邻节点。相邻节点再将此消息依次转发给它们各自的相邻节点,从而保证节点信息被多个节点所接收、保证连接更稳定。

4.新接入的节点可以向它的相邻节点发送获取地址getaddr消息,要求它们返回其已知对等节点的IP地址列表。节点可以找到需连接到的对等节点。

5.在节点启动时,可以给节点指定一个正活跃节点IP, 如果没有,客户端也维持一个列表,列出了那些长期稳定运行的节点。这样的节点也被称为种子节点(其实和BT下载的种子文件道理是一样的),就可以通过种子节点来快速发现网络中的其他节点。

何谓分叉

如果一个节点同时广播了两个不同的新区块A和B,有些节点会接收到A,而另一些接收到B。这种情况下,他们会各自以他们最先接收到的块为基础工作,但会保留另一个块的信息以防它胜出成为更长的链。这就是分叉了。当下一个工作量证明被找到其中一个成为更长的链,这个僵局才会被打破;在另一个链上工作的节点就会转换到更长的链上。孤块将被网络忽略,发现这个区块的矿工就会失去区块奖励。因此通常矿工只想挖到有效区块,并加入最长的链

以下为译文:

英文原文:

The steps to run  the network are as follows:

1) New transactions are broadcast to all nodes.

2) Each node collects new transactions into a block.

3) Each node works on finding a difficult proof-of-work for its block.

4) When a node finds a proof-of-work, it broadcasts the block to all  nodes.

5) Nodes accept the block only if all transactions in it are valid and  not already spent.

6) Nodes express their acceptance of the block by working on creating  the next block in the chain, using the hash of the accepted block as the  previous hash.

Nodes  always consider the longest chain to be the correct one and will keep working  on extending it. If two nodes broadcast different versions of the next block  simultaneously, some nodes may receive one or the other first. In that case,  they work on the first one they received, but save the other branch in case  it becomes longer. The tie will be broken when the next proof-of-work is  found and one branch becomes longer; the nodes that were working on the other  branch will then switch to the longer one.

 New  transaction broadcasts do not necessarily need to reach all nodes. As long as  they reach many nodes, they will get into a block before long. Block  broadcasts are also tolerant of dropped messages. If a node does not receive  a block, it will request it when it receives the next block and realizes it  missed one.

中文对照:

该网络是按如下步骤运行的:

1.新的交易广播到各个节点。

2.每个节点将新的交易收录进一个区块。

3.每个节点为它的区块找到有难度的工作量证明方式。

4.当一个节点找到了工作量证明后,它就把这个区块广播给所有的节点。

5.只有当该区块中所有的交易都是合法的且没有被双重支付才会被所有的节点接受。

6.各节点接受该区块为顶链并用该区块的哈希值在其所在的链上创建新的区块。

所有节点都将最长的链确定为正确的链,并持续的工作将其扩展(这保证最长的链是正确的链,正确的链是最长的链)。如果一个节点同时广播了两个不同的新区块A和B,有些节点会接收到A,而另一些接收到B。这种情况下,他们会各自以他们最先接收到的块为基础工作,但会保留另一个块的信息以防它胜出成为更长的链。当下一个工作量证明被找到其中一个成为更长的链,这个僵局才会被打破;在另一个链上工作的节点就会转换到更长的链上。

新的交易没必要触及到所有的节点。只要这些新的交易被多个节点接收到,不久就会被打包进区块。区块广播对遗漏的信息还会接受。如果一个节点没有接受某个块,当它接收下一个区块时会接收它并意识到它漏了一个块。

参考https://learnblockchain.cn/2017/11/07/bitcoin-p2p/分析比特币网络:一种去中心化、点对点的网络架构

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容