區(qū)塊鏈最早的數(shù)據(jù)交換協(xié)議是BitTorrent,當(dāng)然,這也是大多數(shù)區(qū)塊鏈節(jié)點(diǎn)之間交流的基本協(xié)議IPFS也必須能夠?qū)崿F(xiàn)p2p數(shù)據(jù)交換協(xié)議,IPFS在BitTorrent實(shí)現(xiàn)自己的基礎(chǔ)BitSwap協(xié)議,具體協(xié)議IPFS如何在節(jié)點(diǎn)之間使用?
何為BitSwap協(xié)議?
BitSwap協(xié)議的定義是IPFS網(wǎng)絡(luò)中數(shù)據(jù)塊交換的基本協(xié)議是基于統(tǒng)一格式的信息對等協(xié)議,不同于request/response方法。簡單來說就是。IPFS在節(jié)點(diǎn)中交換信息,使用相同類型的信息包進(jìn)行請求和響應(yīng)。也就是說IPFS網(wǎng)絡(luò)中的一切Peers(節(jié)點(diǎn)身份)都是對等節(jié)點(diǎn),不存在BitTorrent中那樣的Tracker服務(wù)器,所以通信方式更簡單。
不僅如此BitSwap協(xié)議明確定義了如何要求數(shù)據(jù)、如何發(fā)送數(shù)據(jù)、向誰發(fā)送數(shù)據(jù)等策略,每個(gè)節(jié)點(diǎn)都允許有自己的策略作為數(shù)據(jù)交換的核心模塊,BitSwap該協(xié)議還利用一些預(yù)期的激勵(lì)機(jī)制來促進(jìn)網(wǎng)絡(luò)中數(shù)據(jù)的流動(dòng),通過點(diǎn)對點(diǎn)之間的傳輸記錄交易賬本來實(shí)現(xiàn)互利的目的,從而使參與的節(jié)點(diǎn)受益。
Bitswap 工作原理?
大家都知道IPFS將文件分成塊,并通過內(nèi)容標(biāo)識(shí)符(CID (打開新窗)。當(dāng)節(jié)點(diǎn)想要運(yùn)行時(shí)。Bitswap如果協(xié)議想獲取文件,他們將向其他對等方發(fā)送想要的列表。想要列表是對方想要接收的塊CID列表。每個(gè)節(jié)點(diǎn)都會(huì)記住對方想要什么塊,每次節(jié)點(diǎn)收到一個(gè)塊,它都會(huì)檢查對方是否想要它并發(fā)送給它們。簡單的一點(diǎn)是找出每個(gè)節(jié)點(diǎn)的需求,然后是節(jié)點(diǎn)的文件。

為了找出哪些對等點(diǎn)有構(gòu)成文件的塊,Bitswap節(jié)點(diǎn)首先向連接的所有對等點(diǎn)發(fā)送對根 CID 需求。如果節(jié)點(diǎn)沒有塊,節(jié)點(diǎn)將查詢分布式哈希表(DHT)問誰有根塊。會(huì)話中添加了任何與根塊響應(yīng)的對等點(diǎn)。Bitswap只向?qū)Ψ桨l(fā)送請求,以免淹沒網(wǎng)絡(luò)。簡單地說,它是一個(gè)搜索功能,你可以看作是內(nèi)容搜索地址,也就是說,如果文件沒有存儲(chǔ)到多個(gè)節(jié)點(diǎn),則只有存儲(chǔ)文件的初存儲(chǔ)文件的節(jié)點(diǎn),節(jié)點(diǎn)是塊存儲(chǔ)。
這就是Bitswap協(xié)議的主要功能有幾個(gè)重要的戰(zhàn)略體系:
BitSwap信用體系:上面說的BitSwap該協(xié)議將獲得激勵(lì)獎(jiǎng)勵(lì),以便節(jié)點(diǎn)愿意共享或交換數(shù)據(jù)。其信用系統(tǒng)可以用八個(gè)詞來概括:借款和還款,然后借款并不難。定義是,發(fā)送給其他節(jié)點(diǎn)的數(shù)據(jù)可以增加信用值,并從其他節(jié)點(diǎn)接收數(shù)據(jù)以降低信用值。直率地說,它是為了分享它,而不僅僅是為了接受它。如果一個(gè)節(jié)點(diǎn)只接收數(shù)據(jù)而不共享數(shù)據(jù),信用值將非常低,并被其他節(jié)點(diǎn)忽略。
BitSwap策略:根據(jù)信用體系,BitSwap可以采取不同的策略來實(shí)現(xiàn),每一種策略(您可以詳細(xì)訪問官方網(wǎng)站)都會(huì)對系統(tǒng)的整體性能產(chǎn)生不同的影響。但其目的是:節(jié)點(diǎn)數(shù)據(jù)交換的整體性能和效率最高,防止白食現(xiàn)象;不僅可以下載數(shù)據(jù)而不上傳數(shù)據(jù);有效防止一些攻擊(如女巫攻擊);建立信任節(jié)點(diǎn)的寬松機(jī)制節(jié)點(diǎn)等。
BitSwap賬單:BitSwap節(jié)點(diǎn)將記錄與其他節(jié)點(diǎn)通信的賬單(數(shù)據(jù)收發(fā)),以保持節(jié)點(diǎn)間數(shù)據(jù)交換的歷史,防止篡改。當(dāng)兩個(gè)節(jié)點(diǎn)之間建立連接時(shí),BitSwap賬單信息將相互交換。如果賬單不匹配,則清除并重新記賬。惡意節(jié)點(diǎn)可能故意丟失賬單,以清除其債務(wù)。其他交互節(jié)點(diǎn)將記錄這些。如果總是發(fā)生,節(jié)點(diǎn)將被拒絕。
總體來說Bitswap該協(xié)議強(qiáng)調(diào)節(jié)點(diǎn)之間的交換,并制定了一些信用或規(guī)則,讓每個(gè)節(jié)點(diǎn)共享文件和數(shù)據(jù),而不僅僅是接受文件。如果有這樣的節(jié)點(diǎn)存儲(chǔ),它最終將被系統(tǒng)孤立。BitTorrent協(xié)議在IPFS 用于網(wǎng)絡(luò)Bitswap 協(xié)議獲取數(shù)據(jù)塊的最大特點(diǎn)之一是要求的數(shù)據(jù)塊是跨文件的,任何類型的數(shù)據(jù)塊,只要哈希值相同,都可以自己使用,一個(gè)Peer Swarm對應(yīng)的是整個(gè)IPFS因此,所有的數(shù)據(jù)塊都可以用來實(shí)現(xiàn)真正的跨文件數(shù)據(jù)交換,這也是Bitswap協(xié)議的特點(diǎn)。
熱點(diǎn):區(qū)塊鏈 數(shù)據(jù)