0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

IPFS節(jié)點之間如何進(jìn)行數(shù)據(jù)交換?

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

區(qū)塊鏈中最早的數(shù)據(jù)交換協(xié)議當(dāng)屬BitTorrent,這也是大多數(shù)區(qū)塊鏈節(jié)點之間實現(xiàn)交流的基礎(chǔ)協(xié)議,當(dāng)然IPFS也必須需要能實現(xiàn)p2p的數(shù)據(jù)交換協(xié)議,IPFS在BitTorrent的基礎(chǔ)上實現(xiàn)了自己BitSwap協(xié)議,該協(xié)議具體在IPFS節(jié)點之間如何運用呢?本文將詳細(xì)介紹。

何為BitSwap協(xié)議?

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

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

Bitswap 的工作原理?

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

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

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

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

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關(guān)推薦

    使用CAN總線進(jìn)行數(shù)據(jù)采集的方法

    是汽車內(nèi)部各個模塊之間進(jìn)行通信的一種協(xié)議,通過它可以獲取到車輛的各種狀態(tài)信息、傳感器數(shù)據(jù)等。因此,在進(jìn)行數(shù)據(jù)采集之前,需要熟悉CAN總線的工作原理、通信協(xié)議以及
    的頭像 發(fā)表于 12-20 18:18 ?635次閱讀

    PROFINET網(wǎng)關(guān)HT3S-PNS-MDN讀取七星華創(chuàng)CS310空氣流量計數(shù)據(jù)應(yīng)用案例

    本文主要介紹使用HI-TOP網(wǎng)關(guān) HT3S-PNS-MDN在西門子 1200 PLC和七星華創(chuàng)CS310流量計之間進(jìn)行數(shù)據(jù)交換
    的頭像 發(fā)表于 10-09 16:02 ?254次閱讀
    PROFINET網(wǎng)關(guān)HT3S-PNS-MDN讀取七星華創(chuàng)CS310空氣流量計<b class='flag-5'>數(shù)據(jù)</b>應(yīng)用案例

    Profibus DP網(wǎng)關(guān)HT3S-DPS-MDN讀取七星華創(chuàng)CS310空氣流量計數(shù)據(jù)應(yīng)用案例

    本文主要介紹使用HI-TOP網(wǎng)關(guān) HT3S-DPS-MDN在西門子 1200 PLC和七星華創(chuàng)CS310流量計之間進(jìn)行數(shù)據(jù)交換。
    的頭像 發(fā)表于 10-09 11:58 ?278次閱讀
    Profibus DP網(wǎng)關(guān)HT3S-DPS-MDN讀取七星華創(chuàng)CS310空氣流量計<b class='flag-5'>數(shù)據(jù)</b>應(yīng)用案例

    EtherCAT網(wǎng)關(guān)HT3S-ECS-MDN讀取七星華創(chuàng)CS310空氣流量計數(shù)據(jù)應(yīng)用案例

    本文主要介紹使用HI-TOP網(wǎng)關(guān) HT3S-ECS-MDN在匯川H5U-A8 PLC和七星華創(chuàng)CS310流量計之間進(jìn)行數(shù)據(jù)交換。
    的頭像 發(fā)表于 10-08 14:45 ?260次閱讀
    EtherCAT網(wǎng)關(guān)HT3S-ECS-MDN讀取七星華創(chuàng)CS310空氣流量計<b class='flag-5'>數(shù)據(jù)</b>應(yīng)用案例

    DeviceNet網(wǎng)關(guān)HT3S-DNS-MDN讀取七星華創(chuàng)CS310空氣流量計數(shù)據(jù)應(yīng)用案例

    本文主要介紹使用HI-TOP網(wǎng)關(guān) HT3S-DNS-MDN在臺達(dá)DVP系列 PLC和七星華創(chuàng)CS310流量計之間進(jìn)行數(shù)據(jù)交換
    的頭像 發(fā)表于 09-14 15:32 ?374次閱讀
    DeviceNet網(wǎng)關(guān)HT3S-DNS-MDN讀取七星華創(chuàng)CS310空氣流量計<b class='flag-5'>數(shù)據(jù)</b>應(yīng)用案例

    HT3S-EIS-MDN網(wǎng)關(guān)讀取七星華創(chuàng)CS310空氣流量計數(shù)據(jù)應(yīng)用案例

    本文主要介紹使用HI-TOP網(wǎng)關(guān) HT3S-EIS-MDN在匯川H5U-A8 PLC和七星華創(chuàng)CS310流量計之間進(jìn)行數(shù)據(jù)交換。
    的頭像 發(fā)表于 09-13 16:34 ?255次閱讀
    HT3S-EIS-MDN網(wǎng)關(guān)讀取七星華創(chuàng)CS310空氣流量計<b class='flag-5'>數(shù)據(jù)</b>應(yīng)用案例

    和利時LX-CU500PLC通過HT3S-ECS-MTP網(wǎng)關(guān) 與TWINCAT(EtherCAT)交換數(shù)據(jù)

    本文主要介紹使用HI-TOP網(wǎng)關(guān) HT3S-ECS-MTP在和利時LX-CU500PLC和TWincat之間進(jìn)行數(shù)據(jù)交換。 解決的問題:利時LX-CU500PLC做從站與TWincat進(jìn)行數(shù)據(jù)交換
    的頭像 發(fā)表于 06-13 16:51 ?1917次閱讀
    和利時LX-CU500PLC通過HT3S-ECS-MTP網(wǎng)關(guān) 與TWINCAT(EtherCAT)<b class='flag-5'>交換</b><b class='flag-5'>數(shù)據(jù)</b>

    PLC和變頻器是如何進(jìn)行通訊

    與變頻器之間需要通過特定的通訊方式進(jìn)行數(shù)據(jù)交換和控制指令的傳輸。本文將詳細(xì)闡述PLC與變頻器之間的通訊原理、方法、步驟以及實際應(yīng)用中的注意事項,以期為工業(yè)自動化領(lǐng)域的工程師和技術(shù)人員提供參考。
    的頭像 發(fā)表于 05-31 15:20 ?2935次閱讀

    3芯M5接口數(shù)據(jù)交換如何

    德索工程師說道3芯M5接口在數(shù)據(jù)交換方面表現(xiàn)出色,其獨特的設(shè)計和優(yōu)越的性能使得它成為工業(yè)自動化系統(tǒng)中不可或缺的一部分。以下是對3芯M5接口數(shù)據(jù)交換性能的詳細(xì)探討:
    的頭像 發(fā)表于 05-09 17:48 ?318次閱讀
    3芯M5接口<b class='flag-5'>數(shù)據(jù)交換</b>如何

    stm32f105自動生成的USB主機, 如何進(jìn)行數(shù)據(jù)的接收?

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

    交換芯片是什么意思 交換芯片的功能有哪些

    交換芯片是網(wǎng)絡(luò)通信設(shè)備中的核心部件,是一種實現(xiàn)數(shù)據(jù)交換的集成電路,主要應(yīng)用于通信網(wǎng)絡(luò)中的交換機、路由器等設(shè)備。其主要功能包括數(shù)據(jù)包的接收、存儲、轉(zhuǎn)發(fā)和過濾等,以實現(xiàn)不同網(wǎng)絡(luò)
    的頭像 發(fā)表于 03-18 14:34 ?2185次閱讀

    TC275的core0與core1之間數(shù)據(jù)交換,需要做保護(hù)嗎?

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

    WiFi協(xié)議如何進(jìn)行數(shù)據(jù)交換和通信

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

    交換機的作用與功能 交換機的基本配置

    交換機(Switch)是計算機網(wǎng)絡(luò)中常見的一種數(shù)據(jù)通信設(shè)備,它用于在局域網(wǎng)(LAN)內(nèi)的不同設(shè)備之間進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā)和交換
    的頭像 發(fā)表于 02-04 09:17 ?1.7w次閱讀

    華為新專利降低數(shù)據(jù)交換網(wǎng)絡(luò)能耗和成本

    據(jù)專利摘要介紹,這項發(fā)明涉及通訊技術(shù)領(lǐng)域,旨在降低數(shù)據(jù)交換網(wǎng)絡(luò)的耗能、成本及設(shè)備尺寸。其核心部分是一款包含多個交換晶粒以及與其有直接或間接關(guān)聯(lián)的多個網(wǎng)絡(luò)處理晶粒的通信芯片。
    的頭像 發(fā)表于 01-19 14:14 ?652次閱讀
    華為新專利降低<b class='flag-5'>數(shù)據(jù)交換</b>網(wǎng)絡(luò)能耗和成本