Skip to main content

DNS problems when running an Ethereum cluster on Docker Swarm

To run privately an ethereum cluster, the nodes have to find each other through a bootnode. The address of the bootnode has to be an IP address. When we run a bridged network we can set manually the ip address, but this option is not currently supported by the overlay network needed by swarm.

Therefore in our init script we run a simple resolution command based on the image name "bootnode". Problem was that the nodes were still unable to connect and no mining would happen.
After investigating, I've noticed that the address resolved with the name of the service was not consistent. Inside the docker container:

root@84cba6d65c3d:/geth# host ethnode4
ethnode4 has address 10.0.0.3
root@84cba6d65c3d:/geth# host tasks.ethnode4
tasks.ethnode4 has address 10.0.0.4


The right address was .4 where the system was answering , with .3 other containers were not able to connect.  Therefore I change the bash script to fetch the bootnode ip by prepending the hostname with "tasks." like doing "host tasks.bootnode" instead of "host.bootnode" (you could use whatever command you like):

BOOTNODEIPADDRESS=$(host tasks.$3 | head -1|cut -d' ' -f4)

After this, the ethereum cluster started correctly


Comments

Popular posts from this blog

Multiple controllers with Spring Boot

Remember, when you want to have multiple controllers with Spring Boot, you should always name them differently in the annotation, otherwise they will not work So these two together will NOT work (or just one of them will work) These two instead WILL work.

Can't use the newest npm when node is installed with brew (MacOs)

Even though I installed and reinstalled node with brew, with last versione 11.8.0, apparently it kept using the last version fdecollibus$ npm install --global gatsby-cli npm WARN npm npm does not support Node.js v11.8.0 npm WARN npm You should probably upgrade to a newer version of node as we npm WARN npm can't make any promises that npm will work with this version. npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9. npm WARN npm You can find the latest version at https://nodejs.org/ /usr/local/Cellar/node/11.8.0/bin/gatsby -> /usr/local/Cellar/node/11.8.0/lib/node_modules/gatsby-cli/lib/index.js + gatsby-cli@2.4.8 npm -v gave me back version 5.6.0. I've therefore noticed that  /usr/local/lib/node_modules had wrong permissions assigned to root:wheel. A chown did not fix the problem: I've had to manually delete the content of the folder (cd / usr/local/lib/node_modules and -careful - type rm -rf ...