從4個(gè)方面分析:節(jié)點(diǎn)與節(jié)點(diǎn)之間是如何建立連接的?

liheng
2 評(píng)論 9166 瀏覽 8 收藏 7 分鐘
🔗 B端产品需要更多地依赖销售团队和渠道合作来推广产品,而C端产品需要更多地利用网络营销和口碑传播来推广产品..

在分布式系統(tǒng)中每個(gè)終端節(jié)點(diǎn)都是平等的,不存在任何中心化節(jié)點(diǎn)幫助它們互相連接,那當(dāng)一個(gè)新的節(jié)點(diǎn)要加入網(wǎng)絡(luò)中來(lái)時(shí),它該如何找到自己的小伙伴的呢?

我們知道比特幣網(wǎng)絡(luò)采用了基于互聯(lián)網(wǎng)的點(diǎn)對(duì)點(diǎn)(P2P:peer-to-peer)分布式網(wǎng)絡(luò),但是你知道節(jié)點(diǎn)與節(jié)點(diǎn)之間是如何建立連接的嗎?

本期將會(huì)對(duì)區(qū)塊鏈的分布式網(wǎng)絡(luò)中,節(jié)點(diǎn)與節(jié)點(diǎn)之間如何建立連接進(jìn)行介紹,希望對(duì)你有幫助。

一、分布式網(wǎng)絡(luò)基本概念

在介紹分布式網(wǎng)絡(luò)之前我們先明確它的基本概念,分布式網(wǎng)絡(luò)是什么?

分布式網(wǎng)絡(luò)也叫網(wǎng)狀網(wǎng)絡(luò),它和中心化網(wǎng)絡(luò)(中央控制式網(wǎng)絡(luò))相對(duì)應(yīng),是一套全新的網(wǎng)絡(luò)結(jié)構(gòu)。分布式網(wǎng)絡(luò)是由分布在不同地點(diǎn)的多個(gè)終端節(jié)點(diǎn)互相連接而成,形成縱橫交錯(cuò)的網(wǎng)狀結(jié)構(gòu),在這種網(wǎng)狀結(jié)構(gòu)中無(wú)中心節(jié)點(diǎn)。

上面是中心化網(wǎng)絡(luò)和分布式網(wǎng)絡(luò)對(duì)比圖,中心化網(wǎng)絡(luò)中終端與終端之間連接通訊,需要經(jīng)過(guò)中央處理器統(tǒng)一處理,分布式網(wǎng)絡(luò)中終端節(jié)點(diǎn)之間可以直接建立連接。

分布式網(wǎng)絡(luò)相較于中心化網(wǎng)絡(luò)的優(yōu)點(diǎn)在于:它沒(méi)有中心化控制中心,不會(huì)因?yàn)橹行姆?wù)器遭到破壞而造成整體崩潰。當(dāng)分布式網(wǎng)絡(luò)中的某個(gè)節(jié)點(diǎn)損壞時(shí),通信信息可通過(guò)其他的節(jié)點(diǎn)進(jìn)行傳輸,具有較高的可靠性和傳輸速度。

二、一個(gè)終端如何加入?yún)^(qū)塊鏈網(wǎng)絡(luò)?

在分布式系統(tǒng)中每個(gè)終端節(jié)點(diǎn)都是平等的,不存在任何中心化節(jié)點(diǎn)幫助它們互相連接,那當(dāng)一個(gè)新的節(jié)點(diǎn)要加入網(wǎng)絡(luò)中來(lái)時(shí),它該如何找到自己的小伙伴的呢?

以比特幣網(wǎng)絡(luò)為例:安裝了比特幣客戶端的終端,可認(rèn)為是一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)。

舉個(gè)例子:來(lái)看一個(gè)新節(jié)點(diǎn)A是如何加入比特幣網(wǎng)絡(luò)的,這個(gè)節(jié)點(diǎn)在啟動(dòng)之后會(huì)做如下的幾件事。

1. 告訴伙伴它在哪?

如果節(jié)點(diǎn)A是第一次連入比特幣網(wǎng)絡(luò),那它首先會(huì)通過(guò)一種算法找到距離它最近的一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)。

節(jié)點(diǎn)將一條包含自身IP地址的消息發(fā)送給相鄰節(jié)點(diǎn),相鄰的節(jié)點(diǎn)再將這條消息向與自己連接的節(jié)點(diǎn)進(jìn)行分發(fā)廣播,以此類推,最終導(dǎo)致新節(jié)點(diǎn)的IP地址在全網(wǎng)進(jìn)行分發(fā),每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)都知道節(jié)點(diǎn)A的地址,可以與之建立直接連接。

2. 找到伙伴在哪

