如何在浏览器的IPFS / libp2p中记录对等消息?

问题描述

我进行了一项测试,以查看如果尝试获取不存在的CID会发生什么,以查看是否可以连续询问IPFS中的每个对等方。它似乎不起作用。我“连接”到大约10个同伴,然后放弃了。我不确定我实际上是否在“连接”。我不太确定怎么回事。我不知道我实际上是在连接任何同伴并要求他们提供CID。我似乎连接到星级服务器,并看到一个对等列表,但是不确定我是否曾经连接到这些对等服务器中的任何一个

还有其他我应该听的事件以调试正在发生的事情吗?如何收听正在发送给同伴的消息?

根据Bittorrent DHT的工作原理,我的假设是,如果不存在CID,我最终应该询问网络上的每个对等方是否具有此CID。整个网络中只有10个对等方吗?还是该星形服务器上只有10个对等方?是否没有星型服务器发现?如何找到“繁忙的”星形服务器?

pip3 install Pillow

解决方法

js-ipfs目前没有默认启用DHT。您需要通过创建选项明确启用它。这将导致IPFS位交换协议向网络查询您要查找的内容。如您所描述的,在DHT查询期间,对等方将根据DHT算法连接到网络上的其他对等方,以查找内容。

那么,为什么我们默认禁用DHT? JS DHT实现的伸缩性不好,原因有几个,其中一些与DHT实现本身有关,另一些与网络中无法使用的节点以及效率不高的连接管理器有关。几个月前,GO DHT确实得到了改进,并且根据GO实现中的最新变化,将完全重构JS实现。连接管理器的改进也在进行中。

虽然DHT不能重构和稳定,但建议利用委托节点。委托节点是一个将代表其他节点进行内容和对等路由查询的节点。 js-ipfs@0.48与一些public delegated nodes configured by default已发布。委托节点是GO节点,它将代表JS节点执行DHT查询,这样,将是后台的go节点将与其他节点建立连接。

让我知道我是否可以回答您的问题

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...