Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Puppeth: new ethereum/client-go breaks deploying nodes #16464

Closed
corpetty opened this issue Apr 8, 2018 · 9 comments
Closed

Puppeth: new ethereum/client-go breaks deploying nodes #16464

corpetty opened this issue Apr 8, 2018 · 9 comments

Comments

@corpetty
Copy link

corpetty commented Apr 8, 2018

System information

Geth version: geth version 1.8.4-unstable
OS & Version: Ubuntu 17.10

Expected behaviour

deploying a node using puppeth should pull relevant docker images from dockerhub and deploy the geth node on the server with network information

Actual behaviour

If you need to pull the newest ethereum/go-client on the server (> v1.8.3), you get a permissions issue as follows:

What would you like to do? (default = stats)
 1. Show network stats
 2. Manage existing genesis
 3. Manage tracked machines
 4. Manage network components
> 4

 1. Tear down Nginx on petty@192.168.1.250
 2. Tear down Ethstats on petty@192.168.1.250
 3. Deploy new network component
> 3

What would you like to deploy? (recommended order)
 1. Ethstats  - Network monitoring tool
 2. Bootnode  - Entry point of the network
 3. Sealer    - Full node minting new blocks
 4. Explorer  - Chain analysis webservice (ethash only)
 5. Wallet    - Browser wallet for quick sends
 6. Faucet    - Crypto faucet to give away funds
 7. Dashboard - Website listing above web-services
> 2

Which server do you want to interact with?
 1. xxxxxxxxxx
 2. Connect another server
> 1

Where should data be stored on the remote machine?
> /home/petty/bootnode_test

Which TCP/UDP port to listen on? (default = 30303)
>

How many peers to allow connecting? (default = 512)
>

How many light peers to allow connecting? (default = 256)
>

What should the node be called on the stats page?
> test_bootnode
Found orphan containers (ls_ethstats_1, ls_nginx_1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Building bootnode
Step 1/4 : FROM ethereum/client-go:latest
latest: Pulling from ethereum/client-go
Digest: sha256:10e26ce2f36e9981935bde8f6e101b6e7367bdd1479677242391f6a0d478a809
Status: Downloaded newer image for ethereum/client-go:latest
 ---> 8b32c2d2aba8
Step 2/4 : ADD genesis.json /genesis.json
  1 // Copyright 2017 The go-ethereum Authors
 ---> d64b6e2df69e
Step 3/4 : RUN   echo 'geth --cache 512 init /genesis.json' > geth.sh &&     echo $'geth --networkid 65170 --cache 512 --port 30303 --maxpeers 512 --lightpeers=256 --lightserv=50 --ethstats \'test_bootnode:secret@192.168.1.250\'    --targetgaslimit 0 --gasprice 0' >> geth.sh
 ---> Running in e012420b44e8
/bin/sh: can't create geth.sh: Permission denied
Service 'bootnode' failed to build: The command '/bin/sh -c echo 'geth --cache 512 init /genesis.json' > geth.sh &&     echo $'geth --networkid 65170 --cache 512 --port 30303 --maxpeers 512 --lightpeers=256 --lightserv=50 --ethstats \'test_bootnode:secret@192.168.1.250\'    --targetgaslimit 0 --gasprice 0' >> geth.sh' returned a non-zero code: 1
ERROR[04-08|16:09:12] Failed to deploy Ethereum node container err="Process exited with status 1"

I can submit pull request for changing ethereum/go-client:latest to v1.8.3 or the dockerhub version needs to be fixed.

@coinmini
Copy link

coinmini commented Apr 9, 2018

i met the same situation. please PR thanks

@cd4761
Copy link

cd4761 commented Apr 9, 2018

i met the same situation. too

@coinmini
Copy link

coinmini commented Apr 9, 2018

even, the Sealer step: /bin/sh: can't create geth.sh: Permission denied. i am think geth.sh wont work for anywhre now :(

Found orphan containers (private_ethstats_1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Building sealnode
Step 1/6 : FROM ethereum/client-go:latest
---> 8b32c2d2aba8
Step 2/6 : ADD genesis.json /genesis.json
---> Using cache
---> 3e7354552085
Step 3/6 : ADD signer.json /signer.json
---> 75733f987811
Step 4/6 : ADD signer.pass /signer.pass
---> 6b580a89b6a7
Step 5/6 : RUN echo 'geth --cache 512 init /genesis.json' > geth.sh && echo 'mkdir -p /root/.ethereum/keystore/ && cp /signer.json /root/.ethereum/keystore/' >> geth.sh && echo $'geth --networkid 57599 --cache 512 --port 30303 --maxpeers 50 --ethstats 'miner:xxx@xx.xx.xx.xx:81' --unlock 0 --password /signer.pass --mine --targetgaslimit 4700000 --gasprice 18000000000' >> geth.sh
---> Running in c1f3b19ca00f
/bin/sh: can't create geth.sh: Permission denied
Service 'sealnode' failed to build: The command '/bin/sh -c echo 'geth --cache 512 init /genesis.json' > geth.sh && echo 'mkdir -p /root/.ethereum/keystore/ && cp /signer.json /root/.ethereum/keystore/' >> geth.sh && echo $'geth --networkid 57599 --cache 512 --port 30303 --maxpeers 50 --ethstats 'miner:xxx@xx.xx.xx.xx:81' --unlock 0 --password /signer.pass --mine --targetgaslimit 4700000 --gasprice 18000000000' >> geth.sh' returned a non-zero code: 1
ERROR[04-09|19:44:55] Failed to deploy Ethereum node container err="Process exited with status 1"

@corpetty
Copy link
Author

corpetty commented Apr 9, 2018

any deployed node will have the same issue. bootnode/sealer. A temporary workaround if you're building your code from source is as follows:

1) edit to `go-ethereum/cmd/puppeth/module_node.go`
2) change line 35 from `FROM ethereum/client-go:latest` to `FROM ethereum/client-go:v1.8.3`
3) go to `go-ethereum/`
4) `make all`
5) go to `go-ethereum/build/bin/`
6) `./puppeth` will work now for nodes.

@cd4761
Copy link

cd4761 commented Apr 10, 2018

@corpetty thx! it works

@coinmini
Copy link

Thx,@corpetty. it works now.

@karalabe
Copy link
Member

#16477 should fix this. The core dockerfiles were updated a couple days ago, which broke puppeth.

@karalabe
Copy link
Member

Seems there might be still some issues. Sigh.

@karalabe
Copy link
Member

Ok, figured the second issue out too. It was AUFS due to an old kernel in xenial. Should work on a more recent Ubuntu version fine. Tell if if something is still off.

Btw, you might need to update the ownership of the old data files, since the new docker images don't run with root permissions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants