web3labs / crux

Data Privacy for Quorum Blockchains
https://www.web3labs.com
Apache License 2.0
53 stars 28 forks source link

local build fails to start geth s #50

Open drandreaskrueger opened 5 years ago

drandreaskrueger commented 5 years ago

reproduce the problem:

git clone  https://github.com/blk-io/crux blk-io_crux
cd blk-io_crux/docker/quorum-crux/
cp docker-compose.yaml docker-compose-local.yaml
nano docker-compose-local.yaml 

then comment and uncomment, as described there, to build locally. Then:

docker-compose -f docker-compose-local.yaml up --build

The geths are not starting:

geth attach http://localhost:22001
Fatal: Failed to start the JavaScript console: api modules: Post http://localhost:22001: read tcp [::1]:41988->[::1]:22001: read: connection reset by peer

there are no geth processes:

ps aux | grep crux
root     16788  0.5  0.0   6260  1716 ?        S    23:31   0:00 /bin/bash ./crux-start.sh
root     16876  0.5  0.0   6260  1768 ?        S    23:31   0:00 /bin/bash ./crux-start.sh
root     16892  0.5  0.0   6260  1704 ?        S    23:31   0:00 /bin/bash ./crux-start.sh
root     17047  0.5  0.0   6260  1720 ?        S    23:31   0:00 /bin/bash ./crux-start.sh
andreas  18810  0.0  0.0  12784   952 pts/0    S+   23:32   0:00 grep crux

ps aux | grep geth
andreas  19192  0.0  0.0  12784  1016 pts/0    S+   23:32   0:00 grep geth

when looking into the container

docker ps
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS                                                                        NAMES
495ce286609f        blk.io/quorum/quorum-crux   "./start.sh"        6 minutes ago       Up 3 minutes        0.0.0.0:9001->9000/tcp, 0.0.0.0:21001->21000/tcp, 0.0.0.0:22001->22000/tcp   quorum1
8abd4fcd7132        blk.io/quorum/quorum-crux   "./start.sh"        6 minutes ago       Up 3 minutes        0.0.0.0:9004->9000/tcp, 0.0.0.0:21004->21000/tcp, 0.0.0.0:22004->22000/tcp   quorum4
1136b2145523        blk.io/quorum/quorum-crux   "./start.sh"        6 minutes ago       Up 3 minutes        0.0.0.0:9002->9000/tcp, 0.0.0.0:21002->21000/tcp, 0.0.0.0:22002->22000/tcp   quorum2
25c86cc43eb6        blk.io/quorum/quorum-crux   "./start.sh"        6 minutes ago       Up 3 minutes        0.0.0.0:9003->9000/tcp, 0.0.0.0:21003->21000/tcp, 0.0.0.0:22003->22000/tcp   quorum3

docker exec -it 495ce286609f bash

I find this error:

cat qdata/logs/crux.log 
unknown flag: --networkinterface
Usage of crux:
      --alwayssendto string    List of public keys for nodes to send all transactions too
      --berkeleydb             Use Berkeley DB for working with an existing Constellation data store [experimental]
drandreaskrueger commented 5 years ago

hah, this solves it for me

git clone  https://github.com/blk-io/crux blk-io_crux
git checkout f39db2345cf9d82e76d3905468e6e5ea1469b09d
...

so you have introduced that problem recently.

It happened before, that suddenly the local built is broken. I suggest for the future that you also run a test of the local version whenever you've updated your repo, i.e. one quick

docker-compose -f docker-compose-local.yaml up --build

to just quickly test whether that is also still working.

Thanks a lot!

drandreaskrueger commented 5 years ago

Good meeting you today ;-)

drandreaskrueger commented 5 years ago

any news about the unknown flag: --networkinterface problem?

drandreaskrueger commented 5 years ago

NOT solved yet, just tried this:

docker ps

CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS                                                                        NAMES
74e9f08724e3        blk.io/quorum/quorum-crux   "./start.sh"        2 minutes ago       Up 36 seconds       0.0.0.0:9004->9000/tcp, 0.0.0.0:21004->21000/tcp, 0.0.0.0:22004->22000/tcp   quorum4
2f1eb4a79473        blk.io/quorum/quorum-crux   "./start.sh"        2 minutes ago       Up 36 seconds       0.0.0.0:9002->9000/tcp, 0.0.0.0:21002->21000/tcp, 0.0.0.0:22002->22000/tcp   quorum2
cc9f28fb2407        blk.io/quorum/quorum-crux   "./start.sh"        2 minutes ago       Up 36 seconds       0.0.0.0:9001->9000/tcp, 0.0.0.0:21001->21000/tcp, 0.0.0.0:22001->22000/tcp   quorum1
a3970694101e        blk.io/quorum/quorum-crux   "./start.sh"        2 minutes ago       Up 35 seconds       0.0.0.0:9003->9000/tcp, 0.0.0.0:21003->21000/tcp, 0.0.0.0:22003->22000/tcp   quorum3
docker exec -it 74e9f08724e3 bash

bash-4.4# cat qdata/logs/crux.log 
unknown flag: --networkinterface
Usage of crux:
      --alwayssendto string    List of public keys for nodes to send all transactions too
      --berkeleydb             Use Berkeley DB for working with an existing Constellation data store [experimental]
      --generate-keys string   Generate a new keypair
      --grpc                   Use gRPC server (default true)
      --grpcport int           The local port to listen on for JSON extensions of gRPC (default -1)
      --othernodes string      "Boot nodes" to connect to to discover the network
      --port int               The local port to listen on (default -1)
      --privatekeys string     Private keys hosted by this node
      --publickeys string      Public keys hosted by this node
      --socket string          IPC socket to create for access to the Private API (default "crux.ipc")
      --storage string         Database storage file name (default "crux.db")
      --tls                    Use TLS to secure HTTP communications
      --tlsservercert string   The server certificate to be used
      --tlsserverkey string    The server private key
      --url string             The URL to advertise to other nodes (reachable by them) (default "")
      --verbosity int          Verbosity level of logs (default 1)
      --workdir string         The folder to put stuff in (default: .) (default ".")

the version I had been using is this one:

git log | head -n 5
commit 92bcd86d8f8549ba29769452367b9880ea403008
Merge: f6f7b3a d289936
Author: Puneetha Karamsetty <puneetha17@gmail.com>
Date:   Thu Jan 10 22:16:36 2019 +0000
drandreaskrueger commented 5 years ago

And the only things I did before was patching with larger txpool, 1 seconds blockperiod, and higher gaslimit:

mv blk-io_crux blk-io_crux_f39db23
git clone  https://github.com/blk-io/crux blk-io_crux
cd blk-io_crux

cd docker/quorum-crux/
cp docker-compose.yaml docker-compose-local.yaml
nano docker-compose-local.yaml

(*) actually about this ^ I have a small feature request, see below.

Then I patch with my wanted parameters:

jq '.gasLimit = "0x1312D00"' istanbul-genesis.json > tmp && mv tmp istanbul-genesis.json
less istanbul-genesis.json 
sed -i 's/PRIVATE_CONFIG/ARGS=$ARGS"--txpool.globalslots 20000 --txpool.globalqueue 20000 --istanbul.blockperiod 1 "\nPRIVATE_CONFIG/g' istanbul-start.sh

docker-compose -f docker-compose-local.yaml up --build

but then the quorum nodes do not come up!

Broken, very probably because there is a bug which shows as unknown flag: --networkinterface in qdata/logs/crux.log

Some version mismatch? You probably did not notice because you use the dockerhub build, and do not build locally, right?

drandreaskrueger commented 5 years ago

Feature request:

Could you please include a file docker-compose-local.yaml

Editing away the # is easy for a human in an editor, but non-trivial in an automated way - that step (*) above is still human editing.

A file docker-compose-local.yaml which builds the docker locally would help for two things:

Me because I can fully automate the patching for my wanted parameters - and
you @Puneetha17 because you then more easily notice bugs like the above when you do your automated testing after upgrades.

Thanks a lot!

Puneetha17 commented 5 years ago

It should be fixed now. We had made a change to add --networkinterface parameter in config. But did not checkout the latest release of Crux during docker build.

Also just merged the https://github.com/blk-io/crux/pull/29, so we now have a docker-compose-local.yaml to build it locally.

Sorry for a much delayed response. And thanks for pointing out the issue!