Alp*_*a60 6 docker blockchain docker-compose ethereum geth
我正在尝试将 Ethers.js 连接到在 Docker 容器中运行的本地 Ehereum 节点 (Geth)。在客户端,我以这种方式创建提供程序:new ethers.providers.JsonRpcProvider('http://geth:8545')。geth是节点容器主机名,并且两个容器位于同一网络上:我可以从客户端容器内 ping Geth 节点。当我开始从客户端请求节点时,出现错误"noNetwork"。
当我在没有 Docker 的情况下运行客户端,通过 请求节点容器时http://localhost:8545,它工作正常。
怎么了?
version: "3.5"
services:
geth:
container_name: geth
image: ethereum/client-go:latest
volumes:
- /etc/geth:/root/.ethereum:rw
ports:
- "8545:8545"
- "30303:30303"
networks:
- ethereum
entrypoint: "geth --nousb --http --http.corsdomain '*' --http.addr 0.0.0.0 --http.api personal,eth,net,web3 --syncmode light"
networks:
ethereum:
name: ethereum-net
Run Code Online (Sandbox Code Playgroud)
version: "3.5"
services:
eth-server:
container_name: eth_server_dev
build: packages/eth-server/.
environment:
- NODE_ENV=development
- NODE_PORT=3002
volumes:
- ./packages/eth-server/log:/app/log:rw
ports:
- "3002:3000"
networks:
- ethereum
networks:
ethereum:
external:
name: ethereum-net
Run Code Online (Sandbox Code Playgroud)
/app/node_modules/@ethersproject/logger/lib/index.js:179
var error = new Error(message);
^
Error: could not detect network (event="noNetwork", code=NETWORK_ERROR, version=providers/5.0.17)
at Logger.makeError (/app/node_modules/@ethersproject/logger/lib/index.js:179:21)
at Logger.throwError (/app/node_modules/@ethersproject/logger/lib/index.js:188:20)
at JsonRpcProvider.<anonymous> (/app/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:407:54)
at step (/app/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:46:23)
at Object.throw (/app/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:27:53)
at rejected (/app/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:19:65)
at processTicksAndRejections (node:internal/process/task_queues:93:5) {
reason: 'could not detect network',
code: 'NETWORK_ERROR',
event: 'noNetwork'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1911 次 |
| 最近记录: |