節(jié)點(diǎn)A在找到相鄰最近的節(jié)點(diǎn)之后,還會(huì)向與它相鄰的節(jié)點(diǎn)索要它們已知節(jié)點(diǎn)的IP地址列表,拿到這些節(jié)點(diǎn)的IP地址列表之后,節(jié)點(diǎn)A便可以主動(dòng)與這些節(jié)點(diǎn)建立直接的連接。

3. 更快的找到伙伴

當(dāng)節(jié)點(diǎn)A加入到網(wǎng)絡(luò)中之后,一般會(huì)與正活躍的節(jié)點(diǎn)連接。如果難以找到這樣的節(jié)點(diǎn),節(jié)點(diǎn)A會(huì)根據(jù)自己得到的IP地址列表,來(lái)找到那些長(zhǎng)期穩(wěn)定運(yùn)行的節(jié)點(diǎn),這種節(jié)點(diǎn)就是種子節(jié)點(diǎn),通過(guò)種子節(jié)點(diǎn)能夠幫助節(jié)點(diǎn)A更快速的發(fā)現(xiàn)網(wǎng)絡(luò)中的其他節(jié)點(diǎn)。

三、比特幣網(wǎng)絡(luò)中不同節(jié)點(diǎn)的數(shù)據(jù)如何同步

比特幣網(wǎng)絡(luò)中的節(jié)點(diǎn)在連接到相鄰的節(jié)點(diǎn)之后,首先會(huì)和相鄰的節(jié)點(diǎn)同步數(shù)據(jù),然后再去和更多的節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交換和同步。

在節(jié)點(diǎn)與節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)同步的過(guò)程中會(huì)根據(jù)一個(gè)哈希值(可以暫時(shí)理解為一種獨(dú)一無(wú)二的數(shù)據(jù)標(biāo)記,后面期刊中會(huì)詳細(xì)介紹)來(lái)判斷誰(shuí)的數(shù)據(jù)為最新的數(shù)據(jù)。

如果節(jié)點(diǎn)發(fā)現(xiàn)本身的數(shù)據(jù)不是最新的,就會(huì)尋找擁有最新數(shù)據(jù)的節(jié)點(diǎn)進(jìn)行下載。如果發(fā)現(xiàn)自己的數(shù)據(jù)為最新數(shù)據(jù),則會(huì)告訴其他節(jié)點(diǎn)需要從它這里補(bǔ)充數(shù)據(jù)。其他的節(jié)點(diǎn)下載數(shù)據(jù)并驗(yàn)證通過(guò)之后,將會(huì)更新到自己的本地?cái)?shù)據(jù)中。

通過(guò)這種方式能保證網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都能及時(shí)得到最新數(shù)據(jù)。

四、總結(jié)

分布式是區(qū)塊鏈的核心,我們通過(guò)了解節(jié)點(diǎn)之間如何建立連接,應(yīng)該體會(huì)到分布式它不僅僅是一種網(wǎng)路架構(gòu),更是一種先進(jìn)的思想!

點(diǎn)對(duì)點(diǎn)之間的影響通過(guò)網(wǎng)絡(luò)形成了非線性的因果關(guān)系,整個(gè)網(wǎng)絡(luò)形成了去中心,自組織的形態(tài),這是事物發(fā)展的必然過(guò)程。更加高效、更加平等、更加低成本是新制度進(jìn)化的必然方向。

分布式思想可能給我們帶來(lái)的不僅僅是科技上的革命,更可能會(huì)帶來(lái)整個(gè)人類社會(huì)結(jié)構(gòu)的改變。

讓我們拭目以待!

 

作者:liheng,區(qū)塊鏈探索者、互聯(lián)網(wǎng)產(chǎn)品經(jīng)理,超級(jí)個(gè)體修煉中,只創(chuàng)作對(duì)用戶有價(jià)值的內(nèi)容

本文由 @liheng 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來(lái)自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 666

    來(lái)自重慶 回復(fù)
专题
15543人已学习14篇文章
痛点是什么?为什么用户会有痛点?如何抓住用户痛点?优先解决哪些用户痛点?本专题的文章分享了以上的问题详解。
专题
15516人已学习16篇文章
随着互联网时代的蓬勃发展,互联网平台活动运营对于互联网企业业务十分重要。本专题的文章分享了如何做活动运营。
专题
52444人已学习14篇文章
现在业内很多人都强调产品思维,但它到底是什么?又有何用武之地呢?
专题
53067人已学习18篇文章
做了好多年的产品经理,该不会连注册登录功能设计都没整明白吧?
专题
15826人已学习13篇文章
作为一名产品经理,需要持续对自己的经验进行总结并不断更新迭代。本专题的文章分享了产品设计方法论。