Hot answers tagged

15

Summary Check that there is network connectivity between the two Docker containers and reconfigure if necessary. Check there is sufficient memory allocated to each container. In each Docker container Install the go-ethereum geth program Create two accounts (Ethereum addresses) Run geth with the exact same custom genesis.json file, same --networkid, --...


9

Here's the steps I used to create a Docker image that recreates a consistent test environment: Create a Docker file (see listing below) with empty geth data directory and files as noted in the Docker file. Also set up directory structure as noted in Docker file below. user docker build -t ethereum/client-go:test . to build an image start a container, ...


8

Eris is a cli tool focused on container orchestration for blockchainized applications. Normally we recommend it be installed on the host. It's certainly possible to run from inside docker but it will be much less convenient. That said, we have images available for eris on quay.io. You can also pull the eris-cli repo and build the canonical dockerfile from ...


7

Adding --rpcvhosts=* this flag to the starting command solved the issue


7

The issue is that the default RPC server is "localhost", which doesn't seem to work properly in a Docker container in a VM. Instead, the server name of "0.0.0.0" will bind to all IP addresses the container is given, which will work with Docker's networking better. So, the one-line command to run would be: docker run -p 8545:8545 --name geth ethereum/client-...


4

Well, apparently the reason why the connection is being refused is that "'Connection refused' is ok for the Go bootnode. [as i]t does not accept TCP connections", as suggested by fjl in the go-ethereum issue 380 Discovery uses UDP as protocol. If you want to test if it's working properly, use netcat -u -z -v <PUB-IP> 30301 instead.


4

We have written a Docker container to run a private Ethereum network that works with Remix and MetaMask. You can see the details on our Dockerized Ethereum Private Testing Environment Compatible with MetaMask and Remix.


3

It seems inside a docker container, nodejs has problem getting the websocket from github. So I just add the websocket library directly in my app: npm install --save websocket


3

I followed the steps described in an extremely helpful answer of @Paul S. The result can be found as a docker module under https://github.com/pragmaticcoders/docker-geth-dev Comparing to the original answer, there are some tiny changes in the command to run geth to account for the version difference (--genesis parameter removed). I hope this will save ...


3

You should be able to run geth on your command line with your private network setup parameters IF you have --ipcpath pointing to the default ~/Library/Ethereum/geth.ipc file path. Start Ethereum Wallet and it will use the default IPC path to communicate with geth that is running to communicate with your local private network. I have just tested this with ...


2

You can actually do this my running different chains on different ports. This is possible by either using --publish or by using --ports flag. If you use --publish flag then it will randomise the ports. If you use --ports flag then you can specify the ports on which you want to run a particular chain. To read more on ports, use the eris documentation.


2

Multiple chains running at once on the Eris platform is indeed possible. To do this, for each chain, when you run eris chains new|start, add the --publish flag which will randomize the ports and allow multiple chains to be running at once. Hope this answers your question!


2

Eris has a geth Dockerfile with some custom scripts here: https://github.com/eris-ltd/common/tree/master/docker/geth It's somewhat out of date though updates are in the pipeline over the next month. The image for that Dockerfile is quay.io/eris/geth and can be run with eris services start geth if eris-cli is installed. Subscribe to this issue to track ...


2

Ethereum accounts are saved in the $HOME/.ethereum/keystore folder. Since the Docker container is set to run geth as root, that translates to /root/.ethereum/keystore Using the docker cp command we can get that file out of a running container: docker cp CONTAINERNAME:/root/.ethereum/keystore keystore Replace CONTAINERNAME with the name of your running ...


2

You need to tell the executable the path inside the container. i.e. /root/.ethereum/testnet_genesis.json


2

The --compiler flag should be the IP of the compilers service rather than the docker-machine hosts ip. By default you can omit the flag to use the remote hosted compilers. Since it looks like you're trying to use the local compiler via the docker image, you can use the --local-compilers flag on version 0.12.0 of eris. For version 0.11.4, you'll need to ...


