<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

IPFS節點之間如何進行數據交換?

IPFS濱鏈 ? 2021-08-30 17:41 ? 次閱讀

區塊鏈中最早的數據交換協議當屬BitTorrent,這也是大多數區塊鏈節點之間實現交流的基礎協議,當然IPFS也必須需要能實現p2p的數據交換協議,IPFS在BitTorrent的基礎上實現了自己BitSwap協議,該協議具體在IPFS節點之間如何運用呢?本文將詳細介紹。

何為BitSwap協議?

BitSwap協議的定義是IPFS網絡中數據塊交換方式的基礎協議,它是一個基于統一格式的消息對等協議,有別于request/response方式。簡單點來說就是在IPFS節點中交換信息,其請求和響應的消息都使用同一類型的消息包。也就是在IPFS網絡中所有的Peers(節點身份)都是對等節點,不存在BitTorrent中那樣的Tracker服務器,所以通信方式更加簡單。

不僅如此BitSwap協議清晰的定義了如何請求數據、如何發送數據、向誰發送數據等策略,并且每個節點都允許擁有自己的策略,將其作為數據交換的核心模塊,BitSwap協議還使用一些預期設定好的激勵機制來促進網絡中數據的流動,通過一個點對點之間的傳輸記錄交易賬本來達到互惠的目的,讓參與的節點有收益。

Bitswap 的工作原理?

大家都知道IPFS將文件分成稱為塊的塊,并且由內容標識符(CID (打開新窗口))。當節點想要運行Bitswap協議想要獲取文件,他們會向其他對等方發送“想要的列表”?!跋胍斜怼笔菍Φ确较胍邮盏膲K的CID列表。每個節點都會記住它的對等方想要哪些塊,并且每次節點收到一個塊時,它都會檢查是否有任何對等方想要該塊并將其發送給他們。簡單點就是摸清楚每個節點的需求是什么,再就是其節點有哪些文件。

而為了找出哪些對等點擁有構成文件的塊,Bitswap節點首先向它所連接的所有對等點發送對根塊 CID 的需求。如果節點沒有區塊,節點將會查詢分布式哈希表(DHT)詢問誰擁有根塊。任何以根塊響應的對等點都被添加到會話中。之后Bitswap只向會話中的對等方發送請求,以免請求淹沒網絡。簡單來說就是起到一個尋找的功能,大家可以看成內容尋址,就是文件如果沒有切分成塊給多個節點存儲,那就只有最初存儲文件的節點有,其節點就是根塊存儲所在。

這就是Bitswap協議的主要功能,其功能還有幾個重要的策略體系:

BitSwap信用體系:上面說了BitSwap協議會有激勵獎勵,這正是為了節點去樂于分享或交換數據。其信用體系可以用“有借有還,再借不難”八個字概括,定義來說就是發送給其他節點數據可以增加信用值,從其他節點接受數據降低信用值,說白了就是要分享出去,不要只接受。一個節點如果只接收數據而不分享數據,信用值就會降得很低而被其他節點忽略掉。

BitSwap策略:根據信用體系,BitSwap可以采取不同的策略來實現,每一種策略(大家可以詳細去官網查閱)都會對系統的整體性能產生不同的影響。不過其目的都是為了:節點數據交換的整體性能和效率最高,阻止“吃白食”的現象;就是不能夠只下載數據不上傳數據;可以有效的防止一些攻擊行為(比如:女巫攻擊);對信任節點建立寬松機制節點等等。

BitSwap賬單:BitSwap節點會記錄下來和其他節點通信的賬單(數據收發),可以保持節點間數據交換的歷史和防止篡改。當兩個節點之間建立連接的時候,BitSwap會相互交換賬單信息,如果賬單不匹配,則清除重新記賬。惡意節點可能會故意“丟失”賬單,以希望清除掉自己的債務。其它交互節點會把這些都記下來,如果總是發生,節點就會被拒絕。

