IPFS 0.5 對內容路由的改進之路由表

2021-01-20 金色財經區塊鏈

IPFS的DHT表有兩種:公共(Public)和本地(Local)。

當很多用戶使用公開共享的DHT表去發現和廣播內容時,它們中有一些是在被分割的網絡中運作(比如在本地網絡或孤立的VPN)的。

對這些用戶而言,如果DHL表中的非公開節點只是客戶模式就會很麻煩,因為這些節點無法被連接,用戶無法與它們通信。

在這種情況下,我們設計了另一種DHT表,這種DHT表包括了一些不在公開網絡(比如VPN、CJDNS、Yggdrasil)中的節點。

我們將這種DHT表稱為LAN DHT,而將公開網絡的DHT表稱為WAN DHT。這兩種DHT表使用不同命名的DHT協議(比如 WAN DHT為/ipfs/kad/1.0.0,LAN DHT為/ipfs/lan/kad/1.0.0)以防止兩種網絡混在一起。

但如果用戶不恰當地配置了他們的網絡,則他們使用的非公開網絡有可能混為一團。

WAN DHT和LAN DHT在實現細節上的不同主要表現在DHT表對對等節點接受標準的不同,即什麼節點能被納入路由表中,什麼不能。WAN DHT的標準是「節點看上去是在公開網絡中」,而LAN DHT的標準是「節點看上去不在公開網絡中」。

WAN DHT表中的節點可以根據它們的工作狀況從客戶模式切換為伺服器模式,但LAN DHT中的節點則永遠只能是伺服器模式(除非「dhtclient」選項被設置)。

路由表:

早前我們分享過:Kademlia網絡中的每個對等節點都維繫著與網絡中其它若干節點的連接。它們的工作方式如下:

1. 當我們連接一個對等節點時,要檢查這個節點是否符合條件被加入到我們的路由表中。

- 保證對等節點處於伺服器模式,並且廣播DHT協議的ID符合標準(比如對WAN DHT是/ipfs/kad/1.0.0,對LAN DHT是/ipfs/lan/kad/1.0.0)。

- 保證對點節點的IP位址是公共地址(比如公共DHT表中的每個成員至少有一個公共的IP位址而不是只有類似192.168.X.Y這樣的地址)。

2. 如果一個節點滿足條件可以被加進路由表,接下來就要決定該節點在Kademlia地址空間中應該放在哪個「桶」(「bucket」)裡(比如節點在2^7和2^8之間,其地址空間為2^256,則節點在路由表中就應該放在定義為256-8的桶裡)。

3. 將該節點放入路由表

- 如果路由表中節點應該被放置的「桶」沒有滿(即該「桶」中放入的節點少於20個)則將該節點放入此桶中。

- 如果該桶已經滿了則我們要檢查這些節點中是否有可被替換出來的。如果有,就將可替換的節點拿出來,把新節點加入。如果沒有,就放棄這個桶。

4. 如果我們向路由表中的節點發出諮詢請求但得不到回應,則把該節點從表中拿走。

- 注意:每次刷新後,我們都要遍歷整個路由表並向最近沒有通信過的節點發出諮詢請求以檢查它們是否仍然在線、可被連接。一旦發現某節點掉線不再可被連接,則把它從表中刪除。

此外,為了保證路由表的準確,我們會每隔一段時間刷新它。對路由表刷新頻率的計算基於一系列參數如「桶」的大小等。

我們可以增加刷新的頻率,但它有個下限。對IPFS而言,其下限頻率為每10分鐘刷新一次。

參考連結:https://blog.ipfs.io/2020-07-20-dht-deep-dive/

本文來源: 金色財經 / 作者:FIL社區

