国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 專題 > 區塊鏈 > 正文

分析比特幣網絡:了解去中心化以及發現相鄰節點

2020-02-25 19:27:41
字體:
來源:轉載
供稿:網友

  比特幣采用了基于互聯網的點對點(P2P:peer-to-peer)分布式網絡架構。

  比特幣網絡可以認為是按照比特幣P2P協議運行的一系列節點的集合。

  本文來分析下比特幣網絡,了解它跟傳統中心化網絡的區別,以及比特幣網絡是如何發現相鄰節點的。

  中心化網絡

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

  這是一種典型的星型(“中心化”)結構,我們常見B/S及C/S網絡架構就是這種模型,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下載的種子文件道理是一樣的),就可以通過種子節點來快速發現網絡中的其他節點。

  節點通信簡述

  比特幣節點通常采用TCP協議、使用8333端口與相鄰節點建立連接, 建立連接時也會有認證“握手”的通信過程,用來確定協議版本,軟件版本,節點IP,區塊高度等。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芦山县| 德保县| 荔波县| 桐乡市| 中阳县| 林州市| 安远县| 灵川县| 阳曲县| 汉川市| 疏勒县| 修水县| 江津市| 女性| 资中县| 屯门区| 唐海县| 盖州市| 阳曲县| 盐边县| 丽水市| 金寨县| 古交市| 旺苍县| 迭部县| 安康市| 漠河县| 南华县| 康定县| 通州区| 霸州市| 乐平市| 茂名市| 澄城县| 满城县| 扶风县| 兰考县| 渭南市| 玛曲县| 新疆| 大埔县|