買以太坊 買以太坊
Ctrl+D 買以太坊
ads

SNO:技術 | IPFS網絡是如何組建的?_NODE

Author:

Time:1900/1/1 0:00:00

回顧

IPFS-InterPlanetaryFileSystem星際文件系統,是一個點對點的分布式文件存儲系統,IPFS的愿景是構建一個全世界的分布式網絡,用來替代傳統中心化的服務器模式,所有的IPFS節點組成一個分布式網絡,每個節點都可以存儲文件,用戶可以從IPFS構建的網絡中以DHT(DistributedHashTable,分布式哈希表)?的方式獲取文件,從而實現了新一代的完全去中心化的網絡,旨在取代現有的萬維網。IPFS功能很豐富,如DHT組網,文件存儲,Bitswap文件交換等功能。

文件存儲和文件交換的技術詳解可以通過之前的推文內容進行了解,今天我們來了解這個文件系統的“地基”——網絡模塊。

IPFS網絡初識

IPFS是一個開源項目,要達到它聲稱的構建一個全世界的分布式網絡的目標,那么他必然要先解決不同國家、不同地區節點的連接問題。

公告 | 安永發布第三代零知識證明區塊鏈技術 可通過批量處理降低交易成本:據安永官網今日公告,安永已在以太坊公共區塊鏈上的公共領域發布第三代零知識證明(ZKP)區塊鏈技術。第三代ZKP區塊鏈技術可通過在一次交易中將多個私人轉讓批量處理來顯著降低交易成本,有助于使公共區塊鏈上的私人交易更具可擴展性。[2019/12/19]

首先,看一下IPFS網絡部分配置,如下圖所示,紅框內部的Swarm是IPFS監聽的網絡地址,其中支持ipv4和ipv6協議,且默認支持QUIC協議。

*QUIC協議是由google最先提出的,目前已經提交給互聯網工程任務小組,成為了正式的網絡規范,相對于TCP來說QUIC網絡傳輸協議的傳輸速度更快。

IPFS節點啟動之后日志如下圖所示,可以看到IPFS節點監聽了以下網絡地址,其中包括本地的、局域網、廣域網的地址,最后還有/p2p-circuit地址。

聲音 | 貴陽市高新區黨工委書記:大力發展區塊鏈等技術 加快形成全國首個完善應用5G技術的城市:據貴陽日報消息,近日,貴陽市政協副主席、高新區黨工委書記、白云區委書記楊明晉說,高新區將突出大數據引領、大數據創新、大數據融合,完善數據從匯聚到清洗、加工、開放、共享、應用的全生態鏈、全產業鏈、全服務鏈;大力發展人工智能、物聯網、區塊鏈、量子信息和5G移動通信產業,加快打造“一室一網一平臺N中心”“一個產業聯盟、一個產業基地”的5G產業體系,加快形成全國首個完善應用5G技術的城市。[2019/1/2]

問題來了,為什么需要監聽這么多地址?

那是因為IPFS是一個開源項目,為了讓全世界各地的節點連接起來則必須要解決各種網絡情況下節點連接的問題。

監聽本地地址,這樣本地啟動多個IPFS節點,它們之間可以以該地址進行連接,監聽局域網地址,這樣內網內啟動多個IPFS節點,它們之間可以以該局域網地址相互連接,監聽廣域網地址,這樣公網中啟動多個IPFS節點,它們之間可以以該廣域網地址進行連接。

聲音 | 納斯達克報告:只有5%受訪公司應用了區塊鏈技術 :根據納斯達克新近的報告,股票市場和交易所的IT供應商現在還處于探索分布式賬本好處的初期階段,只有5%的受訪公司表示以某種形式應用了區塊鏈技術。70%的IT供應商表示他們在開發測試項目,20%表示沒有相關計劃,5%表示缺乏相關技術和人才。[2018/6/27]

通過上述方式就解決了大部分網絡情況下的IPFS節點的網絡連接問題:

