将上例中的“multiAddress”用节点B的IPv6 “multiAddress”替换。 运行完命令后,我们会得到下列结果: conect NodeBID success 我们可以用下列命令测试一下看这些节点是否已经互联了: ipfs swarm peers 在节点A上,你现在应该能在返回的结果中看到节点B的“multiAddress”;同理在节点B上,你应该能在返回的结果中看到节点A的“multiAddress”。 现在节点A和节点B已经互联了。假如A搜索的内容就在B上,那么搜索就应该很快,而不再像普通IPFS那样通过一堆节点的中介才能搜索到内容。这是节点A搜索内容时,节点B将会是第一个被查询的对象。 第三步:让运行自动化 前面我们的操作都是在命令行手动输入指令实现的,有没办法让这些自动执行从而使节点之间永远互联呢? 我们可以用Linux服务中的计时器达到这个目标。 这里我们假设我们有一个网关节点,我们希望我们所有的IPFS节点都自动连接到这个网关。对每一个希望直接连接网关的节点,我们在该节点上添加下列两个文件: 第一个文件是:/ETC/systemd/system/gateway-conector.service 其内容如下: [Unit]Description=JOB that periodically conects this IPFS node to the gateway node[Service]ExecStart=/home/yourUserName/go/BIN/ipfs swarm conect /ip4/GGG.GGG.GGG.GGG/tcp/4001/ipfs/gatewayIDEnvironment=IPFS_PATH=/ipfs 注意:在上述文件中,有几个值要替换成你自己的值。 在ExecStart中,你IPFS的执行路径要替换成你安装“Go/” IPFS可执行文件的路径。 在ExecStart中,“multiAddress”要替换成你在网关上运行“ipfs id”得到的返回值。这里也可以用IPv6的multiAddress。 在Environment中,你要用你安装IPFS repo的路径替换。你执行“ipfs repo stat”后会得到一个返回值“RepoPath”,就是这个值。 第二个文件是:/etc/systemd/system/gateway-conector.timer [Unit]Description=Timer that periodically triggers gateway-conector.service [Timer]OnBootSec=3minOnUnitActiveSec=1min [Install]WantedBy=timers.target 在上述文件中,“OnBootSec”是你的机器在启动后要等待多久才启动计时器的时间设定。“OnUnitActiveSec”是每一个“gateway-conector.service”执行后下一个“gateway-conector.service”执行之前要等待的时间。 第四步:自动化运行 现在我们创建自动化文件,并运行它们。 在每个节点的命令行,加入我们上面罗列的两个文件,并运行下列命令: sudo systemctl enable gateway-conector.timer sudo systemctl start gateway-conector.timer 为了验证我们加入的文件是否有效,运行下列命令: (责任编辑:admin) |