1

I cant seem to get the latest version of Geth 1.8.3 working. It stops and never starts syncing.

I'm trying to get it on to the rinkeby.io testnet for smart contract testing.

I had success with 1.7.3 after downloading and using ADD to copy the files to the image. But I would like to automate the build, so that it can be used in Google cloud with a deployment.yml.

Currently I'm testing on my local machine since I know the firewall worked with 1.7.3. (no specific rules set)

The Dockerfile builds just fine and I can see that it shows up in the rinkeby.io node list, but even after 1 hour not a single block has been synced. its stuck on: IPC endpoint opened

With 1.7.3 it took 10-15 seconds to start the sync.

Dockerfile

# ----- 1st stage build -----
FROM golang:1.9-alpine as builder

RUN apk add --no-cache make gcc musl-dev linux-headers git curl
WORKDIR /
RUN curl -o rinkeby.json https://www.rinkeby.io/rinkeby.json
RUN git clone https://github.com/ethereum/go-ethereum.git
RUN cd /go-ethereum && make geth

# ----- 2nd stage build -----
FROM alpine:latest

RUN apk add --no-cache ca-certificates    
COPY --from=builder rinkeby.json $HOME/rinkeby.json
COPY --from=builder /go-ethereum/build/bin/geth /usr/local/bin/   
VOLUME [ "/root/.rinkeby/geth/lightchaindata" ]
EXPOSE 8545 8546 30303 30304 30303/udp 30304/udp
RUN geth --datadir=$HOME/.rinkeby init rinkeby.json
CMD ["sh", "-c", "geth --networkid=4 --datadir=$HOME/.rinkeby --rpcaddr 0.0.0.0 --syncmode=fast --ethstats='Oxy:Respect my authoritah!@stats.rinkeby.io' --bootnodes=enode://a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf@52.169.42.101:30303?discport=30304"]

output when i run the docker image.

Console:

INFO [04-04|13:14:10] Maximum peer count                       ETH=25 LES=0 total=25
INFO [04-04|13:14:10] Starting peer-to-peer node               instance=Geth/v1.8.4-unstable-6ab9f0a1/linux-amd64/go1.9.2
INFO [04-04|13:14:10] Allocated cache and file handles         database=/root/.rinkeby/geth/chaindata cache=768 handles=1024
WARN [04-04|13:14:10] Upgrading database to use lookup entries
INFO [04-04|13:14:10] Database deduplication successful        deduped=0
INFO [04-04|13:14:10] Initialised chain configuration          config="{ChainID: 4 Homestead: 1 DAO: <nil> DAOSupport: false EIP150: 2 EIP155: 3 EIP158: 3 Byzantium: 1035301 Constantinople: <nil> Engine: clique}"
INFO [04-04|13:14:10] Initialising Ethereum protocol           versions="[63 62]" network=4
INFO [04-04|13:14:10] Loaded most recent local header          number=0 hash=6341fd…67e177 td=1
INFO [04-04|13:14:10] Loaded most recent local full block      number=0 hash=6341fd…67e177 td=1
INFO [04-04|13:14:10] Loaded most recent local fast block      number=0 hash=6341fd…67e177 td=1
INFO [04-04|13:14:10] Regenerated local transaction journal    transactions=0 accounts=0
INFO [04-04|13:14:10] Starting P2P networking
INFO [04-04|13:14:12] UDP listener up                          self=enode://6d27f79b944aa75787213835ff512b03ec51434b2508a12735bb365210e57b0084795e5275150974cb976525811c65a49b756ac069ca78e4bd6929ea4d609b65@[::]:30303
INFO [04-04|13:14:12] Stats daemon started
INFO [04-04|13:14:12] RLPx listener up                         self=enode://6d27f79b944aa75787213835ff512b03ec51434b2508a12735bb365210e57b0084795e5275150974cb976525811c65a49b756ac069ca78e4bd6929ea4d609b65@[::]:30303
INFO [04-04|13:14:12] IPC endpoint opened                      url=/root/.rinkeby/geth.ipc
Ahmed Ashour
  • 5,179
  • 10
  • 35
  • 56
Oxxygen
  • 11
  • 1

3 Answers3

0

I did find out what was wrong after rebuilding the Dockerfile from scratch. At the end of my CMD line there is this ending.

?discport=30304

By removing it, it works as intended.

This was a remnant from a different users code.

Oxxygen
  • 11
  • 1
0

For me the problem is the fast sync still running for hours, takes forever and never stops on its own.

I ran this command : **geth --rinkeby --syncmode "fast" --rpc --rpcapi db,eth,net,web3,personal --cache=1024 --rpcport 8545 --rpcaddr 127.0.0.1 --rpccorsdomain "*" **

consuming storage as it´s still running(over 5GB), sometimes I got an error : No space left on device, I deleted everything and then start over.

I run eth.syncing , here´s what I got:

https://i.stack.imgur.com/uasFl.jpg ( after 3 hours of sync )

https://i.stack.imgur.com/wEBWW.jpg ( 30 min after the first eth.syning check )

I tried 100 * eth.syncing.currentBlock / eth.syncing.highestBlock and I got 99.9969.... and then it keeps slowing down and decreasing and never reached 99.9970.

I am running Geth/v1.8.4-stable-2423ae01/linux-amd64/go1.10 on Ubuntu 16.04LTS

0

After going round and round, I discovered that using the '--bootnodes' flag is the simplest way to get your private peers to recognize each other across a network:

Geth.exe --bootnodes "enode://A@B:30303" --datadir="C:\Ledger"--nat=extip:192.168.0.9 ...

When spinning up your IPC pipe, specify a node that is likely to always be up (likely your first init'd node). You also need to be very explicit about IP addresses using the '--nat' flag. In the above example A is the IP address of the node that will be used to auto-detect all other nodes, and build peer connections.

I dervied this approach using information found in this link on the Geth Github site.

Mr. B
  • 2,845
  • 1
  • 21
  • 31