2

Prepare your nodekey for each node in advance. It is just a 512-bit random number. Then store them somewhere, along with the public ECDSA keys derived from there. The public keys are the components of the enode you need to establish connections using the --bootnode command option, as well as the admin.addPeer() function in console. Forming the enode is as ...


1

After reading up on Docker, I found the following solutions. To connect to a local RPC, use host.docker.internal instead of localhost. For example, Ganache listens on port 7545 by default: docker run mythril/myth -xa 0xadf6E506c4243E9fb25EA6517017E63a2eaEBB0e --rpc host.docker.internal:7545 To analyze a local .sol file, you have to mount the directory ...


1

Solved my problem by generating new eth_config.toml file using geth dumpconfig, so the structure is like this now: [Eth] NetworkId = 1 SyncMode = "fast" LightPeers = 100 DatabaseCache = 768 GasPrice = 18000000000 EnablePreimageRecording = false [Eth.Ethash] CacheDir = "ethash" CachesInMem = 2 CachesOnDisk = 3 DatasetDir = "/root/.ethash" DatasetsInMem = 1 ...


1

You need to deploy your DAPP's smart contracts on a test etherium blockchain first and then afterwards you can deploy your DAPP on aws. Docker Link : https://github.com/getamis/istanbul-tools More about etherium testNets: https://medium.com/coinmonks/how-to-deploy-a-smart-contract-to-ethereum-testnet-e34fa5b10dd6


1

I think I found the root cause to this problem. Puppeth internally uses a ssh connection to the machine where you want to run things; localhost in my case. The SSH daemon is compiled with a default path. If you ssh to a machine with a specific command (other than a shell), you get that default path. This does not include /usr/local/bin for example, where ...


1

I ran into the same problem. I had a web server running in a Docker Container and an Ethereum node (for testnet) running on my machine. It seemed the app in Docker wont be able to connect to the node outside of it. Here is how I solved that issue without having to run Geth node inside my container: Make sure you have --rpc and --rpccorsdomain flags when ...


1

Something you could try is a docker-compose with your app and a build-in geth docker image. For example docker-compose.yml version: '3' services: geth: image: kunstmaan/ethereum-geth-testnet ports: - "8545:8545" - "30303:30303" stdin_open: true tty: true your_app: build: ./ ports: - "8080:8080" (...) ...


1

I'm also running docker on windows 10 and had very similar problem when using parity in docker with the help of this project: https://github.com/paritytech/parity-deploy This creates docker compose file and configuration files for you. After starting the container I got the same error. I suspect it has to do something with the differences in the file ...


1

If you want to create a private network, you need to create your own genesis file (see the "Operating a private network" section of the documentation of the client-go Docker image. If you create that in a folder, and then are on the command line in that folder, running: docker run --name ethereum-node -v ${PWD}:/private-data \ ethereum/client-go init /...


1

Docker isn't aware of your local file system by default. You need to bind your local directory as a data volume. (https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume) In your case, I believe the command you're looking for is: docker run -v c:\work\eth:c:\solidity ethereum/solc:stable Coin.sol If you want to ...


1

The solution is to mount it on docker with -v to a local folder Example First on your host create the folder where parity is going to save the data mkdir /srv/parity Then make sure you have the latest version of parity docker pull parity/parity:nightly And finally create the container with the following parameters: -v /srv/parity:/root/.local/share/io....


1

I have no concrete explanation but I noticed that this bug appears if the following line as been executed: var solc = require('solc') Removing this import and compiling my contract in another script fix this issue.


1

Perhaps you should try geth attach http://localhost:8545 The default geth console connectivity is via IPC which requires access to geth.ipc file handler.


1

$ docker exec -it ethereum-node /geth attach ipc://root/.ethereum/devchain/geth.ipc Try to use this command if it works. Maybe you should change geth.ipc path in the command.


Only top voted, non community-wiki answers of a minimum length are eligible