Chainlink 节点无法向 Chainlink 外部适配器发出请求(在本地主机上)
Chainlink node can't make requests to Chainlink external adapter (on localhost)
我有一个 chainlink 节点 运行ning 在端口 6688 上。我 运行 将它与 docker 连接,使用以下命令:
cd ~/.chainlink-rinkeby && docker run -p 6688:6688 \
-v ~/.chainlink-rinkeby:/chainlink \
-it --env-file=.env \
smartcontract/chainlink:1.4.0-root local n -p /chainlink/.password -a /chainlink/.api
而且我在端口 8080 上有一个外部适配器 运行ning。
如果我请求它 { "id": 0, "data":{ "columns": ["blood","heath"], "linesAmount":500 } }
它 returns 我是一个正确的负载,采用外部适配器所期望的格式:
{
"jobRunID": 0,
"data": {
"ipfsHash": "anIpfshashShouldBeHere",
"providers": [
"0x03996eF07f84fEEe9f1dc18B255A8c01A4986701"
],
"result": "anIpfshashShouldBeHere"
},
"result": "anIpfshashShouldBeHere",
"statusCode": 200
}
问题是,在 chainlink 节点中,特别是在 fetch
方法中,它给我一个错误:
error making http request: Post "http://localhost:8080": dial tcp 127.0.0.1:8080: connect: connection refused
是否与docker容器有关?我不明白为什么它不能从同一台机器的另一个端口请求资源。我可能缺少一些配置吗?
根据我从文档中读到的内容,可以在本地 运行 适配器。
下面是一张包含更多信息的图片:
如果您的外部适配器 (EA) 在 http://localhost:8080
上 运行,并且您正在尝试从 Docker 内的 Chainlink 节点 运行 访问该 EA ,那么你就不能使用 localhost
,你需要离开 Docker 容器并进入主机 运行 Docker 引擎(你的 Windows 或Mac 机)。
要这样做,请定义要使用的网桥 http://host.docker.internal:8080
。
可以在 Docker Docs 中找到更多详细信息。
我有一个 chainlink 节点 运行ning 在端口 6688 上。我 运行 将它与 docker 连接,使用以下命令:
cd ~/.chainlink-rinkeby && docker run -p 6688:6688 \
-v ~/.chainlink-rinkeby:/chainlink \
-it --env-file=.env \
smartcontract/chainlink:1.4.0-root local n -p /chainlink/.password -a /chainlink/.api
而且我在端口 8080 上有一个外部适配器 运行ning。
如果我请求它 { "id": 0, "data":{ "columns": ["blood","heath"], "linesAmount":500 } }
它 returns 我是一个正确的负载,采用外部适配器所期望的格式:
{
"jobRunID": 0,
"data": {
"ipfsHash": "anIpfshashShouldBeHere",
"providers": [
"0x03996eF07f84fEEe9f1dc18B255A8c01A4986701"
],
"result": "anIpfshashShouldBeHere"
},
"result": "anIpfshashShouldBeHere",
"statusCode": 200
}
问题是,在 chainlink 节点中,特别是在 fetch
方法中,它给我一个错误:
error making http request: Post "http://localhost:8080": dial tcp 127.0.0.1:8080: connect: connection refused
是否与docker容器有关?我不明白为什么它不能从同一台机器的另一个端口请求资源。我可能缺少一些配置吗? 根据我从文档中读到的内容,可以在本地 运行 适配器。 下面是一张包含更多信息的图片:
如果您的外部适配器 (EA) 在 http://localhost:8080
上 运行,并且您正在尝试从 Docker 内的 Chainlink 节点 运行 访问该 EA ,那么你就不能使用 localhost
,你需要离开 Docker 容器并进入主机 运行 Docker 引擎(你的 Windows 或Mac 机)。
要这样做,请定义要使用的网桥 http://host.docker.internal:8080
。
可以在 Docker Docs 中找到更多详细信息。