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

WB3交流加微信:WX-93588,⬅️此处为全站广告位,与正文项目无关
注册并登录App即可领取高达 60,000 元的数字货币盲盒:点击此处注册OKX

今天要和咱们共享的是一篇技术性较强的文章,叙述了一种在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社区

此时快讯

【Loopring前创始人地址向Loopring转入价值1880万美元LRC代币】8月20日消息,据链上监测,Loopring协议前创始人Daniel Wang地址“danielwang.eth”于1小时前活跃,并向Loopring: Exchange v2转入1亿枚LRC代币,价值1880万美元。
具体过程如下:
(1)0x40开头地址向danielwang.eth转入0.1 ETH作为Gas费用;
(2)danielwang.eth与Loopring代币合约交互获得1亿枚LRC代币,并转入0x40开头地址;
(3)0x40开头地址将这一亿枚代币转入Loopring: Exchange v2。
2022年3月,Daniel Wang发文宣布离开Loopring协议,不再参与项目的日常工作。此后Daniel Wang与Brecht Devos等共同创立以太坊Layer2扩容解决方案Taiko,目前该项目完成两轮融资,共筹集2,200万美元。

版权声明:本文收集于互联网,如有侵权请联系站长删除。
转载请注明:快速搜索内容:OK交易平台+IPFS指南 | 币百度

相关文章