相關焦點

  • IPFS 0.5內容路由改進:深入研究
    在這篇文章中,我們想帶你詳細了解 DHT 在 v0.5.0 中的樣子,所以準備好看一篇真正深入了解 IPFS DHT 表實現。如果您想了解 DHT 是如何工作的,以及我們如何使 IPFS 使用的實現更快、更具彈性,請繼續閱讀!背景:DHT 對 IPFS 有何作用?DHT 是用於將鍵映射到值的分布式系統。在 IPFS 中,DHT 用作內容路由系統的基本組件。
  • IPFS 0.5內容路由改進:更深入的研究|螢火蟲Filecoin礦機
    原創:Adin Schmahmann原文連結:https://blog.ipfs.io/2020-07-20-dht-deep-dive/4月底,我們發布了迄今為止最大的go-ipfs更新:IPFS 0.5。儘管有許多改進,但是IPFS的分布式哈希表(DHT)的更改對於提高IPFS中查找數據的性能和穩定性尤其重要。
  • 見證 | IPFS 0.7.0 SECIO退役版
    原文連結:https://blog.ipfs.io/2020-09-24-go-ipfs-0-7-0/8月,我們宣布SECIO安全傳輸已棄用。在此版本默認情況下我們禁用了SECIO,這將對網絡上的舊節點產生影響。減輕此更改影響的最佳方法是儘快升級IPFS節點!升級不僅可以確保您使用最新的安全傳輸,還可以訪問我們今年在內容路由方面所做的所有性能改進。
  • 【超詳解】怎麼在網絡上配置IP路由?
    別擔心,在動態路由選擇的討論中,會有關於AD內容的更為詳盡的介紹。在這裡,你只需要記住AD就是關於路由的可信任度,其中值為0最好,而值為255最差。為了使Corp路由器可以路由到所有的網絡,下列網絡必須配置到它的路由選擇表中:口192.168.10.0口192.168.20.0口192.168.30.0口192.168.40.0口172.16.10.0下面給出的路由器輸出顯示了在Corp路由器上的靜態路由以及完成配置後路由選擇表中的內容。
  • IPFS/libp2p進展更新
    本月協議實驗室連續發布了go-ipfs 0.4.18,js-libp2p 0.24.0和js-ipfs 0.33.0,重要更新如下。gossipsub希望找到一個平衡點:較快的廣播metadata的同時通過可控的路由做數據傳輸。用戶可以用下面命令打開gossipsub :ipfs config Pubsub.Router gossipsub。代碼實現在[2]。
  • IP路由基礎,直連路由,靜態路由,動態路由,FIB,一分鐘了解下
    路由表簡介RIB(Routing Information Base,路由信息庫),是一個集中管理路由信息的資料庫,包含路由表信息以及路由周邊信息(路由迭代信息、路由共享信息以及路由擴展信息)等。路由器通過對路由表進行優選,把優選路由下發到 FIB(Forwarding Information Base,轉發信息庫)表中,通過 FIB 表指導報文轉發。
  • HCIE實驗筆記---IS-IS路由滲透與雙點雙向的路由引入
    由於BGP的路由優先級為255所以雙向引入時不需要靠考慮防環第一步:由於所有32位主機路由所以只需要使用ip ip-preix抓取172.16的32位主機路由即可ip ip-prefix ISIS index 10 permit 172.16.0.0 16 greater-equal 32 less-equal
  • linux - ip route 操作主機路由
    列出路由ip route list ip route show ip route 查看指定網段的路由ip route list 192.168.2.0/24添加路由ip route add 192.168.2.0/24 via 192.168.1.1追加路由ip route append 192.168.2.0/24 via 192.168.1.12 #追加一個指定網絡的路由,為了平滑切換網關使用修改路由ip route change
  • 詳解路由重發布(OSPF 重發布靜態路由)
    >1、在AR1上查看路由表。>2、在AR2上查看路由表。/1255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack03、在AR3上查看路由表<AR3>disp ip routing-table
  • 華為H3C網際網路靜態路由配置指南
    當網絡的拓撲結構或鏈路的狀態發生變化時,網絡管理員需要手工去修改路由表中相關的靜態路由信息。靜態路由信息在預設情況下是私有的,不會傳遞給其他的路由器。當然,網管員也可以通過對路由器進行設置使之成為共享的。靜態路由一般適用於比較簡單的網絡環境,在這樣的環境中,網絡管理員易於清楚地了解網絡的拓撲結構,便於設置正確的路由信息。
  • 動態路由協議RIP篇一
    RIP概述RIP 是一個內部網關路由協議(Interior Gateway Protocol,即 IGP),只能在單個AS 內傳遞路由信息。RIP 被定義為距離矢量路由協議,而距離矢量路由協議的根本特徵就是自己的路由表是完全從其它路由器學來的,並且將收到的路由條目完全不變地放進自己的路由表,以供數據轉發。
  • 華為HCIA數通認證Datacom,IP路由基礎靜態路由詳解
    3、Cost開銷優先級:直連路由:0 OSPF(內部)10 OSPF(外部)150 靜態路由:60RIP: 100 BGP: 255 中間系統到中間系統:15三、靜態路由配置及拓撲路由表中只有一條有效靜態路由:[R1]display ip routing-tableRoute Flags: R - relay, D - download to fibDestination/Mask Proto Pre Cost Flags NextHop Interface
  • 華為技術:詳解路由器靜態路由的配置
    路由表和 FIB 表 路由器轉發數據包的關鍵是路由表和FIB表,每個路由器都至少保存著一張路由表和一張FIB(Forwarding Information Base)表。路由器通過路由表選擇路由,通過FIB表指導報文進行轉發。
  • 策略路由典型配置:流策略實現策略路由(重定向到不同的下一跳)
    一、主要知識點:策略路由:傳統的路由轉發原理是首先根據報文的目的地址查找路由表,然後進行報文轉發。但是目前越來越多的用戶希望能夠在傳統路由轉發的基礎上根據自己定義的策略進行報文轉發和選路。策略路由PBR(Policy-Based Routing)就是一種依據用戶制定的策略進行數據轉發的機制。
  • 路由策略之重分發示例分析
    ospf鄰居,R1上靜態路由:ip route 192.168.11.0 255.255.255.0 13.1.1.2ip route 192.168.13.0 255.255.255.0 13.1.1.2然後在ospf10進程下,重分發靜態進OSPFR3--R4運行OSPF20,R3通過環回口F1/0,R4通過F0/0和對方建立OSPF鄰居,
  • 路由優化概述和分布控制列表控制路由配置
    set ip next hop: 設定數據包的下一跳地址set interface :設定數據包出接口set ip default next hop :設定預設的下一跳地址,用於當路由表裡沒有到數據包目的地址路由條目時set default interface :設定預設的出接口set ip tos :設定 IP 數據包的 IP
  • Cisco 靜態路由配置
    靜態路由:是指用戶或網絡管理員手工配置的路由信息。當網絡拓撲結構或鏈路狀態發生改變時,需要網絡管理員手工配置靜態路由信息。相比較動態路由協議,靜態路由無需頻繁的交換各自的路由表,配置簡單,比較適合小型、簡單的網絡環境。不適合大型和複雜的網絡環境的原因是:當網絡拓撲結構和鏈路狀態發生改變時,網絡管理員需要做大量的調整,工作量繁重,而且無法感知錯誤發生,不易排錯。2。
  • 路由的基本工作原理
    路由不是路由器,能夠進行路由工作的機器我們稱為路由器。我們在不同網絡之間的數據包由網關負責轉發,那麼路由就是給網關提供這樣一個轉發的參考的路徑信息。那麼這個參考依據是怎麼建立起來的呢?首先路由器需要知道目標主機地址,然後根據路由表信息給出一條最優的路徑。那麼路徑信息的來源有兩種,動態路由和靜態路由。
  • IT咖啡-OSPF路由協議應用筆記
    運行SPF(最短路徑樹算法)從LSDB中提取網絡鏈路信息計算到達各個目標子網的路徑,把最優的路徑提交給路由表供數據轉發使用。 2)拓撲資料庫:用來保存網絡所有的LSA 3)路由表:保存最優的路勁 a、Hello:周期性發送,10 Dead 間隔:4倍的Hello間隔 b、Cost(開銷),用來評判OSPF的路勁優劣,Cost=10^8/接口帶寬5、配置 router ospf
  • 星際聯盟|一文帶你讀懂IPFS/Filecoin,它們背後是什麼關係?
    IPFS的3 個代碼庫:IPFS 規範:https://github.com/ipfs/ipfsGo 實現:https://github.com/ipfs/go-ipfsWeb 工作檯:https://github.com/ipfs-shipyard/ipfs-webuiIPFS技術積累了很多年,