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协议想要获取文件,他们会向其他对等方发送“想要的列表”。“想要列表”是对等方想要接收的块的CID列表。每个节点都会记住它的对等方想要哪些块,并且每次节点收到一个块时,它都会检查是否有任何对等方想要该块并将其发送给他们。简单点就是摸清楚每个节点的需求是什么,再就是其节点有哪些文件。

而为了找出哪些对等点拥有构成文件的块,Bitswap节点首先向它所连接的所有对等点发送对根块 CID 的需求。如果节点没有区块,节点将会查询分布式哈希表(DHT)询问谁拥有根块。任何以根块响应的对等点都被添加到会话中。之后Bitswap只向会话中的对等方发送请求,以免请求淹没网络。简单来说就是起到一个寻找的功能,大家可以看成内容寻址,就是文件如果没有切分成块给多个节点存储,那就只有最初存储文件的节点有,其节点就是根块存储所在。

这就是Bitswap协议的主要功能,其功能还有几个重要的策略体系:

BitSwap信用体系:上面说了BitSwap协议会有激励奖励,这正是为了节点去乐于分享或交换数据。其信用体系可以用“有借有还,再借不难”八个字概括,定义来说就是发送给其他节点数据可以增加信用值,从其他节点接受数据降低信用值,说白了就是要分享出去,不要只接受。一个节点如果只接收数据而不分享数据,信用值就会降得很低而被其他节点忽略掉。

BitSwap策略:根据信用体系,BitSwap可以采取不同的策略来实现,每一种策略(大家可以详细去官网查阅)都会对系统的整体性能产生不同的影响。不过其目的都是为了:节点数据交换的整体性能和效率最高,阻止“吃白食”的现象;就是不能够只下载数据不上传数据;可以有效的防止一些攻击行为(比如:女巫攻击);对信任节点建立宽松机制节点等等。

BitSwap账单:BitSwap节点会记录下来和其他节点通信的账单(数据收发),可以保持节点间数据交换的历史和防止篡改。当两个节点之间建立连接的时候,BitSwap会相互交换账单信息,如果账单不匹配,则清除重新记账。恶意节点可能会故意“丢失”账单,以希望清除掉自己的债务。其它交互节点会把这些都记下来,如果总是发生,节点就会被拒绝。

