元宇宙非小号金色财经交流群社区官网

快速搜索内容:OK交易平台+IPFS指南

浏览:28|时间:2023-08-20 20:32:49
今天要和大家分享的是一篇技术性较强的文章,讲述了一种在IPFS系统中快速搜索内容的方法。

假设希望尝试这个方法的读者已经有了自己搭建的一个IPFS系统,并且有多个运行在Ubuntu16操作系统上的节点。

适合阅读这篇文章的读者有以下几类: - 读者希望在自己已搭建的IPFS系统中快速搜索内容; - 读者的IPFS系统中不仅运行着普通节点,还运行了IPFS网关; - 读者的IPFS系统中总有节点时不时和其他节点断开或失联。

IPFS是一个强大的去中心化文件分发和存储协议,但它也存在一些缺憾,比如无法保证所有节点之间始终互联。

这个缺憾导致即使在系统刚搭建好时所有节点都启动了,这些节点最终可能会互相断开失联,从而降低内容搜索的速度。

在这种情况下,当系统使用了网关,并将用户引导到网关来搜索所需内容时,就会出现问题 - 如果网关与所有节点都没有直接连接,则用户搜索的内容需要花费更长的时间才能被发现。

那么如何解决这个问题呢?

第一步是获取节点的"multiAddresses"。

在每个IPFS节点中打开命令行工具,并运行命令ipfs id。你将会看到如下结果:

{"ID":"YourNodeID","PublicKey":"YourPublicKey","Addresses":["/ip4/127.0.0.1/tcp/4001/ipfs/YourNodeID","/ip4/XXX.XXX.XXX.XXX/tcp/4001/ipfs/YourNodeID","/ip6/::1/tcp/4001/ipfs/YourNodeID","/ip6/YYYY:YYYY:YYYY:YYYY:YYYY:YYYY:YYYY:YYYY/tcp/4001/ipfs/YourNodeID","/ip6/YYYY:YYYY:YYYY:YYYY:YYYY:YYYY:YYYY:YYYY/tcp/4001/ipfs/YourNodeID","/ip6/YYYY:YYYY:YYYY:YYYY:YYYY:YYYY:YYYY:YYYY/tcp/4001/ipfs/YourNodeID","/ip4/XXX.XXX.XXX.XXX/tcp/4001/ipfs/YourNodeID",],"AgentVersion":"go-ipfs/0.4.17/","ProtocolVersion":"ipfs/0.1.0"}

我们重点关注这里的"Addresses"数组。它包含了"multiAddress"值,这些值是外部的IPFS节点用来连接节点使用的数据。这些结果有可能会有重复,但这没关系。我们只需要记录下那些包含外部IP地址的值。如果你的系统使用的是IPv6,记下那个IPv6的"multiAddress",如果你的系统没有使用IPv6,就记下IPv4的"multiAddress"。

第二步是连接你的IPFS节点。

现在把系统中的IPFS节点互相连接起来。

假设我们有一个节点A和一个节点B,如果有多个节点,下列方法也适用。运行下列命令:

ipfs swarm connect /ip4/BBB.BBB.BBB.BBB/tcp/4001/ipfs/NodeBID

将上例中的"multiAddress"用节点B的IPv4"multiAddress"替换。

如果节点使用的是IPv6,运行下列命令:

ipfs swarm connect /ip6/BBBB:BBBB:BBBB:BBBB:BBBB:BBBB:BBBB:BBBB/tcp/4001/ipfs/NodeBID

将上例中的"multiAddress"用节点B的IPv6"multiAddress"替换。

运行完命令后,我们会得到"connectNodeBIDsuccess"的结果。

我们可以用下列命令测试一下看这些节点是否已经互联了:

ipfs swarm peers

在节点A上,你现在应该能在返回的结果中看到节点B的"multiAddress",同理在节点B上,你应该能在返回的结果中看到节点A的"multiAddress"。

现在节点A和节点B已经互联了。如果A搜索的内容就在B上,那么搜索就应该很快,而不再像普通IPFS那样通过一堆节点中介才能搜索到内容。这时节点B将会是节点A搜索内容时的第一个被查询的对象。

第三步是让运行自动化。

前面我们的操作都是在命令行手动输入指令实现的,那有没有办法让这些指令自动执行,使节点之间永远互联呢?

我们可以使用Linux服务中的计时器来实现这个目标。

假设我们有一个网关节点,并希望我们所有的IPFS节点都能自动连接到这个网关。那么对于每一个希望直接连接网关的节点,我们在该节点上添加两个文件:

