如何在一台机器上运行多个IPFS节点?

Lon*_*ang 7 ipfs

为了测试,我希望能够在一台机器上运行多个IPFS节点.

这是一个场景:我正在构建基于IPFS核心库的小型服务,遵循制作您自己的IPFS服务指南.当我尝试将客户端和服务器放在同一台机器上时(注意它们每个都将创建自己的IPFS节点),我将得到以下内容:

panic: cannot acquire lock: Lock FcntlFlock of /Users/long/.ipfs/repo.lock failed: resource temporarily unavailable
Run Code Online (Sandbox Code Playgroud)

Lon*_*ang 14

通常,当您从IPFS开始时,您将使用ipfs init,这将创建一个新节点.为该特定节点存储的默认数据和配置位于~/.ipfs.以下是创建新节点并对其进行配置的方法,以便它可以在默认节点之外运行.

1.创建一个新节点

对于新节点,您必须ipfs init再次使用.例如使用以下内容:

IPFS_PATH=~/.ipfs2 ipfs init
Run Code Online (Sandbox Code Playgroud)

这将在〜/ .ipfs2创建一个新节点(不使用默认路径).

2.更改地址配置

由于两个节点现在都绑定到相同的端口,因此您需要更改端口配置,以便两个节点可以并排运行.为此,打开〜/ .ipfs2/config and find地址` :

"Addresses": {
    "API": "/ip4/127.0.0.1/tcp/5001",
    "Gateway": "/ip4/127.0.0.1/tcp/8080",
    "Swarm": [
        "/ip4/0.0.0.0/tcp/4001",
        "/ip6/::/tcp/4001"
    ]
}
Run Code Online (Sandbox Code Playgroud)

例如以下内容:

"Addresses": {
    "API": "/ip4/127.0.0.1/tcp/5002",
    "Gateway": "/ip4/127.0.0.1/tcp/8081",
    "Swarm": [
        "/ip4/0.0.0.0/tcp/4002",
        "/ip6/::/tcp/4002"
    ]
}
Run Code Online (Sandbox Code Playgroud)

有了这个,您应该能够在一台机器上运行节点.ipfs和.ipfs2.


笔记:

  1. 每当使用.ipfs2时,都需要设置env变量 IPFS_PATH=~/.ipfs2
  2. 在您的示例中,您需要将客户端或服务器节点从〜/ .ipfs更改为〜/ .ipfs2
  3. 你也可以使用IPFS_PATH =〜/ .ipfs2 ipfs daemon&在第二个节点上启动守护进程

  • 例如,您可以在一个终端中运行`IPFS_PATH =〜/ ipfs ipfs守护程序`,在另一个终端中运行`IPFS_PATH =〜/ ipfs2 ipfs守护程序`.不确定这是否回答了你的问题. (2认同)