回顧
IPFS-InterPlanetaryFileSystem星際文件系統,是一個點對點的分布式文件存儲系統,IPFS的愿景是構建一個全世界的分布式網絡,用來替代傳統中心化的服務器模式,所有的IPFS節點組成一個分布式網絡,每個節點都可以存儲文件,用戶可以從IPFS構建的網絡中以DHT(DistributedHashTable,分布式哈希表)?的方式獲取文件,從而實現了新一代的完全去中心化的網絡,旨在取代現有的萬維網。IPFS功能很豐富,如DHT組網,文件存儲,Bitswap文件交換等功能。
文件存儲和文件交換的技術詳解可以通過之前的推文內容進行了解,今天我們來了解這個文件系統的“地基”——網絡模塊。
IPFS網絡初識
IPFS是一個開源項目,要達到它聲稱的構建一個全世界的分布式網絡的目標,那么他必然要先解決不同國家、不同地區節點的連接問題。
現場丨西安市大數據資源管理局副局長:西安將充分利用區塊鏈技術 打造數字經濟名城:金色財經現場報道,10月15日,在由西安市大數據資源管理局主辦,西安市區塊鏈技術應用協會等單位承辦,金色財經和IPFS100.COM等聯合承辦的首屆中國(西安)區塊鏈產業發展論壇上,西安市大數據資源管理局副局長張偉明發表致辭指出:“西安在2019年制定了在重點領域應用區塊鏈技術大發展的相關計劃與目標。未來,西安將充分利用數字化技術和智能化設施,積極探索城市全新治理模式,開展數據的動態采集、實時監測和智能分析,為城市治理提供科學依據;也將充分利用區塊鏈技術,強化網絡技術基礎設施建設,推動5G技術在城市社區的普及應用,著力提高社區管理的能力和水平。尤其是應推動數字化技術在交通、環境、市政等民生領域的應用,加快推進城市傳統基礎設施的數字化改造和升級,不斷提升城市公共服務的精細化、智能化、智慧化水平。”[2020/10/15]
首先,看一下IPFS網絡部分配置,如下圖所示,紅框內部的Swarm是IPFS監聽的網絡地址,其中支持ipv4和ipv6協議,且默認支持QUIC協議。
動態 | 農業農村部:利用區塊鏈等信息技術 實現全國農藥質量追溯“一張網”:據農業農村部2月12日消息,為貫徹落實中央農村工作會議、全國農業農村廳局長會議及全國農藥管理工作會議精神,農業農村部于近日印發《2020年農藥管理工作要點》。其中提到2020年農藥管理工作包括完善質量追溯體系。利用區塊鏈等現代信息技術,加快構建全國統一的質量追溯系統,逐步實現全國農藥質量追溯“一張網”。完善標簽管理辦法,推行農藥內外包裝二維碼關聯,逐步實現農藥生產、經營、使用全鏈條可追溯。[2020/2/12]
*QUIC協議是由google最先提出的,目前已經提交給互聯網工程任務小組,成為了正式的網絡規范,相對于TCP來說QUIC網絡傳輸協議的傳輸速度更快。
IPFS節點啟動之后日志如下圖所示,可以看到IPFS節點監聽了以下網絡地址,其中包括本地的、局域網、廣域網的地址,最后還有/p2p-circuit地址。
聲音 | Jimmy Nguyen:區塊鏈技術將改變互聯網技術 甚至比互聯網技術更強大:在2019 T-EDGE新金融峰會暨CHAINSIGHTS金融科技與區塊鏈中國峰會上,Bitcoin Association創始主席Jimmy Nguyen 發表主題演講表示,區塊鏈和比特幣將是引領我們這一代人的主要技術,它會改變互聯網技術,甚至比互聯網技術更加強大。他進一步解釋稱,比特幣把數據和貨幣價值通過一個網絡協議集合在一起,它給數據賦權,使數據有更大的力量。(鈦媒體)[2019/12/8]
問題來了,為什么需要監聽這么多地址?
那是因為IPFS是一個開源項目,為了讓全世界各地的節點連接起來則必須要解決各種網絡情況下節點連接的問題。
監聽本地地址,這樣本地啟動多個IPFS節點,它們之間可以以該地址進行連接,監聽局域網地址,這樣內網內啟動多個IPFS節點,它們之間可以以該局域網地址相互連接,監聽廣域網地址,這樣公網中啟動多個IPFS節點,它們之間可以以該廣域網地址進行連接。
動態 | 佳沃股份:擬在海產品領域引入區塊鏈技術 :佳沃股份董事會秘書崔志勇在活動中表示,公司已經與專業機構慧聰集團簽署合作協議,擬在海產品領域引入區塊鏈技術,通過現代農業產業鏈應用平臺建設,解決未來交易中的信用問題。[2018/9/11]
通過上述方式就解決了大部分網絡情況下的IPFS節點的網絡連接問題:
2個節點都在同一主機:通過127.0.0.1地址連接
2個節點在同一個內網內:通過局域網地址連接
2個節點都有公網地址:通過公網地址連接
1個節點在內網,1個節點在公網:內網的節點通過在公網節點的公網地址連接
這里有一個問題,如果2個節點處于兩個不同內網環境,由于存在NAT設備,NAT設備可能是對稱型,對稱型的NAT設備是沒有辦法穿透的,所以IPFS提供了relay的方式解決不同內網環境下節點的連接問題,上面提到的監聽/p2p-circuit地址則是為了解決該問題,對于2個處于不同內網環境不能直接連接的節點,通過配置relay節點中轉從而建立連接。
禪城利用區塊鏈技術 開展兒童青少年眼健康管理模式試點:據南方都市報報道,5月初起禪城將選取10所小學和3所中學,推進“區塊鏈+視力”,利用兒童青少年眼健康綜合平臺,開展兒童青少年眼健康管理模式試點。這是禪城利用區塊鏈技術推進的又一項公共服務改革。中山大學中山眼科中心博士樂美華介紹,傳統的視力檢查結果大部分是手寫,容易丟失,且每次檢查的結果是孤立的。而“區塊鏈+視力”,通過智能篩查設備,20秒左右完成雙眼屈光度檢查,檢查結果能自動上傳至數據平臺,通過長期的視力篩查跟蹤,匯總成大數據。從長期看,禪城將通過3-5年的數據跟蹤觀察,探索改善兒童青少年眼健康的干預措施,為政府制定防控策略和相關政策提供科學依據和數據支撐。[2018/4/20]
至此,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團隊數據平臺架構師
狂人本著負責,專注,誠懇的態度用心寫每一篇分析文章,特點鮮明,不做作,不浮夸!本內容中的信息及數據來源于公開可獲得資料,力求準確可靠,但對信息的準確性及完整性不做任何保證,本內容不構成投資建議.
1900/1/1 0:00:00本文來自?DappRadar譯者:Odaily?星球日報念銀思唐截至?1?月?21?日,以太坊?NFT?領域的交易額達到?3300?萬美元,而去年?12?月僅為?300?萬美元.
1900/1/1 0:00:00區塊鏈,是一種由多方共同維護,使用密碼學保證傳輸和訪問安全,能夠實現數據一致存儲、難以篡改、防止抵賴的分布式記賬技術.
1900/1/1 0:00:00機器經濟正在迅速崛起——無人機、無人車、無人便利店、無人工地等新興行業的出現不斷迭代顛覆了傳統的商業模式,催生新的商業形態,打破了產業發展邊界和壁壘,使得產業價值鏈重構,驅動產業經濟的創新升級.
1900/1/1 0:00:00實施已是必然,幣價將上漲,有利囤幣老礦工,但不利于新礦工。數據顯示,受幣價大漲影響,1月份以太坊礦工收入達到歷史新高.
1900/1/1 0:00:001月21日,最高人民法院發布《關于人民法院在線辦理案件若干問題的規定》,對區塊鏈證據的效力、區塊鏈證據審核規則、上鏈前數據的真實性審查、區塊鏈證據補強認定等方面進行了詳細說明.
1900/1/1 0:00:00