總體來說Bitswap協議強調的是節點之間的交換,并制定了一些信用或規則來讓每一個節點去分享文件,去分享數據,而不是只接受文件,如果有這樣的節點存儲,最終會被系統給孤立。而且相比較BitTorrent協議在IPFS網絡中使用 Bitswap 協議獲取數據塊一個最大的特點是,請求的數據塊是跨文件的,任何類型的數據塊,只要其哈希值一樣,都可以拿為己用,一個Peer Swarm對應的是整個IPFS網絡中的數據,因此所有的數據塊都可以被用來使用,實現真正的跨文件數據交換,這也是Bitswap協議的特點。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦

    μClinux下SDRAM數據交換區的使用解析

    數據交換區是指程序執行中使用到的各種數據所存放的內存空間。本文提出了在Clinux操作系統下為嵌入式工業網絡服務器開辟數據交換萄思想和解決方案。嵌入式工業網絡服務器項目的開發目的是構建
    發表于 05-15 16:03 ?4次下載
    μClinux下SDRAM<b class='flag-5'>數據交換</b>區的使用解析

    stm32f105自動生成的USB主機, 如何進行數據的接收?

    stm32f105自動生成的USB 主機, 如何進行數據的接收? /** * @briefThe function informs user that data have been sent
    發表于 03-26 07:29

    TC275的core0與core1之間數據交換,需要做保護嗎?

    像TC275這種多核的芯片,core0與core1之間數據交換,需要做保護嗎
    發表于 02-20 07:18

    WiFi協議如何進行數據交換和通信

    WiFi協議棧主要包括三個層次:物理層(PHY)、數據鏈路層(DLL)和網絡層(NET)。每個層次都有其特定的功能和協議。
    的頭像 發表于 02-19 17:04 ?665次閱讀
    WiFi協議如<b class='flag-5'>何進行數據交換</b>和通信

    ZEMAX與MATLAB動態數據交換及其應用

    )通信技術進行了研究,并將其應用于計算機輔助調腔技術的數值模擬過程中。通過動態數據交換完成Matlab對Zemax的控制,實現了二者之間數據傳遞,即在Matlab的控制下,實現對光學
    的頭像 發表于 12-25 12:29 ?638次閱讀
    ZEMAX與MATLAB動態<b class='flag-5'>數據交換</b>及其應用

    以太網交換技術講解

    當前園區網大多使用交換機組網,使用交換機組建的網絡管理非常靈活,可以根據同一部門或者具有相同管理要求的需要創建虛擬局域網(Vlan)。那么園區內的交換機是如何進行數據
    的頭像 發表于 12-11 10:30 ?446次閱讀
    以太網<b class='flag-5'>交換</b>技術講解

    交換機和AI有什么關系?

    網絡協議為計算機網絡中進行數據交換而建立的規則、標準或約定的集合。法律層面上,OSI 七層協議為國際協議。
    的頭像 發表于 12-07 10:41 ?339次閱讀
    <b class='flag-5'>交換</b>機和AI有什么關系?

    不用編程實現西門子PLC和羅克韋爾AB PLC的數據交換

    plc之間數據交換,并且不需要更改plc里的程序。 2 工作原理 如下圖所示,網關設備作為一個橋梁連接在西門子PLC和AB PLC之間。工作原理是網關分別和兩種PLC進行通信。用戶可
    的頭像 發表于 11-20 09:15 ?391次閱讀
    不用編程實現西門子PLC和羅克韋爾AB PLC的<b class='flag-5'>數據交換</b>

    不用編程,實現西門子,歐姆龍、三菱,AB等PLC之間數據交換的方案

    工控項目中經常遇到西門子、三菱、歐姆龍、AB等不同的PLC,有時候需要實現這些PLC之間的信息交換。但是這些PLC之間的通信協議并不兼容,不能實現兩個品牌的PLC之間的直接通信。在此需
    的頭像 發表于 11-08 09:32 ?394次閱讀
    不用編程,實現西門子,歐姆龍、三菱,AB等PLC<b class='flag-5'>之間數據交換</b>的方案

    freertos中是如何實現兩個任務的數據交換的?

    freertos中是如何實現兩個任務的數據交換
    發表于 10-20 06:17

    如何實現西門子、歐姆龍、三菱、AB等PLC之間數據交換

    工控項目中經常遇到西門子、三菱、歐姆龍、AB等不同的PLC,有時候需要實現這些PLC之間的信息交換。但是這些PLC之間的通信協議并不兼容,不能實現兩個品牌的PLC之間的直接通信。在此需
    的頭像 發表于 10-18 09:57 ?896次閱讀
    如何實現西門子、歐姆龍、三菱、AB等PLC<b class='flag-5'>之間數據交換</b>

    什么是分布式節點

    訊維分布式節點是指分布在不同的地理位置或網絡拓撲中的計算機或網絡設備。這些節點通過通信協議和網絡連接進行數據交換和協同工作,以實現共同的任務或目標。 在訊維分布式系統中,節點通常被分為
    的頭像 發表于 08-28 11:39 ?3151次閱讀
    什么是分布式<b class='flag-5'>節點</b>

    PLC200轉以太網模塊在多個PLC中進行數據交換

    你是否曾經遇到過需要在S7-200和SMART200之間交換數據的情況?今天我們將介紹一種簡單而高效的方法——通過遠創智控PPI-ETH-YC01 PLC以太網實現數據交換。
    的頭像 發表于 08-01 15:56 ?368次閱讀
    PLC200轉以太網模塊在多個PLC中<b class='flag-5'>進行數據交換</b>

    三菱q系列plc網線連接步驟數據交換

    本示例以Q00UCPU與FX5U-32MR/ES為例交換數據,本數據交換采用ModbusTCP協議實現,其他支持ModbusTCP從站協議的PLC(例如施耐德PLC),均可實現該數據交換
    的頭像 發表于 07-26 08:58 ?2773次閱讀
    三菱q系列plc網線連接步驟<b class='flag-5'>數據交換</b>

    交換機的特點、工作原理及數據交換方式

    交換機(Switch)也是網絡中的一種集線設備,與集線器一樣,它能以自身為中心連接網絡節點,能對接收到的信息進行再生放大以增加網絡的傳輸距離;但它又與集線器不同——交換機是一種
    的頭像 發表于 05-31 09:58 ?6872次閱讀
    <b class='flag-5'>交換</b>機的特點、工作原理及<b class='flag-5'>數據交換</b>方式
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>