1. 第一个文件是:/etc/systemd/system/gateway-connector.service,其内容如下:

[Unit] Description=Job that periodically connects this IPFS node to the gateway node [Service] ExecStart=/home/yourUserName/go/bin/ipfs swarm connect /ip4/GGG.GGG.GGG.GGG/tcp/4001/ipfs/gatewayID Environment="IPFS_PATH=/ipfs"

注意:在上述文件中,有几个值需要替换成你自己的值。

在ExecStart中,你要将IPFS的执行路径替换成你安装"Go/IPFS"可执行文件的路径。

在ExecStart中,将"multiAddress"替换成你在网关上运行"ipfs id"得到的返回值。这里也可以使用IPv6的"multiAddress"。

在Environment中,你需要用你安装IPFS repo的路径替换。你执行"ipfs repo stat"后会得到一个返回值"RepoPath",就是这个值。

2. 第二个文件是:/etc/systemd/system/gateway-connector.timer,其内容如下:

[Unit] Description=Timer that periodically triggers gateway-connector.service [Timer] OnBootSec=3min OnUnitActiveSec=1min [Install] WantedBy=timers.target

在上述文件中,"OnBootSec"是你的机器在启动后要等待多久才启动计时器的时间设定;"OnUnitActiveSec"是每个"gateway-connector.service"执行后下一个"gateway-connector.service"执行之间要等待的时间。

第四步是运行自动化。

现在我们创建了自动化文件,并运行它们。

在每个节点的命令行中,添加我们上述列出的两个文件,然后运行下列命令:

sudo systemctl enable gateway-connector.timer sudo systemctl start gateway-connector.timer

为了验证我们添加的文件是否有效,运行下列命令:

systemctl list-timers

现在你就能看到"gateway-connector"有一个值,可以运行下列命令验证其结果:

systemctl status gateway-connector

至此,我们的系统就搭建好了。

参考链接:https://medium.com/pinata/how-to-keep-your-ipfs-nodes-connected-and-ensure-fast-content-discovery-7d92fb23da46 作者:Filecoin社区

IPFS ok ok交易平台 交易 交易平台

  • 区块链技术最早发行的BitSwap协议,IPFS节点如何运用

    区块链技术最早发行的BitSwap协议,IPFS节点如何运用

    2022-01-08 15:22:07

    最开始的数据互换协议当属BitTorrent,这也是大部分区块链技术节点中间完成沟通交流的基本协议,自然IPFS也务必必须能完成p2p的数据互换协议,IPFS在BitTorrent的根基上完成了自身BitSwap协议,该...

  • IPFS和NFT相结合的话会产生什么效果?

    IPFS和NFT相结合的话会产生什么效果?

    2022-02-15 17:58:13

    NFT作为区块链异构经济通证概念的鼻祖,经历了多年的沉寂,20年后终于开始接受众多应用,迄今为止,NFT已经接待了众多互联网科技巨头和文化界,众多布局应用正式启动积极发展区块链加密金融。随着NFT作品的陆续上线和交易,N...

  • IPFS挖矿骗局很多,很多投资者都受到了伤害

    IPFS挖矿骗局很多,很多投资者都受到了伤害

    2022-04-08 15:59:10

    2018年,IPFS该协议风靡矿区,掀起了疯狂的采矿浪潮,各种IPFS矿机到处遍地开花。由于主网上线的一再延迟,挖掘算法已经很久没有公布了。矿机和代币只是期货,不能真正挖掘。模仿和冒充他们项目的门槛很低,市场投资者很难。...

  • 货币交易平台频繁,比特币交易所最安全的交易平台被盘点

    货币交易平台频繁,比特币交易所最安全的交易平台被盘点

    2022-04-11 13:06:23

    现在普通的交易所不一定是最安全的。比如我现在用的BTBTOP,这是一家小交易所,但由于体积小,投资成本大,没有必要为我的小钱逃跑。大型交易所并不是绝对安全的。你想要火币和Okex。这些交易所很大,但政策风险也很高,对用户...

本站分享的区块链、Web3.0元宇宙、NFT、数字藏品最新消息等相关数藏知识快讯NFR资讯新闻,与金色财经非小号巴比特星球前线Btc中国官网无关,本站资讯观点不作为投资依据,市场有风险,投资需谨慎!不提供社区论坛BBS微博微信交流群等相关币圈信息发布!
声明:本站内容来源于网络,如有侵权请即时告知,我们将即时删除!