摘要:本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)原文鏈接分析比特幣網(wǎng)絡(luò)一種去中心化點對點的網(wǎng)絡(luò)架構(gòu)原文已更新,請讀者前往原文閱讀比特幣采用了基于互聯(lián)網(wǎng)的點對點分布式網(wǎng)絡(luò)架構(gòu)。比特幣網(wǎng)絡(luò)可以認(rèn)為是按照比特幣協(xié)議運(yùn)行的一系列節(jié)點的集合。
本文首發(fā)于深入淺出區(qū)塊鏈社區(qū)
原文鏈接:分析比特幣網(wǎng)絡(luò):一種去中心化、點對點的網(wǎng)絡(luò)架構(gòu)原文已更新,請讀者前往原文閱讀
比特幣采用了基于互聯(lián)網(wǎng)的點對點(P2P:peer-to-peer)分布式網(wǎng)絡(luò)架構(gòu)。
比特幣網(wǎng)絡(luò)可以認(rèn)為是按照比特幣P2P協(xié)議運(yùn)行的一系列節(jié)點的集合。
本文來分析下比特幣網(wǎng)絡(luò),了解它跟傳統(tǒng)中心化網(wǎng)絡(luò)的區(qū)別,以及比特幣網(wǎng)絡(luò)是如何發(fā)現(xiàn)相鄰節(jié)點的。
為了更好的理解P2P網(wǎng)絡(luò),我們先來看看傳統(tǒng)的中心化模型:
這是一種典型的星型(“中心化”)結(jié)構(gòu),我們常見B/S及C/S網(wǎng)絡(luò)架構(gòu)就是這種模型,C1 、C2 、C3等之間沒法直接的連接,C節(jié)點如果要連接必須要通過中心化S節(jié)點做為橋梁。
中心化節(jié)點充當(dāng)服務(wù)者、中介作用,比如我們沒有辦法把資金直接從一個人轉(zhuǎn)移給另一個人,必須通過銀行這個中介。
P2P網(wǎng)絡(luò)是指位于同一網(wǎng)絡(luò)中的每臺計算機(jī)都彼此對等,各個節(jié)點共同提供網(wǎng)絡(luò)服務(wù),不存在任何“特殊”節(jié)點,每個網(wǎng)絡(luò)節(jié)點以扁平(flat)的拓?fù)浣Y(jié)構(gòu)相互連通。
對比中心化網(wǎng)絡(luò),在P2P網(wǎng)絡(luò)中不存在任何服務(wù)端(server)、中央化的服務(wù)。
P2P網(wǎng)絡(luò)的節(jié)點之間交互連接、協(xié)同,每個節(jié)點在對外提供服務(wù)的同時也使用網(wǎng)絡(luò)中其他節(jié)點所提供的服務(wù),每個節(jié)點即是服務(wù)端又是客戶端。
P2P網(wǎng)絡(luò)模型除應(yīng)用于比特幣網(wǎng)絡(luò),使用廣泛的BT下載就是基于P2P網(wǎng)絡(luò)。
P2P網(wǎng)絡(luò)不僅僅去除了中心化帶來的風(fēng)險(中心化可能作惡),還可以提高傳輸?shù)男?。(中心化網(wǎng)絡(luò)當(dāng)能也有優(yōu)點)
如何發(fā)現(xiàn)節(jié)點既然每個網(wǎng)絡(luò)節(jié)點都是平等的(是指在網(wǎng)絡(luò)層面上節(jié)點是平等的,但各節(jié)點在功能上可以有不同的分工, 如錢包節(jié)點、挖礦節(jié)點等),不存在任何“特殊”中心節(jié)點,那么當(dāng)新的網(wǎng)絡(luò)節(jié)點啟動后,它是如何跟其他的節(jié)點建立連接,從而加入到比特幣網(wǎng)絡(luò)呢?
在中心化網(wǎng)絡(luò)中,新加入的節(jié)點只要連接“特殊”的中心節(jié)點就可以加入網(wǎng)絡(luò)。
為了能夠加入到比特幣網(wǎng)絡(luò),比特幣客戶端會做一下幾件事情:
節(jié)點會記住它最近成功連接的網(wǎng)絡(luò)節(jié)點,當(dāng)重新啟動后它可以迅速與先前的對等節(jié)點網(wǎng)絡(luò)重新建立連接。
節(jié)點會在失去已有連接時嘗試發(fā)現(xiàn)新節(jié)點。
當(dāng)建立一個或多個連接后,節(jié)點將一條包含自身IP地址消息發(fā)送給其相鄰節(jié)點。相鄰節(jié)點再將此消息依次轉(zhuǎn)發(fā)給它們各自的相鄰節(jié)點,從而保證節(jié)點信息被多個節(jié)點所接收、保證連接更穩(wěn)定。
新接入的節(jié)點可以向它的相鄰節(jié)點發(fā)送獲取地址getaddr消息,要求它們返回其已知對等節(jié)點的IP地址列表。節(jié)點可以找到需連接到的對等節(jié)點。
在節(jié)點啟動時,可以給節(jié)點指定一個正活躍節(jié)點IP, 如果沒有,客戶端也維持一個列表,列出了那些長期穩(wěn)定運(yùn)行的節(jié)點。這樣的節(jié)點也被稱為種子節(jié)點(其實和BT下載的種子文件道理是一樣的),就可以通過種子節(jié)點來快速發(fā)現(xiàn)網(wǎng)絡(luò)中的其他節(jié)點。
節(jié)點通信簡述比特幣節(jié)點通常采用TCP協(xié)議、使用8333端口與相鄰節(jié)點建立連接, 建立連接時也會有認(rèn)證“握手”的通信過程,用來確定協(xié)議版本,軟件版本,節(jié)點IP,區(qū)塊高度等。
當(dāng)節(jié)點連接到相鄰節(jié)點后,接著就開始跟相鄰節(jié)點同步區(qū)塊鏈數(shù)據(jù)(輕量級錢包應(yīng)用其實不會同步所有區(qū)塊數(shù)據(jù)),節(jié)點們會交換一個getblocks消息,它包含本地區(qū)塊鏈最頂端的哈希值。如果某個節(jié)點識別出它接收到的哈希值并不屬于頂端區(qū)塊,而是屬于一個非頂端區(qū)塊的舊區(qū)塊,就說其自身的本地區(qū)塊鏈比其他節(jié)點的區(qū)塊鏈更長,并告訴其他節(jié)點需要補(bǔ)充區(qū)塊,其他節(jié)點發(fā)送getdata消息來請求區(qū)塊,驗證后更新到本地區(qū)塊鏈中。
深入淺出區(qū)塊鏈 - 系統(tǒng)學(xué)習(xí)區(qū)塊鏈,打造最好的區(qū)塊鏈技術(shù)博客
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/23937.html
摘要:引言給迷失在如何學(xué)習(xí)區(qū)塊鏈技術(shù)的同學(xué)一個指引,區(qū)塊鏈技術(shù)是隨比特幣誕生,因此要搞明白區(qū)塊鏈技術(shù),應(yīng)該先了解下比特幣。但區(qū)塊鏈技術(shù)不單應(yīng)用于比特幣,還有非常多的現(xiàn)實應(yīng)用場景,想做區(qū)塊鏈應(yīng)用開發(fā),可進(jìn)一步閱讀以太坊系列。 本文始發(fā)于深入淺出區(qū)塊鏈社區(qū), 原文:區(qū)塊鏈技術(shù)學(xué)習(xí)指引 原文已更新,請讀者前往原文閱讀 本章的文章越來越多,本文是一個索引帖,方便找到自己感興趣的文章,你也可以使用左側(cè)...
摘要:區(qū)塊鏈作為比特幣交易的底層技術(shù),支撐了比特幣安全性和可靠性交易。而比特幣的一舉一動無形中提高了人們對區(qū)塊鏈的關(guān)注度。當(dāng)前,區(qū)塊鏈技術(shù)正處于階段,技術(shù)服務(wù)商將是該階段最先受益的,其次為金融供應(yīng)鏈和文娛領(lǐng)域應(yīng)用場景較為成熟的公司。區(qū)塊鏈作為比特幣交易的底層技術(shù),支撐了比特幣安全性和可靠性交易。而比特幣的一舉一動無形中提高了人們對區(qū)塊鏈的關(guān)注度。針對這一技術(shù)在上的價值以及方向,不少機(jī)構(gòu)認(rèn)為,將率先...
摘要:和比特幣協(xié)議有所不同的是,以太坊的設(shè)計十分靈活,極具適應(yīng)性。超級賬本區(qū)塊鏈的商業(yè)應(yīng)用超級賬本超級賬本是基金會下的眾多項目中的一個。證書頒發(fā)機(jī)構(gòu)負(fù)責(zé)簽發(fā)撤 showImg(https://segmentfault.com/img/bV2ge9?w=900&h=385); 從比特幣開始 一個故事告訴你比特幣的原理及運(yùn)作機(jī)制 這篇文章的定位會比較科普,盡量用類比的方法將比特幣的基本原理講出來...
摘要:不光是技術(shù)領(lǐng)域,其他如哲學(xué)自然科學(xué)數(shù)學(xué)等領(lǐng)域,這種現(xiàn)象也是屢見不鮮,區(qū)塊鏈的產(chǎn)生和發(fā)展也是遵從了這個模式。以太坊登場,區(qū)塊鏈以太坊是創(chuàng)立發(fā)明的,這個俄羅斯小伙子很早就在比特幣領(lǐng)域做開發(fā)新聞的報道,最后自立門戶開發(fā)了以太坊。 1、史前紀(jì)事,區(qū)塊鏈?zhǔn)非霸?showImg(http://files.jouypub.com/static/images/bd67cbaca4ac41a78e01...
摘要:但只要提到去中心化,人們第一時間想到的還是去中心化交易所。那么,交易所為什么要去中心化安全問題自年開始,全世界范圍內(nèi)的中心化交易所就接連出現(xiàn)代幣被黑客盜走的事件。 去中心化的前世今生1990年,伯納斯?李爵士發(fā)明了萬維網(wǎng),他希望網(wǎng)絡(luò)是去中心化的,能將世界所有人都聚合在一起,互相協(xié)作,所以他將萬維網(wǎng)免費(fèi)交給世人使用。但不久前,伯納斯?李爵士在接受《名利場》雜志采訪時,表達(dá)了對當(dāng)前互聯(lián)網(wǎng)的...
閱讀 721·2021-10-09 09:41
閱讀 712·2019-08-30 15:53
閱讀 1142·2019-08-30 15:53
閱讀 1271·2019-08-30 11:01
閱讀 1634·2019-08-29 17:31
閱讀 1061·2019-08-29 14:05
閱讀 1784·2019-08-29 12:49
閱讀 469·2019-08-28 18:17