总体来说Bitswap协议强调的是节点之间的交换,并制定了一些信用或规则来让每一个节点去分享文件,去分享数据,而不是只接受文件,如果有这样的节点存储,最终会被系统给孤立。而且相比较BitTorrent协议在IPFS网络中使用 Bitswap 协议获取数据块一个最大的特点是,请求的数据块是跨文件的,任何类型的数据块,只要其哈希值一样,都可以拿为己用,一个Peer Swarm对应的是整个IPFS网络中的数据,因此所有的数据块都可以被用来使用,实现真正的跨文件数据交换,这也是Bitswap协议的特点。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    求助,请帮助查看关于通过 DMA SPI 在 MAX32552 和 PN5180 之间进行通信的代码是否有问题?

    请帮助查看我们关于通过 DMA SPI 在 MAX32552 和 PN5180 之间进行通信的代码,如果我们忽略一步又一步地检查忙线是否会出现任何潜在问题 1. 等到忙低 2. 将 NSS 断言为低 3. 执行数据交换 4. 将
    发表于 04-30 07:41

    EtherCAT同步管理器和过程数据交换

    EtherCAT 子设备控制器使用同步管理器来建立非循环和循环数据的一致交换。同步管理器保护 ESC 中的 RAM 区域。它可以在邮箱模式和 3 缓冲区模式下进行配置。 The Mailbox
    发表于 04-23 09:48

    进程通信

    的消息(Message)为单位的。若通信的进程之间不存在可直接访问的共享空间,则必须利用操作系统提供的消息传递方法实现进程通信。进程通过系统提供的发送消息和接收消息两个原语进行数据交换。   1) 直接通信方式:发送
    发表于 01-15 06:16

    对于设备上的旧固件如何进行备份和恢复?

    对于设备上的旧固件,如何进行备份和恢复?
    发表于 12-12 08:23

    设备PLC没有以太网口如何进行数据采集

    工业在实现数字化转型的过程中,需要对各类自动化设备进行数据采集,其实质是实现对可编程逻辑控制器PLC的数据采集。但对很多老旧设备来说,通常只具备串口、只走TCP通信,甚至出现接口被占用的问题,而
    的头像 发表于 12-03 10:57 775次阅读

    单片机之间可以进行无线数据传输吗

    ) 1. 使用其他无线通信技术:如果单片机之间的距离较近,可以考虑使用如Wi-Fi、蓝牙、ZigBee等短距离无线通信技术进行数据传输。这些技术通常支持设备间的直接通信,但传输距离和速率可能有
    发表于 11-28 08:15

    I2C的优点介绍

    的实现成为可能,其中多个微控制器、传感器和其他外设可以无缝地交换数据。它促进复杂嵌入式系统内的并行通信通道和实时数据交换。 寻址方案: I2C 采用内置寻址方案,可实现主设备和指定从设备之间
    发表于 11-27 07:49

    蜂鸟E203怎样外部的摄像头进行数据传输?

    蜂鸟E203怎样外部的摄像头进行数据传输
    发表于 11-05 06:58

    温度循环测试后如何进行数据记录和分析?

    温度循环测试后的数据记录和分析是验证电能质量在线监测装置精度稳定性、功能完整性、硬件可靠性的核心环节,需围绕 “数据溯源可查、分析逻辑闭环、结论依据充分” 展开,结合测试标准(IEC
    的头像 发表于 09-26 14:22 787次阅读

    两台变频器之间如何直接实现数据交换

    在现代工业自动化控制系统中,变频器之间数据交换是实现设备协同工作和智能化控制的关键环节。本文将深入探讨两台变频器之间直接实现数据交换的多种技术方案,分析其工作原理、实施要点和应用场景
    的头像 发表于 09-19 18:24 1479次阅读
    两台变频器<b class='flag-5'>之间</b>如何直接实现<b class='flag-5'>数据交换</b>?

    如何使用运行数据趋势分析验证装置准确性?

    负荷变化、设备启停、电网事件)高度匹配,且关键参数波动范围在合理区间内。以下是具体实施步骤、核心分析维度及判断标准: 一、前提:数据预处理 —— 确保分析基础有效 在开展趋势分析前,需先对运行数据进行筛选和清洗,避
    的头像 发表于 09-18 10:33 661次阅读
    如何使用运<b class='flag-5'>行数据</b>趋势分析验证装置准确性?

    Is交换机组成的环形网络中,当位于主控节点的Ism网管交换机故障后,为什么环网中其他交换机不受影响?

    当位于主控节点交换机故障断掉,环网中其他交换机是如何保持正常运行的?或者说什么原理让环网其他交换机不受影响?
    发表于 08-06 06:46

    普通交换机和车载交换机的区别有哪些?怎么选?

    你可能知道 交换机 是一种网络设备,用于在计算机网络中连接多个设备(如计算机、服务器、打印机等),并实现这些设备之间数据交换。但是不同场景下交换机的效果千差万别,选错了 损失难以估计
    的头像 发表于 07-09 15:53 900次阅读
    普通<b class='flag-5'>交换</b>机和车载<b class='flag-5'>交换</b>机的区别有哪些?怎么选?

    Brooks流量计通过HT1S-ECM-PNS与西门子1200PLC通讯

    本文主要介绍使用HI-TOP的EtherCAT主站网关HT1S-ECM-PNS采集多个BROOKS的EtherCAT流量计到西门子1200PLC进行数据交换
    的头像 发表于 07-03 16:39 3835次阅读
    Brooks流量计通过HT1S-ECM-PNS与西门子1200PLC通讯

    基于EM-1000实现Modbus转IEC61850

    基于EM-1000工控机,实现ModbusTCP到IEC61850的数据转换,支持多种模式,包括MMS、GOOSE发布和订阅。简介IEC61850是一种用于在电力自动化系统中进行数据交换和控制
    的头像 发表于 05-28 11:39 1318次阅读
    基于EM-1000实现Modbus转IEC61850