分析位元幣網路 一種去中心化 點對點的網路架構

2021-09-11 11:07:35 字數 1322 閱讀 8565

位元幣採用了基於網際網路的點對點(p2p:peer-to-peer)分布式網路架構。 位元幣網路可以認為是按照位元幣p2p協議執行的一系列節點的集合。 本文來分析下位元幣網路,了解它跟傳統中心化網路的區別,以及位元幣網路是如何發現相鄰節點的。

為了更好的理解p2p網路,我們先來看看傳統的中心化模型:

這是一種典型的星型(「中心化」)結構,我們常見b/s及c/s網路架構就是這種模型,c1 、c2 、c3等之間沒法直接的連線,c節點如果要連線必須要通過中心化s節點做為橋梁。 中心化節點充當服務者、中介作用,比如我們沒有辦法把資金直接從乙個人轉移給另乙個人,必須通過銀行這個中介。

p2p網路是指位於同一網路中的每台計算機都彼此對等,各個節點共同提供網路服務,不存在任何「特殊」節點,每個網路節點以扁平(flat)的拓撲結構相互連通。

p2p網路不僅僅去除了中心化帶來的風險(中心化可能作惡),還可以提高傳輸的效率。(中心化網路當能也有優點)

既然每個網路節點都是平等的(是指在網路層面上節點是平等的,但各節點在功能上可以有不同的分工, 如錢包節點、挖礦節點等),不存在任何「特殊」中心節點,那麼當新的網路節點啟動後,它是如何跟其他的節點建立連線,從而加入到位元幣網路呢?

在中心化網路中,新加入的節點只要連線「特殊」的中心節點就可以加入網路。

為了能夠加入到位元幣網路,位元幣客戶端會做一下幾件事情:

節點會記住它最近成功連線的網路節點,當重新啟動後它可以迅速與先前的對等節點網路重新建立連線。

節點會在失去已有連線時嘗試發現新節點。

當建立乙個或多個連線後,節點將一條包含自身ip位址訊息傳送給其相鄰節點。相鄰節點再將此訊息依次**給它們各自的相鄰節點,從而保證節點資訊被多個節點所接收、保證連線更穩定。

新接入的節點可以向它的相鄰節點傳送獲取位址getaddr訊息,要求它們返回其已知對等節點的ip位址列表。節點可以找到需連線到的對等節點。

位元幣節點通常採用tcp協議、使用8333埠與相鄰節點建立連線, 建立連線時也會有認證「握手」的通訊過程,用來確定協議版本,軟體版本,節點ip,區塊高度等。

當節點連線到相鄰節點後,接著就開始跟相鄰節點同步區塊鏈資料(輕量級錢包應用其實不會同步所有區塊資料),節點們會交換乙個getblocks訊息,它包含本地區塊鏈最頂端的雜湊值。如果某個節點識別出它接收到的雜湊值並不屬於頂端區塊,而是屬於乙個非頂端區塊的舊區塊,就說其自身的本地區塊鏈比其他節點的區塊鏈更長,並告訴其他節點需要補充區塊,其他節點傳送getdata訊息來請求區塊,驗證後更新到本地區塊鏈中。

☛ 深入淺出區塊鏈 - 系統學習區塊鏈,打造最好的區塊鏈技術部落格。

☛ 我的知識星球為各位解答區塊鏈技術問題,歡迎加入討論。

分析位元幣網路 一種去中心化 點對點的網路架構

本文發表於鏈客區塊鏈技術問答社群,分享一些經驗給大家,本本文分析位元幣網路,了解和傳統中心化網路的區別,以及如何發現相鄰節點。位元幣採用基於網路的點對點分布式網路框架,可以認為時按照位元幣p2p協議執行的節點集合。中心化網路 這是典型的中心化結構,常見b s和c s網路架構就是這種模型,c1 c2 ...

分析位元幣網路 一種去中心化 點對點的網路架構

鏈客,專為開發者而生,有問必答!分析位元幣網路 一種去中心化 點對點的網路架構11 位元幣採用基於網路的點對點分布式網路框架,可以認為時按照位元幣p2p協議執行的節點集合。中心化網路 為了更好的理解p2p網路,我們先來看看傳統的中心化模型 這是典型的中心化結構,常見b s和c s網路架構就是這種模型...

一種被動的Tor網路去匿名化方法

本文講述的是一種被動的tor網路去匿名化方法,旨在服務社會,供安全研究人員學習使用,請勿用於其他非法用途,違者後果自負。目前針對tor的攻擊檢測方法都是採用主動攻擊,本文將介紹一種被動攻擊的去匿名化方法。一 當前 tor 網路檢測方法 當前對tor網路的攻擊檢測一般有以下幾種方法 1.控制出口節點,...