I am trying to run 8 containers. 4 nodes and 4 abci nodes. This is my docker-compose file
The idea is to connect each node to its abci node. The configuration file which is to be shared between all the nodes are in the folder named build in the directory.
version: '3'
services:
node0:
container_name: node0
image: "tendermintnode"
ports:
- "26656-26657:26656-26657"
environment:
- ID=0
- LOG=$${LOG:-tendermint.log}
build:
context: .
dockerfile: abci.Dockerfile
volumes:
- ./build:/tendermint
command: tendermint node --proxy_app=tcp://abci0:26658 --home "./tendermint/node0" --consensus.create_empty_blocks=false
depends_on:
- abci0
networks:
localnet:
ipv4_address: 192.167.10.2
node1:
.
node2:
node3:
.
abci0:
container_name: abci0
image: "abcinode"
build:
context: .
dockerfile: abci.Dockerfile
command: python3 vimana/tendermint/app.py
networks:
localnet:
ipv4_address: 192.167.10.6
abci1:
.
abci2:
.
abci3:
.
networks:
.
It was supposed to start sending requests to each other. But instead it gives.
abci1 | INFO ABCIServer started on port: 26658
abci0 | INFO ABCIServer started on port: 26658
.
.
.
node0 | E[20016-01-20|19:50:10.519] Dialing failed module=pex addr=7ab8dbd0213ba49aaba13bb7d9396072ba4c4496@192.167.10.5:26656 err="dial tcp 192.167.10.5:26656: connect: connection refused" attempts=0
node0 | E[20016-01-20|19:50:10.657] Dialing failed module=pex addr=ba1ee154e395db646cc54c6fd2a9d0f8f9f98bf1@192.167.10.3:26656 err="dial tcp 192.167.10.3:26656: i/o timeout" attempts=0
.
.
.
node2 | I[20016-01-20|19:50:12.576] Started node module=main nodeInfo="{ProtocolVersion:{P2P:5 Block:8 App:0} ID_:01723b064d72fdbe356911652e1f078fa3c5efd5 ListenAddr:tcp://0.0.0.0:26656 Network:chain-EFXD56 Version:0.27.3 Channels:4020212223303800 Moniker:asura Other:{TxIndex:on RPCAddress:tcp://0.0.0.0:26657}}"
node3 | E[20016-01-20|19:50:40.625] Dialing failed module=pex addr=7ab8dbd0213ba49aaba13bb7d9396072ba4c4496@192.167.10.5:26656 err="self ID<7ab8dbd0213ba49aaba13bb7d9396072ba4c4496>" attempts=0
node1 | E[20016-01-20|19:50:41.751] Dialing failed module=pex addr=ba1ee154e395db646cc54c6fd2a9d0f8f9f98bf1@192.167.10.3:26656 err="self ID<ba1ee154e395db646cc54c6fd2a9d0f8f9f98bf1>" attempts=0
node2 | E[20016-01-20|19:50:42.581] Dialing failed module=pex addr=01723b064d72fdbe356911652e1f078fa3c5efd5@192.167.10.4:26656 err="self ID<01723b064d72fdbe356911652e1f078fa3c5efd5>" attempts=0
node0 | E[20016-01-20|19:51:09.660] Dialing failed module=pex addr=753c2e8a68b459816d598b49a0db107f64777fc5@192.167.10.2:26656 err="self ID<753c2e8a68b459816d598b49a0db107f64777fc5>" attempts=0
node0 | E[20016-01-20|19:53:37.353] Error on broadcastTxCommit module=rpc err="Timed out waiting for tx to be included in a block"
As you can see above the abci containers are working fine. But the connection is getting refused.
For people looking for an answer, the PR https://github.com/tendermint/tendermint/pull/3195/files was merged to develop a few days ago.
node0:
container_name: node0
image: "tendermint/localnode"
ports:
- "26656-26657:26656-26657"
environment:
- ID=0
- LOG=$${LOG:-tendermint.log}
volumes:
- ./build:/tendermint:Z
command: node --proxy_app=tcp://abci0:26658
networks:
localnet:
ipv4_address: 192.167.10.2
abci0:
container_name: abci0
image: "abci-image"
build:
context: .
dockerfile: abci.Dockerfile
command: <insert command to run your abci application>
networks:
localnet:
ipv4_address: 192.167.10.6
networks:
localnet:
driver: bridge
ipam:
driver: default
config:
-
subnet: 192.167.10.0/16