2個節點都在同一主機:通過127.0.0.1地址連接

2個節點在同一個內網內:通過局域網地址連接

2個節點都有公網地址:通過公網地址連接

1個節點在內網,1個節點在公網:內網的節點通過在公網節點的公網地址連接

這里有一個問題,如果2個節點處于兩個不同內網環境,由于存在NAT設備,NAT設備可能是對稱型,對稱型的NAT設備是沒有辦法穿透的,所以IPFS提供了relay的方式解決不同內網環境下節點的連接問題,上面提到的監聽/p2p-circuit地址則是為了解決該問題,對于2個處于不同內網環境不能直接連接的節點,通過配置relay節點中轉從而建立連接。

中國VC教父閻焱:區塊鏈本身是好技術 但現階段還存在很多弊端:據網易科技報道,賽富亞洲投資基金創始合伙人、有“中國VC教父”之稱的閻焱表示,區塊鏈技術本身是很好的技術,但現階段還存在很多弊端,對其開發的能力不夠。同時他認為,99%的人是不關注區塊鏈。而中國雖然有扎扎實實發展的區塊鏈公司,但數量很少,以以太坊為例,世界上有1000個,中國可能只有1、2家。[2018/3/25]

至此,IPFS解決了不同網絡環境下的節點之間建立連接的問題,下面我們來看一下IPFS是如何構建大規模的分布式節點網絡,將處于全世界的不同地區的各個節點連接起來的。

IPFS網絡構建

IPFS網絡構建的過程可以看作是兩個階段:

▲?Bootstrap階段

IPFS節點在啟動之前需要配置它的Bootstrap節點,配置文件中相關配置如下圖所示,Bootstrap配置中配置了IPFS節點啟動時需要連接的所有種子節點列表,這些節點地址列表信息是默認的,如果需要搭建IPFS私有網絡可以修改成自己的種子節點列表。默認提供的種子節點都是具有公網地址的節點,IPFS節點啟動的時候首先連接該種子節點,后續通過該種子節點去發現IPFS網絡中更多的節點,從而進行連接,也就是DHT組網階段。

浙江省多家銀行機構都已在積極擁抱區塊鏈技術 區塊鏈賦能銀行新活力:錢江晚報發文稱,浙江省多家銀行機構都已在積極擁抱區塊鏈技術。近日,建設銀行浙江省分行與杭州聯合銀行合作,實現業內首筆跨行區塊鏈福費廷(出口信貸的一種類型)交易,這是建設銀行在“區塊鏈+貿易金融”領域的又一重大突破。此外,杭州銀行也在不久前宣布與騰訊聯手打造智慧銀行,深入探索在區塊鏈、大數據、AI等新技術應用的實踐。據悉,今年浙商銀行將區塊鏈技術運用于財富管理的“財易云”平臺,日前已投產上線。[2018/3/13]

▲?DHT組網階段

IPFS節點連接種子節點成功以后則去通過DHT去發現其他節點,關于DHT的詳解可以看這篇文章《Libp2p中DHT和Bitswap詳解》。

發現其他節點之后則嘗試進行連接,連接成功的節點會加入到該節點的節點列表,以便后續可以直接與該節點通信,考慮到全世界的IPFS節點規模很大,不可能每個節點和其他節點保持長連接,所以對每個節點的連接數量做了限制,一般節點連接數量都在1千以下,對于沒有連接的節點需要通信的話,可以通過DHT找到該節點地址,然后連接該節點進行通信,這樣就構成了大規模的分布式節點網絡。

我們可以通過一個示例展示上述過程。下圖是一個常見的網絡拓撲架構,有三個網絡分別連接了Internet,IPFSnode1部署在具有公網ip的服務器上,外部可以直接訪問該節點,IPFSnode2和IPFSnode3都部署在對稱型NAT設備后面,外部不能訪問該節點。

