以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > 幣贏 > Info

技術 | IPFS網絡是如何組建的?_ODE:NODE

Author:

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

回顧

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

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

IPFS網絡初識

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

遼寧省“十四五”規劃:利用區塊鏈等技術 建設面向消費品行業的服務平臺:2月1日,遼寧省政府新聞辦召開貫徹省“兩會”精神新聞發布會。會議指出,“十四五”期間,遼寧省工信廳將加強新一代信息技術與制造業融合,用數字經濟為優勢產業賦能增效,打造一批典型應用場景,布局一批智能工廠、智能車間,加快培育網絡化協同、智能化制造等新模式新業態。利用區塊鏈等技術,建設面向消費品行業的服務平臺,擴大個性化定制產品占比。(遼寧日報)[2021/2/2 18:41:19]

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

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

現場丨西安市大數據資源管理局副局長:西安將充分利用區塊鏈技術 打造數字經濟名城:金色財經現場報道,10月15日,在由西安市大數據資源管理局主辦,西安市區塊鏈技術應用協會等單位承辦,金色財經和IPFS100.COM等聯合承辦的首屆中國(西安)區塊鏈產業發展論壇上,西安市大數據資源管理局副局長張偉明發表致辭指出:“西安在2019年制定了在重點領域應用區塊鏈技術大發展的相關計劃與目標。未來,西安將充分利用數字化技術和智能化設施,積極探索城市全新治理模式,開展數據的動態采集、實時監測和智能分析,為城市治理提供科學依據;也將充分利用區塊鏈技術,強化網絡技術基礎設施建設,推動5G技術在城市社區的普及應用,著力提高社區管理的能力和水平。尤其是應推動數字化技術在交通、環境、市政等民生領域的應用,加快推進城市傳統基礎設施的數字化改造和升級,不斷提升城市公共服務的精細化、智能化、智慧化水平。”[2020/10/15]

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

廣東省東莞市:運用區塊鏈等技術 建設“互聯網+電梯”監管平臺:據廣東省東莞市市場監管局消息,近日,廣東省東莞市人民政府辦公室印發了《關于進一步加強住宅小區電梯安全管理工作的意見》(以下簡稱“《意見》”)。《意見》要求市相關行業主管部門和各鎮街(園區)積極運用云計算、物聯網、區塊鏈、人工智能等數字新技術手段,建設“互聯網+電梯”監管平臺,通過監管系統互聯互通和監管數據共享共用,構建監管風險控制體系,建立以質量和效果為主導的維保監督評價機制,引導住宅小區電梯維保向信息化、精準化、智能化轉變,推動監管創新,增強工作實效。[2020/8/14]

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

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

福州一批新建項目將使用區塊鏈技術 包括渣土車監管平臺等:4月14日消息,針對游雄峰代表提出的關于推廣區塊鏈技術應用和制定相關政策法規的建議,福州市大數據發展管理委員會近日表示,福州市積極推進區塊鏈落地應用,渣土車監管平臺等一批新建項目中將使用區塊鏈技術。 

在加強區塊鏈行業監管、制定和完善相關政策法規方面,福州市成立了區塊鏈發展工作領導小組。市政府也加強了對虛擬貨幣交易場所、首次代幣發行排查清理,協調金融機構和非銀行支付機構不得開展與代幣發行融資交易相關的業務,加強風險防范。此外,福州市政府已規劃在濱海新城建立區塊鏈監管沙盒,進一步加強區塊鏈行業監管研究。(福州新聞網)[2020/4/14]

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

動態 | 香港交易所質疑區塊鏈技術 遭到業內人士反駁:據南華早報消息,香港交易所曾在其報告中表示,區塊鏈在其證券清算和結算系統中的應用將陷入挑戰,因為該技術的局限性可能會妨礙高頻交易者并引發數據泄漏問題。對此,基金交易服務提供商Calastone總經理Vince Lucey表示,比特幣區塊鏈可能會遇到性能和速度問題,但當區塊鏈技術應用于金融市場時,這些問題大概率是無關緊要的,因為這些可能會是私人的、基于許可的區塊鏈。Vince Lucey表示:“如果設計得當,這些平臺的性能將不再是一個問題。”[2018/10/25]

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

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

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

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

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

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

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

IPFS網絡構建

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

▲?Bootstrap階段

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

▲?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:ODENODEFSN區塊鏈ODEMArchive NodeFSN價格區塊鏈簡介

幣贏
俄羅斯聯邦政府財政金融大學專家:數字貨幣或讓美元成為大輸家_數字貨幣:區塊鏈最新應用

據俄羅斯今日經濟網站消息,俄羅斯聯邦政府財政金融大學專家康斯坦丁·奧爾多夫表示,美聯儲已開始研究發行電子美元的問題,這預示著世界金融體系將出現變化.

1900/1/1 0:00:00
IOTA 2021年路線圖:第四季度計劃發布Coordicide_RIO:iota幣目前的最新消息

IOTA基金會聯合創始人DominikSchiener概述了IOTA2021年的路線圖,并指出智能合約和代幣化資產的關鍵作用.

1900/1/1 0:00:00
以太坊 2.0 信標鏈超 70 節點集體遭到 slash 懲罰,疑似與權益質押服務商 Staked 有關_SLA:LAS

從今日早間7點開始,以太坊2.0信標鏈超70節點集體遭到slash懲罰,每個驗證節點的懲罰金額在0.2至0.3枚ETH左右.

1900/1/1 0:00:00
專家:數字貨幣普及推廣仍面臨五重難題_區塊鏈:區塊鏈技術通俗講解知乎

來源:中國經濟時報,作者:王小霞作為新興事物,數字貨幣近兩年受到社會各界廣泛關注。尤其是近期,數字貨幣熱度大漲,多地宣布推進數字貨幣試點.

1900/1/1 0:00:00
Cosmos 公布影響“星際之門 Stargate”兼容版本的 DoS 漏洞,目前漏洞已修復_COS:COSMIK

跨鏈項目Cosmos開發人員公布關于影響“星際之門Stargate“兼容版本的拒絕服務漏洞詳細信息.

1900/1/1 0:00:00
NFT碎片化會成為社交代幣發展的關鍵嗎?_NFT:VID

原文標題:《ThefractionalizationofNFTswillleadtobettersocial?tokens》原文作者:BrianFlynn在過去的幾個月時間.

1900/1/1 0:00:00
ads