如何在IPFS上尽快搜索内容_Filecoin社区_火星财经
今天,我们将介绍一篇技术性很强的文章,这是一种在IPFS系统中快速搜索内容的方法。 这里假设想尝试这种方法的读者已经有了自己构建的IPFS系统,并且有多个节点
所有这些节点都在Ubuntu 16操作系统上运行。 本文适用于以下读者: -读者希望能够在构建的IPFS系统中快速搜索内容
-读者构建的IPFS系统不仅运行普通节点,还运行IPFS网关。 在读者构建的IPFS系统中,节点总是与其他节点断开连接或断开连接
IPFS是一种强大的文件分发和存储协议,具有强大的功能,但也存在一些缺点,例如并非所有节点都始终互连。
这一缺点意味着,即使在整个系统刚构建时启动了所有节点,这些节点最终也可能彼此失去联系,导致内容检索速度变慢。 在这种情况下,当系统使用网关时
然后将用户引导到网关,使网关搜索用户需要的内容时出现问题---如果网关与所有节点没有直接关联,用户搜索的内容需要很长时间才能被发现。 你怎么解决这个问题?
步骤1 :获取节点的" multiAddresses "在每个IPFS节点上打开命令行工具,然后执行以下命令: ipfs id将产生以下结果:
{ID: YourNodeID,PublicKey: YourPublicKey, addresses : [/ip4/127.0.0.1/TCP/4001/ipfs/your nodeid ]/ip4/XXX.XXX.XXX.XXX/TCP/4001/ipfs/ip6/yyyy : yyyy : yyyy : yyyy : yyyy : yyyy : yyyy/TCP/4001/ipfs/your nodeid,/ip6/yyyy : yyyy : yyyy : yyyy : yyyy : yyyy : yyyy/TCP/4001/ipfs/your nodeid,/ip6/yyyy : yyyy : yyyy : yyyy : yyyy : yyyy/TCP/4001/ipfs/your nodeid,/ip4/XXX.xxxx
关注这里的“Addresses”数组。 包含" multiAddress "的值。 这些值是外部IPFS节点用于连接到节点的数据。 这些结果可能重复,但这没关系
。 其中一些值包含外部IP地址,而另一些值包含本地IP地址。 记录包含外部IP地址的值。 如果您的系统使用IPv6,请记录该IPv6的“multiAddress”,如果您的系统未使用IPv6,并记下IPv4中的“multiAddress”。 第2步:连接IPFS节点,将系统中的IPFS节点相互连接。 假设有节点a和节点b
,如果有多个节点,则以下方法也适用: 执行以下命令: ipfsswarmconect/ip4/BBB.BBB.BBB/BBB/TCP/4001/ipfs/nodebid
将上例中的“multiAddress”替换为节点b的IPv4 “multiAddress”。 如果该节点使用IPv6,请执行以下命令:
ipfsswarmconect/ip6/bbbb : bbbb : bbbb : bbbb : bbbb : bbbbb/TCP/4001/ipfs/nodebid
用节点b的IPv6 “multiAddress”替换上面示例中的“multiAddress”。 运行命令将产生以下结果:
conect NodeBID success要测试这些节点是否互连,请使用以下命令: ipfs swarm peers位于节点a上
现在,你应该可以在返回的结果中看到节点b的“multiAddress”; 同样,在节点b上,在返回的结果中应该可以看到节点a的“multiAddress”。 目前,节点a和节点b互连
。 如果a搜索的内容位于b中,则搜索将立即进行,并且不能再像普通IPFS那样通过多个节点的中介搜索内容。 这将是节点a搜索内容时,节点b首先查询的对象。 步骤3 :自动化操作
前面的操作都是通过在命令行中手动输入命令来实现的,有什么方法可以自动执行这些操作并使节点之间永远连接起来吗? 我们可以通过Linux服务计时器实现这个目标。
这里假设有一个网关节点。 我希望所有IPFS节点自动连接到此网关。 在每个直接连接到网关的节点上,在该节点中添加以下两个文件:
第一个文件的内容如下:/etc/systemd/system/gateway-conector.service。
[ unit ] description=jobthatperiodicallyconectsthisipfsnodetothegatewaynode [ service ] execstart=/home/your username /
注:在以上文件中,您需要将某些值替换为自己的值。 在ExecStart中,将IPFS执行路径替换为安装go/ipfs可执行文件的路径。
在ExecStart中,“multiAddress”将替换为在网关上运行“ipfs id”所获得的返回值。 这里也可以使用IPv6的多地址。 在环境中
,然后将其替换为安装IPFS repo的路径。 运行" ipfs repo stat "将返回" RepoPath "的返回值。 是这个值。
第二个文件是/etc/systemd/system/gateway-conector.timer
[ unit ] description=timerthatperiodicallytriggersgateway-conector.service
[ timer ] on boot sec=3minonunitactivesec=1min [ install ] wanted by=timers.target位于上述文档中
,“OnBootSec”是您的机器启动后要等待多久才能启动计时器的时间设置。 OnUnitActiveSec是在执行每个“gateway-conector.service”后,在执行下一个“gateway-conector.service”之前等待的时间。
步骤4 :创建并运行自动运行自动化文件。 将上面列出的两个文件添加到每个节点的命令行中,然后运行以下命令:
sudosystemctlenablegateway-conector.timersudosystemctlstartgateway-conector.timersudosystemctlstartgateway
要验证添加的文件是否有效,请运行以下命令: 您可以看到systemctllist-timers“gateway contor”有一个值
,然后运行以下命令来验证结果: 系统状态管理器已完成。 这样,系统就构建好了。
正文来源: Filecoin社区n原文标题:如何在IPFS上快速搜索内容声明。 本文是入驻“火星号”的作者的作品,并不代表火星财经的官方立场。 n转载请联系网页的下部。 内容合作栏,用邮件许可
。 许可后转载时,请注明出处、作者、正文的链接。 擅自转载本网站文章,将追究相关法律责任,追究侵权行为。 提示:投资有风险,入市须谨慎,该信息不能作为投资理财的建议。 免责声明:作为区块链信息平台、本站提供的信息不代表任何投资暗示,本站发表的文章仅代表个人观点,与火星财经官方立场无关。 虚拟货币不具有与法定货币同等的法律地位,参与虚拟货币投资交易存在法律风险。 火星经济反对炒作各种代币请投资者理性看待市场风险。 n语音技术由科大讯飞提供关键词:IPFS合法吗? IPFS可靠吗? IPFSFILECOINIPFS开采