在上面的網絡架構下,處于公網的IPFSnode1作為種子節點,種子節點最先啟動,然后IPFSnode2,node3,node4,node5的種子節點配置成IPFSnode1,分別啟動后首先連接IPFSnode1,連接成功后通過DHT發現其他節點最后分別連接,對于IPFSnode1,它連接的節點地址列表如下圖所示,由于IPFSnode2,node3,node4,node5均處于NAT設備后面,所以IPFSnode1節點列表中這些節點的端口都是NAT設備映射后的端口。

對于IPFSnode3來說,它的節點地址列表中,IPFSnode1的地址是公網地址,由于IPFSnode3和IPFSnode2都處于NAT設備后面,不能直接連接,所以IPFSnode2的地址是relay地址,IPFSnode1節點作為relay節點,IPFSnode3給IPFSnode2發消息時通過IPFSnode1轉發,relay地址格式為:

Relay節點的地址/p2p-circuit/p2p/目標節點id

而IPFSnode3的節點地址列表中,IPFSnode4和IPFSnode5的地址均為局域網地址,這樣就完成了公網節點、處于NAT設備后的局域網節點的組網過程。

總結

以上就是IPFS網絡的組建過程,為了方便描述只是以幾個IPFS節點為例。

實際上IPFS的這種網絡組建方式也能很好地支持超大規模節點的組網,當節點規模很大的時候,設置數十個節點作為種子節點,通過DHT組網就能完成數萬甚至更多節點的組網,此時每個節點的長連接數量保持在數百個,后續節點間通信時,如果還沒有建立連接,可以通過DHT根據節點id查詢該節點的地址信息,然后通過該地址連接該節點最后完成通信過程。

IPFS網絡的這種組建方式也非常值得分布式系統學習和借鑒。

作者簡介

姚文豪來自數據網格實驗室BitXMesh團隊數據平臺架構師

Tags:NODEODEFSNSNOnode幣總量code幣如何挖FSN價格SNOW

以太坊交易
COIN:數字人民幣錢包十問(一):申請開通錢包如何實現?_RRCoin

前言:與數字人民幣“錢包”相關的專利一共有23項,這些專利對數字人民幣錢包的設計做出了詳細的闡述.

1900/1/1 0:00:00
DAO:報名人數超450萬人!成都數字人民幣消費紅包預約數據出爐:中簽率4%_區塊鏈

本文來源:每日經濟新聞,作者:張祎???日前,成都市人民政府、人民銀行成都分行共同組織開展的成都“數字人民幣紅包迎新春”活動引發全城關注,在2月24日08:00~2月25日24:00的預約期內.

1900/1/1 0:00:00
DOT:Gavin Wood:如何分配國庫資金?以及國庫的三種使用方式_VIN

加入PolkaWorld社區,共建Web3.0! 上個月底,波卡創始人GavinWood博士做客區塊鏈投資媒體RealVision.

1900/1/1 0:00:00
ASS:人物故事 | 自學成才的天賦加密藝術家Lane_比特幣行情軟件aicoin

采編:智銘 藝術家來自cryptoart.ai1.可以像我們介紹一下你自己嗎?我是萊恩,我出生于德國,我的父母是軍人,現居住在佛羅里達.

1900/1/1 0:00:00
GBT:觀點 | 明莊灰度不是加密資產「救市主」_比特幣中國官網購買能找回嗎

?加密資產「巨鯨」灰度的一舉一動都引人關注,在它即將上新LINK、XTZ、MANA、FIL、LPT以及BAT信托產品的消息傳出后,這6種資產迎來一波上漲.

1900/1/1 0:00:00
ETF:灰度CEO回應6項新信托基金:灰度會進行信托基金預申請,但不意味著會將產品推向市場_比特幣

針對此前“灰度正組建LINK、FIL等6項新信托基金”一事,灰度CEOMichaelSonnenshein在接受采訪時回應稱,信托基金的成立并不意味著灰度將推出這些產品.

1900/1/1 0:00:00
ads